|
昨天Lost_Angel问我时,我才发现用触发生成的升级上限没有效果。他认为是插件问题,我怀疑是内存地址错的。
如升级项ID 7,terran infantry weapons ,在SCMD里默认是3,在SMC里改成200
生成触发Comment(\"\", 0, 7057079, 200, 0, 4);
但是在地图中没有效果。
然后我重新画了张图,把它在SCMD里设置成200级,然后在EUDtools里,升级项爆内存,也没有效果。
有人知道什么情况吗?
1.08内存表里找到
6BAEB061 (61*1)Upgrades.dat - upgrade max(最高升级)
10进制7057072
id7的就是7057079
这和SMC生成的是一致的。什么情况啊。。。。。。。。。
通过用金山不停的修改,和改地图测试,总算找到地址了!!
如ID7 升级,
玩家1的地址是5334711,玩家2的地址是5334757(+46),直到玩家12的地址是5335217
可以推出ID0的升级地址
玩家1是5334704,玩家2的地址是5334750,直到玩家12的地址是5335210
以ID0为基础,就可以把其它的都算出来啦
例:如玩家4,ID15的升级,
地址就是5334704+15+(4-1)X46
对应颜色应该很容易看明白,这个公式黑色和紫色部分是不变的数字。其它要根据具体玩家和升级ID来。
算出地址是 5334857
所以如用SMC把玩家4的ID15的升级上限设为88级的话,语句如下:
Comment(\"\", 0, 5334857, 88, 0, 4);
再实验发现上楼结果只针对0-45的升级。
46-60这15个技能初始升级地址为:5343392(玩家1,ID46)
相对玩家及ID号的地址,如玩家3,ID47的地址算法为:
5343392+(47-46)+(3-1)X15
0-45这46个技能的初始已升级等级地址为5335256(玩家1,ID0)
如玩家5,ID8的地址算法为
5335256+8+(5-1)X46
46-60这15个技能的初始已升级等级地址为5343572(玩家1,ID46)
如玩家6,ID50的地址算法为
5343572+(50-46)+(6-1)X15
这几个地址在1.08内存表里也可以找到。至于7057072这个地址到底干嘛用,就不知道了。如果想实现触发生成升级上限的话,暂时就手动写触发吧。
Comment(\"\", 0, 地址, 级数, 0, 4);
地址算法如上。 |
|