Project1

标题: 如何装备特定武器才能使用特定的技能 [打印本页]

作者: .さっとりーん    时间: 2012-8-10 19:37
标题: 如何装备特定武器才能使用特定的技能
比如当装备剑类武器时才能使用斩击技能
装备其他类武器就不能使用斩击技能
怎么做,要什么脚本?
对了,要用于横版战斗的。dsu_plus_rewardpost_czw
作者: devilg    时间: 2012-8-10 20:35
做起来还蛮简单的,主要是从rmxp里抄下来的自动状态
注意下面的是直接替换用的,因为是从自己的东西扣下来的而且写的乱七八糟,不能用的话告诉我。

  1. class Game_Battler
  2. def skill_can_use?(skill)
  3.     return false unless skill.is_a?(RPG::Skill)
  4.     return false unless movable?
  5.     return false if silent? and skill.spi_f > 0
  6.     required_state=[]
  7.     eval(skill.note)
  8.     for onlyYou in required_state
  9.       return false unless state?(onlyYou)
  10.     end
  11.     if skill.extension.include?("HP消耗")
  12.       return false if calc_mp_cost(skill) > hp
  13.     else
  14.       return false if calc_mp_cost(skill) > mp
  15.     end
  16.     if $game_temp.in_battle
  17.       return skill.battle_ok?
  18.     else
  19.       return skill.menu_ok?
  20.     end
  21.   end
  22. end

  23. class Scene_Battle < Scene_Base
  24.   def process_battle_start
  25.     process_battle_start_n01
  26.     #auto_state starts here
  27.    
  28.     # 如果二刀流让左(下部显示)手武器像右(上部表示)手武器那样没有持有时
  29.     # 在这里强制替换他
  30.     for member in $game_party.members
  31.       member.auto_state
  32.       if member.weapons[0] == nil and member.weapons[1] != nil
  33.         member.change_equip_by_id(0, member.armor1_id)
  34.         member.change_equip_by_id(1, 0)
  35.         member.two_swords_change = true
  36.       end
  37.     end
  38.     @status_window.refresh
  39.   end
  40. end

  41. class Game_Actor < Game_Battler
  42.   def auto_state
  43.   
  44.     for item in equips.compact
  45.       auto_stat_id =[]
  46.       eval(item.note)
  47.       if auto_stat_id!=[]
  48.         for i in auto_stat_id
  49.           if i[1]==@class_id || i[1]==0
  50.             add_state(i[0])
  51.             hp=0 if i[0]==1
  52.           end
  53.         end
  54.       end
  55.     end
  56.   end
  57. end
复制代码
设置完以后在斩击技能里的备注写上
required_state=[46]#类似的
然后在剑类武器的备注加上
auto_stat_id=[[46,0]]#46跟上面的数要对上。
作者: .さっとりーん    时间: 2012-8-12 20:30
本帖最后由 .さっとりーん 于 2012-8-15 20:59 编辑
devilg 发表于 2012-8-10 20:35
做起来还蛮简单的,主要是从rmxp里抄下来的自动状态
注意下面的是直接替换用的,因为是从自己的东西扣下来 ...


我想做成这样
用属性来判断,凡是武器加个斩击属性,就能使用
带有斩击属性的技能,这样可否实现
@devilg在不?




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