Project1

标题: 【求脚本】武器限定技能 [打印本页]

作者: 黯淡的流星    时间: 2017-4-29 19:00
标题: 【求脚本】武器限定技能
就是说,装备的武器影响到技能的使用~
最好是能通过某种方法将武器分类,然后技能的使用受到武器类型的限制
如果不行,让技能只有在和装备的武器拥有相同的攻击属性时才能使用也好
作者: 芯☆淡茹水    时间: 2017-4-29 20:52
本帖最后由 芯☆淡茹水 于 2017-4-29 20:54 编辑

这个没试过,可以试一下
  1. #==============================================================================
  2. module RPG
  3.   class Skill < UsableItem
  4.     def name
  5.       return @name.split(/,/)[0] != nil ? @name.split(/,/)[0] : ""
  6.     end
  7.     def weapon_limit_kind
  8.       return @name.split(/,/)[1] != nil ? @name.split(/,/)[1].to_i : 0
  9.     end
  10.   end
  11.   class Weapon < BaseItem
  12.     def name
  13.       return @name.split(/,/)[0] != nil ? @name.split(/,/)[0] : ""
  14.     end
  15.     def kind
  16.       return @name.split(/,/)[1] != nil ? @name.split(/,/)[1].to_i : 0
  17.     end
  18.   end
  19. end
  20. #--------------------------------------------------------------------------
  21. class Game_Actor < Game_Battler
  22.   def skill_can_use?(skill)
  23.     return false unless skill_learn?(skill)
  24.     return false if weapon_limit(skill)
  25.     return super
  26.   end
  27.   def weapon_limit(skill)
  28.     return true unless skill.is_a?(RPG::Skill)
  29.     return false if skill.weapon_limit_id == 0
  30.     data = weapons.keep_if{|w| w.kind == skill.weapon_limit_kind}
  31.     return data.size == 0
  32.   end
  33. end
  34. #==============================================================================
复制代码


武器类型:武器名字,类型   如  铁剑,1    名字是铁剑,类型是 1 。不写后面的数字,默认类型为0
技能的武器限制:同上 技能名,需要的武器类型      如 十字斩,2      需要装备类型是2的武器才能施展。
                         不写后面的数字,表示这个技能没有武器限制。

作者: 黯淡的流星    时间: 2017-4-29 21:53
芯☆淡茹水 发表于 2017-4-29 20:52
这个没试过,可以试一下

逗号用全角,打开技能面板时显示第五行错误
逗号用半角,打开技能面板时显示第29行错误
作者: 芯☆淡茹水    时间: 2017-4-29 22:13
已经测试好了,逗号用半角

  1. #==============================================================================
  2. module RPG
  3.   class Skill < UsableItem
  4.     def name
  5.       return @name.split(/,/)[0] != nil ? @name.split(/,/)[0] : ""
  6.     end
  7.     def weapon_limit_id
  8.       return @name.split(/,/)[1] != nil ? @name.split(/,/)[1].to_i : 0
  9.     end
  10.   end
  11.   class Weapon < BaseItem
  12.     def name
  13.       return @name.split(/,/)[0] != nil ? @name.split(/,/)[0] : ""
  14.     end
  15.     def kind
  16.       return @name.split(/,/)[1] != nil ? @name.split(/,/)[1].to_i : 0
  17.     end
  18.   end
  19. end
  20. #--------------------------------------------------------------------------
  21. class Game_Actor < Game_Battler
  22.   def skill_can_use?(skill)
  23.     return false unless skill_learn?(skill)
  24.     return false if weapon_limit(skill)
  25.     return super
  26.   end
  27.   def weapon_limit(skill)
  28.     return true unless skill.is_a?(RPG::Skill)
  29.     return false if skill.weapon_limit_id == 0
  30.     data = weapons.find{|w| next if w.nil?;w.kind == skill.weapon_limit_id}
  31.     return data.nil?
  32.   end
  33. end
  34. #==============================================================================
复制代码

作者: 黯淡的流星    时间: 2017-4-30 14:17
芯☆淡茹水 发表于 2017-4-29 22:13
已经测试好了,逗号用半角

问题解决~十分感谢!




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