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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1404
在线时间
269 小时
注册时间
2017-2-18
帖子
101

开拓者

跳转到指定楼层
1
发表于 2017-4-29 19:00:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
就是说,装备的武器影响到技能的使用~
最好是能通过某种方法将武器分类,然后技能的使用受到武器类型的限制
如果不行,让技能只有在和装备的武器拥有相同的攻击属性时才能使用也好

Lv5.捕梦者

梦石
0
星屑
33455
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

2
发表于 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 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1404
在线时间
269 小时
注册时间
2017-2-18
帖子
101

开拓者

3
 楼主| 发表于 2017-4-29 21:53:17 | 只看该作者
芯☆淡茹水 发表于 2017-4-29 20:52
这个没试过,可以试一下

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

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33455
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

4
发表于 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 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1404
在线时间
269 小时
注册时间
2017-2-18
帖子
101

开拓者

5
 楼主| 发表于 2017-4-30 14:17:12 | 只看该作者
芯☆淡茹水 发表于 2017-4-29 22:13
已经测试好了,逗号用半角

问题解决~十分感谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-21 21:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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