设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1407|回复: 5
打印 上一主题 下一主题

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

[复制链接]

Lv2.观梦者

梦石
0
星屑
468
在线时间
132 小时
注册时间
2016-6-15
帖子
151
跳转到指定楼层
1
发表于 2017-3-3 01:01:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 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制作),脚本盲

Lv4.逐梦者 (版主)

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

开拓者剧作品鉴家

2
发表于 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)

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

使用道具 举报

Lv2.观梦者

梦石
0
星屑
468
在线时间
132 小时
注册时间
2016-6-15
帖子
151
3
 楼主| 发表于 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制作),脚本盲
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

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

开拓者剧作品鉴家

4
发表于 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 的时候,数字才会弹出。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
468
在线时间
132 小时
注册时间
2016-6-15
帖子
151
5
 楼主| 发表于 2017-3-3 13:06:47 | 只看该作者
RaidenInfinity 发表于 2017-3-3 12:45
3801行这句,如果用中文来解释它的功能的话是这样:

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

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

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-17 07:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表