轩辕春秋文化论坛 » 曹操传MOD制作交流 » 抄袭代码中遇到的逻辑困难


2010-3-2 06:21 武骧金星
抄袭代码中遇到的逻辑困难

最后一个想要抄袭的代码是反弹伤害……但是现在遇到一个问题:

反弹伤害和岳飞传中的吸血攻击都要修改子函数40656C,具体说来是这样的:

在吸血攻击代码中,需要储存进攻武将的DATA;而相反在反弹伤害代码中则需要储存被攻击武将的DATA……

现在主要问题是逻辑上不能理清关系。

比如说,如果修改目的是:A武将具有吸血攻击能力,B武将具有反弹伤害能力,这两件事需要进行平行判定,也就是说,不能先判断是不是A武将再判断是不是B武将……

我试图在GODTYPE引擎3.0中寻找代码,但是对其中的逻辑关系还是不太理解。能否请GODTYPE解释一下在您的引擎中是如何处理这个问题的呢?谢谢。

2010-3-2 06:29 武骧金星
也许我说得太啰嗦了……

简单点就是说,现在一个子函数中需要做两个判定,而这两个判定是平行的(也就是不能有先后顺序或者优先级),这样在代码中应该怎么实现呢?

谢谢。

2010-3-2 09:00 司徒苍月
当中判定顺序按曹操传原逻辑,是防守方优先计算,但结果我想,应该是,拥有吸血特性的武将,攻击拥有反弹特性的武将,吸血、反弹都触发时,应当先扣攻击方hp,当所剩hp小于等于0时,攻击方武将直接死亡,若剩余hp大于0时,按吸血比例吸回部分hp,这个过程中,防御方武将hp不变,即先反弹再吸血

2010-3-2 10:54 武骧金星
……总觉得哪里有问题啊……

这件事情可以这么解释:

修改子函数40656C,首先判断是否是武将A,然后根据判断结果,选择执行代码A或者代码C;

然后[color=Red]无视上一判断结果[/color],都重新判断是否为武将B,然后根据判断结果,选择执行代码B或者代码C。

我主要是不知道红字部分怎么处理……

[color=Silver][[i] 本帖最后由 武骧金星 于 2010-3-2 10:56 编辑 [/i]][/color]

2010-3-2 11:40 godtype
代码不是我原创的,所以我也很难解释。
我测试过几种情况,大致上是先扣防守方HP,防守方剩下的HP=0,则攻击方无反弹效果,但是有吸血效果;防守方剩下的HP不为0,攻击方先受到反弹的伤害,注意最低HP为1,然后再吸血,只不过减HP的动画不会有显示。

页: [1]


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.