Project1

标题: 各位大大求教个事情,道具对自身使用出现重复数字显示 [打印本页]

作者: CHAOSCLOUD    时间: 2017-3-3 01:01
标题: 各位大大求教个事情,道具对自身使用出现重复数字显示
本帖最后由 CHAOSCLOUD 于 2017-3-3 12:08 编辑

如题,最近在做吞食的游戏,因为自己专攻的是美术所以用了现成的工程和脚本,发现其中有个小问题就是MP恢复道具在对自身使用时候会跳出显示2次道具效果(例如:对自己使用后跳出2串效果数字,一串实际生效的,一串是虚的,对队友使用时就是一串数字)。HP和TP恢复道具没有这种情况发生。整体查找了一下actionresult脚本里面似乎也没有重复的代码条。道具的连续使用次数设置也是1,并无2次使用,道具实际效果也为1次。不知各位大大有没有遇到过类似的,烦请赐教
PS:新手报到,倘若提问帖有违论坛规则还请见谅。初来论坛,若有技术交流也可以交个朋友。
3月3更新编辑:大大提醒要加上脚本或者工程,但整个打包好要236M,(论坛上限是50M左右我的权限)所以抱歉只能放个网盘地址,由于问题出在脚本部分,我真的不知如何查找具体在哪个脚本里出的差错,愿意相助的不胜感激_(:зゝ∠)_,下面是百度盘地址,工程也在里面,游戏测试时候使用智复丹,对自己使用和对队友使用会出现不同的跳出数字,包括回复MP的技能,一旦目标是自身就跳2数字
http://pan.baidu.com/s/1jINrT3o

Scripts.zip

394.38 KB, 下载次数: 84

主要脚本


作者: RaidenInfinity    时间: 2017-3-3 12:22
Sideview222 这个脚本的 3801行

@spriteset.set_damage_pop(@subject) if target != @subject && @subject.result.hp_damage != 0 or @subject.result.mp_damage != 0

改成

@spriteset.set_damage_pop(@subject) if target != @subject && (@subject.result.hp_damage != 0 || @subject.result.mp_damage != 0)

注:我只看过脚本数据档,所以只能做出猜测。
作者: CHAOSCLOUD    时间: 2017-3-3 12:32
RaidenInfinity 发表于 2017-3-3 12:22
Sideview222 这个脚本的 3801行

@spriteset.set_damage_pop(@subject) if target != @subject && @subject ...

嗯!!是这个解决方法,谢谢版主大
以后我会经常过来逛一逛,如果有美工的问题我会尽力帮助有需要帮助的人

作者: RaidenInfinity    时间: 2017-3-3 12:45
CHAOSCLOUD 发表于 2017-3-3 12:32
嗯!!是这个解决方法,谢谢版主大
以后我会经常过来逛一逛,如果有美工的问题我会尽力帮助有需 ...

3801行这句,如果用中文来解释它的功能的话是这样:

如果 目标不等于自身 而且 HP改动不等于0 或者 MP改动不等于0
        设置数字弹出的目标为自身
结束分歧

但是这脚本的作者似乎忽略了一个非常重要的问题。
就如数学运算中的先乘除后加减,在逻辑运算中,&&(而且/与)的优先度比||(或者/或)还高。而且他还用的是文字版的or,优先度更低了。

因此,本来这脚本的这句代码,条件判定的效果是这样的:(注意括号!)

( 目标不等于自身 而且 HP改动不等于0 ) 或者 MP改动不等于0

于是这会发生什么问题呢?很明显,就算目标不等于自身,只要MP改动不等于0,数字就会跳出来了。

所以解决的方法是用括号来修正优先度的问题,变成这样:

目标不等于自身 而且 ( HP改动不等于0 或者 MP改动不等于0 )

这样的话,只有在 目标不等于自身 而且 HP或者MP的改动不等于0 的时候,数字才会弹出。
作者: CHAOSCLOUD    时间: 2017-3-3 13:06
RaidenInfinity 发表于 2017-3-3 12:45
3801行这句,如果用中文来解释它的功能的话是这样:

如果 目标不等于自身 而且 HP改动不等于0 或者 MP改 ...

也就是说原本应该是分歧条件产生不同结果显示的,结果因为少了括号划分分歧条件使其成为了同时生效的条件是么?
结合版主大的文字解释,算是了解其中的逻辑了,万分感谢




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1