查看: 2251|回复: 1

[已经解决] 消耗当前TP值的问题

[复制链接]
梦石
10
星屑
5748
在线时间
1849 小时
注册时间
2013-2-14
回帖
327

开拓者

发表于 2015-9-17 10:50:01 | 显示全部楼层 |阅读模式

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

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

×

问题是如果做一个消耗当前TP值的技能?
比如:角色当前的TP值为80,那么该技能就是消耗80的TP值,造成80%伤害。

搜索了后找到了这个答案:https://rpg.blue/thread-366142-1-1.html

但是如那贴里所说,如果敌人不是单人的话就会没效果,请问要怎么改?

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2015-9-17 16:34:08 | 显示全部楼层
本帖最后由 cinderelmini 于 2015-9-21 14:43 编辑

Game_Battler里面的【计算伤害】部分:
  1.   #--------------------------------------------------------------------------
  2.   # ● 计算伤害
  3.   #--------------------------------------------------------------------------
  4.   def make_damage_value(user, item)
  5.     value = item.damage.eval(user, self, $game_variables)
  6.     value *= item_element_rate(user, item)
  7.     value *= pdr if item.physical?
  8.     value *= mdr if item.magical?
  9.     value *= rec if item.damage.recover?
  10.     value = apply_critical(value) if @result.critical
  11.     value = apply_variance(value, item.damage.variance)
  12.     value = apply_guard(value)
  13.     if user.is_a?(Game_Actor)
  14.       if item.id == 50              # 消耗全部TP的技能ID分歧,多技能的话请用include?的方式
  15.         value *= 1 + user.tp_rate
  16.       end
  17.     end
  18.     @result.make_damage(value.to_i, item)
  19.   end
复制代码
计算伤害的部分,然后技能设置的时候这个技能的TP消耗设定为0。
(清楚tp的那句还是不要放在这里了。)
之后去【Scene_Battle】里(用了别的战斗系统的话就去新的战斗系统里)找到“use_item”方法,然后把

  1.     @subject.use_item(item)
  2.     refresh_status
复制代码
这两句放到方法的最后去,这样应该真的就可以了。。。。
PS:为了让这个行为可逆,请用复制和注释的方式,以免忘记它们原来的位置(雾


include?的用法的话,如果自己有module的话,
就可以在module里写个技能组,如:
  1. module XXX
  2.   TP_SKILL_IDS = []
  3.   for i in 50..100
  4.     TP_SKILL_IDS.push(i)
  5.   end
  6. end
复制代码
如果没有自己的模块的话,就在mian脚本里面找个空白的地方写:

  1. $tp_skill_ids = []
  2. for i in 50..100
  3.   $tp_skill_ids.push(i)
  4. end
复制代码
然后用的时候,像这样就行:
  1. if XXX::TP_SKILL_IDS.include?(skill.id)
  2. # 或者:
  3. if $tp_skill_ids.include?(skill.id)
复制代码
唔。。就这样。。。
总之就是先建个数组,把包含的ID全塞进去,再判断这个数组是不是包含了当前的技能ID……

点评

很感谢。。可以了。。  发表于 2015-9-21 17:47
唔。。如果自己会建module模块的话会比较方便。。嘛呀。。点评写不了那么多东西。。窝更一下楼……  发表于 2015-9-21 14:37
不好意思,我再问下,我include?不是很懂,如果我要一个区间内的技能消耗全部要怎么改,例如50-100的技能。。  发表于 2015-9-20 23:24
感谢,这次可以了、、  发表于 2015-9-19 14:25
噗。。。窝忘说了,消耗就跟第一次说的那样,在Scene_BattleBase里面的技能消耗那里写技能ID分歧扣TP就好。  发表于 2015-9-19 13:40

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部