查看: 2709|回复: 3

[有事请教] KGC_AddEquipmentOptions脚本的问题

[复制链接]
梦石
0
星屑
150
在线时间
50 小时
注册时间
2011-11-22
回帖
41
发表于 2019-4-23 23:20:23 | 显示全部楼层 |阅读模式

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

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

×
这个脚本里有一个功能
ABSORB_MP MP吸收
内容是这么写的:
[pre lang="ruby"]  #--------------------------------------------------------------------------
  # ○ MP 吸収効果の適用
  #     user : 攻撃者
  #     obj  : スキルまたはアイテム (nil なら通常攻撃)
  #    結果は @hp_damage または @mp_damage に代入する。
  #--------------------------------------------------------------------------
  def make_absorb_mp_value(user, obj = nil)
    return unless mp_absorb?(user, obj)

    # HP ダメージを MP 回復値に変換
    rate = elements_max_rate( (obj == nil ? user : obj).element_set )
    rate = rate.abs * calc_absorb_mp_rate / 100
    @mp_damage -= [@hp_damage.abs * rate / 100, 1].max
    @hp_damage = 0
  end
  #--------------------------------------------------------------------------
  # ○ MP 吸収判定
  #     user : 攻撃者
  #     obj  : スキルまたはアイテム (nil なら通常攻撃)
  #--------------------------------------------------------------------------
  def mp_absorb?(user, obj = nil)
    if obj.is_a?(RPG::UsableItem)
      return false if obj.base_damage < 0     # 回復なら吸収しない
      if obj.is_a?(RPG::Item)
        # 回復アイテムなら吸収しない
        return false if obj.hp_recovery_rate > 0 || obj.hp_recovery > 0
      end
    end
    return false if calc_absorb_mp_rate == 0  # 吸収率が 0 なら吸収しない
    rate = elements_max_rate( (obj == nil ? user : obj).element_set )
    return false if rate >= 0                 # 有効な属性なら吸収しない

    return true
  end[/pre]

但是实际写到注释后没有效果,是哪里出了问题呢?
梦石
0
星屑
353
在线时间
15 小时
注册时间
2019-4-14
回帖
28
发表于 2019-4-23 23:22:54 | 显示全部楼层
这个写着是吸收伤害后原本恢复hp变成mp而已
楼主想想什么情况之下人物受到伤害时会加hp,就知道怎么设置了。
回复

使用道具 举报

梦石
0
星屑
150
在线时间
50 小时
注册时间
2011-11-22
回帖
41
 楼主| 发表于 2019-4-23 23:33:47 | 显示全部楼层
活气寒露 发表于 2019-4-23 23:22
这个写着是吸收伤害后原本恢复hp变成mp而已
楼主想想什么情况之下人物受到伤害时会加hp,就知道怎么设置了 ...

意思是“吸收伤害后”而不是“受到伤害后”吗……
但是我没有这种类似技能的脚本 我估计是KGC其他部分配合使用才行
回复

使用道具 举报

梦石
0
星屑
353
在线时间
15 小时
注册时间
2019-4-14
回帖
28
发表于 2019-4-23 23:40:48 | 显示全部楼层
本帖最后由 活气寒露 于 2019-4-23 23:48 编辑
linyifei 发表于 2019-4-23 23:33
意思是“吸收伤害后”而不是“受到伤害后”吗……
但是我没有这种类似技能的脚本 我估计是KGC其他部分配 ...


是受到伤害后吸收伤害噢
看看这段你就明白了
    # HP ダメージを MP 回復値に変換
    #比率设置
    rate = elements_max_rate( (obj == nil ? user : obj).element_set )
    #比率计算
    rate = rate.abs * calc_absorb_mp_rate / 100
    #mp伤害设置
    @mp_damage -= [@hp_damage.abs * rate / 100, 1].max
    #hp伤害设置
    @hp_damage = 0

这做法的目的就是把受到的伤害清0
追加mp伤害的相反值
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部