Project1

标题: 求救横版战斗界面怪物不还手 一按S弹出错误代码 [打印本页]

作者: sherui520    时间: 2010-10-29 14:32
标题: 求救横版战斗界面怪物不还手 一按S弹出错误代码
本帖最后由 sherui520 于 2010-10-29 14:33 编辑




应该如何更改错误代码,对脚本不是很熟悉。
  1. # ▽△▽ XRXS_BS 1. Full-Move BattleSystem 新クラス ▽△▽ built 033011
  2. # by 桜雅 在土

  3. #------------------------------------------------------------------------------
  4. #
  5. #
  6. # ▽ 新規
  7. #
  8. #
  9. #==============================================================================
  10. # ◇ 定数設定
  11. #------------------------------------------------------------------------------
  12. #  数値をわかりやすくするために設定された固定の数です。
  13. #==============================================================================
  14. module XRXS_BS1
  15.   #--------------------------------------------------------------------------
  16.   # ○ アクション定数
  17.   #--------------------------------------------------------------------------
  18.   ACT_JUMP     = 2001
  19.   ACT_DASHJUMP = 2002
  20.   ACT_LAND     = 2003
  21.   ACT_RETURN   = 2004
  22.   #--------------------------------------------------------------------------
  23.   # ○ ボイス定数
  24.   #--------------------------------------------------------------------------
  25.   VOICE_ID_ATTACK    = 1001
  26.   VOICE_ID_ATTACK2   = 1002
  27.   VOICE_ID_DAMAGE    = 1006
  28.   VOICE_ID_BURST     = 1003
  29.   VOICE_ID_ESCAPE    = 1096 # 逃走
  30.   VOICE_ID_WON_CRY   = 1099 # 通常勝利
  31.   VOICE_ID_PINCH_WIN = 1098 # 自分のHPが1/4未満での勝利
  32.   VOICE_ID_DEAD      = 1004
  33.   #--------------------------------------------------------------------------
  34.   # 基本的に変更する意味のない固定された数値ですが、
  35.   # 「同じ数値」にすることによって同じボイスを利用することができます。
  36.   #
  37.   # (例:VOICE_ID_PINCH_WINを1099に → ピンチでも通常勝利ボイス)
  38.   #
  39.   #--------------------------------------------------------------------------
  40. end
  41. #==============================================================================
  42. # □ Game_Voice
  43. #------------------------------------------------------------------------------
  44. #  ボイス (戦闘中の行動の声) を扱うクラスです。
  45. # このクラスは Game_Battler クラスの内部で使用されます。
  46. #==============================================================================
  47. class Game_Voice
  48.   #--------------------------------------------------------------------------
  49.   # ○ オブジェクト初期化
  50.   #--------------------------------------------------------------------------
  51.   def initialize(me)
  52.     @me = me
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ○ 再生
  56.   #--------------------------------------------------------------------------
  57.   def play(id)
  58.     return if id == 0
  59.     #
  60.     # ファイル名の作成
  61.     #
  62.     name = "Audio/SE/" + @me.battler_name_basic_form + "_"
  63.     case id
  64.     when XRXS_BS1::VOICE_ID_ATTACK
  65.       name += "attack"
  66.     when XRXS_BS1::VOICE_ID_ATTACK2
  67.       name += "attack2"
  68.     when XRXS_BS1::VOICE_ID_DAMAGE
  69.       name += "damage"
  70.     when XRXS_BS1::VOICE_ID_BURST
  71.       name += "burst"
  72.     when XRXS_BS1::VOICE_ID_ESCAPE
  73.       name += "escape"
  74.     when XRXS_BS1::VOICE_ID_WON_CRY
  75.       name += "win"
  76.     when XRXS_BS1::VOICE_ID_PINCH_WIN
  77.       name += "win_pinch"
  78.     when XRXS_BS1::VOICE_ID_DEAD
  79.       name += "dead"
  80.     else
  81.       name += "0" if id < 10
  82.       name += "0" if id < 100
  83.       name += id.to_s
  84.     end
  85.     name += ".wav"
  86.     #
  87.     # 再生
  88.     #
  89.     if FileTest.exist?(name)
  90.       Audio.se_play(name)
  91.     end
  92.   end
  93. end
  94. #==============================================================================
  95. # □ Game_BattleShield
  96. #------------------------------------------------------------------------------
  97. #  バトル中のシールドを扱うクラスです
  98. #==============================================================================
  99. class Game_BattleShield
  100.   #--------------------------------------------------------------------------
  101.   # ○ 公開インスタンス変数
  102.   #--------------------------------------------------------------------------
  103.   attr_reader   :rect              # 範囲、盾の受け判定(Rect)
  104.   attr_reader   :id                # 盾ID.
  105.   attr_reader   :direction         # 向き (1 : 前方からの攻撃のみ、0全方位)
  106. end
  107. #==============================================================================
  108. # □ Game_BattlerWeapon
  109. #------------------------------------------------------------------------------
  110. #  バトル中の装備武器を扱うクラスです
  111. #==============================================================================
  112. class Game_BattlerWeapon < Game_Battler
  113.   #--------------------------------------------------------------------------
  114.   # ○ 公開インスタンス変数
  115.   #--------------------------------------------------------------------------
  116.   attr_accessor :user           # 武器の装備者
  117.   attr_accessor :relative_x_pos # 相対 X 位置
  118.   attr_accessor :relative_y_pos # 相対 Y 位置
  119.   attr_accessor :relative_z_pos # 相対 Z 位置
  120.   attr_reader   :set_id         # 現在セットされている武器ID
  121.   attr_reader   :shade          # 現在の武器の影    (Game_BattlerWeaponShade)
  122.   #--------------------------------------------------------------------------
  123.   # ○ オブジェクト初期化
  124.   #     user : 武器の装備者
  125.   #--------------------------------------------------------------------------
  126.   def initialize(user)
  127.     super()
  128.     setup(user)
  129.   end
  130.   #--------------------------------------------------------------------------
  131.   # ○ セットアップ
  132.   #--------------------------------------------------------------------------
  133.   def setup(user)
  134.     @current_action = nil
  135.     @user           = user
  136.     @relative_x_pos = 0
  137.     @relative_y_pos = 0
  138.     @relative_z_pos = 1
  139.     @set_id         = @user.weapon_id
  140.     @battler_name   = weapon_to_battlergraphic_database(@set_id)
  141.     @battler_name_basic_form = @battler_name
  142.     @shade  = Game_BattlerWeaponShade.new(user, self)
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   # ○ 武器→バトラーグラフィック データベース
  146.   #--------------------------------------------------------------------------
  147.   def weapon_to_battlergraphic_database(weapon_id)
  148.     # 種別の取得
  149.     n = get(weapon_id)

  150.     # 文字列作成
  151.     if n == 0
  152.       return ""
  153.     else
  154.       form_name = "Weapon_"
  155.       if n < 10
  156.         form_name += "00"
  157.       elsif n < 100
  158.         form_name += "0"
  159.       end
  160.       form_name += n.to_s
  161.       return form_name
  162.     end
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # ● 戦闘不能判定
  166.   #--------------------------------------------------------------------------
  167.   def dead?
  168.     return false
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # ○ 向き
  172.   #--------------------------------------------------------------------------
  173.   def direction
  174.     d = @user.direction
  175.     d = 1 if d.nil?
  176.     return d
  177.   end
  178.   #--------------------------------------------------------------------------
  179.   # ● バトル画面 X 座標の取得
  180.   #--------------------------------------------------------------------------
  181.   def screen_x
  182.     $xcam_x = 0 if $xcam_x == nil
  183.     return 320 + (@user.x_pos.to_i + direction * relative_x_pos - $xcam_x) * @user.zoom
  184.   end
  185.   #--------------------------------------------------------------------------
  186.   # ● バトル画面 Y 座標の取得
  187.   #--------------------------------------------------------------------------
  188.   def screen_y
  189.     $xcam_y = 0 if $xcam_y == nil
  190.     return 240 + ([email protected]_pos.to_i - relative_y_pos + 64 + $xcam_y + @user.z_pos) * @user.zoom
  191.   end
  192.   #--------------------------------------------------------------------------
  193.   # ● バトル画面 Z 座標の取得
  194.   #--------------------------------------------------------------------------
  195.   def screen_z
  196.     return @user.screen_z + @relative_z_pos
  197.   end
  198. end
  199. #==============================================================================
  200. # □ Game_BattlerWeaponShade
  201. #------------------------------------------------------------------------------
  202. #  バトル中の装備武器の影を扱うクラスです
  203. #==============================================================================
  204. class Game_BattlerWeaponShade < Game_BattlerWeapon
  205.   #--------------------------------------------------------------------------
  206.   # ○ 公開インスタンス変数
  207.   #--------------------------------------------------------------------------
  208.   attr_accessor :battler_name             # バトラー ファイル名
  209.   attr_accessor :battler_name_next        # [一時保管用]
  210.   attr_reader   :weapon                   # 影の元となる武器
  211.   #--------------------------------------------------------------------------
  212.   # ○ オブジェクト初期化
  213.   #--------------------------------------------------------------------------
  214.   def initialize(user, weapon)
  215.     super(user)
  216.     setup(user, weapon)
  217.   end
  218.   #--------------------------------------------------------------------------
  219.   # ○ セットアップ
  220.   #--------------------------------------------------------------------------
  221.   def setup(user, weapon = nil)
  222.     @current_action = nil
  223.     @user           = user
  224.     @weapon         = weapon
  225.     @battler_name   = ""
  226.     @battler_name_next = ""
  227.   end
  228.   #--------------------------------------------------------------------------
  229.   # ○ 相対 X 位置
  230.   #--------------------------------------------------------------------------
  231.   def relative_x_pos
  232.     rx = @weapon.relative_x_pos
  233.     return rx == nil ? 0 : rx
  234.   end
  235.   #--------------------------------------------------------------------------
  236.   # ○ 相対 Y 位置
  237.   #--------------------------------------------------------------------------
  238.   def relative_y_pos
  239.     ry = @weapon.relative_y_pos
  240.     return ry == nil ? 0 : ry
  241.   end
  242.   #--------------------------------------------------------------------------
  243.   # ● バトル画面 Z 座標の取得
  244.   #--------------------------------------------------------------------------
  245.   def screen_z
  246.     return @user.screen_z - 2
  247.   end
  248. end

  249. #==============================================================================
  250. # □ Game_BattleBullet
  251. #------------------------------------------------------------------------------
  252. #  バトル中の飛び道具を扱うクラスです
  253. #==============================================================================
  254. class Game_BattleBullet < Game_Battler
  255.   #--------------------------------------------------------------------------
  256.   # ○ 公開インスタンス変数
  257.   #--------------------------------------------------------------------------  
  258.   attr_accessor :user                     # 飛び道具の使用者
  259.   attr_accessor :remain_duration          # 寿命
  260.   attr_accessor :done                     # 終了判定
  261.   attr_reader   :gravity_effect           # 重量影響
  262.   attr_reader   :piercing                 # 貫通性能
  263.   attr_accessor :sprite_index             # 飛び道具スプライトに登録された番号
  264.   #--------------------------------------------------------------------------
  265.   # ○ オブジェクト初期化
  266.   #--------------------------------------------------------------------------
  267.   def initialize(skill_id)
  268.     # バトラーとして初期化
  269.     super()
  270.     # 設定
  271.     @sprite_index = 0
  272.     @skill_id  = skill_id
  273.     @x_pos     = 0
  274.     @y_pos     = 0
  275.     @done = false
  276.     database(skill_id)
  277.     @motion.do_act(skill_id)
  278.     #@motion.skill_attachment(Database_Motion.new(skill_id, false))
  279.   end
  280.   #--------------------------------------------------------------------------
  281.   # ○ 使用者をセット
  282.   #--------------------------------------------------------------------------
  283.   def set_user(user)
  284.     # バトラーから値を取得
  285.     @maxhp     = 1
  286.     @hp        = 1
  287.     @user      = user
  288.     @x_pos     = user.x_pos
  289.     @y_pos     = user.y_pos
  290.     @z_pos     = user.z_pos
  291.     @zoom      = user.zoom
  292.     @direction = user.direction
  293.   end
  294.   #--------------------------------------------------------------------------
  295.   # ● バトル画面 X 座標の取得
  296.   #--------------------------------------------------------------------------
  297.   def screen_x
  298.     $xcam_x = 0 if $xcam_x == nil
  299.     return 320 + (@x_pos.to_i - $xcam_x) * @zoom
  300.   end
  301.   #--------------------------------------------------------------------------
  302.   # ● バトル画面 Y 座標の取得
  303.   #--------------------------------------------------------------------------
  304.   def screen_y
  305.     $xcam_y = 0 if $xcam_y == nil
  306.     return 240 + (-@y_pos.to_i + 64 + $xcam_y + @z_pos) * @zoom
  307.   end
  308.   #--------------------------------------------------------------------------
  309.   # ● バトル画面 Z 座標の取得
  310.   #--------------------------------------------------------------------------
  311.   def screen_z
  312.     return @z_pos
  313.   end
  314. end
  315. #==============================================================================
  316. # □ Game_ShootingTarget
  317. #------------------------------------------------------------------------------
  318. #  バトル中の飛び道具を扱うクラスです
  319. #==============================================================================
  320. class Game_ShootingTarget < Game_BattleBullet
  321.   #--------------------------------------------------------------------------
  322.   # ○ 使用者をセット
  323.   #--------------------------------------------------------------------------
  324.   def set_user(user)
  325.     super
  326.     @y_pos     = user.y_min
  327.     @battler_name = graphic_name_from_skill_id(@skill_id)
  328.   end
  329.   #--------------------------------------------------------------------------
  330.   # ● バトル画面 Y 座標の取得
  331.   #--------------------------------------------------------------------------
  332.   def screen_y
  333.     $xcam_y = 0 if $xcam_y == nil
  334.     return 240 + (-@y_pos.to_i + 64 + $xcam_y + 32) * @zoom
  335.   end
  336.   #--------------------------------------------------------------------------
  337.   # ● バトル画面 Z 座標の取得
  338.   #--------------------------------------------------------------------------
  339.   def screen_z
  340.     return @user.screen_z - 16
  341.   end
  342. end
  343. #==============================================================================
  344. # □ Game_Motion
  345. #------------------------------------------------------------------------------
  346. #  モーション (戦闘中の行動のフォーム) を扱うクラスです。
  347. # このクラスは Game_Battler クラスの内部で使用されます。
  348. #==============================================================================
  349. class Game_Motion
  350.   #--------------------------------------------------------------------------
  351.   # ○ 公開インスタンス変数
  352.   #--------------------------------------------------------------------------  
  353.   attr_reader   :handling_priority        # 現在の行動の操作に対する優先度
  354.   attr_accessor :action_duration          # 行動  残りフレーム数
  355.   attr_reader   :jub_attack_connect_f     # 小コンボ接続フレーム
  356.   attr_accessor :knock_back_duration      # のけぞり残りフレーム数   (Numeric)
  357.   attr_accessor :hit_stop_duration        # ヒットストップフレーム数 (Numeric)
  358.   attr_accessor :act_derive               # 行動派生予定             (String)
  359.   attr_reader   :landing_duration         # 着地隙 使用フレーム数
  360.   attr_reader   :attack_rect              # 攻撃範囲                 (Rect)
  361.   attr_reader   :attack_skl_id            # 攻撃スキルID             (Numeric)
  362.   attr_accessor :attack_hit_targets       # 攻撃ヒット済みバトラー配列
  363.   attr_accessor :attack_motion_plan       # モーション予約
  364.   attr_accessor :battle_bullet            # 飛び道具
  365.   attr_accessor :battle_bullet_plan       # 飛び道具予約
  366.   attr_accessor :now_attackcancelation    # 現在キャンセル回数 (Numeric)
  367.   attr_reader   :uncancelable_duration    # キャンセル出来ない 持続時間
  368.   attr_accessor :remain_to_hit_duration   # ヒット待ち 持続時間
  369.   attr_reader   :presshold_key            # 押し続け停止キー
  370.   attr_accessor :boardthrough_duration    # 板すり抜け落下 持続時間
  371.   attr_accessor :ukemi_duration           # 受け身受け付け 持続時間
  372.   attr_accessor :hit_invincible_duration  # 当たりあり無敵 持続時間
  373.   attr_accessor :eva_invincible_duration  # 当たりなし無敵 持続時間
  374.   attr_accessor :disappear_duration       # 消滅 持続時間
  375.   attr_accessor :unfrictbreak_duration    # 摩擦/空気抵抗無効 持続時間
  376.   attr_accessor :now_jumps                # 現在ジャンプ回数 (Numeric)
  377.   attr_reader   :bullet_controllable      # 飛び道具操作可能
  378.                                           #
  379.                                           # --- フラグ系(true/false) ---
  380.                                           #
  381.   attr_accessor :blowning                 # 飛ばされ空中
  382.   attr_accessor :downing                  # ダウン中
  383.   attr_accessor :dashing                  # ダッシュ中
  384.   attr_accessor :guarded                  # 攻撃をガードした
  385.   attr_reader   :shaking                  # シェイク中
  386.   attr_accessor :pressholding             # キー押し続け中
  387.   attr_accessor :shooting_controling      # シューティングターゲット操作中
  388.   #--------------------------------------------------------------------------
  389.   # ○ オブジェクト初期化
  390.   #--------------------------------------------------------------------------
  391.   def initialize(me)
  392.     @me = me
  393.     # 完全クリア
  394.     full_clear
  395.   end
  396.   #--------------------------------------------------------------------------
  397.   # ○ 完全クリア
  398.   #--------------------------------------------------------------------------
  399.   def full_clear
  400.     @me.now_x_speed = 0
  401.     @me.now_y_speed = 0
  402.     # 通常クリアされない値の初期化
  403.     @knock_back_duration = 0
  404.     @now_jumps           = 0
  405.     # 通常クリア
  406.     clear
  407.   end
  408.   #--------------------------------------------------------------------------
  409.   # ○ クリア
  410.   #--------------------------------------------------------------------------
  411.   def clear
  412.     @attack_rect         = Rect.new(0,0,0,0)
  413.     # 予約
  414.     @selfanimation_plan = []
  415.     @shotanimation_plan = []
  416.     @attack_motion_plan = []
  417.     @attack_rectan_plan = []
  418.     @attack_skl_id_plan = []
  419.     @attack_hit_targets = []
  420.     @active_xspeed_plan = []
  421.     @active_move_x_plan = []
  422.     @active_move_y_plan = []
  423.     @active_move_z_plan = []
  424.     @mybody_rectan_plan = []
  425.     @shootintarget_plan = []
  426.     @battle_shield_plan = []
  427.     @battle_bullet_plan = []
  428.     @cast_duration_plan = []
  429.     @remian_to_hit_plan = []
  430.     @presshold_key_plan = []
  431.     @pressholdtime_plan = []
  432.     @voice_playing_plan = []
  433.     @handling_priority   = 0
  434.     @boardthrough_duration = 0
  435.     @now_attackcancelation = 0
  436.     @jub_attack_connect_f  = 0
  437.     @uncancelable_duration = 0
  438.     @ukemi_duration = 0
  439.     @hit_stop_duration   = 0
  440.     @action_duration     = 0
  441.     @cast_duration       = 0
  442.     @remain_to_hit_duration  = 0
  443.     @hit_invincible_duration = 0
  444.     @eva_invincible_duration = 0
  445.     @disappear_duration      = 0
  446.     @unfrictbreak_duration   = 0
  447.     @act_derive          = 0
  448.     @battle_bullet       = nil
  449.     @attack_skl_id       = 0
  450.     @bullet_controllable = false
  451.     @cancellation_switch = false
  452.     @battle_bullet       = nil
  453.     #
  454.     #if @me.shooting_target != nil
  455.     #  @me.shooting_target.remain_duration = 0
  456.     #end
  457.     # フラグ
  458.     @blowning            = false
  459.     @downing             = false
  460.     @dashing             = false
  461.     @guarding            = false
  462.     @shaking             = false
  463.     @shooting_controling = false
  464.     # キー押し続け
  465.     @pressholding  = false
  466.     @presshold_key = nil
  467.     @pressholdtime = 0
  468.     # ランディングフォース
  469.     @landing_duration    = 0
  470.     @landing_force_plan = []
  471.     @landingmotion_plan = []
  472.   end
  473.   #--------------------------------------------------------------------------
  474.   # ○ フレーム更新
  475.   #--------------------------------------------------------------------------
  476.   def update
  477.     # 毎フレームのカウントダウン1
  478.     @eva_invincible_duration -= 1 if @eva_invincible_duration > 0
  479.     @hit_invincible_duration -= 1 if @hit_invincible_duration > 0
  480.     @boardthrough_duration   -= 1 if @boardthrough_duration > 0
  481.     @ukemi_duration          -= 1 if @ukemi_duration > 0
  482.     # 消滅時間
  483.     if @disappear_duration >= 0
  484.       @disappear_duration -= 1
  485.       if @disappear_duration == 0
  486.         @action_duration = 1
  487.       elsif @disappear_duration > 0
  488.         @action_duration = 2
  489.       end
  490.     end
  491.     # ヒットストップの残りフレーム数更新   
  492.     if @hit_stop_duration > 0
  493.       @hit_stop_duration -= 1
  494.       return
  495.     end
  496.     # キー押し続け更新
  497.     if @pressholding
  498.       @pressholding   = false
  499.       return
  500.     elsif (!@pressholding and @presshold_key != nil)
  501.       @pressholding  = false
  502.       @presshold_key = nil
  503.       @pressholdtime = 0
  504.       return
  505.     end
  506.     # 詠唱時間
  507.     if @cast_duration > 0
  508.       @cast_duration -= @me.cnt
  509.       return
  510.     end
  511.     # ヒット待ち
  512.     if @remain_to_hit_duration > 0
  513.       @remain_to_hit_duration -= 1
  514.       if @remain_to_hit_duration == 0
  515.         @bullet_controllable = false
  516.       end
  517.       return
  518.     end
  519.     # 初期化
  520.     @me.relative_y_destination = 0
  521.     @me.relative_x_destination = 0
  522.     @battle_bullet = nil
  523.    
  524.     # 詠唱時間予約の更新
  525.     if @cast_duration_plan.size > 0
  526.       n = @cast_duration_plan.shift
  527.       if n != nil
  528.         @cast_duration = n
  529.       end
  530.     end
  531.     # ヒット待ち予約の更新
  532.     unless @remian_to_hit_plan.empty?
  533.       n = @remian_to_hit_plan.shift
  534.       if n != nil
  535.         @remain_to_hit_duration = n
  536.       end
  537.     end
  538.     # キー押し続け停止予約の更新
  539.     unless @presshold_key_plan.empty?
  540.       @presshold_key = @presshold_key_plan.shift
  541.       @pressholdtime = @pressholdtime_plan.shift.to_i
  542.     else
  543.       @presshold_key = nil
  544.       @pressholdtime = 0
  545.     end
  546.     # X 速度予約の更新
  547.     unless @active_xspeed_plan.empty?
  548.       n = @active_xspeed_plan.shift
  549.       if n != nil
  550.         @me.now_x_speed += n * @me.direction
  551.       end
  552.     end
  553.     # X 移動予約の更新
  554.     unless @active_move_x_plan.empty?
  555.       n = @active_move_x_plan.shift
  556.       if n != nil
  557.         @me.relative_x_destination = n * @me.direction
  558.       end
  559.       if n == 0
  560.         @me.now_x_speed = 0
  561.         @me.now_y_speed = 0
  562.       end
  563.     end
  564.     # Y 移動予約の更新
  565.     unless @active_move_y_plan.empty?
  566.       n = @active_move_y_plan.shift
  567.       if n != nil
  568.         @me.relative_y_destination = n
  569.         @me.now_y_speed = 0
  570.       end
  571.     end
  572.     # セルフアニメーション予約の更新
  573.     if @selfanimation_plan.size > 0
  574.       n = @selfanimation_plan.shift
  575.       if n != nil
  576.         @me.animation_id = n
  577.         @me.animation1_id
  578.         @me.animation_hit = true
  579.       end
  580.     end
  581.     # シューティングターゲットアニメーションID予約の更新
  582.     if @shotanimation_plan.size > 0
  583.       n = @shotanimation_plan.shift
  584.       if n != nil and @me.shooting_target != nil
  585.         @me.shooting_target.animation_id = n
  586.         @me.shooting_target.animation_hit = true
  587.       end
  588.     end
  589.     # ボディRect予約の更新
  590.     if @mybody_rectan_plan.size > 0
  591.       r = @mybody_rectan_plan.shift
  592.       if r.is_a?(Rect)
  593.         @me.body_rect = r
  594.       end
  595.     end
  596.     # バトラーモーション予約の更新
  597.     unless @attack_motion_plan.empty?
  598.       n = @attack_motion_plan.shift
  599.       if !n.nil? #and @me.now_form_id/10 != n/10
  600.         @me.transgraphic(n)
  601.       end
  602.     end
  603.     # 攻撃予約の更新
  604.     unless @attack_skl_id_plan.empty?
  605.       n = @attack_skl_id_plan.shift
  606.       unless n.nil?
  607.         # 攻撃スキルを変更
  608.         @attack_skl_id = n
  609.         # それに伴って「既に命中した相手」配列をクリア
  610.         @attack_hit_targets.clear
  611.         # スキルIDが0なら攻撃範囲をしまう
  612.         if n == 0
  613.           @attack_rect = Rect.new(0,0,0,0)
  614.         end
  615.       end
  616.     end
  617.     # 攻撃範囲予約の更新
  618.     unless @attack_rectan_plan.empty?
  619.       r = @attack_rectan_plan.shift
  620.       unless r.nil?
  621.         @attack_rect = r
  622.       end
  623.     end
  624.     # シューティングターゲット予約の更新
  625.     unless @shootintarget_plan.empty?
  626.       n = @shootintarget_plan.shift
  627.       if n == nil
  628.         #
  629.       elsif n == 0 and @me.shooting_target != nil
  630.         @me.shooting_target.done = true
  631.       elsif n == -1
  632.         @shooting_controling = false
  633.       else
  634.         @me.shooting_target = Game_ShootingTarget.new(n)
  635.         @battle_bullet = @me.shooting_target # 飛び道具で管理
  636.         @shooting_controling = true
  637.       end
  638.     end
  639.     # 飛び道具予約の更新
  640.     if @battle_bullet_plan.size > 0
  641.       @battle_bullet = @battle_bullet_plan.shift
  642.     end
  643.     # シールド予約の更新
  644.     if @battle_shield_plan.size > 0
  645.       shield = @battle_shield_plan.shift
  646.       if shield.is_a?(Numeric)
  647.         @me.shield = nil
  648.       elsif shield != nil
  649.         @me.shield = shield
  650.       end
  651.     elsif [email protected]?
  652.       @me.shield = nil
  653.     end
  654.     # ボイス再生予約の更新
  655.     if @voice_playing_plan.size > 0
  656.       n = @voice_playing_plan.shift
  657.       unless n.nil?
  658.         @me.voice.play(n)
  659.       end
  660.     end
  661.     # のけぞり
  662.     if @knock_back_duration >= 0
  663.       @knock_back_duration   -= 1
  664.       return
  665.     end
  666.     # 毎フレームのカウントダウン2
  667.     @action_duration         -= 1 if @action_duration >= 0
  668.     @jub_attack_connect_f    -= 1 if @jub_attack_connect_f > 0
  669.     @uncancelable_duration   -= 1 if @uncancelable_duration > 0
  670.     @unfrictbreak_duration   -= 1 if @unfrictbreak_duration > 0
  671.     # アクションが終了した場合
  672.     if @action_duration == 0
  673.       # 行動派生
  674.       case @act_derive
  675.       when XRXS_BS1::ACT_JUMP
  676.         do_jump(0)
  677.       when XRXS_BS1::ACT_DASHJUMP
  678.         do_jump(1)
  679.       when XRXS_BS1::ACT_LAND
  680.         do_landing_step
  681.       when XRXS_BS1::ACT_RETURN
  682.         do_return
  683.       else
  684.         # 姿勢復帰
  685.         do_straighten
  686.       end
  687.       @act_derive = 0
  688.     end
  689.   end
  690.   #--------------------------------------------------------------------------
  691.   # ○ フレーム更新 (武器)
  692.   #--------------------------------------------------------------------------
  693.   def update_weapon
  694.     return if @me.weapon_sprite.nil?
  695.     value = @me.weapon_form_hash[@me.now_form_id]
  696.     return if value.nil?
  697.     @me.weapon_sprite.battler.transgraphic(value[0])
  698.     @me.weapon_sprite.battler.relative_x_pos = value[1]
  699.     @me.weapon_sprite.battler.relative_y_pos = value[2]
  700.     @me.weapon_sprite.battler.relative_z_pos = value[3]
  701.   end
  702.   #--------------------------------------------------------------------------
  703.   # ◇ ダメージのけぞり
  704.   #--------------------------------------------------------------------------
  705.   def do_damage
  706.     clear # まずはクリア
  707.     @downing = false # 叩き起こす
  708.     @shaking = true
  709.     # AIをリセット
  710.     @me.ai.clear
  711.     @me.ai.do_next
  712.     # ボイス
  713.     @me.voice.play(XRXS_BS1::VOICE_ID_DAMAGE)
  714.     #
  715.     @handling_priority = 5
  716.     @action_duration   = 1
  717.     #
  718.     @attack_motion_plan = [71,nil,nil,72,nil,nil,73,nil,nil,74,nil,nil,74,nil,nil,74,nil,nil,73,nil,nil,72,nil,nil,71]
  719.     @mybody_rectan_plan = [@me.stand_body_rect]
  720.   end
  721.   #--------------------------------------------------------------------------
  722.   # ◇ ガード硬直
  723.   #--------------------------------------------------------------------------
  724.   def do_guard_shock
  725.     clear # まずはクリア
  726.     @shaking = true
  727.     @handling_priority =  5
  728.     @action_duration   =  1
  729.   end
  730.   #--------------------------------------------------------------------------
  731.   # ◇ 指示可能?(戦闘終了時などに使用)
  732.   #--------------------------------------------------------------------------
  733.   def directable?
  734.     return (not @me.dead?)
  735.   end
  736.   #--------------------------------------------------------------------------
  737.   # ◇ 操作可能?
  738.   #--------------------------------------------------------------------------
  739.   def controllable?
  740.     return (!(@blowning and @downing) and
  741.             @knock_back_duration <= 0 )
  742.   end
  743.   #--------------------------------------------------------------------------
  744.   # ◇ ガード可能?
  745.   #--------------------------------------------------------------------------
  746.   def guardable?
  747.     return (@handling_priority < GUARD_PRIORITY)
  748.   end
  749.   #--------------------------------------------------------------------------
  750.   # ◇ ガード中?(シールド展開中かどうか)
  751.   #--------------------------------------------------------------------------
  752.   def guarding?
  753.     return [email protected]?
  754.   end
  755.   #--------------------------------------------------------------------------
  756.   # ◇ メテオされる
  757.   #--------------------------------------------------------------------------
  758.   def do_meteor
  759.     # 完全クリア
  760.     full_clear
  761.     # メテオスマッシュによる一定時間消滅
  762.     @me.motion.do_down
  763.     # 行動設定
  764.     @handling_priority =  5
  765.     @me.motion.action_duration = DISAPPEAR_DURATION
  766.     # 「復帰」行動を予約
  767.     @me.motion.act_derive = XRXS_BS1::ACT_RETURN
  768.     # アニメーションを表示
  769.     @me.animation_id = METEOR_ANIMATION_ID
  770.     @me.animation_hit = true
  771.   end
  772.   #--------------------------------------------------------------------------
  773.   # ◇ 復帰
  774.   #--------------------------------------------------------------------------
  775.   def do_return
  776.     # 位置を中央にして
  777.     @me.x_pos = 0
  778.     @me.y_pos = 0
  779.     # 受け身不可能で
  780.     @ukemi_duration = 0
  781.     # 倒れる
  782.     do_down
  783.     # 一定時間当たりあり無敵
  784.     @hit_invincible_duration = 120
  785.     # 行動設定
  786.     @handling_priority =  1
  787.     @action_duration   = 28
  788.     # アニメ設定
  789.     @me.animation_id = RETURN_ANIMATION_ID
  790.     @me.animation_hit = true
  791.   end
  792.   #--------------------------------------------------------------------------
  793.   # ◇ 空中横移動
  794.   #--------------------------------------------------------------------------
  795.   def do_airwalk(direction)
  796.     if direction == 1
  797.       if @me.now_x_speed <= @me.air_x_maximum
  798.         @me.now_x_speed += @me.air_x_velocity
  799.         @me.now_x_speed  = [@me.now_x_speed, @me.air_x_maximum].min
  800.       end
  801.     else
  802.       if @me.now_x_speed >= [email protected]_x_maximum
  803.         @me.now_x_speed -= @me.air_x_velocity
  804.         @me.now_x_speed  = [@me.now_x_speed, [email protected]_x_maximum].max
  805.       end
  806.     end
  807.     @me.motion.unfrictbreak_duration = 2
  808.   end
  809.   #--------------------------------------------------------------------------
  810.   # ◇ 姿勢復帰
  811.   #--------------------------------------------------------------------------
  812.   def do_straighten
  813.     # ハンドリングプライオリティを 0 に(操作可能化)
  814.     @handling_priority   = 0
  815.     @cancellation_switch = false
  816.     @shaking             = false
  817.     @battle_bullet       = 0
  818.     # コンボ数を初期化
  819.     @now_damage_combo    = 0
  820.     #
  821.     if @me.shooting_target != nil
  822.       @me.shooting_target.done = true
  823.     end
  824.     if @me.is_a?(Game_BattleBullet)
  825.       @me.done = true
  826.     end
  827.     # 状況に応じた姿勢立てなおし
  828.     if @me.dead? or @downing
  829.       #
  830.     elsif @blowning
  831.       @attack_motion_plan = [101]
  832.     elsif @now_jumps == 0
  833.       do_stand
  834.     elsif @now_jumps > 0
  835.       @attack_motion_plan = [41]
  836.     end
  837.     # キャンセル回数の復帰
  838.     @now_attackcancelation = @me.maximum_attackcancelation
  839.   end
  840.   #--------------------------------------------------------------------------
  841.   # ◇ 着地隙
  842.   #--------------------------------------------------------------------------
  843.   def do_landing_step
  844.     if @knock_back_duration > 0
  845.       return
  846.     end
  847.     @handling_priority = LANDING_PRIORITY
  848.     if @landing_duration == 0 and @action_duration <= 0
  849.       # 通常の着地
  850.       @action_duration = 4
  851.       @attack_motion_plan = [31]
  852.       @mybody_rectan_plan = [@me.sit_body_rect,nil,nil,@me.stand_body_rect]
  853.       @downing = false
  854.       @attack_skl_id_plan.clear
  855.       @attack_rectan_plan.clear
  856.       @attack_hit_targets.clear
  857.       @attack_rect = Rect.new(0,0,0,0)
  858.     elsif @landing_duration > 0
  859.       # 空中攻撃中の着地
  860.       @action_duration = @landing_duration
  861.       @attack_motion_plan = @landingmotion_plan.dup
  862.       @attack_skl_id_plan = @landing_force_plan.dup
  863.       @attack_rect = @me.sit_body_rect
  864.       # 手動クリア
  865.       @landing_duration = 0
  866.       @landingmotion_plan.clear
  867.       @landing_force_plan.clear
  868.     end
  869.   end
  870.   #--------------------------------------------------------------------------
  871.   # ◇ ジャンプ前の隙
  872.   #--------------------------------------------------------------------------
  873.   def do_crouch_to_jump
  874.     # ハンドリングプライオリティ判定       or ジャンプ回数が足りない
  875.     if @handling_priority >= JUMP_PRIORITY or @now_jumps >= @me.max_jumps
  876.       @act_derive = 0
  877.       return
  878.     end
  879.     # 実行
  880.     @handling_priority = JUMP_PRIORITY
  881.     if @now_jumps <= 0
  882.       @action_duration = @me.crouch_to_jump
  883.       # しゃがむ
  884.       do_crouch
  885.     else
  886.       @action_duration = 1
  887.     end
  888.     @blowning = false
  889.   end
  890.   #--------------------------------------------------------------------------
  891.   # ◇ ジャンプ
  892.   #--------------------------------------------------------------------------
  893.   def do_jump(type = 0)
  894.     @blowning = false
  895.     @handling_priority   = 0
  896.     if @now_jumps == 0
  897.       do_jump_motion
  898.       @me.now_y_speed = @me.jump_y_init_velocity
  899.     else
  900.       @attack_motion_plan = [101]
  901.       @me.now_y_speed = @me.airjump_y_init_velocity
  902.     end
  903.     case type
  904.     when 0
  905.       @me.now_x_speed = 0
  906.     when 1
  907.       @me.now_x_speed = @me.dash_x_speed * @me.direction
  908.     end
  909.     @now_jumps  += 1
  910.   end
  911.   #--------------------------------------------------------------------------
  912.   # ◇ バックステップ
  913.   #--------------------------------------------------------------------------
  914.   def do_backstep
  915.     return if @handling_priority >= GUARD_PRIORITY
  916.     clear
  917.     do_jump_motion
  918.     @handling_priority = GUARD_PRIORITY
  919.     @action_duration = 22
  920.     @attack_motion_plan[ 8] = 51
  921.     @attack_motion_plan[16] = 31
  922.     @me.now_x_speed = @me.dash_x_speed * @me.direction * -1
  923.     @me.now_y_speed = @me.jump_y_init_velocity/2
  924.     @now_jumps += 1
  925.   end
  926.   #--------------------------------------------------------------------------
  927.   # ◇ 板すりぬけ へ
  928.   #--------------------------------------------------------------------------
  929.   def do_boardthrough
  930.     @boardthrough_duration = 3
  931.     @attack_motion_plan.push(51)
  932.   end
  933.   #--------------------------------------------------------------------------
  934.   # ◇ 逃走
  935.   #--------------------------------------------------------------------------
  936.   def do_escape
  937.     @attack_motion_plan   = [11]
  938.     @voice_playing_plan[16] = XRXS_BS1::VOICE_ID_ESCAPE
  939.   end
  940.   #--------------------------------------------------------------------------
  941.   # ◇ 「ヒットまで待つ」キャンセル
  942.   #--------------------------------------------------------------------------
  943.   def remaining_cancel
  944.     @action_duration -= @remain_to_hit_duration
  945.     @remain_to_hit_duration = 0
  946.     @bullet_controllable = false
  947.   end
  948.   #--------------------------------------------------------------------------
  949.   # ◇ 「弱攻撃3」が使用可能かどうか
  950.   #--------------------------------------------------------------------------
  951.   def can_jub_attack3?
  952.     if @handling_priority >= 2
  953.       return true
  954.     end
  955.     return false
  956.   end
  957.   #--------------------------------------------------------------------------
  958.   # ◇ 待機
  959.   #--------------------------------------------------------------------------
  960.   def do_stand
  961.     return if @me.now_form_id/10 == 0 and !@attack_motion_plan.empty?
  962.     @dashing = false
  963.     @attack_motion_plan = [1,nil,nil,2,nil,nil,3,nil,nil,4,nil,nil,5,nil,nil,6,nil,nil,7,nil,nil,8,nil,nil,9,nil,nil,10,nil,nil,9,nil,nil,8,nil,nil,7,nil,nil,6,nil,nil,5,nil,nil,4,nil,nil,3,nil,nil,2,nil,nil,1]
  964.   end
  965.   #--------------------------------------------------------------------------
  966.   # ◇ しゃがむ
  967.   #--------------------------------------------------------------------------
  968.   def do_crouch
  969.     @dashing = false
  970.     @attack_motion_plan = [31]
  971.     @mybody_rectan_plan = [@me.sit_body_rect, @me.stand_body_rect]
  972.   end
  973.   #--------------------------------------------------------------------------
  974.   # ◇ ダッシュブレーキ
  975.   #--------------------------------------------------------------------------
  976.   def do_dashbreak
  977.     @dashing = false
  978.     @handling_priority =  4
  979.     @action_duration = 8
  980.     @attack_motion_plan = [ 29]
  981.   end
  982.   #--------------------------------------------------------------------------
  983.   # ◇ 起き上がり
  984.   #--------------------------------------------------------------------------
  985.   def do_stand_up
  986.     # まずしゃずむ
  987.     do_crouch
  988.     #
  989.     @handling_priority = 5
  990.     @action_duration   = 8
  991.     @eva_invincible_duration = 12
  992.     @mybody_rectan_plan = [@me.sit_body_rect,nil,nil,nil,nil,@me.stand_body_rect]
  993.     @downing = false
  994.   end
  995.   #--------------------------------------------------------------------------
  996.   # ◇ 受け身
  997.   #--------------------------------------------------------------------------
  998.   def do_ukemi
  999.     clear # まずはクリア
  1000.     @eva_invincible_duration = 12
  1001.     @blowning = false
  1002.     @downing = false
  1003.     @handling_priority  = 5
  1004.     @action_duration     = 6
  1005.     @me.now_x_speed = 0
  1006.     @me.now_y_speed = 6
  1007.     @attack_motion_plan = [51]
  1008.     @now_jumps   = @me.max_jumps
  1009.   end
  1010.   #--------------------------------------------------------------------------
  1011.   # ◇ ダウン
  1012.   #--------------------------------------------------------------------------
  1013.   def do_down
  1014.     @knock_back_duration = 0
  1015.     if @ukemi_duration > 0
  1016.       do_ukemi
  1017.       return
  1018.     end
  1019.     clear # まずはクリア
  1020.     @handling_priority  = 5
  1021.     @action_duration    = 6
  1022.     @attack_motion_plan = [ 91]
  1023.     @mybody_rectan_plan = [@me.down_body_rect]
  1024.     @downing = true
  1025.     #if @me.dead?
  1026.       #@me.voice.play(XRXS_BS1::VOICE_ID_DEAD)
  1027.     #end  
  1028.   end
  1029.   #--------------------------------------------------------------------------
  1030.   # ◇ 歩く/走る
  1031.   #--------------------------------------------------------------------------
  1032.   def do_walk(direction)
  1033.     if @now_jumps >= 1
  1034.       do_airwalk(direction)
  1035.       return
  1036.     end
  1037.     @me.direction = direction
  1038.     @unfrictbreak_duration = 1
  1039.     if @dashing
  1040.       # 走行中
  1041.       @me.now_x_speed = direction * @me.dash_x_speed
  1042.       return if @me.now_form_id/10 == 2 and !@attack_motion_plan.empty?
  1043.       @attack_motion_plan = [21,nil,nil,nil,22,nil,nil,nil,23,nil,nil,nil,24,nil,nil,nil,25,nil,nil,nil,26,nil,nil,nil,21,nil,nil,nil,22,nil,nil,nil,23,nil,nil,nil,24,nil,nil,nil,25,nil,nil,nil,26]
  1044.     else
  1045.       # 歩行中
  1046.       @me.now_x_speed = direction * @me.walk_x_speed
  1047.       return if !@attack_motion_plan.empty? and !@attack_motion_plan.include?(8)
  1048.       @attack_motion_plan = [11,nil,nil,nil,nil,12,nil,nil,nil,nil,13,nil,nil,nil,nil,14,nil,nil,nil,nil,15,nil,nil,nil,nil,16,nil,nil,nil,nil,17,nil,nil,nil,nil,18,nil,nil,nil,nil,19,nil,nil,nil,nil,20]
  1049.     end
  1050.   end
  1051.   #--------------------------------------------------------------------------
  1052.   # ◇ ジャンプ(モーション部分)
  1053.   #--------------------------------------------------------------------------
  1054.   def do_jump_motion
  1055.     @attack_motion_plan = [ 41]
  1056.   end
  1057.   #--------------------------------------------------------------------------
  1058.   # ◇ ジャンプ落下モーションに切り替え
  1059.   #--------------------------------------------------------------------------
  1060.   def do_jumping_fall
  1061.     @attack_motion_plan = [ 51]
  1062.   end
  1063.   #--------------------------------------------------------------------------
  1064.   # ◇ アイテム使用硬直
  1065.   #--------------------------------------------------------------------------
  1066.   def do_use_item
  1067.     @handling_priority  =  4
  1068.     @action_duration    = 36
  1069.     @selfanimation_plan[ 1] = 25
  1070.     #@attack_motion_plan = [341,nil,342,nil,343,nil,344,nil,345,nil,346,nil,347,nil,348,nil,349,nil,350,nil,351,nil,352,nil,353,nil,354,nil,355,nil,356]
  1071.   end
  1072.   #--------------------------------------------------------------------------
  1073.   # ◇ アイテム受け硬直
  1074.   #--------------------------------------------------------------------------
  1075.   def do_receive_item
  1076.     @handling_priority  =  4
  1077.     @action_duration    = 36
  1078.     @selfanimation_plan[ 1] = 25
  1079.     #@attack_motion_plan = [341,nil,342,nil,343,nil,344,nil,345,nil,346,nil,347,nil,348,nil,349,nil,350,nil,351,nil,352,nil,353,nil,354,nil,355,nil,356]
  1080.   end
  1081.   #--------------------------------------------------------------------------
  1082.   # ◇ 勝利ポーズ
  1083.   #--------------------------------------------------------------------------
  1084.   def do_won_cry
  1085.     if @me.hp * 3 < @me.maxhp
  1086.       @attack_motion_plan = [801,nil,nil,802,nil,nil,803,nil,nil,804,nil,nil,805,nil,nil,806,nil,nil,807,nil,nil,808,nil,nil,809,nil,nil,810,nil,nil,811,nil,nil,812,nil,nil,813,nil,nil,814,nil,nil,815,nil,nil,816,nil,nil,817,nil,nil,818,nil,nil,819,nil,nil,820,nil,nil,821,nil,nil,822]
  1087.       @me.voice.play(XRXS_BS1::VOICE_ID_PINCH_WIN)
  1088.     else
  1089.       @attack_motion_plan = [901,nil,nil,902,nil,nil,903,nil,nil,904,nil,nil,905,nil,nil,906,nil,nil,907,nil,nil,908,nil,nil,909,nil,nil,910,nil,nil,911,nil,nil,912,nil,nil,913,nil,nil,914,nil,nil,915,nil,nil,916,nil,nil,917,nil,nil,918,nil,nil,919,nil,nil,920,nil,nil,921,nil,nil,922,nil,nil,923,nil,nil,924,nil,nil,925,nil,nil,926,nil,nil,927,nil,nil,928,nil,nil,929,nil,nil,930,nil,nil,931,nil,nil,932,nil,nil,933,nil,nil,934,nil,nil,935,nil,nil,936,nil,nil,937,nil,nil,938,nil,nil,939,nil,nil,940,nil,nil,941,nil,nil,942,nil,nil,943,nil,nil,944,nil,nil,945,nil,nil,946,nil,nil,947,nil,nil,948,nil,nil,949,nil,nil,950,nil,nil,951,nil,nil,952,nil,nil,953,nil,nil,954,nil,nil,955,nil,nil,956,nil,nil,957,nil,nil,958,nil,nil,959]
  1090.       @me.voice.play(XRXS_BS1::VOICE_ID_WON_CRY)
  1091.     end
  1092.   end
  1093.   #--------------------------------------------------------------------------
  1094.   # ◇ アクション
  1095.   #--------------------------------------------------------------------------
  1096.   def do_act(skill_id)
  1097.     # スキルIDのチェック
  1098.     @skill_id = skill_id
  1099.     if @skill_id == nil or @skill_id == 0
  1100.       return
  1101.     end
  1102.     # キャンセル不可能持続時間中の場合
  1103.     if @uncancelable_duration > 0
  1104.       return
  1105.     end
  1106.     #
  1107.     # --- スキルデータベースにて設定 ---
  1108.     #
  1109.     if skill_attachment(Database_Motion.new(@skill_id, @cancellation_switch))
  1110.       # ボイス
  1111.       if @handling_priority == 1
  1112.         id = 0
  1113.         if  @now_attackcancelation == @me.maximum_attackcancelation
  1114.           id = XRXS_BS1::VOICE_ID_ATTACK
  1115.         else
  1116.           id = XRXS_BS1::VOICE_ID_ATTACK2
  1117.         end
  1118.         @me.voice.play(id)
  1119.       else
  1120.         @me.voice.play(XRXS_BS1::VOICE_ID_BURST)
  1121.       end
  1122.       # ダッシュ解除
  1123.       @dashing = false
  1124.       # 体勢復帰
  1125.       @blowning = false
  1126.       # キャンセル回数-1
  1127.       @now_attackcancelation -= 1
  1128.       # キャンセレーションスイッチを切り替え
  1129.       @cancellation_switch = !@cancellation_switch
  1130.     end
  1131.     # AI.次へ
  1132.     if @me.is_a?(Game_Actor) or @me.is_a?(Game_Enemy)
  1133.       @me.ai.do_next
  1134.     end
  1135.   end
  1136.   #--------------------------------------------------------------------------
  1137.   # ◇ スキル実行・変数の設定
  1138.   #--------------------------------------------------------------------------
  1139.   def skill_attachment(motion)
  1140.     # ハンドリングプライオリティ判定
  1141.     if @handling_priority >= motion.handling_priority
  1142.       return false
  1143.     end
  1144.     # ダウン判定
  1145.     if @downing
  1146.       return false
  1147.     end
  1148.     #
  1149.     if @skill_id == nil
  1150.       return false
  1151.     end
  1152.     # SP判定
  1153.     if @skill_id < 1000
  1154.       # スキルを取得
  1155.       @skill = $data_skills[@skill_id]
  1156.       #
  1157.       # 「SP 消費」
  1158.       #
  1159.       # 計算
  1160.       cost = @skill.sp_cost
  1161.       # 残りSPチェック
  1162.       if @me.sp < cost
  1163.         # SPxx
  1164.         return false
  1165.       end
  1166.       # SP 消費
  1167.       @me.sp -= cost
  1168.       # 「使用側アニメーション」自動予約
  1169.       n = $data_skills[@skill_id].animation1_id
  1170.       
  1171.       if n > 0
  1172.         @selfanimation_plan = [n]
  1173.       end
  1174.     end
  1175.     # 全てのデータを設定
  1176.     @handling_priority     = motion.handling_priority
  1177.     @action_duration       = motion.action_duration
  1178.     @jub_attack_connect_f  = motion.jub_attack_connect_f
  1179.     @uncancelable_duration = motion.uncancelable_duration
  1180.     @selfanimation_plan    = motion.selfanimation_plan
  1181.     @shotanimation_plan    = motion.shotanimation_plan
  1182.     @attack_motion_plan    = motion.attack_motion_plan
  1183.     @attack_rectan_plan    = motion.attack_rectan_plan
  1184.     @attack_skl_id_plan    = motion.attack_skl_id_plan
  1185.     @landing_duration      = motion.landing_duration
  1186.     @landing_force_plan    = motion.landing_force_plan
  1187.     @landingmotion_plan    = motion.landingmotion_plan
  1188.     @active_xspeed_plan    = motion.active_xspeed_plan
  1189.     @active_move_x_plan    = motion.active_move_x_plan
  1190.     @active_move_y_plan    = motion.active_move_y_plan
  1191.     @shootintarget_plan    = motion.shootintarget_plan
  1192.     @battle_shield_plan    = motion.battle_shield_plan
  1193.     @battle_bullet_plan    = motion.battle_bullet_plan
  1194.     @cast_duration_plan    = motion.cast_duration_plan
  1195.     @remian_to_hit_plan    = motion.remian_to_hit_plan
  1196.     @presshold_key_plan    = motion.presshold_key_plan
  1197.     @pressholdtime_plan    = motion.pressholdtime_plan
  1198.     @voice_playing_plan    = motion.voice_playing_plan
  1199.     @bullet_controllable   = motion.bullet_controllable
  1200.     #gaojie
  1201.     @eva_invincible_duration = motion.eva_invincible_duration
  1202.     #gaojie
  1203.     # 実行
  1204.     # 飛び道具
  1205.     if @me.is_a?(Game_BattleBullet)
  1206.       return false
  1207.     end
  1208.     return true
  1209.   end
  1210. end
  1211. class Database_Motion < Game_Motion
  1212.   #--------------------------------------------------------------------------
  1213.   # ○ 公開インスタンス変数
  1214.   #--------------------------------------------------------------------------
  1215.   # 飛び道具
  1216.   attr_reader   :battler_name             # バトラーグラフィック
  1217.   # 通常
  1218.   attr_reader   :handling_priority        # 現在の行動の操作に対する優先度
  1219.   attr_reader   :jub_attack_connect_f     # 小コンボ接続フレーム
  1220.   attr_reader   :ai_shooting_range_x_min     # AI.判断用「射程」X
  1221.   attr_reader   :ai_shooting_range_x_max     # AI.判断用「射程」X
  1222.   attr_reader   :ai_shooting_range_y_min     # AI.判断用「射程」Y
  1223.   attr_reader   :ai_shooting_range_y_max     # AI.判断用「射程」Y
  1224.   attr_reader   :selfanimation_plan       # セルフアニメーション予約
  1225.   attr_reader   :shotanimation_plan       # シューティングターゲットアニメーション予約
  1226.   attr_reader   :attack_rectan_plan       # 攻撃範囲予約
  1227.   attr_reader   :attack_skl_id_plan       # 攻撃スキルID予約
  1228.   attr_reader   :landing_duration         # 着地隙の長さ
  1229.   attr_reader   :landing_force_plan       # ランディングフォース攻撃スキルID予約
  1230.   attr_reader   :landingmotion_plan       # ランディングフォースモーション予約
  1231.   attr_reader   :active_xspeed_plan       #  X 加速予約
  1232.   attr_reader   :active_move_x_plan       #  X 動き予約
  1233.   attr_reader   :active_move_y_plan       #  Y 動き予約
  1234.   attr_reader   :active_move_z_plan       #  Y 動き予約
  1235.   attr_reader   :shootintarget_plan       # シューティングターゲット予約
  1236.   attr_reader   :battle_shield_plan       # シールド予約
  1237.   attr_reader   :battle_bullet_plan       # 飛び道具予約
  1238.   attr_reader   :cast_duration_plan       # 詠唱時間予約
  1239.   attr_reader   :remian_to_hit_plan       # ヒット待ち予約
  1240.   attr_reader   :presshold_key_plan       # 押し続けによる停止するキー予約
  1241.   attr_reader   :pressholdtime_plan       # 押し続けて停止している最大時間予約
  1242.   attr_reader   :voice_playing_plan       # ボイス再生予約
  1243.   attr_reader   :bullet_controllable      # 飛び道具操作可能性能(飛び道具専用)
  1244.   attr_reader   :eva_invincible_duration  #gaojie 无敌
  1245. end
复制代码





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