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

Project1

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

[已经解决] 请问如何限定装备某类武器才能使用特定技能?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
138 小时
注册时间
2012-7-2
帖子
173
跳转到指定楼层
1
发表于 2016-10-23 23:07:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
假定有一个职业是可以装备任意类别武器的,但是该职业的某个技能只有装备弓箭类武器才能使用,否则战斗中显示灰色无法使用,请问这个该怎么设定?
请大家赐教~~~
我只属于我一个人的世界~~~

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

2
发表于 2016-10-23 23:39:20 | 只看该作者
。。。我差点以为这不是xp区,xp区你角色职业用的武器都是一个个设置的···
通常来说你可以给装备名称加后缀,比如“铁剑:1”,“:1”的1就是装备类型1,然后技能限定里设置成某个技能必须是装备名称后缀为“:1”才能用,当然你也可以用其他的方法
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
13614
在线时间
3850 小时
注册时间
2013-7-18
帖子
2310
3
发表于 2016-10-24 08:48:59 | 只看该作者
本帖最后由 y967 于 2016-10-24 08:56 编辑
  1. #===============================================================================
  2. # ■ 武器限制技能脚本
  3. #-------------------------------------------------------------------------------
  4. # 使用方法:
  5. #   1. 插入Game_Actor之后,Main之前的任意位置。
  6. #   1. 在下面设置需要被视为武器种类的属性名称。
  7. #   2. 在属性列表内增加相对应的属性
  8. #   3. 利用武器属性来设置种类,每个武器只能归类到一个种类。
  9. #   4. 利用技能属性来设置发动技能需要的武器种类,可以设置多个,但只需满足其中
  10. #      一个便可发动。
  11. #   5. 没有设定条件的技能在任何武器或没有武器的情况下皆可发动。
  12. #===============================================================================
  13. module WLS
  14.   #-----------------------------------------------------------------------------
  15.   # 名称列在此的属性会被视为武器种类处理。
  16.   # 被视为武器种类的属性将不会对伤害造成任何影响。
  17.   #-----------------------------------------------------------------------------
  18.   TYPES = ["剑", "杖", "斧", "弓"]
  19.   #-----------------------------------------------------------------------------
  20.   unless defined?(ACTOR)
  21.     ACTOR  = ::Game_Actor.clone
  22.     WEAPON = ::RPG::Weapon.clone
  23.     SKILL  = ::RPG::Skill.clone
  24.     ITEM   = ::RPG::Item.clone
  25.     ARMOR  = ::RPG::Armor.clone
  26.     ENEMY  = ::RPG::Enemy.clone
  27.     CLASS  = ::RPG::Class.clone
  28.     STATE  = ::RPG::State.clone
  29.   end
  30. end
  31. class Game_Actor < WLS::ACTOR
  32.   def skill_can_use?(id)
  33.     weapon = $data_weapons[@weapon_id]
  34.     skill = $data_skills[id]
  35.     return ((skill.required_types.empty? or (skill.required_types.include?(weapon.type))) and super)
  36.   end
  37. end
  38. class RPG::Weapon < WLS::WEAPON
  39.   def type
  40.     temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
  41.     return @element_set.find{|e|temp.include?(e)}
  42.   end
  43.   def element_set
  44.     set = super.clone
  45.     temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
  46.     set.delete_if{|e|temp.include?(e)}
  47.     return set
  48.   end
  49. end
  50. class RPG::Skill < WLS::SKILL
  51.   def required_types
  52.     temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
  53.     return @element_set.find_all{|e|temp.include?(e)}
  54.   end
  55.   def element_set
  56.     set = super.clone
  57.     temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
  58.     set.delete_if{|e|temp.include?(e)}
  59.     return set
  60.   end
  61. end
  62. class RPG::Item < WLS::ITEM
  63.   def element_set
  64.     set = super.clone
  65.     temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
  66.     set.delete_if{|e|temp.include?(e)}
  67.     return set
  68.   end
  69. end
  70. class RPG::Armor < WLS::ARMOR
  71.   def guard_element_set
  72.     set = super.clone
  73.     temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
  74.     set.delete_if{|e|temp.include?(e)}
  75.     return set
  76.   end
  77. end
  78. class RPG::Enemy < WLS::ENEMY
  79.   Action = WLS::ENEMY::Action
  80.   def element_ranks
  81.     ranks = super.clone
  82.     WLS::TYPES.each do |t|
  83.       ranks[$data_system.elements.index(t)] = 3
  84.     end
  85.     return ranks
  86.   end
  87. end
  88. class RPG::State < WLS::STATE
  89.   def guard_element_set
  90.     set = super.clone
  91.     temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
  92.     set.delete_if{|e|temp.include?(e)}
  93.     return set
  94.   end
  95. end
  96. class RPG::Class < WLS::CLASS
  97.   Learning = WLS::CLASS::Learning
  98.   def element_ranks
  99.     ranks = super.clone
  100.     WLS::TYPES.each do |t|
  101.       ranks[$data_system.elements.index(t)] = 3
  102.     end
  103.     return ranks
  104.   end
  105. end
复制代码


设置步骤
1,在18行设置你武器的类型,刀,剑,杖,弓之类的
2,在数据库-系统-属性里添加刀,剑,杖,弓之类的属性
3,武器--设置一把弓,属性勾选弓,这个属性是不会被显示出来的
4,在技能里,装备弓才能发动的技能,在属性里勾选“弓”属性。

评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分

山岚野人,快人快语,礼数不周,还望海涵....
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
138 小时
注册时间
2012-7-2
帖子
173
4
 楼主| 发表于 2016-10-24 21:04:11 | 只看该作者
y967 发表于 2016-10-24 08:48
设置步骤
1,在18行设置你武器的类型,刀,剑,杖,弓之类的
2,在数据库-系统-属性里添加刀,剑,杖,弓 ...

太谢谢您了!再多的话也表达不完我的感激~~
我只属于我一个人的世界~~~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-11 15:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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