查看: 2629|回复: 2

[已经过期] 武器决定技能问题

[复制链接]
梦石
0
星屑
17561
在线时间
4249 小时
注册时间
2013-7-18
回帖
2491
发表于 2016-5-29 19:52:30 | 显示全部楼层 |阅读模式

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

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

×
论坛武器决定技能的连接失效了,有没有可用的脚本....比如装备刀只能使用刀系的技能,其他武器技能不能用,辅助类技能则通用.
退隐....

素材区好人

梦石
5
星屑
12559
在线时间
4347 小时
注册时间
2011-7-21
回帖
2264

超评测参与极短28参与极短27参与极短26参与极短25参与极短24参与极短23参与极短22参与极短21参与

发表于 2016-5-29 21:07:03 | 显示全部楼层
这个我也问过?
贴链接吧
https://rpg.blue/thread-378037-1-1.html

点评

多谢提供  发表于 2016-6-1 18:07
回复

使用道具 举报

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
回帖
3011
发表于 2016-5-29 23:54:01 | 显示全部楼层
本帖最后由 英顺的马甲 于 2016-5-30 00:21 编辑

临时随便写了个,顺便发到技术区了[pre lang="ruby"]#===============================================================================
# ■ 武器限制技能脚本
#-------------------------------------------------------------------------------
# 使用方法:
#   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[/pre]

点评

在提问区若是有任何满意的答复可到手动认可贴认可  发表于 2016-6-1 22:18
非常好用,多谢,可惜不能评分了,抱歉,下次补上  发表于 2016-6-1 18:13
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到engshun@1ppl.me咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部