Project1

标题: 如何让攻击次数对技能也有效? [打印本页]

作者: bloodyliao    时间: 2014-8-1 20:08
标题: 如何让攻击次数对技能也有效?
RT,攻击次数目前只对技能1(普通攻击)有加成,如何让它对其他技能也有效果?
作者: taroxd    时间: 2014-8-1 20:11
RUBY 代码复制
  1. class Game_Action
  2.   def targets_for_opponents
  3.     if item.for_random?
  4.       Array.new(item.number_of_targets) { opponents_unit.random_target }
  5.     elsif item.for_one?
  6.       num = 1 + subject.atk_times_add.to_i
  7.       if @target_index < 0
  8.         [opponents_unit.random_target] * num
  9.       else
  10.         [opponents_unit.smooth_target(@target_index)] * num
  11.       end
  12.     else
  13.       opponents_unit.alive_members
  14.     end
  15.   end
  16. end


未测试
作者: bloodyliao    时间: 2014-8-1 21:32
用了之后没效果啊?攻击一次的技能依然还是攻击一次,无论主角加了多少攻击次数……
作者: taroxd    时间: 2014-8-1 21:41
bloodyliao 发表于 2014-8-1 21:32
用了之后没效果啊?攻击一次的技能依然还是攻击一次,无论主角加了多少攻击次数…… ...

经测试没有问题。艾里克攻击次数+1

Project2.rar (295.68 KB, 下载次数: 70)
作者: bloodyliao    时间: 2014-8-1 22:13
本帖最后由 bloodyliao 于 2014-8-1 22:19 编辑
taroxd 发表于 2014-8-1 21:41
经测试没有问题。艾里克攻击次数+1


啊啊,好了,自己解决了,谢谢你!抱抱!
作者: bloodyliao    时间: 2014-8-2 10:35
又有新问题了……没解决QAQ
能不能限定特定类型、特定几个id的技能才会追加攻击次数呢?不然扔个火球、治疗也多次的话太离奇了……
作者: taroxd    时间: 2014-8-2 12:20
bloodyliao 发表于 2014-8-2 10:35
又有新问题了……没解决QAQ
能不能限定特定类型、特定几个id的技能才会追加攻击次数呢?不然扔个火球、治疗 ...

可以。对比插入的脚本与原脚本的不同,将 attack? 换为其他判定条件即可。

我现在爪机上,不方便写脚本。你自己试着弄弄吧。
作者: bloodyliao    时间: 2014-8-2 12:32
taroxd 发表于 2014-8-2 12:20
可以。对比插入的脚本与原脚本的不同,将 attack? 换为其他判定条件即可。

我现在爪机上,不方便写脚本 ...

咱等泥……不太会改……
希望改成:1、特定类型的技能无法有攻击次数加成
               2、在技能备注里加<no attck time bonus>也使得这个技能没有加成……

谢谢斑竹大人啦!
作者: taroxd    时间: 2014-8-2 16:37
bloodyliao 发表于 2014-8-2 12:32
咱等泥……不太会改……
希望改成:1、特定类型的技能无法有攻击次数加成
               2、在技能备注 ...


RUBY 代码复制
  1. class Game_Action
  2.  
  3.   def repeat_ok?
  4.     item.is_a?(RPG::Skill) && ![1,3,5].include?(item.stype_id) &&
  5.       !item.note.include?('<no attck time bonus>')
  6.   end
  7.  
  8.   def targets_for_opponents
  9.     if item.for_random?
  10.       Array.new(item.number_of_targets) { opponents_unit.random_target }
  11.     elsif item.for_one?
  12.       num = 1 + (repeat_ok? ? subject.atk_times_add.to_i : 0)
  13.       if @target_index < 0
  14.         [opponents_unit.random_target] * num
  15.       else
  16.         [opponents_unit.smooth_target(@target_index)] * num
  17.       end
  18.     else
  19.       opponents_unit.alive_members
  20.     end
  21.   end
  22.  
  23. end


未测试,条件请自己在 repeat_ok? 里面修改
另外你 attack 拼错了我就按照你的了~
作者: bloodyliao    时间: 2014-8-2 17:50
taroxd 发表于 2014-8-2 16:37
class Game_Action
  
  def repeat_ok?

[1,3,5].include?(item.stype_id)是说包括1,3,5号技能类型吗?
作者: bloodyliao    时间: 2014-8-21 12:56
Bump,这样子,如果技能本身攻击次数大于1,比如是2的话,实际攻击次数就不是加上攻击次数了,而是乘倍……
比如,一个技能本身次数是3,如果角色攻击次数是+2,那么实际攻击次数是9而不是5……

要怎么办?我把 * num 改成 + num 出错啊




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1