《葵花宝典》和《辟邪剑谱》改变人物性别的问题
下面是sub_2a86c子程的一段代码:
movsx eax, word_54B74
movsx eax, word_18FE2C[eax*4]
imul eax, 0BEh
cmp word_250000[eax], 4Eh
jz short loc_2AF15
cmp word_250000[eax], 5Dh
jnz loc_2B018
loc_2AF15:
movsx eax, word_1C0B78[esi*2]
imul eax, 0B6h
cmp word_23001C[eax], 0
jnz loc_2B018
程序连续比较了3个值:4E,5D,和零。在游戏中4E和5D即这两个物品的代码,而0表示男性。如果3项均符合则跳到一段显示代码(就是需要xxxx,是否仍要继续),这段代码的最后两句是:
cmp byte_51B6B, 59h
jnz short loc_2B01D
59h就是字符Y,jnz表示不同的话就转向,相同的话就转到:
……
mov word_23001C[eax], 2
……
从游戏设定来看这一句就是改变性别的了。那么只要把这几句改变,这两种物品的效果就会变化。这个2在文件中的偏址就是2b014h。
这两个物品的特殊效果是直接写在源代码中的,当然可以换成别的或去掉,但是增加数量就有些难度。