查看: 3390|回复: 4

[已经解决] VA如何实现伤害转移致SP

[复制链接]
梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
发表于 2013-8-10 21:10:12 | 显示全部楼层 |阅读模式

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

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

×
求教,就是比如魔法师的魔法盾这个技能是,使用后是对自己附加一个状态,这个状态存在的时候,HP受到伤害是减SP而不是减HP
梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
回帖
693
发表于 2013-8-11 08:14:55 | 显示全部楼层

点评

收到~  发表于 2013-8-11 13:21
回复

使用道具 举报

梦石
0
星屑
49
在线时间
276 小时
注册时间
2011-6-5
回帖
128
发表于 2013-8-11 13:20:34 | 显示全部楼层
插件脚本:
  1. class Game_Battler < Game_BattlerBase
  2.   
  3.   STATE_ID = 15   #魔法盾状态的id号
  4.   MP_RATE  = 0.4  #魔法盾吸收伤害的比率0.4就是10点伤害hp6点mp4点
  5.   
  6.   #--------------------------------------------------------------------------
  7.   # ● 计算伤害
  8.   #--------------------------------------------------------------------------
  9.   def make_damage_value(user, item)
  10.     value = item.damage.eval(user, self, $game_variables)
  11.     value *= item_element_rate(user, item)
  12.     value *= pdr if item.physical?
  13.     value *= mdr if item.magical?
  14.     value *= rec if item.damage.recover?
  15.     value = apply_critical(value) if @result.critical
  16.     value = apply_variance(value, item.damage.variance)
  17.     value = apply_guard(value)
  18.     if item.damage.to_hp? and self.state?(STATE_ID)
  19.       mp_value = [(value * MP_RATE).to_i  , self.mp].min
  20.       value -= mp_value
  21.       self.mp -= mp_value
  22.     end
  23.     @result.make_damage(value.to_i, item)
  24.   end
  25. end
复制代码
自行设置 STATE_ID 和 MP_RATE(0~1)
用mp代替部分的hp伤害,mp不足则抵挡小部分伤害。
研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这话句后,才发这现里的字全是都乱的
回复

使用道具 举报

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
回帖
693
发表于 2013-8-11 16:58:29 | 显示全部楼层
救世小树 发表于 2013-8-11 13:20
插件脚本:自行设置 STATE_ID 和 MP_RATE(0~1)
用mp代替部分的hp伤害,mp不足则抵挡小部分伤害。 ...

是不是可以再改一个?如果HP值比较高,MP比较低的游戏,那么魔法盾会几下就被耗光了。能不能设置1点MP抵御几点伤害,甚至是一个变量值伤害。
回复

使用道具 举报

梦石
0
星屑
49
在线时间
276 小时
注册时间
2011-6-5
回帖
128
发表于 2013-8-11 19:36:15 | 显示全部楼层
lirn 发表于 2013-8-11 16:58
是不是可以再改一个?如果HP值比较高,MP比较低的游戏,那么魔法盾会几下就被耗光了。能不能设置1点MP抵 ...

ok,小小地改下~
  1. class Game_Battler < Game_BattlerBase
  2.   
  3.   STATE_ID = 15   #魔法盾状态的id号
  4.   MP_RATE  = 0.4  #魔法盾吸收伤害的比率0.4就是10点伤害hp6点mp4点
  5.   MP_DAMAGE_RATE = 2
  6.   VARIABLE_ID = 3      #1点mp抵消(3号变量的值+2)点伤害,如果不需要变量功能,就把这个值设为0或负数
  7.   #--------------------------------------------------------------------------
  8.   # ● 计算伤害
  9.   #--------------------------------------------------------------------------
  10.   def make_damage_value(user, item)
  11.     value = item.damage.eval(user, self, $game_variables)
  12.     value *= item_element_rate(user, item)
  13.     value *= pdr if item.physical?
  14.     value *= mdr if item.magical?
  15.     value *= rec if item.damage.recover?
  16.     value = apply_critical(value) if @result.critical
  17.     value = apply_variance(value, item.damage.variance)
  18.     value = apply_guard(value)
  19.     if item.damage.to_hp? and self.state?(STATE_ID)
  20.       mrate = MP_DAMAGE_RATE
  21.       mrate += $game_variables[VARIABLE_ID] if $game_variables[VARIABLE_ID]
  22.       mp_value = [(value * MP_RATE/mrate).to_i  , self.mp].min
  23.       value -= mp_value * mrate
  24.       self.mp -= mp_value
  25.     end
  26.     @result.make_damage(value.to_i, item)
  27.   end
  28. end
复制代码

点评

我在範例用沒有問題...看來是我下的腳本問題...  发表于 2014-6-23 01:47
不知為甚麼用在我的vx ace上沒有效果  发表于 2014-6-23 00:21
好东西,收下了。  发表于 2013-8-12 16:05

评分

参与人数 1梦石 +2 收起 理由
迷糊的安安 + 2 精品答案 附赠精美好人卡2张~~

查看全部评分

研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这话句后,才发这现里的字全是都乱的
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部