首先还是非常佩服LZ的这个工程,因为这个实行下来非常漫长,需要一定的毅力和技术能力。而且能够从ASM这个角度来思考问题也非常值得赞扬。
不过我想LZ遇到的问题恐怕还不止这些呢。(等你真正开始ASM的时候就知道了,呵呵)
实际上我对更换顺序的思路不是很赞同。
因为这个工程的庞大程度和复杂程度都是匪夷所思的,一旦出BUG甚至难以找到根源。
建议LZ采用逐个配对的办法来对每个技能进行攻击类别的鉴别。
比如系统要调用10号技能时,直接去一个对应的表当中(当然,技能对应的表项是需要一个小计算的)寻找,就像PM的名字一样,用一个表来表达每一个技能的实际类别。听起来可能会觉得占据空间,但实际上占有的空间并非你想象的那么夸张。因为表达的技能类型只有物理、特殊、干扰这三类,所以每个技能所占有的鉴别HEX大小只有半个字节就足够了,这样宝石系列总共不到400个技能,只需要200个字节就足够了。比你去整个重排技能将省力许多。
另外如果已经计划到这个份上了,增加技能是否也在考虑之列?