查看: 2606|回复: 3

[已经过期] 角色普通攻击无法显示伤害的描绘是什么问题?

[复制链接]
梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
回帖
1074
发表于 2018-2-20 13:16:54 | 显示全部楼层 |阅读模式

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

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

×
360截图20180220131508265.png
如上图:
只是在默认脚本添加了一段判断而已。
脚本代码:
[pre lang="ruby"]#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  這個類用來執行顯示作戰畫面的程式。
#==============================================================================

class Scene_Battle < Scene_Base
   #--------------------------------------------------------------------------
  # * 顯示HP傷害資訊
  #     target : 目標參戰者
  #     obj    : 技能或物品
  #--------------------------------------------------------------------------
  def display_hp_damage(target, obj = nil)
    if target.hp_damage == 0                # 無HP傷害
      return if obj != nil and obj.damage_to_mp
      return if obj != nil and obj.base_damage == 0
      fmt = target.actor? ? Vocab::ActorNoDamage : Vocab::EnemyNoDamage
      text = sprintf(fmt, target.name)
    elsif target.absorbed                   # HP被汲取
      fmt = target.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain
      text = sprintf(fmt, target.name, Vocab::hp, target.hp_damage)
    elsif target.hp_damage > 0              # HP傷害
      if target.actor?
        text = sprintf(Vocab::ActorDamage, target.name, target.hp_damage)
        Sound.play_actor_damage
        $game_troop.screen.start_shake(5, 5, 10)
      else
######
      skill = @active_battler.action.skill
      if skill.is_a?(RPG::Skill)
      case skill.id
      when 83
        text = sprintf(Vocab::EnemyDamage2, target.name, target.hp_damage)
      else
        text = sprintf(Vocab::EnemyDamage, target.name, target.hp_damage)
      end
      end
######
      #  text = sprintf(Vocab::EnemyDamage, target.name, target.hp_damage)
        Sound.play_enemy_damage
        target.blink = true
      end
    else   
      # HP恢復
      fmt = target.actor? ? Vocab::ActorRecovery : Vocab::EnemyRecovery
      text = sprintf(fmt, target.name, Vocab::hp, -target.hp_damage)
      Sound.play_recovery
    end
    @message_window.add_instant_text(text)
    wait(30)
  end
end
[/pre]
请问是重定义了什么内容还是其他什么问题造成的?
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2018-2-20 13:37:32 | 显示全部楼层
在49行之前print一下text,看看是否获得了正确的字符串?
如果对话窗口里的text与你预想的一致,就看看你新增的对于battlelog窗口的美化是否有问题咯
回复

使用道具 举报

梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
回帖
1074
 楼主| 发表于 2018-2-20 13:43:22 | 显示全部楼层
百里_飞柳 发表于 2018-2-20 13:37
在49行之前print一下text,看看是否获得了正确的字符串?
如果对话窗口里的text与你预想的一致,就看看你新 ...


结果为nil。
360截图20180220134204109.png
没有获得字符串。
那是什么问题造成的?

点评

那你就在你加的脚本里一个个print下看看,是哪个崩了咯  发表于 2018-2-20 14:01
一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部