Project1
标题:
请问如何限定装备某类武器才能使用特定技能?
[打印本页]
作者:
z2214557w
时间:
2016-10-23 23:07
标题:
请问如何限定装备某类武器才能使用特定技能?
假定有一个职业是可以装备任意类别武器的,但是该职业的某个技能只有装备弓箭类武器才能使用,否则战斗中显示灰色无法使用,请问这个该怎么设定?
请大家赐教~~~
作者:
chd114
时间:
2016-10-23 23:39
。。。我差点以为这不是xp区,xp区你角色职业用的武器都是一个个设置的···
通常来说你可以给装备名称加后缀,比如“铁剑:1”,“:1”的1就是装备类型1,然后技能限定里设置成某个技能必须是装备名称后缀为“:1”才能用,当然你也可以用其他的方法
作者:
y967
时间:
2016-10-24 08:48
本帖最后由 y967 于 2016-10-24 08:56 编辑
#===============================================================================
# ■ 武器限制技能脚本
#-------------------------------------------------------------------------------
# 使用方法:
# 1. 插入Game_Actor之后,Main之前的任意位置。
# 1. 在下面设置需要被视为武器种类的属性名称。
# 2. 在属性列表内增加相对应的属性
# 3. 利用武器属性来设置种类,每个武器只能归类到一个种类。
# 4. 利用技能属性来设置发动技能需要的武器种类,可以设置多个,但只需满足其中
# 一个便可发动。
# 5. 没有设定条件的技能在任何武器或没有武器的情况下皆可发动。
#===============================================================================
module WLS
#-----------------------------------------------------------------------------
# 名称列在此的属性会被视为武器种类处理。
# 被视为武器种类的属性将不会对伤害造成任何影响。
#-----------------------------------------------------------------------------
TYPES = ["剑", "杖", "斧", "弓"]
#-----------------------------------------------------------------------------
unless defined?(ACTOR)
ACTOR = ::Game_Actor.clone
WEAPON = ::RPG::Weapon.clone
SKILL = ::RPG::Skill.clone
ITEM = ::RPG::Item.clone
ARMOR = ::RPG::Armor.clone
ENEMY = ::RPG::Enemy.clone
CLASS = ::RPG::Class.clone
STATE = ::RPG::State.clone
end
end
class Game_Actor < WLS::ACTOR
def skill_can_use?(id)
weapon = $data_weapons[@weapon_id]
skill = $data_skills[id]
return ((skill.required_types.empty? or (skill.required_types.include?(weapon.type))) and super)
end
end
class RPG::Weapon < WLS::WEAPON
def type
temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
return @element_set.find{|e|temp.include?(e)}
end
def element_set
set = super.clone
temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
set.delete_if{|e|temp.include?(e)}
return set
end
end
class RPG::Skill < WLS::SKILL
def required_types
temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
return @element_set.find_all{|e|temp.include?(e)}
end
def element_set
set = super.clone
temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
set.delete_if{|e|temp.include?(e)}
return set
end
end
class RPG::Item < WLS::ITEM
def element_set
set = super.clone
temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
set.delete_if{|e|temp.include?(e)}
return set
end
end
class RPG::Armor < WLS::ARMOR
def guard_element_set
set = super.clone
temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
set.delete_if{|e|temp.include?(e)}
return set
end
end
class RPG::Enemy < WLS::ENEMY
Action = WLS::ENEMY::Action
def element_ranks
ranks = super.clone
WLS::TYPES.each do |t|
ranks[$data_system.elements.index(t)] = 3
end
return ranks
end
end
class RPG::State < WLS::STATE
def guard_element_set
set = super.clone
temp = WLS::TYPES.map{|t|$data_system.elements.index(t)}
set.delete_if{|e|temp.include?(e)}
return set
end
end
class RPG::Class < WLS::CLASS
Learning = WLS::CLASS::Learning
def element_ranks
ranks = super.clone
WLS::TYPES.each do |t|
ranks[$data_system.elements.index(t)] = 3
end
return ranks
end
end
复制代码
设置步骤
1,在18行设置你武器的类型,刀,剑,杖,弓之类的
2,在数据库-系统-属性里添加刀,剑,杖,弓之类的属性
3,武器--设置一把弓,属性勾选弓,这个属性是不会被显示出来的
4,在技能里,装备弓才能发动的技能,在属性里勾选“弓”属性。
作者:
z2214557w
时间:
2016-10-24 21:04
y967 发表于 2016-10-24 08:48
设置步骤
1,在18行设置你武器的类型,刀,剑,杖,弓之类的
2,在数据库-系统-属性里添加刀,剑,杖,弓 ...
太谢谢您了!再多的话也表达不完我的感激~~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1