查看: 1644|回复: 5

[已经解决] 各位大大求教个事情,道具对自身使用出现重复数字显示

[复制链接]
梦石
0
星屑
468
在线时间
132 小时
注册时间
2016-6-15
回帖
146
发表于 2017-3-3 01:01:24 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 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

主要脚本

点评

是有违了点规则哟…本区版规A-10项:提问时尽量附上能帮到解决问题的资讯。因此,请在3天内更新帖子(或用回复)附上使用的脚本或工程。  发表于 2017-3-3 09:19
技能:Icon绘制,头像&立绘,VA行走图,地图绘制(全PS制作),脚本盲
梦石
0
星屑
6891
在线时间
7027 小时
注册时间
2013-11-2
回帖
1263

开拓者剧作品鉴家

发表于 2017-3-3 12:22:43 | 显示全部楼层
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)

注:我只看过脚本数据档,所以只能做出猜测。
回复

使用道具 举报

梦石
0
星屑
468
在线时间
132 小时
注册时间
2016-6-15
回帖
146
 楼主| 发表于 2017-3-3 12:32:17 | 显示全部楼层
RaidenInfinity 发表于 2017-3-3 12:22
Sideview222 这个脚本的 3801行

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

嗯!!是这个解决方法,谢谢版主大
以后我会经常过来逛一逛,如果有美工的问题我会尽力帮助有需要帮助的人
技能:Icon绘制,头像&立绘,VA行走图,地图绘制(全PS制作),脚本盲
回复

使用道具 举报

梦石
0
星屑
6891
在线时间
7027 小时
注册时间
2013-11-2
回帖
1263

开拓者剧作品鉴家

发表于 2017-3-3 12:45:31 | 显示全部楼层
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 的时候,数字才会弹出。
回复

使用道具 举报

梦石
0
星屑
468
在线时间
132 小时
注册时间
2016-6-15
回帖
146
 楼主| 发表于 2017-3-3 13:06:47 | 显示全部楼层
RaidenInfinity 发表于 2017-3-3 12:45
3801行这句,如果用中文来解释它的功能的话是这样:

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

也就是说原本应该是分歧条件产生不同结果显示的,结果因为少了括号划分分歧条件使其成为了同时生效的条件是么?
结合版主大的文字解释,算是了解其中的逻辑了,万分感谢
技能:Icon绘制,头像&立绘,VA行走图,地图绘制(全PS制作),脚本盲
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部