找回密码
 点一下
查看: 5590|回复: 25

理论派→第一谈★联机机制★

[复制链接]
发表于 2008-5-2 18:26:32 | 显示全部楼层 |阅读模式
话说到现在对魔兽争霸进行了一点小研究
希望与大家分享讨论

本人认为魔兽的基语言是C++或C
我是看偏移量得出的   本人专研究C++    而且用CE也能很明显分析出来
然而有人认为是JASS做的
本人没深入研究过     自认为J有什么特别的  除了可以调用已经编写好的函数
没有强大的功能  不足已支撑起引擎的需要

关于内部函数
我到现在还不知道魔兽的英雄是  基类和子类   还是 类和实例
还有某告诉我是抽象类              

魔兽的变量是强制性声明
那就意味着预先分配了内存空间给指定单位
同时这也是动态的
要想捕捉就要做接口          (估计用虚函数覆盖了   GA的某某正在因为无法判断单位类型而苦恼)
生命值、魔法值、攻击力等等数值      应该是封装在一起的
WE又能让我们    自己新建单位    而且新建的时候还是以已有的单位做模板  还可以修改数值
那么就是说可以自定义接口         并且这些都是派生的  
这样来的结果是很多很多的空间被占用

而且其他的变量 声明后   是无法删掉的
这就是为什么数组变量 要清空后  再删   
其实是再次声明此变量无法使用    只是为了最小的占用内存
所以我对551155的变量论  还是有所怀疑的
尤其是他从不做排泄 -。-

关于好多用T不错的人  说看到J就头疼
很难说是什么心态       这就是为什么大家对汉化的UI如此喜爱的原因
其实T就是J的功能固定化      也可以理解为直白了
把T换成J看   就可以知道  其实内容里都是J常用的
说T的效率低   原因也就在于   在必要的语句前面和后面往往总有不必要的存在

局部变量也是很关键的
WE里声明的都是全局变量    J里可以声明局部变量
这也是效率       毕竟全局变量不是宏

前面看了篇高人写的联机机制
在这里也说一下      
以爆击为例         所谓的随机     也不是莫名奇妙出现的
其实有个具体的公式计算      
而且是 每次攻击都在计算      所有玩家机器一起计算      
只有在计算值一致时    才有爆击效果

而且某高人说魔兽3的数据同步结构可以保证 同时计算,同一时刻,双方的随机因素相同
也就是说两边的计算结果不一样       不论怎么修改单人的数据 都是无效的
因为魔兽数据传送的只是操作    并不包括操作结果      所以一心想着想作弊的人可以死心了
很强大的研究   一直怀疑他原来就是暴雪的   不过无从考证

上面说了联机机制   可能会有人有疑问为什么   还有作弊图的出现
(-。-   弱智一下)图里本来就有造成作弊的因素   
比如  做个T  设置输入XXX    就给个什么东西的
还有就是脚本作弊          脚本是无法阻止它运行的
现在HF研究的  也只是另一个脚本   让大家通用的作弊脚本无效   可它还是运行了。。。

PS:写这种东西还真是死脑细胞啊。。
        不知不觉一小时过去了     大家觉的好就顶一下吧    有质疑的也说一下吧

评分

参与人数 1威望 +2 收起 理由
kook + 2 居然能引这么多人出来瓦

查看全部评分

 楼主| 发表于 2008-5-2 18:49:46 | 显示全部楼层
好吧。。。既然没人看 。。。我就自己SF了
顺便补充一下  
551155大大  你说的固定随即值的问题  
我刚才考虑了一下        
只有连机的算出同样结果  才会有显示   这点肯定没错
固定随即  只是强制执行固定的算法
回复

使用道具 举报

发表于 2008-5-2 18:54:35 | 显示全部楼层
偶个人认为魔兽的基语言是Basic,!呵呵~
回复

使用道具 举报

 楼主| 发表于 2008-5-2 18:58:09 | 显示全部楼层
等了半天````就你一个。。。。。
我哭。。。。。难道 我真的很失败。。。
回复

使用道具 举报

发表于 2008-5-2 19:16:40 | 显示全部楼层
其实我也只是猜测大概是读取地图数据啊,因为产生的时间等方面会有很大的不同,当然就会有随机这个概念了,再说了,不管怎么随机肯定都会有一个公式吧,不然怎么可能取得值呢。
回复

使用道具 举报

发表于 2008-5-2 19:26:18 | 显示全部楼层
随机应该是先定义了多个随机数序列,选取系统时间来觉得采用哪个随机序列(随机种子)
这个应该是和主机相关。
回复

使用道具 举报

发表于 2008-5-2 19:30:36 | 显示全部楼层
引用第3楼喀尔硫司之瞳于2008-05-02 18:58发表的  :
我哭。。。。。难道 我真的很失败。。。

不是这个问题。。。长篇大论一般很少人观光。。。
回复

使用道具 举报

 楼主| 发表于 2008-5-2 19:51:13 | 显示全部楼层
5楼的估计没看我正文写了什么
我说的很清楚
因为连机机制原因   不可能会有单独机器出运算结果的
按照你的说法   主机做运算    那这个随机的几率会微乎其微
回复

使用道具 举报

发表于 2008-5-2 21:06:17 | 显示全部楼层
“WE又能让我们    自己新建单位    而且新建的时候还是以已有的单位做模板  还可以修改数值
那么就是说可以自定义接口        并且这些都是派生的 ”

1)不是派生吧 ,至多就是用不同的值初始化
2)面与对象只是很好的反映了现实世界的特性而已(封装,继承)
魔兽也是世界的一部分
so 只是看起来像是C++而已,
回复

使用道具 举报

发表于 2008-5-2 21:08:53 | 显示全部楼层
wc3是基于机器码的。
回复

使用道具 举报

 楼主| 发表于 2008-5-2 21:10:55 | 显示全部楼层
您知道魔兽英雄的内存ASCII码吧
我用CE看的。。。。很明显  从偏移可以看出
C++做的核心

至于那个派生 是我的猜测
回复

使用道具 举报

发表于 2008-5-2 21:13:28 | 显示全部楼层
抱歉,我并不知道楼主您打哪里听来WC3使用“JASS”这种“语言”编译的。
回复

使用道具 举报

 楼主| 发表于 2008-5-2 21:19:43 | 显示全部楼层
本人并不把认为J是一门语言
至于听说嘛   是个邪恶的门户网站
回复

使用道具 举报

发表于 2008-5-2 22:55:08 | 显示全部楼层
我一直以为是基于 English 语言的
回复

使用道具 举报

traxex 该用户已被删除
发表于 2008-5-2 23:29:45 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-5-2 23:34:48 | 显示全部楼层
WAR3不是和红警一个公司的吗
回复

使用道具 举报

traxex 该用户已被删除
发表于 2008-5-2 23:37:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-5-2 23:45:51 | 显示全部楼层
引用第15楼multicolor于2008-05-02 23:34发表的  :
WAR3不是和红警一个公司的吗

不是的,Diablo和红警是一个公司出的

WAR3是另外一个
回复

使用道具 举报

发表于 2008-5-2 23:45:55 | 显示全部楼层
引用第16楼traxex于2008-05-02 23:37发表的  :

10年前的delphi就是这样的...
十年后呢?
回复

使用道具 举报

发表于 2008-5-2 23:58:22 | 显示全部楼层
引用第17楼sroun于2008-05-02 23:45发表的  :


不是的,Diablo和红警是一个公司出的

WAR3是另外一个
对了对了,是和和出帝国时代的同公司的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-4-28 18:40 , Processed in 0.136246 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表