查看: 2541|回复: 6

[已经解决] 【求脚本】武器限定技能

[复制链接]
梦石
0
星屑
1501
在线时间
277 小时
注册时间
2017-2-18
回帖
80

开拓者

发表于 2017-4-29 19:00:58 | 显示全部楼层 |阅读模式

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

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

×
就是说,装备的武器影响到技能的使用~
最好是能通过某种方法将武器分类,然后技能的使用受到武器类型的限制
如果不行,让技能只有在和装备的武器拥有相同的攻击属性时才能使用也好
梦石
0
星屑
34459
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2017-4-29 20:52:47 | 显示全部楼层
本帖最后由 芯☆淡茹水 于 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:28
在游戏中会显示后面附带的数字吗  发表于 2017-4-29 21:20
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
1501
在线时间
277 小时
注册时间
2017-2-18
回帖
80

开拓者

 楼主| 发表于 2017-4-29 21:53:17 | 显示全部楼层
芯☆淡茹水 发表于 2017-4-29 20:52
这个没试过,可以试一下

逗号用全角,打开技能面板时显示第五行错误
逗号用半角,打开技能面板时显示第29行错误
回复

使用道具 举报

梦石
0
星屑
34459
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2017-4-29 22:13:18 | 显示全部楼层
已经测试好了,逗号用半角

  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. #==============================================================================
复制代码
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
1501
在线时间
277 小时
注册时间
2017-2-18
回帖
80

开拓者

 楼主| 发表于 2017-4-30 14:17:12 | 显示全部楼层
芯☆淡茹水 发表于 2017-4-29 22:13
已经测试好了,逗号用半角

问题解决~十分感谢!
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部