赞 | 13 |
VIP | 320 |
好人卡 | 64 |
积分 | 3 |
经验 | 112963 |
最后登录 | 2022-8-25 |
在线时间 | 2355 小时 |
Lv2.观梦者 (暗夜天使)
- 梦石
- 0
- 星屑
- 266
- 在线时间
- 2355 小时
- 注册时间
- 2009-3-13
- 帖子
- 2309
|
本帖最后由 Sion 于 2013-2-28 22:04 编辑
伤害只有如下选项,不能操作TP:
那么只能自己修改一下代码:- class Game_ActionResult
- #--------------------------------------------------------------------------
- # ● 生成伤害
- #--------------------------------------------------------------------------
- def make_damage(value, item)
- @critical = false if value == 0
- if item.tp_recovery? # 判断物品/技能是否是用于特技回复
- @tp_damage = -value
- elsif item.damage.to_hp?
- @hp_damage = value
- end
- @mp_damage = value if item.damage.to_mp?
- @mp_damage = [@battler.mp, @mp_damage].min
- @hp_drain = @hp_damage if item.damage.drain?
- @mp_drain = @mp_damage if item.damage.drain?
- @hp_drain = [@battler.hp, @hp_drain].min
- @success = true if item.damage.to_hp? || @mp_damage != 0
- end
- end
- class Game_Battler < Game_BattlerBase
- #--------------------------------------------------------------------------
- # ● 计算伤害
- #--------------------------------------------------------------------------
- def make_damage_value(user, item)
- value = item.damage.eval(user, self, $game_variables)
- value *= item_element_rate(user, item)
- value *= pdr if item.physical?
- value *= mdr if item.magical?
- value *= rec if item.damage.recover?
- value = apply_critical(value) if @result.critical
- value = apply_variance(value, item.damage.variance)
- value = apply_guard(value) unless item.tp_recovery? # 如果特技回复则不计算防御修正
- @result.make_damage(value.to_i, item)
- end
- #--------------------------------------------------------------------------
- # ● 处理伤害
- # 调用前需要设置好
- # @result.hp_damage @result.mp_damage
- # @result.hp_drain @result.mp_drain
- #--------------------------------------------------------------------------
- def execute_damage(user)
- on_damage(@result.hp_damage) if @result.hp_damage > 0
- self.hp -= @result.hp_damage
- self.mp -= @result.mp_damage
- self.tp -= @result.tp_damage # 特技回复的处理
- user.hp += @result.hp_drain
- user.mp += @result.mp_drain
- end
- end
- class Window_BattleLog < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 显示 HP 伤害
- #--------------------------------------------------------------------------
- def display_hp_damage(target, item)
- return if target.result.hp_damage == 0 && item && !item.damage.to_hp?
- return if item.tp_recovery? # 如果特技回复则不显示HP伤害提示
- if target.result.hp_damage > 0 && target.result.hp_drain == 0
- target.perform_damage_effect
- end
- Sound.play_recovery if target.result.hp_damage < 0
- add_text(target.result.hp_damage_text)
- wait
- end
- end
- class RPG::UsableItem
- def tp_recovery?
- self.note.each_line do |line|
- return true if line.include?("特技回复")
- end
- return false
- end
- end
-
复制代码 在备注中加入: 特技回复
伤害计算公式得到的数值就可以用于回复特技了。
注意:伤害类型只能选体力值伤害,选其它的话恐怕会造成额外的效果。
改了下代码,因为发现一些bug…… |
评分
-
查看全部评分
|