查看: 2385|回复: 2

[已经解决] 如何制作状态效果的法力燃烧?

[复制链接]
梦石
0
星屑
710
在线时间
663 小时
注册时间
2012-10-21
回帖
251
发表于 2014-8-9 22:35:08 | 显示全部楼层 |阅读模式

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

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

×
就是中了某个状态后,每当你施法或者受到MP伤害时,也会受到相应的HP伤害,伤害量为MP的减少量乘以一个系数,请问要怎么实现呢?想向各位大神了
梦石
0
星屑
9687
在线时间
3224 小时
注册时间
2011-3-24
回帖
616

开拓者

发表于 2014-8-9 23:32:17 | 显示全部楼层
给你思路,受到MP伤害的时候
在Game_Battler里面,找到计算技能伤害的方法,(RGSS2中为make_obj_damage_value(user, obj))
判断它是否伤害了MP,
如果是的话,再加状态判断,计算伤害即可
状态嘛,可以用self.states.include?(id)这样的语句(RGSS2)

点评

精!  发表于 2014-8-10 07:35
思路不错,不过没有这么麻烦哦~ 施法时消耗MP你也没有考虑。  发表于 2014-8-10 06:32
>>→Lanza Games 2020←<<
Lanza Schneider
浪子心,孤星梦永远流浪……
~不会放弃,我的精力永远充沛~
>>>>>Lanza Adventure<<<<<
>>>>>Lanza的新年派对!<<<<<
>>>>>Lanza的口袋心脏病!<<<<<
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-8-10 06:29:36 | 显示全部楼层
本帖最后由 taroxd 于 2014-8-10 06:33 编辑

[pre lang="ruby" line="1"]class Game_BattlerBase
  alias mp_assign_20140810 mp=
  def mp=(mp)
    diff = @mp - mp
   # 0.5 为系数,27 为状态ID
    self.hp -= (diff * 0.5).round if state?(27) && diff > 0
    mp_assign_20140810(mp)
  end
end[/pre]

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 我很赞同

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部