Project1
标题:
【求脚本】武器限定技能
[打印本页]
作者:
黯淡的流星
时间:
2017-4-29 19:00
标题:
【求脚本】武器限定技能
就是说,装备的武器影响到技能的使用~
最好是能通过某种方法将武器分类,然后技能的使用受到武器类型的限制
如果不行,让技能只有在和装备的武器拥有相同的攻击属性时才能使用也好
作者:
芯☆淡茹水
时间:
2017-4-29 20:52
本帖最后由 芯☆淡茹水 于 2017-4-29 20:54 编辑
这个没试过,可以试一下
#==============================================================================
module RPG
class Skill < UsableItem
def name
return @name.split(/,/)[0] != nil ? @name.split(/,/)[0] : ""
end
def weapon_limit_kind
return @name.split(/,/)[1] != nil ? @name.split(/,/)[1].to_i : 0
end
end
class Weapon < BaseItem
def name
return @name.split(/,/)[0] != nil ? @name.split(/,/)[0] : ""
end
def kind
return @name.split(/,/)[1] != nil ? @name.split(/,/)[1].to_i : 0
end
end
end
#--------------------------------------------------------------------------
class Game_Actor < Game_Battler
def skill_can_use?(skill)
return false unless skill_learn?(skill)
return false if weapon_limit(skill)
return super
end
def weapon_limit(skill)
return true unless skill.is_a?(RPG::Skill)
return false if skill.weapon_limit_id == 0
data = weapons.keep_if{|w| w.kind == skill.weapon_limit_kind}
return data.size == 0
end
end
#==============================================================================
复制代码
武器类型:武器名字,类型 如 铁剑,1 名字是铁剑,类型是 1 。不写后面的数字,默认类型为0
技能的武器限制:同上 技能名,需要的武器类型 如 十字斩,2 需要装备类型是2的武器才能施展。
不写后面的数字,表示这个技能没有武器限制。
作者:
黯淡的流星
时间:
2017-4-29 21:53
芯☆淡茹水 发表于 2017-4-29 20:52
这个没试过,可以试一下
逗号用全角,打开技能面板时显示第五行错误
逗号用半角,打开技能面板时显示第29行错误
作者:
芯☆淡茹水
时间:
2017-4-29 22:13
已经测试好了,逗号用半角
#==============================================================================
module RPG
class Skill < UsableItem
def name
return @name.split(/,/)[0] != nil ? @name.split(/,/)[0] : ""
end
def weapon_limit_id
return @name.split(/,/)[1] != nil ? @name.split(/,/)[1].to_i : 0
end
end
class Weapon < BaseItem
def name
return @name.split(/,/)[0] != nil ? @name.split(/,/)[0] : ""
end
def kind
return @name.split(/,/)[1] != nil ? @name.split(/,/)[1].to_i : 0
end
end
end
#--------------------------------------------------------------------------
class Game_Actor < Game_Battler
def skill_can_use?(skill)
return false unless skill_learn?(skill)
return false if weapon_limit(skill)
return super
end
def weapon_limit(skill)
return true unless skill.is_a?(RPG::Skill)
return false if skill.weapon_limit_id == 0
data = weapons.find{|w| next if w.nil?;w.kind == skill.weapon_limit_id}
return data.nil?
end
end
#==============================================================================
复制代码
作者:
黯淡的流星
时间:
2017-4-30 14:17
芯☆淡茹水 发表于 2017-4-29 22:13
已经测试好了,逗号用半角
问题解决~十分感谢!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1