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

Project1

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

[已经解决] 公共事件里能显示彩虹神剑的美化伤害么?

 关闭 [复制链接]

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
跳转到指定楼层
1
发表于 2011-11-15 13:29:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用了彩虹神剑,又因为某些特技连接到公共事件要显示额外的伤害,但是通过公共事件显示的伤害是缺省的白色,能否让公共事件显示的伤害也和彩虹神剑里的美化数字一样?

公共事件里显示伤害的脚本
  1. for target in $scene.target_battlers
  2.   target.animation_id = 50
  3.   target.damage = "1000"
  4.   target.hp -= 1000
  5.   target.damage_pop = true
  6. end
复制代码
囡囚囨囚囨図囨囧

Lv3.寻梦者

梦石
0
星屑
3852
在线时间
1582 小时
注册时间
2006-5-5
帖子
2743
2
发表于 2011-11-16 21:06:20 | 只看该作者
是用事件里的伤害处理执行吗?我记得要加这个补丁程序。
使用方法直接插入就可以了。
  1. class Game_Battler
  2.    # 声明一个实例变量判断是否需要显示固定伤害
  3.    attr_accessor :battle_solid_damage
  4. end

  5. class Scene_Battle
  6.    def update_phase4_step1
  7.      # 隐藏帮助窗口
  8.      @help_window.visible = false
  9.      # 判定胜败
  10.      if judge
  11.        # 胜利或者失败的情况下 : 过程结束
  12.        return
  13.      end
  14.      # 强制行动的战斗者不存在的情况下
  15.      if $game_temp.forcing_battler == nil
  16.        # 设置战斗事件
  17.        setup_battle_event
  18.        # 执行战斗事件中的情况下
  19.        if $game_system.battle_interpreter.running?
  20.          return
  21.        end
  22.      end
  23.      # 强制行动的战斗者存在的情况下
  24.      if $game_temp.forcing_battler != nil
  25.        # 在头部添加后移动
  26.        @action_battlers.delete($game_temp.forcing_battler)
  27.        @action_battlers.unshift($game_temp.forcing_battler)
  28.      end
  29.      # 未行动的战斗者不存在的情况下 (全员已经行动)
  30.      if @action_battlers.size == 0
  31.        # 开始同伴命令回合
  32.        start_phase2
  33.        return
  34.      end
  35.      # 初始化动画 ID 和公共事件 ID
  36.      @animation1_id = 0
  37.      @animation2_id = 0
  38.      @common_event_id = 0
  39.      # 未行动的战斗者移动到序列的头部
  40.      @active_battler = @action_battlers.shift
  41.      # 如果已经在战斗之外的情况下
  42.      if @active_battler.index == nil
  43.        return
  44.      end
  45.      # 连续伤害
  46.      if @active_battler.hp > 0 and @active_battler.slip_damage?
  47.        @active_battler.slip_damage_effect
  48.        @active_battler.damage_pop = true
  49.        @active_battler.battle_solid_damage = true
  50.      end
  51.      # 自然解除状态
  52.      @active_battler.remove_states_auto
  53.      # 刷新状态窗口
  54.      @status_window.refresh
  55.      # 移至步骤 2
  56.      @phase4_step = 2
  57.    end
  58. end

  59. class Sprite_Battler < RPG::Sprite
  60.    def update
  61.      super
  62. # 战斗者为 nil 的情况下
  63. if @battler == nil
  64. self.bitmap = nil
  65. loop_animation(nil)
  66. return
  67. end
  68. # 文件名和色相与当前情况有差异的情况下
  69. if @battler.battler_name != @battler_name or
  70. @battler.battler_hue != @battler_hue
  71. # 获取、设置位图
  72. @battler_name = @battler.battler_name
  73. @battler_hue = @battler.battler_hue
  74. self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  75. @width = bitmap.width
  76. @height = bitmap.height
  77. self.ox = @width / 2
  78. self.oy = @height
  79. ###########################################################################
  80. if @battler.dead?
  81. self.bitmap = RPG::Cache.battler(@battler.id.to_s + "Dead", @battler_hue)
  82. @width = bitmap.width
  83. @height = bitmap.height
  84. self.ox = @width / 2
  85. self.oy = @height
  86. end
  87. # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
  88. if (@battler.dead? or @battler.hidden) and @battler.is_a?(Game_Enemy)
  89. ###########################################################################
  90. self.opacity = 0
  91. end
  92. end
  93. # 动画 ID 与当前的情况有差异的情况下
  94. if @battler.damage == nil and
  95. @battler.state_animation_id != @state_animation_id
  96. @state_animation_id = @battler.state_animation_id
  97. loop_animation($data_animations[@state_animation_id])
  98. end
  99. # 应该被显示的角色的情况下
  100. if @battler.is_a?(Game_Actor) and @battler_visible
  101. # 不是主状态的时候稍稍降低点透明度
  102. if $game_temp.battle_main_phase
  103. self.opacity += 3 if self.opacity < 255
  104. else
  105. self.opacity -= 3 if self.opacity > 207
  106. end
  107. end

  108. # 明灭
  109. if @battler.blink
  110. blink_on
  111. else
  112. blink_off
  113. end
  114. # 不可见的情况下
  115. unless @battler_visible
  116. # 出现
  117. if not @battler.hidden and not @battler.dead? and
  118. ###########################################################################
  119. (@battler.damage == nil or @battler.damage_pop)
  120. if @battler.is_a?(Game_Enemy)
  121. ###########################################################################
  122. appear
  123. ###########################################################################
  124. else
  125. self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  126. @width = bitmap.width
  127. @height = bitmap.height
  128. self.ox = @width / 2
  129. self.oy = @height
  130. end
  131. @battler_visible = true
  132. ###########################################################################
  133. end
  134. end
  135. # 可见的情况下
  136. if @battler_visible
  137. # 逃跑
  138. if @battler.hidden
  139. $game_system.se_play($data_system.escape_se)
  140. escape
  141. @battler_visible = false
  142. end
  143. # 白色闪烁
  144. if @battler.white_flash
  145. whiten
  146. @battler.white_flash = false
  147. end
  148. # 动画
  149. if @battler.animation_id != 0
  150. animation = $data_animations[@battler.animation_id]
  151. animation(animation, @battler.animation_hit,@battler.damage, @battler.critical)
  152. @battler.animation_id = 0
  153. end
  154. # 伤害
  155. if @battler.damage_pop
  156. # 显示固定伤害
  157. if @battler.battle_solid_damage
  158. damage(@battler.damage, @battler.critical)
  159. @battler.battle_solid_damage = false
  160. end

  161. @battler.damage = nil
  162. @battler.critical = false
  163. @battler.damage_pop = false
  164. end
  165. ###########################################################################
  166. # korapusu
  167. if @battler.damage == nil and @battler.dead?
  168. if @battler.is_a?(Game_Enemy)
  169. $game_system.se_play($data_system.enemy_collapse_se)
  170. collapse
  171. else
  172. $game_system.se_play($data_system.actor_collapse_se)
  173. # 角色战斗图变为角色ID+"Dead"的名字的战斗图
  174. self.bitmap = RPG::Cache.battler(@battler.id.to_s + "Dead", @battler_hue)
  175. @width = bitmap.width
  176. @height = bitmap.height
  177. self.ox = @width / 2
  178. self.oy = @height
  179. end
  180. @battler_visible = false
  181. ###########################################################################
  182. end
  183. end
  184.      # 设置活动块的坐标
  185.      if @flash_shake_switch == true
  186.        self.x = @battler.screen_x
  187.        self.y = @battler.screen_y
  188.        self.z = @battler.screen_z
  189.        @flash_shake_switch = false
  190.      end
  191.      if @flash_shake != 0 and @battler.damage != nil and RPG::BATTLER_JUMP
  192.        case @flash_shake
  193.        when 9..10
  194.          self.x +=3
  195.          self.y = @battler.screen_y
  196.          self.z = @battler.screen_z
  197.        when 6..8
  198.          self.x -=3
  199.          self.y = @battler.screen_y
  200.          self.z = @battler.screen_z
  201.        when 3..5
  202.          self.x +=3
  203.          self.y = @battler.screen_y
  204.          self.z = @battler.screen_z
  205.        when 2
  206.          self.x -=3
  207.          self.y = @battler.screen_y
  208.          self.z = @battler.screen_z
  209.        when 1
  210.          self.x +=3
  211.          self.y = @battler.screen_y
  212.          self.z = @battler.screen_z
  213.        end
  214.        @flash_shake -= 1
  215.      end
  216.    end
  217. end

  218. class Interpreter
  219.    def command_338
  220.      # 获取操作值
  221.      value = operate_value(0, @parameters[2], @parameters[3])
  222.      # 处理循环
  223.      iterate_battler(@parameters[0], @parameters[1]) do |battler|
  224.        # 战斗者存在的情况下
  225.        if battler.exist?
  226.          # 更改 HP
  227.          battler.hp -= value
  228.          # 如果在战斗中
  229.          if $game_temp.in_battle
  230.            # 设置伤害
  231.            battler.damage = value
  232.            battler.damage_pop = true
  233.            battler.battle_solid_damage = true
  234.          end
  235.        end
  236.      end
  237.      # 继续
  238.      return true
  239.    end
  240. end
复制代码
步兵中尉
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 21:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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