Project1

标题: 连续伤害数值完整显示 [打印本页]

作者: 小传子    时间: 2012-7-10 23:27
标题: 连续伤害数值完整显示
http://rpg.blue/forum.php?mod=viewthread&tid=105479
之前已经搜索过了,无果。

问题和上面帖子里描述的差不多,
我设置 2种毒
(注:第1种毒伤害50,第2种毒伤害100)
无论是恢复效果还是伤害效果都一样,只会显示一次伤害效果

我的连续伤害判断方法

def slip_damage_effect()
    # 设置伤害
    sp_count = 0
    for i in @states
    if $data_states.slip_damage
      if i == XX
elsif i == XX
elsif i == XX
elsif i == XX
end

#全动画战斗用-显示弹出伤害动画
      if self.damage != nil
        self.show_damage_animation = false
        self.show_damage(self.damage)
      end
    end
    end
    # 过程结束
    return true
  end


#基本上大同小异。


除了增加一个 slip_damage_effect2以外,-V-不知道各位少侠还有什么更好的办法,求解


另外,貌似高亮代码在这里不适用。

dsu_plus_rewardpost_czw
作者: Wind2010    时间: 2012-7-10 23:33
→ →LZ是用彩虹神剑的伤害显示脚本还是RTAB的?不同的伤害显示有不同的方法啊
作者: 小传子    时间: 2012-7-11 00:28
Wind2010 发表于 2012-7-10 23:33
→ →LZ是用彩虹神剑的伤害显示脚本还是RTAB的?不同的伤害显示有不同的方法啊 ...

#全动画战斗用-显示弹出伤害动画
-V-不是有这么句话么,全动画战斗+23种战斗特技

既然被你这个触看到了,后续再提点高难问题吧XD
作者: 幻耶    时间: 2012-7-11 10:34
第一种毒状态19设为连续伤害,第一种毒状态20不勾选连续伤害

先把@active_battler变量转成全局变量来调用:
全局搜索“@active_battler =”
除了 = nil 的之外其余都双击跳过去下面加一行:$active_battler = @active_battler

Scene_Battle 4 的 def update_phase4_step1 的 # 连续伤害 下面添加:
  1.     # 连续伤害
  2.     if @active_battler.hp > 0 and @active_battler.slip_damage?
  3.       @active_battler.slip_damage_effect
  4.       @active_battler.damage_pop = true
  5.     end
  6.    
  7.     if @active_battler.state?(20)
  8.       common_event = $data_common_events[3]  #XXOO调用3号公共事件显示第二次伤害
  9.       $game_system.battle_interpreter.setup(common_event.list, 0)
  10.     end
复制代码
最后在3号公共事件里设置脚本:
  1. $active_battler.damage = "100"
  2. $active_battler.hp -= 100
  3. $active_battler.damage_pop = true
复制代码

作者: 小传子    时间: 2012-7-11 10:50
幻耶 发表于 2012-7-11 10:34
第一种毒状态19设为连续伤害,第一种毒状态20不勾选连续伤害

先把@active_battler变量转成全局变量来调用 ...

思路是有了,关键是,如果不止两种连续伤害呢?这设定是否就显得有点麻烦了,
作者: 幻耶    时间: 2012-7-11 11:05
传说VS天涯 发表于 2012-7-11 10:50
思路是有了,关键是,如果不止两种连续伤害呢?这设定是否就显得有点麻烦了, ...

可以把所有的毒状态都不勾选连续伤害,全部调用公共事件,然后在公共事件里判断:当行动者还带有其它的毒状态,就在公共事件里调用别的公共事件。不过这里需要加开关判断,防止循环调用没完没了
作者: 幻耶    时间: 2012-7-11 12:40
本帖最后由 幻耶 于 2012-7-11 12:52 编辑

比如公共事件这样设置,每次判断状态调用公共事件前关闭1号开关

  1.     # 连续伤害
  2.     if @active_battler.hp > 0 and @active_battler.slip_damage?
  3.       @active_battler.slip_damage_effect
  4.       @active_battler.damage_pop = true
  5.     end
  6.    
  7.     $game_switches[1] = false
  8.    
  9.     if @active_battler.state?(19)
  10.       common_event = $data_common_events[3]  #XXOO调用3号公共事件显示伤害
  11.       $game_system.battle_interpreter.setup(common_event.list, 0)
  12.     end

  13.     if @active_battler.state?(20)
  14.       common_event = $data_common_events[4]  #XXOO调用4号公共事件显示伤害
  15.       $game_system.battle_interpreter.setup(common_event.list, 0)
  16.     end
复制代码

作者: 小传子    时间: 2012-7-11 12:52
幻耶 发表于 2012-7-11 12:40
比如公共事件这样设置,每次判断状态调用公共事件前关闭1号开关

我还有一个思路-V-  if @active_battler.state?(XX)
只设定self += XXX
把 self.hp -= 和seif.sp += 放到最外面结算,




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