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

Project1

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

[已经解决] 出血和中毒状态一起出现在敌人身上只有一个有伤害效果

[复制链接]

Lv1.梦旅人

梦石
0
星屑
117
在线时间
1422 小时
注册时间
2008-8-30
帖子
999
跳转到指定楼层
1
发表于 2015-7-22 15:56:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 jklpgh 于 2015-7-22 16:04 编辑

当敌人同时中了出血和中毒状态,两个都是连续伤害的状态,一个伤害是每回合8,一个是每回合10,按理来说现在应该每回合费18,但只费了其中一个的伤害,能有人帮忙看下是怎么回事吗?多谢了

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

头像被屏蔽

Lv1.梦旅人 (禁止访问)

梦石
0
星屑
88
在线时间
631 小时
注册时间
2014-8-4
帖子
3600
2
发表于 2015-7-22 18:00:18 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
1113
在线时间
334 小时
注册时间
2008-1-28
帖子
1566
3
发表于 2015-7-22 20:24:59 | 只看该作者
本帖最后由 未命名 于 2015-7-23 10:52 编辑

唉,两个self.damage 最后都用=赋值了,所以显示出来的伤害会是最后一个=的数值。

现在的结果是你人物实际-28HP
没错-28。

因为self.hp在过程中被实际减掉了。
然后按默认脚本,最后再扣掉self.damage,一共是28。

你先把self.damage = 改为 self.damage +=,然后最后得到的self.damage就是两个状态合计伤害,然后系统再显示它,再扣掉HP。
另外再把self.hp - self.damage删掉,要不然会扣掉比显示更多的伤害。

当然,你甚至可以制作徐徐回复状态,只要把self.damage变成负值就可以了。

对了,还要在开头就写上self.damage = 0,以免各个伤害叠加等BUG。

————————————————————————————————————————————————————————

(=゚ω゚)=显示伤害是之后执行的,它会把self.damage的值可视化。

但是在此之前……它会先得出damage的值,然后减掉hp,再显示出来。

你的脚本中,第一次
self.damage = 8,
然后self.hp-self.damage,人物自己已经扣血。

但是这个时候self.damage还是个值,人家还没显示出来( ´_ゝ`)。

然后第二个状态,
self.damage = 10,所以就无法挣扎的=10了 (゚Д゚≡゚Д゚)!
然而self.hp-self.damage人物还是扣了HP。

(つд⊂)

最后,到了执行伤害显示的时候,它们打上了damage_pop,但是self.damage还是10。
|д` )
然后显示了10。

但是人物已经扣了18HP了。
(先前我还以为你在最后没有删掉原来的self.hp-self.damage,所以我以为是28。)
( ´_っ`)

———————————————————————————————————————————————

不知道清楚了没有……

所以解决方法像这样:

    # 设置伤害
    self.damage = 0              #一开始先归零。
    if self.state?(17)
      self.damage -= 200       #这个是回血状态,减法。
    end
    if self.state?(23)
      self.damage += 100      #损血就用加法。
    end
    if self.state?(24)
      self.damage += 250
    end

#如果角色中了以上三个状态,那么他就得到self.damage = 150的值。

    # HP 的伤害减法运算
    self.hp -= self.damage          #然后再扣掉。
    # 过程结束
    return true               #这里结束之后,才转到伤害显示的脚本,把得出的damage显示出来。

点评

好吧还是显示伤害的原理没太懂我自己在看下,多谢了,这么耐心的讲解  发表于 2015-7-23 23:17
但是伤害显示是内部的,在帮助里搜索RPG::Sprite可以找到。想要重制一个就把里面的脚本贴到你的脚本里。  发表于 2015-7-23 21:52
默认的是Scene_Battle 4的是423开始那段。  发表于 2015-7-23 21:50
再问一下,触发显示伤害是那句脚本?self.hp -= self.damage这句出来就触发显示了?  发表于 2015-7-23 14:59
也就是说其实两个伤害都扣了,但显示是显示了10的那一个,8的并没有显示是吧,但其实已经受到了18点伤害了  发表于 2015-7-23 14:54

评分

参与人数 2星屑 +70 梦石 +1 收起 理由
RyanBern + 50 + 1 认可答案
jklpgh + 20

查看全部评分

终于有可以放在这里的游戏了……
极短13 新生 《箱子新世界》
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-12 03:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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