设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2056|回复: 1
打印 上一主题 下一主题

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

[复制链接]

Lv4.逐梦者

梦石
10
星屑
5533
在线时间
1848 小时
注册时间
2013-2-14
帖子
395

开拓者

跳转到指定楼层
1
发表于 2015-9-17 10:50:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x

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

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

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

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9542
在线时间
2756 小时
注册时间
2008-9-5
帖子
3544

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

2
发表于 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 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-21 01:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表