Project1

标题: 这个“武器决定技能”如何设定空手状态时能有特定技能 [打印本页]

作者: yanglibin0409    时间: 2011-11-12 11:21
标题: 这个“武器决定技能”如何设定空手状态时能有特定技能
本帖最后由 yanglibin0409 于 2011-11-13 19:06 编辑
  1. #==============================================================================
  2. # ■ Game_Battler
  3. #------------------------------------------------------------------------------
  4. #  处理战斗者的类。这个类作为 Game_Actor 类与 Game_Enemy 类的
  5. # 超级类来使用。
  6. #==============================================================================
  7.   SW_SET = [17,18,19,20,21,22,23,24]    # 此处设定武器和技能关联的属性id
  8. #==============================================================================
  9. class Game_Battler
  10.   #--------------------------------------------------------------------------
  11.   # ● 判断是否可以使用技能
  12.   #     skill : 技能
  13.   #     self.weapons : 武器id的数组
  14.   #--------------------------------------------------------------------------
  15.   def skill_can_use?(skill)
  16.     if self.is_a?(Game_Actor)
  17.       $data_weapons[0] = RPG::Weapon.new
  18.       $data_weapons[0].element_set =[]
  19.       sw_boolean = false # 判断武器和技能关联
  20.       s = SW_SET & $data_skills[skill.id].element_set
  21.       if s.empty?
  22.         sw_boolean = true
  23.       else
  24.         for i in s
  25.           if  $data_weapons[self.weapon_id].element_set.include?(i)
  26.             sw_boolean = true
  27.             break
  28.           end
  29.         end
  30.       end
  31.       $data_weapons[0] = nil
  32.       return false if sw_boolean == false
  33.     end
  34.     return false unless skill.is_a?(RPG::Skill)
  35.     return false unless movable?
  36.     return false if silent? and skill.spi_f > 0
  37.     return false if calc_mp_cost(skill) > mp
  38.     if $game_temp.in_battle
  39.       return skill.battle_ok?
  40.     else
  41.       return skill.menu_ok?
  42.     end
  43.   end
  44. end
复制代码
  1. class Game_Actor
  2.   # 武器属性的起始ID,一定要让这些属性连在一起
  3.   Weapon_Type_Begin = 21
  4.   # 武器属性的结束ID
  5.   Weapon_Type_End = 27
  6.   # 下面生成一个属性的数组,可以无视
  7.   Weapon_Types = (Weapon_Type_Begin..Weapon_Type_End).to_a
  8.   #--------------------------------------------------------------------------
  9.   # ● 可用技能判断
  10.   #     skill : 技能
  11.   #--------------------------------------------------------------------------
  12.   def skill_can_use?(skill)
  13.     return false unless skill_learn?(skill)
  14.     skill_types = (skill.element_set & Weapon_Types)
  15.     if skill_types.empty?
  16.       # 无属性技能,任何武器都可以使用
  17.       return super
  18.     else
  19.       # 有属性技能,根据现在装备的武器来决定是否可以使用
  20.       return false if @weapon_id == 0
  21.       weapon_types = ($data_weapons[@weapon_id].element_set & Weapon_Types)
  22.       if (weapon_types & skill_types).empty?
  23.         return false
  24.       else
  25.         return super
  26.       end
  27.     end
  28.   end
  29.   # 注意:
  30.   # 技能可以设置多种武器属性,比如锐器钝器均可使用,这样多种武器也可以使用同一
  31.   # 技能。
  32. end
复制代码
这是两个不同版本的  武器决定技能脚本,

想做一个 只有 无装备武器时 才能 释放 的技能,根据这两个脚本如何 修改呢?

也就是 当空手时,  武器的属性默认为 27 这样,就能根据27这个属性设定一个 “空手”属性了




yanglibin0409于2011-11-13 18:15补充以下内容:
没人知道么?? 我实在不想 在武器栏 里有个 “空手”武器 - -  这样就有点假了~~


dsu_plus_rewardpost_czw




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1