查看: 1358|回复: 3

[已经解决] 橫板如何做到被敵人攻擊後回MP?

[复制链接]
梦石
0
星屑
50
在线时间
448 小时
注册时间
2011-10-9
回帖
138
发表于 2012-12-15 19:29:46 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 冷徹心扉 于 2012-12-15 23:13 编辑

如主題,類似於蓄氣的概念
遭受敵人攻擊後,回復一些MP
若能夠依照損傷比例回復MP會更有意思些

点评

我的理解是某状态下被攻击时MP会增加,如果是角色的特性的话,需要另外一种判定方法  发表于 2012-12-15 20:40
梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
回帖
1419
发表于 2012-12-15 19:55:28 | 显示全部楼层
这个倒很简单, 在Game_Battler脚本中计算伤害的地方,
  1. if self.state?(X) #X为该状态的ID  
  2. self.mp += damage/Y #damage就是伤害,
  3. end
复制代码

点评

嗯,其實不用滿足什麼條件,被攻擊就能回MP了,是說正常狀態會有編號嗎?  发表于 2012-12-15 20:46
是計算傷害公式的地方嗎?那麼狀態ID指的是?  发表于 2012-12-15 20:25
这是一个深不见底的坑,这是一个广袤无边的坑,我才刚刚放上了一抔泥土……

《六道·陈国篇》开坑了……↓点我
回复

使用道具 举报

梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
回帖
1419
发表于 2012-12-15 21:35:22 | 显示全部楼层
既然是角色的特性,那么就是这样:
  1.     if self.is_a?(Game_Actor) and self.id == 1  #1号角色具有该特性
  2.       self.mp +=damage/Y if damage > 0
  3.     end
复制代码
在计算普通攻击和技能攻击的地方都添加进去就行了。

评分

参与人数 1星屑 +2 收起 理由
怪蜀黍 + 2 精品文章

查看全部评分

这是一个深不见底的坑,这是一个广袤无边的坑,我才刚刚放上了一抔泥土……

《六道·陈国篇》开坑了……↓点我
回复

使用道具 举报

梦石
0
星屑
50
在线时间
448 小时
注册时间
2011-10-9
回帖
138
 楼主| 发表于 2012-12-15 22:33:31 | 显示全部楼层
本帖最后由 冷徹心扉 于 2012-12-15 23:13 编辑

如果不做角色編號判定的話,確實有回復MP的效果
不過問題來了,MP會出現小數點{:2_270:}

  def make_attack_damage_value(attacker)
    damage = (attacker.atk * 1 - self.def  * 0.7) + 1       # 物理攻擊      
      self.mp +=damage/10 if damage > 0        
    end
    end   


解決了
我自己加了個取整
      self.mp = self.mp.round         
就搞定了,非常感謝!
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部