同人星球BBS -> 游戏修改 -> [修改教程]指针的应用(一) [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

修改众 08-07-02 11:52

[修改教程]指针的应用(一)

经常修改就会发现,生命,魔法,能力值等等总是连在1起存放的。
比如 hp 90/100 MP 40/50
内存中很可能就是这样 5A 00 00 00 64 00 00 00 28 00 00 00 32 00 00 00 (4byte)
也可能是这样 5A 00 64 00 28 00 32 00 (2byte)
这是因为游戏设计时候,将生命,生命最大值,魔法,魔法最大值放进了数组中,并且是相邻的数组成员。

为了修改方便,通常将其中1个做为指针,其他用偏移量来表示。
如果将生命做为指针,那么4byte的偏移量就是这样
0 生命
4 生命最大值
8 魔法
C 魔法最大值

2byte的偏移量是这样
0 生命
2 生命最大值
4 魔法
6 魔法最大值


如果用魔法做为指针,4byte偏移量就是这样
-8 生命
-4 生命最大值
0 魔法
4 魔法最大值

数组中的任何1个都可以做为指针,这就是数组的好处。
至于选择哪个,通常用最容易获得的那个就可以了。


所以我希望再也不要看到这种叙述
"搜索生命值,然后向下数3行,就是经验值"

应该这样
0 生命值
30 经验值


查看完整版本: [-- [修改教程]指针的应用(一) --] [-- top --]

Powered by PHPWind v5.3 Code © 2003-05 PHPWind
Time 0.034487 second(s),query:3 Gzip enabled

You can contact us