| 
 
| 赞 | 0 |  
| VIP | 0 |  
| 好人卡 | 0 |  
| 积分 | 1 |  
| 经验 | 3662 |  
| 最后登录 | 2014-11-25 |  
| 在线时间 | 211 小时 |  
 Lv1.梦旅人 
	梦石0 星屑50 在线时间211 小时注册时间2010-12-30帖子85 | 
| 本帖最后由 yanglibin0409 于 2011-11-13 19:06 编辑 
 复制代码#==============================================================================
# ■ Game_Battler
#------------------------------------------------------------------------------
#  处理战斗者的类。这个类作为 Game_Actor 类与 Game_Enemy 类的
# 超级类来使用。
#==============================================================================
  SW_SET = [17,18,19,20,21,22,23,24]    # 此处设定武器和技能关联的属性id
#==============================================================================
class Game_Battler
  #--------------------------------------------------------------------------
  # ● 判断是否可以使用技能
  #     skill : 技能
  #     self.weapons : 武器id的数组
  #--------------------------------------------------------------------------
  def skill_can_use?(skill)
    if self.is_a?(Game_Actor)
      $data_weapons[0] = RPG::Weapon.new
      $data_weapons[0].element_set =[]
      sw_boolean = false # 判断武器和技能关联
      s = SW_SET & $data_skills[skill.id].element_set
      if s.empty?
        sw_boolean = true
      else
        for i in s
          if  $data_weapons[self.weapon_id].element_set.include?(i)
            sw_boolean = true
            break
          end
        end
      end
      $data_weapons[0] = nil
      return false if sw_boolean == false
    end
    return false unless skill.is_a?(RPG::Skill)
    return false unless movable?
    return false if silent? and skill.spi_f > 0
    return false if calc_mp_cost(skill) > mp
    if $game_temp.in_battle
      return skill.battle_ok?
    else
      return skill.menu_ok?
    end
  end
end
这是两个不同版本的  武器决定技能脚本,复制代码class Game_Actor
  # 武器属性的起始ID,一定要让这些属性连在一起
  Weapon_Type_Begin = 21
  # 武器属性的结束ID
  Weapon_Type_End = 27
  # 下面生成一个属性的数组,可以无视
  Weapon_Types = (Weapon_Type_Begin..Weapon_Type_End).to_a
  #--------------------------------------------------------------------------
  # ● 可用技能判断
  #     skill : 技能
  #--------------------------------------------------------------------------
  def skill_can_use?(skill)
    return false unless skill_learn?(skill)
    skill_types = (skill.element_set & Weapon_Types)
    if skill_types.empty?
      # 无属性技能,任何武器都可以使用
      return super
    else
      # 有属性技能,根据现在装备的武器来决定是否可以使用
      return false if @weapon_id == 0
      weapon_types = ($data_weapons[@weapon_id].element_set & Weapon_Types)
      if (weapon_types & skill_types).empty?
        return false
      else
        return super
      end
    end
  end
  # 注意:
  # 技能可以设置多种武器属性,比如锐器钝器均可使用,这样多种武器也可以使用同一
  # 技能。
end
 想做一个 只有 无装备武器时 才能 释放 的技能,根据这两个脚本如何 修改呢?
 
 也就是 当空手时,  武器的属性默认为 27 这样,就能根据27这个属性设定一个 “空手”属性了
 
 
 
 
 yanglibin0409于2011-11-13 18:15补充以下内容:
 没人知道么?? 我实在不想 在武器栏 里有个 “空手”武器 - -  这样就有点假了~~
 
 
 
 | 
 评分
查看全部评分
 |