Project1

标题: 有没有脚本可以显示自动回复或者扣血的脚本? [打印本页]

作者: lirn    时间: 2014-6-14 11:39
标题: 有没有脚本可以显示自动回复或者扣血的脚本?
VA默认的回合结束时候自动回复是不会显示回复多少的,有没有这样的脚本?

把回合自动回复当成使用回复技能也行。
作者: taroxd    时间: 2014-6-14 12:40
RUBY 代码复制
  1. class Scene_Battle < Scene_Base
  2.   def add_battlelog(text)
  3.     @log_window.add_text(text)
  4.   end
  5. end
  6.  
  7. class Game_Actor < Game_Battler
  8.   alias no_log_regenerate_hp regenerate_hp
  9.   def regenerate_hp
  10.     no_log_regenerate_hp
  11.     scene = SceneManager.scene
  12.     if scene.respond_to?(:add_battlelog) && @result.hp_damage < 0
  13.       scene.add_battlelog "#{name}的HP恢复了#{[email][email protected]_damage[/email]}点!"
  14.     end
  15.   end
  16. end

作者: lirn    时间: 2014-6-15 00:39
本帖最后由 lirn 于 2014-6-15 01:14 编辑
taroxd 发表于 2014-6-14 12:40
class Scene_Battle < Scene_Base
  def add_battlelog(text)
    @log_window.add_text(text)


似乎出错了呢

没事了,改好了。

另外有个问题,我使用的是后知后觉的横版,能不能改改像使用技能回复那样出现数字?由于不知道伤害跟回复是不是一样,所以只截取一段看看是不是在这里改。

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 显示回避 (追加定义)
  3.   #--------------------------------------------------------------------------
  4.   alias hzhj_old_display_evasion_for_display_damage_wnd_btlog display_evasion
  5.   def display_evasion(target, item)
  6.     target.hzhj_damage = [:eva, :evasion, false]
  7.     hzhj_old_display_evasion_for_display_damage_wnd_btlog(target, item)
  8.   end
  9.   #--------------------------------------------------------------------------
  10.   # ● 显示 HP 伤害 (追加定义)
  11.   #--------------------------------------------------------------------------
  12.   alias hzhj_old_display_hp_damage_for_display_damage_wnd_btlog display_hp_damage
  13.   def display_hp_damage(target, item)
  14.     return if target.result.hp_damage == 0 && item && !item.damage.to_hp?
  15.     value = target.result.hp_damage
  16.     critical = target.result.critical
  17.     target.hzhj_damage = [:hp, value, critical]
  18.     hzhj_old_display_hp_damage_for_display_damage_wnd_btlog(target, item)
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 显示 MP 伤害 (追加定义)
  22.   #--------------------------------------------------------------------------
  23.   alias hzhj_old_display_mp_damage_for_display_damage_wnd_btlog display_mp_damage
  24.   def display_mp_damage(target, item)
  25.     return if target.dead? || target.result.mp_damage == 0
  26.     value = target.result.mp_damage
  27.     critical = target.result.critical
  28.     target.hzhj_damage = [:mp, value, critical]
  29.     hzhj_old_display_mp_damage_for_display_damage_wnd_btlog(target, item)
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 显示 TP 伤害 (追加定义)
  33.   #--------------------------------------------------------------------------
  34.   alias hzhj_old_display_tp_damage_for_display_damage_wnd_btlog display_tp_damage
  35.   def display_tp_damage(target, item)
  36.     return if target.dead? || target.result.tp_damage == 0
  37.     value = target.result.tp_damage
  38.     critical = target.result.critical
  39.     target.hzhj_damage = [:tp, value, critical]
  40.     hzhj_old_display_tp_damage_for_display_damage_wnd_btlog(target, item)
  41.   end
  42. end

1.png (6.56 KB, 下载次数: 24)

1.png

作者: lirn    时间: 2014-6-15 14:16
本帖最后由 lirn 于 2014-6-16 19:24 编辑


不需要就把脚本删除了,省得读入时间。



作者: lirn    时间: 2014-6-15 14:45
@后知后觉 不知道能不能指导一下?
作者: 余烬之中    时间: 2014-6-15 15:48
@后知后觉 的横版是个坑
作者: lirn    时间: 2014-6-15 17:09
基本功能已经够了。这个其实也算是VA本身的问题吧,不显示自身自动回血多少,自动扣血多少。
作者: 后知后觉    时间: 2014-6-15 19:55
在这2行
    no_log_regenerate_hp
    scene = SceneManager.scene
中间加一行
    @hzhj_damage = [:hp, @result.hp_damage, false] if @result.hp_damage != 0

@余烬之中
那脚本其实是沙丘...现在的很多东西都是最初规划里没有的
后来加的东西越来越多 设置越来越发杂.结构越来越乱 就叫停了.
作者: lirn    时间: 2014-6-16 18:08
本帖最后由 lirn 于 2014-6-17 20:17 编辑
后知后觉 发表于 2014-6-15 19:55
在这2行
    no_log_regenerate_hp
    scene = SceneManager.scene


RUBY 代码复制
  1. class Game_Actor < Game_Battler
  2.       alias no_log_regenerate_hp regenerate_hp
  3.       def regenerate_hp
  4.         no_log_regenerate_hp
  5.         @hzhj_damage = [:hp, @result.hp_damage, false] if @result.hp_damage != 0
  6.         scene = SceneManager.scene
  7.         if scene.respond_to?(:add_battlelog) && @result.hp_damage < 0
  8.           scene.add_battlelog "#{name}的HP恢复了#{[email][email protected]_damage[/email]}点!"
  9.           elsif scene.respond_to?(:add_battlelog) && @result.hp_damage > 0
  10.           scene.add_battlelog "#{name}的HP失去了#{[email][email protected]_damage[/email]}点!"
  11.         end
  12.       end
  13.       alias no_log_regenerate_mp regenerate_mp
  14.       def regenerate_mp
  15.         no_log_regenerate_mp
  16.         @hzhj_damage = [:mp, @result.hp_damage, false] if @result.mp_damage != 0
  17.         scene = SceneManager.scene
  18.         if scene.respond_to?(:add_battlelog) && @result.mp_damage < 0
  19.           scene.add_battlelog "#{name}的MP恢复了#{[email][email protected]_damage[/email]}点!"
  20.           elsif scene.respond_to?(:add_battlelog) && @result.mp_damage > 0
  21.           scene.add_battlelog "#{name}的MP失去了#{[email][email protected]_damage[/email]}点!"
  22.         end
  23.       end
  24.     end




我改成这样,发现了一个问题,没有办法同时显示两个。我是改了一下数字颜色,紫色是魔法伤害,也就是说这里的图画被绘制成了体力伤害的数值,魔法伤害的颜色。这个我在战斗中使用救世小树公式同时造成物理与魔法伤害的时候,也有这种情况,能不能就是在这两者,甚至三者同时发生时,有弄个一定的先后顺序?

@后知后觉  
作者: lirn    时间: 2014-6-18 20:44
没有办法了吗?




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