Project1

标题: 我是脚本盲在学,有没有办法让技能需要什么武器才能用 [打印本页]

作者: ggfdhdbhgf    时间: 2017-3-4 13:21
标题: 我是脚本盲在学,有没有办法让技能需要什么武器才能用
我是脚本盲在学,想问下有没有办法让技能需要什么武器才能用的办法呢?
作者: RyanBern    时间: 2017-3-4 13:30
https://rpg.blue/thread-314767-1-1.html?_dsign=33ab0579
作者: ggfdhdbhgf    时间: 2017-3-4 13:39
十分感谢~
作者: ggfdhdbhgf    时间: 2017-3-4 13:40
不过好像这个是删除技能的,有没有那种不删除的呢
作者: guoxiaomi    时间: 2017-3-4 14:08
把你刚才发的VX脚本copy了一下:
RUBY 代码复制
  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.   alias _SkillWeapon_skill_can_use? skill_can_use?
  16.   def skill_can_use?(skill_id)
  17.     if self.is_a?(Game_Actor)
  18.       $data_weapons[0] = RPG::Weapon.new
  19.       $data_weapons[0].element_set =[]
  20.       sw_boolean = false # 判断武器和技能关联
  21.       s = SW_SET & $data_skills[skill_id].element_set
  22.       if s.empty?
  23.         sw_boolean = true
  24.       else
  25.         s2 = s & $data_weapons[self.weapon_id].element_set
  26.         if !s2.empty?
  27.           sw_boolean = true
  28.         end
  29.       end
  30.       $data_weapons[0] = nil
  31.       return false if sw_boolean == false
  32.     end
  33.     return _SkillWeapon_skill_can_use?(skill_id)
  34.   end
  35. end


作者: RyanBern    时间: 2017-3-4 14:30
随手写了一个。
功能:特定的技能需要相同属性的武器才可以释放,否则不能使用。
用法:新建一个属性,命名为【需要武器】,属性的ID需要跟脚本里的ID设置绑定(见脚本)。设置需要武器才能使用的技能的时候,首先将此技能附加【需要武器】的属性,然后再勾选实际的技能属性(例如【斧头】),所需要的武器必须有同样的属性才可以使用。
RUBY 代码复制
  1. STATE_NEED_WEAPON = 20 # 【需要武器】状态绑定的 ID
  2. class Game_Actor < Game_Battler
  3.   def skill_can_use?(skill_id)
  4.     skill = $data_skills[skill_id]
  5.     weapon = $data_weapons[weapon_id]
  6.     if skill.element_set.include?(STATE_NEED_WEAPON)
  7.       return false if weapon.nil? || (skill.element_set & weapon.element_set).empty?
  8.     end
  9.     super
  10.   end
  11. end

作者: ggfdhdbhgf    时间: 2017-3-4 14:42
好的谢谢2位,我去试试~
作者: ggfdhdbhgf    时间: 2017-3-4 14:45
版主大大~你设定的那个是直接用在我发的这脚本基础上么~还是怎么?貌似是只能绑定一个ID?
作者: ggfdhdbhgf    时间: 2017-3-4 14:56
我想用的是在XP上的
作者: axicc    时间: 2017-3-4 15:05
其实完全能用事件实现的...
我可以告诉你原理...
作者: RyanBern    时间: 2017-3-4 15:26
ggfdhdbhgf 发表于 2017-3-4 14:45
版主大大~你设定的那个是直接用在我发的这脚本基础上么~还是怎么?貌似是只能绑定一个ID? ...

不是。是我自己写的一个,和你提供的那个具有相同的功能。

使用方法也写了,请仔细看我的回复。例子:假设1号技能需要装备带【长剑】属性的武器才可使用。那么请新建一个辅助属性【需要武器】,然后将这个技能关联到【长剑】【需要武器】这两个属性上。这样的话,该角色必须装备具有【长剑】属性的武器才能使用这个技能。


作者: bmcon    时间: 2017-5-6 09:06
事件变量操作?加上条件分歧应该可以实现




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