赞 | 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补充以下内容:
没人知道么?? 我实在不想 在武器栏 里有个 “空手”武器 - - 这样就有点假了~~
|
评分
-
查看全部评分
|