Project1

标题: 怎么做这样一个被动,受到伤害的100%转化为TP值? [打印本页]

作者: 小姐姐一个    时间: 2020-8-12 21:46
标题: 怎么做这样一个被动,受到伤害的100%转化为TP值?
本帖最后由 小姐姐一个 于 2020-8-13 06:57 编辑

也就是lol的腕豪被动
这是Game_Battler里增加TP(特定的8号角色)
  #--------------------------------------------------------------------------
  # ● 受到伤害时增加的 TP
  #--------------------------------------------------------------------------
  def charge_tp_by_damage(damage_rate)
    if @actor_id == 8
       self.tp += 50 * damage_rate * tcr
      else
    self.tp += 50 * damage_rate * tcr
    end
  end
求大佬在上面的基础上做下修改 也就是受到伤害的100%加为TP值
也就是敌人打8号角色15点伤害,该角色就加15点TP 谢谢大佬了~
作者: alexncf125    时间: 2020-8-12 23:09
本帖最后由 alexncf125 于 2020-8-13 08:40 编辑

你的damage = 50 * damage_rate * tcr中的"damage"是什么原意??

  1. class Game_ActionResult
  2.   alias old_make_damage_old make_damage
  3.   def make_damage(value, item)
  4.     old_make_damage_old(value, item)
  5.     $charge_tp_damage = value if item.damage.to_hp?
  6.   end
  7. end

  8. class Game_Battler < Game_BattlerBase

  9.   attr_accessor   :charge_tp_damage

  10.   alias old_initialize_old initialize
  11.   def initialize
  12.     @charge_tp_damage = 0
  13.     old_initialize_old
  14.   end
  15.   
  16.   alias old_charge_tp_by_damage_old charge_tp_by_damage
  17.   def charge_tp_by_damage(damage_rate)
  18.     @charge_tp_damage = $charge_tp_damage
  19.     if @actor_id == 8 && @charge_tp_damage > 0
  20.       self.tp += @charge_tp_damage
  21.       @charge_tp_damage = 0
  22.     else
  23.       old_charge_tp_by_damage_old(damage_rate)
  24.       @charge_tp_damage = 0
  25.     end
  26.   end
  27. end
复制代码

作者: 坏数据    时间: 2020-8-13 00:44
哈哈 楼主好喜欢lol的技能机制啊
我也是

作者: 小姐姐一个    时间: 2020-8-13 06:54
本帖最后由 小姐姐一个 于 2020-8-13 06:58 编辑
alexncf125 发表于 2020-8-12 23:09
你的damage = 50 * damage_rate * tcr中的"damage"是什么原意??

以下未测试


这是我疏忽了 没看 已改
  #--------------------------------------------------------------------------
  # ● 受到伤害时增加的 TP
  #--------------------------------------------------------------------------
  def charge_tp_by_damage(damage_rate)
    if @actor_id == 8
       self.tp += 50 * damage_rate * tcr
      else
    self.tp += 50 * damage_rate * tcr
    end
  end
还有就是使用后会报错

捕获.PNG (7.73 KB, 下载次数: 24)

捕获.PNG

作者: 芯☆淡茹水    时间: 2020-8-13 08:06
  1. #==============================================================================
  2. class Game_Actor
  3.   #--------------------------------------------------------------------------
  4.   alias :xr_damage_becomes_tp :hp=
  5.   def hp=(hp)
  6.     last_hp = @hp
  7.     xr_damage_becomes_tp(hp)
  8.     if ($game_party.in_battle && last_hp > @hp && !dead?)
  9.       self.tp += last_hp - @hp
  10.     end
  11.   end
  12. end
  13. #==============================================================================
复制代码





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