Project1

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

作者: 黯淡的流星    时间: 2017-5-14 15:35
标题: 【脚本修改】武器限定技能
之前求了个武器限定技能的脚本,在这里感谢一下芯☆淡茹水~
但是与使用的随机属性、装备强化发生了冲突,所以求修改一下,将它的判定方式由通过名称判定改成通过备注判定
RUBY 代码复制
  1. =begin
  2. *黯淡的流星所加注释:该脚本的使用方法
  3. 在武器的名称(注意是名称!)后写上 ,数字就可以将此武器定义为x类型(X为填写的数字)
  4. 例如:长剑,1 就是说,此武器的名字是“长剑”,类型是1
  5.  
  6. 在技能的名称后写上 ,数字就可以这个技能定义为x类型,只有在装备了相同类型的武器时
  7. 才能使用,例如:重斩,1 就是说技能“重斩”只有在装备1类型武器时才能使用
  8.  
  9. 当武器名称后没有填写时,默认该武器类型为0,在装备该武器时无法使用任何定义了类型
  10. 的技能
  11.  
  12. 当技能名称后没有填写时,默认该技能类型为0,在装备任何武器时都可以使用
  13.  
  14. 注意:逗号用半角!用半角!用半角!重要的事情说三遍
  15. =end
  16. #==============================================================================
  17. module RPG
  18.   class Skill < UsableItem
  19.     def name
  20.       return @name.split(/,/)[0] != nil ? @name.split(/,/)[0] : ""
  21.     end
  22.     def weapon_limit_id
  23.       return @name.split(/,/)[1] != nil ? @name.split(/,/)[1].to_i : 0
  24.     end
  25.   end
  26.   class Weapon < BaseItem
  27.     def name
  28.       return @name.split(/,/)[0] != nil ? @name.split(/,/)[0] : ""
  29.     end
  30.     def kind
  31.       return @name.split(/,/)[1] != nil ? @name.split(/,/)[1].to_i : 0
  32.     end
  33.   end
  34. end
  35. #--------------------------------------------------------------------------
  36. class Game_Actor < Game_Battler
  37.   def skill_can_use?(skill)
  38.     return false unless skill_learn?(skill)
  39.     return false if weapon_limit(skill)
  40.     return super
  41.   end
  42.   def weapon_limit(skill)
  43.     return true unless skill.is_a?(RPG::Skill)
  44.     return false if skill.weapon_limit_id == 0
  45.     data = weapons.find{|w| next if w.nil?;w.kind == skill.weapon_limit_id}
  46.     return data.nil?
  47.   end
  48. end
  49. #==============================================================================

作者: 芯☆淡茹水    时间: 2017-5-14 17:26
  1. #==============================================================================
  2. module RPG
  3.   class Skill < UsableItem
  4.     def weapon_limit_id
  5.       return 0 unless @note.include?("Need_weapon")
  6.       @note.gsub!(/\<Need_weapon (\d+)\>/){return $1.to_i}
  7.     end
  8.   end
  9.   class Weapon < BaseItem
  10.     def kind
  11.       return 0 unless @note.include?("Kind")
  12.       @note.gsub!(/\<Kind (\d+)\>/){return $1.to_i}
  13.     end
  14.   end
  15. end
  16. #--------------------------------------------------------------------------
  17. class Game_Actor < Game_Battler
  18.   def skill_can_use?(skill)
  19.     return false unless skill_learn?(skill)
  20.     return false if weapon_limit(skill)
  21.     return super
  22.   end
  23.   def weapon_limit(skill)
  24.     return true unless skill.is_a?(RPG::Skill)
  25.     return false if skill.weapon_limit_id == 0
  26.     data = weapons.find{|w| next if w.nil?;w.kind == skill.weapon_limit_id}
  27.     return data.nil?
  28.   end
  29. end
  30. #==============================================================================
复制代码


技能加武器种类限制,在备注写:<Need_weapon 种类>  比如: <Need_weapon 2>  <Need_weapon 10>
Need_weapon 后面留一空格再写数字。
武器添加种类,在备注写: <Kind 种类>  ,格式同上。
这个没测试,不知道能不能成功
作者: 大胃王大卫    时间: 2017-5-14 17:33
亲 可以修改武器的大小吗? 急!
作者: 黯淡的流星    时间: 2017-5-20 15:57
芯☆淡茹水 发表于 2017-5-14 17:26
技能加武器种类限制,在备注写:  比如:   
Need_weapon 后面留一空格再写数字。
武器添加种类,在备注写 ...

不行……没有用,即便没有装备脚本中定义类型的武器,技能照样可以正常使用




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