Project1

标题: 角色普通攻击无法显示伤害的描绘是什么问题? [打印本页]

作者: 文雅夕露    时间: 2018-2-20 13:16
标题: 角色普通攻击无法显示伤害的描绘是什么问题?

如上图:
只是在默认脚本添加了一段判断而已。
脚本代码:
RUBY 代码复制
  1. #==============================================================================
  2. # ** Scene_Battle
  3. #------------------------------------------------------------------------------
  4. #  這個類用來執行顯示作戰畫面的程式。
  5. #==============================================================================
  6.  
  7. class Scene_Battle < Scene_Base
  8.    #--------------------------------------------------------------------------
  9.   # * 顯示HP傷害資訊
  10.   #     target : 目標參戰者
  11.   #     obj    : 技能或物品
  12.   #--------------------------------------------------------------------------
  13.   def display_hp_damage(target, obj = nil)
  14.     if target.hp_damage == 0                # 無HP傷害
  15.       return if obj != nil and obj.damage_to_mp
  16.       return if obj != nil and obj.base_damage == 0
  17.       fmt = target.actor? ? Vocab::ActorNoDamage : Vocab::EnemyNoDamage
  18.       text = sprintf(fmt, target.name)
  19.     elsif target.absorbed                   # HP被汲取
  20.       fmt = target.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain
  21.       text = sprintf(fmt, target.name, Vocab::hp, target.hp_damage)
  22.     elsif target.hp_damage > 0              # HP傷害
  23.       if target.actor?
  24.         text = sprintf(Vocab::ActorDamage, target.name, target.hp_damage)
  25.         Sound.play_actor_damage
  26.         $game_troop.screen.start_shake(5, 5, 10)
  27.       else
  28. ######
  29.       skill = @active_battler.action.skill
  30.       if skill.is_a?(RPG::Skill)
  31.       case skill.id
  32.       when 83
  33.         text = sprintf(Vocab::EnemyDamage2, target.name, target.hp_damage)
  34.       else
  35.         text = sprintf(Vocab::EnemyDamage, target.name, target.hp_damage)
  36.       end
  37.       end
  38. ######
  39.       #  text = sprintf(Vocab::EnemyDamage, target.name, target.hp_damage)
  40.         Sound.play_enemy_damage
  41.         target.blink = true
  42.       end
  43.     else   
  44.       # HP恢復
  45.       fmt = target.actor? ? Vocab::ActorRecovery : Vocab::EnemyRecovery
  46.       text = sprintf(fmt, target.name, Vocab::hp, -target.hp_damage)
  47.       Sound.play_recovery
  48.     end
  49.     @message_window.add_instant_text(text)
  50.     wait(30)
  51.   end
  52. end

请问是重定义了什么内容还是其他什么问题造成的?
作者: 百里_飞柳    时间: 2018-2-20 13:37
在49行之前print一下text,看看是否获得了正确的字符串?
如果对话窗口里的text与你预想的一致,就看看你新增的对于battlelog窗口的美化是否有问题咯
作者: 文雅夕露    时间: 2018-2-20 13:43
百里_飞柳 发表于 2018-2-20 13:37
在49行之前print一下text,看看是否获得了正确的字符串?
如果对话窗口里的text与你预想的一致,就看看你新 ...


结果为nil。

没有获得字符串。
那是什么问题造成的?




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