Project1

标题: 【提问帖用】脚本 [打印本页]

作者: yangjunyin2002    时间: 2013-3-2 19:52
标题: 【提问帖用】脚本
本帖最后由 yangjunyin2002 于 2013-3-2 20:19 编辑

额,我的那个提问帖横战出错,脚本很多,在那上太占了,也太乱了,就发这里来了。不要误解!
(顺便说下,这横战脚本我就改了一小部分的技能啊。这是时间问题!)[出错的是ATB脚本的1521行(看提问帖去)]
还有,ATB设定 ATB 显血 战斗显示血条的3个脚本和┣STR15_Enemy HP Gauge脚本是我直接扔进去的,没修改。

┣ サイドビュー設定
  1. #==============================================================================
  2. # ■ module N01  for Sideview Ver3.4
  3. #------------------------------------------------------------------------------
  4. #  サイドビューバトルのカスタマイズ項目です。
  5. #==============================================================================
  6. module N01
  7. #--------------------------------------------------------------------------
  8. # ● セッティング
  9. #--------------------------------------------------------------------------
  10.   # アクター初期位置 一人目    二人目    三人目    四人目
  11.   #                  X軸 Y軸   X軸 Y軸   X軸 Y軸   X軸 Y軸
  12.   ACTOR_POSITION = [[415,135],[425,165],[435,200],[445,235],[350,165],]
  13.   # 戦闘メンバー最大数(多人数パーティスクリプト等で増えた時専用)
  14.   # 上の初期位置も人数分増やしてください
  15.   MAX_MEMBER = 5
  16.   
  17.   # 戦闘で行動終了後、次のバトラーが行動開始するまでに挟むウエイト時間
  18.   ACTION_WAIT = 10
  19.   # エネミーのコラプス(撃破時の退場)前に挟むウエイト時間
  20.   COLLAPSE_WAIT = 12
  21.   # 勝利前に挟むウエイト時間
  22.   WIN_WAIT = 70
  23.   
  24.   # バトルフロア(床みたいなの)位置設定 FLOOR = [ X軸, Y軸, 透明度]
  25.   FLOOR = [  0, 96,128]
  26.   # 武器なしで攻撃した場合のヒットアニメID
  27.   NO_WEAPON = 11
  28.   # 二刀流設定  武器二つ装備時の一発当たりのダメージ量を設定します。数値は%
  29.   #                 通常攻撃  スキル,アイテム
  30.   TWO_SWORDS_STYLE = [   50,    100]
  31.   # ステート拡張・自動復活時のアニメID
  32.   RESURRECTION = 41
  33.   
  34.   # ダメージ数字画像のファイル名(横へ等間隔で0~9と並べたシステムフォルダ内画像)
  35.   DAMAGE_GRAPHICS = "Number+"
  36.   # 回復数字画像のファイル名
  37.   RECOVER_GRAPHICS = "Number-"
  38.   # 数値の文字間隔
  39.   NUM_INTERBAL = -10
  40.   # 数値の表示時間
  41.   NUM_DURATION = 75
  42.   # ダメージウインドウを消し、文字だけ表示させる場合はtrue
  43.   NON_DAMAGE_WINDOW = true
  44.   # ダメージウインドウに表示させる単語。表示させたくない場合は""とします。
  45.   POP_DAMAGE0 = "miss"  # ダメージが0の時(数字の0はPOPしません)
  46.   POP_MISS    = "miss"  # 攻撃が当たらなかった時 
  47.   POP_EVA     = "miss"  # 攻撃を回避した時 
  48.   POP_CRI     = "爆击!"  # クリティカル時
  49.   POP_MP_DAM  = "MP伤害"  # MPのダメージを受けた時
  50.   POP_MP_REC  = "MP恢复"  # MPが回復した時
  51.   
  52.   # 影グラフィック 利用するならtrueしないならfalse
  53.   SHADOW = true
  54.   # 歩行グラフィック認識 歩行グラを利用するならtrueしないならfalse
  55.   # falseにした場合、必ずファイルNo1以降を用意し、ファイルNo0は使わないように
  56.   # またNo1以降の画像サイズは統一させる(全キャラ統一ではなくそのキャラで統一)
  57.   WALK_ANIME = true
  58.   # バトラーグラフィックのアニメセル数(横分割数)
  59.   ANIME_PATTERN = 3
  60.   # バトラーグラフィックのアニメ種類数(縦分割数)
  61.   ANIME_KIND = 4
  62.   
  63.   # バックアタック(不意打ち時に画面反転) 利用するならtrueしないならfalse
  64.   BACK_ATTACK = true
  65.   # バックアタックで戦闘背景まで反転させないならfalse
  66.   BACK_ATTACK_NON_BACK_MIRROR = false
  67.   # バックアタック無効化設定  不意打ちに対しても効果を発揮。
  68.   # 全て装備していることが条件で、スキルは取得しているだけで効果を発揮します。
  69.   # バックアタックを無効化する武器ID 表記例) = [1] 複数ある表記例) = [1,2]
  70.   NON_BACK_ATTACK_WEAPONS = []
  71.   # バックアタックを無効化する盾ID
  72.   NON_BACK_ATTACK_ARMOR1 = []
  73.   # バックアタックを無効化する頭防具ID
  74.   NON_BACK_ATTACK_ARMOR2 = []
  75.   # バックアタックを無効化する体防具ID
  76.   NON_BACK_ATTACK_ARMOR3 = []
  77.   # バックアタックを無効化するアクセサリID
  78.   NON_BACK_ATTACK_ARMOR4 = []
  79.   # バックアタックを無効化するスキルID
  80.   NON_BACK_ATTACK_SKILLS = []
  81.   # 必ずバックアタックを発生させるスイッチNo(無効化よりも優先されます)
  82.   BACK_ATTACK_SWITCH = []

  83. #==============================================================================
  84. # ■ 単発アクション
  85. #------------------------------------------------------------------------------
  86. #  通しアクションに利用するものです。これ単体では意味を持ちません。
  87. #==============================================================================
  88. # ここの単発アクション名同士は、かぶらないようにしてください。
  89. # 通しアクション名とかぶる分には問題ありません。
  90.   ANIME = {
  91. #--------------------------------------------------------------------------
  92. # ● バトラーアニメ設定
  93. #--------------------------------------------------------------------------
  94.   # ファイルNo…利用するグラフィックファイルのナンバー。
  95.   #             アクターの場合、0は歩行グラフィックを参照します。
  96.   #             1以降は"キャラクターグラフィック名+_1"のように_の後のナンバーの
  97.   #             グラフィックを参照します。例)$ラルフ_1 のファイルNoは1
  98.   #             グラフィックは全てキャラクターフォルダから探します。
  99.   #
  100.   # 種類…グラフィックファイルのセルの縦位置。上から0~3と続きます。
  101.   # 速度…アニメの更新速度。数字が低いほど早く更新します。
  102.   # ループ… [0=往復ループ] [1=片道ループ] [2=片道のみでループしない]
  103.   # 待ち…ループしない(2)場合、最後のアニメを表示してからの待ち(ウエイト)時間。
  104.   # 固定…アニメせずに固定する場合、セル番号(横位置)を指定。固定しない通常は-1。逆再生は-2。
  105.   # Z軸…手前に表示するならプラス。通常は画面下ほど手前に表示されます。
  106.   # 影…影グラフィックを表示するならtrue、しない場合はfalse
  107.   # 武器…武器を表示する場合は武器アクション名を。しない場合は""。
  108.   
  109.   # バトラーアニメ名      ファイルNo 種類 速度 ループ 待ち 固定  Z軸  影  武器
  110.   "待機"            => [ 1,  0,  15,   0,   0,  -1,   0, true,"" ],
  111.   "待機3"           => [ 1,  0,  15,   0,   0,  -1,   0, true,"持武器3"],
  112.   "高速待機"            => [ 1,  0,  0,   0,   0,  -1,   0, true,"" ],
  113.   "高空刺动作"       => [ 3,  0,  7,   2,   0,  -1,   0, true,"高空刺-武器"],
  114.   "召唤毒刃"       => [ 4,  3,  5,   2,   0,  -1,   0, true,""],
  115.   "毒刃动作"       => [ 3,  1,  3,   2,   0,  -1,   0, true,""],
  116.   "投掷姿势"       => [ 3,  2,  2,   2,   0,  -1,   0, true,""],
  117.   "投掷姿势2"       => [ 3,  2,  3,   2,   0,  -1,   0, true,""],
  118.   "投掷姿势3"       => [ 3,  2,  8,   2,   0,  -1,   0, true,""],
  119.   "投掷姿势4"       => [ 3,  2,  7,   2,   0,  -1,   0, true,""],
  120.   "测试钝器挥舞"    =>  [ 7,  1,   2,   2,   0,  -1,   2, true,""],
  121.   "怒吼"            => [ 4,  2,  8,   2,   0,  -1,   0, true,"" ],
  122.   "呐喊"            => [ 5,  0,  5,   2,   0,  -1,   0, true,"" ],
  123.   "浮空待機"            => [ 2,  2,  6,   0,   0,  -1,   0, true,"持武器3" ],
  124.   "待機(固定)"      => [ 1,  0,  10,   2,   0,   1,   0, true,"" ],
  125.   "防御待机"      => [ 1,  0,  10,   2,   0,   1,   0, true,"持武器4" ],
  126.   "防御待机2"      => [ 1,  0,  35,   2,   0,   1,   0, true,"防御时武器" ],
  127.   "惊讶"            => [ 4,  3,  8,   0,   0,  -1,   0, true,"" ],
  128.   "捂耳朵"            => [ 6,  0,  3,   0,   0,  -1,   0, true,"" ],
  129.   "捂耳朵2"            => [ 6,  1,  3,   0,   0,  -1,   0, true,"" ],
  130.   "キャラ消し待機"  => [ 2,  2,  15,   0,   0,  -1,   0, false,"" ],
  131.   "右向き(固定)"    => [ 0,  2,  10,   1,   2,   1,   0, true,"" ],
  132.   "ダメージ"        => [ 1,  1,   7,   2,  24,  -1,   0, true,"" ],
  133.   "ダメージ2"        => [ 1,  1,   7,   2,  24,  -1,   0, true,"" ],
  134.   "空翻动作"            => [ 4,  0,  5,   0,   0,  -1,   0, true,"" ],
  135.   "空翻动作2"            => [ 4,  2,  5,   0,   0,  -1,   0, true,"" ],
  136.   "戦闘不能"        => [ 2,  3,  10,   1,   8,   0,   0, true,"" ],
  137.   "前進"            => [ 1,  3,  11,   2,   0,  -1,   0, true,"持武器"],
  138.   "测试前进"            => [ 7,  0,  11,   2,   0,  -1,   0, true,""],
  139.   "前進-空"            => [ 1,  3,  11,   2,   0,  -1,   0, true,""],
  140.   "前進3"            => [ 1,  3,  11,   2,   0,  -1,   0, true,"持武器3"],
  141.   "持武器前進"      => [ 1,  3,  11,   2,   0,  -1,   0, true,"持武器2"],
  142.   "前進2"            => [ 1,  3,  11,   2,   0,  -1,   0, true,""],
  143.   "後退"            => [ 1,  3,  11,   2,   0,  -1,   0, true,"持武器"],
  144.   "特殊后退"        => [ 2,  2,  11,   2,   0,  -1,   0, true,"" ],
  145.   "手前表示"        => [ 0,  1,   2,   1,   0,  -1, 600, true,"" ],
  146.   "武器振り攻撃"    => [ 3,  0,   1,   2,   0,  -1,   2, true,"縦振り"],
  147.   "钝器挥舞"    =>  [ 4,  0,   2,   2,   0,  -1,   2, true,"縦振り3"],
  148.   "钝器挥舞2"    =>  [ 4,  0,   10,   2,   0,  -1,   2, true,"縦振り3"],
  149.   "钝器挥舞3"    =>  [ 3,  0,   10,   2,   0,  -1,   2, true,"縦振り3"],
  150.   "挥拳"            => [ 3,  0,   3,   2,   0,  -1,   2, true,"持武器3"],
  151.   "挥拳2"            => [ 3,  2,   3,   2,   0,  -1,   2, true,"持武器3"],
  152.   "挥拳3"            => [ 3,  1,   3,   2,   0,  -1,   2, true,"持武器3"],
  153.   "武器振り攻撃2"    => [ 3,  0,   1,   2,   0,  -1,   2, true,"縦振り2"],
  154.   "武器振り攻撃L"   => [ 3,  0,   1,   2,   0,  -1,   2, true,"縦振りL"],
  155.   "武器回し下"      => [ 3,  1,   2,   2,   0,  -1,   2, true,"下半回転"],
  156.   "武器回し上"      => [ 0,  1,   2,   2,   0,  -1,   2, true,"上半回転"],
  157.   "武器一回転上"    => [ 3,  1,   4,   0,   0,  -1,   2, true,"武器一回転"],
  158.   "武器掲げ"        => [ 0,  1,   2,   2,  28,  -1,   2, true,"掲げ"],
  159.   "高速武器振り攻撃"=> [ 3,  0,   0,   2,   0,  -1,   2, true,"刀攻撃"],
  160.   "弓矢攻撃"        => [ 3,  1,   1,   2,   8,  -1,   2, true,"弓攻撃"],
  161.   "弓矢攻撃-空"        => [ 3,  1,   1,   2,   8,  -1,   2, true,"弓攻撃-空"],
  162.   "弓矢攻撃2"        => [ 3,  1,   1,   2,   8,  -1,   2, true,"弓攻撃2"],
  163.   "弓矢攻撃3"        => [ 3,  1,   8,   2,   8,  -1,   2, true,"弓攻撃"],
  164.   "突き攻撃"        => [ 3,  0,   1,   2,   0,  -1,   2, true,"剣突き刺し"],
  165.   "槍投げ"          => [ 3,  2,   3,   2,   8,  -1,   2, true,""],
  166.   "槍投げ後固定"    => [ 3,  2,   3,   2,   8,   2,   2, true,""],
  167.   "銃で攻撃"        => [ 3,  1,   1,   2,   0,  -1,   2, true,"銃攻撃"],
  168.   "銃で攻撃2"        => [ 3,  1,   1,   2,   0,  -1,   2, true,"銃攻撃2"],
  169.   "銃で攻撃3"        => [ 3,  1,   6,   2,   0,  -1,   2, true,"銃攻撃3"],
  170.   "銃で攻撃4"        => [ 3,  1,   1,   2,   0,  -1,   2, true,"銃攻撃4"],
  171.   "銃で攻撃5"        => [ 3,  1,   5,   2,   0,  -1,   2, true,"銃攻撃5"],
  172.   "銃で攻撃6"        => [ 3,  1,   1,   2,   0,  -1,   2, true,"銃攻撃6"],
  173.   "銃で攻撃7"        => [ 3,  1,   1,   2,   0,  -1,   2, true,"銃攻撃7"],
  174.   "銃で攻撃8"        => [ 3,  1,   1,   2,   0,  -1,   2, true,"銃攻撃8"],
  175.   "銃で攻撃8-8"        => [ 3,  1,   0,   2,   0,  -1,   2, true,""],
  176.   "持M134"          => [ 5,  0,   2,   2,   0,  -1,   2, true,""],
  177.   "拿出M134"          => [ 5,  1,   10,   2,   0,  -1,   2, true,""],
  178.   "銃で攻撃8-3"        => [ 4,  1,   1,   2,   0,  -1,   2, true,"銃攻撃8"],
  179.   "銃で攻撃8-4"        => [ 4,  1,   10,   2,   0,  -1,   2, true,"銃攻撃8-4"],
  180.   "銃で攻撃8-5"        => [ 3,  1,   15,   2,   0,  -1,   2, true,"銃攻撃8-5"],
  181.   "銃で攻撃8-6"        => [ 3,  1,   10,   2,   0,  -1,   2, true,"銃攻撃8-6"],
  182.   "銃で攻撃8-7"        => [ 4,  1,   10,   2,   0,  -1,   2, true,"銃攻撃8-7"],
  183.   "銃で攻撃8-2"        => [ 4,  1,   15,   2,   0,  -1,   2, true,"銃攻撃8-2"],
  184.   "銃で攻撃9"        => [ 3,  1,   1,   2,   0,  -1,   2, true,"銃攻撃9"],
  185.   "銃で攻撃10"        => [ 3,  1,   5,   2,   0,  -1,   2, true,"銃攻撃10"],
  186.   "銃で攻撃11"        => [ 3,  1,   1,   2,   0,  -1,   2, true,"銃攻撃11"],
  187.   "没子弹"          => [ 4,  3,   20,   2,   0,  -1,   2, true,"銃攻撃8-2"],
  188.   "武器振り攻撃L"   => [ 3,  0,   1,   2,   0,  -1,   2, true,"縦振りL"],
  189.   "武器振り攻撃遅"  => [ 3,  0,   8,   2,   0,  -1,   2, true,"縦振りL"],
  190.   "武器振り攻撃遅2" => [ 3,  2,   8,   2,   0,  -1,   2, true,""],
  191.   "剣突き刺し動作"  => [ 3,  1,   2,   2,   0,  -1,   2, true,"剣突き刺し"],
  192.   "刀攻撃下"        => [ 3,  2,   1,   2,   0,  -1,   2, true,"刀攻撃"],
  193.   "刀攻撃下-2"        => [ 3,  2,   3,   2,   0,  -1,   2, true,"刀攻撃"],
  194.   "旋转打"        => [ 4,  1,   2,   2,   0,  -1,   2, true,"旋转打武器"],
  195.   "投掷棒球"        => [ 3,  2,   6,   2,   0,  -1,   2, true,""],
  196.   "魔法挥舞"        => [ 3,  1,   2,   2,   0,  -1,   2, true,"持武器3"],
  197.   "魔法挥舞2"        => [ 3,  1,   2,   2,   0,  -1,   2, true,"刀攻撃"],
  198.   "枪专用"        => [ 3,  5,   3,   2,   0,  -1,   2, true,"枪专用"],
  199.   "刀攻撃下2"        => [ 3,  2,   1,   2,   0,  -1,   2, true,"刀攻撃2"],
  200.   "刀攻撃下3"        => [ 3,  2,   1,   2,   0,  -1,   2, true,"刀攻撃"],
  201.   "刀攻撃下4"        => [ 4,  0,   3,   2,   0,  -1,   2, true,"刀攻撃3"],
  202.   "刀攻撃下6"        => [ 4,  0,   10,   2,   0,  -1,   2, true,"刀攻撃5"],
  203.   "刀攻撃下5"        => [ 3,  2,   1,   2,   0,  -1,   2, true,"刀攻撃4"],
  204.   "刀攻撃下6"        => [ 3,  2,   2,   2,   0,  -1,   2, true,"刀攻撃6"],
  205.   "刀攻撃下6-2"        => [ 3,  2,   5,   2,   0,  -1,   2, true,"刀攻撃6"],
  206.   "刀攻撃下6-3"        => [ 4,  0,   10,   2,   0,  -1,   2, true,"刀攻撃10"],
  207.   "刀攻撃下7"        => [ 3,  2,   5,   2,   0,  -1,   2, true,"刀攻撃7"],
  208.   "刀攻撃下8"        => [ 3,  2,   5,   2,   0,  -1,   2, true,"刀攻撃8"],
  209.   "刀攻撃下9"        => [ 3,  2,   2,   2,   0,  -1,   2, true,"刀攻撃9"],
  210.   "刀攻撃下10"        => [ 3,  2,   0,   2,   0,  -1,   2, true,""],
  211.   "刀攻撃下11"        => [ 3,  2,   2,   2,   0,  -1,   2, true,"刀攻撃11"],
  212.   "接武器"           => [ 2,  2,   5,   2,   0,  -1,   2, true,"刀攻撃8"],
  213.   "刀攻撃下12"        => [ 5,  1,   1,   2,   0,  -1,   2, true,"刀攻撃"],
  214.   "刀攻撃ジャンプ"  => [ 2,  1,   8,   2,   7,  -1,   2, true,"刀攻撃"],
  215.   "武器構え待機"    => [ 3,  0,   2,   2,   0,   0,   2, true,""],
  216.   "武器構え待機2"   => [ 3,  0,   2,   2,   0,   0,   2, true,"掲げ4"],
  217.   "武器掲げ2"      => [ 3,  1,   2,   2,  14,  -1,   2, true,"掲げ2"],
  218.   "武器掲げ3"      => [ 3,  1,   2,   2,  14,  -1,   2, true,"掲げ3"],
  219.   "武器掲げ4"      => [ 3,  1,   2,   2,   5,  -1,   2, true,"掲げ2"],
  220.   "魔法詠唱"        => [ 3,  3,   6,   0,   0,  -1,   0, true,"持武器3" ],
  221.   "ピンチ待機"      => [ 1,  2,  15,   0,   0,  -1,   0, true,"" ],
  222.   "ピンチ待機-法"      => [ 1,  2,  15,   0,   0,  -1,   0, true,"持武器3" ],
  223.   "後ろ回避"        => [ 2,  1,   8,   2,   1,  -1,   0, true,"" ],
  224.   "後ろ回避2"        => [ 3,  1,   8,   2,   1,  -1,   0, true,"" ],
  225.   "後ろ回避3"        => [ 3,  1,   8,   2,   1,  -1,   0, true,"持武器3" ],
  226.   "後ろ回避武器あり"=> [ 2,  1,   8,   2,   1,  -1,   0, true,"掲げ2" ],
  227.   "勝利待機"        => [ 2,  0,  10,   2,   0,  -1,   0, true,"持武器" ],
  228.   "勝利待機2"        => [ 4,  2,  13,   2,   0,  -1,   0, true,"持武器" ],
  229.   "装榴弹"        => [ 2,  0,  5,   2,   0,  -1,   0, true,"銃攻撃8-4" ],
  230.   "装弹夹"        => [ 6,  2,  5,   2,   0,  -1,   0, true,"銃攻撃8-8" ],
  231.   "待機2"            => [ 1,  0,  15,   0,   0,  -1,   0, true,"持武器" ],
  232.   "枪攻击动作"    => [ 3,  0,   1,   2,   0,  -1,   2, true,"枪攻击"],
  233.   "鄙视动作"        => [ 4,  3,   15,   2,   0,  -1,   2, true,"持武器"],
  234.   "突刺攻击-真"        => [ 3,  1,   6,   2,   0,  -1,   2, true,"突刺攻击"],
  235.   "突刺攻击-真2"        => [ 3,  0,   1,   2,   0,  -1,   2, true,"突刺攻击2"],
  236.   "突刺攻击-真3"        => [ 3,  0,   20,   2,   0,  -1,   2, true,"突刺攻击"],
  237.   
  238. #--------------------------------------------------------------------------
  239. # ● 武器アクション 武器グラフィックの動かし方
  240. #--------------------------------------------------------------------------
  241.   # ここで使用する武器アクション名は、上のバトラーアニメ設定でのみ有効です。
  242.   
  243.   # X軸…横に動かす距離。
  244.   # Y軸…縦に動かす距離。
  245.   # Z軸…バトラーより手前に表示するならtrue。
  246.   # 始度…動作前の最初の角度。半時計回りで0~360度。負が半時計回り。
  247.   # 終度…動作後の角度。
  248.   # 原点…回転元の原点。[0…中心] [1…左上] [2…右上] [3…左下] [4…右下]
  249.   # 反転…trueにすると動作前にグラフィックを反転して表示します。
  250.   # X拡…X軸拡大率、横の拡大率です。1が当倍、2が2倍、0.5が1/2になります。
  251.   # Y拡…Y軸拡大率、縦の拡大率です。1が当倍、2が2倍、0.5が1/2になります。
  252.   # 調X…微調整するX軸。この数字ぶん初期X座標が変化します。
  253.   # 調Y…微調整するY軸。この数字ぶん初期Y座標が変化します。
  254.   # 二刀…二刀流時限定で、左(項目でいうと下)の武器画像を表示するようにします。
  255.   #       二刀流じゃなかった場合はバトラーアニメごと処理を飛ばします。
  256.   
  257.   # 武器アクション名   X軸  Y軸  Z軸  始度 終度 原点 反転  X拡  Y拡  調X  調Y 二刀
  258.   "縦振り"     => [   6,   5,true,-135,  65,  4,false,   1,  1,  -7,  -4,false],
  259.   "防御时武器"     => [   -15,   -15,true,0,  0,  1,false,   1,  1,  -7,  -4,false],
  260.   "縦振り3"     => [   3,   9,true,-225,  45,  4,false,   1,  1,  -7,  -4,false],
  261.   "縦振り2"     => [   -30,  0,false, 180,  220,  4,false,   1,  1,  -7,  -4,false],
  262.   "弓攻撃"     => [  16,   8,true, -135,  45,  4,false,   1,  1,  -4,  -6,false],
  263.   "弓攻撃-空"     => [  16,   8,true, 45,  45,  4,false,   1,  1,  -4,  -6,false],
  264.   "弓攻撃2"    => [  16,   8,true, -135,  -10,  4,false,   1,  1,  -4,  -6,false],
  265.   "銃攻撃"     => [   3,   8,true,  120,  30,  4,false,   1,  1,  -4,  -6,false],
  266.   "縦振りL"    => [   2,   8,false,-135,  75,  4,false,   1,  1,  -4,  -6,true],
  267.   "剣突き刺し" => [   6,   5,false,-135, 120,  4,false,   1,  1,  -4,  -6,false],
  268.   "下半回転"   => [   6,   8,false, 270,  45,  4,false,   1,  1,  -4,  -6,false],
  269.   "刀攻撃"     => [   0,   0,false, 270, 120,  4,true,    1,  1,  -4,  -6,false],
  270.   "旋转打武器"     => [   0,   0,false, 0, 360,  4,true,    1,  1,  -4,  -6,false],
  271.   "刀攻撃2"    => [   0,   0,false,-135, 120,  4,true,    1,  1,  -4,  -6,false],
  272.   "高空刺-武器"     => [  -5,   0,true, 90,  135,  4,false,   1,  1,  -4,  -6,false],
  273.   "刀攻撃3"     => [   0,   0,false, -270, 0,  4,true,    1,  1,  -4,  -6,false],
  274.   "刀攻撃5"     => [   0,   0,false, 0, 20,  4,true,    1,  1,  -4,  -6,false],
  275.   "刀攻撃4"     => [   0,   10,false, 0, -270,  4,true,    1,  1,  -4,  -6,false],
  276.   "刀攻撃6"     => [   0,   10,false, 120, 240,  4,true,    1,  1,  -4,  -6,false],
  277.   "刀攻撃10"     => [   0,   10,false, 0, 0,  4,true,    1,  1,  -4,  -6,false],
  278.   "刀攻撃8"     => [   10,   10,false, 300, 300,  4,true,    1,  1,  -4,  -6,false],
  279.   "刀攻撃9"     => [   10,   10,false, 300, 90,  4,true,    1,  1,  -4,  -6,false],
  280.   "刀攻撃7"     => [   -50,   10,false, 360, -360,  4,true,    1,  1,  -4,  -6,false],
  281.   "刀攻撃11"     => [   0,   0,false, 270, 80,  4,true,    1,  1,  -4,  -6,false],
  282.   "上半回転"   => [   6,   8,false,  45,-100,  4,false,   1,  1,  -4,  -6,false],
  283.   "武器一回転" => [  -2,  10,false, 260,-100,  4,false,   1,  1,  -4,  -6,false],
  284.   "掲げ"       => [   6,  -4,false,  90, -45,  4,false,   1,  1,  -4,  -6,false],
  285.   "掲げ2"     => [  -2,  10,true,   90, -15,  4,false,   1,  1,  -4,  -6,false],
  286.   "掲げ3"     => [  -2,  13,true,   90, -15,  4,false,   1,  1,  -4,  -6,false],
  287.   "掲げ4"     => [  -2,  13,false,-135,-145,  4,false,   1,  1,  -4,  -6,false],
  288.   "持武器"     => [  0,  -1,false, 60, 60,  0,false,   1,  1,  0,  0,false],
  289.   "持武器2"     => [  -1,  -1,false, 70, 70,  4,false,   1,  1,  0,  0,false],
  290.   "持武器3"     => [  5,  -1,false, 315, 315,  3,false,   1,  1,  0,  0,false],
  291.   "持武器4"     => [  5,  -1,false, 315, 315,  2,false,   1,  1,  0,  0,false],
  292.   "銃攻撃2"     => [   3,   8,true,  45,  45,  4,false,   1,  1,  -4,  -6,false],
  293.   "銃攻撃3"     => [   3,   8,true,  50,  20,  4,false,   1,  1,  -4,  -6,false],
  294.   "銃攻撃4"     => [   -5,   8,true,  120,  10,  4,false,   1,  1,  -4,  -6,false],
  295.   "銃攻撃5"     => [   7,   3,true,  100,  50,  4,false,   1,  1,  -4,  -6,false],
  296.   "銃攻撃6"     => [   7,   3,true,  50,  30,  4,false,   1,  1,  -4,  -6,false],
  297.   "銃攻撃7"     => [   -35,   0,true,  0,  -5,  0,false,   0,  0,  0,  0,false],
  298.   "銃攻撃8"     => [   7,   3,true,  50,  30,  4,false,   1,  1,  -4,  -6,false],
  299.   "銃攻撃8-4"     => [   7,   3,true,  45,  90,  4,false,   1,  1,  -4,  -6,false],
  300.   "銃攻撃8-6"     => [   7,   3,true,  90,  90,  4,false,   1,  1,  -4,  -6,false],
  301.   "銃攻撃8-7"     => [   7,   3,true,  90,  50,  4,false,   1,  1,  -4,  -6,false],
  302.   "銃攻撃8-8"     => [   7,   16,true,  -45,  -45,  4,false,   1,  1,  -4,  -6,false],
  303.   "銃攻撃8-5"     => [   7,   3,true,  20,  20,  4,false,   1,  1,  -4,  -6,false],
  304.   "銃攻撃8-2"     => [   7,   3,true,  45,  45,  4,false,   1,  1,  -4,  -6,false],
  305.   "銃攻撃9"     => [   7,   3,true,  30,  10,  4,false,   1,  1,  -4,  -6,false],
  306.   "銃攻撃10"     => [   7,   3,true,  20,  50,  4,false,   1,  1,  -4,  -6,false],
  307.   "銃攻撃11"     => [   7,   3,true,  90,  70,  4,false,   1,  1,  -4,  -6,false],
  308.   "枪专用"      => [   -5,   8,true,  50,  10,  4,false,   1,  1,  -4,  -15,false],
  309.   "枪专用2"      => [   20,   15,true,  13,  13,  4,false,   1,  1,  -4,  -15,false],
  310.   "枪攻击"     => [   6,   5,true, 45,  40,  4,false,   1,  1,  -7,  -4,false],
  311.   "突刺攻击"     => [   15,   8,true,  45,  45,  4,false,   1,  1,  -4,  -6,false],
  312.   "突刺攻击2"     => [   -1,   8,true,  45,  45,  4,false,   1,  1,  -4,  -6,false],
  313.   
  314. #--------------------------------------------------------------------------
  315. # ● バトラー移動  エネミーのX軸移動は逆計算になります
  316. #--------------------------------------------------------------------------
  317.   # 目標…移動する座標の参照先 [0=自身の現在位置] [1=ターゲット] [2=画面] [3=初期位置]
  318.   # X軸…対象から見たX座標。絶対値は最低でも時間より高く
  319.   # Y軸…対象から見たY座標。絶対値は最低でも時間より高く
  320.   # 時間…移動時間。大きいほど遅い。これを距離で割ったのが1フレーム移動距離です。
  321.   # 加速…正は加速、負は減速。数値分1フレームの移動距離が増減しつづけます。
  322.   # ジャンプ…ジャンプ軌道。正は下、負は上軌道。0はジャンプしません。
  323.   # アニメ…その移動に利用するバトラーアニメ名。

  324.   #                        目標  X軸  Y軸 時間 加速 ジャンプ アニメ
  325.   "移動しない"          => [  0,   0,   0,  1,   0,   0,  "待機(固定)"],
  326.   "浮空暴击"          => [  10,   -10,   -20,  8,   2,   0,  ""],
  327.   "戦闘開始前の位置へ"  => [  0,  54,   0,  1,   0,   0,  "前進-空"],
  328.   "キャラ消し"          => [  0,   0,   0,  1,   0,   0,  "キャラ消し待機"],
  329.   "一歩前移動"          => [  3, -32,   0, 18,  -1,   0,  "前進"],
  330.   "一歩前移動-法"          => [  3, -32,   0, 18,  -1,   0,  "前進3"],
  331.   "一歩前移動-慢"          => [  3, -32,   0, 35,  -1,   0,  "前進"],
  332.   "一歩前移動2"          => [  3, -32,   0, 35,  -1,   0,  "前進"],
  333.   "高速背射动作"          => [  1, -80,   0, 20,  -1,   0,  "特殊后退"],
  334.   "一歩後移動"          => [  0,  32,   0,  8,  -1,   0,  "前進"],
  335.   "一歩後移動2"          => [  0,  32,   0,  18,  -1,   0,  "刀攻撃下6"],
  336.   "后座力"              => [  0,  15,   0,  1,  -1,   0,  "前進"],
  337.   "后座力(小)"          => [  0,  8,   0,  1,  -1,   0,  "前進"],
  338.   "三人攻撃移動1"       => [  2, 410,  96, 18,  -1,   0,  "前進"],
  339.   "三人攻撃移動2"       => [  2, 440, 145, 18,  -1,   0,  "前進"],
  340.   "三人攻撃移動3"       => [  2, 410, 212, 18,  -1,   0,  "前進"],
  341.   "四人攻撃移動1"       => [  2, 444,  96, 18,  -1,   0,  "前進"],
  342.   "四人攻撃移動2"       => [  2, 444, 212, 18,  -1,   0,  "前進"],
  343.   "四人攻撃移動3"       => [  2, 384,  64, 18,  -1,   0,  "前進"],
  344.   "四人攻撃移動4"       => [  2, 384, 244, 18,  -1,   0,  "前進"],
  345.   "被ダメージ"          => [  0,  10,   0,  4,  -1,   0,  "ダメージ"],
  346.   "押し出す"            => [  0,  12,   0,  1,   1,   0,  "ダメージ"],
  347.   "押し出す右"          => [  0, -12,   0,  1,   1,   0,  "ダメージ"],
  348.   "味方逃走"            => [  0, 300,   0,300,   1,   0,  "後退"],
  349.   "逃走失敗"            => [  0,  48,   0, 16,   1,   0,  "後退"],
  350.   "勝利のジャンプ"      => [  0,   0,   0, 20,   0,  -5,  "待機(固定)"],
  351.   "高空刺"              => [  0,   -25,   0, 25,   0,  -5,  "高空刺动作"],
  352.   "高空刺2"              => [  0,   50,   0, 25,   0,  -5,  "高空刺动作"],
  353.   "目標移動"            => [  1,   0,   0, 18,  -1,   0,  "前進"],
  354.   "测试目標移動"            => [  1,   0,   0, 18,  -1,   0,  "测试前進"],
  355.   "目標前移動"          => [  1,  24,   0, 12,  -1,   0,  "前進"],
  356.   "目標前移動2"          => [  1,  200,   0, 12,  -1,   0,  "前進"],
  357.   "目標前移動3"          => [  1,  -50,   -200, 24,  -1,   0,  "前進"],
  358.   "目標前移動4"          => [  1,  250,   0, 12,  -1,   0,  "前進"],
  359.   "目標前移動5"          => [  1,  100,   0, 12,  -1,   0,  "前進"],
  360.   "目標高速移動"        => [  1,   0, -12,  8,   0,  -2,  "前進"],
  361.   "目標前移動-战"          => [  1,  24,   0, 24,  -1,   0,  "持武器前進"],
  362.   "目標前移動-法"          => [  1,  70,   0, 24,  -1,   0,  "前進3"],
  363.   "目標前移動-法2"          => [  1,  100,   0, 24,  -1,   0,  "前進3"],
  364.   "目標前移動-弓"          => [  1,  18,   0, 24,  -1,   0,  "前進"],
  365.   "目標の背後へ高速移動"=> [  1,  24,   0,  12,  -1,   0,  "前進"],
  366.   "目標前へ高速移動"    => [  1,  24,   0,  5,  -5,   0,  "前進"],
  367.   "目標前高速移動"      => [  1,  24,   0,  1,   0,   0,  "前進"],
  368.   "目標前高速移動3"      => [  1,  24,   0,  5,   0,   0,  "前進"],
  369.   "目標前高速移動4"      => [  1,  -70,   0,  5,   0,   0,  "前進"],
  370.   "目標前高速移動5"      => [  1,  150,   0,  1,   0,   0,  "前進"],
  371.   "目標前高速移動2"      => [  1,  -24,   0,  1,   0,   0,  "前進"],
  372.   "目標右前移動"        => [  1,  96,  32, 16,  -1,   0,  "前進"],
  373.   "目標左前移動"        => [  1,  96, -32, 16,  -1,   0,  "前進"],
  374.   "一歩前ジャンプ"      => [  0, -32,   0,  8,  -1,  -4,  "前進"],
  375.   "一歩前ジャンプ-法"      => [  0, -32,   0,  8,  -1,  -4,  "前進3"],
  376.   "一歩後ジャンプ"      => [  0,  32,   0,  8,  -1,  -4,  "後退"],
  377.   "バックジャンプ"      => [  0,  32,   0, 24,  -1,  -4,  "後ろ回避"],
  378.   "バックジャンプ-法"      => [  0,  32,   0, 24,  -1,  -4,  "後ろ回避3"],
  379.   "バックジャンプ2"      => [  0,  5,   0, 1,  -1,  -4,  "銃で攻撃8-2"],
  380.   "空翻"                  => [  0,  10,   -10, 24,  -1,  -4,  "後ろ回避"],
  381.   "空翻2"                  => [  0,  30,   0, 24,  -1,  -4,  "空翻动作"],
  382.   "空翻3"                  => [  0,  10,   0, 24,  -1,  -4,  "空翻动作2"],
  383.   "バックジャンプ反"      => [  0,  -32,   0, 24,  -1,  -4,  "後ろ回避"],
  384.   "バックジャンプ遠"    => [  0,  64,   0, 24,  -1,  -4,  "後ろ回避"],
  385.   "バックジャンプ超遠"    => [  0,  155,   0, 24,  -1,  -4,  "後ろ回避"],
  386.   "空中投掷"           => [  0,  100,   0, 12,  -1,  -4,  "投掷姿势4"],
  387.   "空中投掷2"           => [  0,  155,   0, 24,  -1,  -4,  "召唤毒刃"],
  388.   "空中投掷3"           => [  0,  145,   0, 24,  -1,  -4,  "召唤毒刃"],
  389.   "バックジャンプ遠-法"    => [  0,  64,   0, 24,  -1,  -4,  "後ろ回避3"],
  390.   "バックジャンプ遠2"    => [  0,  100,   0, 100,  -1,  -4,  "後ろ回避"],
  391.   "バックジャンプ遠反"    => [  0,  -40,   0, 24,  -1,  -4,  "後ろ回避"],
  392.   "バックジャンプ遠反2"    => [  0,  -70,   0, 24,  -1,  -4,  "後ろ回避"],
  393.   "バックジャンプ遠反3"    => [  0,  -70,   0, 15,  -1,  -4,  "投掷姿势4"],
  394.   "高速バックジャンプ"  => [  0,  32,   0, 10,   2,  -4,  "後ろ回避"],
  395.   "バックスタッブ"      => [  0, 148,   0, 15,   5,  -4,  "後ろ回避武器あり"],
  396.   "目標にジャンプ"      => [  1,  12, -12, 12,  -1,  -6,  "前進"],
  397.   "味方投げ"            => [  0, -24,   0, 16,   0,  -2,  "前進"],
  398.   "踏みつけ"            => [  1,  12, -32, 12,  -1,  -6,  "手前表示"],
  399.   "一歩前ジャンプ叩き"  => [  0, -32,   0, 12,  -1,  -2,  "武器振り攻撃"],
  400.   "前ジャンプ叩き"      => [  1,  12,   0, 21,   1,  -5,  "武器振り攻撃遅"],
  401.   "前ジャンプ叩き2"     => [  1,  12,   0, 12,   1,  -5,  "武器振り攻撃遅2"],
  402.   "前ジャンプ叩き3"      => [  1,  12,   0, 21,  0,  -5,  "钝器挥舞2"],
  403.   "前ジャンプ叩き4"      => [  1,  12,   0, 30,  0,  -5,  "钝器挥舞2"],
  404.   "前ジャンプ叩き5"      => [  1,  12,   0, 30,  0,  -5,  "钝器挥舞3"],
  405.   "後方に払い上げ"      => [  1,  12,   0, 16,   0,  -3,  "武器振り攻撃"],
  406.   "その場ジャンプ叩き"  => [  1,   0,   0, 16,   0,  -5,  "武器振り攻撃"],
  407.   "その場ジャンプ斬り"  => [  1,  40,   0, 40, -10,  -6,  "武器構え待機"],
  408.   "その場ジャンプ斬り2" => [  1,  36,   0, 50,  10,  -5,  "武器構え待機2"],
  409.   "刀攻撃ジャンプ斬り"  => [  1,  84,   0, 30,  -9,  -5,  "刀攻撃ジャンプ"],
  410.   "払い抜け"            => [  1, -96,   0, 16,   2,   0,  "武器振り攻撃"],
  411.   "右払い抜け"          => [  1, -96,  32, 16,   2,   0,  "武器振り攻撃"],
  412.   "左払い抜け"          => [  1, -96, -32, 16,   2,   0,  "武器振り攻撃"],
  413.   "右払い抜け2"         => [  1,-128,  48, 16,   2,   0,  "武器振り攻撃"],
  414.   "左払い抜け2"         => [  1,-128, -48, 16,   2,   0,  "武器振り攻撃"],
  415.   "折り返し払い抜け"    => [  1, 128,   0, 16,   2,   0,  "武器振り攻撃"],
  416.   "移动目标身后"        => [  1, -64,   0, 16,   0,   0,  "前進"],
  417.   "移动目标身后2"        => [  1, 20,   0, 16,   0,   0,  "前進"],
  418.   "前ジャンプ叩き"      => [  1,  12,   0, 12,  -1,  -5,  "武器振り攻撃遅"],

  419. #--------------------------------------------------------------------------
  420. # ● バトラー浮遊  バトラーを影から離します
  421. #--------------------------------------------------------------------------
  422.   # 判別…判別に使うので、すべて"float"で統一してください。
  423.   # 始高…浮遊開始の高さ。符号が負で影より高く、正だと低くなります。
  424.   # 終高…浮遊終了の高さ。移動系のアクションがあるまでこの高さを維持します。
  425.   # 時間…浮遊にかける時間。
  426.   # アニメ…浮遊に利用するバトラーアニメ名。
  427.   
  428.   #                      判別  始高 終高 時間 アニメ
  429.   "低空浮遊中0"      => ["float", -22, -20,  2, "待機(固定)"],
  430.   "低空浮遊中20"     => ["float", -20, -18,  2, "待機(固定)"],
  431.   "低空浮遊中30"     => ["float", -18, -20,  2, "待機(固定)"],
  432.   "低空浮遊中40"     => ["float", -20, -22,  2, "待機(固定)"],
  433.   "ジャンプ停止0"    => ["float",   0, -80,  4, "待機(固定)"],
  434.   "ジャンプ着地0"    => ["float", -80,   0,  4, "待機(固定)"],
  435.   "持ち上げられる0"  => ["float",   0, -30,  4, "待機(固定)"],
  436.   "魔法浮空"     => ["float", -40, -38,  2, "浮空待機"],
  437.   "浮空升起"     => ["float", 0, -40,  8, "浮空待機"],
  438.   "浮空着地"     => ["float", -38, 0,  4, "待機(固定)"],
  439.   
  440. #--------------------------------------------------------------------------
  441. # ● 座標リセット 元の位置に戻る移動設定
  442. #--------------------------------------------------------------------------
  443.   # 判別…判別に使うので、すべて"reset"で統一してください。
  444.   # 時間…戻るのにかける時間。同じ時間でも距離が大きいと移動速度が変わります。
  445.   # 加速…正は加速、負は減速。数値分1フレームの移動距離が増減しつづけます。
  446.   # ジャンプ…ジャンプ軌道。正は下、負は上軌道。0はジャンプしません。
  447.   # アニメ…その移動に利用するバトラーアニメ名を入れます。

  448.   #                      判別  時間 加速 ジャンプ アニメ
  449.   "座標リセット"    => ["reset", 22,  0,   0,  "前進"],
  450.   "座標リセット-开始"    => ["reset", 22,  0,   0,  "前進-空"],
  451.   "座標リセット-法"    => ["reset", 22,  0,   0,  "前進3"],
  452.   "座標リセット-战"    => ["reset", 22,  0,   0,  "持武器前進"],
  453.   "後退リセット"    => ["reset", 22,  0,   0,  "前進"],
  454.   "後退リセット-法"    => ["reset", 22,  0,   0,  "前進3"],
  455.   "後退リセット-战"    => ["reset", 22,  0,   0,  "持武器前進"],
  456.   
  457. #--------------------------------------------------------------------------
  458. # ● 強制アクション 自分以外のバトラーにアクションを取らせます
  459. #--------------------------------------------------------------------------
  460.   # 識別…取らせるアクションが単発か通しか。"単発"はここの単発アクション名を。
  461.   #       "通し"とは単発アクションを組み合わせたものを指します。
  462.   #
  463.   # 対象…アクションを取らせる対象。0はターゲット、それ以外はそのステートNoが
  464.   #       付いているバトラー全部を対象とします。
  465.   #       数値に-マイナスを付けることで、その絶対値のスキルIDを習得している
  466.   #       自分以外のアクターを対象とします(アクター限定)
  467.   #       インデックス(メンバー位置)で指定する場合、インデックス値に1000足します。
  468.   #       指定したインデックスが自分だったり存在しない場合(戦闘不能や逃走)は
  469.   #       0番から順に参照し、誰も該当しなかった時は行動を中断します。
  470.   #
  471.   # 復帰…アクション後位置を戻すなら座標リセット系の単発アクション名を入れます。
  472.   #       戻さない場合""とします。
  473.   # アクション名…強制するアクション名。識別が単発なら、単発アクション名を。
  474.   #               通しなら通しアクション名を。
  475.   
  476.   #                       識別    対象   復帰              アクション名
  477.   "小吹き飛ばし"     => ["単発",    0, "座標リセット",  "押し出す"],
  478.   "右回し"           => ["単発",    0, "座標リセット",  "右回り1回転"],
  479.   "縦にぺしゃんこ"   => ["単発",    0, "座標リセット",  "縦縮み"],
  480.   "着弾1"            => ["単発",    0, "座標リセット",  "対象から自身へ1"],
  481.   "味方持ち上げ"     => ["単発",    0,             "",  "持ち上げられる"],
  482.   "ウルリカと攻撃"   => ["通し",   18, "座標リセット",  "ウルリカ合体攻撃1"],
  483.   "四人で攻撃1"      => ["通し", -101, "座標リセット",  "四人合体攻撃1"],
  484.   "四人で攻撃2"      => ["通し", -102, "座標リセット",  "四人合体攻撃2"],
  485.   "四人で攻撃3"      => ["通し", -103, "座標リセット",  "四人合体攻撃3"],
  486.   "味方投げ飛ばし"   => ["通し", 1000, "座標リセット",  "投げつけられる"],
  487.   "小吹き飛ばし"     => ["単発",    0, "座標リセット",  "押し出す"],
  488.   "右回し"           => ["単発",    0, "座標リセット",  "右回り1回転"],
  489.   "縦にぺしゃんこ"   => ["単発",    0, "座標リセット",  "縦縮み"],
  490.   "着弾1"            => ["単発",    0, "座標リセット",  "対象から自身へ1"],
  491.   "味方持ち上げ"     => ["単発",    0,             "",  "持ち上げられる"],
  492.   "地すり残月で攻撃" => ["通し", -304, "座標リセット",  "地すり残月"],
  493.   "三人で攻撃1"      => ["通し", -301, "座標リセット",  "乱れ雪月花1"],
  494.   "三人で攻撃2"      => ["通し", -302, "座標リセット",  "乱れ雪月花2"],
  495.   "不動剣で攻撃1"    => ["通し", -307, "座標リセット",  "不動剣1"],
  496.   "不動剣で攻撃2"    => ["通し", -306, "座標リセット",  "不動剣2"],

  497. #--------------------------------------------------------------------------
  498. # ● ターゲット変更  バトラーの現在ターゲットしている対象を変えます
  499. #--------------------------------------------------------------------------
  500.   # ※あくまでスプライトアクション上のターゲットを変えるだけで、戦闘上での
  501.   #   ターゲットは変更されません。戦闘行動中のバトラーだけが実行できます。
  502.   # 判別…判別に使うので、すべて"target"で統一してください。
  503.   #
  504.   # 対象…ターゲットを変更させる対象。0はターゲット、それ以外はそのステートNoが
  505.   #       付いているバトラー全部のターゲットを変えます。
  506.   #       数値を負にすることでその絶対値のスキルIDを習得している味方全員を対象に。
  507.   #       インデックス(メンバー位置)で指定する場合、インデックス値に1000足します。
  508.   #       指定したインデックスが自分だったり存在しない場合(戦闘不能や逃走)は
  509.   #       0番から順に参照します。
  510.   #
  511.   # 変更先…変更先内容   0=自分に  1=自分のターゲットに 
  512.   #                      2=自分のターゲットに変更後、自身のターゲットを変更相手に
  513.   #                      3=変更した自身のターゲットを戻す(事前に2を実行していること)
  514.   
  515.   # ターゲット変更名             判別   対象  変更先
  516.   "標的を自身に"          => ["target",    0,  0],
  517.   "二人攻撃目標統一"      => ["target",   18,  1],
  518.   "四人攻撃目標統一"      => ["target",   19,  1],
  519.   "投げる相手選択"        => ["target", 1000,  2],
  520.   "投げつけ目標セット"    => ["target", 1000,  3],
  521.   
  522. #--------------------------------------------------------------------------
  523. # ● スキル派生 アクションを中断し、別のスキルに派生させます
  524. #--------------------------------------------------------------------------
  525.   # 判別…判別に使うので、すべて"der"で統一してください。
  526.   # 確率…派生する確率、0~100で。派生しなかった場合、残りアクションを続行します。
  527.   # 習得…派生するスキルが未修得でも実行可能ならtrue
  528.   # スキルID…派生するスキルのID
  529.   
  530.   # 派生名               判別  確率  習得 スキルID
  531.   "ヒールに派生"     => ["der", 100, true,  91],
  532.   "適当に派生"       => ["der", 100, true,  92],
  533.   "桜華狂咲に派生"   => ["der", 100, true, 420],
  534.   "雨流狂落斬に派生" => ["der", 100, true, 421],

  535. #--------------------------------------------------------------------------
  536. # ● アクション条件  条件を設定し、満たされなかったら以降の全行動を中断します
  537. #--------------------------------------------------------------------------
  538.   # 判別…判別に使うので、すべて"nece"で統一してください。
  539.   # 対象…条件を参照する対象。[0=自分] [1=ターゲット] [2=敵全体] [3=味方全体]
  540.   # 内容… [0=ステート] [1=パラメータ] [2=スイッチ] [3=変数] [4=習得スキル]
  541.   #
  542.   # 条件…上の内容で決めた項目に合致する数値を入れます。
  543.   # [0]ステート…ステートID
  544.   # [1]パラメータ…[0=現HP] [1=現MP] [2=攻撃力] [3=防御力] [4=精神力] [5=敏捷性]
  545.   # [2]スイッチ…ゲーム中のスイッチNo
  546.   # [3]変数…ゲーム中の変数No
  547.   # [4]習得スキル…特定のスキル習得を条件とし、そのスキルIDを指定します。
  548.   #
  549.   # 補足…上の条件補足。
  550.   # [0]ステート…条件となる被ステート人数。
  551.   #              符号が正でかかっている、負でかかっていないことが条件となります。
  552.   # [1]パラメータ…パラメータの数値。対象が複数だと平均を出します。
  553.   #                符号が正で数値以上、負で数値以下が条件となります。
  554.   # [2]スイッチ…スイッチONが条件なら true、OFFが条件なら false
  555.   # [3]変数…符号が正で数値以上、負で数値以下が条件となります。
  556.   # [4]習得スキル…条件となるスキル習得人数。
  557.   
  558.   # 派生名                 判別  対象  内容 条件 補足
  559.   "二人攻撃条件確認"  => ["nece",   3,   0,  38,    1],
  560.   "三人攻撃条件確認"  => ["nece",   3,   0,  39,    2],
  561.   "四人攻撃条件確認"  => ["nece",   3,   0,  19,    3],
  562.   "浮遊ステート確認"  => ["nece",   0,   0,  17,    1],
  563.   "ネコに変身してるか"=> ["nece",   0,   0,  20,    1],
  564.   "死亡確認"          => ["nece",   1,   0,   1,    1],
  565.   
  566. #--------------------------------------------------------------------------
  567. # ● バトラー回転 画像を回転。反転と違い、武器アクションは反映されません
  568. #--------------------------------------------------------------------------
  569.   # 判別…判別に使うので、すべて"angle"で統一してください。
  570.   # 時間…回転にかける時間。
  571.   # 始度…回転開始時の角度。0~360度を指定。正が半時計周り、負が時計周り。
  572.   # 終度…回転終了時の角度。0~360度を指定。上記ともにエネミーは逆計算になります。
  573.   # 復帰…trueにすると終了と同時に通常角度に戻る。falseはアクション中そのまま。

  574.   #                     判別  時間 始度 終度 復帰
  575.   "倒れたまま"     => ["angle",  1,   0,   0,false],
  576.   "右回り1回転"    => ["angle", 48,   0,-360,false],
  577.   "左高速回転"     => ["angle",  6,   0, 360,false],

  578. #--------------------------------------------------------------------------
  579. # ● バトラー拡大縮小 武器アクションは反映されません
  580. #--------------------------------------------------------------------------
  581.   # 判別…判別に使うので、すべて"zoom"で統一してください。
  582.   # 時間…拡大縮小にかける時間。
  583.   # X拡…横の拡大率。1.0が等倍で、0.5が半分になります。
  584.   # Y拡…縦の拡大率。1.0が等倍で、0.5が半分になります。
  585.   # 復帰…trueにすると終了と同時に等倍に戻ります。falseはそのまま。
  586.   #       拡大縮小中は一時的に転送元原点が変わりますが、この復帰で元に戻ります。

  587.   #                   判別  時間  X拡  Y拡  復帰
  588.   "横縮み"         => ["zoom", 16, 0.5, 1.0, true],
  589.   "縦縮み"         => ["zoom", 16, 1.0, 0.5, true],
  590.   
  591. #--------------------------------------------------------------------------
  592. # ● 戦闘アニメ データベースの戦闘アニメを表示します
  593. #--------------------------------------------------------------------------
  594.   # 判別…判別に使うので、すべて"anime"で統一してください。
  595.   # ID…アニメID。-1で武器やスキルに設定されたアニメになりダメージを表示。
  596.   #     -2にするとスキルでも武器依存のアニメになります。
  597.   # 対象… [0=自分] [1=ターゲット]
  598.   # 反転…trueでアニメ画像が反転されます。
  599.   # ウエイト…アニメ表示が終わるまで待つならtrue。
  600.   # 二刀用…trueで二刀流時限定でアニメを実行。アニメIDを-1にした通常攻撃の場合は
  601.   # 左武器に設定されたアニメを表示します。スキルはスキルアニメを再度実行。
  602.   
  603.   #                       判別      ID 対象  反転  ウエイト  二刀用
  604.   "対象アニメ"        => ["anime",  -1,  1, false,false, false],
  605.   "対象アニメウエイト"=> ["anime",  -1,  1, false, true, false],
  606.   "対象アニメ武器"    => ["anime",  -2,  1, false,false, false],
  607.   "対象アニメL"       => ["anime",  -1,  1, false,false,  true],
  608.   "打撃アニメ"        => ["anime",   1,  1, false,false, false],
  609.   "斬撃/必殺技1"      => ["anime",  11,  1, false,false, false],
  610.   "対象アニメ2"        => ["anime",  -1,  1, true,false, false],
  611.   "雷击"          => ["anime",  35,  1, false,false, false],
  612.   "冰冻"          => ["anime",  26,  1, false,false, false],
  613.   "雷击2"          => ["anime",  95,  1, false,false, false],
  614.   "雷击3"          => ["anime",  84,  1, false,false, false],
  615.   "魔法发动1"             => ["anime",  83,  0, false,false, false],
  616.   "歼灭之炎"             => ["anime",  89,  1, false,false, false],
  617.   "撕咬"             => ["anime",   55,  1, false,false, false],
  618.   "弩发射"             => ["anime",   113,  0, false,false, false],
  619.   "散弩"             => ["anime",   114,  1, false,false, false],
  620.   "突刺"             => ["anime",   115,  1, false,false, false],
  621.   "散弩2"             => ["anime",   116,  0, false,false, false],
  622.   "弩发射2"             => ["anime",   117,  0, false,false, false],
  623.   "冰箭1"             => ["anime",   118,  0, false,false, false],
  624.   "冰箭2"             => ["anime",   119,  0, false,false, false],
  625.   "冰箭3"             => ["anime",   120,  1, false,false, false],
  626.   "白羽之光"             => ["anime",   110,   0, false,false, false],
  627.   "白羽之光2"             => ["anime",   121,  0, false,false, false],
  628.   "白羽之光3"             => ["anime",   122,  0, false,false, false],
  629.   "白羽之光4"             => ["anime",   620,  1, false,false, false],
  630.   "毒箭"             => ["anime",   123,  1, false,false, false],
  631.   "寒冰之箭改"             => ["anime",   125,  0, false,false, false],
  632.   "寒冰之箭改2"             => ["anime",   126,  0, false,false, false],
  633.   "寒冰之箭改3"             => ["anime",   127,  1, false,false, false],
  634.   "白羽之光改"             => ["anime",   128,  1, false,false, false],
  635.   "白羽之光改2"             => ["anime",   129,  0, false,false, false],
  636.   "白羽之光改3"             => ["anime",   130,  0, false,false, false],  
  637.   "白羽之光改4"             => ["anime",   131,  0, false,false, false],  
  638.   "白羽之光改5"             => ["anime",   132,  1, false,false, false],
  639.   "爆炎之箭"             => ["anime",   140,  0, false,false, false],
  640.   "爆炎之箭2"             => ["anime",   141,  0, false,false, false],
  641.   "爆炎之箭3"             => ["anime",   142,  1, false,false, false],
  642.   "天堂突击"             => ["anime",   148,  0, false,false, false],
  643.   "天堂突击2"             => ["anime",   149,  0, false,false, false],
  644.   "天堂突击3"             => ["anime",   150,  1, false,false, false],
  645.   "天堂突击4"             => ["anime",   151,  1, false,false, false],  
  646.   "天堂突击5"             => ["anime",   152,  1, false,false, false],
  647.   "天堂突击6"             => ["anime",   153,  0, false,false, false],
  648.   "重力球"             => ["anime",   154,  0, false,false, false],
  649.   "重力球2"             => ["anime",   155,  0, false,false, false],
  650.   "枪击中"             => ["anime",   157,  1, false,false, false],
  651.   "哦"             => ["anime",   160,  1, false,false, false],
  652.   "枪击中2"             => ["anime",   161,  0, false,false, false],
  653.   "弹壳"             => ["anime",   162,  0, false,false, false],
  654.   "榴弹"             => ["anime",   163,  0, false,false, false],
  655.   "榴弹2"             => ["anime",   164,  0, false,false, false],
  656.   "穿甲弹"             => ["anime",   165,  0, false,false, false],
  657.   "震荡"             => ["anime",   174,  0, false,false, false],
  658.   "震荡2"             => ["anime",   175,  0, false,false, false],
  659.   "震荡3"             => ["anime",   176,  0, false,false, false],
  660.   "震荡4"             => ["anime",   177,  0, false,false, false],
  661.   "能量冲击"             => ["anime",   181,  0, false,false, false],
  662.   "炸裂冲击"             => ["anime",   **,  0, false,false, false],
  663.   "炸裂冲击2"             => ["anime",   184,  0, false,false, false],
  664.   "旋风冲击"             => ["anime",   186,  0, false,false, false],
  665.   "旋风冲击2"             => ["anime",   185,  0, false,false, false],
  666.   "炸裂冲击改"             => ["anime",   187,  0, false,false, false],
  667.   "炸裂冲击改2"             => ["anime",   **,  0, false,false, false],
  668.   "火拳"             => ["anime",   189,  0, false,false, false],
  669.   "火拳2"             => ["anime",   190,  0, false,false, false],
  670.   "手雷"             => ["anime",   192,  0, false,false, false],
  671.   "烈火拳"             => ["anime",   194,  0, false,false, false],
  672.   "烈火拳2"             => ["anime",   195,  0, false,false, false],
  673.   "烈火拳3"             => ["anime",   196,  1, false,false, false],
  674.   "地裂斩"             => ["anime",   197,  1, false,false, false],
  675.   "真空碎"             => ["anime",   198,  0, false,false, false],
  676.   "地裂碎"             => ["anime",   200,  0, false,false, false],
  677.   "地裂碎2"             => ["anime",   201,  0, false,false, false],
  678.   "真空碎2"             => ["anime",   202,  1, false,false, false],
  679.   "真空碎3"             => ["anime",   203,  1, false,false, false],
  680.   "真空碎4"             => ["anime",   204,  1, false,false, false],
  681.   "地裂斩改"             => ["anime",   205,  0, false,false, false],
  682.   "真空碎5"             => ["anime",   206,  0, false,false, false],
  683.   "雷暴"             => ["anime",   38,  0, false,false, false],
  684.   "黑洞"             => ["anime",   66,  0, false,false, false],
  685.   "混沌之祭"             => ["anime",   207,  0, false,false, false],
  686.   "混沌之祭2"             => ["anime",   208,  0, false,false, false],
  687.   "混沌之祭3"             => ["anime",   210,  0, false,false, false],
  688.   "混沌之祭4"             => ["anime",   209,  1, false,false, false],
  689.   "歼灭之炎"             => ["anime",   14,  0, false,false, false],
  690.   "歼灭之炎2"             => ["anime",   32,  0, false,false, false],
  691.   "寒冰地狱"             => ["anime",   19,  0, false,false, false],
  692.   "寒冰地狱2"             => ["anime",   34,  0, false,false, false],
  693.   "火魔法"             => ["anime",   214,  0, false,false, false],
  694.   "水魔法"             => ["anime",   215,  0, false,false, false],
  695.   "火魔法2"             => ["anime",   216,  0, false,false, false],
  696.   "水魔法2"             => ["anime",   217,  0, false,false, false],
  697.   "高温射线"             => ["anime",   31,  0, false,false, false],
  698.   "绞杀冰剑"             => ["anime",   18,  1, false,false, false],
  699.   "绞杀冰剑2"             => ["anime",   33,  1, false,false, false],
  700.   "星蓝之剑"             => ["anime",   219,  0, false,false, false],
  701.   "异次元"             => ["anime",   87,  0, false,false, false],
  702.   "黑洞2"             => ["anime",   222,  0, false,false, false],
  703.   "飓风刹2"             => ["anime",   226,  1, false,false, false],
  704.   "破碎2"             => ["anime",   227,  0, false,false, false],
  705.   "毁灭残影"             => ["anime",   228,  0, false,false, false],
  706.   "毁灭残影2"             => ["anime",   229,  1, false,false, false],
  707.   "龙斩"             => ["anime",   230,  0, false,false, false],
  708.   "龙斩2"             => ["anime",   231,  0, false,false, false],
  709.   "龙斩3"             => ["anime",   232,  0, false,false, false],
  710.   "龙斩4"             => ["anime",   233,  0, false,false, false],
  711.   "银刃"             => ["anime",   234,  1, false,false, false],
  712.   "力爆"             => ["anime",   237,  0, false,false, false],
  713.   "浊流"             => ["anime",   239,  0, false,false, false],
  714.   "光箭"             => ["anime",   243,  0, false,false, false],
  715.   "光箭2"             => ["anime",   242,  1, false,false, false],
  716.   "沙漠风暴"             => ["anime",   245,  0, false,false, false],
  717.   "沙漠风暴2"             => ["anime",   247,  0, false,false, false],
  718.   "沙漠风暴3"             => ["anime",   248,  0, false,false, false],
  719.   "变身BUG"             => ["anime",   250,  0, false,false, false],
  720.   "火箭弹"             => ["anime",   251,  0, false,false, false],
  721.   "火箭弹2"             => ["anime",   252,  0, false,false, false],
  722.   "混沌之祭5"             => ["anime",   256,  0, false,false, false],
  723.   "剧毒风暴"             => ["anime",   257,  0, false,false, false],
  724.   "雷暴2"             => ["anime",   36,  1, false,false, false],
  725.   "愤怒中的绝望"       => ["anime",   289,  0, false,false, false],
  726.   "炸裂神弓"       => ["anime",   290,  0, false,false, false],
  727.   "狂暴"       => ["anime",   291,  0, false,false, false],
  728.   "炸裂射击"       => ["anime",   292,  0, false,false, false],
  729.   "神圣之翼"       => ["anime",   293,  0, false,false, false],
  730.   "导力全开"       => ["anime",   294,  0, false,false, false],
  731.   "敌斩击"       => ["anime",   300,  1, false,false, false],
  732.   "敌斩击2"       => ["anime",   301,  1, false,false, false],
  733.   "敌斩击3"       => ["anime",   302,  1, false,false, false],
  734.   "敌斩击4"       => ["anime",   303,  1, false,false, false],
  735.   "敌斩击5"       => ["anime",   304,  1, false,false, false],
  736.   "敌斩击6"       => ["anime",   305,  1, false,false, false],
  737.   "敌斩击7"       => ["anime",   306,  1, false,false, false],
  738.   "斩击"       => ["anime",   315,  0, false,false, false],
  739.   "斩击2"       => ["anime",   316,  0, false,false, false],
  740.   "斩击3"       => ["anime",   317,  1, false,false, false],
  741.   "斩击4"       => ["anime",   310,  1, false,false, false],
  742.   "斩击5"       => ["anime",   319,  1, false,false, false],
  743.   "斩击6"       => ["anime",   320,  1, false,false, false],
  744.   "背射"       => ["anime",   329,  0, false,false, false],
  745.   "背射2"       => ["anime",   330,  1, false,false, false],
  746.   "斩击7"       => ["anime",   332,  0, false,false, false],
  747.   "神剑"       => ["anime",   335,  0, false,false, false],
  748.   "斩击8"       => ["anime",   336,  1, false,false, false],
  749.   "碎血"       => ["anime",   337,  0, false,false, false],
  750.   "碎血2"       => ["anime",   340,  0, false,false, false],
  751.   "碎血3"       => ["anime",   341,  1, false,false, false],
  752.   "重箭"       => ["anime",   343,  0, false,false, false],
  753.   "重箭2"       => ["anime",   344,  1, false,false, false],
  754.   "光箭"       => ["anime",   345,  0, false,false, false],
  755.   "光箭2"       => ["anime",   346,  0, false,false, false],
  756.   "背射3"       => ["anime",   347,  0, false,false, false],
  757.   "天空射"       => ["anime",   348,  0, false,false, false],
  758.   "天空射2"       => ["anime",   349,  1, false,false, false],
  759.   "天空射3"       => ["anime",   350,  1, false,false, false],
  760.   "天空射4"       => ["anime",   351,  1, false,false, false],
  761.   "光剑"       => ["anime",   352,  0, false,false, false],
  762.   "光剑2"       => ["anime",   353,  1, false,false, false],
  763.   "光剑3"       => ["anime",   354,  1, false,false, false],
  764.   "光剑4"       => ["anime",   355,  1, false,false, false],
  765.   "恢复"       => ["anime",   356,  0, false,false, false],
  766.   "巨剑"       => ["anime",   358,  0, false,false, false],
  767.   "巨剑2"       => ["anime",   359,  0, false,false, false],
  768.   "巨剑3"       => ["anime",   360,  1, false,false, false],
  769.   "神恩"       => ["anime",   212,  1, false,false, false],   
  770.   "恢复2"       => ["anime",   363,  0, false,false, false],
  771.   "霰弹"       => ["anime",   364,  0, false,false, false],
  772.   "霰弹2"       => ["anime",   365,  0, false,false, false],
  773.   "霰弹3"       => ["anime",   366,  0, false,false, false],
  774.   "狙击"       => ["anime",   367,  0, false,false, false],
  775.   "狙击2"       => ["anime",   368,  0, false,false, false],
  776.   "钝击"       => ["anime",   235,  1, false,false, false],
  777.   "剑气爆破"       => ["anime",   371,  0, false,false, false],
  778.   "剑气爆破2"       => ["anime",   372,  0, false,false, false],
  779.   "剑气爆破3"       => ["anime",   369,  0, false,false, false],
  780.   "燃烧"       => ["anime",   373,  1, false,false, false],
  781.   "烧尽"       => ["anime",   374,  0, false,false, false],
  782.   "烧尽2"       => ["anime",   375,  0, false,false, false],
  783.   "魔法阵"       => ["anime",   342,  0, false,false, false],
  784.   "火魔法阵"       => ["anime",   376,  0, false,false, false],
  785.   "火魔法阵2"       => ["anime",   377,  0, false,false, false],
  786.   "火魔法阵3"       => ["anime",   378,  0, false,false, false],
  787.   "火魔法阵4"       => ["anime",   380,  0, false,false, false],
  788.   "冰剑"       => ["anime",   381,  1, false,false, false],
  789.   "水魔法阵"       => ["anime",   382,  0, false,false, false],
  790.   "水魔法阵2"       => ["anime",   383,  0, false,false, false],
  791.   "冰魄"       => ["anime",   384,  1, false,false, false],
  792.   "寒冰地狱"       => ["anime",   385,  0, false,false, false],
  793.   "寒冰地狱2"       => ["anime",   386,  0, false,false, false],
  794.   "寒冰地狱3"       => ["anime",   387,  0, false,false, false],
  795.   "寒冰地狱4"       => ["anime",   388,  1, false,false, false],
  796.   "大型火球"       => ["anime",   389,  0, false,false, false],
  797.   "大型火球2"       => ["anime",   390,  0, false,false, false],
  798.   "大型火球3"       => ["anime",   391,  0, false,false, false],
  799.   "熔岩爆破"       => ["anime",   392,  1, false,false, false],
  800.   "半月斩"       => ["anime",   397,  0, false,false, false],
  801.   "半月斩2"       => ["anime",   398,  0, false,false, false],
  802.   "半月斩3"       => ["anime",   399,  0, false,false, false],
  803.   "突刺特效"       => ["anime",   400,  0, false,false, false],
  804.   "直线冲刺"       => ["anime",   401,  0, false,false, false],
  805.   "直线冲刺2"       => ["anime",   402,  0, false,false, false],
  806.   "毁灭冲刺"       => ["anime",   403,  0, false,false, false],
  807.   "毁灭冲刺2"       => ["anime",   404,  0, false,false, false],
  808.   "召唤岩石"       => ["anime",   408,  1, false,false, false],
  809.   "敌斩击"       => ["anime",   300,  1, false,false, false],
  810.   "敌斩击2"       => ["anime",   301,  1, false,false, false],
  811.   "敌斩击3"       => ["anime",   302,  1, false,false, false],
  812.   "敌斩击4"       => ["anime",   303,  1, false,false, false],
  813.   "敌斩击5"       => ["anime",   304,  1, false,false, false],
  814.   "敌斩击6"       => ["anime",   305,  1, false,false, false],
  815.   "敌斩击7"       => ["anime",   306,  1, false,false, false],
  816.   "范围黑洞"       => ["anime",   421,  1, false,false, false],
  817.   "血"       => ["anime",   422,  1, false,false, false],
  818.   "血2"       => ["anime",   423,  1, false,false, false],
  819.   "黑魔法"       => ["anime",   255,  0, false,false, false],
  820.   "重力爆炸"       => ["anime",   424,  0, false,false, false],
  821.   "黑魔法2"       => ["anime",   425,  0, false,false, false],
  822.   "次元裂缝"       => ["anime",   426,  0, false,false, false],
  823.   "次元裂缝2"       => ["anime",   428,  0, false,false, false],
  824.   "黑魔法3"       => ["anime",   429,  0, false,false, false],
  825.   "黑洞击中"       => ["anime",   427,  1, false,false, false],
  826.   "黑魔法4"       => ["anime",   431,  0, false,false, false],
  827.   "黑魔法5"       => ["anime",   432,  0, false,false, false],
  828.   "凝点压缩"       => ["anime",   433,  0, false,false, false],
  829.   "凝点压缩2"       => ["anime",   434,  0, false,false, false],
  830.   "混沌之枪"       => ["anime",   437,  1, false,false, false],
  831.   "黑魔法6"       => ["anime",   439,  0, false,false, false],
  832.   "黑闪电"       => ["anime",   440,  1, false,false, false],
  833.   "黑闪电2"       => ["anime",   441,  1, false,false, false],
  834.   "黑闪电3"       => ["anime",   442,  1, false,false, false],
  835.   "黑巨剑"       => ["anime",   444,  0, false,false, false],
  836.   "黑魔法7"       => ["anime",   443,  0, false,false, false],
  837.   "召唤巨剑"       => ["anime",   445,  0, false,false, false],
  838.   "觉醒1"       => ["anime",   436,  0, false,false, false],  
  839.   "裁决之力"       => ["anime",   447,  0, false,false, false],
  840.   "裁决之力2"       => ["anime",   449,  0, false,false, false],
  841.   "黑魔法8"       => ["anime",   448,  0, false,false, false],
  842.   "魔法镜面待机"       => ["anime",   452,  0, false,false, false],
  843.   "剧毒地带"       => ["anime",   453,  1, false,false, false],
  844.   "开枪"       => ["anime",   455,  0, false,false, false],
  845.   "开枪2"       => ["anime",   456,  0, false,false, false],
  846.   "开枪3"       => ["anime",   457,  0, false,false, false],
  847.   "高速背射"       => ["anime",   459,  0, false,false, false],
  848.   "高速背射2"       => ["anime",   461,  0, false,false, false],
  849.   "高速背射3"       => ["anime",   462,  0, false,false, false],
  850.   "魔光穿甲弹"       => ["anime",   463,  0, false,false, false],
  851.   "瞬踢"       => ["anime",   464,  0, false,false, false],
  852.   "瞬踢2"       => ["anime",   465,  0, false,false, false],
  853.   "向下射击"       => ["anime",   466,  0, false,false, false],
  854.   "向下射击2"       => ["anime",   467,  0, false,false, false],
  855.   "向下射击3"       => ["anime",   468,  0, false,false, false],
  856.   "枪旋转"       => ["anime",   469,  0, false,false, false],
  857.   "暗开枪"       => ["anime",   470,  0, false,false, false],
  858.   "枪口烟"       => ["anime",   471,  0, false,false, false],
  859.   "映月"         => ["anime",   473,  0, false,false, false],
  860.   "终结破坏"         => ["anime",   475,  0, false,false, false],
  861.   "终结破坏2"         => ["anime",   476,  0, false,false, false],
  862.   "终结破坏3"         => ["anime",   477,  0, false,false, false],
  863.   "终结破坏4"         => ["anime",   478,  0, false,false, false],
  864.   "终结破坏5"         => ["anime",   479,  0, false,false, false],
  865.   "M134"         => ["anime",   480,  0, false,false, false],
  866.   "M1342"         => ["anime",   481,  0, false,false, false],
  867.   "毒蛇追踪炮"    => ["anime",   483,  0, false,false, false],
  868.   "毒蛇追踪炮2"    => ["anime",   484,  0, false,false, false],
  869.   "毒蛇追踪炮3"    => ["anime",   485,  0, false,false, false],
  870.   "毒蛇追踪炮4"    => ["anime",   486,  1, false,false, false],
  871.   "毒蛇追踪炮5"    => ["anime",   487,  1, false,false, false],
  872.   "毒蛇追踪炮6"    => ["anime",   488,  0, false,false, false],
  873.   "榴弹发射"    => ["anime",   482,  0, false,false, false],
  874.   "混沌轰炸"    => ["anime",   489,  0, false,false, false],
  875.   "混沌轰炸2"    => ["anime",   490,  0, false,false, false],
  876.   "混沌轰炸3"    => ["anime",   491,  0, false,false, false],
  877.   "混沌轰炸4"    => ["anime",   492,  0, false,false, false],
  878.   "混沌轰炸5"    => ["anime",   493,  1, false,false, false],
  879.   "消能射击"    => ["anime",   496,  0, false,false, false],
  880.   "针刺射击"    => ["anime",   497,  1, false,false, false],
  881.   "针刺装弹"    => ["anime",   498,  0, false,false, false],
  882.   "换弹夹"    => ["anime",   499,  0, false,false, false],
  883.   "换弹夹2"    => ["anime",   500,  0, false,false, false],
  884.   "魔光瞬斩"    => ["anime",   502,  0, false,false, false],
  885.   "破碎十字"    => ["anime",   504,  1, false,false, false],
  886.   "破碎十字2"    => ["anime",   505,  0, false,false, false],
  887.   "破碎十字3"    => ["anime",   506,  0, false,false, false],
  888.   "破碎十字4"    => ["anime",   507,  1, false,false, false],
  889.   "破碎十字5"    => ["anime",   508,  0, false,false, false],
  890.   "毁灭气息"    => ["anime",   509,  0, false,false, false],
  891.   "毁灭气息2"    => ["anime",   510,  0, false,false, false],
  892.   "毁灭气息3"    => ["anime",   512,  1, false,false, false],
  893.   "毁灭气息4"    => ["anime",   435,  1, false,false, false],
  894.   "毁灭拔刀"    => ["anime",   513,  1, false,false, false],
  895.   "毁灭拔刀2"    => ["anime",   514,  0, false,false, false],
  896.   "毁灭拔刀3"    => ["anime",   515,  0, false,false, false],
  897.   "毁灭拔刀4"    => ["anime",   516,  1, false,false, false],
  898.   "重力爆破"    => ["anime",   518,  0, false,false, false],
  899.   "重力回旋"    => ["anime",   519,  0, false,false, false],
  900.   "重力回旋2"    => ["anime",   520,  1, false,false, false],
  901.   "重力回旋3"    => ["anime",   521,  1, false,false, false],
  902.   "重力回旋4"    => ["anime",   522,  1, false,false, false],
  903.   "重力回旋5"    => ["anime",   523,  0, false,false, false],
  904.   "毁灭石像"    => ["anime",   524,  1, false,false, false],
  905.   "毁灭石像2"    => ["anime",   525,  0, false,false, false],
  906.   "重力引爆"    => ["anime",   526,  0, false,false, false],
  907.   "重力引爆2"    => ["anime",   527,  0, false,false, false],
  908.   "重力引爆3"    => ["anime",   528,  0, false,false, false],
  909.   "重力引爆4"    => ["anime",   529,  0, false,false, false],
  910.   "血之代价"    => ["anime",   531,  0, false,false, false],
  911.   "血之代价2"    => ["anime",   532,  0, false,false, false],
  912.   "时间收割"    => ["anime",   534,  0, false,false, false],
  913.   "时间收割2"    => ["anime",   533,  0, false,false, false],
  914.   "粉碎"       => ["anime",   537,  0, false,false, false],
  915.   "粉碎2"       => ["anime",   538,  0, false,false, false],
  916.   "粉碎3"       => ["anime",   536,  1, false,false, false],
  917.   "雷霆一击"       => ["anime",   539,  0, false,false, false],
  918.   "雷霆一击2"       => ["anime",   541,  0, false,false, false],
  919.   "雷霆一击3"       => ["anime",   542,  0, false,false, false],
  920.   "死亡棒球"       => ["anime",   543,  0, false,false, false],
  921.   "死亡棒球2"       => ["anime",   545,  0, false,false, false],
  922.   "死亡棒球3"       => ["anime",   546,  0, false,false, false],
  923.   "死亡棒球4"       => ["anime",   547,  0, false,false, false],
  924.   "灰烬粉碎"       => ["anime",   548,  0, false,false, false],
  925.   "灰烬粉碎2"       => ["anime",   551,  0, false,false, false],
  926.   "灰烬粉碎3"       => ["anime",   552,  1, false,false, false],
  927.   "灰烬粉碎4"       => ["anime",   553,  1, false,false, false],
  928.   "灰烬粉碎5"       => ["anime",   554,  1, false,false, false],
  929.   "灰烬粉碎6"       => ["anime",   555,  0, false,false, false],
  930.   "灰烬粉碎7"       => ["anime",   556,  0, false,false, false],
  931.   "灰烬粉碎击中"    => ["anime",   549,  1, false,false, false],
  932.   "灰烬粉碎击中2"    => ["anime",   550,  1, false,false, false],
  933.   "旋转锤"       => ["anime",   557,  0, false,false, false],
  934.   "暴风锤"       => ["anime",   559,  0, false,false, false],
  935.   "暴风锤2"       => ["anime",   560,  0, false,false, false],
  936.   "暴风锤3"       => ["anime",   561,  0, false,false, false],
  937.   "熔岩锤"       => ["anime",   562,  0, false,false, false],
  938.   "熔岩锤2"       => ["anime",   563,  0, false,false, false],
  939.   "范围冲击"       => ["anime",   565,  0, false,false, false],
  940.   "范围冲击2"       => ["anime",   566,  0, false,false, false],
  941.   "高速粉碎"       => ["anime",   567,  0, false,false, false],
  942.   "高速粉碎2"       => ["anime",   568,  0, false,false, false],
  943.   "高速粉碎3"       => ["anime",   569,  1, false,false, false],
  944.   "高速粉碎4"       => ["anime",   570,  1, false,false, false],
  945.   "高速粉碎5"       => ["anime",   571,  1, false,false, false],
  946.   "极度鄙视"       => ["anime",   572,  0, false,false, false],
  947.   "燃烧怒火"       => ["anime",   573,  0, false,false, false],
  948.   "燃烧怒火2"       => ["anime",   574,  0, false,false, false],
  949.   "自然毁灭"       => ["anime",   577,  0, false,false, false],
  950.   "自然毁灭2"       => ["anime",   578,  0, false,false, false],
  951.   "天空怒吼"       => ["anime",   581,  0, false,false, false],
  952.   "天空怒吼2"       => ["anime",   582,  0, false,false, false],
  953.   "雷霆重击"       => ["anime",   585,  0, false,false, false],
  954.   "雷霆重击2"       => ["anime",   586,  0, false,false, false],
  955.   "残忍突刺"       => ["anime",   588,  0, false,false, false],
  956.   "雷霆突袭"       => ["anime",   592,  1, false,false, false],
  957.   "充电突刺"       => ["anime",   590,  0, false,false, false],
  958.   "充电突刺2"       => ["anime",   593,  0, false,false, false],
  959.   "天空挥舞"       => ["anime",   594,  1, false,false, false],
  960.   "天空挥舞2"       => ["anime",   595,  1, false,false, false],
  961.   "天空挥舞3"       => ["anime",   596,  1, false,false, false],
  962.   "天空挥舞4"       => ["anime",   597,  1, false,false, false],
  963.   "天空挥舞5"       => ["anime",   598,  0, false,false, false],
  964.   "天空挥舞6"       => ["anime",   589,  1, false,false, false],
  965.   "毁灭剑气"       => ["anime",   599,  0, false,false, false],
  966.   "毁灭剑气2"       => ["anime",   600,  0, false,false, false],
  967.   "毁灭剑气3"       => ["anime",   601,  0, false,false, false],
  968.   "毁灭剑气4"       => ["anime",   602,  0, false,false, false],
  969.   "毁灭剑气5"       => ["anime",   603,  1, false,false, false],
  970.   "雷霆半月"       => ["anime",   604,  0, false,false, false],
  971.   "雷霆半月2"       => ["anime",   605,  0, false,false, false],
  972.   "雷霆半月3"       => ["anime",   606,  0, false,false, false],
  973.   "雷霆半月4"       => ["anime",   607,  0, false,false, false],
  974.   "湮灭冲刺"       => ["anime",   608,  0, false,false, false],
  975.   "湮灭冲刺2"       => ["anime",   609,  0, false,false, false],
  976.   "湮灭冲刺3"       => ["anime",   611,  0, false,false, false],
  977.   "愤怒中的绝望"    => ["anime",   612,  0, false,false, false],
  978.   "愤怒中的绝望2"    => ["anime",   613,  0, false,false, false],
  979.   "愤怒中的绝望3"    => ["anime",   614,  0, false,false, false],
  980.   "致命斩击"      => ["anime",   615,  0, false,false, false],
  981.   "光箭攻击"      => ["anime",   616,  0, false,false, false],
  982.   "光能重箭"      => ["anime",   618,  0, false,false, false],
  983.   "光能散箭"      => ["anime",   620,  0, false,false, false],
  984.   "魔化冰箭"      => ["anime",   623,  0, false,false, false],
  985.   "魔化冰箭2"      => ["anime",   624,  0, false,false, false],
  986.   "光能突袭箭"      => ["anime",   625,  0, false,false, false],
  987.   "高压光箭"      => ["anime",   627,  0, false,false, false],
  988.   "高压光箭2"      => ["anime",   628,  0, false,false, false],
  989.   "极速背射"      => ["anime",   630,  0, false,false, false],
  990.   "极速背射2"      => ["anime",   631,  0, false,false, false],
  991.   "极速背射3"      => ["anime",   632,  0, false,false, false],
  992.   "极速背射4"      => ["anime",   633,  0, false,false, false],
  993.   "多重突袭"      => ["anime",   634,  0, false,false, false],
  994.   "多重突袭2"      => ["anime",   635,  1, false,false, false],
  995.   "多重突袭3"      => ["anime",   636,  1, false,false, false],
  996.   "多重突袭4"      => ["anime",   637,  1, false,false, false],
  997.   "多重突袭5"      => ["anime",   638,  1, false,false, false],
  998.   "多重突袭6"      => ["anime",   639,  1, false,false, false],
  999.   "多重突袭7"      => ["anime",   640,  0, false,false, false],
  1000.   "天空神箭"      => ["anime",   641,  0, false,false, false],
  1001.   "天空神箭2"      => ["anime",   642,  0, false,false, false],
  1002.   "天空神箭3"      => ["anime",   643,  0, false,false, false],
  1003.   "能源补充"      => ["anime",   645,  0, false,false, false],
  1004.   "能源补充2"      => ["anime",   646,  0, false,false, false],
  1005.   "极度脑残"      => ["anime",   647,  1, false,false, false],
  1006.   "极度脑残2"      => ["anime",   648,  0, false,false, false],
  1007.   "星辰的裁决"      => ["anime",   651,  0, false,false, false],
  1008.   "十字斩"      => ["anime",   653,  0, false,false, false],
  1009.   "十字斩2"      => ["anime",   654,  0, false,false, false],
  1010.   "十字斩3"      => ["anime",   655,  0, false,false, false],
  1011.   "雷霆十字斩"    => ["anime",   656,  0, false,false, false],
  1012.   "雷霆十字斩2"    => ["anime",   657,  0, false,false, false],
  1013.   "雷霆十字斩3"    => ["anime",   658,  0, false,false, false],
  1014.   "雷霆十字斩4"    => ["anime",   659,  1, false,false, false],
  1015.   "穿梭光剑"      => ["anime",   660,  0, false,false, false],
  1016.   "穿梭光剑2"      => ["anime",   661,  1, false,false, false],
  1017.   "穿梭光剑3"      => ["anime",   662,  1, false,false, false],
  1018.   "穿梭光剑4"      => ["anime",   663,  1, false,false, false],
  1019.   "湮灭圣剑"      => ["anime",   664,  0, false,false, false],
  1020.   "湮灭圣剑2"      => ["anime",   665,  0, false,false, false],
  1021.   "神圣制裁"      => ["anime",   666,  1, false,false, false],
  1022.   "神圣制裁2"      => ["anime",   667,  1, false,false, false],
  1023.   "圣光风暴"      => ["anime",   668,  1, false,false, false],
  1024.   "圣光风暴2"      => ["anime",   669,  1, false,false, false],
  1025.   "圣光风暴3"      => ["anime",   670,  1, false,false, false],
  1026.   "士气呐喊"      => ["anime",   671,  0, false,false, false],
  1027.   "力量反射"      => ["anime",   673,  0, false,false, false],
  1028.   "拯救之手"      => ["anime",   675,  1, false,false, false],
  1029.   "灰烬燃烧"      => ["anime",   676,  1, false,false, false],
  1030.   "灰烬燃烧2"      => ["anime",   677,  1, false,false, false],
  1031.   "灰烬燃烧3"      => ["anime",   678,  1, false,false, false],
  1032.   "强化火法阵"      => ["anime",   679,  0, false,false, false],
  1033.   "强化水法阵"      => ["anime",   692,  0, false,false, false],
  1034.   "烈焰灰烬"      => ["anime",   680,  0, false,false, false],
  1035.   "烈焰灰烬2"      => ["anime",   681,  0, false,false, false],
  1036.   "强化火法阵2"      => ["anime",   682,  0, false,false, false],
  1037.   "熔岩地带"      => ["anime",   683,  0, false,false, false],
  1038.   "地狱火柱"      => ["anime",   684,  0, false,false, false],
  1039.   "烈焰天罚"      => ["anime",   685,  0, false,false, false],
  1040.   "烈焰天罚2"      => ["anime",   686,  0, false,false, false],
  1041.   "烈焰天罚3"      => ["anime",   687,  0, false,false, false],
  1042.   "烈焰天罚4"      => ["anime",   688,  0, false,false, false],
  1043.   "烈焰天罚5"      => ["anime",   689,  0, false,false, false],
  1044.   "烈焰天罚6"      => ["anime",   690,  0, false,false, false],
  1045.   "魔化冰剑"      => ["anime",   691,  1, false,false, false],
  1046.   "急冻炸弹"      => ["anime",   693,  0, false,false, false],
  1047.   "急冻冰刺"      => ["anime",   696,  0, false,false, false],
  1048.   "急冻冰刺2"      => ["anime",   697,  0, false,false, false],
  1049.   "强化水法阵2"      => ["anime",   698,  0, false,false, false],
  1050.   "强化水法阵3"      => ["anime",   699,  0, false,false, false],
  1051.   "零度空间"      => ["anime",   700,  0, false,false, false],
  1052.   "零度空间2"      => ["anime",   701,  0, false,false, false],
  1053.   "半月锤"      => ["anime",   706,  0, false,false, false],
  1054.   "半月锤2"      => ["anime",   710,  0, false,false, false],
  1055.   "半月锤3"      => ["anime",   709,  1, false,false, false],
  1056.   "神圣粉碎"      => ["anime",   707,  0, false,false, false],
  1057.   "神圣粉碎2"      => ["anime",   708,  0, false,false, false],
  1058.   "天罚"      => ["anime",   711,  0, false,false, false],
  1059.   "法师防御"      => ["anime",   712,  0, false,false, false],
  1060.   "冲锋连射"      => ["anime",   713,  0, false,false, false],
  1061.   "冲锋连射2"      => ["anime",   714,  0, false,false, false],
  1062.   "冲锋连射3"      => ["anime",   715,  0, false,false, false],
  1063.   "雷击"      => ["anime",   720,  1, false,false, false],
  1064.   "粉碎冲撞"      => ["anime",   726,  0, false,false, false],
  1065.   "地震咆哮"      => ["anime",   727,  0, false,false, false],
  1066.   "地震咆哮2"      => ["anime",   728,  0, false,false, false],
  1067.   "神圣痛击"      => ["anime",   732,  0, false,false, false],
  1068.   "神圣痛击2"      => ["anime",   733,  0, false,false, false],
  1069.   "神圣痛击2"      => ["anime",   733,  0, false,false, false],
  1070.   "幻月粉碎"      => ["anime",   735,  0, false,false, false],
  1071.   "幻月粉碎2"      => ["anime",   736,  0, false,false, false],
  1072.   "审判雷暴"      => ["anime",   737,  1, false,false, false],
  1073.   "审判雷暴2"      => ["anime",   738,  0, false,false, false],
  1074.   "审判雷暴3"      => ["anime",   739,  1, false,false, false],
  1075.   "审判雷暴4"      => ["anime",   740,  0, false,false, false],
  1076.   "审判雷暴5"      => ["anime",   741,  0, false,false, false],
  1077.   "圣光湮灭"      => ["anime",   742,  0, false,false, false],
  1078.   "圣光湮灭2"      => ["anime",   743,  0, false,false, false],
  1079.   "圣光湮灭3"      => ["anime",   744,  0, false,false, false],
  1080.   "圣光湮灭4"      => ["anime",   745,  0, false,false, false],
  1081.   "小刀投掷"      => ["anime",   747,  0, false,false, false],
  1082.   "强力投掷"      => ["anime",   749,  0, false,false, false],
  1083.   "闪电投掷"      => ["anime",   751, 0, false,false, false],
  1084.   "星辰破裂"      => ["anime",   753, 0, false,false, false],
  1085.   "暗杀"      => ["anime",   756, 0, false,false, false],
  1086.   "暗杀2"      => ["anime",   757, 0, false,false, false],
  1087.   "暗杀3"      => ["anime",   758, 0, false,false, false],
  1088.   "夺命背击"      => ["anime",   760, 0, false,false, false],
  1089.   "夺命背击2"      => ["anime",   761, 0, false,false, false],
  1090.   "夺命背击3"      => ["anime",   762, 0, false,false, false],
  1091.   "夺命背击4"      => ["anime",   763, 1, false,false, false],
  1092.   "夺命背击5"      => ["anime",   759, 1, false,false, false],
  1093.   "夺命背击7"      => ["anime",   754, 1, false,false, false],
  1094.   "无影之刃"      => ["anime",   764, 0, false,false, false],
  1095.   "无影之刃2"      => ["anime",   765, 1, false,false, false],
  1096.   "无影之刃3"      => ["anime",   766, 0, false,false, false],
  1097.   "无影之刃4"      => ["anime",   767, 0, false,false, false],
  1098.   "机械毒刃"      => ["anime",   769, 0, false,false, false],
  1099.   "机械毒刃2"      => ["anime",   770, 0, false,false, false],
  1100.   "机械毒刃3"      => ["anime",   771, 0, false,false, false],
  1101.   "强化暗杀"      => ["anime",   773, 0, false,false, false],
  1102.   "强化暗杀2"      => ["anime",   774, 0, false,false, false],
  1103.   "强化暗杀3"      => ["anime",   775, 0, false,false, false],
  1104.   "强化暗杀4"      => ["anime",   776, 1, false,false, false],
  1105.   "强化暗杀5"      => ["anime",   777, 1, false,false, false],
  1106.   "强化暗杀6"      => ["anime",   785, 0, false,false, false],
  1107.   "机械毁灭"      => ["anime",   778, 0, false,false, false],
  1108.   "机械毁灭2"      => ["anime",   779, 0, false,false, false],
  1109.   "机械毁灭3"      => ["anime",   780, 0, false,false, false],
  1110.   "机械毁灭4"      => ["anime",   781, 1, false,false, false],
  1111.   "机械毁灭5"      => ["anime",   782, 1, false,false, false],
  1112.   "机械毁灭6"      => ["anime",   783, 0, false,false, false],
  1113.   "机械毁灭7"      => ["anime",   784, 0, false,false, false],
  1114.   "无影轰炸"      => ["anime",   786, 0, false,false, false],
  1115.   "无影轰炸2"      => ["anime",   787, 0, false,false, false],
  1116.   "无影轰炸3"      => ["anime",   788, 0, false,false, false],
  1117.   "无影轰炸4"      => ["anime",   789, 0, false,false, false],
  1118.   "无影轰炸5"      => ["anime",   790, 0, false,false, false],
  1119.   "无影轰炸6"      => ["anime",   791, 0, false,false, false],
  1120.   "重力球2"      => ["anime",   796, 1, false,false, false],
  1121.   "金属重压"      => ["anime",   797, 0, false,false, false],
  1122.   "时间屏障"      => ["anime",   806, 0, false,false, false],
  1123.   "时间屏障2"      => ["anime",   807, 0, false,false, false],
  1124.   "怒火"      => ["anime",   840, 0, false,false, false],
  1125.   "流星"      => ["anime",   842, 0, false,false, false],
  1126.   "流星2"      => ["anime",   843, 0, false,false, false],
  1127.   "灰烬之雨"      => ["anime",   844, 0, false,false, false],
  1128.   "灰烬之雨2"      => ["anime",   845, 0, false,false, false],
  1129.   "巨大流星"      => ["anime",   846, 0, false,false, false],
  1130.   "墓地炸弹"      => ["anime",   851, 0, false,false, false],
  1131.   "墓地炸弹2"      => ["anime",   852, 0, false,false, false],
  1132.   "死亡墓碑"      => ["anime",   854, 1, false,false, false],
  1133.   "一闪"      => ["anime",   857, 0, false,false, false],
  1134.   "一闪2"      => ["anime",   858, 1, false,false, false],
  1135.   "一闪3"      => ["anime",   859, 0, false,false, false],
  1136.   "黑色抹杀"      => ["anime",   860, 0, false,false, false],
  1137.   "黑色抹杀2"      => ["anime",   861, 0, false,false, false],
  1138.   "重力雨"      => ["anime",   862, 0, false,false, false],
  1139.   "重力雨2"      => ["anime",   863, 0, false,false, false],
  1140.   "重力雨3"      => ["anime",   864, 0, false,false, false],
  1141.   "火力支援"      => ["anime",   865, 0, false,false, false],
  1142.   "强力穿甲弹"      => ["anime",   866, 0, false,false, false],
  1143.   "炎龙碎"      => ["anime",   871, 0, false,false, false],
  1144.   "炎龙碎2"      => ["anime",   872, 0, false,false, false],
  1145.   "炎龙碎3"      => ["anime",   873, 0, false,false, false],
  1146.   "燃烧改"      => ["anime",   874, 0, false,false, false],
  1147.   "燃烧改2"      => ["anime",   875, 0, false,false, false],
  1148.   "烧尽改"      => ["anime",   876, 0, false,false, false],
  1149.   "烧尽改2"      => ["anime",   877, 0, false,false, false],
  1150.   "熔岩风暴"      => ["anime",   878, 0, false,false, false],
  1151.   "熔岩风暴2"      => ["anime",   879, 0, false,false, false],
  1152.   "灰烬燃烧改"      => ["anime",   881, 0, false,false, false],
  1153.   "灰烬燃烧改2"      => ["anime",   882, 0, false,false, false],
  1154.   
  1155. #--------------------------------------------------------------------------
  1156. # ● アニメ飛ばし 戦闘アニメを飛ばします。飛び道具、遠距離攻撃用
  1157. #--------------------------------------------------------------------------
  1158.   # ID…データベースで設定されているアニメのID。0はアニメを非表示に。
  1159.   # 対象…飛ばす対象 [0=ターゲット] [1=敵全体の中心] [2=味方全体の中心] [4=自身]
  1160.   # タイプ…[0=当たって消える] [1=直線に貫通]
  1161.   # 時間…アニメを飛ばす際の移動時間。大きいほど速度も遅い。
  1162.   # 軌道…アニメを飛ばす際の軌道。数値を入れると曲線に。正が下、負が上軌道。
  1163.   # 調X…微調整するX軸。飛ばす初期X座標が変化します。エネミーは自動で逆計算に。
  1164.   # 調Y…微調整するY軸。飛ばす初期Y座標が変化します。
  1165.   # 始…アニメを飛ばす際の開始位置。[0=自身] [1=対象] [2=移動させない]
  1166.   # Z座標…アニメや武器をキャラより手前に表示するならtrue
  1167.   # 武器…下の貼り付ける武器、スキルアクション名を入れます。利用しないなら""
  1168.   
  1169.   #                     判別   ID 対象 タイプ 時間  軌 調X 調Y 始 Z座標 武器
  1170.   "魔法始動アニメ"  => ["m_a",   30,  4,  0,    20,   0,  0,  0, 2,false,""],
  1171.   "流星启动"        => ["m_a",  378,  4,  0,   62,   0,  0,  0, 2,false,""],
  1172.   "剑气爆破2-2"    => ["m_a",   372,  4,  0,    50,   0,  0,  0, 2,false,""],
  1173.   "毁灭冲刺(旧)"    => ["m_a",   404,  4,  0,    70,   0,  0,  0, 2,false,""],
  1174.   "幽灵火炮"       => ["m_a",   813,  8,  0,    8,   0,  0,  0, 2,false,""],
  1175.   "幽灵火炮3"       => ["m_a",   814,  8,  0,    8,   0,  0,  0, 2,false,""],
  1176.   "灵子飓风炮2"       => ["m_a",   856,  4,  0,    8,   0,  0,  0, 2,false,""],
  1177.   "魔法始動火"  => ["m_a",   376,  1,  0,    1,   0,  0,  0, 2,false,""],
  1178.   "炎魔法始動アニメ"=> ["m_a", 123,  4,  0,   62,   0,  0,  0, 2,false,""],
  1179.   "氷魔法始動アニメ"=> ["m_a", 124,  4,  0,   62,   0,  0,  0, 2,false,""],
  1180.   "烈焰天罚启动"=> ["m_a", 378,  4,  0,   62,   0,  0,  0, 2,false,""],
  1181.   "零度空间启动"=> ["m_a", 699,  4,  0,   62,   0,  0,  0, 2,false,""],
  1182.   "雷魔法始動アニメ"=> ["m_a", 125,  4,  0,   62,   0,  0,  0, 2,false,""],
  1183.   "土魔法始動アニメ"=> ["m_a", 126,  4,  0,   62,   0,  0,  0, 2,false,""],
  1184.   "水魔法始動アニメ"=> ["m_a", 127,  4,  0,   62,   0,  0,  0, 2,false,""],
  1185.   "風魔法始動アニメ"=> ["m_a", 128,  4,  0,   62,   0,  0,  0, 2,false,""],
  1186.   "光魔法始動アニメ"=> ["m_a", 129,  4,  0,   62,   0,  0,  0, 2,false,""],
  1187.   "闇魔法始動アニメ"=> ["m_a", 130,  4,  0,   62,   0,  0,  0, 2,false,""],
  1188.   "無魔法始動アニメ"=> ["m_a", 132,  4,  0,   62,   0,  0,  0, 2,false,""],
  1189.   "対象から自身へ1" => ["m_a",   4,  0,  0,   24,   0,  0,  0, 1,false,""],
  1190.   "武器投げ開始"    => ["m_a",   0,  2,  0,   18,  0,  0,  0, 0,false,"回転投げ"],
  1191.   "武器投げ戻し"    => ["m_a",   0,  0,  0,   18,  24,  0,  0, 1,false,"回転投げ"],
  1192.   "全体アニメ単体化"=> ["m_a",  80,  1,  0,   64,   0,  0,  0, 2,true,""],
  1193.   "ヒットエフェクト"=> ["m_a", 90,    0,  0,  48,   0,  0,  0, 2,true,""],
  1194.   "桜花斬エフェクト"=> ["m_a", 91,    0,  0,  48,   0,  0,  0, 2,true,""],
  1195.   "分身斬エフェクト"=> ["m_a", 104,   0,  0,  48,   0,  0,  0, 2,true,""],
  1196.   "幻影剣始動"      => ["m_a", 130,   4,  0,  160,  0, -0,  0, 1,true,""],
  1197.   "幻影剣右上"      => ["m_a", 131,   0,  0,  48,   0,  0,  0, 2,true,""],
  1198.   "幻影剣左上"      => ["m_a", 132,   0,  0,  48,   0,  0,  0, 2,true,""],
  1199.   "幻影剣右"        => ["m_a", 133,   0,  0,  48,   0,  0,  0, 2,true,""],
  1200.   "幻影剣左"        => ["m_a", 134,   0,  0,  48,   0,  0,  0, 2,true,""],
  1201.   "不動剣エフェクト"=> ["m_a", 107,   0,  0,  78,   0,  0,  0, 2,true,""],
  1202.   "爆熱剣エフェクト"=> ["m_a", 108,   0,  0,  78,   0,  0,  0, 2,true,""],
  1203.   "盗むエフェクト"  => ["m_a", 110,   0,  0,  78,   0,  0,  0, 2,true,""],
  1204.   "雨流エフェクト"  => ["m_a",  98,   0,  0, 158,   0,  0,  0, 2,true,""],
  1205.   "月光剣エフェクト"=> ["m_a",  94,   0,  0,  38,   0,  0,  0, 2,true,""],
  1206.   "槍投げエフェクト"=> ["m_a", 111,   4,  0,  14,   0,  0,  3, 2,false,""],
  1207.   "必殺技始動アニメ"=> ["m_a", 86,    4,  0,  48,   0,  0,  0, 2,false,""],
  1208.   "カットインエフェクト"  => ["m_a", 118,   0,  0,  48,   0,  0,  0, 2,true,""],
  1209.   "二刀流エフェクト1"    => ["m_a", 315,   0,  0,   7,   0,  0,  0, 2,true,""],
  1210.   "二刀流エフェクト2"    => ["m_a", 316,   0,  0,   8,   0,  0,  0, 2,true,""],
  1211.   "桜華狂咲エフェクト"    => ["m_a", 119,   0,  0,  48,   0,  0,  0, 2,true,""],
  1212.   "亀甲羅割りエフェクト"  => ["m_a", 136,   0,  0,  90,   0,  0,  0, 2,true,""],
  1213.   "風雪乱舞エフェクト"    => ["m_a",  93,   0,  0,  98,   0,  0,  0, 2,true,""],
  1214.   "月光剣エフェクト2"    => ["m_a",  95,   0,  0,  38,   0,  0,  0, 2,true,""],
  1215.   "地竜剣エフェクト1"    => ["m_a",  96,   0,  0,  48,   0,  0,  0, 2,true,""],
  1216.   "地竜剣エフェクト2"    => ["m_a",  97,   0,  0,  48,   0,  0,  0, 2,true,""],
  1217.   "雨流狂落斬エフェクト"  => ["m_a", 138,   0,  0, 258,   0, 10,  0, 2,true,""],
  1218.   "狂落斬2段目エフェクト"=> ["m_a", 139,   0,  0,  48,   0, 10,  0, 2,true,""],
  1219.   "狂落斬3段目エフェクト"=> ["m_a", 140,   0,  0,  48,   0, 10,  0, 2,true,""],
  1220.   "ファイアストームエフェクト"=> ["m_a", 106,   0,  0,  78,   0,  0,  0, 2,true,""],
  1221.   "サンダーストームエフェクト"=> ["m_a", 120,   0,  0,  78,   0,  0,  0, 2,true,""],
  1222.   "不動の精神エフェクト"      => ["m_a", 109,   4,  0,  98,   0,  0,  0, 2,false,""],
  1223.   "气合"            => ["m_a", 148,   4,  0,  30,   0,  0,  0, 2,false,""],
  1224. #--------------------------------------------------------------------------
  1225. # ● アニメ飛ばしに貼り付ける武器画像アクション 上のアニメ飛ばし専用
  1226. #--------------------------------------------------------------------------
  1227.   # 貼り付けた武器画像の動き。この画像は武器アクションの画像とは別に設定できます。
  1228.   # その場合貼り付ける画像は武器設定で行ってください。
  1229.   # 始度…動作前の最初の角度。半時計回りで0~360度。
  1230.   # 終度…動作後の角度。半時計回りで0~360度。
  1231.   # 時間…回転にかける時間。小さいほど早い。動作は消えるまでループし続けます。
  1232.   
  1233.   # 武器アクション名    始度 終度 時間
  1234.   "回転投げ"     => [   0, 360,  8],
  1235.   
  1236. #--------------------------------------------------------------------------
  1237. # ● アニメ飛ばしに貼り付けるスキル画像アクション 上のアニメ飛ばし専用
  1238. #--------------------------------------------------------------------------
  1239.   # 貼り付けたスキル画像の動き。貼り付ける画像はスキル設定で行ってください。
  1240.   # 始度…動作前の最初の角度。半時計回りで0~360度。
  1241.   # 終度…動作後の角度。半時計回りで0~360度。
  1242.   # 時間…回転にかける時間。小さいほど早い。動作は消えるまでループし続けます。
  1243.   # 判別…判別に使うので、すべて"skill"で統一してください。
  1244.   
  1245.   # 武器アクション名    始度 終度 時間 判別
  1246.   "石投げ"       => [   0, 360,  8, "skill"],
  1247.   
  1248. #--------------------------------------------------------------------------
  1249. # ● ふきだしアニメ イベントに使うふきだしアイコンを表示
  1250. #--------------------------------------------------------------------------
  1251.   # 判別…判別に使うので、すべて"balloon"で統一してください。
  1252.   # 種類…ふきだしの種類(縦位置)を0~9で指定
  1253.   # ループ…アニメ更新方法で、終了すると消えます。[0=片道] [1=往復]
  1254.   
  1255.   # ふきだし名         判別     種類 ループ
  1256.   "状態異常/汎用"   => ["balloon",   6,  1],
  1257.   "状態異常/ピンチ" => ["balloon",   5,  1],
  1258.   "状態異常/睡眠"   => ["balloon",   9,  1],
  1259.   "状態異常/閃き"   => ["balloon",   2,  0],
  1260.   "状態異常/狂鬼"   => ["balloon",   4,  0],
  1261.   "状態異常/中毒"   => ["balloon",   1,  1],
  1262.   "状態異常/烧伤"   => ["balloon",   3,  1],
  1263.   "状態異常/眩晕"   => ["balloon",   0,  1],
  1264.   "状態異常/冰冻"   => ["balloon",   4,  1],
  1265.   "状態異常/出血"   => ["balloon",   2,  1],
  1266.   "状態異常/无语"   => ["balloon",   7,  1],
  1267.   
  1268. #--------------------------------------------------------------------------
  1269. # ● サウンドの演奏
  1270. #--------------------------------------------------------------------------
  1271.   # 判別…判別に使うので、すべて"sound"で統一してください。
  1272.   # 種別…効果音は"se"  BGMは"bgm"  BGSは"bgs"
  1273.   # ピッチ…ピッチ、50~150まで指定。音量…ボリューム どちらも100がデフォルト。
  1274.   # ファイル名…再生するファイル名。""にするとBGM、BGSを変えずに各種設定可能。
  1275.   
  1276.   #   SE名              判別   種別 ピッチ 音量  SEファイル名
  1277.   "absorb1"     => ["sound", "se",  80,  100, "absorb1"],
  1278.   "chime1"      => ["sound", "se",  100, 100, "chime1"],
  1279.   "darkness4"   => ["sound", "se",  100, 100, "darkness4"],
  1280.   "wind7"       => ["sound", "se",  100, 100, "wind7"],
  1281.   "wind7-2"     => ["sound", "se",  125, 100, "wind7"],
  1282.   "Fire1"     => ["sound", "se",  125, 100, "Fire1"],
  1283.   "Slash7"     => ["sound", "se",  100, 200, "重击2"],
  1284.   "毒攻击"     => ["sound", "se",  200, 200, "081-Monster03"],
  1285.   "凯兰被击"     => ["sound", "se",  125, 100, "v配音-女惨叫-轻-007"],
  1286.   "亚特被击"     => ["sound", "se",  125, 100, "v配音-男惨叫-中-008"],
  1287.   "丽娜被击"     => ["sound", "se",  130, 100, "v配音-女惨叫-轻-007"],

  1288. #--------------------------------------------------------------------------
  1289. # ● ゲーム全体のスピード変更  アクションの細部チェック用
  1290. #--------------------------------------------------------------------------
  1291.   # 判別…判別に使うので、すべて"fps"で統一してください。
  1292.   # ゲームスピード…60がデフォルトで、低くなるほどスローになります。 
  1293.   # ※このコマンドはFPSを直接変更するものです。取り扱いには注意してください。
  1294.   
  1295.   # 変更名           判別  ゲームスピード
  1296.   "スロー再生"   => ["fps",  20],
  1297.   "半スロー再生" => ["fps",  40],
  1298.   "通常再生"     => ["fps",  60],
  1299.   "半高速再生"   => ["fps",  80],
  1300.   "通速再生"     => ["fps",  90],
  1301.   "高速再生"     => ["fps", 100],
  1302.   "超高速再生"   => ["fps", 175],
  1303.   
  1304. #--------------------------------------------------------------------------
  1305. # ● ステート付与
  1306. #--------------------------------------------------------------------------
  1307.   # 判別…判別に使うので、すべて"sta+"で統一してください。
  1308.   # 対象…[0=自分] [1=ターゲット] [2=敵全体] [3=味方全体] [4=自分を除く味方全体]
  1309.   # ステートID…付与するステートのID。「抵抗しない」ステート以外は抵抗します。
  1310.   
  1311.   # ステート付与名           判別  対象  ステートID
  1312.   "二人攻撃ステート付与" => ["sta+",  0,  38],
  1313.   "三人攻撃ステート付与" => ["sta+",  0,  39],
  1314.   "四人攻撃ステート付与" => ["sta+",  0,  19],
  1315.   "neko"                 => ["sta+",  0,  20],

  1316. #--------------------------------------------------------------------------
  1317. # ● ステート解除
  1318. #--------------------------------------------------------------------------
  1319.   # 判別…判別に使うので、すべて"sta-"で統一してください。
  1320.   # 対象…[0=自分] [1=ターゲット] [2=敵全体] [3=味方全体] [4=自分を除く味方全体]
  1321.   # ステートID…解除するステートのID
  1322.   
  1323.   # ステート付与名           判別  対象  ステートID
  1324.   "二人攻撃ステート解除" => ["sta-",  3,  38],
  1325.   "三人攻撃ステート解除" => ["sta-",  3,  39],
  1326.   "四人攻撃ステート解除" => ["sta-",  3,  19],

  1327. #--------------------------------------------------------------------------
  1328. # ● バトラー画像ファイル変更  自身のみアクター限定
  1329. #--------------------------------------------------------------------------
  1330.   # 判別…判別に使うので、すべて"change"で統一してください。
  1331.   # リセット…戦闘後も変更を反映させるならfalse。キャラチップも変わります。
  1332.   # ファイル名…変更する画像ファイル名。認識先を変えるので"_1"は指定しないように。
  1333.   
  1334.   # 変更名               判別   リセット  ファイル名
  1335.   "ネコに変身"    => ["change", true,"$ネコ"],
  1336.   "终结毁灭变身"    => ["change", true,"!$毁灭终结"],
  1337.   "変身解除"      => ["change", true,"$亚特(改)"],
  1338.   "変身解除2"      => ["change", true,"$艾丽莎"],
  1339.   "変身解除3"      => ["change", true,"$迪安-改"],
  1340.   "変身解除4"      => ["change", true,"$凯兰"],
  1341.   "変身解除5"      => ["change", true,"$水瓶天使"],
  1342.   "空白"      => ["change", true,"无标题-1"],
  1343.   "空白2"      => ["battlers", true,"无标题-1"],
  1344.   
  1345. #--------------------------------------------------------------------------
  1346. # ● ピクチャの表示 バトラー一体につき同時に1枚表示できます
  1347. #--------------------------------------------------------------------------
  1348.   # 始X…移動開始位置。画面から見たX座標。ピクチャの左上を原点とします。
  1349.   # 始Y…移動開始位置。画面から見たY座標。
  1350.   # 終X…移動終了X座標。
  1351.   # 終Y…移動終了Y座標。
  1352.   # 時間…移動時間。大きいほど遅い。これを距離で割ったのが1フレーム移動距離です。
  1353.   # Z軸…HPウインドウよりも手前に表示するならtrue
  1354.   # ピクチャファイル名…ピクチャフォルダ内のファイル名。

  1355.   #                         判別   始X  始Y  終X  終Y 時間  Z軸   ピクチャファイル名
  1356.   "カットイン1始"       => ["pic",-280,  48,   0,  64, 14, false, "Actor2-3"],
  1357.   "カットイン1終"       => ["pic",   0,  48, 550,  64, 12, false, "Actor2-3"],
  1358.   "カットインリナリー始"=> ["pic",-640,   0,   0,   0, 11,  true, "cutin002.png"],
  1359.   "カットインリナリー終"=> ["pic",   0,   0,   0,   0,  1,  true, "cutin002.png"],

  1360. #--------------------------------------------------------------------------
  1361. # ● ゲームスイッチの操作
  1362. #--------------------------------------------------------------------------
  1363.   # 判別…判別に使うので、すべて"switch"で統一してください。
  1364.   # スイッチNo…何番のスイッチを操作するか
  1365.   # ON/OFF…ONにするならtrue、OFFにするならfalse
  1366.   #
  1367.   # スイッチ操作名          判別   スイッチNo ON/OFF   
  1368.   "スイッチNo1/ON"    => ["switch",   1,  true],
  1369.   
  1370. #--------------------------------------------------------------------------
  1371. # ● ゲーム変数の操作
  1372. #--------------------------------------------------------------------------
  1373.   # 判別…判別に使うので、すべて"variable"で統一してください。
  1374.   # 変数No…何番の変数を操作するか
  1375.   # 操作…[0=代入] [1=加算] [2=減算] [3=乗算] [4=除算] [5=剰余]
  1376.   # オペランド…演算の対象となる数値を指定します。
  1377.   #
  1378.   # 変数操作名           判別     変数No 操作 オペランド
  1379.   "変数No1/+1"       => ["variable",   1,   1,    1],
  1380.   
  1381. #--------------------------------------------------------------------------
  1382. # ● スクリプトの操作  
  1383. #--------------------------------------------------------------------------
  1384.   # 判別…判別に使うので、すべて"script"で統一してください。
  1385.   #
  1386.   # 簡易的なスクリプトをアクションに割り込ませます。サンプルのp = 1 の部分に
  1387.   # 任意のスクリプトを入れます。機能上、文字列は扱えません。
  1388.   #
  1389.   #   操作名               判別   
  1390.   "テストスクリプト"   => ["script", "
  1391.   
  1392.   p = 1
  1393.   
  1394.   "],
  1395.   
  1396. #--------------------------------------------------------------------------
  1397. # ● その他 設定項目なし。ここで使われている名称は変更しないでください。
  1398. #--------------------------------------------------------------------------
  1399.   # ピクチャ消去…表示しているピクチャを消します。
  1400.   # 残像ON…バトラーの軌跡に残像を残します。通しアクション中は残像し続けます。
  1401.   # 残像OFF…残像を消します。
  1402.   # 反転…画像を反転します。再度反転させるか座標リセットしない限り反転したまま。
  1403.   # 待機に移行しない…行動後、待機アクションを取らせません。
  1404.   # コラプス許可…ターゲットのHPが0になった場合、このタイミングでコラプスを
  1405.   #               開始させます。これがなければアクション終了時にコラプスします。
  1406.   # 二刀限定…この次の単発アクションのみ、二刀限定で行うようにします。
  1407.   #           二刀でなければ処理を飛ばし、次の単発アクションに移行します。
  1408.   # 非二刀限定…上とは逆に二刀ではないときのみ次の単発アクションを有効にします。
  1409.   # 個別処理開始…全体攻撃を個別で処理する場合の、リピート行動開始の目印です。
  1410.   # 個別処理終了…全体攻撃を個別で処理する場合の、リピート行動終了の目印です。
  1411.   # 初期位置変更…元の座標(初期位置)を今いる位置に変更します。
  1412.   # 初期位置変更解除…初期位置変更で変化した座標を元に戻します。
  1413.   # アクティブ解除…戦闘行動が終了したとみなし、直後に次のキャラが行動開始します。
  1414.   #                 コラプス許可機能も含んでおり、これ以降ダメージは与えられません。
  1415.   # 終了…行動の終了。これは入れなくてもアクションがなくなれば自動で認識します。
  1416.   
  1417.   "ピクチャ消去"    => ["ピクチャ消去"],
  1418.   "残像ON"          => ["残像ON"],
  1419.   "残像OFF"         => ["残像OFF"],
  1420.   "反転"            => ["反転"],
  1421.   "待機に移行しない"=> ["待機に移行しない"],
  1422.   "コラプス許可"    => ["コラプス許可"],
  1423.   "二刀限定"        => ["二刀限定"],
  1424.   "非二刀限定"      => ["非二刀限定"],
  1425.   "個別処理開始"    => ["個別処理開始"],
  1426.   "個別処理終了"    => ["個別処理終了"],
  1427.   "初期位置変更"    => ["初期位置変更"],
  1428.   "初期位置変更解除"=> ["初期位置変更解除"],
  1429.   "アクティブ解除"  => ["アクティブ解除"],
  1430.   "終了"            => ["終了"]
  1431.   
  1432. #--------------------------------------------------------------------------
  1433. # ● ウエイトについて
  1434. #--------------------------------------------------------------------------
  1435.   # 単発アクションで数値のみの場合、それがそのままウエイト時間となります。
  1436.   # つまり単発アクション名に数値のみの名称は使えないので注意してください。
  1437.   # ウエイトは次のアクションに行かずに待つ時間ですが、バトラーアニメの更新は
  1438.   # 止まらずに行われます。
  1439.   
  1440.   }
  1441. #==============================================================================
  1442. # ■ 通しアクション
  1443. #------------------------------------------------------------------------------
  1444. #  上の単発アクションを組み合わせたもので、これが実際に取る行動となります
  1445. #==============================================================================
  1446.   # ここの通しアクション名が下のアクター、エネミー指定アクションに使われます。
  1447.   # 行動は左側から順番に行われます。
  1448.   ACTION = {
  1449. #------------------------------- 待機系 -----------------------------------------  
  1450.   # 通しアクション名     行動
  1451.   
  1452.   "戦闘開始"          => ["戦闘開始前の位置へ","座標リセット"],
  1453.   
  1454.   "戦闘開始-法"          => ["戦闘開始前の位置へ","座標リセット-法"],
  1455.                           
  1456.   "待機"              => ["待機2"],
  1457.   
  1458.   "待機3"              => ["待機3"],
  1459.                           
  1460.   "ピンチ待機"        => ["移動しない","ピンチ待機","状態異常/ピンチ","22"],
  1461.   
  1462.   "ピンチ待機-法"        => ["移動しない","ピンチ待機-法","状態異常/ピンチ","22"],
  1463.                           
  1464.   "状態異常待機"      => ["移動しない","待機(固定)","状態異常/汎用","22"],
  1465.                           
  1466.   "睡眠待機"          => ["移動しない","待機(固定)","状態異常/睡眠","22"],
  1467.   
  1468.   "出血待机"          => ["移動しない","待機(固定)","状態異常/出血","22"],
  1469.   
  1470.   "眩晕待机"          => ["移動しない","待機(固定)","状態異常/眩晕","22"],  
  1471.   
  1472.   "中毒待机"          => ["移動しない","待機(固定)","状態異常/中毒","22"],  
  1473.   
  1474.   "烧伤待机"          => ["移動しない","待機(固定)","状態異常/烧伤","22"],

  1475.   "无语待机"          => ["移動しない","待機(固定)","状態異常/无语","22"],
  1476.   
  1477.   "裁决之力-状态"          => ["移動しない","待機(固定)","裁决之力2","50"],

  1478.   "魔法反射"          => ["移動しない","待機(固定)","魔法镜面待机","20"],

  1479.   "极度脑残-待机"          => ["移動しない","待機(固定)","极度脑残2","20"],
  1480.   
  1481.   "血之代价待机"        => ["移動しない","待機(固定)","血之代价2","15"],
  1482.   
  1483.   "怒火燃烧-待机"        => ["移動しない","待機(固定)","燃烧怒火2","15"],
  1484.   
  1485.   "力量反射-待机"        => ["移動しない","待機(固定)","力量反射","20"],
  1486.   
  1487.   "怒绝-待机"         => ["移動しない","待機(固定)","愤怒中的绝望3","25"],
  1488.   
  1489.   "时间收割待机"        => ["移動しない","待機(固定)","时间收割","35"],
  1490.   
  1491.   "时间屏障待机"        => ["移動しない","待機(固定)","时间屏障2","35"],

  1492.   "冰冻待机"          => ["移動しない","待機(固定)","状態異常/冰冻","22"],
  1493.   
  1494.   "恢复待机"          => ["待機(固定)","恢复","22"],
  1495.   
  1496.   "恢复待机2"          => ["待機(固定)","恢复2","22"],
  1497.   
  1498.   "愤怒待机"          => ["待機(固定)","怒火","22"],

  1499.   "能源补充-待机"     => ["移動しない","待機(固定)","能源补充2","22"],

  1500.   "浮遊待機"          => ["待機(固定)","6","低空浮遊中","4","低空浮遊中2","4","低空浮遊中3","4","低空浮遊中4","4"],
  1501.                           
  1502.   "気絶"              => ["倒れたまま","戦闘不能"],
  1503.                           
  1504.   "ダメージ"          => ["被ダメージ","座標リセット"],
  1505.   
  1506.   "ダメージ凯兰"          => ["5","凯兰被击","被ダメージ","座標リセット"],

  1507.   "ダメージ亚特"          => ["5","亚特被击","被ダメージ","座標リセット"],
  1508.   
  1509.   "ダメージ丽娜"          => ["5","丽娜被击","被ダメージ","座標リセット-法"],
  1510.                           
  1511.   "逃走"              => ["味方逃走"],
  1512.                           
  1513.   "エネミー逃走"      => ["味方逃走","座標リセット"],
  1514.                           
  1515.   "逃走失敗"          => ["逃走失敗","待機(固定)","8","座標リセット"],
  1516.                           
  1517.   "コマンド入力"      => ["一歩前移動"],
  1518.   
  1519.   "コマンド入力-法"      => ["一歩前移動-法"],
  1520.                           
  1521.   "コマンド入力後"    => ["座標リセット"],
  1522.   
  1523.   "コマンド入力後-法"    => ["座標リセット-法"],
  1524.                           
  1525.   "防御"              => ["防御待机2","4","浮遊ステート確認","低空浮遊中","2","低空浮遊中2","2","低空浮遊中3","2","低空浮遊中4","2"],

  1526.   "防御-法"              => ["移動しない","防御待机","法师防御","15"],
  1527.   
  1528.   "回避"              => ["バックジャンプ","待機(固定)","16","座標リセット"],
  1529.   
  1530.   "回避2"              => ["バックジャンプ","待機(固定)","16","座標リセット"],
  1531.   
  1532.   "回避-法"              => ["バックジャンプ-法","待機(固定)","16","座標リセット-法"],

  1533.   "エネミー回避"      => ["一歩後ジャンプ","待機(固定)","16","座標リセット"],

  1534.   "勝利"              => ["勝利待機","20","待機(固定)",],

  1535.   "前移動"            => ["一歩前移動"],

  1536.   "後移動"            => ["一歩後移動"],

  1537.   "座標復帰"          => ["座標リセット"],

  1538. #--------------------------- 基本アクション系 ----------------------------------
  1539.   # 通しアクション名     行動

  1540.   "通常攻撃"          => ["目標前移動-战","武器振り攻撃","対象アニメウエイト",
  1541.                           "5","武器振り攻撃L","対象アニメL","二刀限定","16",
  1542.                           "コラプス許可","後退リセット"],

  1543.   "通常攻撃強"        => ["前ジャンプ叩き","対象アニメウエイト",
  1544.                           "5","二刀限定","16","コラプス許可","後退リセット"],

  1545.   "刀攻撃"            => ["目標前移動-战","刀攻撃下","対象アニメ","6",
  1546.                           "二刀限定","対象アニメウエイト","10",
  1547.                           "コラプス許可","後退リセット"],
  1548.                           
  1549.   "十字刀攻撃"        => ["目標前移動","武器振り攻撃","対象アニメ","15",
  1550.                           "回転投げ","刀攻撃下7","対象アニメ","6",
  1551.                           "コラプス許可","後退リセット"],

  1552.   "槍攻撃"            => ["目標前移動","突き攻撃","対象アニメウエイト",
  1553.                           "5","二刀限定","1",
  1554.                           "コラプス許可","後退リセット"],

  1555.   "槍投げ攻撃"        => ["一歩後ジャンプ","槍投げエフェクト","槍投げ",
  1556.                           "対象アニメ","槍投げ後固定","17","二刀限定",
  1557.                           "コラプス許可","後退リセット"],

  1558.   "二刀流攻撃"        => ["目標前移動","武器振り攻撃","二刀流エフェクト1",
  1559.                           "二刀限定","刀攻撃下","二刀流エフェクト2","対象アニメウエイト",
  1560.                           "6","コラプス許可","後退リセット"],

  1561.   "弓攻撃"            => ["一歩後ジャンプ","10","弓矢攻撃","5","wind7-2","5","対象アニメウエイト",
  1562.                           "5","二刀限定","16",
  1563.                           "コラプス許可","後退リセット"],

  1564.   "枪攻击"            => ["バックジャンプ","开枪","銃で攻撃","対象アニメウエイト",
  1565.                           "5","対象アニメL","二刀限定","16",
  1566.                           "コラプス許可","後退リセット"],
  1567.                           
  1568.   "枪攻击2"            => ["バックジャンプ","开枪2","銃で攻撃","対象アニメウエイト",
  1569.                           "5","対象アニメL","二刀限定","16",
  1570.                           "コラプス許可","後退リセット"],
  1571.                           
  1572.   "钝器"              => ["目標前移動-战","钝器挥舞","対象アニメウエイト",
  1573.                           "コラプス許可","後退リセット"],

  1574.   "敵・銃攻撃"        => ["バックジャンプ","銃で攻撃","対象アニメウエイト","銃で攻撃",
  1575.                           "5","対象アニメL","対象アニメウエイト","16",
  1576.                           "コラプス許可","後退リセット"],
  1577.                           
  1578.   "霰弹枪"            => ["霰弹2","銃で攻撃4","対象アニメウエイト","5","霰弹3","枪专用",
  1579.                           "5","対象アニメL","二刀限定","16",
  1580.                           "コラプス許可","後退リセット"],
  1581.                           
  1582.   "狙击枪"            => ["バックジャンプ","銃で攻撃5","狙击","銃で攻撃6","対象アニメウエイト","5","狙击2","枪专用2","20",
  1583.                           "コラプス許可","後退リセット"],
  1584.                           
  1585.   "狙击枪2"          => ["目標前移動","武器振り攻撃2","钝击","対象アニメウエイト","バックジャンプ",
  1586.                           "コラプス許可","後退リセット"],
  1587.                         
  1588.   "机关枪"            => ["バックジャンプ","銃で攻撃7","机枪","対象アニメウエイト",
  1589.                           "銃で攻撃7","机枪","対象アニメウエイト","銃で攻撃7","机枪","対象アニメウエイト","20",
  1590.                           "コラプス許可","後退リセット"],

  1591.   "長銃攻撃"          => ["銃で攻撃","対象アニメウエイト",
  1592.                           "18","二刀限定","16",
  1593.                           "コラプス許可","後退リセット"],

  1594.   "敵武器なし攻撃"    => ["目標前移動","武器振り攻撃","対象アニメウエイト",
  1595.                           "コラプス許可","後退リセット"],

  1596.   "動きなしスキル"    => ["一歩前移動","待機(固定)","武器掲げ2",
  1597.                           "対象アニメウエイト","コラプス許可","5","座標リセット"],

  1598.   "動きなしスキル敵"  => ["一歩前移動","待機(固定)",
  1599.                           "対象アニメウエイト","コラプス許可","5","座標リセット"],

  1600.   "汎用スキル使用"    => ["一歩前移動","待機(固定)","魔法始動アニメ","武器回し下","武器掲げ","武器振り攻撃",
  1601.                           "対象アニメウエイト","コラプス許可","24","座標リセット"],

  1602.   "汎用スキル個別処理"=> ["一歩前移動","魔法始動アニメ","武器回し下","武器掲げ","個別処理開始","武器振り攻撃","対象アニメ","24",
  1603.                           "個別処理終了","コラプス許可","座標リセット"],

  1604.   "忍術スキル使用"    => ["魔法詠唱","24","一歩前移動","待機(固定)","魔法始動アニメ",
  1605.                           "武器掲げ3","武器振り攻撃","対象アニメウエイト","コラプス許可","10","座標リセット"],

  1606.   "必殺スキル使用"    => ["一歩前移動","待機(固定)","必殺技始動アニメ","武器一回転上","12",
  1607.                           "対象アニメウエイト","コラプス許可","24","座標リセット"],

  1608.   "アイテム使用"      => ["目標前移動","待機(固定)","24","対象アニメウエイト",
  1609.                           "コラプス許可","座標リセット"],

  1610.   "盗む"              => ["待機(固定)","前ジャンプ叩き2","待機(固定)","高速バックジャンプ","対象アニメウエイト","座標リセット","7"],

  1611. #------------------------------ 詠唱系 ---------------------------------------                          
  1612.   # 通しアクション名     行動

  1613.   "炎魔法スキル使用"  => ["炎魔法始動アニメ","魔法詠唱","24","一歩前移動","待機(固定)",
  1614.                           "武器掲げ4","武器振り攻撃",
  1615.                           "対象アニメウエイト","コラプス許可","10","座標リセット"],

  1616.   "氷魔法スキル使用"  => ["氷魔法始動アニメ","魔法詠唱","24","一歩前移動","待機(固定)",
  1617.                           "武器掲げ4","武器振り攻撃",
  1618.                           "対象アニメウエイト","コラプス許可","10","座標リセット"],

  1619.   "雷魔法使用"  => ["雷魔法始動アニメ","魔法詠唱","24","一歩前移動","待機(固定)",
  1620.                           "武器掲げ4","武器振り攻撃",
  1621.                           "対象アニメウエイト","コラプス許可","10","座標リセット"],

  1622.   "土魔法使用"  => ["土魔法始動アニメ","魔法詠唱","24","一歩前移動","待機(固定)",
  1623.                           "武器掲げ4","武器振り攻撃",
  1624.                           "対象アニメウエイト","コラプス許可","10","座標リセット"],

  1625.   "水魔法使用"  => ["水魔法始動アニメ","魔法詠唱","24","一歩前移動","待機(固定)",
  1626.                           "武器掲げ4","武器振り攻撃",
  1627.                           "対象アニメウエイト","コラプス許可","10","座標リセット"],

  1628.   "风魔法使用"  => ["風魔法始動アニメ","魔法詠唱","24","一歩前移動","待機(固定)",
  1629.                           "武器掲げ4","武器振り攻撃",
  1630.                           "対象アニメウエイト","コラプス許可","10","座標リセット"],

  1631.   "光魔法使用"  => ["光魔法始動アニメ","魔法詠唱","24","一歩前移動","待機(固定)",
  1632.                           "武器掲げ4","武器振り攻撃",
  1633.                           "対象アニメウエイト","コラプス許可","10","座標リセット"],

  1634.   "暗魔法使用"  => ["闇魔法始動アニメ","魔法詠唱","24","一歩前移動","待機(固定)",
  1635.                           "武器掲げ4","武器振り攻撃",
  1636.                           "対象アニメウエイト","コラプス許可","10","座標リセット"],

  1637.   "魔法使用"  => ["魔法始動アニメ","魔法詠唱","24","待機(固定)",
  1638.                   "対象アニメウエイト","コラプス許可","10","座標リセット"],

  1639. #------------------------------ 大剣スキル ---------------------------------------                          
  1640.   # 通しアクション名     行動

  1641.   "重撃斬"            => ["目標前移動","刀攻撃下","対象アニメ","6","スロー再生","残像ON","前ジャンプ叩き","darkness4","対象アニメ武器",
  1642.                           "残像OFF","二刀限定","対象アニメウエイト","10",
  1643.                           "コラプス許可","通常再生","後退リセット"],

  1644.   "波動斬"            => ["一歩前移動","待機(固定)","武器回し下","武器掲げ","武器振り攻撃",
  1645.                           "対象アニメウエイト","コラプス許可","24","座標リセット"],

  1646.   "飛鋭斬"            => ["残像ON","目標前移動","刀攻撃下","対象アニメ","6","対象アニメ","6",
  1647.                           "コラプス許可","後退リセット","残像OFF"],

  1648.   "諸刃斬"            => ["目標前移動","武器振り攻撃","対象アニメ武器","5","武器振り攻撃",
  1649.                           "対象アニメ武器","その場ジャンプ叩き","一歩後ジャンプ","バックジャンプ","一歩後ジャンプ","10",
  1650.                           "残像ON","右払い抜け","残像OFF","対象アニメ武器","32","コラプス許可","後退リセット"],

  1651. #------------------------------ 小剣スキル ---------------------------------------                          
  1652.   # 通しアクション名     行動
  1653.   "連斬"              => ["目標前移動","武器振り攻撃","対象アニメ武器","バックジャンプ",
  1654.                           "その場ジャンプ叩き","対象アニメ武器","32","コラプス許可","後退リセット"],

  1655.   "三連斬"            => ["目標前移動","武器振り攻撃","対象アニメ武器","5","武器振り攻撃",
  1656.                           "対象アニメ武器","バックジャンプ","3",
  1657.                           "その場ジャンプ叩き","対象アニメ武器","32","コラプス許可","後退リセット"],

  1658.   "五連斬"            => ["目標前移動","武器振り攻撃","対象アニメ武器","10","残像ON","左払い抜け","残像OFF","対象アニメ武器","反転","10",
  1659.                           "前ジャンプ叩き","対象アニメ武器","10","一歩前ジャンプ","武器振り攻撃","対象アニメ武器",
  1660.                           "10","武器振り攻撃","対象アニメ武器","コラプス許可","反転","後退リセット"],

  1661.   "舞連撃"            => ["目標前移動","対象アニメ武器","左払い抜け","10","対象アニメ武器","右左払い抜け",
  1662.                           "反転","残像ON","バックジャンプ2","10","バックジャンプ2",
  1663.                           "目標前移動","刀攻撃下","対象アニメ武器","5","対象アニメ武器","6",
  1664.                           "残像OFF","コラプス許可","反転","バックジャンプ","5","バックジャンプ遠","後退リセット"],

  1665.   "烈光撃"            => ["半スロー再生","目標にジャンプ","半高速再生","残像ON","武器振り攻撃","対象アニメ武器","10",
  1666.                           "バックジャンプ","5","バックジャンプ遠","目標前移動","対象アニメ武器","30",
  1667.                           "対象アニメ武器","バックジャンプ遠","残像OFF","通常再生","コラプス許可","後退リセット"],

  1668. #------------------------------ 銃剣スキル ---------------------------------------                                                   
  1669.   # 通しアクション名     行動

  1670.   "ガンブレード"      => ["目標前移動","通速再生","刀攻撃下","対象アニメ武器","バックジャンプ",
  1671.                           "後方に払い上げ","対象アニメ武器","32","通常再生","コラプス許可","後退リセット"],

  1672.   "ブレードスラッシュ"=> ["目標前移動","払い抜け","対象アニメ武器","反転","10","高速再生",
  1673.                           "一歩前ジャンプ","銃で攻撃","射撃アニメ","3","銃で攻撃","射撃アニメ","3","銃で攻撃","射撃アニメ",
  1674.                           "15","通常再生","コラプス許可","後退リセット","反転"],

  1675.   "ブレードゲージュ"  => ["バックジャンプ","超高速再生",
  1676.                           "銃で攻撃","射撃アニメ","1","銃で攻撃","射撃アニメ","1",
  1677.                           "銃で攻撃","射撃アニメ","1","銃で攻撃","射撃アニメ","1",
  1678.                           "銃で攻撃","射撃アニメ","1","銃で攻撃","射撃アニメ","1",
  1679.                           "銃で攻撃","射撃アニメ","1","銃で攻撃","射撃アニメ","1",
  1680.                           "銃で攻撃","射撃アニメ","1","銃で攻撃","射撃アニメ","1",
  1681.                           "15","通常再生","コラプス許可","後退リセット"],

  1682.   "ブレードブレイク"  => ["目標前移動","武器振り攻撃","対象アニメ武器","5","刀攻撃下","対象アニメ武器","5","武器振り攻撃","対象アニメ武器",
  1683.                           "5","刀攻撃ジャンプ斬り","対象アニメ武器","5","刀攻撃下","対象アニメ武器","15","コラプス許可","後退リセット"],

  1684.   "ディードコルスター"=> ["目標前移動","武器振り攻撃","対象アニメ武器","5","刀攻撃下","対象アニメ武器","5","武器振り攻撃","対象アニメ武器",
  1685.                           "5","刀攻撃ジャンプ斬り","対象アニメ武器","5","刀攻撃下","対象アニメ武器","15","コラプス許可","後退リセット"],

  1686.   "ブレードラフィーナ"=> ["残像ON","銃で攻撃","射撃アニメ","3","銃で攻撃","射撃アニメ","3","スロー再生","目標にジャンプ","通常再生",
  1687.                           "武器振り攻撃","対象アニメ武器","3",
  1688.                           "武器振り攻撃","対象アニメ武器","3",
  1689.                           "刀攻撃下","対象アニメ武器","3",
  1690.                           "払い抜け","対象アニメ武器","3","反転","超高速再生","目標移動","通常再生",
  1691.                           "刀攻撃下","対象アニメ武器","30",
  1692.                           "対象アニメ武器","刀攻撃ジャンプ斬り","3",
  1693.                           "反転","右払い抜け","対象アニメ武器","3",
  1694.                           "反転","1","超高速再生","目標移動","通常再生","刀攻撃下","対象アニメ武器","3",
  1695.                           "武器振り攻撃","3",
  1696.                           "反転","刀攻撃下","対象アニメ武器","3",
  1697.                           "武器振り攻撃","対象アニメ武器","3",
  1698.                           "払い抜け","対象アニメ武器","3",
  1699.                           "反転","銃で攻撃","射撃アニメ","3",
  1700.                           "スロー再生","その場ジャンプ叩き","対象アニメ武器","30",
  1701.                           "コラプス許可","通常再生","後退リセット","残像OFF","反転",],

  1702. #------------------------------ 長弓スキル ---------------------------------------                                                   
  1703.   # 通しアクション名     行動

  1704.   "リヴァイヴスナイプ" => ["目標前移動","バックジャンプ","10","弓矢攻撃","5","wind7-2","5","対象アニメウエイト",
  1705.                           "5","二刀限定","16","コラプス許可","後退リセット"],

  1706.   "ヴェデルスナイプ"   => ["一歩後ジャンプ","10","弓矢攻撃","5","wind7-2","5","対象アニメウエイト",
  1707.                            "10","弓矢攻撃","5","wind7-2","5","対象アニメウエイト",
  1708.                            "5","二刀限定","16","コラプス許可","後退リセット"],

  1709. #------------------------------ 短銃スキル ---------------------------------------                          
  1710.   # 通しアクション名     行動

  1711. #------------------------------ 薬瓶スキル ---------------------------------------                          
  1712.   # 通しアクション名     行動

  1713.   "武器投げ"          => ["一歩前移動","武器振り攻撃","wind7","待機(固定)",
  1714.                           "武器投げ開始","12","対象アニメ武器","コラプス許可",
  1715.                           "武器投げ戻し","座標リセット"],

  1716.   "武器投げ2"        => ["一歩前移動","武器振り攻撃","wind7","待機(固定)",
  1717.                           "武器投げ開始","12","対象アニメ武器","コラプス許可",
  1718.                           "座標リセット"],

  1719.   "回復薬調合"        => ["chime1","状態異常/閃き","勝利のジャンプ","15","目標前移動","待機(固定)","24","対象アニメウエイト",
  1720.                           "コラプス許可","座標リセット"],

  1721.   "薬調合2"           => ["chime1","状態異常/閃き","勝利のジャンプ","15","wind7","武器投げ開始","12","対象アニメウエイト","コラプス許可",
  1722.                           "座標リセット"],

  1723. #------------------------------ エネミースキル ---------------------------------------                          
  1724.   # 通しアクション名     行動

  1725.   "連続雷魔法スキル使用"=> ["雷魔法始動アニメ","魔法詠唱","24","一歩前移動","待機(固定)",
  1726.                           "武器掲げ2","武器振り攻撃",
  1727.                           "対象アニメウエイト","10","対象アニメウエイト","コラプス許可","10","座標リセット"],

  1728.   "リデューゴ・ダンス"  => ["目標前移動","武器振り攻撃","対象アニメ武器","武器振り攻撃",
  1729.                           "対象アニメ武器","バックジャンプ",
  1730.                           "その場ジャンプ叩き","対象アニメ武器","32","コラプス許可","後退リセット"],

  1731.   "ボーンスプレッター"  => ["バックジャンプ","5","バックジャンプ遠","高速再生","目標前移動","通常再生","対象アニメ武器","6","対象アニメ武器","6","対象アニメ武器","10","後退リセット",],

  1732.   "ワームスパイラル"    => ["目標前移動","超高速再生",
  1733.                           "一歩後移動","対象アニメ武器","5","目標後移動","一歩後移動","対象アニメ武器","5","目標前移動",
  1734.                           "一歩後移動","対象アニメ武器","5","目標後移動","一歩後移動","対象アニメ武器","5","目標前移動",
  1735.                           "一歩後移動","対象アニメ武器","5","目標後移動","通常再生","後退リセット",],

  1736. #------------------------------ その他・1 ---------------------------------------                          
  1737.   # 通しアクション名     行動

  1738.   "法撃"              => ["目標前移動","武器振り攻撃","対象アニメ武器","バックジャンプ",
  1739.                           "32","コラプス許可","後退リセット"],

  1740.   "ヤミノツルギ"      => ["スロー再生","残像ON","武器振り攻撃","高速再生","目標前移動","武器振り攻撃",
  1741.                           "対象アニメ武器","通常再生","50","コラプス許可","後退リセット","25"],

  1742.   "桜花斬"            => ["待機(固定)","目標右前移動","必殺技始動アニメ","26","桜花斬エフェクト",
  1743.                           "払い抜け","22","対象アニメウエイト","桜華狂咲に派生","コラプス許可","24","座標リセット"],

  1744.   "桜華狂咲"          => ["反転","カットインエフェクト","武器掲げ3","8",
  1745.                           "カットインリナリー始","60","カットインリナリー終",
  1746.                           "ピクチャ消去","折り返し払い抜け","桜華狂咲エフェクト",
  1747.                           "対象アニメウエイト","34","コラプス許可","反転","座標リセット"],

  1748.   "爆熱剣"            => ["待機(固定)","目標左前移動","必殺技始動アニメ","26",
  1749.                           "爆熱剣エフェクト","払い抜け","22","対象アニメウエイト","コラプス許可","24","座標リセット"],
  1750.                      
  1751.   "不動の精神"        => ["一歩前移動","待機(固定)","武器掲げ2",
  1752.                           "不動の精神エフェクト","45","不動の精神ステート付与",
  1753.                           "対象アニメウエイト","コラプス許可","座標リセット"],
  1754.                           
  1755.   "分身斬"            => ["待機(固定)","残像ON","必殺技始動アニメ","武器一回転上","12",
  1756.                           "前ジャンプ叩き2","高速武器振り攻撃","分身斬エフェクト","対象アニメ","小吹き飛ばし",
  1757.                           "対象アニメ","瞬間後退リセット","前ジャンプ叩き2","高速武器振り攻撃","分身斬エフェクト","小吹き飛ばし",
  1758.                           "対象アニメ","瞬間後退リセット","前ジャンプ叩き2","高速武器振り攻撃","分身斬エフェクト","対象アニメ","小吹き飛ばし",
  1759.                           "対象アニメ","瞬間後退リセット","前ジャンプ叩き2","高速武器振り攻撃","分身斬エフェクト","対象アニメ","小吹き飛ばし",
  1760.                           "目標の背後へ高速移動","反転","15","バックスタッブ","対象アニメ武器",
  1761.                           "残像OFF","反転","高速バックジャンプ","対象アニメウエイト","座標リセット","コラプス許可","7"],

  1762.   "幻影剣"            => ["待機(固定)","キャラ消し","幻影剣始動","82","幻影剣右上","対象アニメ","小吹き飛ばし","5",
  1763.                           "幻影剣左上","5","小吹き飛ばし右","対象アニメ","幻影剣右","5","小吹き飛ばし","対象アニメ",
  1764.                           "幻影剣左","5","小吹き飛ばし右","対象アニメ","幻影剣右","5","小吹き飛ばし","対象アニメ",
  1765.                           "目標の背後へ高速移動","反転","残像ON","武器掲げ3","折り返し払い抜け",
  1766.                           "ヒットエフェクト","小吹き飛ばし右","15","残像OFF",
  1767.                           "対象アニメウエイト","座標リセット","反転","コラプス許可","7"],
  1768.                   
  1769.   "亀甲羅割り"        => ["待機(固定)","目標前移動","亀甲羅割りエフェクト","その場ジャンプ斬り2",
  1770.                           "武器振り攻撃","小吹き飛ばし","40","一歩後ジャンプ","対象アニメウエイト","コラプス許可","座標リセット"],

  1771.   "風雪乱舞"          => ["魔法詠唱","28","一歩前移動","待機(固定)","魔法始動アニメ",
  1772.                           "武器掲げ2","風雪乱舞エフェクト","78","武器振り攻撃","20",
  1773.                           "対象アニメウエイト","コラプス許可","10","座標リセット"],

  1774.   "ファイアストーム"  => ["魔法詠唱","33","一歩前移動","待機(固定)",
  1775.                           "魔法始動アニメ","武器掲げ2","ファイアストームエフェクト",
  1776.                           "18","武器振り攻撃","40","対象アニメウエイト","コラプス許可","10","座標リセット"],

  1777.   "サンダーストーム"  => ["魔法詠唱","33","一歩前移動","待機(固定)","魔法始動アニメ",
  1778.                           "武器掲げ2","サンダーストームエフェクト","武器振り攻撃","90",
  1779.                           "対象アニメウエイト","コラプス許可","10","座標リセット"],

  1780.   "月光剣"            => ["待機(固定)","残像ON","目標前移動","6","刀攻撃下","月光剣エフェクト","刀攻撃ジャンプ斬り",
  1781.                           "小吹き飛ばし","残像OFF","一歩後ジャンプ","対象アニメウエイト","コラプス許可","10","座標リセット"],

  1782.   "峰打"              => ["待機(固定)","目標前移動","15","刀攻撃峰打","対象アニメウエイト","コラプス許可","10","座標リセット"],

  1783.   "雨流"              => ["待機(固定)","目標前移動","キャラ消し","小吹き飛ばし","雨流エフェクト","80","小吹き飛ばし",
  1784.                           "雨流狂落斬に派生","対象アニメウエイト","目標前へ高速移動","一歩後ジャンプ","コラプス許可","10","座標リセット"],

  1785.   "雨流狂落斬"        => ["カットインエフェクト","キャラ消し","雨流狂落斬エフェクト","75","小吹き飛ばし",
  1786.                           "狂落斬2段目エフェクト","8","小吹き飛ばし","狂落斬3段目エフェクト","8","小吹き飛ばし","20",
  1787.                           "対象アニメウエイト","一歩後ジャンプ","武器構え待機","コラプス許可","10","座標リセット"],

  1788.   "地竜剣"            => ["待機(固定)","剣突き刺し動作","地竜剣エフェクト1","16","目標前移動",
  1789.                           "地竜剣エフェクト2","刀攻撃ジャンプ斬り","小吹き飛ばし","一歩後ジャンプ",
  1790.                           "対象アニメウエイト","コラプス許可","10","座標リセット"],

  1791.   "二段突き"          => ["目標前移動","突き攻撃","ヒットエフェクト","対象アニメウエイト","2",
  1792.                           "突き攻撃","ヒットエフェクト","対象アニメウエイト","25","二刀限定","1","コラプス許可","後退リセット"],

  1793.   "阿修羅"            => ["目標前移動","武器振り攻撃","小吹き飛ばし","対象アニメ武器",
  1794.                           "目標前高速移動","武器振り攻撃","小吹き飛ばし","武器振り攻撃L","対象アニメ武器",
  1795.                           "目標前高速移動","武器振り攻撃","小吹き飛ばし","武器振り攻撃L","対象アニメ武器",
  1796.                           "目標前高速移動","武器振り攻撃","小吹き飛ばし","武器振り攻撃L","対象アニメ武器",
  1797.                           "目標前高速移動","武器振り攻撃","小吹き飛ばし","武器振り攻撃L","対象アニメ武器",
  1798.                           "目標前高速移動","武器振り攻撃","小吹き飛ばし","武器振り攻撃L","対象アニメ武器","コラプス許可","12","座標リセット"],

  1799.   "乱れ雪月花発動"    => ["三人攻撃条件確認","三人攻撃目標統一","三人で攻撃1","三人で攻撃2","三人攻撃移動3","待機(固定)",
  1800.                           "魔法始動アニメ","武器回し下","武器掲げ2","130","目標右前移動","必殺技始動アニメ","24",
  1801.                           "桜花斬エフェクト","左払い抜け","52","対象アニメウエイト","コラプス許可","後退リセット","合体攻撃解除"],
  1802.                           
  1803.   "不動剣発動"         => ["三人攻撃条件確認","三人攻撃目標統一","不動剣で攻撃1","不動剣で攻撃2","三人攻撃移動3","待機(固定)",
  1804.                           "魔法始動アニメ","武器回し下","武器掲げ2","80","目標右前移動","武器一回転上","12",
  1805.                           "爆熱剣エフェクト","左払い抜け","52","対象アニメウエイト","コラプス許可","後退リセット","合体攻撃解除"],

  1806. #------------------------------ その他・2 ---------------------------------------                          
  1807.   # 通しアクション名     行動

  1808.   "ヒールに派生"      => ["目標前移動","対象アニメ","武器振り攻撃",
  1809.                           "16","ヒールに派生","座標リセット"],

  1810.   "適当に派生"        => ["逃走失敗","魔法始動アニメ","武器回し下","武器掲げ",
  1811.                           "8","対象アニメ","適当に派生","座標リセット"],

  1812.   "カットイン"        => ["待機(固定)","魔法始動アニメ",
  1813.                           "75","カットイン1終","8","目標前移動",
  1814.                           "武器振り攻撃","対象アニメウエイト","コラプス許可",
  1815.                           "ピクチャ消去","後退リセット"],
  1816.   "二人同時攻撃準備"  => ["二人攻撃ステート付与"],

  1817.   "四人同時攻撃準備"  => ["四人攻撃ステート付与"],

  1818.   "二人同時攻撃"      => ["二人攻撃条件確認","二人攻撃目標統一","ウルリカと攻撃",
  1819.                           "目標右前移動","待機(固定)","魔法始動アニメ","武器回し下",
  1820.                           "武器掲げ","48","斬撃/必殺技1","左払い抜け","64","対象アニメ",
  1821.                           "コラプス許可","後退リセット","二人攻撃ステート解除"],

  1822.   "四人同時攻撃"      => ["四人攻撃条件確認","四人攻撃目標統一","四人で攻撃1",
  1823.                           "四人で攻撃2","四人で攻撃3","四人攻撃移動1","待機(固定)",
  1824.                           "魔法始動アニメ","武器回し下","武器掲げ","90",
  1825.                           "斬撃/必殺技1","右払い抜け","64","対象アニメウエイト",
  1826.                           "コラプス許可","後退リセット","合体攻撃解除"],

  1827.   "個別全体遠距離攻撃"=> ["一歩前ジャンプ","ジャンプ停止","個別処理開始",
  1828.                           "標的を自身に","武器振り攻撃","着弾1","20",
  1829.                           "対象アニメ武器","個別処理終了","コラプス許可",
  1830.                           "ジャンプ着地","座標リセット"],

  1831.   "全体遠距離攻撃"    => ["標的を自身に","武器振り攻撃","着弾1","20",
  1832.                           "対象アニメウエイト","コラプス許可"],

  1833.   "汎用スキル個別処理"=> ["一歩前移動","魔法始動アニメ","武器回し下","武器掲げ",
  1834.                           "個別処理開始","武器振り攻撃","対象アニメ","24",
  1835.                           "個別処理終了","コラプス許可","座標リセット"],
  1836.                             "全体攻撃1"         => ["一歩前移動","待機(固定)","魔法始動アニメ","武器回し下",
  1837.                           "武器掲げ","全体アニメ単体化","武器振り攻撃","48",
  1838.                           "対象アニメウエイト","コラプス許可","座標リセット"],
  1839.                           
  1840.   "ネコに変身"        => ["一歩前ジャンプ","待機(固定)","魔法始動アニメ","32",
  1841.                           "ネコに変身","待機(固定)","neko","32","一歩後ジャンプ"],                     
  1842.                           
  1843.   "味方投げつけ"      => ["投げる相手選択","目標移動","味方持ち上げ","4",
  1844.                           "wind7","投げつけ目標セット","味方投げ飛ばし",
  1845.                           "味方投げ","待機(固定)","対象アニメ","座標リセット",
  1846.                           "待機(固定)","32"],

  1847.   "踏み潰し"          => ["目標にジャンプ","打撃アニメ","縦にぺしゃんこ","一歩後ジャンプ",
  1848.                           "踏みつけ","打撃アニメ","縦にぺしゃんこ","一歩後ジャンプ",
  1849.                           "踏みつけ","対象アニメ","縦にぺしゃんこ","一歩後ジャンプ",
  1850.                           "一歩後ジャンプ","コラプス許可","待機(固定)","8","後退リセット"],

  1851.   "全体攻撃1"         => ["一歩前移動","待機(固定)","魔法始動アニメ","武器回し下",
  1852.                           "武器掲げ","全体アニメ単体化","武器振り攻撃","48",
  1853.                           "対象アニメウエイト","コラプス許可","座標リセット"],

  1854.   "ネコに変身"        => ["一歩前ジャンプ","待機(固定)","魔法始動アニメ","32",
  1855.                           "ネコに変身","待機(固定)","neko","32","一歩後ジャンプ"],                     

  1856.   "味方投げつけ"      => ["投げる相手選択","目標移動","味方持ち上げ","4",
  1857.                           "wind7","投げつけ目標セット","味方投げ飛ばし",
  1858.                           "味方投げ","待機(固定)","対象アニメ","座標リセット","待機(固定)","32"],

  1859.   "踏み潰し"          => ["目標にジャンプ","打撃アニメ","縦にぺしゃんこ","一歩後ジャンプ",
  1860.                           "踏みつけ","打撃アニメ","縦にぺしゃんこ","一歩後ジャンプ",
  1861.                           "踏みつけ","対象アニメ","縦にぺしゃんこ","一歩後ジャンプ",
  1862.                           "一歩後ジャンプ","コラプス許可","待機(固定)","8","後退リセット"],

  1863.   "多段攻撃"          => ["残像ON","前ジャンプ叩き","武器振り攻撃L","対象アニメ武器",
  1864.                           "待機(固定)","16","対象アニメ武器","武器回し下",
  1865.                           "武器回し上","4","その場ジャンプ叩き","武器振り攻撃L",
  1866.                           "対象アニメ武器","待機(固定)","16","対象アニメ武器",
  1867.                           "反転","武器振り攻撃","武器振り攻撃L","12","反転",
  1868.                           "その場ジャンプ叩き","武器振り攻撃L","対象アニメ武器",
  1869.                           "一歩後ジャンプ","一歩後ジャンプ","待機(固定)",
  1870.                           "対象アニメ武器","払い抜け","武器振り攻撃L","コラプス許可",
  1871.                           "残像OFF","16","後退リセット"],

  1872.   "多段攻撃ランダム用"=> ["前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","待機(固定)","16",
  1873.                           "前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","待機(固定)","16",
  1874.                           "前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","待機(固定)","16",
  1875.                           "前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","コラプス許可","座標リセット"],

  1876.   "高速多段攻撃"      => ["目標前移動","武器振り攻撃","小吹き飛ばし","対象アニメ武器",
  1877.                           "目標前高速移動","武器振り攻撃","小吹き飛ばし","武器振り攻撃L","対象アニメ武器",
  1878.                           "目標前高速移動","武器振り攻撃","小吹き飛ばし","武器振り攻撃L","対象アニメ武器",
  1879.                           "目標前高速移動","武器振り攻撃","小吹き飛ばし","武器振り攻撃L","対象アニメ武器",
  1880.                           "目標前高速移動","武器振り攻撃","小吹き飛ばし","武器振り攻撃L","対象アニメ武器",
  1881.                           "目標前高速移動","武器振り攻撃","小吹き飛ばし","武器振り攻撃L","対象アニメ武器",
  1882.                           "コラプス許可","12","座標リセット"],
  1883.                           
  1884.   "三连斩"   => ["目標前移動-战","刀攻撃下","斩击","対象アニメウエイト","15",
  1885.                 "バックジャンプ","待機(固定)","10",
  1886.                 "目標前移動-战","対象アニメウエイト","斩击2","払い抜け","小吹き飛ばし",
  1887.                 "18","バックジャンプ","コラプス許可","座標リセット-战"],
  1888.                           
  1889.   "重击"            => ["目標前移動-战","刀攻撃下","斩击3","対象アニメウエイト","6",
  1890.                       "コラプス許可","バックジャンプ","後退リセット-战"],
  1891.                      
  1892.   "重击2"            => ["目標前移動-战","刀攻撃下","斩击7","対象アニメウエイト",
  1893.                       "コラプス許可","バックジャンプ","後退リセット-战"],
  1894.                      
  1895.   "阎灭神剑"   =>  ["待機(固定)","勝利のジャンプ","武器振り攻撃","地裂碎","30",
  1896.                     "真空碎2","対象アニメウエイト","20","真空碎3","対象アニメウエイト","30",
  1897.                     "地裂碎2","対象アニメウエイト","30",
  1898.                     "コラプス許可","10","座標リセット-战"],
  1899.                     
  1900.   "突袭"      => ["目標前移動-战","斩击3","対象アニメウエイト","刀攻撃下","6",
  1901.                   "目標前移動-战","武器振り攻撃","小吹き飛ばし","斩击3","対象アニメウエイト","6",
  1902.                   "一歩後ジャンプ",
  1903.                   "目標前移動-战","刀攻撃下","小吹き飛ばし","斩击3","対象アニメウエイト","バックジャンプ","10",
  1904.                   "目標前移動-战","刀攻撃下","斩击8","対象アニメウエイト",
  1905.                   "待機(固定)","6",
  1906.                   "コラプス許可","バックジャンプ","座標リセット-战"],
  1907.                   
  1908.   "碎血"            => ["バックジャンプ","半スロー再生","目標にジャンプ","半高速再生","残像ON","刀攻撃下","碎血","対象アニメウエイト","30",
  1909.                         "バックジャンプ遠","目標前移動-战","刀攻撃下","碎血2","碎血3","対象アニメウエイト","10",
  1910.                         "残像OFF","通常再生",
  1911.                         "バックジャンプ","コラプス許可","後退リセット-战"],
  1912.                         
  1913.   "毁灭残影"      =>     ["毁灭残影","5","目標前高速移動","残像ON","反転","待機(固定)",
  1914.                           "后跳攻击","毁灭残影2","対象アニメウエイト","武器振り攻撃",
  1915.                           "武器振り攻撃","一歩後ジャンプ","一歩後ジャンプ","払い抜け","小吹き飛ばし",
  1916.                           "目標前高速移動","刀攻撃下","小吹き飛ばし","毁灭残影2","対象アニメウエイト",
  1917.                           "目標前高速移動","刀攻撃下","小吹き飛ばし","毁灭残影2","対象アニメウエイト",
  1918.                           "一歩後ジャンプ","一歩後ジャンプ","待機(固定)",
  1919.                           "毁灭残影2","対象アニメウエイト","払い抜け","刀攻撃下","コラプス許可",
  1920.                           "コラプス許可","反転","座標リセット-战"],
  1921.                           
  1922.   "杀戮盛宴"      =>     ["毁灭残影","6","残像ON","目標前高速移動","空白","10","杀戮改","40",
  1923.                           "变身BUG","变身解除2","座標リセット","待機(固定)","10","杀戮改2","対象アニメウエイト","20",
  1924.                           "コラプス許可","12","座標リセット"],
  1925.                      
  1926.   "弓箭"           => ["一歩後移動","待機(固定)","弓矢攻撃","弩发射","10",
  1927.                       "対象アニメウエイト","コラプス許可","10","座標リセット"],
  1928.                      
  1929.   "重箭2"           => ["待機(固定)","弓矢攻撃","重箭","25",
  1930.                       "重箭2","10","対象アニメウエイト","15","コラプス許可","10","座標リセット"],
  1931.                         
  1932.   "散箭"           => ["バックジャンプ","待機(固定)","弓矢攻撃","散弩2","5","散弩","10",
  1933.                       "対象アニメウエイト","コラプス許可","10","座標リセット"],
  1934.                      
  1935.   "冰箭"           => ["バックジャンプ","待機(固定)","弓矢攻撃","冰箭1","20","冰箭2","25","待機(固定)",
  1936.                       "冰箭3","対象アニメウエイト","15","コラプス許可","10","座標リセット"],
  1937.                      
  1938.   "突击射2"       =>  ["待機(固定)","弓矢攻撃","弩发射","5","散弩","10",
  1939.                       "対象アニメウエイト","バックジャンプ",
  1940.                       "弓矢攻撃","弩发射","5","散弩","10","対象アニメウエイト",
  1941.                       "弓矢攻撃","弩发射","5","散弩","10","対象アニメウエイト",
  1942.                       "弓矢攻撃","弩发射","5","散弩","10","対象アニメウエイト",
  1943.                       "コラプス許可","12","座標リセット"],
  1944.                      
  1945.   "光箭"           => ["残像ON","目標前移動4",
  1946.                       "待機(固定)","弓矢攻撃","光箭","20","光箭2",
  1947.                       "対象アニメウエイト","30",
  1948.                       "残像OFF","コラプス許可","10","座標リセット"],
  1949.                      
  1950.   "背射"      =>          ["背射3","残像ON","目標前高速移動","反転","バックジャンプ遠反","一歩前ジャンプ","バックジャンプ遠反","待機(固定)","弓矢攻撃","背射",
  1951.                           "8","背射2","対象アニメウエイト","10","反転",
  1952.                           "バックジャンプ遠","一歩後ジャンプ","残像OFF",
  1953.                           "コラプス許可","12","座標リセット",],
  1954.                           
  1955.   "天空射"      => ["バックジャンプ遠","弓矢攻撃2","天空射","50",
  1956.                     "天空射2","対象アニメウエイト","20","天空射3","対象アニメウエイト","20",
  1957.                     "天空射4","対象アニメウエイト","35",
  1958.                     "コラプス許可","10","座標リセット"],
  1959.                     
  1960.   "震荡箭"       =>  ["目標前移動4","待機(固定)","弓矢攻撃","白羽之光2",
  1961.                       "30","白羽之光3","対象アニメウエイト","50","白羽之光","対象アニメウエイト","25",
  1962.                       "コラプス許可","25","座標リセット"],
  1963.                   
  1964.   "突刺"            => ["目標前移動-战","突き攻撃","対象アニメウエイト",
  1965.                         "コラプス許可","後退リセット-战"],
  1966.                         
  1967.   "治愈"  =>     ["移动目标身后2","10","魔法始動アニメ","魔法詠唱","24","待機(固定)",
  1968.                   "対象アニメウエイト","コラプス許可","10","座標リセット"],
  1969.                   
  1970.   "爆裂冲击"    => ["目標前移動-战","刀攻撃下","十字斩","対象アニメ","5",
  1971.                     "武器振り攻撃","十字斩2","対象アニメ","5",
  1972.                     "刀攻撃下","十字斩3","対象アニメウエイト","20",
  1973.                     "コラプス許可","10","座標リセット-战"],
  1974.                     
  1975.   "完美防御"  =>     ["魔法始動アニメ","魔法詠唱","24","待機(固定)",
  1976.                      "対象アニメウエイト","コラプス許可","10","座標リセット"],
  1977.                      
  1978.   "无影光剑"      =>     ["光剑","20","残像ON","目標前高速移動",
  1979.                           "刀攻撃下","光剑2","対象アニメウエイト","3",
  1980.                           "目標前高速移動","刀攻撃下","光剑3","対象アニメウエイト","3",
  1981.                           "目標前高速移動","刀攻撃下","光剑2","対象アニメウエイト","3",
  1982.                           "目標前高速移動","刀攻撃下","光剑4","対象アニメウエイト","3",
  1983.                           "目標前高速移動","刀攻撃下","光剑3","対象アニメウエイト","3",
  1984.                           "バックジャンプ遠",
  1985.                           "コラプス許可","座標リセット-战","残像OFF",],
  1986.                           
  1987.   "治愈2"  =>     ["魔法始動アニメ","魔法詠唱","24","待機(固定)",
  1988.                   "対象アニメウエイト","コラプス許可","10","座標リセット-战"],
  1989.                   
  1990.   "圣剑"  =>     ["残像ON","目標前移動4","待機(固定)",
  1991.                   "巨剑2","刀攻撃下3","10","巨剑","10","巨剑3","対象アニメウエイト","30","巨剑3","対象アニメウエイト","40",
  1992.                   "コラプス許可","10","座標リセット-战","残像OFF",],
  1993.                      
  1994.   "神恩"  =>     ["残像ON","バックジャンプ遠","待機(固定)",
  1995.                   "刀攻撃下3","3","神恩","70","対象アニメウエイト","25",
  1996.                   "コラプス許可","10","座標リセット-战","残像OFF",],
  1997.                   
  1998.   "魔法2"  =>     ["移动目标身后2","10","魔法始動アニメ","魔法詠唱","24",
  1999.                   "対象アニメウエイト","コラプス許可","10","座標リセット"],
  2000.               
  2001.   "魔法2-法"  =>     ["移动目标身后2","10","魔法始動アニメ","魔法詠唱","24",
  2002.                   "対象アニメウエイト","コラプス許可","10","座標リセット-法"],
  2003.                   
  2004.   "普通攻击"         => ["目標前移動","武器振り攻撃","対象アニメウエイト",
  2005.                           "5","武器振り攻撃L","対象アニメL","二刀限定","16",
  2006.                           "コラプス許可","後退リセット"],
  2007.                           
  2008.   "超级连射"       => ["バックジャンプ","待機(固定)","开枪","銃で攻撃",
  2009.                       "対象アニメウエイト","反転","一歩前移動","反転","10","待機(固定)",
  2010.                       "待機(固定)","开枪","銃で攻撃","対象アニメウエイト",
  2011.                       "开枪","銃で攻撃","対象アニメウエイト",
  2012.                       "待機(固定)","反転","バックジャンプ遠","反転","开枪","銃で攻撃","対象アニメウエイト",
  2013.                       "コラプス許可","12","座標リセット"],
  2014.                      
  2015.   "超级扫射"       => ["バックジャンプ遠","待機(固定)","沙漠风暴","銃で攻撃2","対象アニメウエイト",
  2016.                       "沙漠风暴","銃で攻撃2","対象アニメウエイト","沙漠风暴","銃で攻撃2","対象アニメウエイト",
  2017.                       "沙漠风暴","銃で攻撃2","対象アニメウエイト","沙漠风暴","銃で攻撃2","対象アニメウエイト",
  2018.                       "沙漠风暴","銃で攻撃2","対象アニメウエイト","沙漠风暴","銃で攻撃2","対象アニメウエイト",
  2019.                       "沙漠风暴","銃で攻撃2","対象アニメウエイト","沙漠风暴","銃で攻撃2","対象アニメウエイト",
  2020.                       "沙漠风暴","銃で攻撃2","対象アニメウエイト","沙漠风暴","銃で攻撃2","対象アニメウエイト",
  2021.                       "沙漠风暴","銃で攻撃2","対象アニメウエイト","沙漠风暴","銃で攻撃2","対象アニメウエイト",
  2022.                       "沙漠风暴","銃で攻撃2","対象アニメウエイト","沙漠风暴","銃で攻撃2","対象アニメウエイト",
  2023.                       "沙漠风暴","銃で攻撃2","対象アニメウエイト","銃で攻撃3","沙漠风暴3","30",
  2024.                       "コラプス許可","12","座標リセット"],
  2025.                      
  2026.   "连散"            =>  ["バックジャンプ遠","霰弹","銃で攻撃4","対象アニメウエイト",
  2027.                          "霰弹","銃で攻撃4","対象アニメウエイト","霰弹","銃で攻撃4","対象アニメウエイト","20",
  2028.                           "コラプス許可","後退リセット"],
  2029.                           
  2030.   "剑气爆破"           => ["一歩前移動","一歩前移動","刀攻撃下4","剑气爆破2","刀攻撃下6-3","目標前高速移動","剑气爆破","突刺攻击-真2","対象アニメウエイト","40",
  2031.                           "剑气爆破3","対象アニメウエイト","40",
  2032.                           "コラプス許可","後退リセット-战"],
  2033.                         
  2034.   "燃烧"        =>      ["目標前移動-法","燃烧改","魔法詠唱","挥拳2","燃烧改2","対象アニメウエイト",
  2035.                         "20","コラプス許可","後退リセット-法"],
  2036.                     
  2037.   "烧尽"        =>      ["目標前移動-法","烧尽改2","魔法詠唱","挥拳2","烧尽改","対象アニメウエイト",
  2038.                         "20","コラプス許可","後退リセット-法"],
  2039.                         
  2040.   "高温射线"    => ["目標前移動-法2","熔岩风暴","魔法詠唱","5","熔岩风暴2","挥拳2","対象アニメ",
  2041.                    "5","対象アニメ","5","対象アニメ",
  2042.                    "20","コラプス許可","10","座標リセット-法"],
  2043.                   
  2044.   "歼灭之炎"    => ["目標前移動4","火魔法阵2","魔法詠唱",
  2045.                   "火魔法阵3","大型火球","浮空待機",
  2046.                   "10","待機(固定)","魔法挥舞","大型火球2","40",
  2047.                   "大型火球3","対象アニメウエイト","5","対象アニメウエイト","5","対象アニメウエイト",
  2048.                   "待機(固定)","20","コラプス許可","10","座標リセット-法"],
  2049.                   
  2050.   "冰剑"        =>      ["バックジャンプ-法","水魔法阵","魔法詠唱","魔法挥舞2","冰剑","3","対象アニメウエイト",
  2051.                         "20","コラプス許可","後退リセット-法"],
  2052.                         
  2053.   "冰魄"        =>      ["バックジャンプ-法","水魔法阵2","魔法詠唱","魔法挥舞2","冰魄","対象アニメウエイト",
  2054.                         "20","コラプス許可","後退リセット-法"],
  2055.                         
  2056.   "绞杀冰剑"    => ["バックジャンプ-法","水魔法阵2","魔法詠唱","魔法挥舞",
  2057.                   "绞杀冰剑2","5","対象アニメウエイト","15",
  2058.                   "対象アニメウエイト","15","対象アニメウエイト","20",
  2059.                   "コラプス許可","10","座標リセット-法"],
  2060.                   
  2061.   "寒冰审判"    => ["目標前移動4","寒冰地狱","魔法詠唱",
  2062.                   "寒冰地狱2","30","浮空待機",
  2063.                   "寒冰地狱3","2","対象アニメウエイト","寒冰地狱4","40",
  2064.                   "待機(固定)","70","コラプス許可","10","座標リセット-法"],
  2065.                   
  2066.   "魔法重击"   =>      ["バックジャンプ-法","魔法阵","魔法詠唱","魔法挥舞2","対象アニメウエイト",
  2067.                         "15","コラプス許可","後退リセット-法"],
  2068.                         
  2069.   "半月斩"        =>   ["目標前移動5","待機(固定)","刀攻撃下4","半月斩","30","刀攻撃下5","半月斩2","対象アニメウエイト",
  2070.                         "20","半月斩3","対象アニメウエイト","25","対象アニメウエイト","25","対象アニメウエイト","15",
  2071.                         "20","コラプス許可","後退リセット"],
  2072.                         
  2073.   "突刺2"              => ["目標前移動-战","突刺攻击-真","突刺特效","突刺攻击-真2","対象アニメウエイト","20",
  2074.                           "コラプス許可","後退リセット-战"],
  2075.                           
  2076.   "直线冲刺"           => ["一歩前移動","一歩前移動","直线冲刺2","突刺攻击-真","目標前高速移動","直线冲刺","突刺攻击-真2","対象アニメウエイト","35",
  2077.                           "コラプス許可","後退リセット-战"],
  2078.                           
  2079.   "毁灭冲刺"           => ["一歩前移動","一歩前移動","毁灭冲刺","突刺攻击-真3","目標前高速移動","毁灭冲刺2","突刺攻击-真2","対象アニメウエイト","50",
  2080.                           "コラプス許可","後退リセット-战"],
  2081.                   
  2082.   "召唤岩石"   =>      ["一歩前移動","魔法始動アニメ","10","召唤岩石","15","対象アニメウエイト",
  2083.                         "15","コラプス許可","後退リセット"],
  2084.                           
  2085.   "重击/敌"       =>     ["目標前移動","敌斩击2","対象アニメウエイト","20",
  2086.                         "コラプス許可","座標リセット"],
  2087.                         
  2088.   "重击/敌3"       =>  ["目標前移動","対象アニメウエイト","20",
  2089.                         "コラプス許可","座標リセット"],
  2090.                         
  2091.   "重击/敌2"       =>   ["目標前移動","敌斩击2","対象アニメ","15",
  2092.                         "目標前移動","敌斩击2","対象アニメ","20",
  2093.                         "コラプス許可","座標リセット"],
  2094.                         
  2095.   "连击/敌"       =>     ["目標前移動","対象アニメ武器","20",
  2096.                         "目標前移動","対象アニメ武器","20",
  2097.                         "目標前移動","対象アニメ武器","20",
  2098.                         "コラプス許可","座標リセット"],
  2099.                         
  2100.   "范围黑洞"    => ["待機(固定)","黑魔法","魔法詠唱","魔法挥舞2","10","范围黑洞",
  2101.                     "15","Slash7","対象アニメウエイト","12","Slash7","対象アニメウエイト","12",
  2102.                     "Slash7","対象アニメウエイト","12","Slash7","対象アニメウエイト","18","Slash7","対象アニメ","40",
  2103.                     "コラプス許可","10","座標リセット-法"],
  2104.                     
  2105.   "重力爆炸"    => ["目標前移動4","待機(固定)","黑魔法2","魔法詠唱","魔法挥舞2","10","重力爆炸",
  2106.                     "58","Slash7","対象アニメウエイト","50",
  2107.                     "コラプス許可","10","座標リセット-法"],
  2108.                     
  2109.   "次元裂缝"    => ["目標前移動4","待機(固定)","黑魔法3","魔法詠唱","魔法挥舞","10","次元裂缝2",
  2110.                     "8","次元裂缝","13","対象アニメ","15","対象アニメ","15",
  2111.                     "対象アニメ","15","黑洞击中","対象アニメ","15","対象アニメ","15",
  2112.                     "対象アニメ","15","対象アニメ","15","対象アニメ","15","対象アニメ","15","対象アニメ","30",
  2113.                     "コラプス許可","10","座標リセット-法"],
  2114.                     
  2115.   "凝点压缩"    => ["目標前移動4","待機(固定)","黑魔法4","魔法詠唱","魔法挥舞","10","黑魔法5",
  2116.                     "45","凝点压缩","55","凝点压缩2","対象アニメ","20","対象アニメ","20","対象アニメ","20",
  2117.                     "コラプス許可","10","座標リセット-法"],
  2118.                     
  2119.   "混沌之枪"    => ["待機(固定)","黑魔法6","魔法詠唱","魔法挥舞","10","混沌之枪",
  2120.                    "10","対象アニメウエイト","35",
  2121.                     "コラプス許可","10","座標リセット-法"],
  2122.                     
  2123.   "黑雷击"    => ["待機(固定)","黑魔法3","魔法詠唱","魔法挥舞","10","黑闪电","対象アニメ","15",
  2124.                     "黑闪电","対象アニメ","15","黑闪电","対象アニメ","15","火魔法阵4",
  2125.                     "黑闪电","対象アニメ","15","黑闪电","対象アニメ","15","黑闪电","対象アニメ","15","火魔法阵4",
  2126.                     "黑闪电","対象アニメ","15","黑闪电","対象アニメ","15","黑闪电","対象アニメ","15","火魔法阵4",
  2127.                     "黑闪电","対象アニメ","15","黑闪电","対象アニメ","15","黑闪电","対象アニメ","火魔法阵4","30",
  2128.                     "コラプス許可","10","座標リセット-法"],
  2129.                     
  2130.   "地狱惩罚"    => ["目標前移動4","待機(固定)","魔法詠唱","黑魔法7","魔法挥舞2","10","召唤巨剑","45","黑巨剑",
  2131.                     "20","対象アニメ","22","対象アニメ","22","対象アニメ","30",
  2132.                     "コラプス許可","10","座標リセット-法"],
  2133.                     
  2134.   "裁决之力"    => ["残像ON","バックジャンプ遠","待機(固定)","魔法詠唱","黑魔法8","魔法挥舞","10","対象アニメ","35",
  2135.                     "コラプス許可","10","座標リセット-法","残像OFF"],
  2136.                     
  2137.   "剧毒地带"    => ["バックジャンプ","黑魔法","魔法詠唱","魔法挥舞2",
  2138.                   "剧毒地带","20","毒攻击","対象アニメウエイト","10","毒攻击","対象アニメウエイト","5",
  2139.                   "毒攻击","対象アニメウエイト","8",
  2140.                   "20","コラプス許可","10","座標リセット-法"],
  2141.                   
  2142.   "枪攻击"            => ["バックジャンプ","开枪","銃で攻撃8","対象アニメウエイト","10",
  2143.                           "コラプス許可","後退リセット"],
  2144.                           
  2145.   "命运裁决"       => ["バックジャンプ","待機(固定)","开枪","銃で攻撃8",
  2146.                       "対象アニメウエイト","反転","一歩前移動2","反転","10","待機(固定)",
  2147.                       "待機(固定)","开枪2","銃で攻撃8","対象アニメウエイト",
  2148.                       "开枪","銃で攻撃8","対象アニメウエイト",
  2149.                       "待機(固定)","反転","バックジャンプ遠","反転","开枪3","銃で攻撃8","対象アニメウエイト",
  2150.                       "コラプス許可","12","座標リセット"],
  2151.                      
  2152.   "高速背射"      =>     ["待機(固定)","高速背射3","武器投げ開始","10","背射3","残像ON","目標前高速移動2","高速背射2","高速背射动作","反転",
  2153.                           "待機(固定)","10","高速背射","銃で攻撃8","対象アニメ2","4","高速背射","銃で攻撃8","対象アニメ2","4",
  2154.                           "高速背射","銃で攻撃8","対象アニメ2","10","反転",
  2155.                           "バックジャンプ遠","一歩後ジャンプ","バックジャンプ遠","残像OFF",
  2156.                           "コラプス許可","12","座標リセット",],
  2157.                           
  2158.   "魔光穿甲弹"  =>   ["バックジャンプ遠","魔光穿甲弹","10",
  2159.                       "銃で攻撃5","穿甲弹","5","銃で攻撃9","対象アニメ2","30",
  2160.                       "銃で攻撃10","穿甲弹","5","銃で攻撃9","対象アニメ2","30",
  2161.                       "銃で攻撃10","穿甲弹","5","銃で攻撃9","対象アニメ2","30",
  2162.                       "コラプス許可","12","座標リセット"],
  2163.                      
  2164.   "其卡斯之怒"      =>    ["待機(固定)","枪旋转","武器投げ開始","10","背射3","残像ON","前ジャンプ叩き","挥拳","瞬踢","対象アニメ2","10","目標前移動",
  2165.                           "瞬踢2","対象アニメ2","空翻","バックジャンプ遠","バックジャンプ2","空翻2",
  2166.                           "バックジャンプ2","开枪","銃で攻撃8","対象アニメ2","バックジャンプ2","开枪2","銃で攻撃8","対象アニメ2",
  2167.                           "バックジャンプ2","开枪3","銃で攻撃8","対象アニメ2","バックジャンプ2","开枪","銃で攻撃8","対象アニメ2",
  2168.                           "バックジャンプ2","开枪2","銃で攻撃8","対象アニメ2","バックジャンプ2","开枪3","銃で攻撃8","対象アニメ2",
  2169.                           "バックジャンプ2","开枪","銃で攻撃8","対象アニメ2","バックジャンプ2","开枪2","銃で攻撃8","対象アニメ2",
  2170.                           "バックジャンプ2","开枪3","銃で攻撃8","対象アニメ2","バックジャンプ2","开枪","銃で攻撃8","対象アニメ2",
  2171.                           "バックジャンプ2","开枪2","銃で攻撃8","対象アニメ2","バックジャンプ2","开枪3","銃で攻撃8","対象アニメ2",
  2172.                           "バックジャンプ2","开枪","銃で攻撃8","対象アニメ2","バックジャンプ2","开枪2","銃で攻撃8","対象アニメ2",
  2173.                           "バックジャンプ2","开枪3","銃で攻撃8","対象アニメ2","バックジャンプ2","开枪","銃で攻撃8","対象アニメ2",
  2174.                           "バックジャンプ2","开枪2","銃で攻撃8","対象アニメ2","バックジャンプ2","开枪3","銃で攻撃8","対象アニメ2",
  2175.                           "空翻2","バックジャンプ","装弹夹","换弹夹","40","残像OFF",
  2176.                           "コラプス許可","12","座標リセット",],
  2177.                           
  2178.   "精确射击"      => ["バックジャンプ","待機(固定)","銃で攻撃8-7",
  2179.                       "开枪3","銃で攻撃8-3","対象アニメウエイト","开枪","銃で攻撃8-3","対象アニメウエイト",
  2180.                       "开枪2","銃で攻撃8-3","対象アニメウエイト", "开枪3","銃で攻撃8-3","対象アニメウエイト","15",
  2181.                       "コラプス許可","12","座標リセット"],
  2182.                      
  2183.   "螺旋丸"     =>   ["バックジャンプ","待機(固定)","旋风冲击","25",
  2184.                     "前ジャンプ叩き","待機(固定)","5","旋风冲击2",
  2185.                     "対象アニメ2","白羽之光改5","5","対象アニメウエイト","白羽之光改5","5",
  2186.                     "対象アニメウエイト","白羽之光改5","5","対象アニメウエイト","白羽之光改5","5",
  2187.                     "対象アニメウエイト","白羽之光改5","5","対象アニメウエイト","白羽之光改5","5",
  2188.                     "対象アニメウエイト","白羽之光改5","5","対象アニメウエイト","白羽之光改5","5",
  2189.                     "対象アニメウエイト","白羽之光改5","5","対象アニメウエイト","白羽之光改5","5",
  2190.                     "対象アニメウエイト","白羽之光改5","5","対象アニメウエイト","白羽之光改5","20",
  2191.                     "コラプス許可","10","座標リセット"],
  2192.                     
  2193.   "映月"      =>         ["残像ON","前ジャンプ叩き","映月","対象アニメ2","空翻3","バックジャンプ遠","待機(固定)","残像OFF",
  2194.                           "コラプス許可","12","座標リセット",],
  2195.                           
  2196.   "终结破坏2"      =>     ["残像ON","反転","一歩前移動2","反転",
  2197.                           "开枪","銃で攻撃8-3","対象アニメ2","开枪2","銃で攻撃8-3","対象アニメ2",
  2198.                           "开枪3","銃で攻撃8-3","対象アニメ2","开枪3","銃で攻撃8-3","対象アニメ2",
  2199.                           "开枪2","銃で攻撃8-3","対象アニメ2","开枪","銃で攻撃8-3","対象アニメ2",
  2200.                           "开枪","銃で攻撃8-3","対象アニメ2","开枪3","銃で攻撃8-3","対象アニメ2",
  2201.                           "开枪2","銃で攻撃8-3","対象アニメ2","开枪2","銃で攻撃8-3","対象アニメ2",
  2202.                           "终结破坏4","终结破坏4","终结破坏4","终结破坏","没子弹",
  2203.                           "バックジャンプ","挥拳3","终结破坏2","30","终结破坏3","対象アニメウエイト","対象アニメウエイト",
  2204.                           "コラプス許可","12","座標リセット",],
  2205.                           
  2206.   "终结破坏"      =>     ["残像ON","バックジャンプ",
  2207.                           "銃で攻撃5","M134","対象アニメ2","対象アニメ2","対象アニメ2","銃で攻撃8-3","銃で攻撃8-3","銃で攻撃8-3","30",
  2208.                           "M134","対象アニメ2","対象アニメ2","対象アニメ2","銃で攻撃8-3","銃で攻撃8-3","銃で攻撃8-3","30",
  2209.                           "M134","対象アニメ2","対象アニメ2","対象アニメ2","銃で攻撃8-3","銃で攻撃8-3","銃で攻撃8-3","10",
  2210.                           "コラプス許可","12","座標リセット",],
  2211.                           
  2212. "毒蛇追踪炮"  => ["目標前移動4","待機(固定)","魔法詠唱","魔法挥舞","10","毒蛇追踪炮","25",
  2213.                    "毒蛇追踪炮2","40","毒蛇追踪炮3","毒蛇追踪炮4","30","毒蛇追踪炮5","対象アニメウエイト","50",
  2214.                    "コラプス許可","30","座標リセット",],
  2215.                   
  2216.   "榴弹发射"      =>     ["目標前移動4","装榴弹","终结破坏5","銃で攻撃8-6",
  2217.                           "銃で攻撃8-7","銃で攻撃8","榴弹发射","20","终结破坏3","対象アニメ2","50",
  2218.                           "コラプス許可","12","座標リセット",],
  2219.                           
  2220. "混沌轰炸"  =>   ["待機(固定)","魔法詠唱","魔法挥舞","10","混沌轰炸4","25",
  2221.                    "混沌轰炸","180","混沌轰炸3","25","対象アニメウエイト","30","対象アニメウエイト","20",
  2222.                    "混沌轰炸2","15","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6",
  2223.                    "対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6",
  2224.                    "対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","6","対象アニメウエイト",
  2225.                    "6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト",
  2226.                    "6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト",
  2227.                    "6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト",
  2228.                    "6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト",
  2229.                    "6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト",
  2230.                    "6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト",
  2231.                    "6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト",
  2232.                    "6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト",
  2233.                    "6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト",
  2234.                    "6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト",
  2235.                    "6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト",
  2236.                    "6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト",
  2237.                    "6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト","6","対象アニメウエイト",
  2238.                    "6","対象アニメウエイト","6","対象アニメウエイト","対象アニメウエイト","30","コラプス許可","30","座標リセット",],
  2239.                   
  2240.   "消能发射"      =>     ["バックジャンプ","銃で攻撃5",
  2241.                           "銃で攻撃8","消能射击","15","対象アニメ2","15",
  2242.                           "コラプス許可","12","座標リセット",],
  2243.                           
  2244.   "针刺发射"      =>     ["バックジャンプ","装榴弹","针刺装弹","銃で攻撃8-6",
  2245.                           "銃で攻撃8-7","銃で攻撃8","开枪2","5","针刺射击","25","対象アニメ2","20",
  2246.                           "コラプス許可","12","座標リセット",],
  2247.                           
  2248.   "更换弹夹"      =>     ["バックジャンプ","装弹夹","换弹夹","30","対象アニメ2",
  2249.                           "コラプス許可","12","座標リセット",],
  2250.             
  2251.   "更换弹夹2"      =>     ["バックジャンプ","装弹夹","换弹夹2","30","対象アニメ2","20",
  2252.                           "コラプス許可","12","座標リセット",],
  2253.                           
  2254.   "魔光瞬斩"       => ["目標前移動-战","刀攻撃下","魔光瞬斩","対象アニメ","40",
  2255.                       "コラプス許可","バックジャンプ","後退リセット-战"],
  2256.                      
  2257.   "破碎十字"      => ["破碎十字3","刀攻撃下6",
  2258.                       "破碎十字5","5","残像ON","目標前高速移動","5","破碎十字","刀攻撃下","対象アニメ",
  2259.                       "5","破碎十字4","武器振り攻撃","対象アニメ","バックジャンプ遠","刀攻撃下","破碎十字2",
  2260.                       "10","混沌轰炸5","対象アニメ","15","混沌轰炸5","対象アニメ","30",
  2261.                       "コラプス許可","バックジャンプ","後退リセット-战"],
  2262.                      
  2263.   "毁灭气息"       => ["刀攻撃下6","毁灭残影","5","目標前高速移動","残像ON","反転","待機(固定)",
  2264.                       "后跳攻击","毁灭气息3","対象アニメウエイト","武器振り攻撃",
  2265.                       "武器振り攻撃","一歩後ジャンプ","一歩後ジャンプ","払い抜け","小吹き飛ばし",
  2266.                       "目標前高速移動","刀攻撃下","小吹き飛ばし","毁灭气息3","対象アニメウエイト",
  2267.                       "目標前高速移動","刀攻撃下","小吹き飛ばし","毁灭气息3","対象アニメウエイト",
  2268.                       "目標前移動","反転","バックジャンプ遠",
  2269.                       "刀攻撃下","10","毁灭气息2","混沌轰炸5","対象アニメ","10","混沌轰炸5","対象アニメ","20",
  2270.                       "毁灭气息4","対象アニメ","30",
  2271.                       "コラプス許可","12","後退リセット-战"],
  2272.                      
  2273.   "湮灭神剑"       => ["刀攻撃下6","破碎十字3","5","目標前高速移動","残像ON","待機(固定)",
  2274.                       "后跳攻击","毁灭拔刀","対象アニメウエイト","武器振り攻撃",
  2275.                       "武器振り攻撃","一歩後ジャンプ","一歩後ジャンプ","払い抜け","小吹き飛ばし",
  2276.                       "目標前高速移動","刀攻撃下","小吹き飛ばし","毁灭拔刀","対象アニメウエイト",
  2277.                       "目標前高速移動","刀攻撃下","小吹き飛ばし","毁灭拔刀","対象アニメウエイト",
  2278.                       "目標前高速移動","刀攻撃下","小吹き飛ばし","毁灭拔刀","対象アニメウエイト",
  2279.                       "目標前高速移動","刀攻撃下","小吹き飛ばし","毁灭拔刀","対象アニメウエイト",
  2280.                       "バックジャンプ遠","刀攻撃下6","毁灭拔刀2","待機(固定)","20","15",
  2281.                       "毁灭拔刀3","40","变身BUG","変身解除","勝利待機",
  2282.                       "毁灭拔刀4","対象アニメ","10","毁灭拔刀4","対象アニメ","10","毁灭拔刀4","対象アニメ","30",
  2283.                       "コラプス許可","12","後退リセット"],
  2284.                      
  2285.   "重力爆破"       => ["目標前移動","刀攻撃下","毁灭拔刀","対象アニメ","10",
  2286.                       "バックジャンプ遠","重力爆破","刀攻撃下","10","Slash7","対象アニメウエイト",
  2287.                       "10","Slash7","対象アニメウエイト","10","Slash7","対象アニメウエイト","10","Slash7","対象アニメウエイト",
  2288.                       "15","Slash7","対象アニメウエイト","20",
  2289.                       "コラプス許可","バックジャンプ","後退リセット-战"],
  2290.                      
  2291.   "重力回旋"        => ["目標前移動4",
  2292.                       "待機(固定)","刀攻撃下9","重力回旋","刀攻撃下10",
  2293.                       "重力回旋3","対象アニメウエイト","10","重力回旋2","対象アニメウエイト","10",
  2294.                       "重力回旋2","対象アニメウエイト","10","重力回旋3","対象アニメウエイト","10",
  2295.                       "重力回旋4","対象アニメウエイト","10","接武器","30",
  2296.                       "残像OFF","コラプス許可","10","座標リセット-战"],
  2297.                      
  2298.   "毁灭石像"    => ["目標前移動4","待機(固定)","魔法詠唱","刀攻撃下","毁灭石像2","20","毁灭石像","対象アニメ","15",
  2299.                     "毁灭石像","対象アニメ","18","毁灭石像","対象アニメ","18","毁灭石像","対象アニメ","18",
  2300.                     "毁灭石像","対象アニメ","18","毁灭石像","対象アニメ","18","毁灭石像","対象アニメ","18",
  2301.                     "毁灭石像","対象アニメ","18","毁灭石像","対象アニメ","18","毁灭石像","対象アニメ","20",
  2302.                     "コラプス許可","10","座標リセット-战"],
  2303.                     
  2304.   "重力引爆"       => ["目標前移動-战","バックジャンプ遠",
  2305.                       "魔法詠唱","待機(固定)","空白","重力引爆","80",
  2306.                       "変身解除","待機(固定)","勝利待機","5",
  2307.                       "重力引爆2","対象アニメ","20","重力引爆3","対象アニメ","20",
  2308.                       "重力引爆4","対象アニメ","30",
  2309.                       "コラプス許可","12","後退リセット-战"],
  2310.                      
  2311.   "灵毁"           => ["バックジャンプ",
  2312.                       "魔法詠唱","待機(固定)","刀攻撃下","対象アニメ","30",                     
  2313.                       "コラプス許可","12","後退リセット-战"],
  2314.                      
  2315.   "血之代价"       => ["バックジャンプ",
  2316.                       "魔法詠唱","勝利待機","対象アニメ","30",                     
  2317.                       "コラプス許可","12","後退リセット"],
  2318.                      
  2319.   "时间收割"       => ["バックジャンプ",
  2320.                       "魔法詠唱","勝利待機","时间收割2","対象アニメ","30",                     
  2321.                       "コラプス許可","12","後退リセット-战"],
  2322.                      
  2323.   "粉碎"      => ["粉碎2","刀攻撃下6","30",
  2324.                  "前ジャンプ叩き3","粉碎","対象アニメ","30",
  2325.                  "コラプス許可","バックジャンプ","後退リセット-战"],
  2326.                  
  2327.   "雷霆一击"    => ["バックジャンプ","雷霆一击2","刀攻撃下6","25",
  2328.                  "雷霆一击3","前ジャンプ叩き4","5","雷霆一击","対象アニメ","50",
  2329.                  "コラプス許可","バックジャンプ","後退リセット-战"],
  2330.                  
  2331.   "死亡棒球"    => ["目標前移動4","死亡棒球4","投掷棒球",
  2332.                  "刀攻撃下","死亡棒球","30","死亡棒球3","対象アニメ","10","対象アニメ","10","対象アニメ","70",
  2333.                  "コラプス許可","後退リセット"],
  2334.                  
  2335.   "灰烬粉碎"     => ["目標前移動4","死亡棒球2","刀攻撃下6","50",
  2336.                     "待機(固定)","勝利のジャンプ","钝器挥舞","灰烬粉碎","30",
  2337.                     "灰烬粉碎3","対象アニメウエイト","20","灰烬粉碎4","対象アニメウエイト","20",
  2338.                     "灰烬粉碎5","対象アニメウエイト","20","勝利のジャンプ","钝器挥舞","灰烬粉碎7",
  2339.                     "65","灰烬粉碎6","灰烬粉碎击中2","対象アニメウエイト",
  2340.                     "50","灰烬粉碎2","灰烬粉碎击中","対象アニメウエイト","30",
  2341.                     "コラプス許可","10","座標リセット-战"],
  2342.                     
  2343.   "旋转锤"        => ["目標前移動-战","旋转锤","刀攻撃下-2","対象アニメ","8","旋转锤","刀攻撃下-2","対象アニメ","8",
  2344.                       "旋转锤","刀攻撃下-2","対象アニメ","20",
  2345.                       "コラプス許可","12","後退リセット-战"],
  2346.                      
  2347.   "暴风锤"        => ["目標前移動","暴风锤","旋转打","対象アニメ","暴风锤","旋转打","対象アニメ",
  2348.                       "暴风锤","旋转打","対象アニメ","暴风锤","旋转打","対象アニメ",
  2349.                       "暴风锤","旋转打","対象アニメ","暴风锤","旋转打","対象アニメ",
  2350.                       "暴风锤","旋转打","対象アニメ","暴风锤","旋转打","対象アニメ",
  2351.                       "コラプス許可","12","後退リセット"],
  2352.                      
  2353. "熔岩锤"     => ["バックジャンプ","熔岩锤2","刀攻撃下6","20",
  2354.                  "前ジャンプ叩き4","5","熔岩锤","対象アニメ","50",
  2355.                  "コラプス許可","後退リセット-战"],
  2356.                  
  2357. "范围冲击"   => ["バックジャンプ","范围冲击2","刀攻撃下6","50",
  2358.                  "待機(固定)","勝利のジャンプ","钝器挥舞","灰烬粉碎","灰烬粉碎击中2","対象アニメ","30",
  2359.                  "范围冲击","灰烬粉碎击中","対象アニメ","30",
  2360.                  "コラプス許可","後退リセット-战"],
  2361.                  
  2362. "高速粉碎"      =>      ["バックジャンプ","高速粉碎2","刀攻撃下6","15",
  2363.                           "破碎十字5","5","残像ON","目標前高速移動","待機(固定)","空白","5",
  2364.                           "高速粉碎","70","变身BUG","変身解除3","座標リセット","勝利待機2",
  2365.                           "高速粉碎3","対象アニメ","15","高速粉碎3","対象アニメ","15",
  2366.                           "高速粉碎4","対象アニメ","15","高速粉碎5","対象アニメ","15",
  2367.                           "高速粉碎4","対象アニメ","15","高速粉碎3","対象アニメ","15",
  2368.                           "高速粉碎3","対象アニメ","15","高速粉碎5","対象アニメ","30","残像OFF",
  2369.                           "コラプス許可","12","座標リセット-战"],
  2370.                      
  2371.   "极度鄙视"   => ["一歩前移動-慢","鄙视动作","极度鄙视","15",
  2372.                  "対象アニメ","50",
  2373.                  "コラプス許可","後退リセット"],
  2374.                
  2375.   "怒火燃烧"   => ["バックジャンプ","刀攻撃下","燃烧怒火","対象アニメ","50",
  2376.                  "コラプス許可","後退リセット"],
  2377.                  
  2378.   "自然毁灭"   => ["残像ON","一歩前移動","自然毁灭","70","自然毁灭2",
  2379.                  "対象アニメ","50","残像OFF",
  2380.                  "コラプス許可","後退リセット"],
  2381.                  
  2382.   "撕裂"        =>   ["目標前移動","対象アニメ","10","目標前移動","対象アニメ","10",
  2383.                     "目標前移動","対象アニメ","10",
  2384.                      "20","コラプス許可","後退リセット"],
  2385.                      
  2386.   "天空怒吼"   => ["残像ON","一歩前移動","天空怒吼2","40","天空怒吼","20",
  2387.                  "対象アニメ","10","対象アニメ","10","対象アニメ","40","残像OFF",
  2388.                  "コラプス許可","後退リセット"],
  2389.                  
  2390.   "雷霆重击"      => ["雷霆重击2","刀攻撃下6","15",
  2391.                       "目標前移動-战","刀攻撃下","雷霆重击","対象アニメウエイト",
  2392.                       "コラプス許可","バックジャンプ","後退リセット-战"],
  2393.                      
  2394.   "残忍突刺"          => ["目標前移動-战","突刺攻击-真","突刺攻击-真2","残忍突刺","対象アニメウエイト","20",
  2395.                           "コラプス許可","後退リセット-战"],
  2396.                           
  2397.   "雷霆突袭"   => ["残像ON","目標前移動-战","雷霆突袭","対象アニメウエイト","刀攻撃下","6",
  2398.                   "目標前移動-战","武器振り攻撃","小吹き飛ばし","雷霆突袭","対象アニメウエイト","6",
  2399.                   "一歩後ジャンプ",
  2400.                   "目標前移動-战","刀攻撃下","小吹き飛ばし","雷霆突袭","対象アニメウエイト","バックジャンプ","10",
  2401.                   "目標前移動-战","刀攻撃下","雷霆重击","雷霆突袭","対象アニメウエイト",
  2402.                   "待機(固定)","15",
  2403.                   "コラプス許可","バックジャンプ","残像OFF","座標リセット-战"],
  2404.                   
  2405.   "充电冲刺"           => ["一歩前移動","一歩前移動","充电突刺2","10","突刺攻击-真","目標前高速移動","充电突刺","突刺攻击-真2","対象アニメウエイト","35",
  2406.                           "コラプス許可","後退リセット-战"],
  2407.                           
  2408.   "天空挥舞"      =>      ["バックジャンプ","天空挥舞5","刀攻撃下6","30",
  2409.                           "残像ON","目標前高速移動","待機(固定)","空白","20",
  2410.                           "天空挥舞","対象アニメ","2","天空挥舞4","対象アニメ","2","天空挥舞2","対象アニメ","50",
  2411.                           "天空挥舞2","対象アニメ","2","天空挥舞3","対象アニメ","2","天空挥舞","対象アニメ","2",
  2412.                           "天空挥舞2","対象アニメ","2","天空挥舞3","対象アニメ","2","天空挥舞","対象アニメ","2",
  2413.                           "天空挥舞","対象アニメ","2","天空挥舞4","対象アニメ","2","天空挥舞2","対象アニメ","2",
  2414.                           "天空挥舞","対象アニメ","2","天空挥舞3","対象アニメ","2","天空挥舞","対象アニメ","2",
  2415.                           "天空挥舞","対象アニメ","2","天空挥舞4","対象アニメ","2","天空挥舞2","対象アニメ","10",
  2416.                           "变身BUG","変身解除",
  2417.                           "残像OFF","コラプス許可","座標リセット-战"],
  2418.                           
  2419.   "毁灭剑气"        =>  ["目標前移動-战","バックジャンプ遠","待機(固定)","刀攻撃下4","毁灭剑气","刀攻撃下6-3","30",
  2420.                         "刀攻撃下5","毁灭剑气2","対象アニメ","30","毁灭剑气3","対象アニメ","30",
  2421.                         "毁灭剑气4","対象アニメ","50",
  2422.                         "コラプス許可","後退リセット-战"],
  2423.                         
  2424.   "雷霆半月"        =>   ["目標前移動-战","バックジャンプ遠","バックジャンプ遠","待機(固定)","刀攻撃下4","雷霆半月","30",
  2425.                         "刀攻撃下5","雷霆半月2","毁灭剑气5","対象アニメウエイト","50",
  2426.                         "雷霆半月3","対象アニメ","15","対象アニメ","10","対象アニメ","10","対象アニメ","30",
  2427.                         "20","コラプス許可","後退リセット-战"],
  2428.                         
  2429.   "湮灭冲刺"           => ["一歩前移動","一歩前移動","湮灭冲刺","突刺攻击-真3","35",
  2430.                           "目標前高速移動","湮灭冲刺2","突刺攻击-真2","対象アニメ","30","対象アニメウエイト",
  2431.                           "コラプス許可","後退リセット-战"],
  2432.                           
  2433.   "愤怒中的绝望"      => ["一歩前移動","一歩前移動","勝利待機","愤怒中的绝望","50","怒吼","愤怒中的绝望2","対象アニメ","35",
  2434.                           "コラプス許可","後退リセット"],
  2435.                           
  2436.   "致命砍击"        =>  ["破碎十字3","刀攻撃下6",
  2437.                         "目標前移動","致命斩击","刀攻撃下","対象アニメ","50",
  2438.                         "コラプス許可","後退リセット"],
  2439.                         
  2440.   "光能重箭"      => ["目標前移動4","弓矢攻撃","光能重箭","25",
  2441.                       "対象アニメウエイト","15","コラプス許可","10","座標リセット"],
  2442.                           
  2443.   "光能散箭"       => ["バックジャンプ","待機(固定)","弓矢攻撃","光能散箭","10",
  2444.                       "対象アニメ","10","対象アニメ","25","コラプス許可","10","座標リセット"],
  2445.                      
  2446.   "魔化冰箭"       => ["バックジャンプ","待機(固定)","弓矢攻撃","魔化冰箭","20","魔化冰箭2","25","待機(固定)",
  2447.                       "対象アニメウエイト","15","コラプス許可","10","座標リセット"],

  2448.   "光能突击射"   =>   ["待機(固定)","弓矢攻撃","光能突袭箭","15",
  2449.                       "対象アニメウエイト","バックジャンプ",
  2450.                       "弓矢攻撃","光能突袭箭","22","対象アニメウエイト",
  2451.                       "弓矢攻撃","光能突袭箭","22","対象アニメウエイト",
  2452.                       "弓矢攻撃","光能突袭箭","22","対象アニメウエイト",
  2453.                       "弓矢攻撃","光能突袭箭","22","対象アニメウエイト",
  2454.                       "弓矢攻撃","光能突袭箭","22","対象アニメウエイト",
  2455.                       "コラプス許可","12","座標リセット"],
  2456.                      
  2457.   "突袭光箭"       => ["残像ON","前ジャンプ叩き","バックジャンプ遠","一歩後ジャンプ","バックジャンプ遠","弓矢攻撃","高压光箭2","15",
  2458.                       "高压光箭","10","対象アニメ","40",
  2459.                       "コラプス許可","10","座標リセット"],
  2460.                      
  2461.   "极速背射"      =>     ["残像ON","バックジャンプ遠","待機(固定)","弓矢攻撃3","极速背射",
  2462.                           "対象アニメ","15","极速背射","対象アニメ","15",
  2463.                           "极速背射2","対象アニメ","15","极速背射3","対象アニメ","15",
  2464.                           "极速背射","対象アニメ","15","极速背射2","対象アニメ","15",
  2465.                           "极速背射3","対象アニメ","15","极速背射","対象アニメ","15",
  2466.                           "极速背射2","対象アニメ","15","极速背射3","対象アニメ","15",
  2467.                           "极速背射","対象アニメ","15","极速背射2","対象アニメ","15",
  2468.                           "极速背射3","対象アニメ","15","极速背射","対象アニメ","15","残像OFF",
  2469.                           "极速背射4","60",
  2470.                           "コラプス許可","12","座標リセット",],
  2471.                           
  2472. "多重天空射"    => ["バックジャンプ遠反","弓矢攻撃2","多重突袭7","30","多重突袭","70",
  2473.                     "多重突袭2","対象アニメウエイト","20","多重突袭3","対象アニメウエイト","20",
  2474.                     "多重突袭4","対象アニメウエイト","20","多重突袭5","対象アニメウエイト","20",
  2475.                     "多重突袭6","対象アニメウエイト","20","多重突袭4","対象アニメウエイト","20",
  2476.                     "多重突袭2","対象アニメウエイト","20","多重突袭3","対象アニメウエイト","20",
  2477.                     "多重突袭4","対象アニメウエイト","20","多重突袭2","対象アニメウエイト","20",
  2478.                     "コラプス許可","10","座標リセット"],
  2479.                     
  2480.   "天空神箭"       => ["目標前移動4","待機(固定)","弓矢攻撃","天空神箭2","70",
  2481.                       "天空神箭3","70","天空神箭",
  2482.                       "対象アニメ","10","対象アニメ","10","対象アニメ","10","対象アニメ","50",
  2483.                       "コラプス許可","10","座標リセット"],
  2484.                      
  2485.   "能源补充"       => ["一歩前移動","弓矢攻撃3","能源补充","対象アニメ","50",
  2486.                       "コラプス許可","10","座標リセット"],
  2487.                      
  2488.   "极度脑残"        => ["一歩前移動","魔法詠唱","魔法挥舞","极度脑残","対象アニメウエイト",
  2489.                         "50","コラプス許可","後退リセット"],
  2490.                         
  2491.   "星辰的裁决"      => ["目標前移動-战","突き攻撃","星辰的裁决","対象アニメウエイト",
  2492.                         "コラプス許可","後退リセット-战"],
  2493.                         
  2494.   "雷霆十字斩"   => ["破碎十字3","刀攻撃下6","15",
  2495.                     "目標前移動-战","刀攻撃下","雷霆十字斩","対象アニメ","5",
  2496.                     "武器振り攻撃","雷霆十字斩2","対象アニメ","20","バックジャンプ",
  2497.                     "刀攻撃下","雷霆十字斩3","雷霆十字斩4","対象アニメ","10","雷霆十字斩4","対象アニメ","10",
  2498.                     "雷霆十字斩4","対象アニメ","30",
  2499.                     "コラプス許可","10","座標リセット-战"],
  2500.                     
  2501.   "穿梭光剑"      =>     ["穿梭光剑","25","残像ON","目標前高速移動",
  2502.                           "刀攻撃下","穿梭光剑2","対象アニメ","5",
  2503.                           "目標前高速移動","刀攻撃下","穿梭光剑2","対象アニメ","2",
  2504.                           "目標前高速移動","刀攻撃下","穿梭光剑3","対象アニメ","2",
  2505.                           "目標前高速移動","刀攻撃下","穿梭光剑4","対象アニメ","2",
  2506.                           "目標前高速移動","刀攻撃下","穿梭光剑2","対象アニメ","2",
  2507.                           "目標前高速移動","刀攻撃下","穿梭光剑4","対象アニメ","2",
  2508.                           "目標前高速移動","刀攻撃下","穿梭光剑3","対象アニメ","2",
  2509.                           "目標前高速移動","刀攻撃下","穿梭光剑2","対象アニメ","30",
  2510.                           "バックジャンプ遠",
  2511.                           "コラプス許可","座標リセット-战","残像OFF",],
  2512.                           
  2513.   "湮灭圣剑"  =>  ["残像ON","目標前移動4","待機(固定)",
  2514.                   "湮灭圣剑2","刀攻撃下3","30","湮灭圣剑","25",
  2515.                   "対象アニメ","30","対象アニメ","30","対象アニメ","50",
  2516.                   "コラプス許可","10","座標リセット","残像OFF",],
  2517.                   
  2518.   "神圣制裁"        =>  ["一歩前移動","神圣制裁2","魔法詠唱","魔法挥舞","神圣制裁",
  2519.                         "30","対象アニメウエイト","30",
  2520.                         "20","コラプス許可","後退リセット"],
  2521.                         
  2522.   "圣光风暴"        =>  ["一歩前移動","神圣制裁2","魔法詠唱","魔法挥舞","圣光风暴",
  2523.                         "対象アニメウエイト","20","圣光风暴2","対象アニメウエイト","30",
  2524.                         "圣光风暴3","対象アニメウエイト","20",
  2525.                         "20","コラプス許可","後退リセット"],
  2526.                         
  2527.   "士气呐喊"        =>  ["一歩前移動","呐喊","士气呐喊","対象アニメウエイト",
  2528.                         "50","コラプス許可","後退リセット"],
  2529.                         
  2530.   "拯救之手"  =>  ["移动目标身后2","10","魔法始動アニメ","魔法詠唱","24","待機(固定)",
  2531.                   "拯救之手","30","対象アニメウエイト","コラプス許可","10","座標リセット"],
  2532.                   
  2533.   "灰烬燃烧"        =>  ["目標前移動-法","灰烬燃烧改","魔法詠唱","挥拳2","灰烬燃烧改2","対象アニメウエイト",
  2534.                         "40","コラプス許可","後退リセット-法"],
  2535.                      
  2536.   "烈焰灰烬"        =>  ["目標前移動4","强化火法阵","魔法詠唱","魔法挥舞2","烈焰灰烬",
  2537.                         "35","流星2","対象アニメウエイト",
  2538.                         "40","コラプス許可","後退リセット-法"],
  2539.                         
  2540.   "熔岩地带"    => ["目標前移動4","强化火法阵2","魔法詠唱","魔法挥舞2",
  2541.                   "熔岩地带","35","対象アニメ","15","対象アニメ","15","対象アニメ","15",
  2542.                   "対象アニメ","50",
  2543.                   "20","コラプス許可","10","座標リセット-法"],
  2544.                   
  2545.   "烈焰天罚"   => ["目標前移動4","烈焰天罚启动","魔法詠唱","魔法挥舞",
  2546.                   "烈焰天罚4","25","烈焰天罚","対象アニメウエイト",
  2547.                   "魔法挥舞","烈焰天罚5","25","烈焰天罚2","対象アニメウエイト",
  2548.                   "魔法挥舞","烈焰天罚6","25","烈焰天罚3","対象アニメウエイト",
  2549.                   "待機(固定)","20","コラプス許可","10","座標リセット-法"],
  2550.                   
  2551.   "地狱火柱"   => ["目標前移動4","烈焰天罚启动","魔法詠唱","魔法挥舞2",
  2552.                   "地狱火柱","15","対象アニメ","15","対象アニメ","15","対象アニメ",
  2553.                   "15","対象アニメ","15","対象アニメ","15","対象アニメ","15","対象アニメ",
  2554.                   "15","対象アニメ","30",
  2555.                   "待機(固定)","20","コラプス許可","10","座標リセット-法"],
  2556.                   
  2557.   "魔化冰剑"        => ["バックジャンプ-法","强化水法阵","魔法詠唱","魔法挥舞2","魔化冰剑","10","対象アニメウエイト",
  2558.                         "30","コラプス許可","後退リセット-法"],
  2559.                         
  2560.   "急冻炸弹"        => ["目標前移動4","强化水法阵","魔法詠唱","魔法挥舞2","急冻炸弹","対象アニメウエイト",
  2561.                         "20","コラプス許可","後退リセット-法"],
  2562.                         
  2563.   "急冻冰刺"        => ["目標前移動4","强化水法阵2","魔法詠唱","魔法挥舞2","急冻冰刺","15",
  2564.                         "挥拳2","80","急冻冰刺2","50","対象アニメウエイト","30",
  2565.                         "コラプス許可","後退リセット-法"],
  2566.                         
  2567.   "零度空间"   => ["目標前移動4","零度空间启动","魔法詠唱","魔法挥舞2",
  2568.                   "零度空间","70","零度空间2","対象アニメ","15","対象アニメ","15","対象アニメ",
  2569.                   "15","対象アニメ","15","対象アニメ","15","対象アニメ","15","対象アニメ",
  2570.                   "15","対象アニメ","15","対象アニメ","15","対象アニメ","30",
  2571.                   "待機(固定)","20","コラプス許可","10","座標リセット-法"],
  2572.                   
  2573.   "痛恨一击"      => ["目標前移動-战","刀攻撃下","対象アニメウエイト",
  2574.                       "コラプス許可","後退リセット-战"],
  2575.                      
  2576.   "地裂斩"        =>["待機(固定)","勝利のジャンプ","武器振り攻撃","真空碎","30",
  2577.                     "対象アニメウエイト",
  2578.                     "コラプス許可","10","座標リセット-战"],
  2579.                     
  2580.   "半月锤"        => ["刀攻撃下6","半月锤2","25",
  2581.                       "目標前移動-战","刀攻撃下11","半月锤","8","対象アニメ","40",
  2582.                       "半月锤3","対象アニメ","35",
  2583.                       "コラプス許可","バックジャンプ","後退リセット-战"],
  2584.                      
  2585.   "神圣粉碎"  => ["熔岩锤2","刀攻撃下6","20",
  2586.                  "前ジャンプ叩き4","5","神圣粉碎","対象アニメ","40",
  2587.                  "神圣粉碎2","灰烬粉碎击中","対象アニメ","60",
  2588.                  "コラプス許可","後退リセット-战"],
  2589.                   
  2590.   "天罚"           => ["目標前移動-战","刀攻撃下","対象アニメ武器","15",
  2591.                       "刀攻撃下11","半月锤","8","対象アニメ","20",
  2592.                       "バックジャンプ","刀攻撃下","天罚","対象アニメ","15",
  2593.                       "対象アニメ","15","対象アニメ","30",
  2594.                       "コラプス許可","後退リセット-战"],
  2595.                      
  2596.   "雷电惩处"  =>     ["一歩前移動","魔法始動アニメ","魔法詠唱","24","対象アニメ","15",
  2597.                       "対象アニメ","15","対象アニメ","15",
  2598.                      "コラプス許可","10","座標リセット"],
  2599.                      
  2600.   "粉碎冲撞"       => ["一歩後移動","一歩後移動","15","粉碎冲撞","目標前高速移動3",
  2601.                       "対象アニメウエイト","15",
  2602.                       "コラプス許可","10","座標リセット"],
  2603.                      
  2604.   "地震咆哮"       => ["一歩前移動","一歩前移動","地震咆哮","15",
  2605.                       "地震咆哮2","10","対象アニメウエイト","15",
  2606.                       "コラプス許可","10","座標リセット"],
  2607.                      
  2608.   "神圣痛击"      => ["刀攻撃下6","神圣痛击2","25",
  2609.                       "目標前移動-战","神圣痛击","刀攻撃下","対象アニメウエイト",
  2610.                       "コラプス許可","後退リセット-战"],
  2611.                      
  2612.   "幻月粉碎"      => ["刀攻撃下6","幻月粉碎2","30",
  2613.                       "目標前移動-战","刀攻撃下11","幻月粉碎","8","対象アニメ","5","対象アニメ","5",
  2614.                       "対象アニメ","40","灰烬粉碎击中","対象アニメ","35",
  2615.                       "コラプス許可","バックジャンプ","後退リセット-战"],
  2616.                      
  2617.   "审判雷暴"      => ["目標前移動-战","刀攻撃下11","审判雷暴4","8","灰烬粉碎击中","対象アニメ","20",
  2618.                       "バックジャンプ遠","刀攻撃下","审判雷暴5","20","审判雷暴","対象アニメ","10",
  2619.                       "审判雷暴","対象アニメ","10","审判雷暴","対象アニメ","10","审判雷暴","対象アニメ","10",
  2620.                       "审判雷暴","対象アニメ","10","审判雷暴","対象アニメ","10","审判雷暴","対象アニメ","20",
  2621.                       "コラプス許可","後退リセット-战"],
  2622.                      
  2623.   "圣光湮灭"  => ["刀攻撃下6","圣光湮灭","70",
  2624.                  "前ジャンプ叩き4","5","圣光湮灭2","対象アニメ","40",
  2625.                  "圣光湮灭3","対象アニメ","50",
  2626.                  "バックジャンプ遠","刀攻撃下","圣光湮灭4","対象アニメ","20","対象アニメ","20","対象アニメ","35",
  2627.                  "コラプス許可","後退リセット-战"],
  2628.                  
  2629.    "小刀"              => ["目標前移動-战","突刺攻击-真","突刺攻击-真2","対象アニメウエイト",
  2630.                           "コラプス許可","後退リセット-战"],
  2631.                           
  2632.   "强力投掷"       => ["目標前移動-战","バックジャンプ遠","强力投掷","投掷姿势2",
  2633.                       "対象アニメウエイト",
  2634.                       "コラプス許可","10","座標リセット"],
  2635.                      
  2636.   "闪电投掷"       => ["目標前移動-战","バックジャンプ遠","バックジャンプ遠",
  2637.                       "投掷姿势","闪电投掷","対象アニメウエイト",
  2638.                       "コラプス許可","10","座標リセット"],
  2639.                   
  2640.   "星辰破裂"       => ["目標前移動-战","バックジャンプ遠","バックジャンプ遠",
  2641.                       "星辰破裂","投掷姿势3","対象アニメウエイト",
  2642.                       "コラプス許可","10","座標リセット"],
  2643.                      
  2644.   "暗杀"      =>          ["バックジャンプ","暗杀","魔法詠唱","10","目標前高速移動","暗杀2","反転","バックジャンプ遠反","一歩前ジャンプ",
  2645.                           "突刺攻击-真","暗杀3","突刺攻击-真2","対象アニメウエイト","反転",
  2646.                           "バックジャンプ遠","一歩後ジャンプ","残像OFF",
  2647.                           "コラプス許可","12","座標リセット"],
  2648.                           
  2649.   "夺命背击"      =>     ["背射3","残像ON","目標前高速移動","反転","バックジャンプ遠反","一歩前ジャンプ",
  2650.                           "突刺攻击-真","夺命背击","突刺攻击-真2","夺命背击5","対象アニメ","20","反転",
  2651.                           "夺命背击3","空中投掷","夺命背击7","対象アニメ","残像OFF","20",
  2652.                           "コラプス許可","12","座標リセット",],
  2653.                           
  2654.   "无影之刃"      =>     ["バックジャンプ","暗杀","魔法詠唱","10","目標前高速移動",
  2655.                           "待機(固定)","残像ON","无影之刃","40","无影之刃2","対象アニメ",
  2656.                           "变身BUG","変身解除","无影之刃3","高空刺","无影之刃4","対象アニメ","50",
  2657.                           "コラプス許可","12","座標リセット"],
  2658.                           
  2659.   "机械毒刃"      =>      ["バックジャンプ","机械毒刃","召唤毒刃","机械毒刃2","目標前移動",
  2660.                           "机械毒刃3","毒刃动作","対象アニメウエイト",
  2661.                           "コラプス許可","12","座標リセット"],
  2662.                           
  2663.   "强化暗杀"      =>      ["バックジャンプ","强化暗杀","魔法詠唱","待機(固定)","30","目標前高速移動",
  2664.                           "强化暗杀2","反転","バックジャンプ遠反","一歩前ジャンプ","一歩前ジャンプ",
  2665.                           "强化暗杀3","刀攻撃下","夺命背击5","対象アニメウエイト","25",
  2666.                           "高空刺2","强化暗杀6","対象アニメ","30","强化暗杀4","反転",
  2667.                           "バックジャンプ遠","一歩後ジャンプ","座標リセット",
  2668.                           "召唤毒刃","强化暗杀5","対象アニメ","50","残像OFF",
  2669.                           "コラプス許可","12"],
  2670.                           
  2671.   "机械毁灭"      =>     ["背射3","残像ON","目標前高速移動","反転","一歩前ジャンプ","机械毁灭","バックジャンプ遠反3",
  2672.                           "机械毁灭5","対象アニメ","20","反転",
  2673.                           "机械毁灭2","空中投掷2","机械毁灭3","机械毁灭4","対象アニメ","10",
  2674.                           "机械毁灭4","対象アニメ","10","机械毁灭4","対象アニメ","10",
  2675.                           "机械毁灭4","対象アニメ","10","机械毁灭4","対象アニメ","10",
  2676.                           "机械毁灭4","対象アニメ","10","空白","机械毁灭6","110","机械毁灭7",
  2677.                           "対象アニメ","16","対象アニメ","16","対象アニメ","15","变身BUG","変身解除4",
  2678.                           "コラプス許可","12","座標リセット",],
  2679.                           
  2680.   "无影轰炸"      =>     ["バックジャンプ","无影轰炸5","魔法詠唱","待機(固定)","30","目標前高速移動",
  2681.                           "空白","待機(固定)","残像ON","无影轰炸","40","无影之刃2","対象アニメ","30",
  2682.                           "无影轰炸2","130","无影轰炸4","対象アニメ","15","対象アニメ","85",
  2683.                           "变身BUG","変身解除4",
  2684.                           "コラプス許可","12","座標リセット"],
  2685.                           
  2686.   "重力球2"  =>      ["一歩前移動","魔法始動アニメ","魔法詠唱","24","重力球2","25","対象アニメ","35",
  2687.                     "コラプス許可","10","座標リセット"],
  2688.                     
  2689.   "重力球3"  =>      ["一歩前移動","魔法始動アニメ","魔法詠唱","24","金属重压","35","対象アニメ","80",
  2690.                     "コラプス許可","10","座標リセット"],
  2691.                     
  2692.   "时间屏障"            => ["バックジャンプ","魔法始動アニメ","魔法詠唱","时间屏障","25","対象アニメウエイト","30",
  2693.                           "コラプス許可","後退リセット"],
  2694.                           
  2695.   "爆发"             => ["10","挥拳3","対象アニメウエイト",
  2696.                         "20","コラプス許可","後退リセット-法"],
  2697.                         
  2698.   "召唤流星"    => ["目標前移動4","流星启动","魔法詠唱","40",
  2699.                   "巨大流星","40","対象アニメウエイト","50",
  2700.                   "待機(固定)","20","コラプス許可","10","座標リセット-法"],
  2701.                   
  2702.   "灰烬之雨"    => ["目標前移動4","待機(固定)","灰烬之雨2","魔法詠唱","70","灰烬之雨",
  2703.                     "30","対象アニメ","40","対象アニメ","20","対象アニメ","20","対象アニメ",
  2704.                     "58","対象アニメ","40",
  2705.                     "コラプス許可","10","座標リセット-法"],
  2706.                     
  2707.   "墓地炸弹"   => ["残像ON","一歩前移動","10","墓地炸弹","70","墓地炸弹2",
  2708.                  "対象アニメ","50","残像OFF",
  2709.                  "コラプス許可","後退リセット"],
  2710.                  
  2711.   "死亡墓碑"   => ["残像ON","一歩前移動","10","死亡墓碑","40",
  2712.                  "対象アニメ","40","残像OFF",
  2713.                  "コラプス許可","後退リセット"],
  2714.                  
  2715.   "无影光剑-2"      =>     ["一闪3","20","残像ON","目標前高速移動5","3",
  2716.                           "一闪","対象アニメ","刀攻撃下12","70",
  2717.                           "一闪2","5","対象アニメウエイト","30",
  2718.                           "コラプス許可","座標リセット-战","残像OFF",],
  2719.                           
  2720.   "黑色抹杀"      => ["残像ON","目標前移動4",
  2721.                       "待機(固定)","弓矢攻撃","黑色抹杀","80","黑色抹杀2",
  2722.                       "対象アニメウエイト","40",
  2723.                       "残像OFF","コラプス許可","10","座標リセット"],
  2724.                      
  2725.   "重力雨"        => ["目標前移動4","待機(固定)","黑魔法3","魔法詠唱","魔法挥舞","10","重力雨",
  2726.                     "50","重力雨2","90","重力雨3","対象アニメ","20","対象アニメ","20",
  2727.                     "対象アニメ","20","対象アニメ","20","対象アニメ","20",
  2728.                     "対象アニメ","20","対象アニメ","40",
  2729.                     "コラプス許可","10","座標リセット-法"],
  2730.                     
  2731.   "魔法爆破"          => ["异次元","目標前移動4","歼灭之炎"],
  2732.                           
  2733.   "强力穿甲弹"         => ["バックジャンプ","10","强力穿甲弹","20","銃で攻撃8-8","40","対象アニメウエイト","30",
  2734.                           "コラプス許可","後退リセット"],
  2735.                           
  2736.   "炎龙碎"    => ["バックジャンプ","炎龙碎","刀攻撃下6","25",
  2737.                  "炎龙碎2","前ジャンプ叩き5","5","炎龙碎3","対象アニメ","50",
  2738.                  "コラプス許可","バックジャンプ","後退リセット-战"],
  2739.                           
  2740. #-------------------------------------------------------------------------------
  2741.   "終了"              => ["終了"]}
  2742. end
  2743. ##==============================================================================
  2744. # ■ Game_Actor
  2745. #------------------------------------------------------------------------------
  2746. #  アクターごとに基本アクションを指定します
  2747. #==============================================================================
  2748. class Game_Actor < Game_Battler
  2749.   #--------------------------------------------------------------------------
  2750.   # ● アクターIDから素手(武器なし)時のアクションを決めます
  2751.   #--------------------------------------------------------------------------
  2752.   # when 1 ←この数字がアクターID
  2753.   # return "通常攻撃" ←対応する通しアクション名を入れてください
  2754.   def non_weapon
  2755.     case @actor_id
  2756.     when 1
  2757.       return "通常攻撃"
  2758.     end
  2759.     # 上記のアクターID以外すべてに適用されるアクション
  2760.     return "通常攻撃"
  2761.   end
  2762.   #--------------------------------------------------------------------------
  2763.   # ● 通常待機
  2764.   #--------------------------------------------------------------------------
  2765.   def normal
  2766.     case @actor_id
  2767.     when 1
  2768.       return "待機"
  2769.     when 4,5,12
  2770.       return "待機3"
  2771.     end
  2772.     # 上記のアクターID以外すべてに適用されるアクション
  2773.     return "待機"
  2774.   end
  2775.   #--------------------------------------------------------------------------
  2776.   # ● ピンチ(HP1/4以下)
  2777.   #--------------------------------------------------------------------------
  2778.   def pinch
  2779.     case @actor_id
  2780.     when 1
  2781.       return "ピンチ待機"
  2782.     when 4,5,12
  2783.       return "ピンチ待機-法"
  2784.     end
  2785.     # 上記のアクターID以外すべてに適用されるアクション
  2786.     return "ピンチ待機"
  2787.   end
  2788.   #--------------------------------------------------------------------------
  2789.   # ● 防御
  2790.   #--------------------------------------------------------------------------
  2791.   def defence
  2792.     case @actor_id
  2793.     when 1
  2794.       return "防御"
  2795.     when 4,5,12
  2796.       return "防御-法"
  2797.     end
  2798.     # 上記のアクターID以外すべてに適用されるアクション
  2799.     return "防御"
  2800.   end
  2801.   #--------------------------------------------------------------------------
  2802.   # ● ダメージ 対象アニメ時、ヒットしていればこのアクションを取ります
  2803.   #--------------------------------------------------------------------------
  2804.   def damage_hit
  2805.     case @actor_id
  2806.     when 2,6,10
  2807.       return "ダメージ凯兰"
  2808.     when 1,7,9,3,8,11
  2809.       return "ダメージ亚特"
  2810.     when 4,5,12
  2811.       return "ダメージ丽娜"
  2812.     end
  2813.     # 上記のアクターID以外すべてに適用されるアクション
  2814.     return "ダメージ"
  2815.   end  
  2816.   #--------------------------------------------------------------------------
  2817.   # ● 回避 対象アニメ時、ヒットしていなければこのアクションを取ります
  2818.   #--------------------------------------------------------------------------
  2819.   def evasion
  2820.     case @actor_id
  2821.     when 1
  2822.       return "回避"
  2823.     when 4,5,12
  2824.       return "回避-法"
  2825.     end
  2826.     # 上記のアクターID以外すべてに適用されるアクション
  2827.     return "回避"
  2828.   end  
  2829.   #--------------------------------------------------------------------------
  2830.   # ● コマンド入力前動作
  2831.   #--------------------------------------------------------------------------
  2832.   def command_b
  2833.     case @actor_id
  2834.     when 1
  2835.       return "コマンド入力"
  2836.     when 4,5,12
  2837.       return "コマンド入力-法"
  2838.     end
  2839.     # 上記のアクターID以外すべてに適用されるアクション
  2840.     return "コマンド入力"
  2841.   end
  2842.   #--------------------------------------------------------------------------
  2843.   # ● コマンド入力後動作
  2844.   #--------------------------------------------------------------------------
  2845.   def command_a
  2846.     case @actor_id
  2847.     when 1
  2848.       return "コマンド入力後"
  2849.     when 4,5,12
  2850.       return "コマンド入力後-法"
  2851.     end
  2852.     # 上記のアクターID以外すべてに適用されるアクション
  2853.     return "コマンド入力後"
  2854.   end
  2855.   #--------------------------------------------------------------------------
  2856.   # ● 逃走成功
  2857.   #--------------------------------------------------------------------------
  2858.   def run_success
  2859.     case @actor_id
  2860.     when 1
  2861.       return "逃走"
  2862.     end
  2863.     # 上記のアクターID以外すべてに適用されるアクション
  2864.     return "逃走"
  2865.   end
  2866.   #--------------------------------------------------------------------------
  2867.   # ● 逃走失敗
  2868.   #--------------------------------------------------------------------------
  2869.   def run_ng
  2870.     case @actor_id
  2871.     when 1
  2872.       return "逃走失敗"
  2873.     end
  2874.     # 上記のアクターID以外すべてに適用されるアクション
  2875.     return "逃走失敗"
  2876.   end
  2877.   #--------------------------------------------------------------------------
  2878.   # ● 勝利
  2879.   #--------------------------------------------------------------------------
  2880.   def win
  2881.     case @actor_id
  2882.     when 1
  2883.       return "勝利"
  2884.     end
  2885.     # 上記のアクターID以外すべてに適用されるアクション
  2886.     return "勝利"
  2887.   end
  2888.   #--------------------------------------------------------------------------
  2889.   # ● 戦闘突入時のアクション
  2890.   #--------------------------------------------------------------------------  
  2891.   def first_action
  2892.     case @actor_id
  2893.     when 1
  2894.       return "戦闘開始"
  2895.     when 4,5,12
  2896.       return "戦闘開始-法"
  2897.     end
  2898.     # 上記のアクターID以外すべてに適用されるアクション
  2899.     return "戦闘開始"
  2900.   end
  2901.   #--------------------------------------------------------------------------
  2902.   # ● アクションが中断された場合の復帰アクション
  2903.   #--------------------------------------------------------------------------  
  2904.   def recover_action
  2905.     case @actor_id
  2906.     when 1
  2907.       return "座標復帰"
  2908.     end
  2909.     # 上記のアクターID以外すべてに適用されるアクション
  2910.     return "座標復帰"
  2911.   end
  2912.   #--------------------------------------------------------------------------
  2913.   # ● 影グラフィック  キャラクターフォルダから参照
  2914.   #--------------------------------------------------------------------------
  2915.   # return "shadow00" ←指定する画像ファイル名を入れてください
  2916.   def shadow
  2917.     case @actor_id
  2918.     when 13,14,15
  2919.       return "shadow02"
  2920.     end
  2921.     # 上記のアクターID以外すべてに適用される影グラフィック
  2922.     return "shadow00"
  2923.   end
  2924.   #--------------------------------------------------------------------------
  2925.   # ● 影グラフィックの位置を微調整
  2926.   #--------------------------------------------------------------------------
  2927.   # return [横座標, 縦座標]
  2928.   def shadow_plus
  2929.     case @actor_id
  2930.     when 1
  2931.       return [ 0, 4]
  2932.     end
  2933.     # 上記のアクターID以外すべてに適用される位置
  2934.     return [ 0, 4]
  2935.   end
  2936. end
  2937. #==============================================================================
  2938. # ■ Game_Enemy
  2939. #------------------------------------------------------------------------------
  2940. #  エネミーの基本アクション指定
  2941. #==============================================================================
  2942. class Game_Enemy < Game_Battler
  2943.   #--------------------------------------------------------------------------
  2944.   # ● エネミーIDから武器設定なしの通常攻撃アクションを決めます
  2945.   #--------------------------------------------------------------------------
  2946.   # when 1 ←この数字がエネミーID
  2947.   # return "敵武器なし攻撃" ←対応する通しアクション名を入れてください
  2948.   def base_action
  2949.     case @enemy_id
  2950.     when 1
  2951.       return ""
  2952.     end
  2953.     # 上記のエネミーID以外すべてに適用されるアクション
  2954.     return "敵武器なし攻撃"
  2955.   end
  2956.   #--------------------------------------------------------------------------
  2957.   # ● 通常待機
  2958.   #--------------------------------------------------------------------------
  2959.   def normal
  2960.     case @enemy_id
  2961.     when 1
  2962.       return "待機"
  2963.     end
  2964.     # 上記のエネミーID以外すべてに適用されるアクション
  2965.     return "待機"
  2966.   end
  2967.   #--------------------------------------------------------------------------
  2968.   # ● ピンチ(HP1/4以下)
  2969.   #--------------------------------------------------------------------------
  2970.   def pinch
  2971.     case @enemy_id
  2972.     when 1
  2973.       return "待機"
  2974.     end
  2975.     # 上記のエネミーID以外すべてに適用されるアクション
  2976.     return "待機"
  2977.   end
  2978.   #--------------------------------------------------------------------------
  2979.   # ● 防御
  2980.   #--------------------------------------------------------------------------  
  2981.   def defence
  2982.     case @enemy_id
  2983.     when 1
  2984.       return "防御"
  2985.     end
  2986.     # 上記のエネミーID以外すべてに適用されるアクション
  2987.     return "防御"
  2988.   end
  2989.   #--------------------------------------------------------------------------
  2990.   # ● ダメージ 対象アニメ時、ヒットしていればこのアクションを取ります
  2991.   #--------------------------------------------------------------------------
  2992.   def damage_hit
  2993.     case @enemy_id
  2994.     when 1
  2995.       return "ダメージ"
  2996.     end
  2997.     # 上記のエネミーID以外すべてに適用されるアクション
  2998.     return "ダメージ"
  2999.   end
  3000.   #--------------------------------------------------------------------------
  3001.   # ● 回避 対象アニメ時、ヒットしてなければこのアクションを取ります
  3002.   #--------------------------------------------------------------------------
  3003.   def evasion
  3004.     case @enemy_id
  3005.     when 1
  3006.       return "エネミー回避"
  3007.     end
  3008.     # 上記のエネミーID以外すべてに適用されるアクション
  3009.     return "エネミー回避"
  3010.   end
  3011.   #--------------------------------------------------------------------------
  3012.   # ● 逃走
  3013.   #--------------------------------------------------------------------------
  3014.   def run_success
  3015.     case @enemy_id
  3016.     when 1
  3017.       return "エネミー逃走"
  3018.     end
  3019.     # 上記のエネミーID以外すべてに適用されるアクション
  3020.     return "エネミー逃走"
  3021.   end
  3022.   #--------------------------------------------------------------------------
  3023.   # ● 戦闘突入時のアクション
  3024.   #--------------------------------------------------------------------------  
  3025.   def first_action
  3026.     case @enemy_id
  3027.     when 1
  3028.       return "戦闘開始"
  3029.     end
  3030.     # 上記のエネミーID以外すべてに適用されるアクション
  3031.     return "戦闘開始"
  3032.   end
  3033.   #--------------------------------------------------------------------------
  3034.   # ● アクションが中断された場合の復帰アクション
  3035.   #--------------------------------------------------------------------------  
  3036.   def recover_action
  3037.     case @enemy_id
  3038.     when 1
  3039.       return "座標復帰"
  3040.     end
  3041.     # 上記のエネミーID以外すべてに適用されるアクション
  3042.     return "座標復帰"
  3043.   end
  3044.   #--------------------------------------------------------------------------
  3045.   # ● 影グラフィック  キャラクターフォルダから参照
  3046.   #--------------------------------------------------------------------------
  3047.   # return "shadow01" ←指定する画像ファイル名を入れてください。
  3048.   def shadow
  3049.     case @enemy_id
  3050.     when 1
  3051.       return ""
  3052.     end
  3053.     # 上記のエネミーID以外すべてに適用される影グラフィック
  3054.     return ""
  3055.   end
  3056.   #--------------------------------------------------------------------------
  3057.   # ● 影グラフィックの位置を微調整
  3058.   #--------------------------------------------------------------------------
  3059.   # return [横座標, 縦座標]
  3060.   def shadow_plus
  3061.     case @enemy_id
  3062.     when 1
  3063.       return [ 0, -8]
  3064.     end
  3065.     # 上記のエネミーID以外すべてに適用される位置
  3066.     return [ 0, 0]
  3067.   end
  3068.   #--------------------------------------------------------------------------
  3069.   # ● エネミー武器設定  アクションとアニメは武器のものに反映されます
  3070.   #--------------------------------------------------------------------------
  3071.   # return 1 ←この数字が武器ID。0にすると素手扱いになります。
  3072.   #            エネミーアニメをONにしていると画像も表示されます。
  3073.   def weapon
  3074.     case @enemy_id
  3075.     when 1
  3076.       return 88
  3077.     when 2
  3078.       return 89
  3079.     when 3
  3080.       return 88
  3081.     when 4
  3082.       return 90
  3083.     when 10
  3084.       return 87
  3085.     when 11
  3086.       return 87      
  3087.     when 12
  3088.       return 87
  3089.     when 13
  3090.       return 87
  3091.     when 14
  3092.       return 87
  3093.     when 15
  3094.       return 96
  3095.     when 16
  3096.       return 97
  3097.     when 18
  3098.       return 102
  3099.     when 19
  3100.       return 103
  3101.     when 20
  3102.       return 104
  3103.     when 22,23,24
  3104.       return 112
  3105.     when 25
  3106.       return 113
  3107.     when 5
  3108.       return 166
  3109.     when 6
  3110.       return 167
  3111.     when 7
  3112.       return 169
  3113.     when 8
  3114.       return 170
  3115.     when 26
  3116.       return 174
  3117.     when 27
  3118.       return 175
  3119.     end
  3120.     # 上記のエネミーID以外すべてに適用される武器ID
  3121.     return 0
  3122.   end
  3123.   #--------------------------------------------------------------------------
  3124.   # ● 戦闘配置の微調整  データベースで設定できない広範囲の座標はここで調整
  3125.   #--------------------------------------------------------------------------
  3126.   # return [ 0, 0] => [X座標、Y座標] この数値分データベース上の配置から変化します
  3127.   def position_plus
  3128.     case @enemy_id
  3129.     when 1
  3130.       return [0, 0]
  3131.     end
  3132.     # 上記のエネミーID以外すべてに適用される座標調整
  3133.     return [ 0, 0]
  3134.   end
  3135.   #--------------------------------------------------------------------------
  3136.   # ● エネミーのコラプス(撃破時の退場)タイプ
  3137.   #--------------------------------------------------------------------------
  3138.   # コラプスさせずに残すなら1、ノーマルタイプは2、ボスタイプは3
  3139.   def collapse_type
  3140.     case @enemy_id
  3141.     when 4,15,16,24,25,8,26,27
  3142.       return 3
  3143.     end
  3144.     # 上記のエネミーID以外すべてに適用されるコラプス
  3145.     return 2
  3146.   end
  3147.   #--------------------------------------------------------------------------
  3148.   # ● エネミー行動回数 1ターンに何回行動するか
  3149.   #--------------------------------------------------------------------------
  3150.   #        回数  確率  補正               
  3151.   # return [  2, 100,  50]                       
  3152.   #                        
  3153.   # 回数…最大行動回数
  3154.   # 確率…次の行動を取る確率。数値は%
  3155.   # 補正…素早さ補正。行動するたびにこの数値%分素早さが低下
  3156.   def action_time
  3157.     case @enemy_id
  3158.     when 105
  3159.       return [ 2, 100, 100]

  3160.     end
  3161.     # 上記のエネミーID以外すべてに適用される行動回数
  3162.     return [ 1, 100, 100]
  3163.   end
  3164.   #--------------------------------------------------------------------------
  3165.   # ● エネミーアニメ
  3166.   #--------------------------------------------------------------------------
  3167.   # エネミーにアニメさせるか trueにするとアクターと同等の扱いになります。
  3168.   # [設定方法]
  3169.   # 1.エネミーのアニメ画像をキャラクターフォルダに用意
  3170.   # 2.データベースのエネミーバトラーファイル名を、参照するキャラファイル名にする
  3171.   def anime_on
  3172.     case @enemy_id
  3173.     when 999
  3174.       return true
  3175.     end
  3176.     # 上記のエネミーID以外すべてに適用されるアニメ設定
  3177.     return false
  3178.   end
  3179.   #--------------------------------------------------------------------------
  3180.   # ● エネミーアニメ時の自動反転
  3181.   #--------------------------------------------------------------------------
  3182.   # 上のアニメがONになっているエネミーの画像や武器アニメを自動反転させるならtrue
  3183.   def action_mirror
  3184.     case @enemy_id
  3185.     when 999
  3186.       return true
  3187.     end
  3188.     # 上記のエネミーID以外すべてに適用されるアニメ設定
  3189.     return false
  3190.   end
  3191. end
  3192. module RPG
  3193. #==============================================================================
  3194. # ■ module RPG
  3195. #------------------------------------------------------------------------------
  3196. #  ステートアクション設定です。
  3197. #==============================================================================
  3198. class State
  3199. #--------------------------------------------------------------------------
  3200. # ● ID指定 ステートによって通常待機、ピンチのアクションが変わります。
  3201. #--------------------------------------------------------------------------
  3202. # when 1 ←この数字がステートID
  3203. # return "気絶" ←対応する通しアクション名を入れてください
  3204.   def base_action
  3205.     case @id
  3206.     when 1  # 戦闘不能(HP0)時です。最優先で選択されます
  3207.       return "気絶"
  3208.     when 3,7,5
  3209.       return "状態異常待機"
  3210.     when 6  
  3211.       return "睡眠待機"
  3212.     when 9   
  3213.       return "烧伤待机"
  3214.     when 8  
  3215.       return "眩晕待机"
  3216.     when 5
  3217.       return "眩晕待机"
  3218.     when 10
  3219.       return "出血待机"
  3220.     when 11
  3221.       return "冰冻待机"
  3222.     when 2,25,57
  3223.       return "中毒待机"
  3224.     when 4
  3225.       return "无语待机"
  3226.     when 17
  3227.       return "恢复待机"
  3228.     when 47
  3229.       return "恢复待机"
  3230.     when 18
  3231.       return "恢复待机2"
  3232.     when 23
  3233.       return "裁决之力-状态"
  3234.     when 24
  3235.       return "魔法反射"
  3236.     when 30
  3237.       return "血之代价待机"
  3238.     when 31
  3239.       return "时间收割待机"
  3240.     when 33
  3241.       return "怒火燃烧-待机"
  3242.     when 38
  3243.       return "怒绝-待机"
  3244.     when 42
  3245.       return "能源补充-待机"
  3246.     when 43
  3247.       return "极度脑残-待机"
  3248.     when 46
  3249.       return "力量反射-待机"
  3250.     when 58
  3251.       return "时间屏障待机"
  3252.     when 59
  3253.       return "愤怒待机"
  3254.     end
  3255.     # 上記IDのステート以外すべてに適用される通しアクション
  3256.     return "待機"
  3257.   end
  3258. #--------------------------------------------------------------------------
  3259. # ● 拡張設定 ステートIDから拡張設定を決めます。重複可能。
  3260. #--------------------------------------------------------------------------
  3261. # "自動復活/50"…戦闘不能時に自動で復帰。戦闘不能付与で解除されない設定にすること。
  3262. #                /の後ろの数字は復帰時のHP(最大値からの割合%)復帰後ステートは自動解除される
  3263. # "魔法反射/39"…魔法(物理攻撃以外)スキルを反射。/の後に反射時のアニメIDを入れる
  3264. # "物理反射/39"…物理攻撃(スキル含む)を反射。/の後に反射時のアニメIDを入れる
  3265. # "魔法無効/39"…魔法(物理攻撃以外)スキルを無効化。/の後に無効時のアニメIDを入れる
  3266. # "物理無効/39"…物理攻撃(スキル含む)を無効化。/の後に無効時のアニメIDを入れる
  3267. # "コスト吸収"…受けたスキルのコストを自身に還元。数値はPOPしません
  3268. # "0ターン解除"…行動順にかかわらずそのターンでステートを解除
  3269. # "エネミー除外"…エネミーに取らせたくないステートアクション
  3270. # "POPなし"…ステート付加時、ダメージウインドウにステート名を表示しない
  3271. # "アイコン非表示"…ステータスウインドウにステートアイコンを表示しない
  3272. # "ステートアクション禁止"…ステートが付加しても待機アクションに反映させない
  3273. # "スリップダメージ"…下のスリップダメージ設定を適用させます
  3274. # "なし"…拡張なし
  3275.   def extension
  3276.     case @id
  3277.     when 1  # 戦闘不能
  3278.       return ["POPなし","エネミー除外"]
  3279.     when 2   # 毒
  3280.       return ["スリップダメージ"]
  3281.     when 10  # 出血
  3282.       return ["スリップダメージ"]
  3283.     when 9  # 烧伤
  3284.       return ["スリップダメージ"]
  3285.     when 25,57  # 剧毒
  3286.       return ["スリップダメージ"]
  3287.     when 44  # リフレクション
  3288.       return ["魔法反射/93"]
  3289.     when 50  # MP1%回復
  3290.       return ["POPなし","スリップダメージ"]
  3291.     when 51  # MP2%回復
  3292.       return ["POPなし","スリップダメージ"]
  3293.     when 52  # MP3%回復
  3294.       return ["POPなし","スリップダメージ"]
  3295.     when 53  # MP4%回復
  3296.       return ["POPなし","スリップダメージ"]
  3297.     when 54  # MP5%回復
  3298.       return ["POPなし","スリップダメージ"]
  3299.     when 55  # MP6%回復
  3300.       return ["POPなし","スリップダメージ"]
  3301.     when 38  # MP无限
  3302.       return ["スリップダメージ"]
  3303.     when 27  # 能源消耗
  3304.       return ["スリップダメージ"]
  3305.     when 29  # 持续出血
  3306.       return ["スリップダメージ"]
  3307.     when 30  # 血之代价
  3308.       return ["スリップダメージ"]
  3309.     when 42  # 能源补充
  3310.       return ["スリップダメージ"]
  3311.     when 17  # HMコンバータ
  3312.       return ["スリップダメージ"]
  3313.     when 47  # HMコンバータ
  3314.       return ["スリップダメージ"]
  3315.     when 62  # MHコンバータ
  3316.       return ["スリップダメージ"]
  3317.     when 52  # 魔法填充
  3318.       return ["スリップダメージ"]
  3319.     when 16  # 完美防御
  3320.       return ["魔法無効/297","物理無効/297"]
  3321.     when 18  # 神恩
  3322.       return ["魔法無効/297","物理無効/297","スリップダメージ"]
  3323.     when 22  # 魔法镜面
  3324.       return ["魔法無効/396"]
  3325.     when 24  # 强魔法镜面
  3326.       return ["魔法反射/450"]
  3327.     when 46  # 强物理镜面
  3328.       return ["物理反射/674"]
  3329.     end
  3330.     # 上記のID以外すべてに適用される拡張設定
  3331.     return ["なし"]
  3332.   end
  3333. #--------------------------------------------------------------------------
  3334. # ● スリップダメージ拡張設定 スリップ回復も含まれます
  3335. #--------------------------------------------------------------------------
  3336. # when 1 ←この数字がステートID。上で"スリップダメージ"が付いている時のみ有効
  3337. #      複数の設定も反映可。例)[["hp",0,5,true],["mp",0,5,true]]
  3338. #                           
  3339. #         対象  定数  割合  POP  戦闘不能許可
  3340. # return [["hp",    0,  10, true,  true]]
  3341. #
  3342. # 対象…スリップダメージ対象が HPなら"hp" MPなら"mp"
  3343. # 定数…この数値がそのままダメージ。マイナスなら回復。数値は多少分散します
  3344. # 割合…対象の最大値の割合でダメージ。数値は%。定数と足し算され多少分散します
  3345. # POP…戦闘画面で数値をPOPさせるならtrue
  3346. # 戦闘不能許可…HP0を許可するならtrue
  3347.   def slip_extension
  3348.     case @id
  3349.     when 2  # 毒
  3350.       return [["hp", 0, 1, true, true]]
  3351.     when 10  # 出血
  3352.       return [["hp", 0, 2, true, true]]
  3353.     when 9  # 烧伤
  3354.       return [["hp", 0, 1, true, true]]
  3355.     when 17  # 恢复
  3356.       return [["hp", 0, -5, true, true]]  
  3357.     when 18  # 恢复2
  3358.       return [["hp", 0, -10, true, true]]
  3359.     when 25,57  # 剧毒
  3360.       return [["hp", 0, 5, true, true]]
  3361.     when 27  # 消能
  3362.       return [["mp", 0, 15, true, true]]
  3363.     when 29  # 持续出血
  3364.       return [["hp", 0, 5, true, true]]
  3365.     when 30  # 血之代价
  3366.       return [["hp", 0, 10, true, true]]
  3367.     when 38,52  # mp无限
  3368.       return [["mp", 0, -100, true, true]]
  3369.     when 42  # 能源补充
  3370.       return [["mp", 0, -20, true, true]]
  3371.     when 47  # 强化治愈
  3372.       return [["hp", 0, -7, true, true]]
  3373.     end
  3374.     return []
  3375.   end
  3376. end
  3377. #==============================================================================
  3378. # ■ module RPG
  3379. #------------------------------------------------------------------------------
  3380. #  武器アクション設定です。
  3381. #==============================================================================
  3382. class Weapon
  3383. #--------------------------------------------------------------------------
  3384. # ● アクション指定 装備している武器のIDから通常攻撃のアクションを決めます。
  3385. #--------------------------------------------------------------------------
  3386. # when 1 ←この数字が武器ID
  3387. # return "通常攻撃" ←対応する通しアクション名を入れてください
  3388.   def base_action
  3389.     case @id
  3390.     when 1,9,10,11,12,13,14,15,16,2,18,19,20,21,22,23,24,25,78,79,80,81,82,83,84,85,93,98,105
  3391.       return "刀攻撃"
  3392.     when 115,116,117,118,133,134,135,136,144,156,157,158,159,181,182,**,184,185,186,187,**
  3393.       return "刀攻撃"
  3394.     when 190,191,192,193,194,195,196,197
  3395.       return "刀攻撃"
  3396.     when 3,27,28,29,30,31,32,33,34
  3397.       return "弓箭"
  3398.     when 92,108,151,152,153,154
  3399.       return "枪攻击"   
  3400.     when 94
  3401.       return "十字刀攻撃"  
  3402.     when 95,107
  3403.       return "钝器"
  3404.     when 99,111
  3405.       return "光箭攻击"  
  3406.     when 5,36,37,38,39,40,41,42,43,106,109,124,125,126,127,168,178,179
  3407.       return "小刀"
  3408.     end
  3409.     # 上記のID以外すべてに適用されるアクション
  3410.     return "通常攻撃"
  3411.   end
  3412. #--------------------------------------------------------------------------
  3413. # ● グラフィック指定 装備している武器のIDから武器グラフィックを指定します
  3414. #--------------------------------------------------------------------------
  3415. # return "001-Weapon01" ←対応する武器グラフィックのファイル名を入れてください
  3416. #                         武器グラフィックはキャラクターフォルダに入れてください
  3417. # アイコンを利用する場合、IDにないものは全てアイコン画像を利用します
  3418. # 特定の武器を非表示にしたい場合は空の画像を用意して、それを指定します
  3419.   def graphic
  3420.     case @id
  3421.     when 178
  3422.       return "毒刺[强化1]"
  3423.     when 179
  3424.       return "毒刺[强化2]"
  3425.     when 181
  3426.       return "天空骑士的陨星之泣"
  3427.     when 182
  3428.       return "天空骑士的陨星之泣[强化1]"
  3429.     when **
  3430.       return "天空骑士的陨星之泣[强化1]"
  3431.     when 184
  3432.       return "天空骑士的陨星之泣[强化2]"
  3433.     when 185
  3434.       return "天空骑士的陨星之泣[强化2]"
  3435.     when 186
  3436.       return "天空骑士的陨星之泣[强化3]"
  3437.     when 187
  3438.       return "天空骑士的陨星之泣[强化3]"
  3439.     when **
  3440.       return "天空骑士的陨星之泣[强化4]"
  3441.     when 190
  3442.       return "天空骑士的巨人突击刃"
  3443.     when 191
  3444.       return "天空骑士的巨人突击刃[强化1]"
  3445.     when 192
  3446.       return "天空骑士的巨人突击刃[强化1]"
  3447.     when 193
  3448.       return "天空骑士的巨人突击刃[强化2]"
  3449.     when 194
  3450.       return "天空骑士的巨人突击刃[强化2]"
  3451.     when 195
  3452.       return "天空骑士的巨人突击刃[强化3]"
  3453.     when 196
  3454.       return "天空骑士的巨人突击刃[强化3]"
  3455.     when 197
  3456.       return "天空骑士的巨人突击刃[强化4]"
  3457.     end
  3458.     # 上記ID以外は全てアイコン画像を利用
  3459.     return ""
  3460.   end
  3461. #--------------------------------------------------------------------------
  3462. # ● 飛ばしアニメに貼り付ける武器グラフィック キャラクターフォルダを参照します
  3463. #--------------------------------------------------------------------------
  3464. # アニメ飛ばし用の武器画像は上の設定とは別に指定。弓と矢の表現などに。
  3465. # ここで設定しなかった武器は上の画像と同じになります。
  3466.   def flying_graphic
  3467.     case @id
  3468.     when 999
  3469.       return "毒刺[强化3]"
  3470.     end
  3471.     # 上記ID以外は全て上の画像を利用
  3472.     return ""
  3473.   end
  3474. end  
  3475. #==============================================================================
  3476. # ■ module RPG
  3477. #------------------------------------------------------------------------------
  3478. #  スキルアクション設定です。
  3479. #==============================================================================
  3480. class Skill
  3481. #--------------------------------------------------------------------------
  3482. # ● スキルIDからアクションを決めます。
  3483. #--------------------------------------------------------------------------  
  3484.   def base_action
  3485.     case @id
  3486.     when 2
  3487.       return "突刺2"
  3488.     when 1
  3489.       return "重击"
  3490.     when 3
  3491.       return "突袭"
  3492.     when 4
  3493.       return "直线冲刺"
  3494.     when 5
  3495.       return "毁灭残影"
  3496.     when 6
  3497.       return "炎龙碎"
  3498.     when 7
  3499.       return "半月斩"
  3500.     when 8
  3501.       return "毁灭冲刺"
  3502.     when 9
  3503.       return "魔法2"
  3504.     when 17
  3505.       return "重箭"
  3506.     when 18
  3507.       return "散箭"
  3508.     when 19
  3509.       return "冰箭"
  3510.     when 20
  3511.       return "突击射"
  3512.     when 21
  3513.       return "光箭"
  3514.     when 22
  3515.       return "背射"
  3516.     when 23
  3517.       return "天空射"
  3518.     when 24
  3519.       return "震荡箭"
  3520.     when 25
  3521.       return "魔法2"
  3522.     when 33
  3523.       return "突刺"
  3524.     when 34
  3525.       return "治愈"
  3526.     when 179
  3527.       return "治愈"
  3528.     when 35
  3529.       return "爆裂冲击"
  3530.     when 36
  3531.       return "完美防御"
  3532.     when 180
  3533.       return "完美防御"
  3534.     when 37
  3535.       return "无影光剑"
  3536.     when 38
  3537.       return "治愈2"
  3538.     when 181
  3539.       return "治愈2"
  3540.     when 39
  3541.       return "圣剑"
  3542.     when 40
  3543.       return "神恩"
  3544.     when 182
  3545.       return "神恩"
  3546.     when 41
  3547.       return "魔法2"
  3548.     when 49
  3549.       return "燃烧"
  3550.     when 50
  3551.       return "烧尽"
  3552.     when 51
  3553.       return "高温射线"
  3554.     when 52
  3555.       return "召唤流星"
  3556.     when 53
  3557.       return "冰剑"
  3558.     when 54
  3559.       return "冰魄"
  3560.     when 55
  3561.       return "绞杀冰剑"
  3562.     when 56
  3563.       return "寒冰审判"
  3564.     when 57
  3565.       return "魔法2-法"
  3566.     when 58
  3567.       return "魔法重击"
  3568.     when 62
  3569.       return "魔法2-法"
  3570.     when 69
  3571.       return "召唤岩石"
  3572.     when 70
  3573.       return "连击/敌"
  3574.     when 71
  3575.       return "重击/敌"
  3576.     when 72
  3577.       return "重击/敌2"
  3578.     when 74
  3579.       return "范围黑洞"
  3580.     when 75
  3581.       return "重力爆炸"
  3582.     when 76
  3583.       return "次元裂缝"
  3584.     when 77
  3585.       return "凝点压缩"
  3586.     when 78
  3587.       return "混沌之枪"
  3588.     when 79
  3589.       return "黑雷击"
  3590.     when 80
  3591.       return "地狱惩罚"
  3592.     when 81
  3593.       return "重力雨"
  3594.     when 83
  3595.       return "魔法2"
  3596.     when 84
  3597.       return "剧毒地带"
  3598.     when 86
  3599.       return "命运裁决"
  3600.     when 87
  3601.       return "高速背射"
  3602.     when 88
  3603.       return "魔光穿甲弹"
  3604.     when 89
  3605.       return "其卡斯之怒"
  3606.     when 90
  3607.       return "精确射击"
  3608.     when 91
  3609.       return "榴弹发射"
  3610.     when 92
  3611.       return "毒蛇追踪炮"
  3612.     when 93
  3613.       return "混沌轰炸"
  3614.     when 94
  3615.       return "魔法爆破"
  3616.     when 95
  3617.       return "强力穿甲弹"
  3618.     when 96
  3619.       return "更换弹夹"
  3620.     when 97
  3621.       return "更换弹夹2"
  3622.     when 101
  3623.       return "魔光瞬斩"
  3624.     when 102
  3625.       return "破碎十字"
  3626.     when 103
  3627.       return "毁灭气息"
  3628.     when 104
  3629.       return "湮灭神剑"
  3630.     when 105
  3631.       return "重力爆破"
  3632.     when 107
  3633.       return "重力回旋"
  3634.     when 106
  3635.       return "毁灭石像"
  3636.     when 108
  3637.       return "重力引爆"
  3638.     when 109
  3639.       return "灵毁"
  3640.     when 110
  3641.       return "血之代价"
  3642.     when 111
  3643.       return "魔法2"
  3644.     when 112
  3645.       return "时间收割"
  3646.     when 115
  3647.       return "粉碎"
  3648.     when 116
  3649.       return "雷霆一击"
  3650.     when 117
  3651.       return "死亡棒球"
  3652.     when 118
  3653.       return "灰烬粉碎"
  3654.     when 119
  3655.       return "旋转锤"
  3656.     when 120
  3657.       return "熔岩锤"
  3658.     when 121
  3659.       return "范围冲击"
  3660.     when 122
  3661.       return "高速粉碎"
  3662.     when 124
  3663.       return "极度鄙视"
  3664.     when 125
  3665.       return "怒火燃烧"
  3666.     when 129
  3667.       return "自然毁灭"
  3668.     when 130
  3669.       return "撕裂"
  3670.     when 131
  3671.       return "天空怒吼"
  3672.     when 134
  3673.       return "雷霆重击"
  3674.     when 135
  3675.       return "残忍突刺"
  3676.     when 136
  3677.       return "雷霆突袭"
  3678.     when 137
  3679.       return "充电冲刺"
  3680.     when 138
  3681.       return "天空挥舞"
  3682.     when 139
  3683.       return "毁灭剑气"
  3684.     when 140
  3685.       return "雷霆半月"
  3686.     when 141
  3687.       return "湮灭冲刺"
  3688.     when 145
  3689.       return "魔法2"
  3690.     when 146
  3691.       return "魔法2"
  3692.     when 147
  3693.       return "愤怒中的绝望"
  3694.     when 229
  3695.       return "致命砍击"
  3696.     when 150
  3697.       return "光能重箭"
  3698.     when 151
  3699.       return "光能散箭"
  3700.     when 152
  3701.       return "魔化冰箭"
  3702.     when 153
  3703.       return "光能突击射"
  3704.     when 154
  3705.       return "黑色抹杀"
  3706.     when 155
  3707.       return "极速背射"
  3708.     when 156
  3709.       return "多重天空射"
  3710.     when 157
  3711.       return "天空神箭"
  3712.     when 161
  3713.       return "魔法2"
  3714.     when 162
  3715.       return "能源补充"
  3716.     when 163
  3717.       return "极度脑残"
  3718.     when 164
  3719.       return "映月"
  3720.     when 166
  3721.       return "星辰的裁决"
  3722.     when 167
  3723.       return "雷霆十字斩"
  3724.     when 168
  3725.       return "无影光剑-2"
  3726.     when 169
  3727.       return "湮灭圣剑"
  3728.     when 170
  3729.       return "神圣制裁"
  3730.     when 171
  3731.       return "圣光风暴"
  3732.     when 175
  3733.       return "士气呐喊"
  3734.     when 176
  3735.       return "魔法2"
  3736.     when 177
  3737.       return "拯救之手"
  3738.     when 178
  3739.       return "魔法2"
  3740.     when 174
  3741.       return "魔法2"
  3742.     when 184
  3743.       return "灰烬燃烧"
  3744.     when 185
  3745.       return "烈焰灰烬"
  3746.     when 186
  3747.       return "熔岩地带"
  3748.     when 187
  3749.       return "灰烬之雨"
  3750.     when **
  3751.       return "魔化冰剑"
  3752.     when 189
  3753.       return "急冻炸弹"
  3754.     when 190
  3755.       return "急冻冰刺"
  3756.     when 191
  3757.       return "零度空间"
  3758.     when 192
  3759.       return "魔法2"
  3760.     when 195
  3761.       return "魔法2"
  3762.     when 196
  3763.       return "魔法2"
  3764.     when 198
  3765.       return "痛恨一击"
  3766.     when 200
  3767.       return "天罚"
  3768.     when 199
  3769.       return "半月锤"
  3770.     when 201
  3771.       return "神圣粉碎"
  3772.     when 204
  3773.       return "雷电惩处"
  3774.     when 205
  3775.       return "重击/敌3"
  3776.     when 206
  3777.       return "粉碎冲撞"
  3778.     when 207
  3779.       return "地震咆哮"
  3780.     when 209
  3781.       return "神圣痛击"
  3782.     when 210
  3783.       return "幻月粉碎"
  3784.     when 211
  3785.       return "审判雷暴"
  3786.     when 212
  3787.       return "圣光湮灭"
  3788.     when 214
  3789.       return "小刀投掷"
  3790.     when 215
  3791.       return "强力投掷"
  3792.     when 216
  3793.       return "闪电投掷"
  3794.     when 217
  3795.       return "星辰破裂"
  3796.     when 218
  3797.       return "小刀"
  3798.     when 219
  3799.       return "暗杀"
  3800.     when 220
  3801.       return "夺命背击"
  3802.     when 221
  3803.       return "无影之刃"
  3804.     when 223
  3805.       return "机械毒刃"
  3806.     when 224
  3807.       return "强化暗杀"
  3808.     when 225
  3809.       return "机械毁灭"
  3810.     when 226
  3811.       return "无影轰炸"
  3812.     when 237
  3813.       return "重力球2"
  3814.     when 236
  3815.       return "雷电惩处"
  3816.     when 238
  3817.       return "重力球3"
  3818.     when 239,240
  3819.       return "重击/敌3"
  3820.     when 231
  3821.       return "时间屏障"
  3822.     when 242
  3823.       return "爆发"
  3824.     when 243
  3825.       return "墓地炸弹"
  3826.     when 244
  3827.       return "死亡墓碑"
  3828.       end
  3829.     # 上記のID以外すべてに適用されるアクション  
  3830.     return "汎用スキル使用"
  3831.   end
  3832. #--------------------------------------------------------------------------
  3833. # ● 拡張設定 スキルIDから拡張設定を決めます。重複可能。
  3834. #--------------------------------------------------------------------------
  3835. # "必中"…絶対に攻撃が回避されない
  3836. # "HP消費"…MP消費がHP消費に変わる
  3837. # "%コストMAX"…スキルコストが最大MP(HP)からの割合に変化。例)MAXMP500でコスト10だとMP50消費に
  3838. # "%コストNOW"…スキルコストが現在MP(HP)からの割合に変化
  3839. # "反射無視"…魔法・物理スキル反射と無効化ステートを無視する
  3840. # "%ダメージMAX/30"…ダメージ計算が対象の最大HP(MP)からの割合に変化。/から後の数値%分ダメージ
  3841. # "%ダメージNOW/30"…ダメージ計算が対象の現在HP(MP)からの割合に変化。/から後の数値%分ダメージ
  3842. # "コスト威力"…使用者の最大MP(HP)に対する消費MP(HP)の割合で威力が変化。MAX消費でそのままの威力、MAXの10%で威力1/10
  3843. # "現HP威力"…使用者の最大HPに対する現在HPの割合で威力が変化。MAXでそのままの威力、MAXの10%で威力1/10
  3844. # "現MP威力"…使用者の最大MPに対する現在MPの割合で威力が変化。MAXでそのままの威力、MAXの10%で威力1/10
  3845. # "MP消費半分無効"…防具オプション「MP消費半分」を無効化
  3846. # "ヘルプ非表示"…アクション時、ヘルプウインドウにスキル名を表示しない
  3847. # "全域"…ターゲット範囲が敵味方全体に
  3848. # "ランダムターゲット"…ターゲット内から一体をランダムで選ぶように
  3849. # "自分以外"…ターゲット内から自分を除く
  3850. # "ダメージアクション禁止"…ダメージを与えた際のアクションを取らせない
  3851. # "行動前フラッシュなし"…行動時にバトラーを光らせない
  3852. # "なし"…拡張なし
  3853.   def extension
  3854.     case @id
  3855.     when 90
  3856.       return ["必中"]
  3857.     when 224
  3858.       return ["必中"]
  3859.     when 41,57,40,25,34,36,38,40,62,81,83
  3860.       return ["反射無視"]
  3861.     when 96,97,110,111,112,124,125,145,146,147,161,162,174,175,176,177,178,179,180,181,182
  3862.       return ["反射無視"]
  3863.     when 3
  3864.       return ["ランダムターゲット"]
  3865.     when 5
  3866.       return ["ランダムターゲット"]
  3867.     when 20
  3868.       return ["ランダムターゲット"]
  3869.     when 37
  3870.       return ["ランダムターゲット"]
  3871.     when 48
  3872.       return ["ランダムターゲット"]
  3873.     when 70
  3874.       return ["ランダムターゲット"]
  3875.     when 79
  3876.       return ["ランダムターゲット"]
  3877.     when 86
  3878.       return ["ランダムターゲット"]
  3879.     when 88
  3880.       return ["ランダムターゲット"]
  3881.     when 89
  3882.       return ["ランダムターゲット"]
  3883.     when 104
  3884.       return ["ランダムターゲット"]
  3885.     when 106
  3886.       return ["ランダムターゲット"]
  3887.     when 122
  3888.       return ["ランダムターゲット"]
  3889.     when 130
  3890.       return ["ランダムターゲット"]
  3891.     when 136
  3892.       return ["ランダムターゲット"]
  3893.     when 138
  3894.       return ["ランダムターゲット"]
  3895.     when 153
  3896.       return ["ランダムターゲット"]
  3897.     when 155
  3898.       return ["ランダムターゲット"]
  3899.     when 72,94
  3900.       return ["ランダムターゲット"]
  3901.     when 204
  3902.       return ["ランダムターゲット"]
  3903.     when 211
  3904.       return ["ランダムターゲット"]
  3905.     when 233
  3906.       return ["ランダムターゲット"]
  3907.     when 249
  3908.       return ["ランダムターゲット"]
  3909.     when 255
  3910.       return ["ランダムターゲット"]
  3911.     when 262
  3912.       return ["ランダムターゲット"]
  3913.     when 266
  3914.       return ["ランダムターゲット"]
  3915.     when 270,236
  3916.       return ["ランダムターゲット"]
  3917.     when 53,55
  3918.       return ["ダメージアクション禁止"]
  3919.       end
  3920.     # 上記のID以外すべてに適用される拡張設定
  3921.     return ["なし"]
  3922.   end
  3923. #--------------------------------------------------------------------------
  3924. # ● 飛ばしアニメに貼り付ける画像 キャラクターフォルダを参照します
  3925. #--------------------------------------------------------------------------
  3926. # スキルIDで画像を指定
  3927.   def flying_graphic
  3928.     case @id
  3929.     when 999
  3930.       return ""
  3931.     end
  3932.     # 上記ID以外は画像未使用
  3933.     return ""
  3934.   end
  3935. end  
  3936. #==============================================================================
  3937. # ■ module RPG
  3938. #------------------------------------------------------------------------------
  3939. #  アイテムアクション設定です。
  3940. #==============================================================================
  3941. class Item
  3942. #--------------------------------------------------------------------------
  3943. # ● アイテムIDからアクションを決めます。
  3944. #--------------------------------------------------------------------------  
  3945.   def base_action
  3946.     case @id
  3947.     when 1
  3948.       return "アイテム使用"
  3949.     end
  3950.     # 上記のID以外すべてに適用されるアクション
  3951.     return "アイテム使用"
  3952.   end
  3953. #--------------------------------------------------------------------------
  3954. # ● 拡張設定 アイテムIDから拡張設定を決めます。重複可能。
  3955. #--------------------------------------------------------------------------
  3956. # "必中"…絶対に攻撃が回避されない
  3957. # "反射無視"…魔法・物理反射と無効化ステートを無視する
  3958. # "ヘルプ非表示"…ヘルプウインドウにアイテム名を表示しない
  3959. # "全域"…ターゲット範囲が敵味方全体に
  3960. # "ランダムターゲット"…ターゲット内から一体をランダムで選ぶように
  3961. # "自分以外"…ターゲット内から自分を除く
  3962. # "ダメージアクション禁止"…ダメージを与えた際のアクションを取らせない
  3963. # "行動前フラッシュなし"…行動時にバトラーを光らせない
  3964. # "なし"…拡張なし
  3965.   def extension
  3966.     case @id
  3967.     when 1
  3968.       return ["なし"]
  3969.     end
  3970.     # 上記のID以外すべてに適用される拡張設定
  3971.     return ["なし"]
  3972.   end
  3973. end
  3974. end
复制代码
┣ Sideview 1
  1. #==============================================================================
  2. # ■ Sprite_Battler  for Sideview Ver3.3
  3. #------------------------------------------------------------------------------
  4. #  バトラー表示用のスプライトです。
  5. #==============================================================================
  6. class Sprite_Battler < Sprite_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● オブジェクト初期化
  9.   #--------------------------------------------------------------------------
  10.   def initialize(viewport, battler = nil)
  11.     super(viewport)
  12.     [url=home.php?mod=space&uid=133701]@battler[/url] = battler
  13.     @battler_visible = false
  14.     @effect_type = 0                   # エフェクトの種類
  15.     @effect_duration = 0               # エフェクトの残り時間
  16.     @move_x = 0                        # 変化したX座標の累計
  17.     @move_y = 0                        # 変化したY座標の累計
  18.     @move_z = 0                        # 変化したZ座標の累計
  19.     @distanse_x = 0                    # X座標の移動距離
  20.     @distanse_y = 0                    # Y座標の移動距離
  21.     @moving_x = 0                      #1フレームあたりのX座標移動距離
  22.     @moving_y = 0                      #1フレームあたりのY座標移動距離
  23.     @move_speed_x = 0                  # X座標の移動速度
  24.     @move_speed_y = 0                  # Y座標の移動速度
  25.     @move_speed_plus_x = 0             # X座標の加減速時の補足移動速度
  26.     @move_speed_plus_y = 0             # Y座標の加減速時の補足移動速度
  27.     @move_boost_x = 0                  # X座標加速度
  28.     @move_boost_y = 0                  # Y座標加速度
  29.     @jump_time = 0                     # ジャンプ時間
  30.     @jump_time_plus = 0                # ジャンプ時間補足
  31.     @jump_up = 0                       # ジャンプ上昇
  32.     @jump_down = 0                     # ジャンプ下降
  33.     @jump_size = 0                     # ジャンプ高度
  34.     @float_time = 0                    # 浮遊時間
  35.     @float_up = 0                      # 1フレームあたりの浮遊高度
  36.     @jump_plus = 0                     # ジャンプに対する影位置補正
  37.     [url=home.php?mod=space&uid=124954]@Angle[/url] = 0                         # 回転角度
  38.     @angling = 0                       # 1フレームあたりの回転角度
  39.     @angle_time = 0                    # 回転時間
  40.     @angle_reset = 0                   # 角度をリセットするか
  41.     @zoom_x = 0                        # 横の拡大率
  42.     @zoom_y = 0                        # 縦の拡大率
  43.     @zooming_x = 0                     # 1フレームあたりの横拡大率
  44.     @zooming_y = 0                     # 1フレームあたりの縦拡大率
  45.     @zoom_time = 0                     # 拡大時間
  46.     @zoom_reset = 0                    # 拡大をリセットするか
  47.     @target_battler = []               # ターゲットバトラー情報
  48.     @now_targets = []                  # ターゲットバトラー記憶
  49.     @pattern = 0                       # セル横位置(更新位置)
  50.     @pattern_back = false              # リピートフラグ
  51.     [url=home.php?mod=space&uid=36110]@Wait[/url] = 0                          # 次の動作待ち時間
  52.     @unloop_wait = 0                   # 非ループ系アニメ終了時の待ち時間
  53.     @action = []                       # 行動
  54.     @anime_kind = 0                    # セル縦位置(アニメ種類位置)
  55.     @anime_speed = 0                   # セル更新速度
  56.     @frame = 0                         # 消費されるセル更新時間
  57.     @anime_loop = 0                    # ループ方式
  58.     @anime_end = false                 # バトラーのアニメが終わったか
  59.     @anime_freeze = false              # 固定アニメか
  60.     @anime_freeze_kind = false         # 固定するパターン位置
  61.     @anime_moving = false              # 飛ばしアニメ中か
  62.     @base_width = N01::ANIME_PATTERN   # セルの横分割数
  63.     @base_height = N01::ANIME_KIND     # セルの縦分割数
  64.     @width = 0                         # 横矩形
  65.     [url=home.php?mod=space&uid=291977]@height[/url] = 0                        # 縦矩形
  66.     @picture_time = 0                  # ピクチャー表示時間
  67.     @individual_targets = []           # 個別処理の保持ターゲット
  68.     @balloon_duration = 65             # ふきだしアニメ時間
  69.     [url=home.php?mod=space&uid=30269]@reverse[/url] = false                   # アニメ逆転再生フラグ
  70.     # バトラーがいない場合は処理を中断
  71.     return @battler_visible = false if [url=home.php?mod=space&uid=133701]@battler[/url] == nil
  72.     # バトラーがアクターの場合、またはエネミーアニメがオンの場合
  73.     @anime_flug = true if @battler.actor?
  74.     @anime_flug = true if [email protected]? && @battler.anime_on
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● バトラー作成
  78.   #--------------------------------------------------------------------------
  79.   def make_battler
  80.     # 初期配置の取得
  81.     @battler.base_position
  82.     # 色相はバトラーとして認識
  83.     @battler_hue = @battler.battler_hue
  84.     # バトラーがアクターの場合、またはエネミーアニメがオンの場合
  85.     if @anime_flug
  86.       # メイン武器を用意
  87.       @weapon_R = Sprite_Weapon.new(viewport,@battler)
  88.       # 味方はキャラクター名、エネミーはバトラー名を取得
  89.       @battler_name = @battler.character_name if @battler.actor?
  90.       @battler_name = @battler.battler_name unless @battler.actor?
  91.       # エネミー反転がオンの場合、画像を反転させる
  92.       self.mirror = true if [email protected]? && @battler.action_mirror
  93.       # 歩行グラフィックを利用するかどうかで転送元の矩形サイズの認識先を変える
  94.       self.bitmap = Cache.character(@battler_name) if N01::WALK_ANIME
  95.       self.bitmap = Cache.character(@battler_name + "_1") unless N01::WALK_ANIME
  96.       # 転送元の矩形を取得
  97.       @width = self.bitmap.width / @base_width
  98.       [url=home.php?mod=space&uid=291977]@height[/url] = self.bitmap.height / @base_height
  99.       # 矩形を設定
  100.       @sx = @pattern * @width
  101.       @sy = @anime_kind * @height
  102.       # バトラー本体を描画
  103.       self.src_rect.set(@sx, @sy, @width, @height)
  104.     # アニメしないバトラーの場合
  105.     else
  106.       # ビットマップを取得、設定
  107.       @battler_name = @battler.battler_name
  108.       self.bitmap = Cache.battler(@battler_name, @battler_hue)
  109.       @width = bitmap.width
  110.       @height = bitmap.height
  111.     end
  112.     # バックアタック時には画像を反転させる
  113.     if $back_attack && @battler.actor?
  114.       self.mirror = true
  115.     elsif $back_attack && [email protected]?
  116.       self.mirror = true
  117.       self.mirror = false if @battler.action_mirror
  118.     else
  119.       self.mirror = false
  120.       self.mirror = true if [email protected]? && @battler.action_mirror
  121.     end
  122.     # 武器画像に反映
  123.     @weapon_R.mirroring if self.mirror && @weapon_R != nil
  124.     # 位置を初期化
  125.     @battler.reset_coordinate
  126.     # 原点を決定
  127.     self.ox = @width / 2
  128.     self.oy = @height * 2 / 3
  129.     # スプライトの座標を設定
  130.     update_move
  131.     # アニメ飛ばし用スプライトを用意
  132.     @move_anime = Sprite_MoveAnime.new(viewport,battler)
  133.     # ピクチャ用スプライトを用意
  134.     @picture = Sprite.new
  135.     # ダメージスプライト作成
  136.     @damage = Sprite_Damage.new(viewport,battler)
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # ● 影作成
  140.   #--------------------------------------------------------------------------
  141.   def make_shadow
  142.     @shadow.dispose if [url=home.php?mod=space&uid=31758]@Shadow[/url] != nil
  143.     @battler_hue = @battler.battler_hue
  144.     [url=home.php?mod=space&uid=31758]@Shadow[/url] = Sprite.new(viewport)
  145.     @shadow.z = self.z - 4
  146.     @shadow.visible = false
  147.     # バトラーに当てられた影グラフィックを用意
  148.     @shadow.bitmap = Cache.character(@battler.shadow)
  149.     @shadow_height = @shadow.bitmap.height
  150.     # 影位置の微調整用インスタンス
  151.     @shadow_plus_x = @battler.shadow_plus[0] - @width / 2
  152.     @shadow_plus_y = @battler.shadow_plus[1]
  153.     # バトラー画像のサイズに合わせて影画像をリサイズ
  154.     @shadow.zoom_x = @width * 1.0 / @shadow.bitmap.width
  155.     # 更新
  156.     update_shadow
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● 解放
  160.   #--------------------------------------------------------------------------
  161.   def dispose
  162.     self.bitmap.dispose if self.bitmap != nil
  163.     @weapon_R.dispose if @weapon_R != nil
  164.     @move_anime.dispose if @move_anime != nil
  165.     @picture.dispose if @picture != nil
  166.     @shadow.dispose if @shadow != nil
  167.     @damage.dispose if @damage != nil
  168.     @balloon.dispose if @balloon != nil
  169.     mirage_off
  170.     # 画像変更リセット
  171.     @battler.graphic_change(@before_graphic) if @before_graphic != nil
  172.     super
  173.   end  
  174.   #--------------------------------------------------------------------------
  175.   # ● ダメージアクション  action = [アニメID,反転フラグ,リアクション許可]
  176.   #--------------------------------------------------------------------------
  177.   def damage_action(action)
  178.     damage = @battler.hp_damage
  179.     damage = @battler.mp_damage if @battler.mp_damage != 0
  180.     # HPとMP両方同時にダメージがあるなら
  181.     if @battler.hp_damage != 0 && @battler.mp_damage != 0
  182.       @battler.double_damage = true
  183.       damage = @battler.hp_damage
  184.     end  
  185.     # 吸収攻撃でHP0の処理
  186.     if action[0] == "absorb"
  187.       absorb = true
  188.       action[0] = nil
  189.     end
  190.     # ヒットしている時のみアニメ実行
  191.     unless @battler.evaded or @battler.missed or action[0] == nil
  192.       @battler.animation_id = action[0]
  193.       @battler.animation_mirror = action[1]
  194.     end
  195.     # ダメージアクション実行
  196.     start_action(@battler.damage_hit) if damage > 0 && action[2]
  197.     # 攻撃が当たっていない場合は回避アクション実行
  198.     if @battler.evaded or @battler.missed
  199.       start_action(@battler.evasion) if action[2]
  200.       Sound.play_evasion
  201.     end
  202.     @damage.damage_pop unless absorb or action[3] != nil
  203.   end
  204.   #--------------------------------------------------------------------------
  205.   # ● ダメージ数値POP
  206.   #--------------------------------------------------------------------------
  207.   def damage_pop(damage)
  208.     @damage.damage_pop(damage)
  209.   end  
  210.   #--------------------------------------------------------------------------
  211.   # ● 戦闘開始行動
  212.   #--------------------------------------------------------------------------
  213.   def first_action
  214.     # 行動できるかチェックし、できなければそのステートのアクション開始
  215.     action = @battler.first_action unless @battler.restriction >= 4
  216.     action = $data_states[@battler.state_id].base_action if @battler.states[0] != nil && @battler.restriction >= 4
  217.     start_action(action)
  218.     # 影スプライトを用意
  219.     make_shadow if N01::SHADOW
  220.   end
  221.   #--------------------------------------------------------------------------
  222.   # ● アクション開始
  223.   #--------------------------------------------------------------------------
  224.   def start_action(kind)
  225.     # 各種動作を初期化
  226.     reset
  227.     # 現在取っている待機アクションを記憶
  228.     stand_by
  229.     # 新しいアクション内容の決定
  230.     @action = N01::ACTION[kind].dup
  231.     # 行動配列の先頭からシフト
  232.     active = @action.shift
  233.     # 自動で終了を付ける
  234.     @action.push("終了")
  235.     # 現在のアクションを決定
  236.     @active_action = N01::ANIME[active]
  237.     # ウエイト設定
  238.     @wait = active.to_i if @active_action == nil
  239.     # 単発アクション開始
  240.     action
  241.   end
  242.   #--------------------------------------------------------------------------
  243.   # ● 強制単発アクション開始
  244.   #--------------------------------------------------------------------------
  245.   def start_one_action(kind,back)
  246.     # 各種動作を初期化
  247.     reset
  248.     # 現在取っている待機アクションを記憶
  249.     stand_by
  250.     # 座標リセットアクションをセッティング
  251.     @action = [back]
  252.     # 自動で終了を付ける
  253.     @action.push("終了")
  254.     # 現在のアクションを決定
  255.     @active_action = N01::ANIME[kind]
  256.     # 単発アクション開始
  257.     action
  258.   end
  259.   #--------------------------------------------------------------------------
  260.   # ● 次のアクションへ
  261.   #--------------------------------------------------------------------------
  262.   def next_action
  263.     # ウェイト中の場合キャンセル
  264.     return @wait -= 1 if @wait > 0
  265.     # まだ全アニメセルが終了していない場合キャンセル
  266.     return if @anime_end == false
  267.     # 最後のアニメセル表示待ち
  268.     return @unloop_wait -= 1 if @unloop_wait > 0
  269.     # 行動配列の先頭からシフト
  270.     active = @action.shift
  271.     # 現在のアクションを決定
  272.     @active_action = N01::ANIME[active]
  273.     # ウエイト設定
  274.     @wait = active.to_i if @active_action == nil
  275.     # 単発アクション開始
  276.     action
  277.   end
  278.   #--------------------------------------------------------------------------
  279.   # ● 待機アクション
  280.   #--------------------------------------------------------------------------
  281.   def stand_by
  282.     # 通常待機に
  283.     @repeat_action = @battler.normal
  284.     # HPが1/4でピンチモーションに
  285.     @repeat_action = @battler.pinch if @battler.hp <= @battler.maxhp / 4
  286.     # 防御中
  287.     @repeat_action = @battler.defence if @battler.guarding?
  288.     # 何もステートがなければ終了
  289.     return if @battler.state_id == nil
  290.     for state in @battler.states.reverse
  291.       # アクション禁止のステートだったらスキップ
  292.       next if state.extension.include?("ステートアクション禁止")
  293.       # エネミーで禁止されているステートアクションだったらスキップ
  294.       next if @battler.is_a?(Game_Enemy) && state.extension.include?("エネミー除外")
  295.       # ステートのモーションに
  296.       @repeat_action = state.base_action
  297.     end
  298.   end
  299.   #--------------------------------------------------------------------------
  300.   # ● 待機アクションの割り込み
  301.   #--------------------------------------------------------------------------
  302.   def push_stand_by
  303.     action = @battler.normal
  304.     action = @battler.pinch if @battler.hp <= @battler.maxhp / 4
  305.     action = @battler.defence if @battler.guarding?
  306.     for state in @battler.states.reverse
  307.       # アクション禁止のステートだったらスキップ
  308.       next if state.extension.include?("ステートアクション禁止")
  309.       # エネミーで禁止されているステートアクションだったらスキップ
  310.       next if @battler.is_a?(Game_Enemy) && state.extension.include?("エネミー除外")
  311.       # ステートのモーションに
  312.       action = state.base_action
  313.     end
  314.     @repeat_action = action
  315.     # 割り込み
  316.     @action.delete("終了")
  317.     act = N01::ACTION[action].dup
  318.     for i in 0...act.size
  319.       @action.push(act[i])
  320.     end  
  321.     @action.push("終了")
  322.     @anime_end = true
  323.   end
  324.   #--------------------------------------------------------------------------
  325.   # ● 各種変化を初期化
  326.   #--------------------------------------------------------------------------
  327.   def reset
  328.     self.zoom_x = self.zoom_y = 1
  329.     self.oy = @height * 2 / 3
  330.     @angle = self.angle = 0
  331.     @anime_end = true
  332.     @non_repeat = false
  333.     @anime_freeze = false
  334.     @unloop_wait = 0
  335.   end  
  336.   #--------------------------------------------------------------------------
  337.   # ● ジャンプを初期化
  338.   #--------------------------------------------------------------------------
  339.   def jump_reset
  340.     @battler.jump = @jump_time = @jump_time_plus = @jump_up = @jump_down = 0
  341.     @jump_size = @jump_plus = @float_time = @float_up = 0
  342.   end
  343.   #--------------------------------------------------------------------------
  344.   # ● ターゲット情報を受け取る
  345.   #--------------------------------------------------------------------------
  346.   def get_target(target)
  347.     # 個別処理中は中止(全域で自分が巻き込まれた時ターゲット情報が狂わないように)
  348.     return if @battler.individual
  349.     @target_battler = target
  350.   end
  351.   #--------------------------------------------------------------------------
  352.   # ● アクション情報をバトラーに格納
  353.   #--------------------------------------------------------------------------
  354.   def send_action(action)
  355.     @battler.play = 0
  356.     @battler.play = action if @battler.active
  357.   end
  358.   #--------------------------------------------------------------------------
  359.   # ● バトラー追加
  360.   #--------------------------------------------------------------------------
  361.   def battler_join
  362.     if @battler.exist? && !@battler_visible
  363.       # 戦闘不能からの復活なら処理をスキップ
  364.       if @battler.revival && @anime_flug
  365.         return @battler.revival = false
  366.       elsif @battler.revival && !@anime_flug
  367.         @battler.revival = false
  368.         self.visible = true
  369.         return
  370.       end
  371.       @anime_flug = true if @battler.actor?
  372.       @anime_flug = true if [email protected]? && @battler.anime_on
  373.       make_battler
  374.       first_action
  375.     end
  376.   end
  377.   #--------------------------------------------------------------------------
  378.   # ● フレーム更新 ※再定義
  379.   #--------------------------------------------------------------------------
  380.   def update
  381.     super
  382.     # バトラーがいない場合スキップ
  383.     return self.bitmap = nil if @battler == nil
  384.     # バトラー追加
  385.     battler_join
  386.     # 次のアクションへ
  387.     next_action
  388.     # アニメパターン更新
  389.     update_anime_pattern
  390.     # ターゲット更新
  391.     update_target
  392.     # 強制アクション更新
  393.     update_force_action
  394.     # 座標更新
  395.     update_move
  396.     # 影更新
  397.     update_shadow if @shadow != nil
  398.     # 武器更新
  399.     @weapon_R.update if @weapon_action
  400.     # 浮遊更新
  401.     update_float if @float_time > 0
  402.     # 回転更新
  403.     update_angle if @angle_time > 0
  404.     # 拡大縮小更新
  405.     update_zoom if @zoom_time > 0
  406.     # 残像更新
  407.     update_mirage if @mirage_flug
  408.     # ピクチャ更新
  409.     update_picture if @picture_time > 0
  410.     # アニメ飛ばし更新
  411.     update_move_anime if @anime_moving
  412.     # ふきだしアニメ更新
  413.     update_balloon if @balloon_duration <= 64
  414.     # ダメージスプライト更新
  415.     @damage.update if @damage != nil
  416.     setup_new_effect
  417.     update_effect
  418.     update_battler_bitmap
  419.   end
  420.   #--------------------------------------------------------------------------
  421.   # ● アニメパターン更新
  422.   #--------------------------------------------------------------------------
  423.   def update_anime_pattern
  424.     # 更新時間がくるまでスキップ
  425.     return @frame -= 1 if @frame != 0
  426.     # 必要な時だけ武器アニメ更新
  427.     @weapon_R.action if @weapon_action && @weapon_R != nil
  428.     # アニメのコマが最後まで到達したらリピート方法をチェック
  429.     if @pattern_back
  430.       # 往復ループ
  431.       if @anime_loop == 0
  432.         # 逆転再生
  433.         if @reverse
  434.           @pattern += 1
  435.           if @pattern == @base_width - 1
  436.             @pattern_back = false
  437.             @anime_end = true
  438.           end
  439.         # 通常再生
  440.         else  
  441.           @pattern -= 1
  442.           if @pattern == 0
  443.             @pattern_back = false
  444.             @anime_end = true
  445.           end  
  446.         end  
  447.       # 片道ループもしくはループしない
  448.       else
  449.         @anime_end = true
  450.         if @anime_loop == 1
  451.           @pattern = 0 if !@reverse
  452.           @pattern = @base_width - 1 if @reverse
  453.           @pattern_back = false
  454.         end  
  455.       end  
  456.     # アニメのコマを進める   
  457.     else
  458.       if @reverse
  459.         @pattern -= 1
  460.         @pattern_back = true if @pattern == 0
  461.       else  
  462.         @pattern += 1
  463.         @pattern_back = true if @pattern == @base_width - 1
  464.       end  
  465.     end
  466.     # 更新時間を初期化
  467.     @frame = @anime_speed
  468.     # アニメ固定の場合は横矩形を固定
  469.     return if @anime_freeze
  470.     # 転送元の矩形を設定
  471.     return unless @anime_flug
  472.     @sx = @pattern * @width
  473.     @sy = @anime_kind * @height
  474.     self.src_rect.set(@sx, @sy, @width, @height)
  475.   end
  476.   #--------------------------------------------------------------------------
  477.   # ● ターゲット更新 action = ["N01target_change",ターゲット情報]
  478.   #--------------------------------------------------------------------------
  479.   def update_target
  480.     # ターゲットチェック
  481.     return if @battler.force_target == 0
  482.     # 個別処理中は中止(全域で自分が巻き込まれた時ターゲット情報が狂わないように)
  483.     return if @battler.individual
  484.     @target_battler = @battler.force_target[1]
  485.     @battler.force_target = 0
  486.   end  
  487.   #--------------------------------------------------------------------------
  488.   # ● 強制アクション更新 action = [識別,復帰,実行するアクション]
  489.   #--------------------------------------------------------------------------
  490.   def update_force_action
  491.     # 強制アクションチェック
  492.     action = @battler.force_action
  493.     return if action == 0
  494.     @battler.force_action = 0
  495.     # アクティブ中は割り込ませない
  496.     return if @battler.active
  497.     # コラプスならそのまま行動に直結
  498.     return collapse_action if action[0] == "N01collapse"
  499.     # 単発ならそのまま行動に直結
  500.     return start_one_action(action[2],action[1]) if action[0] == "単発"
  501.     # 通しはアクションとして扱う
  502.     start_action(action[2])
  503.     # 座標復帰の有無
  504.     return if action[1] == ""
  505.     # 終了位置を入れ替えて復帰アクションを入れる
  506.     @action.delete("終了")
  507.     @action.push(action[1])
  508.     @action.push("終了")
  509.   end   
  510.   #--------------------------------------------------------------------------
  511.   # ● 座標更新
  512.   #--------------------------------------------------------------------------
  513.   def update_move
  514.     # 加減速で出る距離の増減を補完
  515.     if @move_speed_plus_x > 0
  516.       # 移動計算
  517.       @move_x += @moving_x
  518.       # 移動を実行
  519.       @battler.move_x = @move_x
  520.       @move_speed_plus_x -= 1
  521.     elsif @move_speed_x > 0
  522.       # 加速の場合
  523.       if @move_boost_x != 0
  524.         @moving_x += @move_boost_x
  525.       end  
  526.       # 移動計算
  527.       @move_x += @moving_x
  528.       # 移動を実行
  529.       @battler.move_x = @move_x
  530.       @move_speed_x -= 1
  531.     end
  532.     # 加減速で出る距離の増減を補完
  533.     if @move_speed_plus_y > 0
  534.       # 移動計算
  535.       @move_y += @moving_y
  536.       # 移動を実行
  537.       @battler.move_y = @move_y
  538.       @move_speed_plus_y -= 1
  539.     elsif @move_speed_y > 0
  540.       # 加速の場合
  541.       if @move_boost_y != 0
  542.         @moving_y += @move_boost_y
  543.       end  
  544.       # 移動計算
  545.       @move_y += @moving_y
  546.       # 移動を実行
  547.       @battler.move_y = @move_y
  548.       @move_speed_y -= 1
  549.     end
  550.     # ジャンプ上昇
  551.     if @jump_up != 0
  552.       # 移動計算
  553.       @jump_plus += @jump_up
  554.       # 移動を実行
  555.       @battler.jump = @jump_plus
  556.       @jump_up = @jump_up / 2
  557.       @jump_time -= 1
  558.       # ジャンプが頂点に達したら
  559.       if @jump_time == 0 or @jump_up == @jump_sign
  560.         @jump_down = @jump_up * 2 * @jump_sign * @jump_sign2
  561.         @jump_time_plus += @jump_time * 2
  562.         @jump_up = 0
  563.         return
  564.       end  
  565.     end  
  566.     # ジャンプ下降
  567.     if @jump_down != 0
  568.       if @jump_time_plus != 0
  569.         @jump_time_plus -= 1
  570.       elsif @jump_down != @jump_size
  571.         # 移動計算
  572.         @jump_plus += @jump_down
  573.         # 移動を実行
  574.         @battler.jump = @jump_plus
  575.         @jump_down = @jump_down * 2
  576.         if @jump_down == @jump_size
  577.           if @jump_flug
  578.             @jump_flug = false
  579.           else
  580.             # 移動計算
  581.             @jump_plus += @jump_down
  582.             # 移動を実行
  583.             @battler.jump = @jump_plus
  584.             @jump_down = @jump_size = 0
  585.           end
  586.         end  
  587.       end
  588.     end
  589.     # スプライトの座標を設定
  590.     self.x = @battler.position_x
  591.     self.y = @battler.position_y
  592.     self.z = @battler.position_z
  593.   end
  594.   #--------------------------------------------------------------------------
  595.   # ● 影更新
  596.   #--------------------------------------------------------------------------
  597.   def update_shadow
  598.     @shadow.opacity = self.opacity
  599.     @shadow.x = @battler.position_x + @shadow_plus_x
  600.     @shadow.y = @battler.position_y + @shadow_plus_y - @jump_plus
  601.     @shadow.z = @battler.position_z - 4
  602.   end
  603.   #--------------------------------------------------------------------------
  604.   # ● 浮遊更新
  605.   #--------------------------------------------------------------------------
  606.   def update_float
  607.     @float_time -= 1
  608.     @jump_plus += @float_up
  609.     @battler.jump = @jump_plus
  610.   end   
  611.   #--------------------------------------------------------------------------
  612.   # ● 回転更新
  613.   #--------------------------------------------------------------------------
  614.   def update_angle
  615.     # 回転実行
  616.     @angle += @angling
  617.     self.angle = @angle
  618.     @angle_time -= 1
  619.     # 回転時間がなくなったら項目をリセット
  620.     return @angle = 0 if @angle_time == 0
  621.     # 復帰フラグがあれば角度を0に戻す
  622.     self.angle = 0 if @angle_reset
  623.   end  
  624.   #--------------------------------------------------------------------------
  625.   # ● 拡大縮小更新
  626.   #--------------------------------------------------------------------------
  627.   def update_zoom
  628.     # 拡大縮小実行
  629.     @zoom_x += @zooming_x
  630.     @zoom_y += @zooming_y
  631.     self.zoom_x = @zoom_x
  632.     self.zoom_y = @zoom_y
  633.     @zoom_time -= 1
  634.     # 拡大縮小時間がなくなったら項目をリセット
  635.     return if @zoom_time != 0
  636.     @zoom_x = @zoom_y = 0
  637.     self.oy = @height * 2 / 3
  638.     # 復帰フラグがあれば戻す
  639.     self.zoom_x = self.zoom_y = 1 if @zoom_reset
  640.   end  
  641.   #--------------------------------------------------------------------------
  642.   # ● 残像更新
  643.   #--------------------------------------------------------------------------
  644.   def update_mirage
  645.     # 残像は最大3つまで表示し、2フレームごとに更新
  646.     mirage(@mirage0) if @mirage_count == 1
  647.     mirage(@mirage1) if @mirage_count == 3
  648.     mirage(@mirage2) if @mirage_count == 5
  649.     @mirage_count += 1
  650.     @mirage_count = 0 if @mirage_count == 6
  651.   end
  652.   #--------------------------------------------------------------------------
  653.   # ● ピクチャ更新
  654.   #--------------------------------------------------------------------------
  655.   def update_picture
  656.     @picture_time -= 1
  657.     @picture.x += @moving_pic_x
  658.     @picture.y += @moving_pic_y
  659.   end  
  660.   #--------------------------------------------------------------------------
  661.   # ● アニメ飛ばし更新
  662.   #--------------------------------------------------------------------------
  663.   def update_move_anime
  664.     @move_anime.update
  665.     @anime_moving = false if @move_anime.finish?
  666.     @move_anime.action_reset if @move_anime.finish?
  667.   end  
  668.   #--------------------------------------------------------------------------
  669.   # ● 崩壊エフェクトの更新 ※再定義
  670.   #--------------------------------------------------------------------------
  671.   def update_collapse
  672.     normal_collapse if @collapse_type == 2
  673.     boss_collapse1 if @collapse_type == 3
  674.   end
  675.   #--------------------------------------------------------------------------
  676.   # ● ふきだしアニメ更新
  677.   #--------------------------------------------------------------------------
  678.   def update_balloon
  679.     @balloon_duration -= 1 if @balloon_duration > 0 && !@balloon_back
  680.     @balloon_duration += 1 if @balloon_back
  681.     if @balloon_duration == 64
  682.       @balloon_back = false
  683.       @balloon.visible = false
  684.     elsif @balloon_duration == 0
  685.       @balloon.visible = false if @balloon_loop == 0
  686.       @balloon_back = true if @balloon_loop == 1
  687.     end   
  688.     @balloon.x = self.x
  689.     @balloon.y = self.y
  690.     @balloon.z = 10
  691.     @balloon.opacity = self.opacity
  692.     sx = 7 * 32 if @balloon_duration < 12
  693.     sx = (7 - (@balloon_duration - 12) / 8) * 32 unless @balloon_duration < 12
  694.     @balloon.src_rect.set(sx, @balloon_id * 32, 32, 32)
  695.   end
  696.   #--------------------------------------------------------------------------
  697.   # ● 転送元ビットマップの更新 ※再定義
  698.   #--------------------------------------------------------------------------
  699.   def update_battler_bitmap
  700.     if @battler.actor?
  701.       if @battler.character_name != @battler_name or @battler.battler_hue != @battler_hue
  702.         @battler_name = @battler.character_name
  703.         @battler_hue = @battler.battler_hue
  704.       end
  705.     else
  706.       if @battler.battler_name != @battler_name or @battler.battler_hue != @battler_hue
  707.         @battler_name = @battler.battler_name
  708.         @battler_hue = @battler.battler_hue
  709.       end
  710.       if [email protected]?
  711.         self.opacity = 0 if @effect_duration == 0 && @battler.collapse_type != 1
  712.       end  
  713.     end  
  714.   end
  715.   #--------------------------------------------------------------------------
  716.   # ● アクション実行
  717.   #--------------------------------------------------------------------------
  718.   def action
  719.     return if @active_action == nil
  720.     action = @active_action[0]
  721.     # 反転の場合
  722.     return mirroring if action == "反転"
  723.     # 回転の場合  
  724.     return angling if action == "angle"
  725.     # 拡大縮小の場合  
  726.     return zooming if action == "zoom"
  727.     # 残像ONの場合
  728.     return mirage_on if action == "残像ON"
  729.     # 残像OFFの場合
  730.     return mirage_off if action == "残像OFF"
  731.     # ピクチャ表示の場合
  732.     return picture if action == "pic"
  733.     # ピクチャ消去の場合
  734.     return @picture.visible = false && @picture_time = 0 if action == "ピクチャ消去"
  735.     # グラフィックファイル変更の場合  
  736.     return graphics_change if action == "change"
  737.     # 戦闘アニメ表示の場合  
  738.     return battle_anime if action == "anime"
  739.     # ふきだしアニメ表示の場合  
  740.     return balloon_anime if action == "balloon"
  741.     # BGM/BGS/SE演奏の場合  
  742.     return sound if action == "sound"
  743.     # ゲームスイッチ操作の場合  
  744.     return $game_switches[@active_action[1]] = @active_action[2] if action == "switch"
  745.     # ゲーム変数操作の場合  
  746.     return variable if action == "variable"
  747.     # 二刀限定の場合
  748.     return two_swords if action == "二刀限定"
  749.     # 非二刀限定の場合
  750.     return non_two_swords if action == "非二刀限定"
  751.     # アクション条件の場合
  752.     return necessary if action == "nece"
  753.     # スキル派生の場合  
  754.     return derivating if action == "der"
  755.     # 個別処理開始の場合
  756.     return individual_action if action == "個別処理開始"
  757.     # 個別処理終了の場合
  758.     return individual_action_end if action == "個別処理終了"
  759.     # 待機に移行しない場合
  760.     return non_repeat if action == "待機に移行しない"
  761.     # 初期位置変更の場合
  762.     return @battler.change_base_position(self.x, self.y) if action == "初期位置変更"
  763.     # 初期位置変更解除の場合
  764.     return @battler.base_position if action == "初期位置変更解除"
  765.     # ターゲット変更の場合  
  766.     return change_target if action == "target"
  767.     # ターゲットのコラプス許可
  768.     return send_action(action) if action == "コラプス許可"
  769.     # アクティブ解除
  770.     return send_action(action) if action == "アクティブ解除"
  771.     # ステート付与の場合  
  772.     return state_on if action == "sta+"
  773.     # ステート解除の場合  
  774.     return state_off if action == "sta-"
  775.     # ゲーム全体のスピード変更の場合
  776.     return Graphics.frame_rate = @active_action[1] if action == "fps"
  777.     # 浮遊の場合  
  778.     return floating if action == "float"
  779.     # スクリプト操作の場合   
  780.     return eval(@active_action[1]) if action == "script"
  781.     # 強制アクションの場合  
  782.     return force_action if @active_action.size == 4
  783.     # 座標リセットの場合  
  784.     return reseting if @active_action.size == 5
  785.     # 移動の場合
  786.     return moving if @active_action.size == 7
  787.     # バトラーアニメの場合
  788.     return battler_anime if @active_action.size == 9
  789.     # アニメ飛ばしの場合
  790.     return moving_anime if @active_action.size == 11
  791.     # 終了の場合
  792.     return anime_finish if action == "終了"
  793.   end
  794.   #--------------------------------------------------------------------------
  795.   # ● 反転実行
  796.   #--------------------------------------------------------------------------
  797.   def mirroring  
  798.     # すでに反転されていれば元に戻す
  799.     if self.mirror
  800.       self.mirror = false
  801.       # 武器アニメも反映
  802.       @weapon_R.mirroring if @anime_flug
  803.     else
  804.       self.mirror = true
  805.       # 武器アニメも反映
  806.       @weapon_R.mirroring if @anime_flug
  807.     end
  808.   end  
  809.   #--------------------------------------------------------------------------
  810.   # ● 回転実行
  811.   #--------------------------------------------------------------------------
  812.   def angling  
  813.     # ジャンプを初期化
  814.     jump_reset
  815.     # 情報確認
  816.     @angle_time = @active_action[1]
  817.     start_angle = @active_action[2]
  818.     end_angle = @active_action[3]
  819.     @angle_reset = @active_action[4]
  820.     # バックアタック時には逆に
  821.     start_angle *= -1 if $back_attack
  822.     end_angle *= -1 if $back_attack
  823.     # エネミーは逆に
  824.     start_angle *= -1 if @battler.is_a?(Game_Enemy)
  825.     end_angle *= -1 if @battler.is_a?(Game_Enemy)
  826.     # 時間が0以下なら即座に最終角度へ
  827.     if @angle_time <= 0
  828.       self.angle = end_angle
  829.       return  @angle_time = 0
  830.     end  
  831.     # 回転時間から1フレームあたりの角度を出す
  832.     @angling = (end_angle - start_angle) / @angle_time
  833.     # 割り切れない余りを初期角度に
  834.     @angle = (end_angle - start_angle) % @angle_time + start_angle
  835.   end
  836.   #--------------------------------------------------------------------------
  837.   # ● 拡大縮小実行
  838.   #--------------------------------------------------------------------------
  839.   def zooming  
  840.     # ジャンプを初期化
  841.     jump_reset
  842.     # 情報確認
  843.     @zoom_time = @active_action[1]
  844.     zoom_x = @active_action[2] - 1
  845.     zoom_y = @active_action[3] - 1
  846.     @zoom_reset = @active_action[4]
  847.     @zoom_x = @zoom_y = 1
  848.     # 時間が0以下ならスキップ
  849.     return @zoom_time = 0 if @zoom_time <= 0
  850.     # 拡大時間から1フレームあたりの拡大率を出す
  851.     @zooming_x = zoom_x / @zoom_time
  852.     @zooming_y = zoom_y / @zoom_time
  853.   end  
  854.   #--------------------------------------------------------------------------
  855.   # ● 残像開始
  856.   #--------------------------------------------------------------------------
  857.   def mirage_on
  858.     # 戦闘不能時には残像させない
  859.     return if @battler.dead?
  860.     @mirage0 = Sprite.new(self.viewport)
  861.     @mirage1 = Sprite.new(self.viewport)
  862.     @mirage2 = Sprite.new(self.viewport)
  863.     @mirage_flug = true
  864.     @mirage_count = 0
  865.   end  
  866.   #--------------------------------------------------------------------------
  867.   # ● 残像表示
  868.   #--------------------------------------------------------------------------
  869.   def mirage(body)
  870.     body.bitmap = self.bitmap.dup
  871.     body.x = self.x
  872.     body.y = self.y
  873.     body.ox = self.ox
  874.     body.oy = self.oy
  875.     body.z = self.z
  876.     body.mirror = self.mirror
  877.     body.angle = @angle
  878.     body.opacity = 160
  879.     body.zoom_x = self.zoom_x
  880.     body.zoom_y = self.zoom_y   
  881.     body.src_rect.set(@sx, @sy, @width, @height) if @anime_flug
  882.     body.src_rect.set(0, 0, @width, @height) unless @anime_flug
  883.   end   
  884.   #--------------------------------------------------------------------------
  885.   # ● 残像終了
  886.   #--------------------------------------------------------------------------
  887.   def mirage_off
  888.     @mirage_flug = false
  889.     @mirage0.dispose if @mirage0 != nil
  890.     @mirage1.dispose if @mirage1 != nil
  891.     @mirage2.dispose if @mirage2 != nil
  892.   end   
  893.   #--------------------------------------------------------------------------
  894.   # ● ピクチャ表示
  895.   #--------------------------------------------------------------------------
  896.   def picture
  897.     # 移動開始位置を確認
  898.     pic_x = @active_action[1]
  899.     pic_y = @active_action[2]
  900.     # 移動終了位置を確認
  901.     pic_end_x = @active_action[3]
  902.     pic_end_y = @active_action[4]
  903.     @picture_time = @active_action[5]
  904.     # 時間で割り、1フレーム当たりの移動速度を計算
  905.     @moving_pic_x = (pic_end_x - pic_x)/ @picture_time
  906.     @moving_pic_y = (pic_end_y - pic_y)/ @picture_time
  907.     # 割り切れない場合最初に加算
  908.     plus_x = (pic_end_x - pic_x)% @picture_time
  909.     plus_y = (pic_end_y - pic_y)% @picture_time
  910.     # ピクチャ表示
  911.     @picture.bitmap = Cache.picture(@active_action[7])
  912.     @picture.x = pic_x + plus_x
  913.     @picture.y = pic_y + plus_y
  914.     # Z座標調整
  915.     @picture.z = 1
  916.     @picture.z = 1000 if @active_action[6]
  917.     @picture.visible = true
  918.   end
  919.   #--------------------------------------------------------------------------
  920.   # ● グラフィックファイル変更
  921.   #--------------------------------------------------------------------------
  922.   def graphics_change  
  923.     # アクター限定
  924.     return if @battler.is_a?(Game_Enemy)
  925.     # グラフィック変更
  926.     @battler_name = @active_action[2]
  927.     # 歩行グラフィックを利用するかどうかで転送元の矩形サイズの認識先を変える
  928.     self.bitmap = Cache.character(@battler_name) if N01::WALK_ANIME
  929.     self.bitmap = Cache.character(@battler_name + "_1") unless N01::WALK_ANIME
  930.     # 転送元の矩形を取得
  931.     @width = self.bitmap.width / @base_width
  932.     @height = self.bitmap.height / @base_height
  933.     # 戦闘後リセットする場合キャラチップ名を記憶
  934.     @before_graphic = @battler.character_name if @active_action[1]
  935.     @battler.graphic_change(@active_action[2])
  936.   end  
  937.   #--------------------------------------------------------------------------
  938.   # ● 戦闘アニメ表示 [判別,ID,対象,反転,ウエイト,二刀フラグ]
  939.   #--------------------------------------------------------------------------
  940.   def battle_anime
  941.     # エネミーの二刀フラグアニメ処理はキャンセル
  942.     return if @active_action[5] && [email protected]?
  943.     # 二刀ではないアクターの二刀フラグアニメ処理はキャンセル
  944.     return if @active_action[5] && @battler.weapons[1] == nil
  945.     # 二刀で右(上に配置された)武器がなく左(下に配置)だけ持ってる場合
  946.     if @battler.actor?
  947.       return if !@active_action[5] && @battler.weapons[0] == nil && @battler.weapons[1] != nil
  948.     end
  949.     anime_id = @active_action[1]
  950.     # バックアタック時にアニメ画像を反転
  951.     if $back_attack
  952.       mirror = true if @active_action[3] == false
  953.       mirror = false if @active_action[3]
  954.     end
  955.     # 武器とスキルアニメの場合
  956.     if anime_id < 0
  957.       # 行動の種類でアニメ先を分岐
  958.       if @battler.action.skill? && anime_id != -2
  959.         anime_id = @battler.action.skill.animation_id
  960.       elsif @battler.action.item? && anime_id != -2
  961.         anime_id = @battler.action.item.animation_id
  962.       else
  963.         # 武器がなければ素手アニメを使用
  964.         anime_id = N01::NO_WEAPON
  965.         if @battler.actor?
  966.           weapon_id = @battler.weapon_id
  967.           anime_id = $data_weapons[weapon_id].animation_id if weapon_id != 0
  968.           # 二刀アニメの場合
  969.           anime_id = @battler.atk_animation_id2 if @active_action[5]
  970.         else
  971.           weapon_id = @battler.weapon
  972.           anime_id = $data_weapons[weapon_id].animation_id if weapon_id != 0
  973.         end
  974.       end
  975.       # ウエイト設定
  976.       @wait = $data_animations[anime_id].frame_max * 4 if $data_animations[anime_id] != nil && @active_action[4]
  977.       waitflug = true
  978.       # ダメージ表示のアニメなら、ダメージ計算を先に済ませるため処理を中断
  979.       damage_action = [anime_id, mirror, true]
  980.       return @battler.play = ["対象アニメ",damage_action] if @battler.active
  981.     end
  982.     # アニメ実行
  983.     if @active_action[2] == 0 && $data_animations[anime_id] != nil
  984.       @battler.animation_id = anime_id
  985.       @battler.animation_mirror = mirror
  986.     elsif $data_animations[anime_id] != nil
  987.       for target in @target_battler
  988.         target.animation_id = anime_id
  989.         target.animation_mirror = mirror
  990.       end  
  991.     end
  992.     # ウエイト設定
  993.     @wait = $data_animations[anime_id].frame_max * 4 if $data_animations[anime_id] != nil && @active_action[4] && !waitflug
  994.   end
  995.   #--------------------------------------------------------------------------
  996.   # ● ふきだしアニメ表示
  997.   #--------------------------------------------------------------------------
  998.   def balloon_anime
  999.     return if self.opacity == 0
  1000.     if @balloon == nil
  1001.       @balloon = Sprite.new
  1002.       @balloon.bitmap = Cache.system("Balloon")
  1003.       @balloon.ox = @width / 16
  1004.       @balloon.oy = @balloon.height / 10 + @height / 3
  1005.     end
  1006.     @balloon_id = @active_action[1]
  1007.     @balloon_loop = @active_action[2]
  1008.     @balloon_duration = 64
  1009.     @balloon_back = false
  1010.     update_balloon
  1011.     @balloon.visible = true
  1012.   end  
  1013.   #--------------------------------------------------------------------------
  1014.   # ● BGM/BGS/SE演奏
  1015.   #--------------------------------------------------------------------------
  1016.   def sound   
  1017.     # 情報を取得
  1018.     pitch = @active_action[2]
  1019.     vol =  @active_action[3]
  1020.     name = @active_action[4]
  1021.     # 実行
  1022.     case @active_action[1]
  1023.     when "se"
  1024.       Audio.se_play("Audio/SE/" + name, vol, pitch)
  1025.     when "bgm"
  1026.       # 名前指定のない場合、現在のBGMを変えないように
  1027.       if @active_action[4] == ""
  1028.         now_bgm = RPG::BGM.last
  1029.         name = now_bgm.name
  1030.       end
  1031.       Audio.bgm_play("Audio/BGM/" + name, vol, pitch)
  1032.     when "bgs"
  1033.       # 名前指定のない場合、現在のBGSを変えないように
  1034.       if @active_action[4] == ""
  1035.         now_bgs = RPG::BGS.last
  1036.         name = now_bgs.name
  1037.       end
  1038.       Audio.bgs_play("Audio/BGS/" + name, vol, pitch)
  1039.     end
  1040.   end
  1041.   #--------------------------------------------------------------------------
  1042.   # ● ゲーム変数操作
  1043.   #--------------------------------------------------------------------------
  1044.   def variable
  1045.     # オペランドチェック
  1046.     operand = @active_action[3]
  1047.     # 変数操作で分岐
  1048.     case @active_action[2]
  1049.     when 0 # 代入
  1050.       $game_variables[@active_action[1]] = operand
  1051.     when 1 # 加算
  1052.       $game_variables[@active_action[1]] += operand
  1053.     when 2 # 減算
  1054.       $game_variables[@active_action[1]] -= operand
  1055.     when 3 # 乗算
  1056.       $game_variables[@active_action[1]] *= operand
  1057.     when 4 # 除算
  1058.       $game_variables[@active_action[1]] /= operand
  1059.     when 5 # 剰余
  1060.       $game_variables[@active_action[1]] %= operand
  1061.     end
  1062.   end  
  1063.   #--------------------------------------------------------------------------
  1064.   # ● 二刀限定
  1065.   #--------------------------------------------------------------------------
  1066.   def two_swords
  1067.     # エネミーは処理させない
  1068.     return @action.shift unless @battler.actor?
  1069.     # 左(下部表示)に武器がなかったら次のアクションを除く
  1070.     return @action.shift if @battler.weapons[1] == nil
  1071.     # 行動配列の先頭からシフト
  1072.     active = @action.shift
  1073.     # 現在のアクションを決定
  1074.     @active_action = N01::ANIME[active]
  1075.     # ウエイト設定
  1076.     @wait = active.to_i if @active_action == nil
  1077.     # 単発アクション開始
  1078.     action
  1079.   end
  1080.   #--------------------------------------------------------------------------
  1081.   # ● 非二刀限定
  1082.   #--------------------------------------------------------------------------
  1083.   def non_two_swords
  1084.     # エネミーは処理させない
  1085.     return unless @battler.actor?
  1086.     # 左(下部表示)に武器があったら次のアクションを除く
  1087.     return @action.shift if @battler.weapons[1] != nil
  1088.     # 行動配列の先頭からシフト
  1089.     active = @action.shift
  1090.     # 現在のアクションを決定
  1091.     @active_action = N01::ANIME[active]
  1092.     # ウエイト設定
  1093.     @wait = active.to_i if @active_action == nil
  1094.     # 単発アクション開始
  1095.     action
  1096.   end
  1097.   #--------------------------------------------------------------------------
  1098.   # ● アクション条件
  1099.   #--------------------------------------------------------------------------
  1100.   def necessary
  1101.     nece1 = @active_action[3]
  1102.     nece2 = @active_action[4]
  1103.     # ターゲットチェック
  1104.     case @active_action[1]
  1105.     # 0自身 1ターゲット 2敵全体 3味方全体
  1106.     when 0
  1107.       target = [$game_party.members[@battler.index]] if @battler.is_a?(Game_Actor)
  1108.       target = [$game_troop.members[@battler.index]] if @battler.is_a?(Game_Enemy)
  1109.     when 1
  1110.       target = @target_battler
  1111.     when 2
  1112.       target = $game_troop.members
  1113.     when 3
  1114.       target = $game_party.members
  1115.     end
  1116.     # ターゲットが空の場合は失敗とみなす
  1117.     return start_action(@battler.recover_action) if target.size == 0
  1118.     # 内容チェック
  1119.     case @active_action[2]
  1120.     # ステートID指定だった場合
  1121.     when 0
  1122.       # 補足が正で「ステートにかかっている」、負は「かかっていない」が条件に
  1123.       state_on = true if nece2 > 0
  1124.       # 条件人数を出す
  1125.       state_member = nece2.abs
  1126.       # 0は仲間数を出す
  1127.       if nece2 == 0
  1128.         state_member = $game_party.members.size if @battler.is_a?(Game_Actor)
  1129.         state_member = $game_troop.members.size if @battler.is_a?(Game_Enemy)
  1130.       end  
  1131.       # ターゲットのステートチェックし人数をカウント
  1132.       for member in target
  1133.         state_member -= 1 if member.state?(nece1)
  1134.       end
  1135.       # 条件が満たされていればアクション続行
  1136.       if state_member == 0 && state_on
  1137.         return
  1138.       elsif state_member == nece2.abs
  1139.         return if state_on == nil
  1140.       end  
  1141.     # パラメータ指定だった場合
  1142.     when 1  
  1143.       # 補足が正で「数値以上」、負は「数値以下」が条件に
  1144.       num_over = true if nece2 > 0
  1145.       # 参照数値
  1146.       num = 0
  1147.       # ターゲットのパラメータチェック
  1148.       for member in target
  1149.         # 参照パラメータで分岐
  1150.         case  nece1
  1151.         when 0 # 現HP
  1152.           num += member.hp
  1153.         when 1 # 現MP
  1154.           num += member.mp
  1155.         when 2 # 攻撃力
  1156.           num += member.atk
  1157.         when 3 # 防御力
  1158.           num += member.def
  1159.         when 4 # 精神力
  1160.           num += member.spi
  1161.         when 5 # 敏捷性
  1162.           num += member.agi
  1163.         end
  1164.       end
  1165.       # 平均を出す
  1166.       num = num / target.size
  1167.       # 条件が満たされていればアクション続行
  1168.       if num > nece2.abs && num_over
  1169.         return
  1170.       elsif num < nece2.abs
  1171.         return if num_over == nil
  1172.       end
  1173.     # スイッチ指定だった場合
  1174.     when 2
  1175.       # 条件が満たされていればアクション続行
  1176.       if $game_switches[nece1]
  1177.         # 補足がtrueで「スイッチON」、falseは「スイッチOFF」が条件に
  1178.         return if nece2
  1179.       # スイッチがOFFの場合はON時とは逆に  
  1180.       else
  1181.         return unless nece2
  1182.       end  
  1183.     # 変数指定だった場合
  1184.     when 3
  1185.       # 補足が正で「数値以上」、負は「数値以下」が条件に
  1186.       if nece2 > 0
  1187.         return if $game_variables[nece1] > nece2
  1188.       else
  1189.         return unless $game_variables[nece1] > nece2.abs
  1190.       end
  1191.     # 習得スキル指定だった場合
  1192.     when 4
  1193.       # スキル条件人数を出す
  1194.       skill_member = nece2.abs
  1195.       for member in target
  1196.         skill_member -= 1 if member.skill_learn?(nece1)
  1197.         # 条件確認
  1198.         return if skill_member == 0
  1199.       end  
  1200.     end
  1201.     # 条件を満たせなければ以降のアクションを中断
  1202.     return @action = ["終了"] if @non_repeat
  1203.     # 防御中は不自然に見えないように座標復帰させない
  1204.     action = @battler.recover_action
  1205.     action = @battler.defence if @battler.guarding?
  1206.     return start_action(action)
  1207.   end  
  1208.   #--------------------------------------------------------------------------
  1209.   # ● スキル派生
  1210.   #--------------------------------------------------------------------------
  1211.   def derivating
  1212.     # 未修得スキルは派生不可なら
  1213.     return if !@active_action[2] && [email protected]_id_learn?(@active_action[3])
  1214.     # 確率分岐
  1215.     return if rand(100) > @active_action[1]
  1216.     # 派生成功
  1217.     @battler.derivation = @active_action[3]
  1218.     # 以降のアクションを中断
  1219.     @action = ["終了"]
  1220.   end
  1221.   #--------------------------------------------------------------------------
  1222.   # ● 個別処理開始
  1223.   #--------------------------------------------------------------------------
  1224.   def individual_action
  1225.     # リピートフラグオン
  1226.     @battler.individual = true
  1227.     # リピートアクションを保持
  1228.     @individual_act = @action.dup
  1229.     # ターゲットを保持し、行動ターゲットをひとつずつ抜き出す
  1230.     send_action(["個別処理"])
  1231.     @individual_targets = @target_battler.dup
  1232.     @target_battler = [@individual_targets.shift]
  1233.   end
  1234.   #--------------------------------------------------------------------------
  1235.   # ● 個別処理終了
  1236.   #--------------------------------------------------------------------------
  1237.   def individual_action_end
  1238.     # ターゲットが残っていないなら行動終了
  1239.     return @battler.individual = false if @individual_targets.size == 0
  1240.     @action = @individual_act.dup
  1241.     @target_battler = [@individual_targets.shift]
  1242.   end  
  1243.   #--------------------------------------------------------------------------
  1244.   # ● 待機に移行しない
  1245.   #--------------------------------------------------------------------------
  1246.   def non_repeat
  1247.     @repeat_action = []
  1248.     @non_repeat = true
  1249.     anime_finish
  1250.   end  
  1251.   #--------------------------------------------------------------------------
  1252.   # ● ターゲット変更 action = [判別, 変更する対象, 変更先]
  1253.   #--------------------------------------------------------------------------
  1254.   def change_target
  1255.     # 自身の変更したターゲットを元に戻す
  1256.     return @target_battler = @now_targets.dup if @active_action[2] == 3
  1257.     # 送るターゲット情報
  1258.     target = [@battler] if @active_action[2] == 0
  1259.     target = @target_battler.dup if @active_action[2] != 0
  1260.     # 自身のターゲットを送った相手にする場合、現在のターゲットを記憶
  1261.     if @active_action[2] == 2
  1262.       @now_targets = @target_battler.dup
  1263.       @target_battler = []
  1264.     end  
  1265.     # 送るターゲットがインデックス指定の場合
  1266.     if @active_action[1] >= 1000
  1267.       members = $game_party.members if @battler.actor?
  1268.       members = $game_troop.members unless @battler.actor?
  1269.       index = @active_action[1] - 1000
  1270.       if index < members.size
  1271.         if members[index].exist? && @battler.index != index
  1272.           # ターゲット変更
  1273.           members[index].force_target = ["N01target_change", target]
  1274.           # 自身のターゲットを送った相手にする場合
  1275.           @target_battler = [members[index]] if @active_action[2] == 2
  1276.           change = true
  1277.         else
  1278.           for member in members
  1279.             next if @battler.index == member.index
  1280.             next unless member.exist?
  1281.             member.force_target = ["N01target_change", target]
  1282.             @target_battler = [member] if @active_action[2] == 2
  1283.             break change = true
  1284.           end
  1285.         end
  1286.       end
  1287.     # 送るターゲットがステートID指定だった場合
  1288.     elsif @active_action[1] > 0
  1289.       for member in $game_party.members + $game_troop.members
  1290.         if member.state?(@active_action[1])
  1291.           member.force_target = ["N01target_change", target]
  1292.           @target_battler.push(member) if @active_action[2] == 2
  1293.           change = true
  1294.         end  
  1295.       end  
  1296.     # 送るターゲットが習得スキル指定だった場合
  1297.     elsif @active_action[1] < 0
  1298.       skill_id = @active_action[1].abs
  1299.       for actor in $game_party.members
  1300.         if actor.skill_id_learn?(skill_id)
  1301.           actor.force_target = ["N01target_change", target]
  1302.           @target_battler.push(target) if @active_action[2] == 2
  1303.           change = true
  1304.         end  
  1305.       end
  1306.     # 送るターゲットがターゲットだった場合
  1307.     else
  1308.       for member in @target_battler
  1309.         member.force_target = ["N01target_change", target]
  1310.         @target_battler.push(member) if @active_action[2] == 2
  1311.         change = true
  1312.       end
  1313.     end
  1314.     # 条件を満たせなければ以降のアクションを中断
  1315.     return if change
  1316.     return @action = ["終了"] if @non_repeat
  1317.     return start_action(@battler.recover_action)
  1318.   end   
  1319.   #--------------------------------------------------------------------------
  1320.   # ● ステート付与
  1321.   #--------------------------------------------------------------------------
  1322.   def state_on  
  1323.     state_id = @active_action[2]
  1324.     # 対象で分岐
  1325.     case @active_action[1]
  1326.     when 0
  1327.       @battler.add_state(state_id) if rand(100) < @battler.state_probability(state_id)
  1328.     when 1
  1329.       if @target_battler != nil
  1330.         for target in @target_battler
  1331.           target.add_state(state_id) if rand(100) < target.state_probability(state_id)
  1332.         end
  1333.       end
  1334.     when 2
  1335.       for target in $game_troop.members
  1336.         target.add_state(state_id) if rand(100) < target.state_probability(state_id)
  1337.       end
  1338.     when 3
  1339.       for target in $game_party.members
  1340.         target.add_state(state_id) if rand(100) < target.state_probability(state_id)
  1341.       end
  1342.     when 4
  1343.       for target in $game_party.members
  1344.         if target.index != @battler.index
  1345.           target.add_state(state_id) if rand(100) < target.state_probability(state_id)
  1346.         end  
  1347.       end
  1348.     end
  1349.   end
  1350.   #--------------------------------------------------------------------------
  1351.   # ● ステート解除
  1352.   #--------------------------------------------------------------------------
  1353.   def state_off  
  1354.     state_id = @active_action[2]
  1355.     # 対象で分岐
  1356.     case @active_action[1]
  1357.     when 0
  1358.       @battler.remove_state(state_id)
  1359.     when 1
  1360.       if @target_battler != nil
  1361.         for target in @target_battler
  1362.           target.remove_state(state_id)
  1363.         end
  1364.       end
  1365.     when 2
  1366.       for target in $game_troop.members
  1367.         target.remove_state(state_id)
  1368.       end
  1369.     when 3
  1370.       for target in $game_party.members
  1371.         target.remove_state(state_id)
  1372.       end
  1373.     when 4
  1374.       for target in $game_party.members
  1375.         if target.index != @battler.index
  1376.           target.remove_state(state_id)
  1377.         end  
  1378.       end
  1379.     end
  1380.   end  
  1381.   #--------------------------------------------------------------------------
  1382.   # ● 浮遊実行
  1383.   #--------------------------------------------------------------------------
  1384.   def floating  
  1385.     # ジャンプを初期化
  1386.     jump_reset
  1387.     # 情報確認
  1388.     @jump_plus = @active_action[1]
  1389.     float_end = @active_action[2]
  1390.     @float_time = @active_action[3]
  1391.     # 1フレーム当たりの移動高度を計算
  1392.     @float_up = (float_end - @jump_plus)/ @float_time
  1393.     # 浮遊が完了するまで次のアクションに行かない
  1394.     @wait = @float_time
  1395.     # 浮遊アニメ設定を反映
  1396.     if @anime_flug
  1397.       move_anime = N01::ANIME[@active_action[4]]
  1398.       # グラフィック指定がない場合はスキップ
  1399.       if move_anime != nil
  1400.         # 現在のアクションを上書き
  1401.         @active_action = move_anime
  1402.         # バトラーアニメ開始
  1403.         battler_anime
  1404.         # 浮遊が完了したら即アニメが終わるように
  1405.         @anime_end = true
  1406.       end
  1407.     end
  1408.     # 初期高度に浮遊
  1409.     @battler.jump = @jump_plus
  1410.   end      
  1411.   #--------------------------------------------------------------------------
  1412.   # ● 強制アクション
  1413.   #--------------------------------------------------------------------------
  1414.   def force_action
  1415.     # アクションが単発か通しか判別
  1416.     kind = @active_action[0]
  1417.     # 復帰の有無をチェック
  1418.     rebirth = @active_action[2]
  1419.     # 強制アクション内容を取得
  1420.     play = @active_action[3]
  1421.     # 上3つの情報をまとめて格納
  1422.     action = [kind,rebirth,play]
  1423.     # ターゲットがインデックス指定の場合
  1424.     if @active_action[1] >= 1000
  1425.       members = $game_party.members if @battler.actor?
  1426.       members = $game_troop.members unless @battler.actor?
  1427.       index = @active_action[1] - 1000
  1428.       if index < members.size
  1429.         if members[index].exist? && @battler.index != index
  1430.           # バトラー情報に渡す
  1431.           return members[index].force_action = action
  1432.         else
  1433.           for target in members
  1434.             next if @battler.index == target.index
  1435.             next unless target.exist?
  1436.             force = true
  1437.             break target.force_action = action
  1438.           end
  1439.         end
  1440.       end
  1441.       # 条件を満たせなければ以降のアクションを中断
  1442.       return if force
  1443.       return @action = ["終了"] if @non_repeat
  1444.       return start_action(@battler.recover_action)
  1445.     # ターゲット指定の場合  
  1446.     elsif @active_action[1] == 0
  1447.       for target in @target_battler
  1448.         target.force_action = action if target != nil
  1449.       end
  1450.     # ステートID指定だった場合  
  1451.     elsif @active_action[1] > 0
  1452.       for target in $game_party.members + $game_troop.members
  1453.         target.force_action = action if target.state?(@active_action[1])
  1454.       end
  1455.     # 習得スキル指定だった場合  
  1456.     elsif @active_action[1] < 0  
  1457.       # エネミーは処理させない
  1458.       return if @battler.is_a?(Game_Enemy)
  1459.       for actor in $game_party.members
  1460.         # 自分は除く
  1461.         unless actor.id == @battler.id
  1462.           # バトラー情報に渡す
  1463.           actor.force_action = action if actor.skill_id_learn?(@active_action[1].abs)
  1464.         end
  1465.       end
  1466.     end
  1467.   end
  1468.   #--------------------------------------------------------------------------
  1469.   # ● 座標リセット実行
  1470.   #--------------------------------------------------------------------------
  1471.   def reseting
  1472.     # ジャンプを初期化
  1473.     jump_reset
  1474.     # 回転を元に戻す
  1475.     self.angle = 0
  1476.     # 情報確認
  1477.     @distanse_x   = @move_x * -1
  1478.     @distanse_y   = @move_y * -1
  1479.     @move_speed_x = @active_action[1]
  1480.     @move_speed_y = @move_speed_x
  1481.     @move_boost_x = @active_action[2]
  1482.     @move_boost_y = @move_boost_x
  1483.     @jump         = @active_action[3]
  1484.     # 移動計算
  1485.     move_distance
  1486.     # 移動アニメ設定を反映
  1487.     if @anime_flug
  1488.       move_anime = N01::ANIME[@active_action[4]]
  1489.       # グラフィック指定がない場合はスキップ
  1490.       if move_anime != nil
  1491.         # 現在のアクションを上書き
  1492.         @active_action = move_anime
  1493.         # バトラーアニメ開始
  1494.         battler_anime
  1495.       end
  1496.       # 移動が完了したら即アニメが終わるように
  1497.       @anime_end = true
  1498.     end
  1499.   end
  1500.   #--------------------------------------------------------------------------
  1501.   # ● 移動実行
  1502.   #--------------------------------------------------------------------------
  1503.   def moving  
  1504.     # ジャンプを初期化
  1505.     jump_reset
  1506.     # X軸移動を便宜上抜き出す
  1507.     xx = @active_action[1]
  1508.     # バックアタック時にはX軸を逆に
  1509.     xx *= -1 if $back_attack
  1510.     # 移動目標のターゲットを確認
  1511.     case @active_action[0]
  1512.     when 0 # 自身
  1513.       @distanse_x = xx
  1514.       @distanse_y = @active_action[2]
  1515.     when 1 # ターゲット
  1516.       # ターゲットが決まってない場合、自身に変換
  1517.       if @target_battler == nil
  1518.         @distanse_x = xx
  1519.         @distanse_y = @active_action[2]
  1520.       else
  1521.         # ターゲット対象をひとつずつチェック
  1522.         target_x = 0
  1523.         target_y = 0
  1524.         time = 0
  1525.         for i in 0...@target_battler.size
  1526.           if @target_battler[i] != nil
  1527.             time += 1
  1528.             target_x += @target_battler[i].position_x
  1529.             target_y += @target_battler[i].position_y
  1530.           end  
  1531.         end
  1532.         # ターゲットが空だった場合、自身に変換
  1533.         if time == 0
  1534.           @distanse_x = xx
  1535.           @distanse_y = @active_action[2]
  1536.         else  
  1537.           # 複数ターゲットの中心を計算
  1538.           target_x = target_x / time
  1539.           target_y = target_y / time
  1540.           # 最終的な移動距離を算出
  1541.           @distanse_y = target_y - self.y + @active_action[2]
  1542.           # X座標はアクターとエネミーで逆計算
  1543.           if @battler.is_a?(Game_Actor)
  1544.             @distanse_x = target_x - self.x + xx
  1545.           else
  1546.             @distanse_x = self.x - target_x + xx
  1547.           end  
  1548.         end  
  1549.       end  
  1550.     when 2 # 画面
  1551.       # X座標はアクターとエネミーで逆計算
  1552.       if @battler.is_a?(Game_Actor)
  1553.         @distanse_x = xx - self.x
  1554.         @distanse_x = Graphics.width + xx - self.x if $back_attack
  1555.       else
  1556.         @distanse_x = self.x - xx
  1557.         @distanse_x = self.x - (Graphics.width + xx) if $back_attack
  1558.       end
  1559.       @distanse_y = @active_action[2] - self.y
  1560.     when 3 # 初期位置
  1561.       # X座標はアクターとエネミーで逆計算
  1562.       if @battler.is_a?(Game_Actor)
  1563.         @distanse_x = xx + @battler.base_position_x - self.x
  1564.       else
  1565.         @distanse_x = xx + self.x - @battler.base_position_x
  1566.       end
  1567.       @distanse_y = @active_action[2] + @battler.base_position_y - @battler.position_y
  1568.     end
  1569.     @move_speed_x = @active_action[3]
  1570.     @move_speed_y = @active_action[3]
  1571.     @move_boost_x = @active_action[4]
  1572.     @move_boost_y = @active_action[4]
  1573.     @jump         = @active_action[5]
  1574.     @jump_plus = 0
  1575.     # 移動計算
  1576.     move_distance
  1577.     # 移動アニメ設定を反映
  1578.     if @anime_flug
  1579.       move_anime = N01::ANIME[@active_action[6]]
  1580.       # グラフィック指定がない場合はスキップ
  1581.       if move_anime != nil
  1582.         # 現在のアクションを上書き
  1583.         @active_action = move_anime
  1584.         # バトラーアニメ開始
  1585.         battler_anime
  1586.       end  
  1587.       # 移動が完了したら即アニメが終わるように
  1588.       @anime_end = true
  1589.     end
  1590.   end
  1591.   #--------------------------------------------------------------------------
  1592.   # ● 移動計算
  1593.   #--------------------------------------------------------------------------
  1594.   def move_distance
  1595.     # 速度が0の場合、その場に留まる
  1596.     if @move_speed_x == 0
  1597.       @moving_x = 0
  1598.       @moving_y = 0
  1599.     else  
  1600.       # 1フレームあたりの移動距離を計算
  1601.       @moving_x = @distanse_x / @move_speed_x
  1602.       @moving_y = @distanse_y / @move_speed_y
  1603.       # 余った距離はこの時点で移動し消化
  1604.       over_x = @distanse_x % @move_speed_x
  1605.       over_y = @distanse_y % @move_speed_y
  1606.       @move_x += over_x
  1607.       @move_y += over_y
  1608.       @battler.move_x = @move_x
  1609.       @battler.move_y = @move_y
  1610.       @distanse_x -= over_x
  1611.       @distanse_y -= over_y
  1612.     end  
  1613.     # 移動があるかどうかの判定
  1614.     if @distanse_x == 0
  1615.       @move_speed_x = 0
  1616.     end
  1617.     if @distanse_y == 0
  1618.       @move_speed_y = 0
  1619.     end
  1620.     # X座標移動計算
  1621.     # 加減速による移動フレーム数の修正
  1622.     boost_x = @moving_x
  1623.     move_x = 0
  1624.     # 加速がある場合
  1625.     if @move_boost_x > 0 && @distanse_x != 0
  1626.       # 加減速の正負を左右移動に合わせて変換
  1627.       if @distanse_x == 0
  1628.         @move_boost_x = 0
  1629.       elsif @distanse_x < 0
  1630.         @move_boost_x *= -1
  1631.       end
  1632.       # 距離の変化を事前計算
  1633.       for i in 0...@move_speed_x
  1634.         boost_x += @move_boost_x
  1635.         move_x += boost_x
  1636.         # オーバー距離を記録
  1637.         over_distance = @distanse_x - move_x
  1638.         # 右移動で距離オーバーする直前が何フレーム目だったか記録
  1639.         if @distanse_x > 0 && over_distance < 0
  1640.           @move_speed_x = i
  1641.           break
  1642.         # 左移動で距離オーバーする直前が何フレーム目だったか記録
  1643.         elsif @distanse_x < 0 && over_distance > 0
  1644.           @move_speed_x = i
  1645.           break
  1646.         end
  1647.       end
  1648.       # オーバー距離を一回前に戻す
  1649.       before = over_distance + boost_x
  1650.       # 余った距離を等速移動させるフレーム数を加算
  1651.       @move_speed_plus_x = (before / @moving_x).abs
  1652.       # それでも余った距離はこの時点で移動し消化
  1653.       @move_x += before % @moving_x
  1654.       @battler.move_x = @move_x
  1655.     # 減速がある場合  
  1656.     elsif @move_boost_x < 0 && @distanse_x != 0
  1657.       # 加減速の正負を左右移動に合わせて変換
  1658.       if @distanse_x == 0
  1659.         @move_boost_x = 0
  1660.       elsif @distanse_x < 0
  1661.         @move_boost_x *= -1
  1662.       end
  1663.       # 距離の変化を事前計算
  1664.       for i in 0...@move_speed_x
  1665.         boost_x += @move_boost_x
  1666.         move_x += boost_x
  1667.         # 足りない距離を記録
  1668.         lost_distance = @distanse_x - move_x
  1669.         before = lost_distance
  1670.         # 右移動で速度が0になる直前が何フレーム目だったか記録
  1671.         if @distanse_x > 0 && boost_x < 0
  1672.           @move_speed_x = i - 1
  1673.           # 足りない距離を一回前に戻す
  1674.           before = lost_distance + boost_x
  1675.           break
  1676.         # 左移動で速度が0になる直前が何フレーム目だったか記録
  1677.         elsif @distanse_x < 0 && boost_x > 0
  1678.           @move_speed_x= i - 1
  1679.           # 足りない距離を一回前に戻す
  1680.           before = lost_distance + boost_x
  1681.           break
  1682.         end
  1683.       end
  1684.       # 足りない距離を等速移動させるフレーム数を加算
  1685.       plus = before / @moving_x
  1686.       @move_speed_plus_x = plus.abs
  1687.       # それでも余った距離はこの時点で移動し消化
  1688.       @move_x += before % @moving_x
  1689.       @battler.move_x = @move_x
  1690.     end
  1691.     # Y座標移動計算
  1692.     # 加減速による移動フレーム数の修正
  1693.     boost_y = @moving_y
  1694.     move_y = 0
  1695.     # 加速がある場合
  1696.     if @move_boost_y > 0 && @distanse_y != 0
  1697.       # 加減速の正負を左右移動に合わせて変換
  1698.       if @distanse_y == 0
  1699.         @move_boost_y = 0
  1700.       elsif @distanse_y < 0
  1701.         @move_boost_y *= -1
  1702.       end
  1703.       # 距離の変化を事前計算
  1704.       for i in 0...@move_speed_y
  1705.         boost_y += @move_boost_y
  1706.         move_y += boost_y
  1707.         # オーバー距離を記録
  1708.         over_distance = @distanse_y - move_y
  1709.         # 右移動で距離オーバーする直前が何フレーム目だったか記録
  1710.         if @distanse_y > 0 && over_distance < 0
  1711.           @move_speed_y = i
  1712.           break
  1713.         # 左移動で距離オーバーする直前が何フレーム目だったか記録
  1714.         elsif @distanse_y < 0 && over_distance > 0
  1715.           @move_speed_y = i
  1716.           break
  1717.         end
  1718.       end
  1719.       # オーバー距離を一回前に戻す
  1720.       before = over_distance + boost_y
  1721.       # 余った距離を等速移動させるフレーム数を加算
  1722.       @move_speed_plus_y = (before / @moving_y).abs
  1723.       # それでも余った距離はこの時点で移動し消化
  1724.       @move_y += before % @moving_y
  1725.       @battler.move_y = @move_y
  1726.     # 減速がある場合  
  1727.     elsif @move_boost_y < 0 && @distanse_y != 0
  1728.       # 加減速の正負を左右移動に合わせて変換
  1729.       if @distanse_y == 0
  1730.         @move_boost_y = 0
  1731.       elsif @distanse_y < 0
  1732.         @move_boost_y *= -1
  1733.       end
  1734.       # 距離の変化を事前計算
  1735.       for i in 0...@move_speed_y
  1736.         boost_y += @move_boost_y
  1737.         move_y += boost_y
  1738.         # 足りない距離を記録
  1739.         lost_distance = @distanse_y - move_y
  1740.         before = lost_distance
  1741.         # 右移動で速度が0になる直前が何フレーム目だったか記録
  1742.         if @distanse_y > 0 && boost_y < 0
  1743.           @move_speed_y = i
  1744.           # 足りない距離を一回前に戻す
  1745.           before = lost_distance + boost_y
  1746.           break
  1747.         # 左移動で速度が0になる直前が何フレーム目だったか記録
  1748.         elsif @distanse_y < 0 && boost_y > 0
  1749.           @move_speed_y = i
  1750.           # 足りない距離を一回前に戻す
  1751.           before = lost_distance + boost_y
  1752.           break
  1753.         end
  1754.       end
  1755.       # 足りない距離を等速移動させるフレーム数を加算
  1756.       plus = before / @moving_y
  1757.       @move_speed_plus_y = plus.abs
  1758.       # それでも余った距離はこの時点で移動し消化
  1759.       @move_y += before % @moving_y
  1760.       @battler.move_y = @move_y
  1761.     end
  1762.     # 移動完了時間を算出
  1763.     x = @move_speed_plus_x + @move_speed_x
  1764.     y = @move_speed_plus_y + @move_speed_y
  1765.     if x > y
  1766.       end_time = x
  1767.     else
  1768.       end_time = y
  1769.     end
  1770.     # 移動が完了するまで次のアクションに行かない
  1771.     @wait = end_time
  1772.     # ジャンプ計算
  1773.     if @jump != 0
  1774.       # 移動がなくジャンプのみの場合
  1775.       if @wait == 0
  1776.         # 時間に計上
  1777.         @wait = @active_action[3]
  1778.       end  
  1779.       # 移動完了時間からジャンプ時間を算出
  1780.       @jump_time = @wait / 2
  1781.       # 割り切れない場合の余り時間
  1782.       @jump_time_plus = @wait % 2
  1783.       # ジャンプの正負を判別
  1784.       @jump_sign = 0
  1785.       @jump_sign2 = 0
  1786.       if @jump < 0
  1787.         @jump_sign = -1
  1788.         @jump_sign2 = 1
  1789.         @jump = @jump * -1
  1790.       else
  1791.         @jump_sign = 1
  1792.         @jump_sign2 = -1
  1793.       end
  1794.       # ジャンプ初速度を決定
  1795.       @jump_up = 2 ** @jump * @jump_sign
  1796.       # ジャンプ時間の端数を微調整
  1797.       if @jump_time == 0
  1798.         @jump_up = 0
  1799.       elsif @jump_time != 1
  1800.         @jump_size = @jump_up * @jump_sign * @jump_sign2
  1801.       else
  1802.         @jump_size = @jump_up * 2 * @jump_sign * @jump_sign2
  1803.         @jump_flug = true
  1804.       end  
  1805.     end
  1806.   end
  1807.   #--------------------------------------------------------------------------
  1808.   # ● バトラーアニメ開始
  1809.   #--------------------------------------------------------------------------
  1810.   def battler_anime
  1811.     # アニメ設定を反映
  1812.     @anime_kind  = @active_action[1]
  1813.     @anime_speed = @active_action[2]
  1814.     @anime_loop  = @active_action[3]
  1815.     # ウエイト時間があれば加算
  1816.     @unloop_wait = @active_action[4]
  1817.     @anime_end = true
  1818.     @reverse = false
  1819.     # 武器アクションがある場合だけ更新する
  1820.     if @weapon_R != nil && @active_action[8] != ""
  1821.       # 武器の設定をチェック
  1822.       weapon_kind = N01::ANIME[@active_action[8]]
  1823.       # エネミーと二刀ではないアクターの二刀フラグアニメ処理はキャンセル
  1824.       two_swords_flug = weapon_kind[11]
  1825.       return if two_swords_flug && [email protected]?
  1826.       return if two_swords_flug && @battler.weapons[1] == nil && @battler.actor?
  1827.       if @battler.actor? && @battler.weapons[0] == nil && !two_swords_flug
  1828.         @weapon_R.action_reset
  1829.       elsif @battler.actor? && @battler.weapons[1] == nil && two_swords_flug
  1830.         @weapon_R.action_reset
  1831.       elsif [email protected]? && @battler.weapon == 0
  1832.         @weapon_R.action_reset
  1833.       else
  1834.         # 初期化
  1835.         @weapon_R.action_reset
  1836.         # アニメパターンが固定だった場合の武器位置を取得
  1837.         if @active_action[5] != -1
  1838.           @weapon_R.freeze(@active_action[5])
  1839.         end
  1840.         # 武器画像を設定
  1841.         @weapon_R.weapon_graphics unless two_swords_flug
  1842.         @weapon_R.weapon_graphics(true) if two_swords_flug
  1843.         # 武器アクションを渡す
  1844.         @weapon_R.weapon_action(@active_action[8],@anime_loop)
  1845.         @weapon_action = true
  1846.         # 最初の武器アクションを更新
  1847.         @weapon_R.action
  1848.       end
  1849.     elsif @weapon_R != nil
  1850.       @weapon_R.action_reset
  1851.     end  
  1852.     @anime_end = false
  1853.     # アニメパターンが固定だった場合
  1854.     if @active_action[5] != -1 && @active_action[5] != -2
  1855.       # フラグオン
  1856.       @anime_freeze = true
  1857.       # アニメが常に終了しているとみなす
  1858.       @anime_end = true
  1859.     # 片道逆転再生だった場合
  1860.     elsif @active_action[5] == -2
  1861.       @anime_freeze = false
  1862.       # フラグオン
  1863.       @reverse = true
  1864.       # 最初のアニメパターンを更新
  1865.       @pattern = @base_width - 1
  1866.       # 武器アニメがある時だけフレーム更新
  1867.       if @weapon_action && @weapon_R != nil
  1868.         @weapon_R.action
  1869.         @weapon_R.update
  1870.       end
  1871.     # 通常のアニメ更新の場合  
  1872.     else  
  1873.       @anime_freeze = false
  1874.       # 最初のアニメパターンを更新
  1875.       @pattern = 0
  1876.       # 武器アニメがある時だけフレーム更新
  1877.       if @weapon_action && @weapon_R != nil
  1878.         @weapon_R.action
  1879.         @weapon_R.update
  1880.       end
  1881.     end  
  1882.     @pattern_back = false
  1883.     @frame = @anime_speed
  1884.     # Z座標設定
  1885.     @battler.move_z = @active_action[6]
  1886.     # 影の有無
  1887.     if @shadow != nil
  1888.       @shadow.visible = true if @active_action[7]
  1889.       @shadow.visible = false unless @active_action[7]
  1890.     end
  1891.     # ナンバリングから読み取るファイル名を分岐
  1892.     if @active_action[0] == 0
  1893.       file_name = @battler_name
  1894.     else
  1895.       file_name = @battler_name + "_" + @active_action[0].to_s
  1896.     end  
  1897.     # アニメしないバトラーなら処理終了
  1898.     return unless @anime_flug
  1899.     self.bitmap = Cache.character(file_name)
  1900.     # 転送元の矩形を設定
  1901.     @sx = @pattern * @width
  1902.     @sy = @anime_kind * @height
  1903.     @sx = @active_action[5] * @width if @anime_freeze
  1904.     self.src_rect.set(@sx, @sy, @width, @height)
  1905.   end
  1906.   #--------------------------------------------------------------------------
  1907.   # ● アニメ飛ばし
  1908.   #--------------------------------------------------------------------------
  1909.   def moving_anime
  1910.     # まだ前のアニメ飛ばしが残っているなら初期化
  1911.     @move_anime.action_reset if @anime_moving
  1912.     @anime_moving = true
  1913.     # バックアタック中はアニメ、武器画像反転
  1914.     mirror = false
  1915.     mirror = true if $back_attack
  1916.     # アニメID
  1917.     id = @active_action[1]
  1918.     # 対象
  1919.     target = @active_action[2]
  1920.     x = y = mem = 0
  1921.     # 対象が単体の場合
  1922.     if target == 0
  1923.       # ターゲットが決まってない場合、自身に変換
  1924.       if @target_battler == nil
  1925.         x = self.x
  1926.         y = self.y
  1927.       else
  1928.         # ターゲットが空の場合、自身に変換
  1929.         if @target_battler[0] == nil
  1930.           x = self.x
  1931.           y = self.y
  1932.         else  
  1933.           # 最初に入っているターゲットに対象決定
  1934.           x = @target_battler[0].position_x
  1935.           y = @target_battler[0].position_y
  1936.         end  
  1937.       end  
  1938.     # 対象が敵の中心の場合  
  1939.     elsif target == 1
  1940.       # 自身がアクターの場合はエネミーの中心を計算
  1941.       if @battler.is_a?(Game_Actor)
  1942.         for target in $game_troop.members
  1943.           x += target.position_x
  1944.           y += target.position_y
  1945.           mem += 1
  1946.         end
  1947.         x = x / mem
  1948.         y = y / mem
  1949.       # 自身がエネミーの場合はアクターの中心を計算
  1950.       else
  1951.         for target in $game_party.members
  1952.           x += target.position_x
  1953.           y += target.position_y
  1954.           mem += 1
  1955.         end
  1956.         x = x / mem
  1957.         y = y / mem
  1958.       end
  1959.     # 対象が味方の中心の場合  
  1960.     elsif target == 2
  1961.       # 自身がアクターの場合はアクターの中心を計算
  1962.       if @battler.is_a?(Game_Actor)
  1963.         for target in $game_party.members
  1964.           x += target.position_x
  1965.           y += target.position_y
  1966.           mem += 1
  1967.         end
  1968.         x = x / mem
  1969.         y = y / mem
  1970.       # 自身がエネミーの場合はエネミーの中心を計算
  1971.       else
  1972.         for target in $game_troop.members
  1973.           x += target.position_x
  1974.           y += target.position_y
  1975.           mem += 1
  1976.         end
  1977.         x = x / mem
  1978.         y = y / mem
  1979.       end
  1980.     # 対象が自身の場合  
  1981.     else
  1982.       x = self.x
  1983.       y = self.y
  1984.     end  
  1985.     # 開始位置の微調整
  1986.     plus_x = @active_action[6]
  1987.     plus_y = @active_action[7]
  1988.     # エネミーはX軸を逆に
  1989.     plus_x *= -1 if @battler.is_a?(Game_Enemy)
  1990.     # 最終的な移動距離を算出
  1991.     distanse_x = x - self.x - plus_x
  1992.     distanse_y = y - self.y - plus_y
  1993.     # 飛ばしタイプ
  1994.     type = @active_action[3]
  1995.     # 速度
  1996.     speed = @active_action[4]
  1997.     # 軌道
  1998.     orbit = @active_action[5]
  1999.     # 自身が開始位置なら
  2000.     if @active_action[8] == 0
  2001.       @move_anime.base_x = self.x + plus_x
  2002.       @move_anime.base_y = self.y + plus_y
  2003.     # 対象が開始位置なら
  2004.     elsif @active_action[8] == 1
  2005.       @move_anime.base_x = x + plus_x
  2006.       @move_anime.base_y = y + plus_y
  2007.       # 距離を反対に
  2008.       distanse_y = distanse_y * -1
  2009.       distanse_x = distanse_x * -1
  2010.     # 動かさないなら
  2011.     else
  2012.       @move_anime.base_x = x
  2013.       @move_anime.base_y = y
  2014.       distanse_x = distanse_y = 0
  2015.     end
  2016.     # 武器アクションなしは武器表示しない
  2017.     if @active_action[10] == ""
  2018.       weapon = ""  
  2019.     # アニメなしエネミーは武器表示しない
  2020.     elsif @anime_flug != true
  2021.       weapon = ""  
  2022.     # 武器アクションがある場合
  2023.     else
  2024.       # 飛ばす武器グラフィックが指定されているかチェック
  2025.       if @battler.is_a?(Game_Actor)
  2026.         battler = $game_party.members[@battler.index]
  2027.         weapon_id = battler.weapon_id
  2028.       else  
  2029.         battler = $game_troop.members[@battler.index]
  2030.         weapon_id = battler.weapon
  2031.       end  
  2032.       # スキル画像利用か武器画像利用か判別
  2033.       weapon_act = N01::ANIME[@active_action[10]].dup if @active_action[10] != ""
  2034.       # 武器画像利用で素手でなければ
  2035.       if weapon_id != 0 && weapon_act.size == 3
  2036.         weapon_file = $data_weapons[weapon_id].flying_graphic
  2037.         # 別画像が指定されていなければ既存の武器グラフィックを取得
  2038.         if weapon_file == ""
  2039.           weapon_name = $data_weapons[weapon_id].graphic
  2040.           icon_weapon = false
  2041.           # さらに指定がなければアイコングラフィックを利用
  2042.           if weapon_name == ""
  2043.             weapon_name = $data_weapons[weapon_id].icon_index
  2044.             icon_weapon = true
  2045.           end  
  2046.         # 指定されていればそのグラフィック名を取得  
  2047.         else
  2048.           icon_weapon = false
  2049.           weapon_name = weapon_file
  2050.         end
  2051.         # 武器アクション情報を取得
  2052.         weapon = @active_action[10]
  2053.       # 武器画像利用で素手なら表示しない
  2054.       elsif weapon_act.size == 3
  2055.         weapon = ""
  2056.       # スキル画像利用
  2057.       elsif weapon_act != nil && @battler.action.skill != nil
  2058.         icon_weapon = false
  2059.         weapon_name = $data_skills[@battler.action.skill.id].flying_graphic
  2060.         weapon = @active_action[10]
  2061.       end
  2062.     end
  2063.     # Z座標を決定
  2064.     @move_anime.z = 1
  2065.     @move_anime.z = 1000 if @active_action[9]
  2066.     # 以上の情報を全てアニメ飛ばしスプライトに送る
  2067.     @move_anime.anime_action(id,mirror,distanse_x,distanse_y,type,speed,orbit,weapon,weapon_name,icon_weapon)
  2068.   end  
  2069.   #--------------------------------------------------------------------------
  2070.   # ● アクション終了
  2071.   #--------------------------------------------------------------------------
  2072.   def anime_finish
  2073.     # 個別処理終了が省略された場合リピートさせる
  2074.     return individual_action_end if @individual_targets.size != 0
  2075.     # アクティブバトラーにアクション情報を格納
  2076.     send_action(@active_action[0]) if @battler.active
  2077.     # 残像があれば開放
  2078.     mirage_off if @mirage_flug
  2079.     # 待機アクションを繰り返す
  2080.     start_action(@repeat_action) unless @non_repeat
  2081.   end   
  2082.   #--------------------------------------------------------------------------
  2083.   # ● コラプスアクション
  2084.   #--------------------------------------------------------------------------
  2085.   def collapse_action
  2086.     @non_repeat = true
  2087.     @effect_type = COLLAPSE
  2088.     @collapse_type = @battler.collapse_type unless @battler.actor?
  2089.     @battler_visible = false unless @battler.actor?
  2090.     @effect_duration = N01::COLLAPSE_WAIT + 48 if @collapse_type == 2
  2091.     @effect_duration = 401 if @collapse_type == 3
  2092.   end  
  2093.   #--------------------------------------------------------------------------
  2094.   # ● ノーマルコラプス
  2095.   #--------------------------------------------------------------------------
  2096.   def normal_collapse
  2097.     if @effect_duration == 47
  2098.       Sound.play_enemy_collapse
  2099.       self.blend_type = 1
  2100.       self.color.set(255, 128, 128, 128)
  2101.     end
  2102.     self.opacity = 256 - (48 - @effect_duration) * 6 if @effect_duration <= 47
  2103.   end  
  2104.   #--------------------------------------------------------------------------
  2105.   # ● ボスコラプス
  2106.   #--------------------------------------------------------------------------
  2107.   def boss_collapse1
  2108.     if @effect_duration == 320
  2109.       Audio.se_play("Audio/SE/Absorb1", 100, 80)
  2110.       self.flash(Color.new(255, 255, 255), 60)
  2111.       viewport.flash(Color.new(255, 255, 255), 20)
  2112.     end
  2113.     if @effect_duration == 280
  2114.       Audio.se_play("Audio/SE/Absorb1", 100, 80)
  2115.       self.flash(Color.new(255, 255, 255), 60)
  2116.       viewport.flash(Color.new(255, 255, 255), 20)
  2117.     end
  2118.     if @effect_duration == 220
  2119.       Audio.se_play("Audio/SE/Earth4", 100, 80)
  2120.       reset
  2121.       self.blend_type = 1
  2122.       self.color.set(255, 128, 128, 128)
  2123.       self.wave_amp = 6
  2124.     end
  2125.     if @effect_duration < 220
  2126.       self.src_rect.set(0, @effect_duration / 2 - 110, @width, @height)
  2127.       self.x += 8 if @effect_duration % 4 == 0
  2128.       self.x -= 8 if @effect_duration % 4 == 2
  2129.       self.wave_amp += 1 if @effect_duration % 10 == 0
  2130.       self.opacity = @effect_duration
  2131.       return if @effect_duration < 50
  2132.       Audio.se_play("Audio/SE/Earth4", 100, 50) if @effect_duration % 50 == 0
  2133.     end
  2134.   end
  2135. end
复制代码

作者: yangjunyin2002    时间: 2013-3-2 20:00
抱歉,因为脚本太多且太长,单楼几乎发不下,还很卡,所以只能连贴了- -

┣ Sideview 2
  1. #==============================================================================
  2. # ■ Scene_Battle  for Sideview Ver3.3
  3. #------------------------------------------------------------------------------
  4. #  バトル画面の処理を行うクラスです。
  5. #==============================================================================
  6. class Scene_Battle < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 終了処理
  9.   #--------------------------------------------------------------------------
  10.   alias terminate_n01 terminate
  11.   def terminate
  12.     terminate_n01
  13.     # 二刀流の持ち替え処理を戻す
  14.     for member in $game_party.members
  15.       if member.two_swords_change
  16.         member.change_equip_by_id(1, member.weapon_id)
  17.         member.change_equip_by_id(0, 0)
  18.         member.two_swords_change = false
  19.       end  
  20.     end
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 戦闘開始の処理
  24.   #--------------------------------------------------------------------------
  25.   alias process_battle_start_n01 process_battle_start
  26.   def process_battle_start
  27.     process_battle_start_n01
  28.     # 二刀流で左(下部表示)に武器を持ち右(上部表示)に武器を持たないように
  29.     # している場合、ここで強制的に持ち替えさせる
  30.     for member in $game_party.members
  31.       if member.weapons[0] == nil and member.weapons[1] != nil
  32.         member.change_equip_by_id(0, member.armor1_id)
  33.         member.change_equip_by_id(1, 0)
  34.         member.two_swords_change = true
  35.       end
  36.     end  
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● フレーム更新
  40.   #--------------------------------------------------------------------------
  41.   alias update_n01 update
  42.   def update
  43.     reset_stand_by_action
  44.     super
  45.     update_n01
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● イベント操作によるHP変動でキャラクターアクションを再設定
  49.   #--------------------------------------------------------------------------
  50.   def reset_stand_by_action
  51.     if $game_temp.status_window_refresh
  52.       $game_temp.status_window_refresh = false
  53.       for member in $game_party.members + $game_troop.members
  54.         @spriteset.set_stand_by_action(member.actor?, member.index)
  55.         # 自動復活チェック
  56.         resurrection(member) if member.hp == 0
  57.       end  
  58.       @status_window.refresh
  59.     end
  60.   end  
  61.   #--------------------------------------------------------------------------
  62.   # ● 敗北の処理
  63.   #--------------------------------------------------------------------------
  64.   alias process_defeat_n01 process_defeat
  65.   def process_defeat
  66.     for member in $game_party.members
  67.       @spriteset.set_stand_by_action(member.actor?, member.index)
  68.     end
  69.     process_defeat_n01
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● ヘルプウインドウの表示
  73.   #--------------------------------------------------------------------------
  74.   def pop_help(obj)
  75.     return if obj.extension.include?("ヘルプ非表示")
  76.     @help_window = Window_Help.new if @help_window == nil
  77.     @help_window.set_text(obj.name, 1)
  78.     @help_window.visible = true
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 情報表示ビューポートの移動
  82.   #--------------------------------------------------------------------------
  83.   def move1_info_viewport
  84.     @info_viewport.ox = 128
  85.     loop do
  86.       update_basic
  87.       @info_viewport.ox -= 8
  88.       @party_command_window.x -= 8
  89.       @actor_command_window.x += 8
  90.       break if @info_viewport.ox == 64
  91.     end  
  92.   end
  93.   #--------------------------------------------------------------------------
  94.   # ● 情報表示ビューポートの移動
  95.   #--------------------------------------------------------------------------
  96.   def move2_info_viewport
  97.     @info_viewport.ox = 64
  98.     loop do
  99.       update_basic
  100.       @info_viewport.ox -= 8
  101.       @party_command_window.x += 8
  102.       @actor_command_window.x -= 8
  103.       break if @info_viewport.ox == 0
  104.     end  
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● 次のアクターのコマンド入力へ
  108.   #--------------------------------------------------------------------------
  109.   alias next_actor_n01 next_actor
  110.   def next_actor
  111.     # 動けるキャラのみコマンドアクションを
  112.     if @active_battler != nil && @active_battler.inputable? && @active_battler.actor?
  113.       @spriteset.set_action(true, @actor_index,@active_battler.command_a)
  114.     end
  115.     # 最後のアクターの場合、アクションが終わるまで待つ
  116.     @wait_count = 32 if @actor_index == $game_party.members.size-1
  117.     next_actor_n01
  118.     # 動けるキャラのみコマンドアクションを
  119.     if @active_battler != nil && @active_battler.inputable? && @active_battler.actor?
  120.       @spriteset.set_action(true, @actor_index,@active_battler.command_b)
  121.     end
  122.   end
  123.   #--------------------------------------------------------------------------
  124.   # ● 前のアクターのコマンド入力へ
  125.   #--------------------------------------------------------------------------
  126.   alias prior_actor_n01 prior_actor
  127.   def prior_actor
  128.     # 動けるキャラのみコマンドアクションを
  129.     if @active_battler != nil && @active_battler.inputable? && @active_battler.actor?
  130.       @active_battler.action.clear
  131.       @spriteset.set_action(true, @actor_index,@active_battler.command_a)
  132.     end
  133.     prior_actor_n01
  134.     # 動けるキャラのみコマンドアクションを
  135.     if @active_battler != nil && @active_battler.inputable? && @active_battler.actor?
  136.       @active_battler.action.clear
  137.       @spriteset.set_action(true, @actor_index,@active_battler.command_b)
  138.     end
  139.   end  
  140.   #--------------------------------------------------------------------------
  141.   # ● ターゲット選択の開始  ※再定義
  142.   #--------------------------------------------------------------------------
  143.   def start_target_enemy_selection
  144.     start_target_selection
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ● ターゲット選択の開始  ※再定義
  148.   #--------------------------------------------------------------------------
  149.   def start_target_actor_selection
  150.     start_target_selection(true)
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ● ターゲット選択の開始
  154.   #--------------------------------------------------------------------------
  155.   def start_target_selection(actor = false)
  156.     members = $game_party.members if actor
  157.     members = $game_troop.members unless actor
  158.     # カーソルスプライトの作成
  159.     @cursor = Sprite.new
  160.     @cursor.bitmap = Cache.character("cursor")
  161.     @cursor.src_rect.set(0, 0, 32, 32)
  162.     @cursor_flame = 0
  163.     @cursor.x = -200
  164.     @cursor.y = -200
  165.     @cursor.ox = @cursor.width
  166.     @cursor.oy = @cursor.height
  167.     # ターゲット名を表示するヘルプウインドウを作成
  168.     @help_window.visible = false if @help_window != nil
  169.     @help_window2 = Window_Help.new if @help_window2 == nil
  170.     # 不要なウインドウを消す
  171.     @actor_command_window.active = false
  172.     @skill_window.visible = false if @skill_window != nil
  173.     @item_window.visible = false if @item_window != nil
  174.     # 存在しているターゲットで最も番号の低い対象を最初に指すように
  175.     @index = 0
  176.     @max_index = members.size - 1
  177.     # アクターは戦闘不能者でもターゲットできるようにエネミーと区別
  178.     unless actor
  179.       members.size.times do
  180.         break if members[@index].exist?
  181.         @index += 1
  182.       end
  183.     end  
  184.     @help_window2.set_text(members[@index].name, 1)
  185.     select_member(actor)
  186.   end
  187.   #--------------------------------------------------------------------------
  188.   # ● ターゲット選択
  189.   #--------------------------------------------------------------------------
  190.   def select_member(actor = false)
  191.     members = $game_party.members if actor
  192.     members = $game_troop.members unless actor
  193.     loop do
  194.       update_basic
  195.       @cursor_flame = 0 if @cursor_flame == 30
  196.       @cursor.src_rect.set(0,  0, 32, 32) if @cursor_flame == 29
  197.       @cursor.src_rect.set(0, 32, 32, 32) if @cursor_flame == 15
  198.       point = @spriteset.set_cursor(actor, @index)
  199.       @cursor.x = point[0]
  200.       @cursor.y = point[1]
  201.       @cursor_flame += 1
  202.       if Input.trigger?(Input::B)
  203.         Sound.play_cancel
  204.         end_target_selection
  205.         break
  206.       elsif Input.trigger?(Input::C)
  207.         Sound.play_decision
  208.         @active_battler.action.target_index = @index
  209.         end_target_selection
  210.         end_skill_selection
  211.         end_item_selection
  212.         next_actor
  213.         break
  214.       end
  215.       if Input.repeat?(Input::LEFT)
  216.         if actor
  217.           cursor_down(members, actor) if $back_attack
  218.           cursor_up(members, actor) unless $back_attack
  219.         else
  220.           cursor_up(members, actor) if $back_attack
  221.           cursor_down(members, actor) unless $back_attack
  222.         end  
  223.       end
  224.       if Input.repeat?(Input::RIGHT)
  225.         if actor
  226.           cursor_up(members, actor) if $back_attack
  227.           cursor_down(members, actor) unless $back_attack
  228.         else
  229.           cursor_down(members, actor) if $back_attack
  230.           cursor_up(members, actor) unless $back_attack
  231.         end
  232.       end
  233.       cursor_up(members, actor) if Input.repeat?(Input::UP)
  234.       cursor_down(members, actor) if Input.repeat?(Input::DOWN)
  235.     end
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● カーソルを前に移動
  239.   #--------------------------------------------------------------------------
  240.   def cursor_up(members, actor)
  241.     Sound.play_cursor
  242.     members.size.times do
  243.       @index += members.size - 1
  244.       @index %= members.size
  245.       break if actor
  246.       break if members[@index].exist?
  247.     end
  248.     @help_window2.set_text(members[@index].name, 1)
  249.   end
  250.   #--------------------------------------------------------------------------
  251.   # ● カーソルを次に移動
  252.   #--------------------------------------------------------------------------
  253.   def cursor_down(members, actor)
  254.     Sound.play_cursor
  255.     members.size.times do
  256.       @index += 1
  257.       @index %= members.size
  258.       break if actor
  259.       break if members[@index].exist? && !actor
  260.     end
  261.     @help_window2.set_text(members[@index].name, 1)
  262.   end
  263.   #--------------------------------------------------------------------------
  264.   # ● ターゲット選択の終了
  265.   #--------------------------------------------------------------------------
  266.   def end_target_selection
  267.     @actor_command_window.active = true if @actor_command_window.index == 0
  268.     @skill_window.visible = true if @skill_window != nil
  269.     @item_window.visible = true if @item_window != nil
  270.     @cursor.dispose
  271.     @cursor = nil
  272.     if @help_window2 != nil  
  273.       @help_window2.dispose
  274.       @help_window2 = nil
  275.     end
  276.     @help_window.visible = true if @help_window != nil
  277.   end
  278.   #--------------------------------------------------------------------------
  279.   # ● 逃走の処理  ※再定義
  280.   #--------------------------------------------------------------------------
  281.   def process_escape
  282.     @info_viewport.visible = false
  283.     @message_window.visible = true
  284.     text = sprintf(Vocab::EscapeStart, $game_party.name)
  285.     $game_message.texts.push(text)
  286.     if $game_troop.preemptive
  287.       success = true
  288.     else
  289.       success = (rand(100) < @escape_ratio)
  290.     end
  291.     Sound.play_escape
  292.     # 動けないアクターを除いて逃走成功アクション
  293.     if success
  294.       for actor in $game_party.members
  295.         unless actor.restriction >= 4
  296.           @spriteset.set_action(true, actor.index,actor.run_success)
  297.         end
  298.       end  
  299.       wait_for_message
  300.       battle_end(1)
  301.     # 動けないアクターを除いて逃走失敗アクション
  302.     else
  303.       for actor in $game_party.members
  304.         unless actor.restriction >= 4
  305.           @spriteset.set_action(true, actor.index,actor.run_ng)
  306.         end
  307.       end
  308.       @escape_ratio += 10
  309.       $game_message.texts.push('\.' + Vocab::EscapeFailure)
  310.       wait_for_message
  311.       $game_party.clear_actions
  312.       start_main
  313.     end
  314.   end  
  315.   #--------------------------------------------------------------------------
  316.   # ● 勝利の処理
  317.   #--------------------------------------------------------------------------
  318.   alias process_victory_n01 process_victory
  319.   def process_victory
  320.     @status_window.visible = true
  321.     @message_window.visible = false
  322.     # ボスコラプスはウエイトを長く挟む
  323.     for enemy in $game_troop.members
  324.       break boss_wait = true if enemy.collapse_type == 3
  325.     end
  326.     wait(440) if boss_wait
  327.     wait(N01::WIN_WAIT) unless boss_wait
  328.     # 動けないアクターを除いて勝利アクション
  329.     for actor in $game_party.members
  330.       unless actor.restriction >= 4
  331.         @spriteset.set_action(true, actor.index,actor.win)
  332.       end
  333.     end
  334.     process_victory_n01
  335.   end
  336.   #--------------------------------------------------------------------------
  337.   # ● 戦闘処理の実行開始  ※再定義
  338.   #--------------------------------------------------------------------------
  339.   def start_main
  340.     $game_troop.increase_turn
  341.     @info_viewport.visible = true
  342.     @info_viewport.ox = 0
  343.     @party_command_window.active = false
  344.     @actor_command_window.active = false
  345.     @status_window.index = @actor_index = -1
  346.     @active_battler = nil
  347.     @message_window.clear
  348.     $game_troop.make_actions
  349.     make_action_orders
  350.     # 情報表示ビューポートの移動
  351.     move1_info_viewport
  352.     # スキル名を表示するヘルプウインドウを作成
  353.     @help_window = Window_Help.new
  354.     @help_window.visible = false
  355.     process_battle_event
  356.   end
  357.   #--------------------------------------------------------------------------
  358.   # ● バトルイベントの処理  ※再定義
  359.   #--------------------------------------------------------------------------
  360.   def process_battle_event
  361.     loop do
  362.       return if judge_win_loss
  363.       return if $game_temp.next_scene != nil
  364.       $game_troop.interpreter.update
  365.       $game_troop.setup_battle_event
  366.       @message_window.update
  367.       if $game_message.visible
  368.         @message_window.visible = true
  369.         @status_window.visible = false
  370.       end
  371.       wait_for_message
  372.       @message_window.visible = false
  373.       @status_window.visible = true
  374.       if $game_troop.forcing_battler != nil
  375.         process_action
  376.       end
  377.       return unless $game_troop.interpreter.running?
  378.       update_basic
  379.     end
  380.   end
  381.   #--------------------------------------------------------------------------
  382.   # ● 行動順序作成
  383.   #--------------------------------------------------------------------------
  384.   alias make_action_orders_n01 make_action_orders
  385.   def make_action_orders
  386.     make_action_orders_n01
  387.     # エネミーの行動回数チェック
  388.     for enemy in $game_troop.members
  389.       enemy.act_time = 0
  390.       if enemy.action_time[0] != 1
  391.         action_time = 0
  392.         # 確率から回数を取得
  393.         for i in 1...enemy.action_time[0]
  394.           action_time += 1 if rand(100) < enemy.action_time[1]
  395.         end
  396.         enemy.act_time = action_time
  397.         action_time.times do
  398.           enemy_order_time(enemy)
  399.           action_time -= 1
  400.           break if action_time == 0
  401.         end  
  402.         enemy.adj_speed = nil
  403.       end
  404.     end
  405.   end
  406.   #--------------------------------------------------------------------------
  407.   # ● エネミーの行動回数作成
  408.   #--------------------------------------------------------------------------
  409.   def enemy_order_time(enemy)
  410.     enemy.make_action_speed2(enemy.action_time[2])
  411.     select_time = 0
  412.     for member in @action_battlers
  413.       select_time += 1
  414.       break @action_battlers.push(enemy) if member.action.speed < enemy.adj_speed
  415.       break @action_battlers.push(enemy) if select_time == @action_battlers.size
  416.     end
  417.   end
  418.   #--------------------------------------------------------------------------
  419.   # ● 戦闘行動の実行
  420.   #--------------------------------------------------------------------------
  421.   alias execute_action_n01 execute_action
  422.   def execute_action
  423.     # スキル、アイテム拡張で行動前にフラッシュさせない設定があるなら
  424.     if @active_battler.action.kind != 0
  425.       obj = @active_battler.action.skill if @active_battler.action.kind == 1
  426.       obj = @active_battler.action.item if @active_battler.action.kind == 2
  427.       if obj.extension.include?("行動前フラッシュなし")
  428.         @active_battler.white_flash = false
  429.       end  
  430.     end
  431.     # バトラーをアクティブ化
  432.     @active_battler.active = true
  433.     # 強制行動中のスキル派生
  434.     @active_battler.derivation = 0 if @active_battler.action.forcing
  435.     execute_action_n01
  436.     # スキル派生がある場合、行動続行
  437.     if @active_battler.derivation != 0
  438.       @active_battler.action.kind = 1
  439.       @active_battler.action.skill_id = @active_battler.derivation
  440.       @action_battlers.unshift(@active_battler)
  441.       return process_action
  442.     end
  443.     # 複数回行動のエネミーがいる場合、次の行動を決定
  444.     if !@active_battler.actor? && @active_battler.act_time != 0
  445.       @active_battler.make_action
  446.       @active_battler.act_time -= 1
  447.     end
  448.   end
  449.   #--------------------------------------------------------------------------
  450.   # ● ターン終了  ※再定義
  451.   #--------------------------------------------------------------------------
  452.   def turn_end
  453.     for member in $game_party.members + $game_troop.members
  454.       member.clear_action_results
  455.       next unless member.exist?
  456.       member.slip_damage = false
  457.       actor = member.actor?
  458.       damage = 0
  459.       # 0ターン解除のステートがあるかチェック
  460.       for state in member.states
  461.         member.remove_state(state.id) if state.extension.include?("0ターン解除")
  462.         # スリップダメージ実行 state = [ 対象, 定数, 割合, POP, 戦闘不能許可]
  463.         next unless state.extension.include?("スリップダメージ")
  464.         for ext in state.slip_extension
  465.           if ext[0] == "hp"
  466.             base_damage = ext[1] + member.maxhp * ext[2] / 100
  467.             damage += base_damage + base_damage * (rand(5) - rand(5)) / 100
  468.             slip_pop = ext[3]
  469.             slip_dead = ext[4]
  470.             slip_damage_flug = true
  471.             member.slip_damage = true
  472.           end
  473.         end  
  474.       end
  475.       # デフォルトのスリップダメージ
  476.       if member.slip_damage? && member.exist? && !slip_damage_flug
  477.         damage += member.apply_variance(member.maxhp / 10, 10)
  478.         slip_dead = false
  479.         slip_pop = true
  480.         slip_damage_flug = true
  481.         member.slip_damage = true
  482.       end
  483.       damage = member.hp - 1 if damage >= member.hp && slip_dead = false
  484.       member.hp -= damage
  485.       @spriteset.set_damage_pop(actor, member.index, damage) if slip_pop
  486.       member.perform_collapse if member.dead? && member.slip_damage
  487.       member.clear_action_results
  488.     end
  489.     @status_window.refresh
  490.     # HPとMPのタイミングをずらす
  491.     wait(55) if slip_damage_flug
  492.     slip_damage_flug = false
  493.     for member in $game_party.members + $game_troop.members
  494.       member.clear_action_results
  495.       next unless member.exist?
  496.       actor = member.actor?
  497.       mp_damage = 0
  498.       for state in member.states
  499.         next unless state.extension.include?("スリップダメージ")
  500.         for ext in state.slip_extension
  501.           if ext[0] == "mp"
  502.             base_damage = ext[1] + member.maxmp * ext[2] / 100
  503.             mp_damage += base_damage + base_damage * (rand(5) - rand(5)) / 100
  504.             slip_pop = ext[2]
  505.             slip_damage_flug = true
  506.           end
  507.         end
  508.         member.mp_damage = mp_damage
  509.         member.mp -= mp_damage
  510.         @spriteset.set_damage_pop(actor, member.index, mp_damage) if slip_pop
  511.       end   
  512.       member.clear_action_results
  513.     end
  514.     @status_window.refresh
  515.     # ダメージと回復のタイミングをずらす
  516.     wait(55) if slip_damage_flug
  517.     # 自動回復があるか
  518.     for member in $game_party.members
  519.       if member.auto_hp_recover and member.exist?
  520.         plus_hp = member.maxhp / 20
  521.         member.hp += plus_hp
  522.         @spriteset.set_damage_pop(true, member.index, plus_hp * -1)
  523.         plus_hp_flug = true
  524.       end
  525.       member.clear_action_results
  526.     end
  527.     @status_window.refresh
  528.     wait(55) if plus_hp_flug
  529.     @help_window.dispose if @help_window != nil
  530.     @help_window = nil
  531.     move2_info_viewport
  532.     $game_troop.turn_ending = true
  533.     $game_troop.preemptive = false
  534.     $game_troop.surprise = false
  535.     process_battle_event
  536.     $game_troop.turn_ending = false
  537.     start_party_command_selection
  538.    
  539. #    @turn_sprite.visible = true
  540. #    @turn_window.visible = true   
  541. #    @turn_sprite.update
  542. #    @turn_window.update
  543.   end
  544.   #--------------------------------------------------------------------------
  545.   # ● 戦闘行動の実行 : 攻撃  ※再定義
  546.   #--------------------------------------------------------------------------
  547.   def execute_action_attack
  548.     if @active_battler.actor?
  549.       if @active_battler.weapon_id == 0
  550.         action = @active_battler.non_weapon
  551.         # 行動中に死なないようメンバー全員を不死身化
  552.         immortaling
  553.       else  
  554.         action = $data_weapons[@active_battler.weapon_id].base_action
  555.         # 戦闘不能付与の武器で不死身設定を分岐
  556.         if $data_weapons[@active_battler.weapon_id].state_set.include?(1)
  557.           for member in $game_party.members + $game_troop.members
  558.             next if member.immortal
  559.             next if member.dead?
  560.             member.dying = true
  561.           end
  562.         else
  563.           immortaling
  564.         end
  565.       end  
  566.     else
  567.       if @active_battler.weapon == 0
  568.         action = @active_battler.base_action
  569.         immortaling
  570.       else
  571.         action = $data_weapons[@active_battler.weapon].base_action
  572.         if $data_weapons[@active_battler.weapon].state_set.include?(1)
  573.           for member in $game_party.members + $game_troop.members
  574.             next if member.immortal
  575.             next if member.dead?
  576.             member.dying = true
  577.           end
  578.         else
  579.           immortaling
  580.         end
  581.       end  
  582.     end
  583.     target_decision
  584.     @spriteset.set_action(@active_battler.actor?, @active_battler.index, action)
  585.     playing_action
  586.   end
  587.   #--------------------------------------------------------------------------
  588.   # ● 戦闘行動の実行 : 防御  ※再定義
  589.   #--------------------------------------------------------------------------
  590.   def execute_action_guard
  591.     @help_window.set_text("防御", 1)
  592.     @help_window.visible = true
  593.     # バトラーのアクティブ化を解除
  594.     @active_battler.active = false
  595.     wait(45)
  596.     @help_window.visible = false
  597.   end
  598.   #--------------------------------------------------------------------------
  599.   # ● 戦闘行動の実行 : 逃走
  600.   #--------------------------------------------------------------------------
  601.   def execute_action_escape
  602.     @spriteset.set_action(false, @active_battler.index, @active_battler.run_success)
  603.     @help_window.set_text("逃走", 1)
  604.     @help_window.visible = true
  605.     # バトラーのアクティブ化を解除
  606.     @active_battler.active = false
  607.     @active_battler.escape
  608.     Sound.play_escape
  609.     wait(45)
  610.     @help_window.visible = false
  611.   end
  612.   #--------------------------------------------------------------------------
  613.   # ● 戦闘行動の実行 : 待機  ※再定義
  614.   #--------------------------------------------------------------------------
  615.   def execute_action_wait
  616.     # バトラーのアクティブ化を解除
  617.     @active_battler.active = false
  618.     wait(45)
  619.   end   
  620.   #--------------------------------------------------------------------------
  621.   # ● 戦闘行動の実行 : スキル  ※再定義
  622.   #--------------------------------------------------------------------------
  623.   def execute_action_skill
  624.     skill = @active_battler.action.skill
  625.     # 戦闘不能付与のスキルで不死身設定を分岐
  626.     if skill.plus_state_set.include?(1)
  627.       for member in $game_party.members + $game_troop.members
  628.         next if member.immortal
  629.         next if member.dead?
  630.         member.dying = true
  631.       end
  632.     else
  633.       # 行動中に死なないようメンバー全員を不死身化
  634.       immortaling
  635.     end
  636.     # スキル使用可能判定
  637.     return unless @active_battler.skill_can_use?(skill)
  638.     # ターゲット決定
  639.     target_decision(skill)
  640.     # アクション開始
  641.     @spriteset.set_action(@active_battler.actor?, @active_battler.index, skill.base_action)
  642.     # ヘルプウインドウにスキル名表示
  643.     pop_help(skill)
  644.     # アクション中
  645.     playing_action
  646.     # スキルコスト消費
  647.     @active_battler.consum_skill_cost(skill)
  648.     # ステータスウインドウをリフレッシュ
  649.     @status_window.refresh
  650.     # コモンイベント取得
  651.     $game_temp.common_event_id = skill.common_event_id
  652.   end
  653.   #--------------------------------------------------------------------------
  654.   # ● 戦闘行動の実行 : アイテム  ※再定義
  655.   #--------------------------------------------------------------------------
  656.   def execute_action_item
  657.     item = @active_battler.action.item
  658.     # 戦闘不能付与のアイテムで不死身設定を分岐
  659.     if item.plus_state_set.include?(1)
  660.       for member in $game_party.members + $game_troop.members
  661.         next if member.immortal
  662.         next if member.dead?
  663.         member.dying = true
  664.       end
  665.     else
  666.       # 行動中に死なないようメンバー全員を不死身化
  667.       immortaling
  668.     end
  669.     $game_party.consume_item(item)
  670.     target_decision(item)
  671.     @spriteset.set_action(@active_battler.actor?, @active_battler.index, item.base_action)
  672.     pop_help(item)
  673.     playing_action
  674.     $game_temp.common_event_id = item.common_event_id
  675.   end
  676.   #--------------------------------------------------------------------------
  677.   # ● ターゲット決定
  678.   #--------------------------------------------------------------------------
  679.   def target_decision(obj = nil)
  680.     @targets = @active_battler.action.make_targets
  681.     # ターゲットがいない場合、アクション中断
  682.     if @targets.size == 0
  683.       action = @active_battler.recover_action
  684.       @spriteset.set_action(@active_battler.actor?, @active_battler.index, action)
  685.     end
  686.     if obj != nil
  687.       # デフォルトの複数回攻撃が設定されていれば単体ターゲットに変換
  688.       if obj.for_two? or obj.for_three? or obj.dual?
  689.         @targets = [@targets[0]]
  690.       end
  691.       # ランダムターゲットの場合、一体を選択しランダム範囲を保持
  692.       if obj.extension.include?("ランダムターゲット")
  693.         randum_targets = @targets.dup
  694.         @targets = [randum_targets[rand(randum_targets.size)]]
  695.       end
  696.     end
  697.     # ターゲット情報をバトラースプライトに送る
  698.     @spriteset.set_target(@active_battler.actor?, @active_battler.index, @targets)
  699.   end   
  700.   #--------------------------------------------------------------------------
  701.   # ● アクション実行中
  702.   #--------------------------------------------------------------------------
  703.   def playing_action
  704.     loop do
  705.       update_basic
  706.       # アクティブバトラーに格納されているアクション情報を見る
  707.       action = @active_battler.play
  708.       next if action == 0
  709.       @active_battler.play = 0
  710.       if action[0] == "個別処理"
  711.         individual
  712.       elsif action == "コラプス許可"
  713.         unimmortaling
  714.       elsif action == "アクティブ解除"
  715.         break action_end
  716.       elsif action == "終了"
  717.         break action_end
  718.       elsif action[0] == "対象アニメ"
  719.         damage_action(action[1])
  720.       end
  721.     end  
  722.   end
  723.   #--------------------------------------------------------------------------
  724.   # ● 個別処理
  725.   #--------------------------------------------------------------------------
  726.   def individual
  727.     # ターゲット情報を保持
  728.     @individual_target = @targets
  729.     @stand_by_target = @targets.dup
  730.   end
  731.   #--------------------------------------------------------------------------
  732.   # ● コラプス禁止
  733.   #--------------------------------------------------------------------------
  734.   def immortaling
  735.     # 全員に不死身付与
  736.     for member in $game_party.members + $game_troop.members
  737.       # 既に戦闘不能ならスキップ
  738.       next if member.dead?
  739.       # イベント等で不死身設定になっていたら解除を無効にするフラグを立てる
  740.       member.non_dead = true if member.immortal
  741.       member.immortal = true
  742.     end  
  743.   end  
  744.   #--------------------------------------------------------------------------
  745.   # ● コラプス許可
  746.   #--------------------------------------------------------------------------
  747.   def unimmortaling
  748.     # 個別処理中はコラプス許可しない
  749.     return if @active_battler.individual
  750.     # 全員の不死身化解除(イベント等で不死身設定がされていれば除く)
  751.     for member in $game_party.members + $game_troop.members
  752.       if member.dying
  753.         member.dying = false
  754.         if member.dead? or member.hp == 0
  755.           member.add_state(1)
  756.           member.perform_collapse
  757.         end
  758.       end
  759.       next if member.non_dead
  760.       next if member.dead?
  761.       member.immortal = false
  762.       member.add_state(1) if member.hp == 0
  763.       member.perform_collapse
  764.     end
  765.     # この時点で待機アクションに即反映させる
  766.     @targets = @stand_by_target if @stand_by_target != nil
  767.     return if @targets == nil or @targets.size == 0
  768.     for target in @targets
  769.       @spriteset.set_stand_by_action(target.actor?, target.index)
  770.       # 自動復活チェック
  771.       next unless target.hp == 0
  772.       resurrection(target)
  773.     end  
  774.   end
  775.   #--------------------------------------------------------------------------
  776.   # ● 自動復活
  777.   #--------------------------------------------------------------------------
  778.   def resurrection(target)
  779.     for state in target.states
  780.       for ext in state.extension
  781.         name = ext.split('')
  782.         next unless name[0] == "自"
  783.         wait(50)
  784.         name = name.join
  785.         name.slice!("自動復活/")
  786.         target.hp = target.maxhp * name.to_i / 100
  787.         target.remove_state(1)
  788.         target.remove_state(state.id)
  789.         target.animation_id = N01::RESURRECTION
  790.         target.animation_mirror = true if $back_attack
  791.         @status_window.refresh
  792.         wait($data_animations[N01::RESURRECTION].frame_max * 4)
  793.       end  
  794.     end
  795.   end
  796.   #--------------------------------------------------------------------------
  797.   # ● 魔法反射・無効
  798.   #--------------------------------------------------------------------------
  799.   def magic_reflection(target, obj)
  800.     return if obj.physical_attack
  801.     for state in target.states
  802.       for ext in state.extension
  803.         name = ext.split('')
  804.         next unless name[0] == "魔"
  805.         if name[2] == "反"
  806.           name = name.join
  807.           name.slice!("魔法反射/")
  808.           target.animation_id = name.to_i
  809.           target.animation_mirror = true if $back_attack
  810.           @reflection = true
  811.         else
  812.           name = name.join
  813.           name.slice!("魔法無効/")
  814.           target.animation_id = name.to_i
  815.           target.animation_mirror = true if $back_attack
  816.           @invalid = true
  817.         end  
  818.       end  
  819.     end
  820.   end
  821.   #--------------------------------------------------------------------------
  822.   # ● 物理反射・無効
  823.   #--------------------------------------------------------------------------
  824.   def physics_reflection(target, obj)
  825.     return if obj != nil && !obj.physical_attack
  826.     for state in target.states
  827.       for ext in state.extension
  828.         name = ext.split('')
  829.         next unless name[0] == "物"
  830.         if name[2] == "反"
  831.           name = name.join
  832.           name.slice!("物理反射/")
  833.           target.animation_id = name.to_i
  834.           target.animation_mirror = true if $back_attack
  835.           @reflection = true
  836.         else
  837.           name = name.join
  838.           name.slice!("物理無効/")
  839.           target.animation_id = name.to_i
  840.           target.animation_mirror = true if $back_attack
  841.           @invalid = true
  842.         end
  843.       end  
  844.     end
  845.   end
  846.   #--------------------------------------------------------------------------
  847.   # ● スキルコスト吸収
  848.   #--------------------------------------------------------------------------
  849.   def absorb_cost(target, obj)
  850.     for state in target.states
  851.       if state.extension.include?("コスト吸収")
  852.         cost = @active_battler.calc_mp_cost(obj)
  853.         # SP消費とHP消費で分ける
  854.         return target.hp += cost if obj.extension.include?("HP消費")
  855.         return target.mp += cost
  856.       end  
  857.     end
  858.   end
  859.   #--------------------------------------------------------------------------
  860.   # ● 吸収処理
  861.   #--------------------------------------------------------------------------
  862.   def absorb_attack(obj, target, index, actor)
  863.     absorb = target.hp_damage
  864.     absorb = target.mp_damage if target.mp_damage != 0
  865.     # ターゲットが複数同時の吸収処理
  866.     @wide_attack = true if obj.scope == 2 or obj.scope == 4 or obj.scope == 6 or obj.extension.include?("全域")
  867.     if @wide_attack && @absorb == nil && @targets.size != 1
  868.       # 吸収した分を戻す
  869.       @active_battler.hp -= @active_battler.hp_damage
  870.       @active_battler.mp -= @active_battler.mp_damage
  871.       # 後で吸い戻す数値として加算
  872.       @absorb = absorb
  873.       @absorb_target_size = @targets.size - 2
  874.     elsif @absorb != nil && @absorb_target_size > 0
  875.       @active_battler.hp -= @active_battler.hp_damage
  876.       @active_battler.mp -= @active_battler.mp_damage
  877.       @absorb += absorb
  878.       @absorb_target_size -= 1
  879.     # 複数ターゲットの最終吸収処理
  880.     elsif @absorb != nil
  881.       # 吸収した分を戻す
  882.       @active_battler.hp -= @active_battler.hp_damage
  883.       @active_battler.mp -= @active_battler.mp_damage
  884.       @absorb += absorb
  885.       # ここで全吸収分を反映
  886.       @active_battler.hp_damage = -@absorb
  887.       @active_battler.mp_damage = -@absorb if target.mp_damage != 0
  888.       @active_battler.hp -= @active_battler.hp_damage
  889.       @active_battler.mp -= @active_battler.mp_damage
  890.       # 吸収量が0の場合の吸収者側処理
  891.       absorb_action = ["absorb", nil, false] if @absorb == 0
  892.       absorb_action = [nil, nil, false] if @absorb != 0
  893.       @spriteset.set_damage_action(actor, index, absorb_action)
  894.       @active_battler.perform_collapse
  895.       @absorb = nil
  896.       @absorb_target_size = nil
  897.     # 単体での吸収処理
  898.     else
  899.       # 吸収量が0の場合の吸収者側処理
  900.       absorb_action = ["absorb", nil, false] if absorb == 0
  901.       absorb_action = [nil, nil, false] if absorb != 0
  902.       @spriteset.set_damage_action(actor, index, absorb_action)
  903.       # 逆吸収でHP0になった場合
  904.       @absorb_dead = true if @active_battler.hp == 0 && !@active_battler.non_dead
  905.     end
  906.     # 吸収量が0の場合の対象者側処理
  907.     return 0 if absorb == 0
  908.   end
  909.   #--------------------------------------------------------------------------
  910.   # ● アクション終了
  911.   #--------------------------------------------------------------------------
  912.   def action_end
  913.     # 初期化
  914.     @individual_target = nil
  915.     @help_window.visible = false if @help_window != nil && @help_window.visible
  916.     @active_battler.active = false
  917.     @active_battler.clear_action_results
  918.     # 念のため不死身化解除
  919.     unimmortaling
  920.     # 反射されていた場合
  921.     if @active_battler.reflex != nil
  922.       if @active_battler.action.skill?
  923.         obj = @active_battler.action.skill
  924.         @active_battler.perfect_skill_effect(@active_battler, obj)
  925.       elsif @active_battler.action.item?
  926.         obj = @active_battler.action.item
  927.         @active_battler.item_effect(@active_battler, obj)
  928.       else
  929.         @active_battler.perfect_attack_effect(@active_battler)
  930.       end
  931.       pop_damage(@active_battler, obj, @active_battler.reflex)
  932.       @active_battler.perform_collapse
  933.       @active_battler.reflex = nil
  934.       wait(N01::COLLAPSE_WAIT)
  935.     end
  936.     # 逆吸収で戦闘不能になった場合
  937.     if @absorb_dead
  938.       @active_battler.perform_collapse
  939.       @absorb_dead = false
  940.       wait(N01::COLLAPSE_WAIT)
  941.     end
  942.     # 次の行動までウエイトを挟む
  943.     wait(N01::ACTION_WAIT)
  944.   end  
  945.   #--------------------------------------------------------------------------
  946.   # ● ダメージ処理
  947.   #--------------------------------------------------------------------------
  948.   def damage_action(action)
  949.     # 個別処理の場合ターゲットを一つずつ抜き出す
  950.     @targets = [@individual_target.shift] if @active_battler.individual
  951.     # スキルの場合
  952.     if @active_battler.action.skill?
  953.       obj = @active_battler.action.skill
  954.       for target in @targets
  955.         return if target == nil
  956.         return if target.dead? && !obj.for_dead_friend?
  957.         # HPが0なら戦闘不能復活以外はミスしない
  958.         target.revival = true if obj.for_dead_friend?
  959.         if target.hp == 0 && !obj.for_dead_friend?
  960.           target.perfect_skill_effect(@active_battler, obj)
  961.         # 必中確認
  962.         elsif obj.extension.include?("必中")
  963.           target.perfect_skill_effect(@active_battler, obj)
  964.         else
  965.           # 反射確認
  966.           magic_reflection(target, obj) unless obj.extension.include?("反射無視")
  967.           physics_reflection(target, obj) unless obj.extension.include?("反射無視")
  968.           # ダメージ計算
  969.           target.skill_effect(@active_battler, obj) unless @reflection or @invalid
  970.         end  
  971.         pop_damage(target, obj, action) unless @reflection or @invalid
  972.         # コスト吸収確認
  973.         absorb_cost(target, obj)
  974.         # 反射アクション取得
  975.         @active_battler.reflex = action if @reflection
  976.         @reflection = false
  977.         @invalid = false
  978.       end
  979.     # アイテムの場合
  980.     elsif @active_battler.action.item?
  981.       obj = @active_battler.action.item
  982.       for target in @targets
  983.         return if target == nil
  984.         return if target.dead? && !obj.for_dead_friend?
  985.         target.revival = true if obj.for_dead_friend?
  986.         if target.hp == 0 && !obj.for_dead_friend?
  987.           target.perfect_item_effect(@active_battler, obj)
  988.         elsif obj.extension.include?("必中")
  989.           target.perfect_item_effect(@active_battler, obj)
  990.         else
  991.           magic_reflection(target, obj) unless obj.extension.include?("反射無視")
  992.           physics_reflection(target, obj) unless obj.extension.include?("反射無視")
  993.           target.item_effect(@active_battler, obj) unless @reflection or @invalid
  994.         end
  995.         pop_damage(target, obj, action) unless @reflection or @invalid
  996.         @active_battler.reflex = action if @reflection
  997.         @reflection = false
  998.         @invalid = false
  999.       end
  1000.     # 通常攻撃の場合
  1001.     else
  1002.       for target in @targets
  1003.         return if target == nil or target.dead?
  1004.         physics_reflection(target, nil)
  1005.         target.perfect_attack_effect(@active_battler) if target.hp <= 0
  1006.         target.attack_effect(@active_battler) unless target.hp <= 0 or @reflection or @invalid
  1007.         pop_damage(target, nil, action) unless @reflection or @invalid
  1008.         # 反射アクション取得
  1009.         @active_battler.reflex = action if @reflection
  1010.         @reflection = false
  1011.         @invalid = false
  1012.       end
  1013.     end
  1014.     # ステータスウインドウをリフレッシュ
  1015.     @status_window.refresh
  1016.     # 連続行動中のランダムターゲットを考慮し、すぐに次のターゲットを選択
  1017.     return if obj == nil
  1018.     target_decision(obj) if obj.extension.include?("ランダムターゲット")
  1019.   end
  1020.   #--------------------------------------------------------------------------
  1021.   # ● ダメージ表示  action = [アニメID,反転フラグ,リアクション許可]
  1022.   #--------------------------------------------------------------------------
  1023.   def pop_damage(target, obj, action)
  1024.     index = @active_battler.index
  1025.     actor = @active_battler.actor?
  1026.     if obj != nil
  1027.       # スキルやアイテムが吸収属性なら
  1028.       absorb = absorb_attack(obj, target, index, actor) if obj.absorb_damage
  1029.       action.push(true) if absorb == 0
  1030.       # 拡張設定でダメージアクション禁止なら
  1031.       action[2] = false if obj.extension.include?("ダメージアクション禁止")
  1032.     end
  1033.     # 対象のリアクション
  1034.     @spriteset.set_damage_action(target.actor?, target.index, action)
  1035.   end
  1036. end  
  1037. #==============================================================================
  1038. # ■ Game_BattleAction
  1039. #------------------------------------------------------------------------------
  1040. #  戦闘行動を扱うクラスです。
  1041. #==============================================================================
  1042. class Game_BattleAction
  1043.   #--------------------------------------------------------------------------
  1044.   # ● 行動が有効か否かの判定  ※再定義
  1045.   #--------------------------------------------------------------------------
  1046.   def valid?
  1047.     return false if nothing?                      # 何もしない
  1048.     return true if @forcing                       # 行動強制中
  1049.     return false unless battler.movable?          # 行動不能
  1050.     if skill?                                     # スキル
  1051.       if battler.derivation != 0
  1052.         battler.derivation = 0
  1053.         return true
  1054.       end  
  1055.       return false unless battler.skill_can_use?(skill)
  1056.     elsif item?                                   # アイテム
  1057.       return false unless friends_unit.item_can_use?(item)
  1058.     end
  1059.     return true
  1060.   end
  1061.   #--------------------------------------------------------------------------
  1062.   # ● ターゲットの配列作成  ※再定義
  1063.   #--------------------------------------------------------------------------
  1064.   def make_targets
  1065.     if attack?
  1066.       return make_attack_targets
  1067.     elsif skill?
  1068.       targets = make_obj_targets(skill)
  1069.       targets = make_obj_targets2(skill, targets) if skill.extension != ["なし"]
  1070.       return targets
  1071.     elsif item?
  1072.       targets = make_obj_targets(item)
  1073.       targets = make_obj_targets2(item, targets) if item.extension != ["なし"]
  1074.       return targets
  1075.     end
  1076.   end
  1077.   #--------------------------------------------------------------------------
  1078.   # ● スキルまたはアイテムのターゲット作成の拡張
  1079.   #--------------------------------------------------------------------------
  1080.   def make_obj_targets2(obj, targets)
  1081.     if obj.extension.include?("全域")
  1082.       targets = []
  1083.       targets += opponents_unit.existing_members
  1084.       targets += friends_unit.existing_members
  1085.     end
  1086.     if obj.extension.include?("自分以外")
  1087.       targets.delete($game_party.members[battler.index]) if battler.actor?
  1088.       targets.delete($game_troop.members[battler.index]) unless battler.actor?
  1089.     end
  1090.     return targets.compact
  1091.   end
  1092. end
  1093. #==============================================================================
  1094. # ■ Sprite_Base
  1095. #------------------------------------------------------------------------------
  1096. #  アニメーションの表示処理を追加したスプライトのクラスです。
  1097. #==============================================================================
  1098. class Sprite_Base < Sprite
  1099.   #--------------------------------------------------------------------------
  1100.   # ● アニメーションの更新 アニメをスプライトに追従するように
  1101.   #--------------------------------------------------------------------------
  1102.   alias update_animation_n01 update_animation
  1103.   def update_animation
  1104.     @animation_ox = x - ox + width / 2
  1105.     @animation_oy = y - oy + height / 2
  1106.     update_animation_n01
  1107.   end
  1108. end  
  1109. #==============================================================================
  1110. # ■ Spriteset_Battle
  1111. #------------------------------------------------------------------------------
  1112. #  バトル画面のスプライトをまとめたクラスです。
  1113. #==============================================================================
  1114. class Spriteset_Battle
  1115.   #--------------------------------------------------------------------------
  1116.   # ● エネミースプライトの作成
  1117.   #--------------------------------------------------------------------------
  1118.   def create_enemies
  1119.     @enemy_sprites = []
  1120.     for i in 0...$game_troop.members.size
  1121.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, $game_troop.members[i]))
  1122.       @enemy_sprites[i].opacity = 0 if $game_troop.members[i].hidden
  1123.     end
  1124.   end
  1125.   #--------------------------------------------------------------------------
  1126.   # ● アクタースプライトの作成
  1127.   #--------------------------------------------------------------------------
  1128.   def create_actors
  1129.     @actor_sprites = []
  1130.     # メンバー最大数スプライトを用意
  1131.     for i in 0...N01::MAX_MEMBER
  1132.       @actor_sprites.push(Sprite_Battler.new(@viewport1, $game_party.members[i]))
  1133.       if $game_party.members[i] != nil
  1134.         @actor_sprites[i].make_battler
  1135.         @actor_sprites[i].first_action
  1136.       end
  1137.     end
  1138.   end
  1139.   #--------------------------------------------------------------------------
  1140.   # ● バトルフロアスプライトの作成
  1141.   #--------------------------------------------------------------------------
  1142.   def create_battlefloor
  1143.     @battlefloor_sprite = Sprite.new(@viewport1)
  1144.     @battlefloor_sprite.bitmap = Cache.system("BattleFloor")
  1145.     @battlefloor_sprite.x = N01::FLOOR[0]
  1146.     @battlefloor_sprite.y = N01::FLOOR[1]
  1147.     @battlefloor_sprite.opacity = N01::FLOOR[2]
  1148.     @battlefloor_sprite.z = 1
  1149.     # バックアタック時、フロアと背景を反転させる
  1150.     back_attack
  1151.     if $back_attack
  1152.       @battlefloor_sprite.mirror = true
  1153.       @battleback_sprite.mirror = true
  1154.       $game_troop.surprise = true
  1155.     else  
  1156.       $game_troop.surprise = false
  1157.     end  
  1158.   end  
  1159.   #--------------------------------------------------------------------------
  1160.   # ● バックアタック
  1161.   #--------------------------------------------------------------------------
  1162.   def back_attack  
  1163.     # 強制バックアタックならフラグオン
  1164.     for i in 0...N01::BACK_ATTACK_SWITCH.size
  1165.       return $back_attack = true if $game_switches[N01::BACK_ATTACK_SWITCH[i]]
  1166.     end
  1167.     # 不意打ちが発生していなければ処理を中断
  1168.     return $back_attack = false unless $game_troop.surprise && N01::BACK_ATTACK
  1169.     # 装備等によるバックアタック無効化をチェック
  1170.     for actor in $game_party.members
  1171.       return $back_attack = false if N01::NON_BACK_ATTACK_WEAPONS.include?(actor.weapon_id)
  1172.       return $back_attack = false if N01::NON_BACK_ATTACK_ARMOR1.include?(actor.armor1_id)
  1173.       return $back_attack = false if N01::NON_BACK_ATTACK_ARMOR2.include?(actor.armor2_id)
  1174.       return $back_attack = false if N01::NON_BACK_ATTACK_ARMOR3.include?(actor.armor3_id)
  1175.       return $back_attack = false if N01::NON_BACK_ATTACK_ARMOR4.include?(actor.armor4_id)
  1176.       for i in 0...N01::NON_BACK_ATTACK_SKILLS.size
  1177.         return $back_attack = false if actor.skill_id_learn?(N01::NON_BACK_ATTACK_SKILLS[i])
  1178.       end  
  1179.     end
  1180.     # バックアタック発生
  1181.     $back_attack = true
  1182.   end
  1183.   #--------------------------------------------------------------------------
  1184.   # ● アクタースプライトの更新  ※再定義
  1185.   #--------------------------------------------------------------------------
  1186.   def update_actors
  1187.     for i in 0...@actor_sprites.size
  1188.       if $party_change
  1189.         $party_change = false
  1190.         dispose_actors
  1191.         return create_actors
  1192.       end
  1193.       if @actor_sprites[i].battler.id != $game_party.members[i].id
  1194.         dispose_actors
  1195.         return create_actors
  1196.       end
  1197.       @actor_sprites[i].update
  1198.     end
  1199.   end
  1200.   #--------------------------------------------------------------------------
  1201.   # ● ダメージアクションセット 
  1202.   #--------------------------------------------------------------------------  
  1203.   def set_damage_action(actor, index, action)
  1204.     @actor_sprites[index].damage_action(action) if actor
  1205.     @enemy_sprites[index].damage_action(action) unless actor
  1206.   end
  1207.   #--------------------------------------------------------------------------
  1208.   # ● ダメージPOPセット 
  1209.   #--------------------------------------------------------------------------  
  1210.   def set_damage_pop(actor, index, damage)
  1211.     @actor_sprites[index].damage_pop(damage) if actor
  1212.     @enemy_sprites[index].damage_pop(damage) unless actor
  1213.   end
  1214.   #--------------------------------------------------------------------------
  1215.   # ● ターゲットセット
  1216.   #--------------------------------------------------------------------------  
  1217.   def set_target(actor, index, target)
  1218.     @actor_sprites[index].get_target(target) if actor
  1219.     @enemy_sprites[index].get_target(target) unless actor
  1220.   end
  1221.   #--------------------------------------------------------------------------
  1222.   # ● アクションセット
  1223.   #--------------------------------------------------------------------------  
  1224.   def set_action(actor, index, kind)
  1225.     @actor_sprites[index].start_action(kind) if actor
  1226.     @enemy_sprites[index].start_action(kind) unless actor
  1227.   end  
  1228.   #--------------------------------------------------------------------------
  1229.   # ● 待機アクションセット
  1230.   #--------------------------------------------------------------------------  
  1231.   def set_stand_by_action(actor, index)
  1232.     @actor_sprites[index].push_stand_by if actor
  1233.     @enemy_sprites[index].push_stand_by unless actor
  1234.   end  
  1235.   #--------------------------------------------------------------------------
  1236.   # ● カーソル移動のセット
  1237.   #--------------------------------------------------------------------------  
  1238.   def set_cursor(actor, index)
  1239.     return [@actor_sprites[index].x, @actor_sprites[index].y] if actor
  1240.     return [@enemy_sprites[index].x, @enemy_sprites[index].y] unless actor
  1241.   end
  1242. end
  1243. #==============================================================================
  1244. # ■ Sprite_MoveAnime
  1245. #------------------------------------------------------------------------------
  1246. #  アニメ飛ばし用のスプライトです。
  1247. #==============================================================================
  1248. class Sprite_MoveAnime < Sprite_Base
  1249.   #--------------------------------------------------------------------------
  1250.   # ● 公開インスタンス変数
  1251.   #--------------------------------------------------------------------------
  1252.   attr_accessor :battler
  1253.   attr_accessor :base_x   # 自身の基本X座標
  1254.   attr_accessor :base_y   # 自身の基本Y座標
  1255.   #--------------------------------------------------------------------------
  1256.   # ● オブジェクト初期化
  1257.   #--------------------------------------------------------------------------
  1258.   def initialize(viewport,battler = nil)
  1259.     super(viewport)
  1260.     @battler = battler
  1261.     self.visible = false
  1262.     @base_x = 0
  1263.     @base_y = 0
  1264.     @move_x = 0                # 動かしたX座標
  1265.     @move_y = 0                # 動かしたY座標
  1266.     @moving_x = 0              # 1フレーム当たり動かすX座標
  1267.     @moving_y = 0              # 1フレーム当たり動かすY座標
  1268.     @orbit = 0                 # 円軌道
  1269.     @orbit_plus = 0            # 加算する円軌道
  1270.     @orbit_time = 0            # 円軌道計算時間
  1271.     @through = false           # 貫通するかどうか
  1272.     @finish = false            # 移動終了フラグ
  1273.     @time = 0                  # 移動時間
  1274.     @angle = 0                 # 武器の角度
  1275.     @angling = 0               # 1フレーム当たり動かす武器の角度
  1276.   end
  1277.   #--------------------------------------------------------------------------
  1278.   # ● アクションを取得
  1279.   #--------------------------------------------------------------------------  
  1280.   def anime_action(id,mirror,distanse_x,distanse_y,type,speed,orbit,weapon,icon_index,icon_weapon)
  1281.     # 1フレームあたりの移動距離を算出
  1282.     @time = speed
  1283.     @moving_x = distanse_x / speed
  1284.     @moving_y = distanse_y / speed
  1285.     # 貫通するかどうか
  1286.     @through = true if type == 1
  1287.     # 円軌道を取得
  1288.     @orbit_plus = orbit
  1289.     @orbit_time = @time
  1290.     # 武器グラフィックの有無
  1291.     if weapon != ""
  1292.       action = N01::ANIME[weapon].dup
  1293.       @angle = action[0]
  1294.       end_angle = action[1]
  1295.       time = action[2]
  1296.       # 1フレームあたりの回転角度を出す
  1297.       @angling = (end_angle - @angle)/ time
  1298.       # 開始角度を取る
  1299.       self.angle = @angle
  1300.       # 武器グラフィックを表示
  1301.       self.mirror = mirror
  1302.       if icon_weapon
  1303.         self.bitmap = Cache.system("Iconset")
  1304.         self.src_rect.set(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
  1305.         self.ox = 12
  1306.         self.oy = 12
  1307.       else
  1308.         self.bitmap = Cache.character(icon_index)
  1309.         self.ox = self.bitmap.width / 2
  1310.         self.oy = self.bitmap.height / 2
  1311.       end  
  1312.       self.visible = true
  1313.       # バトラーより手前に表示
  1314.       self.z = 1000
  1315.     end  
  1316.     # 最初は動かさず一回だけ表示
  1317.     self.x = @base_x + @move_x
  1318.     self.y = @base_y + @move_y + @orbit
  1319.     if id != 0
  1320.       animation = $data_animations[id]
  1321.       start_animation(animation, mirror)
  1322.     end
  1323.   end  
  1324.   #--------------------------------------------------------------------------
  1325.   # ● 変化した動きをリセット
  1326.   #--------------------------------------------------------------------------  
  1327.   def action_reset
  1328.     @moving_x = @moving_y = @move_x = @move_y = @base_x = @base_y = @orbit = 0
  1329.     @orbit_time = @angling = @angle = 0   
  1330.     @through = self.visible = @finish = false
  1331.     dispose_animation
  1332.   end   
  1333.   #--------------------------------------------------------------------------
  1334.   # ● 貫通終了
  1335.   #--------------------------------------------------------------------------  
  1336.   def finish?
  1337.     return @finish
  1338.   end
  1339.   #--------------------------------------------------------------------------
  1340.   # ● フレーム更新
  1341.   #--------------------------------------------------------------------------
  1342.   def update
  1343.     super
  1344.     # 時間消費
  1345.     @time -= 1
  1346.     # 時間まで指定の動きを
  1347.     if @time >= 0
  1348.       @move_x += @moving_x
  1349.       @move_y += @moving_y
  1350.       # 円軌道計算
  1351.       if @time < @orbit_time / 2
  1352.         @orbit_plus = @orbit_plus * 5 / 4
  1353.       elsif @time == @orbit_time / 2
  1354.         @orbit_plus *= -1
  1355.       else
  1356.         @orbit_plus = @orbit_plus * 2 / 3
  1357.       end  
  1358.       @orbit += @orbit_plus
  1359.     end   
  1360.     # 時間がきても貫通ならそのまま直進
  1361.     @time = 100 if @time < 0 && @through
  1362.     @finish = true if @time < 0 && !@through
  1363.     # スプライトの座標を更新
  1364.     self.x = @base_x + @move_x
  1365.     self.y = @base_y + @move_y + @orbit
  1366.     # 貫通の場合、画面から消えたら終了フラグオン
  1367.     if self.x < -200 or self.x > 840 or self.y < -200 or self.y > 680
  1368.       @finish = true
  1369.     end
  1370.     # 武器グラフィック更新
  1371.     if self.visible
  1372.       @angle += @angling
  1373.       self.angle = @angle
  1374.     end  
  1375.   end
  1376. end
  1377. #==============================================================================
  1378. # ■ Sprite_Weapon
  1379. #------------------------------------------------------------------------------
  1380. #  ウエポン表示用のスプライトです。
  1381. #==============================================================================
  1382. class Sprite_Weapon < Sprite_Base
  1383.   #--------------------------------------------------------------------------
  1384.   # ● 公開インスタンス変数
  1385.   #--------------------------------------------------------------------------
  1386.   attr_accessor :battler
  1387.   #--------------------------------------------------------------------------
  1388.   # ● オブジェクト初期化
  1389.   #--------------------------------------------------------------------------
  1390.   def initialize(viewport,battler = nil)
  1391.     super(viewport)
  1392.     @battler = battler
  1393.     @action = []                     # 武器のアクション情報
  1394.     @move_x = 0                      # 動かしたX座標
  1395.     @move_y = 0                      # 動かしたY座標
  1396.     @move_z = 0                      # 動かしたZ座標
  1397.     @plus_x = 0                      # 微調整分のX座標
  1398.     @plus_y = 0                      # 微調整分のY座標
  1399.     @angle = 0                       # 武器の回転角度
  1400.     @zoom_x = 1                      # 武器の横拡大率
  1401.     @zoom_y = 1                      # 武器の縦拡大率
  1402.     @moving_x = 0                    # 1フレーム当たり動かすX座標
  1403.     @moving_y = 0                    # 1フレーム当たり動かすY座標
  1404.     @angling = 0                     # 1フレーム当たりの回転角度
  1405.     @zooming_x = 1                   # 1フレーム当たりの横拡大率
  1406.     @zooming_y = 1                   # 1フレーム当たりの縦拡大率   
  1407.     @freeze = -1                     # 固定アニメ用武器位置
  1408.     @mirroring = false               # バトラーが反転しているか
  1409.     @time = N01::ANIME_PATTERN + 1   # 更新回数
  1410.     # 武器を取得
  1411.     weapon_graphics
  1412.   end
  1413.   #--------------------------------------------------------------------------
  1414.   # ● 解放
  1415.   #--------------------------------------------------------------------------
  1416.   def dispose
  1417.     self.bitmap.dispose if self.bitmap != nil
  1418.     super
  1419.   end
  1420.   #--------------------------------------------------------------------------
  1421.   # ● 武器を取得
  1422.   #--------------------------------------------------------------------------  
  1423.   def weapon_graphics(left = false)
  1424.     if @battler.actor?
  1425.       weapon = @battler.weapons[0] unless left
  1426.       weapon = @battler.weapons[1] if left
  1427.     else
  1428.       weapon = $data_weapons[@battler.weapon]
  1429.     end
  1430.     # 武器がなければ処理をキャンセル
  1431.     return if weapon == nil
  1432.     # アイコンを利用するなら
  1433.     if weapon.graphic == ""
  1434.       icon_index = weapon.icon_index
  1435.       self.bitmap = Cache.system("Iconset")
  1436.       self.src_rect.set(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
  1437.       @weapon_width = @weapon_height = 24
  1438.     # ID指定があったら、アイコンではなくそのグラフィックを取得  
  1439.     else
  1440.       self.bitmap = Cache.character(weapon.graphic)
  1441.       @weapon_width = self.bitmap.width
  1442.       @weapon_height = self.bitmap.height
  1443.     end
  1444.   end
  1445.   #--------------------------------------------------------------------------
  1446.   # ● アニメ固定時の武器位置を取得
  1447.   #--------------------------------------------------------------------------  
  1448.   def freeze(action)
  1449.     @freeze = action
  1450.   end
  1451.   #--------------------------------------------------------------------------
  1452.   # ● 武器アクションを取得 freeze
  1453.   #--------------------------------------------------------------------------  
  1454.   def weapon_action(action,loop)
  1455.     # 名称がない場合は非表示に
  1456.     if action == ""
  1457.       self.visible = false
  1458.     # 素手なら非表示に
  1459.     elsif @weapon_id == 0
  1460.       self.visible = false
  1461.     # 武器アクション情報を受け取る
  1462.     else
  1463.       @action = N01::ANIME[action]
  1464.       act0 = @action[0]
  1465.       act1 = @action[1]
  1466.       act2 = @action[2]
  1467.       act3 = @action[3]
  1468.       act4 = @action[4]
  1469.       act5 = @action[5]
  1470.       act6 = @action[6]
  1471.       act7 = @action[7]
  1472.       act8 = @action[8]
  1473.       act9 = @action[9]
  1474.       act10 = @action[10]
  1475.       # バトラーが反転してる場合、X軸の動きを逆に
  1476.       if @mirroring
  1477.         act0 *= -1
  1478.         act3 *= -1
  1479.         act4 *= -1
  1480.         act9 *= -1
  1481.       end
  1482.       # キャラのアニメパターン数をチェック
  1483.       time = N01::ANIME_PATTERN
  1484.       # Z座標をチェック
  1485.       if act2
  1486.         self.z = @battler.position_z + 1
  1487.       else
  1488.         self.z = @battler.position_z - 1
  1489.       end
  1490.       # 反転はここで実行し、すでに反転している場合は元に戻す
  1491.       if act6
  1492.         if self.mirror
  1493.           self.mirror = false
  1494.         else
  1495.           self.mirror = true
  1496.         end
  1497.       end
  1498.       # バトラーの反転を反映
  1499.       if @mirroring
  1500.         if self.mirror
  1501.           self.mirror = false
  1502.         else
  1503.           self.mirror = true
  1504.         end
  1505.       end
  1506.       # アニメパターン数で割った変化を計算
  1507.       @moving_x = act0 / time
  1508.       @moving_y = act1 / time
  1509.       # 最初の角度を代入
  1510.       @angle = act3
  1511.       self.angle = @angle
  1512.       # 更新角度を計算
  1513.       @angling = (act4 - act3)/ time
  1514.       # 角度が割り切れない場合、ここで余り分を回転加算
  1515.       @angle += (act4 - act3) % time
  1516.       # 拡大縮小
  1517.       @zooming_x = (1 - act7) / time
  1518.       @zooming_y = (1 - act8) / time
  1519.       # 反転してる場合、回転元の原点を逆に
  1520.       if self.mirror
  1521.         case act5
  1522.         when 1 # 左上→右上に
  1523.           act5 = 2
  1524.         when 2 # 右上→左上に
  1525.           act5 = 1
  1526.         when 3 # 左下→右下に
  1527.           act5 = 4
  1528.         when 4 # 右下→左下に
  1529.           act5 = 3
  1530.         end  
  1531.       end   
  1532.       # 回転元の原点を設定
  1533.       case act5
  1534.       when 0 # 中心
  1535.         self.ox = @weapon_width / 2
  1536.         self.oy = @weapon_height / 2
  1537.       when 1 # 左上
  1538.         self.ox = 0
  1539.         self.oy = 0
  1540.       when 2 # 右上
  1541.         self.ox = @weapon_width
  1542.         self.oy = 0
  1543.       when 3 # 左下
  1544.         self.ox = 0
  1545.         self.oy = @weapon_height
  1546.       when 4 # 右下
  1547.         self.ox = @weapon_width
  1548.         self.oy = @weapon_height
  1549.       end  
  1550.       # 座標微調整
  1551.       @plus_x = act9
  1552.       @plus_y = act10
  1553.       # 往復ループならフラグオン
  1554.       @loop = true if loop == 0
  1555.       # 初回で0から始まるように、この時点で-1回の動きをさせる
  1556.       @angle -= @angling
  1557.       @zoom_x -= @zooming_x
  1558.       @zoom_y -= @zooming_y
  1559.       # スプライトの座標を更新
  1560.       @move_x -= @moving_x
  1561.       @move_y -= @moving_y
  1562.       @move_z = 1000 if act2
  1563.       # 固定アニメの場合、この時点で動きを消化
  1564.       if @freeze != -1
  1565.         for i in 0..@freeze + 1
  1566.           @angle += @angling
  1567.           @zoom_x += @zooming_x
  1568.           @zoom_y += @zooming_y
  1569.           # スプライトの座標を更新
  1570.           @move_x += @moving_x
  1571.           @move_y += @moving_y
  1572.         end
  1573.         @angling = 0
  1574.         @zooming_x = 0
  1575.         @zooming_y = 0
  1576.         @moving_x = 0
  1577.         @moving_y = 0
  1578.       end
  1579.       # 可視
  1580.       self.visible = true
  1581.     end
  1582.   end  
  1583.   #--------------------------------------------------------------------------
  1584.   # ● 変化した動きを全部リセット
  1585.   #--------------------------------------------------------------------------  
  1586.   def action_reset
  1587.     @moving_x = @moving_y = @move_x = @move_y = @plus_x = @plus_y = 0
  1588.     @angling = @zooming_x = @zooming_y = @angle = self.angle = @move_z = 0
  1589.     @zoom_x = @zoom_y = self.zoom_x = self.zoom_y = 1
  1590.     self.mirror = self.visible = @loop = false
  1591.     @freeze = -1
  1592.     @action = []
  1593.     @time = N01::ANIME_PATTERN + 1
  1594.   end
  1595.   #--------------------------------------------------------------------------
  1596.   # ● 往復ループさせる
  1597.   #--------------------------------------------------------------------------  
  1598.   def action_loop
  1599.     # 動きを反対に
  1600.     @angling *= -1
  1601.     @zooming_x *= -1
  1602.     @zooming_y *= -1
  1603.     @moving_x *= -1
  1604.     @moving_y *= -1
  1605.   end  
  1606.   #--------------------------------------------------------------------------
  1607.   # ● アクターが反転している場合、自身も反転させる
  1608.   #--------------------------------------------------------------------------
  1609.   def mirroring
  1610.     return @mirroring = false if @mirroring
  1611.     @mirroring = true
  1612.   end  
  1613.   #--------------------------------------------------------------------------
  1614.   # ● アクターアニメが更新された時のみ武器アクションの変化を更新
  1615.   #--------------------------------------------------------------------------
  1616.   def action
  1617.     return if @time <= 0
  1618.     @time -= 1
  1619.     # 回転、拡大縮小を更新
  1620.     @angle += @angling
  1621.     @zoom_x += @zooming_x
  1622.     @zoom_y += @zooming_y
  1623.     # スプライトの座標を更新
  1624.     @move_x += @moving_x
  1625.     @move_y += @moving_y
  1626.     # 往復ループなら動きを反転
  1627.     if @loop && @time == 0
  1628.       @time = N01::ANIME_PATTERN + 1
  1629.       action_loop
  1630.     end
  1631.   end  
  1632.   #--------------------------------------------------------------------------
  1633.   # ● フレーム更新
  1634.   #--------------------------------------------------------------------------
  1635.   def update
  1636.     super
  1637.     # 回転、拡大縮小を更新
  1638.     self.angle = @angle
  1639.     self.zoom_x = @zoom_x
  1640.     self.zoom_y = @zoom_y
  1641.     # スプライトの座標を更新
  1642.     self.x = @battler.position_x + @move_x + @plus_x
  1643.     self.y = @battler.position_y + @move_y + @plus_y
  1644.     self.z = @battler.position_z + @move_z - 1
  1645.   end
  1646. end

  1647. #==============================================================================
  1648. # ■ Game_Battler (分割定義 1)
  1649. #------------------------------------------------------------------------------
  1650. #  バトラーを扱うクラスです。
  1651. #==============================================================================
  1652. class Game_Battler
  1653.   #--------------------------------------------------------------------------
  1654.   # ● 公開インスタンス変数
  1655.   #--------------------------------------------------------------------------
  1656.   attr_accessor :hp_damage        # 行動結果: HP ダメージ
  1657.   attr_accessor :mp_damage        # 行動結果: MP ダメージ
  1658.   attr_accessor :move_x           # X方向の移動補正
  1659.   attr_accessor :move_y           # Y方向の移動補正
  1660.   attr_accessor :move_z           # Z方向の移動補正
  1661.   attr_accessor :jump             # ジャンプ補正
  1662.   attr_accessor :active           # アクティブか
  1663.   attr_accessor :non_dead         # 不死身フラグ
  1664.   attr_accessor :dying            # 即死フラグ
  1665.   attr_accessor :slip_damage      # スリップダメージフラグ
  1666.   attr_accessor :derivation       # スキル派生ID
  1667.   attr_accessor :individual       # スキル派生ID
  1668.   attr_accessor :play             # アクション情報
  1669.   attr_accessor :force_action     # 強制されるアクション情報
  1670.   attr_accessor :force_target     # ターゲット変更情報
  1671.   attr_accessor :revival          # 復活
  1672.   attr_accessor :double_damage    # HPMP両方同時ダメージ
  1673.   attr_accessor :reflex           # スキル反射情報
  1674.   attr_accessor :absorb           # スキルコスト吸収
  1675.   attr_reader   :base_position_x  # 初期配置X座標
  1676.   attr_reader   :base_position_y  # 初期配置Y座標   
  1677.   attr_accessor :force_damage     # イベントでのダメージ
  1678.   #--------------------------------------------------------------------------
  1679.   # ● オブジェクト初期化
  1680.   #--------------------------------------------------------------------------
  1681.   alias initialize_n01 initialize
  1682.   def initialize
  1683.     initialize_n01
  1684.     @move_x = @move_y = @move_z = @plus_y = @jump = @derivation = @play = 0
  1685.     @force_action = @force_target = @base_position_x = @base_position_y = 0
  1686.     @absorb = @act_time = @force_damage = 0
  1687.     @active = @non_dead = @individual = @slip_damage = @revival = false
  1688.     @double_damage = @dying = false
  1689.   end
  1690.   #--------------------------------------------------------------------------
  1691.   # ● 一番新しいステートIDを返す
  1692.   #--------------------------------------------------------------------------
  1693.   def state_id
  1694.     return @states[@states.size - 1]
  1695.   end
  1696.   #--------------------------------------------------------------------------
  1697.   # ● スキルの使用可能判定  ※再定義
  1698.   #--------------------------------------------------------------------------
  1699.   def skill_can_use?(skill)
  1700.     return false unless skill.is_a?(RPG::Skill)
  1701.     return false unless movable?
  1702.     return false if silent? and skill.spi_f > 0
  1703.     if skill.extension.include?("HP消費")
  1704.       return false if calc_mp_cost(skill) > hp
  1705.     else
  1706.       return false if calc_mp_cost(skill) > mp
  1707.     end
  1708.     if $game_temp.in_battle
  1709.       return skill.battle_ok?
  1710.     else
  1711.       return skill.menu_ok?
  1712.     end
  1713.   end
  1714.   #--------------------------------------------------------------------------
  1715.   # ● スキルの消費 MP 計算  ※再定義
  1716.   #--------------------------------------------------------------------------
  1717.   def calc_mp_cost(skill)
  1718.     if half_mp_cost && !skill.extension.include?("MP消費半分無効")
  1719.       cost = skill.mp_cost * 75 / 100
  1720.     else
  1721.       cost = skill.mp_cost
  1722.     end
  1723.     if skill.extension.include?("%コストMAX")
  1724.       return self.maxhp * cost / 100 if skill.extension.include?("HP消費")
  1725.       return self.maxmp * cost / 100
  1726.     elsif skill.extension.include?("%コストNOW")
  1727.       return self.hp * cost / 100 if skill.extension.include?("HP消費")
  1728.       return self.mp * cost / 100
  1729.     end
  1730.     return cost
  1731.   end
  1732.   #--------------------------------------------------------------------------
  1733.   # ● スキルコスト消費
  1734.   #--------------------------------------------------------------------------
  1735.   def consum_skill_cost(skill)
  1736.     return false unless skill_can_use?(skill)
  1737.     cost = calc_mp_cost(skill)
  1738.     return self.hp -= cost if skill.extension.include?("HP消費")
  1739.     return self.mp -= cost
  1740.   end
  1741.   #--------------------------------------------------------------------------
  1742.   # ● 通常攻撃によるダメージ計算  二刀流補正
  1743.   #--------------------------------------------------------------------------
  1744.   alias make_attack_damage_value_n01 make_attack_damage_value
  1745.   def make_attack_damage_value(attacker)
  1746.     make_attack_damage_value_n01(attacker)
  1747.     # 二本の武器を装備しているときのみ補正を有効に
  1748.     return unless attacker.actor?
  1749.     return if attacker.weapons[0] == nil
  1750.     return if attacker.weapons[1] == nil
  1751.     @hp_damage = @hp_damage * N01::TWO_SWORDS_STYLE[0] / 100
  1752.   end
  1753.   #--------------------------------------------------------------------------
  1754.   # ● スキルまたはアイテムによるダメージ計算 二刀流補正
  1755.   #--------------------------------------------------------------------------
  1756.   alias make_obj_damage_value_n01 make_obj_damage_value
  1757.   def make_obj_damage_value(user, obj)
  1758.     make_obj_damage_value_n01(user, obj)
  1759.     # 二本の武器を装備しているときのみ補正を有効に
  1760.     return unless user.actor?
  1761.     return if user.weapons[0] == nil
  1762.     return if user.weapons[1] == nil
  1763.     if obj.damage_to_mp  
  1764.       @mp_damage = @mp_damage * N01::TWO_SWORDS_STYLE[1] / 100 # MP にダメージ
  1765.     else
  1766.       @hp_damage = @hp_damage * N01::TWO_SWORDS_STYLE[1] / 100 # HP にダメージ
  1767.     end
  1768. end
  1769.   #--------------------------------------------------------------------------
  1770.   # ● 通常攻撃の効果適用  すでに戦闘不能で絶対に回避できない処理
  1771.   #--------------------------------------------------------------------------
  1772.   def perfect_attack_effect(attacker)
  1773.     clear_action_results
  1774.     make_attack_damage_value(attacker)            # ダメージ計算
  1775.     execute_damage(attacker)                      # ダメージ反映
  1776.     apply_state_changes(attacker)                 # ステート変化
  1777.   end
  1778.   #--------------------------------------------------------------------------
  1779.   # ● スキルの効果適用  すでに戦闘不能で絶対に回避できない処理
  1780.   #--------------------------------------------------------------------------
  1781.   def perfect_skill_effect(user, skill)
  1782.     clear_action_results
  1783.     make_obj_damage_value(user, skill)            # ダメージ計算
  1784.     make_obj_absorb_effect(user, skill)           # 吸収効果計算
  1785.     execute_damage(user)                          # ダメージ反映
  1786.     apply_state_changes(skill)                    # ステート変化
  1787.   end
  1788.   #--------------------------------------------------------------------------
  1789.   # ● アイテムの効果適用  すでに戦闘不能で絶対に回避できない処理
  1790.   #--------------------------------------------------------------------------
  1791.   def perfect_item_effect(user, item)
  1792.     clear_action_results
  1793.     hp_recovery = calc_hp_recovery(user, item)    # HP 回復量計算
  1794.     mp_recovery = calc_mp_recovery(user, item)    # MP 回復量計算
  1795.     make_obj_damage_value(user, item)             # ダメージ計算
  1796.     @hp_damage -= hp_recovery                     # HP 回復量を差し引く
  1797.     @mp_damage -= mp_recovery                     # MP 回復量を差し引く
  1798.     make_obj_absorb_effect(user, item)            # 吸収効果計算
  1799.     execute_damage(user)                          # ダメージ反映
  1800.     item_growth_effect(user, item)                # 成長効果適用
  1801.     if item.physical_attack and @hp_damage == 0   # 物理ノーダメージ判定
  1802.       return                                    
  1803.     end
  1804.     apply_state_changes(item)                     # ステート変化
  1805.   end
  1806.   #--------------------------------------------------------------------------
  1807.   # ● ダメージの反映
  1808.   #--------------------------------------------------------------------------
  1809.   alias execute_damage_n01 execute_damage
  1810.   def execute_damage(user)
  1811.     execute_damage_n01(user)
  1812.     # 吸収の場合ここで処理を相殺
  1813.     if @absorbed               
  1814.       user.hp_damage = -@hp_damage
  1815.       user.mp_damage = -@mp_damage
  1816.     end
  1817.   end
  1818.   #--------------------------------------------------------------------------
  1819.   # ● スキルの効果適用
  1820.   #--------------------------------------------------------------------------
  1821.   alias skill_effect_n01 skill_effect
  1822.   def skill_effect(user, obj)
  1823.     # 変化前のHPMPを保持
  1824.     nowhp = self.hp
  1825.     nowmp = self.mp
  1826.     # 現在HPMP威力計算用に変化前の使用者HPMPを取得
  1827.     if obj.extension.include?("HP消費")
  1828.       user_hp = user.hp + user.calc_mp_cost(obj)
  1829.       user_mp = user.mp
  1830.     else  
  1831.       user_hp = user.hp
  1832.       user_mp = user.mp + user.calc_mp_cost(obj)
  1833.     end  
  1834.     # 拡張設定チェック
  1835.     check_extension(obj)
  1836.     # ダメージ計算
  1837.     skill_effect_n01(user, obj)
  1838.     # ダメージ系の拡張がある場合ここで処理を相殺
  1839.     if @extension
  1840.       self.hp = nowhp
  1841.       self.mp = nowmp
  1842.     end
  1843.     # 攻撃が当たっていない場合は処理中断
  1844.     return if self.evaded or self.missed
  1845.     # ダメージ属性変換
  1846.     damage = @hp_damage unless obj.damage_to_mp
  1847.     damage = @mp_damage if obj.damage_to_mp
  1848.     # 割合ダメージ
  1849.     if @ratio_maxdamage != nil
  1850.       damage = self.maxhp * @ratio_maxdamage / 100 unless obj.damage_to_mp
  1851.       damage = self.maxmp * @ratio_maxdamage / 100 if obj.damage_to_mp
  1852.     end
  1853.     if @ratio_nowdamage != nil
  1854.       damage = self.hp * @ratio_nowdamage / 100 unless obj.damage_to_mp
  1855.       damage = self.mp * @ratio_nowdamage / 100 if obj.damage_to_mp
  1856.     end
  1857.     # コスト威力
  1858.     if @cost_damage
  1859.       cost = user.calc_mp_cost(obj)
  1860.       if obj.extension.include?("HP消費")
  1861.         damage = damage * cost / user.maxhp
  1862.       else
  1863.         damage = damage * cost / user.maxmp
  1864.       end
  1865.     end
  1866.     # 現在HP威力
  1867.     damage = damage * user_hp / user.maxhp if @nowhp_damage
  1868.     # 現在MP威力
  1869.     damage = damage * user_mp / user.maxmp if @nowmp_damage
  1870.     # ダメージ属性変換戻し
  1871.     @hp_damage = damage unless obj.damage_to_mp
  1872.     @mp_damage = damage if obj.damage_to_mp
  1873.     # 拡張反映
  1874.     if @extension
  1875.       self.hp -= @hp_damage
  1876.       self.mp -= @mp_damage
  1877.     end

  1878.     # 初期化
  1879.     @extension = false
  1880.     @cost_damage = false
  1881.     @nowhp_damage = false
  1882.     @nowmp_damage = false
  1883.     @ratio_maxdamage = nil
  1884.     @ratio_nowdamage = nil
  1885. end
  1886.   #--------------------------------------------------------------------------
  1887.   # ● 拡張設定チェック
  1888.   #--------------------------------------------------------------------------
  1889.   def check_extension(skill)
  1890.     for ext in skill.extension
  1891.       # コスト威力
  1892.       if ext == "コスト威力"  
  1893.         @extension = true
  1894.         next @cost_damage = true
  1895.       # 現在HP威力
  1896.       elsif ext == "現HP威力"
  1897.         @extension = true
  1898.         next @nowhp_damage = true
  1899.       # 現在MP威力
  1900.       elsif ext == "現MP威力"
  1901.         @extension = true
  1902.         next @nowmp_damage = true
  1903.       else
  1904.         # 割合ダメージ
  1905.         name = ext.split('')
  1906.         if name[5] == "M"
  1907.           name = name.join
  1908.           name.slice!("%ダメージMAX/")
  1909.           @extension = true
  1910.           next @ratio_maxdamage = name.to_i
  1911.         elsif name[5] == "N"
  1912.           name = name.join
  1913.           name.slice!("%ダメージNOW/")
  1914.           @extension = true
  1915.           next @ratio_nowdamage = name.to_i
  1916.         end  
  1917.       end
  1918.     end  
  1919.   end
  1920.   #--------------------------------------------------------------------------
  1921.   # ● 初期配置の変更
  1922.   #--------------------------------------------------------------------------
  1923.   def change_base_position(x, y)
  1924.     @base_position_x = x
  1925.     @base_position_y = y
  1926.   end
  1927.   #--------------------------------------------------------------------------
  1928.   # ● 初期化
  1929.   #--------------------------------------------------------------------------
  1930.   def reset_coordinate
  1931.     @move_x = @move_y = @move_z = @jump = @derivation = 0
  1932.     @active = @non_dead = @individual = false   
  1933.   end
  1934.   #--------------------------------------------------------------------------
  1935.   # ● スリップダメージの効果適用
  1936.   #--------------------------------------------------------------------------
  1937.   def slip_damage_effect
  1938.     if slip_damage? and @hp > 0
  1939.       @hp_damage = apply_variance(maxhp / 10, 10)
  1940.       @hp_damage = @hp - 1 if @hp_damage >= @hp
  1941.       self.hp -= @hp_damage
  1942.     end
  1943.   end
  1944.   #--------------------------------------------------------------------------
  1945.   # ● イベントでのダメージPOP
  1946.   #--------------------------------------------------------------------------
  1947.   def damage_num(num = nil)
  1948.     return if dead? or !$game_temp.in_battle or num == 0
  1949.     @force_damage = num
  1950.   end
  1951. end  
  1952. #==============================================================================
  1953. # ■ Game_Actor
  1954. #------------------------------------------------------------------------------
  1955. #  アクターを扱うクラスです。
  1956. #==============================================================================
  1957. class Game_Actor < Game_Battler
  1958.   #--------------------------------------------------------------------------
  1959.   # ● 公開インスタンス変数
  1960.   #--------------------------------------------------------------------------
  1961.   attr_accessor :two_swords_change          # 二刀流強制持ち替えフラグ
  1962.   #--------------------------------------------------------------------------
  1963.   # ● IDによるスキルの習得済み判定
  1964.   #--------------------------------------------------------------------------
  1965.   def skill_id_learn?(skill_id)
  1966.     return @skills.include?(skill_id)
  1967.   end
  1968.   #--------------------------------------------------------------------------
  1969.   # ● スキルの使用可能判定  ※再定義
  1970.   #--------------------------------------------------------------------------
  1971.   def skill_can_use?(skill)
  1972.     return super
  1973.   end
  1974.   #--------------------------------------------------------------------------
  1975.   # ● グラフィックの変更
  1976.   #--------------------------------------------------------------------------
  1977.   def graphic_change(character_name)
  1978.     @character_name = character_name
  1979.   end
  1980.   #--------------------------------------------------------------------------
  1981.   # ● コラプスの実行 ※再定義
  1982.   #--------------------------------------------------------------------------
  1983.   def perform_collapse
  1984.     Sound.play_actor_collapse if $game_temp.in_battle and dead?
  1985.   end
  1986.   #--------------------------------------------------------------------------
  1987.   # ● 初期配置の取得
  1988.   #--------------------------------------------------------------------------
  1989.   def base_position
  1990.     base = N01::ACTOR_POSITION[self.index]
  1991.     @base_position_x = base[0]
  1992.     @base_position_y = base[1]
  1993.     # バックアタック時はX軸を逆に
  1994.     @base_position_x = Graphics.width - base[0] if $back_attack && N01::BACK_ATTACK
  1995.   end
  1996.   #--------------------------------------------------------------------------
  1997.   # ● バトル画面 X 座標の取得
  1998.   #--------------------------------------------------------------------------
  1999.   def position_x
  2000.     return 0 if self.index == nil
  2001.     return @base_position_x + @move_x
  2002.   end
  2003.   #--------------------------------------------------------------------------
  2004.   # ● バトル画面 Y 座標の取得
  2005.   #--------------------------------------------------------------------------
  2006.   def position_y
  2007.     return 0 if self.index == nil
  2008.     return @base_position_y + @move_y + @jump
  2009.   end
  2010.   #--------------------------------------------------------------------------
  2011.   # ● バトル画面 Z 座標の取得
  2012.   #--------------------------------------------------------------------------
  2013.   def position_z
  2014.     return 0 if self.index == nil
  2015.     return self.index + @base_position_y + @move_y + @move_z - @jump + 200
  2016.   end  
  2017. end
  2018. #==============================================================================
  2019. # ■ Game_Enemy
  2020. #------------------------------------------------------------------------------
  2021. #  エネミーを扱うクラスです。
  2022. #==============================================================================
  2023. class Game_Enemy < Game_Battler
  2024.   #--------------------------------------------------------------------------
  2025.   # ● 公開インスタンス変数
  2026.   #--------------------------------------------------------------------------
  2027.   attr_accessor :adj_speed        # 複数回行動の速度補正
  2028.   attr_accessor :act_time         # 行動数回
  2029.   #--------------------------------------------------------------------------
  2030.   # ● アクションスピードの決定 複数回行動用
  2031.   #--------------------------------------------------------------------------
  2032.   def make_action_speed2(adj)
  2033.     @adj_speed = self.action.speed if @adj_speed == nil
  2034.     @adj_speed = @adj_speed * adj / 100
  2035.   end
  2036.   #--------------------------------------------------------------------------
  2037.   # ● コラプスの実行 ※再定義
  2038.   #--------------------------------------------------------------------------
  2039.   def perform_collapse
  2040.     @force_action = ["N01collapse"] if $game_temp.in_battle and dead?
  2041.   end
  2042.   #--------------------------------------------------------------------------
  2043.   # ● 初期配置の取得
  2044.   #--------------------------------------------------------------------------
  2045.   def base_position
  2046.     return if self.index == nil
  2047.     # バトラー画像のサイズをチェックしY座標を修正
  2048.     bitmap = Bitmap.new("Graphics/Battlers/" + @battler_name) if !self.anime_on
  2049.     bitmap = Bitmap.new("Graphics/Characters/" + @battler_name) if self.anime_on && N01::WALK_ANIME
  2050.     bitmap = Bitmap.new("Graphics/Characters/" + @battler_name + "_1") if self.anime_on && !N01::WALK_ANIME
  2051.     height = bitmap.height
  2052.     @base_position_x = self.screen_x + self.position_plus[0]
  2053.     @base_position_y = self.screen_y + self.position_plus[1] - height / 3
  2054.     bitmap.dispose
  2055.     # バックアタック時はX軸を逆に
  2056.     if $back_attack && N01::BACK_ATTACK
  2057.       @base_position_x = Graphics.width - self.screen_x - self.position_plus[0]
  2058.     end
  2059.   end
  2060.   #--------------------------------------------------------------------------
  2061.   # ● バトル画面 X 座標の取得
  2062.   #--------------------------------------------------------------------------
  2063.   def position_x
  2064.     return @base_position_x - @move_x
  2065.   end
  2066.   #--------------------------------------------------------------------------
  2067.   # ● バトル画面 Y 座標の取得
  2068.   #--------------------------------------------------------------------------
  2069.   def position_y
  2070.     return @base_position_y + @move_y + @jump
  2071.   end
  2072.   #--------------------------------------------------------------------------
  2073.   # ● バトル画面 Z 座標の取得
  2074.   #--------------------------------------------------------------------------
  2075.   def position_z
  2076.     return position_y + @move_z - @jump + 200
  2077.   end
  2078. end
  2079. #==============================================================================
  2080. # ■ Sprite_Damage
  2081. #------------------------------------------------------------------------------
  2082. #  ダメージ表示のスプライトです。
  2083. #==============================================================================
  2084. class Sprite_Damage < Sprite_Base
  2085.   #--------------------------------------------------------------------------
  2086.   # ● 公開インスタンス変数
  2087.   #--------------------------------------------------------------------------
  2088.   attr_accessor :battler
  2089.   #--------------------------------------------------------------------------
  2090.   # ● オブジェクト初期化
  2091.   #--------------------------------------------------------------------------
  2092.   def initialize(viewport,battler = nil)
  2093.     super(viewport)
  2094.     @battler = battler
  2095.     @damage = 0
  2096.     @duration = 0
  2097.     @x = 0
  2098.     @y = 0
  2099.     @z_plus = 0
  2100.     @minus = false
  2101.     @num1 = Sprite.new(viewport)
  2102.     @num2 = Sprite.new(viewport)
  2103.     @num3 = Sprite.new(viewport)
  2104.     @num4 = Sprite.new(viewport)
  2105.     @num5 = Sprite.new(viewport)
  2106.     @num6 = Sprite.new(viewport)
  2107.     @num7 = Sprite.new(viewport)
  2108.     @num8 = Sprite.new(viewport)   
  2109.     @num9 = Sprite.new(viewport)
  2110.     @num1.visible = false
  2111.     @num2.visible = false
  2112.     @num3.visible = false
  2113.     @num4.visible = false
  2114.     @num5.visible = false
  2115.     @num6.visible = false
  2116.     @num7.visible = false
  2117.     @num8.visible = false
  2118.     @num9.visible = false
  2119.     return if @battler.actor?
  2120.     @bar_back = Sprite.new(viewport)
  2121.     @bar_back.bitmap = Cache.system("bar_back")
  2122.     @bar_back.z = 3000
  2123.     @bar_back.visible = false
  2124.     @bar = Sprite.new(viewport)
  2125.     @bar.bitmap = Cache.system("hp_bar")
  2126.     @bar.z = 3001
  2127.     @bar.visible = false
  2128.     @move_bar = 0
  2129.     @pre_bar = 67 * @battler.hp / @battler.maxhp
  2130.   end
  2131.   #--------------------------------------------------------------------------
  2132.   # ● フレーム更新
  2133.   #--------------------------------------------------------------------------
  2134.   def update
  2135.     force_damage
  2136.     move_damage(@num9, @pop_time + 8) if @num9.visible
  2137.     move_damage(@num8, @pop_time + 6) if @num8.visible
  2138.     move_damage(@num7, @pop_time + 4) if @num7.visible
  2139.     move_damage(@num6, @pop_time + 2) if @num6.visible
  2140.     move_damage(@num5, @pop_time) if @num5.visible
  2141.     move_damage(@num4, @pop_time - 2) if @num4.visible
  2142.     move_damage(@num3, @pop_time - 4) if @num3.visible
  2143.     move_damage(@num2, @pop_time - 6) if @num2.visible
  2144.     move_damage(@num1, @pop_time - 8) if @num1.visible
  2145.     move_bar if @duration > 0
  2146.     move_window if @window != nil
  2147.     @duration -= 1 if @duration > 0
  2148.   end
  2149.   #--------------------------------------------------------------------------
  2150.   # ● イベントでのダメージPOP
  2151.   #--------------------------------------------------------------------------
  2152.   def force_damage
  2153.     if @battler.force_damage != 0
  2154.       damage_pop(@battler.force_damage)
  2155.       @battler.hp -= @battler.force_damage
  2156.       @force_damage = true
  2157.       @battler.force_damage = 0
  2158.       $game_temp.status_window_refresh = true
  2159.     end
  2160.   end
  2161.   #--------------------------------------------------------------------------
  2162.   # ● 数値の動き
  2163.   #--------------------------------------------------------------------------
  2164.   def move_damage(num, min)
  2165.     if @million
  2166.     case @duration
  2167.     when min-6..min
  2168.       num.x -= 1
  2169.       num.y -= 7
  2170.     when min-12..min-7
  2171.       num.y -= 2
  2172.     when min-22..min-15
  2173.       num.y -= 1
  2174.     when min-38..min-32
  2175.       num.x -= 1
  2176.       num.y += 7
  2177.     when min-47..min-44
  2178.       num.y -= 1
  2179.     when min-50..min-48
  2180.       num.y += 1
  2181.     when min-53..min-51
  2182.       num.y -= 1
  2183.     when min-56..min-54
  2184.       num.y += 1
  2185.     end
  2186.     else
  2187.     case @duration
  2188.     when min-1..min
  2189.       num.x -= 1
  2190.       num.y -= 4
  2191.     when min-3..min-2
  2192.       num.x -= 1
  2193.       num.y -= 3
  2194.     when min-6..min-4
  2195.       num.y -= 2
  2196.     when min-14..min-7
  2197.       num.y += 2
  2198.     when min-17..min-15
  2199.       num.y -= 2
  2200.     when min-23..min-18
  2201.       num.y += 1
  2202.     when min-27..min-24
  2203.       num.y -= 1
  2204.     when min-30..min-28
  2205.       num.y += 1
  2206.     when min-33..min-31
  2207.       num.y -= 1
  2208.     when min-36..min-34
  2209.       num.y += 1
  2210.     end
  2211.     end
  2212.     next_damage if @battler.double_damage && @duration == min-34
  2213.     num.opacity = 256 - (12 - @duration) * 32
  2214.     num.visible = false if @duration == 0
  2215.     if @force_damage && @duration == 0
  2216.       @force_damage = false
  2217.       @battler.perform_collapse
  2218.     end
  2219.   end
  2220.   #--------------------------------------------------------------------------
  2221.   # ● 文字ウインドウの動き
  2222.   #--------------------------------------------------------------------------
  2223.   def move_window
  2224.     @window.x -= 6 if @window_time > 0 && @window.x > 0
  2225.     @window_time -= 1
  2226.     if @duration == 0
  2227.       @window.dispose
  2228.       @window = nil
  2229.     end
  2230.   end  
  2231.   #--------------------------------------------------------------------------
  2232.   # ● HPバーの動き
  2233.   #--------------------------------------------------------------------------
  2234.   def move_bar
  2235.     return if @battler.actor?
  2236.     @move_bar -= 1 if @move_bar > 0
  2237.     @move_bar += 1 if @move_bar < 0
  2238.     @bar.src_rect.set(0, 0, @pre_bar + @move_bar, 4)
  2239.     if @duration == 1
  2240.       @bar_back.visible = false
  2241.       @bar.visible = false
  2242.     end
  2243.   end
  2244.   #--------------------------------------------------------------------------
  2245.   # ● HPMP両方同時ダメージ
  2246.   #--------------------------------------------------------------------------
  2247.   def next_damage
  2248.     @battler.hp_damage = 0
  2249.     @battler.double_damage = false
  2250.     damage_pop
  2251.   end
  2252.   #--------------------------------------------------------------------------
  2253.   # ● ダメージPOP準備
  2254.   #--------------------------------------------------------------------------
  2255.   def damage_pop(num = nil)
  2256.     reset
  2257.     damage = battler.hp_damage
  2258.     # ステートの変化を抜き出す
  2259.     states = battler.added_states
  2260.     text = ""
  2261.     # MPダメージ用テキスト(HPMP両方同時ダメージは除く)
  2262.     if [email protected]_damage && @battler.mp_damage != 0
  2263.       text = N01::POP_MP_DAM if battler.mp_damage > 0
  2264.       text = N01::POP_MP_REC if battler.mp_damage < 0
  2265.       damage = battler.mp_damage
  2266.     end
  2267.     # スリップダメージはMPダメージ以外文字を表示させない
  2268.     if num == nil
  2269.       text = N01::POP_DAMAGE0 if damage == 0 && states == [] && !battler.revival
  2270.       text = N01::POP_MISS if battler.missed && states == []
  2271.       text = N01::POP_EVA if battler.evaded
  2272.       text = N01::POP_CRI if battler.critical
  2273.       for state in states
  2274.         # POPなし設定のステートは表示させない
  2275.         unless state.extension.include?("POPなし")
  2276.           text += " " if text != ""
  2277.           text += state.name
  2278.         end
  2279.       end
  2280.     else
  2281.       damage = num
  2282.     end
  2283.     # POP位置微調整
  2284.     adjust = -16
  2285.     adjust = 16 if $back_attack
  2286.     adjust = 0 if damage == 0
  2287.     @x = battler.position_x + adjust
  2288.     @y = battler.position_y - 12
  2289.     start_bar(damage) if damage != 0
  2290.     # ダメージと回復を分ける
  2291.     @minus = false
  2292.     @minus = true if damage < 0
  2293.     damage = damage.abs
  2294.     window(text) if text != ""
  2295.     @pop_time = N01::NUM_DURATION
  2296.     # ダメージがなければ数字のPOPをさせない
  2297.     return @duration = @pop_time if damage == 0
  2298.     @num_time = -1
  2299.     @damage = damage
  2300.     @pop_time += 20 if @damage >= 10000
  2301.     damage_file(@num1, damage % 10, @pop_time - 7) if damage >= 0
  2302.     damage_file(@num2, (damage % 100)/10, @pop_time - 5) if damage >= 10
  2303.     damage_file(@num3, (damage % 1000)/100, @pop_time - 3) if damage >= 100
  2304.     damage_file(@num4, (damage % 10000)/1000, @pop_time - 1) if damage >= 1000
  2305.     damage_file(@num5, (damage % 100000)/10000, @pop_time + 1) if damage >= 10000
  2306.     damage_file(@num6, (damage % 1000000)/100000, @pop_time + 3) if damage >= 100000
  2307.     damage_file(@num7, (damage % 10000000)/1000000, @pop_time + 5) if damage >= 1000000
  2308.     damage_file(@num8, (damage % 100000000)/10000000, @pop_time + 7) if damage >= 10000000
  2309.     damage_file(@num9, (damage % 1000000000)/100000000, @pop_time + 9) if damage >= 100000000
  2310.   end  
  2311.   #--------------------------------------------------------------------------
  2312.   # ● バー準備
  2313.   #--------------------------------------------------------------------------
  2314.   def start_bar(damage)
  2315.     return if @battler.actor?
  2316.     return if @battler.enemy_id == 48
  2317.     if damage < 0
  2318.       return if @pre_bar == 67
  2319.       damage *= -1
  2320.       @move_bar =  67 * damage / @battler.maxhp
  2321.       if 67 - @pre_bar < @move_bar
  2322.         @move_bar = 67 - @pre_bar
  2323.       end
  2324.       @move_bar *= -1
  2325.     else
  2326.       @move_bar =  67 * damage / @battler.maxhp
  2327.       @move_bar = @pre_bar if @battler.hp == 0
  2328.     end  
  2329.     @pre_bar = 67 * @battler.hp / @battler.maxhp
  2330.     #return if @move_bar == 0
  2331.     @bar.src_rect.set(0, 0, @pre_bar + @move_bar, 4)
  2332.     @bar_back.visible = @bar.visible = true
  2333.     @bar_back.x = @x - 40
  2334.     @bar.x = @bar_back.x + 4
  2335.     @bar_back.y = @y + 18
  2336.     @bar.y = @bar_back.y + 1
  2337.   end  
  2338.   #--------------------------------------------------------------------------
  2339.   # ● 情報ウインドウ準備
  2340.   #--------------------------------------------------------------------------
  2341.   def window(text)
  2342.     @window = Window_Damage.new(@x - 40, @y - 40)
  2343.     @window.pop_text(text)
  2344.     @window_time = 5
  2345.   end  
  2346.   #--------------------------------------------------------------------------
  2347.   # ● 数字画像準備
  2348.   #--------------------------------------------------------------------------
  2349.   def damage_file(num, cw, dur)
  2350.     @million = false
  2351.     num.visible = true
  2352.     adjust = 0
  2353.     # ファイル判別
  2354.     plus = ""
  2355.     plus = "2" if @damage >= 1500
  2356.     if @damage >= 4000
  2357.       plus = "3"
  2358.       @million = true
  2359.       adjust = -4
  2360.     end  
  2361.     file = N01::DAMAGE_GRAPHICS + plus
  2362.     if @minus
  2363.       plus = ""
  2364.       plus = "2" if @damage <= -100
  2365.       file = N01::RECOVER_GRAPHICS + plus
  2366.     end  
  2367.     # 数字
  2368.     num.bitmap = Cache.system(file)
  2369.     @num_time += 1
  2370.     sx = num.bitmap.width / 10
  2371.     num.src_rect.set(cw * sx, 0, sx, num.height)
  2372.     num.x = @x - (num.width + N01::NUM_INTERBAL + adjust) * @num_time - adjust * 10
  2373.     num.y = @y
  2374.     num.z = 2000 - @num_time
  2375.     @duration = dur
  2376.     @window.x = 0 if @window != nil && @window.x < 0
  2377.   end

  2378.   
  2379.   #--------------------------------------------------------------------------
  2380.   # ● ダメージリセット
  2381.   #--------------------------------------------------------------------------
  2382.   def reset
  2383.     @num9.visible = @num8.visible = @num7.visible = @num6.visible = @num5.visible = @num4.visible = @num3.visible = @num2.visible = @num1.visible = false
  2384.     @window.dispose if @window != nil
  2385.     @window = nil
  2386.   end  
  2387.   #--------------------------------------------------------------------------
  2388.   # ● 開放
  2389.   #--------------------------------------------------------------------------
  2390.   def dispose
  2391.     super
  2392.     @num1.dispose
  2393.     @num2.dispose
  2394.     @num3.dispose
  2395.     @num4.dispose
  2396.     @num5.dispose
  2397.     @num6.dispose
  2398.     @num7.dispose
  2399.     @num8.dispose
  2400.     @num9.dispose
  2401.     @window.dispose if @window != nil
  2402.     return if @battler.actor?
  2403.     @bar_back.dispose
  2404.     @bar.dispose
  2405.   end  
  2406. end
  2407. #==============================================================================
  2408. # ■ Window_Damage
  2409. #------------------------------------------------------------------------------
  2410. #  クリティカル等を表示するウインドウです。
  2411. #==============================================================================
  2412. class Window_Damage < Window_Base
  2413.   #--------------------------------------------------------------------------
  2414.   # ● オブジェクト初期化
  2415.   #--------------------------------------------------------------------------
  2416.   def initialize(x, y)
  2417.     super(x, y, 160, 46)
  2418.     self.opacity = 0
  2419.   end
  2420.   #--------------------------------------------------------------------------
  2421.   # ● テキスト設定
  2422.   #--------------------------------------------------------------------------
  2423.   def pop_text(text, align = 1)
  2424.     self.contents.clear
  2425.     self.width = self.contents.text_size(text).width + 36
  2426.     self.contents = Bitmap.new(width - 32, height - 32)
  2427.     self.contents.font.color = normal_color
  2428.     self.contents.font.size = 16
  2429.     self.contents.draw_text(0,-8, width - 32, 32, text, align)
  2430.   end   
  2431. end #==============================================================================
  2432. # ■ Window_Base
  2433. #------------------------------------------------------------------------------
  2434. #  ゲーム中のすべてのウィンドウのスーパークラスです。
  2435. #==============================================================================
  2436. class Window_Base < Window  
  2437.   #--------------------------------------------------------------------------
  2438.   # ● ステートの描画  ※再定義(ステートアイコンを表示しない設定を反映)
  2439.   #--------------------------------------------------------------------------
  2440.   def draw_actor_state(actor, x, y, width = 96)
  2441.     count = 0
  2442.     for state in actor.states
  2443.       break if state.extension.include?("アイコン非表示")
  2444.       draw_icon(state.icon_index, x + 24 * count, y)
  2445.       count += 1
  2446.       break if (24 * count > width - 24)
  2447.     end
  2448.   end
  2449. end
  2450. #==============================================================================
  2451. # ■ Game_Temp
  2452. #------------------------------------------------------------------------------
  2453. #  セーブデータに含まれない、一時的なデータを扱うクラスです。
  2454. #==============================================================================
  2455. class Game_Temp
  2456.   #--------------------------------------------------------------------------
  2457.   # ● 公開インスタンス変数
  2458.   #--------------------------------------------------------------------------
  2459.   attr_accessor :status_window_refresh    # ステータスウインドウのリフレッシュフラグ
  2460.   #--------------------------------------------------------------------------
  2461.   # ● オブジェクト初期化
  2462.   #--------------------------------------------------------------------------
  2463.   alias initialize_n01 initialize
  2464.   def initialize
  2465.     initialize_n01
  2466.     @status_window_refresh = false
  2467.   end
  2468. end  
  2469. #==============================================================================
  2470. # ■ Game_Interpreter
  2471. #------------------------------------------------------------------------------
  2472. #  イベントコマンドを実行するインタプリタです。
  2473. #==============================================================================
  2474. class Game_Interpreter
  2475.   #--------------------------------------------------------------------------
  2476.   # ● HP の増減
  2477.   #--------------------------------------------------------------------------
  2478.   def command_311
  2479.     if $game_temp.in_battle
  2480.       value = operate_value(@params[1], @params[2], @params[3])
  2481.       iterate_actor_id(@params[0]) do |actor|
  2482.         next if actor.dead?
  2483.         if @params[4] == false and actor.hp + value <= 0
  2484.           actor.damage_num(actor.hp - 1) # 戦闘不能が許可されていなければ 1 にする
  2485.         else
  2486.           actor.damage_num(-value)
  2487.         end
  2488.       end
  2489.       return true
  2490.     else
  2491.       value = operate_value(@params[1], @params[2], @params[3])
  2492.       iterate_actor_id(@params[0]) do |actor|
  2493.         next if actor.dead?
  2494.         if @params[4] == false and actor.hp + value <= 0
  2495.           actor.hp = 1    # 戦闘不能が許可されていなければ 1 にする
  2496.         else
  2497.           actor.hp += value
  2498.         end
  2499.         actor.perform_collapse
  2500.       end
  2501.       if $game_party.all_dead?
  2502.         $game_temp.next_scene = "gameover"
  2503.       end
  2504.       return true
  2505.     end  
  2506.   end
  2507.   #--------------------------------------------------------------------------
  2508.   # ● 敵キャラの HP 増減
  2509.   #--------------------------------------------------------------------------
  2510.   def command_331
  2511.     value = operate_value(@params[1], @params[2], @params[3])
  2512.     iterate_enemy_index(@params[0]) do |enemy|
  2513.       if enemy.hp > 0
  2514.         if @params[4] == false and enemy.hp + value <= 0
  2515.           enemy.damage_num(enemy.hp - 1) # 戦闘不能が許可されていなければ 1 にする
  2516.         else
  2517.           enemy.damage_num(-value)
  2518.         end
  2519.       end
  2520.     end
  2521.     return true
  2522.   end
  2523. end  
  2524. #==============================================================================
  2525. # ■ Game_Party
  2526. #------------------------------------------------------------------------------
  2527. #  パーティを扱うクラスです。
  2528. #==============================================================================
  2529. class Game_Party < Game_Unit
  2530.   #--------------------------------------------------------------------------
  2531.   # ● アクターを加える
  2532.   #     actor_id : アクター ID
  2533.   #--------------------------------------------------------------------------
  2534.   alias add_actor_n01 add_actor
  2535.   def add_actor(actor_id)
  2536.     add_actor_n01(actor_id)
  2537.     $party_change = true if actor_id == 4
  2538.   end
  2539.   #--------------------------------------------------------------------------
  2540.   # ● アクターを外す
  2541.   #     actor_id : アクター ID
  2542.   #--------------------------------------------------------------------------
  2543.   alias remove_actor_n01 remove_actor
  2544.   def remove_actor(actor_id)
  2545.     remove_actor_n01(actor_id)
  2546.     $party_change = true if actor_id == 4
  2547.   end
  2548. end
复制代码
显血
  1. #==============================================================================
  2. # ■ module n01
  3. #------------------------------------------------------------------------------
  4. #  ターゲット選択時のヘルプ表示セッティング Ver1.2
  5. #==============================================================================
  6. module N01
  7.   
  8. # 文字ステートを表示するならtrue
  9.   WORD_STATE_DISPLAY = true
  10.   
  11. # 何もステートがない時に表示する文字 ""とすると非表示になります
  12.   WORD_NORMAL_STATE = "正常"
  13.   
  14. # HPゲージを表示するならtrue ステート表示と併用可
  15.   HP_DISPLAY = true
  16.   
  17. # 上記設定をアクターに適用するならtrue
  18.   ACTOR_DISPLAY = true
  19.   
  20. # 上記設定を適用しないエネミーID  複数ある場合は[1,2,3]のように
  21.   ENEMY_NON_DISPLAY = []
  22.   
  23. # 非表示にするステートID  複数ある場合は[1,2,3]のように
  24.   STATE_NON_DISPLAY = []
  25.   
  26.   
  27. end
  28. #-------------------------------設定ここまで-----------------------------------

  29. #==============================================================================
  30. # ■ Window_Help
  31. #------------------------------------------------------------------------------
  32. #  スキルやアイテムの説明、アクターのステータスなどを表示するウィンドウです。
  33. #==============================================================================

  34. class Window_Help < Window_Base
  35.   #--------------------------------------------------------------------------
  36.   # ● テキスト設定
  37.   #--------------------------------------------------------------------------
  38.   def set_text_n01add(member)
  39.     self.contents.clear
  40.     self.contents.font.color = normal_color
  41.     if !member.actor? && N01::ENEMY_NON_DISPLAY.include?(member.enemy_id)
  42.       return self.contents.draw_text(4, 0, self.width - 40, WLH, member.name, 1)
  43.     elsif member.actor? && !N01::ACTOR_DISPLAY
  44.       return self.contents.draw_text(4, 0, self.width - 40, WLH, member.name, 1)
  45.     end
  46.     if N01::WORD_STATE_DISPLAY && N01::HP_DISPLAY
  47.       self.contents.draw_text(0, 0, 180, WLH, member.name, 1)
  48.       #draw_actor_hp_plus2(member, 182, 0, 120)
  49.       draw_actor_hp(member, 182, 0, 120)
  50.       text = "["
  51.       for state in member.states
  52.         next if N01::STATE_NON_DISPLAY.include?(state.id)
  53.         text += " " if text != "["
  54.         text += state.name
  55.       end
  56.       text += N01::WORD_NORMAL_STATE if text == "["
  57.       text += "]"
  58.       text = "" if text == "[]"
  59.       self.contents.draw_text(315, 0, 195, WLH, text, 0)
  60.     elsif N01::WORD_STATE_DISPLAY
  61.       text = member.name + "  ["
  62.       for state in member.states
  63.         next if N01::STATE_NON_DISPLAY.include?(state.id)
  64.         text += " " if text != member.name + "  ["
  65.         text += state.name
  66.       end
  67.       text += N01::WORD_NORMAL_STATE if text == member.name + "  ["
  68.       text += "]"
  69.       text = "" if text == "[]"
  70.       self.contents.draw_text(4, 0, self.width - 40, WLH, text, 1)
  71.     elsif N01::HP_DISPLAY
  72.       self.contents.draw_text(4, 0, 240, WLH, member.name, 1)
  73.       #draw_actor_hp_plus2(member, 262, 0, 120)
  74.       draw_actor_hp(member, 262, 0, 120)
  75.     end
  76.   end
  77. end

  78. #==============================================================================
  79. # ■ Scene_Battle
  80. #------------------------------------------------------------------------------
  81. #  バトル画面の処理を行うクラスです。
  82. #==============================================================================
  83. class Scene_Battle < Scene_Base
  84.   #--------------------------------------------------------------------------
  85.   # ● ターゲット選択の開始
  86.   #--------------------------------------------------------------------------
  87.   def start_target_selection(actor = false)
  88.     members = $game_party.members if actor
  89.     members = $game_troop.members unless actor
  90.     # カーソルスプライトの作成
  91.     @cursor = Sprite.new
  92.     @cursor.bitmap = Cache.character("cursor")
  93.     @cursor.src_rect.set(0, 0, 32, 32)
  94.     @cursor_flame = 0
  95.     @cursor.x = -200
  96.     @cursor.y = -200
  97.     @cursor.ox = @cursor.width
  98.     @cursor.oy = @cursor.height
  99.     # ターゲット名を表示するヘルプウインドウを作成
  100.     @help_window.visible = false if @help_window != nil
  101.     @help_window2 = Window_Help.new if @help_window2 == nil
  102.     # 不要なウインドウを消す
  103.     @actor_command_window.active = false
  104.     @skill_window.visible = false if @skill_window != nil
  105.     @item_window.visible = false if @item_window != nil
  106.     # 存在しているターゲットで最も番号の低い対象を最初に指すように
  107.     @index = 0
  108.     @max_index = members.size - 1
  109.     # アクターは戦闘不能者でもターゲットできるようにエネミーと区別
  110.     unless actor
  111.       members.size.times do
  112.         break if members[@index].exist?
  113.         @index += 1
  114.       end
  115.     end  
  116.     @help_window2.set_text_n01add(members[@index])
  117.     select_member(actor)
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ● カーソルを前に移動
  121.   #--------------------------------------------------------------------------
  122.   def cursor_up(members, actor)
  123.     Sound.play_cursor
  124.     members.size.times do
  125.       @index += members.size - 1
  126.       @index %= members.size
  127.       break if actor
  128.       break if members[@index].exist?
  129.     end
  130.     @help_window2.set_text_n01add(members[@index])
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ● カーソルを次に移動
  134.   #--------------------------------------------------------------------------
  135.   def cursor_down(members, actor)
  136.     Sound.play_cursor
  137.     members.size.times do
  138.       @index += 1
  139.       @index %= members.size
  140.       break if actor
  141.       break if members[@index].exist? && !actor
  142.     end
  143.     @help_window2.set_text_n01add(members[@index])
  144.   end
  145. end
复制代码
ATB設定
  1. #==============================================================================
  2. # ■ module N02   for ATB Ver1.2
  3. #------------------------------------------------------------------------------
  4. #  アクティブタイムバトルのカスタマイズ項目です。
  5. #==============================================================================
  6. module N02
  7. #--------------------------------------------------------------------------
  8. # ● 戦闘開始時のATBゲージ初期値セッティング
  9. #--------------------------------------------------------------------------
  10.   # ATBゲージ初期値(アクター) 数値はゲージに対しての%
  11.   ATB_BASE_ACTOR = 30
  12.   # ATBゲージ初期値(エネミー)
  13.   ATB_BASE_ENEMY = 30
  14.   # ATBゲージ初期値に加えられるランダム値(アクターエネミー共通)
  15.   ATB_BASE_ADD = 30
  16. #--------------------------------------------------------------------------
  17. # ● アクティブタイプ(ユーザー設定を無効にした時のみ効果があります)
  18. #--------------------------------------------------------------------------
  19.   # パーティコマンド(戦う・逃げる)選択中もゲージアップするならtrue
  20.   ATB_PARTY_COMMAND_WAIT = false
  21.   # 戦闘コマンド(攻撃・スキル等)選択中もゲージアップするならtrue
  22.   ATB_COMMAND_WAIT = false
  23.   # ターゲット選択中もゲージアップするならtrue
  24.   ATB_TARGET_WAIT = false
  25.   # スキル/アイテム選択中もゲージアップするならtrue
  26.   ATB_SELECT_WAIT = false
  27.   # 行動アクション中もゲージアップするならtrue (※自身の行動時はストップします)
  28.   ATB_ACTION_WAIT = false
  29. #--------------------------------------------------------------------------
  30. # ● ボタン入力によるゲージのアクティブ制御
  31. #--------------------------------------------------------------------------
  32.   # Shiftキーを押している間、ゲージスピードを4倍に加速させる機能を利用するならtrue
  33.   ATB_SHIFT_BOOST = true
  34.   # Ctrlキーを押している間、強制的にゲージアップする機能を利用するならtrue
  35.   ATB_CTRL_ACTIVE = true
  36.   # Altキーを押している間、強制的にゲージを止める機能を利用するならtrue
  37.   ATB_ALT_WAIT = true
  38. #--------------------------------------------------------------------------
  39. # ● ATBゲージアップスピード(ユーザー設定を無効にした時のみ効果があります)
  40. #--------------------------------------------------------------------------
  41.   # 1が最遅 5くらいがゆったり 10くらいが平均 20あたりで大した速さだ 500で なん…だと…?
  42.   ATB_SPEED = 10
  43. #--------------------------------------------------------------------------
  44. # ● ATBゲージアップスピード基準
  45. #--------------------------------------------------------------------------
  46.   # ATBゲージアップスピードをどこに合わせるか
  47.   #  0;固定値
  48.   #  1;戦闘参加者の中で最も高い俊敏性
  49.   #  2;戦闘参加者の中で最も低い俊敏性
  50.   #  3;戦闘参加者の俊敏性の平均
  51.   ATB_BASE_SPEED = 1
  52.   # 上の設定で 0;固定値 にした場合の基準となる俊敏性値
  53.   ATB_ABSOLUTE_SPEED = 50
  54. #--------------------------------------------------------------------------
  55. # ● 先制、不意打ち(バックアタック)時の後攻者ATBゲージペナルティ
  56. #--------------------------------------------------------------------------
  57.   # 数値の分、後攻者の初期値がマイナスでスタートします。100でゲージ1本分
  58.   ATB_BACKATTACK = 50
  59. #--------------------------------------------------------------------------
  60. # ● 逃走失敗時のATBゲージペナルティ
  61. #--------------------------------------------------------------------------
  62.   # 逃走失敗時、味方全員のゲージがマイナスでリスタートします。100でゲージ1本分
  63.   ATB_RUN_NG = 50
  64. #--------------------------------------------------------------------------
  65. # ● 戦闘ターンカウント設定
  66. #--------------------------------------------------------------------------
  67.   #  0;戦闘参加人数分行動したら1ターン経過
  68.   #  1;戦闘参加人数の半分が行動したら1ターン経過
  69.   #  2;誰か一人でも行動したら1ターン経過
  70.   ATB_TURN_COUNT = 1
  71. #--------------------------------------------------------------------------
  72. # ● スリップダメージ(毒やHP自動回復など)POPタイミング設定
  73. #--------------------------------------------------------------------------
  74.   #  0;自身が行動する直前にHP数値POP処理、行動後にMP数値POP処理
  75.   #  1;1ターン経過ごとに全員同時POP処理
  76.   ATB_SLIP_DAMAGE = 0
  77. #--------------------------------------------------------------------------
  78. # ● 戦闘不能時のゲージ処理
  79. #--------------------------------------------------------------------------
  80.   # 戦闘不能から復帰した際のATBゲージ初期値(%) 100で瞬間復帰、マイナスにもできます
  81.   ATB_DEAD_COUNT = 20
  82. #--------------------------------------------------------------------------
  83. # ● アクション終了後のATBゲージ設定
  84. #--------------------------------------------------------------------------
  85. # 行動後のゲージ再スタート量(%)  ずっと下にID指定の個別設定があります
  86.   ATB_ATTACK_RESET = 20   # 通常攻撃
  87.   ATB_GUARD_RESET  =  0   # 防御
  88.   ATB_SKILL_RESET  =  0   # スキル
  89.   ATB_ITEM_RESET   =  0   # アイテム
  90.   ATB_NONACT_RESET = 40   # 無行動
  91. #--------------------------------------------------------------------------
  92. # ● エネミーのATBゲージを表示するか ※エネミー設定で個別にできます
  93. #--------------------------------------------------------------------------
  94.   ATB_ENEMY_ON = true
  95. #--------------------------------------------------------------------------
  96. # ● アクション時にATBゲージを隠すか
  97. #--------------------------------------------------------------------------
  98.   ATB_ACTION_ACTOR_OFF =  true # アクター
  99.   ATB_ACTION_ENEMY_OFF =  true # エネミー
  100. #--------------------------------------------------------------------------
  101. # ● ATBゲージ位置調整  バックアタック時はX軸が自動で修正されます
  102. #--------------------------------------------------------------------------
  103.   #                     X軸  Y軸
  104.   ATB_POSITION_ACTOR = [  -80, 20] # アクター
  105.   ATB_POSITION_ENEMY = [  0, 20] # エネミー
  106.   # アクターのATBゲージをデフォルトのHPウインドウ内に表示するならtrue(上記設定は無視されます)
  107.   ATB_POSITION_HPWINDOW = false
  108. #--------------------------------------------------------------------------
  109. # ● ATBゲージ位置調整2 上でゲージをHPウインドウに表示するをtrueにした時限定
  110. #--------------------------------------------------------------------------
  111. # ゲージ位置を個別指定   一人目    二人目    三人目    四人目        
  112. #                X軸  Y軸  X軸  Y軸  X軸  Y軸  X軸  Y軸
  113.   ATB_PARTY_POSITION = [[158,318],[158,342],[158,366],[158,390]]
  114. # 戦闘メンバー最大数を独自に増やした時は上の設定位置も人数分増やしてください
  115. #--------------------------------------------------------------------------
  116. # ● ATBゲージグラフィック設定(システムフォルダ内にあるATBゲージ画像関連)
  117. #--------------------------------------------------------------------------
  118.   # 画像ファイル名"atb_bar"は行動待ちのゲージ "act_bar"はチャージゲージ
  119.   # "atb_bar_active"はゲージ満タン時に表示される画像 "atb_bar_skin"はゲージスキン
  120.   # この4つの画像は座標設定を簡略化するため同じ画像サイズにして重ねて表示します
  121.   # 多少凝ったスキンが利用できるようにここで透明部分を除いた幅を指定します
  122.   #
  123.   # ゲージ画像の横幅(実際の画像ピクセル幅ではなく、透明部分を除いたピクセル幅)
  124.   # 1000できれいに割り切れる数字がベストです
  125.   ATB_WIDTH = 50
  126.   # ゲージのスタート位置(X座標で何ピクセル目からゲージグラフィックがあるか指定)
  127.   ATB_SPACE = 2
  128. #--------------------------------------------------------------------------
  129. # ● ATBゲージ(青色ゲージ)満タン時の効果音
  130. #--------------------------------------------------------------------------
  131.   #                  ピッチ 音量  SEファイル名
  132.   ATB_MAX_SOUND01 = [150,  70, "Decision2"]
  133. #--------------------------------------------------------------------------
  134. # ● ACTゲージ(赤色ゲージ)満タン時の効果音
  135. #--------------------------------------------------------------------------
  136.   #                  ピッチ 音量  SEファイル名
  137.   ACT_MAX_SOUND01 = [150,  70, "Chime2"]
  138. #--------------------------------------------------------------------------
  139. # ● コマンドキャラ送り時の効果音
  140. #--------------------------------------------------------------------------
  141.   #                  ピッチ 音量  SEファイル名
  142.   NEXT_SOUND01    = [135,  70, "Miss"]
  143. #--------------------------------------------------------------------------
  144. # ● ユーザー設定(ウエイトやバトルスピードを遊び手が選択する)セッティング
  145. #--------------------------------------------------------------------------
  146.   # ユーザー設定を有効にしメニューに入れるならtrue falseで以下の設定は全て無視
  147.   ATB_CUSTOMIZE =  false
  148.   # シーン項目のコマンド名 コマンドはステータスの次に入ります
  149.   ATB_CUSTOMIZE_NAME = "ATB設定"
  150.   
  151.   # アクティブ・ウエイト設定 上にあったアクティブタイプ(ATB_PARTY_COMMAND_WAITなど)は無視されます
  152.   # この設定の名称
  153.   ATB_MODE_NAME = "バトルモード"
  154.   # 3種類の項目がウインドウに並びます
  155.   # 下の番号(0~4)の位置をtrueにするとその場面がアクティブになります
  156.   #
  157.   # [0]パーティコマンド選択中  [1]戦闘コマンド選択中  [2]ターゲット選択中
  158.   # [3]スキル/アイテム選択中   [4]行動アクション中
  159.   #
  160.   #             モード名称           [0]     [1]     [2]     [3]     [4]
  161.   ATB_MODE1 = ["ウエイト",        false,  false,  false,  false,  false,]
  162.   ATB_MODE2 = ["セミアクティブ",  false,  false,  false,  false,   true,]
  163.   ATB_MODE3 = ["アクティブ",       true,   true,   true,   true,   true,]
  164.   # 上3種類のモードで表示されるヘルプコメント
  165.   ATB_MODE1_HELP = "全ての場面で時間が止まります"
  166.   ATB_MODE2_HELP = "戦闘アクション中のみ時間が経過します"
  167.   ATB_MODE3_HELP = "全ての場面で時間が経過します"
  168.   # ニューゲーム時の初期選択 [0]MODE1 [1]MODE2 [2]MODE3
  169.   ATB_NEWGAME_MODE = 1
  170.   
  171.   # バトルスピード設定  上にあったATBゲージアップスピード(ATB_SPEED)は無視されます
  172.   # この設定の名称
  173.   ATB_SPEED_NAME = "バトルスピード"
  174.   # この設定のヘルプコメント
  175.   ATB_SPEED_HELP = "数値が大きいほどゲージが早く溜まります"
  176.   # 下の番号(1~9)が項目に並ぶので、それぞれゲージアップスピードを設定します
  177.   # 上のATBゲージアップスピード(ATB_SPEED)は無視されます
  178.   #
  179.   #                [1]   [2]   [3]   [4]   [5]   [6]   [7]   [8]   [9]
  180.   ATB_SPEED_MODE = [  1,    2,    4,    6,   10,    20,   40,  100,  500]
  181.   # ニューゲーム時の初期選択 数値がそのままカーソル位置になります
  182.   ATB_NEWGAME_SPEED = 5
  183. #--------------------------------------------------------------------------
  184. # ● ターゲット選択時のヘルプ表示セッティング
  185. #--------------------------------------------------------------------------
  186.   # 文字ステートを表示するならtrue
  187.   WORD_STATE_DISPLAY = true
  188.   # 何もステートがない時に表示する文字 ""とすると非表示になります
  189.   WORD_NORMAL_STATE = "正常"
  190.   # HPゲージを表示するならtrue ステート表示と併用可
  191.   HP_DISPLAY = true
  192.   # 上記設定をアクターに適用するならtrue
  193.   ACTOR_DISPLAY = true
  194.   # 上記設定を適用しないエネミーID  複数ある場合は[1,2,3]のように
  195.   ENEMY_NON_DISPLAY = []
  196.   # 非表示にするステートID  複数ある場合は[1,2,3]のように
  197.   STATE_NON_DISPLAY = []
  198. end
  199. module RPG
  200. #==============================================================================
  201. # ■ module RPG
  202. #------------------------------------------------------------------------------
  203. #  スキル設定
  204. #==============================================================================
  205. class Skill
  206. #--------------------------------------------------------------------------
  207. # ● チャージ設定
  208. #--------------------------------------------------------------------------  
  209. #  コマンド入力から実行するまでの時間をスキルIDごとに指定。魔法詠唱などに。
  210. #
  211. # when 1 ←スキルID               
  212. #                                 
  213. #          基準  必要ゲージ(%)   
  214. #            ↓   ↓            
  215. #   return [  0,  50,  0,  ""]         
  216. # end                 ↑   ↑     
  217. #           固定時の数値   チャージアクション
  218. #
  219. #
  220. # 基準…0:固定値
  221. #       1:戦闘参加者の中で最も高い俊敏性
  222. #       2:戦闘参加者の中で最も低い俊敏性
  223. #       3:戦闘参加者の俊敏性の平均
  224. #       4:自身の俊敏性
  225. #
  226. # 必要ゲージ…上記基準ゲージ何%分必要か  200%でゲージ満タンまで2倍の時間が必要
  227. #             10%でゲージ満タンまで1/10の時間  0%で即時実行になります
  228. #           
  229. # 固定時の数値…基準を 0:固定値 にした場合基準となる俊敏性値
  230. #
  231. # チャージアクション…チャージ中のキャラが取るアクション                               |             200%でゲージ満タンまで2倍必要
  232. #                     サイドビュー設定の通しアクション名を入れます
  233. #                     ""にすると何もアクションを取らせません
  234.   def charge
  235.     case @id
  236.     when 2
  237.       return [ 4, 40, 0, ""]
  238.     end
  239.     # 上記ID以外のスキルは即時実行
  240.     return [ 4, 20, 0, ""]
  241.   end  
  242. #--------------------------------------------------------------------------
  243. # ● アクション終了後のATBゲージ設定 100でゲージ1本分
  244. #--------------------------------------------------------------------------
  245.   def recharge
  246.     case @id
  247.     when 1
  248.       return 30
  249.     end
  250.     # 上記ID以外のスキルは共通設定を使用
  251.     return N02::ATB_SKILL_RESET
  252.   end
  253. #--------------------------------------------------------------------------
  254. # ● 合体攻撃(指定キャラ全員が一斉に行動する)設定
  255. #--------------------------------------------------------------------------
  256. # 合体攻撃スキルIDを「,」で区切って入れます
  257. #               ↓            
  258. #           [98, 99],      
  259. #
  260. # 指定したいずれかのスキルIDを使用すると合体攻撃スキルを持っているキャラ全員が
  261. # ATBゲージを溜めはじめ、全員がチャージまで完了するとアクションを実行します
  262. # 溜めている途中で行動不能になったキャラが一人でもいるとキャンセルされます
  263. # 合体攻撃準備中は別の合体攻撃が使用できません
  264. #
  265. # スキルID配列最初のIDのスキルを持っているキャラが実際のアクティブバトラーと
  266. # なり、ダメージ計算等はこのキャラを基準にして行われます(例だとスキルID98番を
  267. # 習得しているキャラが行動します)が、どのキャラが選択しても合体攻撃準備に入ります
  268.   def union_action
  269.     return [
  270.    
  271.     [ 999,  999],
  272.     [999, 999, 999, 999],
  273.    
  274.     []]
  275.   end
  276. end
  277. #==============================================================================
  278. # ■ module RPG
  279. #------------------------------------------------------------------------------
  280. #  アイテム設定
  281. #==============================================================================
  282. class Item
  283. #--------------------------------------------------------------------------
  284. # ● チャージ設定 設定はスキルと同じ。
  285. #--------------------------------------------------------------------------  
  286.   def charge
  287.     case @id
  288.     when 1
  289.       return [ 4, 20, 0, ""]
  290.     end
  291.     # 上記ID以外のアイテムは即時実行
  292.     return [ 4, 0, 0, ""]
  293.   end
  294. #--------------------------------------------------------------------------
  295. # ● アクション終了時のATBゲージ設定 100でゲージ1本分
  296. #--------------------------------------------------------------------------
  297.   def recharge
  298.     case @id
  299.     when 1
  300.       return 0
  301.     end
  302.     # 上記ID以外のアイテムは共通設定を使用
  303.     return N02::ATB_ITEM_RESET
  304.   end
  305. end
  306. #==============================================================================
  307. # ■ module RPG
  308. #------------------------------------------------------------------------------
  309. #  ステート設定
  310. #==============================================================================
  311. class State
  312. #--------------------------------------------------------------------------
  313. # ● ATBゲージにダメージを与えるステート  ステート付加時に1回だけ実行します
  314. #--------------------------------------------------------------------------
  315. # チャージ中に受けるとチャージが解除され、ATBゲージ100%からダメージ分引かれます
  316. # ATBダメージ目的のスキルを作るなら、サイドビューアクションでダメージを与えた後
  317. # このステートを解除するアクションを入れてステートの表示優先度を0にし、ステート
  318. # 耐性を利用してATBダメージに対する抵抗をバランスするのがオススメです 

  319. # 数値をプラスにするとゲージが増加し、100%を超えるとコマンド入力可能になります
  320. # 数値は100でゲージ1本分
  321.   def atb_damage
  322.     case @id
  323.     when 8
  324.       return -100
  325.     end
  326.     # 上記ID以外のステート
  327.     return 0
  328.   end
  329. #--------------------------------------------------------------------------
  330. # ● 上記ATBダメージでゲージ0以下を許可するならtrue
  331. #--------------------------------------------------------------------------
  332.   def atb_minus_damage
  333.     return false
  334.   end  
  335. end  
  336. #==============================================================================
  337. # ■ module RPG
  338. #------------------------------------------------------------------------------
  339. #  武器設定
  340. #==============================================================================
  341. class Weapon
  342. #--------------------------------------------------------------------------
  343. # ● 通常攻撃は武器ごとのチャージ設定に依存します。設定はスキルと同じ。
  344. #--------------------------------------------------------------------------
  345. # 二刀時のチャージ時間は両方の武器の平均で、アクションは右手武器のものになります
  346.   def charge
  347.     case @id
  348.     when 2
  349.       return [ 4, 0, 0, ""]
  350.     end
  351.     # 上記ID以外の武器は即時実行
  352.     return [ 4, 0, 0, ""]
  353.   end
  354. #--------------------------------------------------------------------------
  355. # ● チャージ補正。特定の武器装備時にチャージ時間を短くしたい時とかに
  356. #--------------------------------------------------------------------------
  357. # 通常攻撃だけではなく全行動のチャージに効果があり、マイナスでチャージ時間が減ります
  358. # 二刀時は両方の武器の平均になります
  359.   def charge_bonus
  360.     case @id
  361.     when 1
  362.       return 0
  363.     end
  364.     # 上記ID以外の武器は即時実行
  365.     return 0
  366.   end
  367. #--------------------------------------------------------------------------
  368. # ● アクション終了時のATBゲージ設定 通常攻撃にのみ効果あり。100でゲージ1本分
  369. #--------------------------------------------------------------------------
  370. # 武器は通常攻撃アクションにのみ効果があり、スキルやアイテムには反映されません
  371. # 二刀時は両方の武器の平均になります
  372.   def recharge
  373.     case @id
  374.     when 1
  375.       return 20
  376.     end
  377.     # 上記ID以外の武器は共通設定を使用
  378.     return N02::ATB_ATTACK_RESET
  379.   end
  380. #--------------------------------------------------------------------------
  381. # ● 戦闘開始時のATBゲージ初期値 この数値だけ加算(マイナスで減算)されます 100でゲージ1本分
  382. #--------------------------------------------------------------------------
  383. # 二刀時は両方の武器の平均になります
  384.   def atb_base
  385.     case @id
  386.     when 1
  387.       return 0
  388.     end
  389.     # 上記ID以外の武器
  390.     return 0
  391.   end
  392. end
  393. #==============================================================================
  394. # ■ module RPG
  395. #------------------------------------------------------------------------------
  396. #  防具設定 装備している数の分だけ効果は累積されます
  397. #==============================================================================
  398. class Armor
  399. #--------------------------------------------------------------------------
  400. # ● チャージ補正。特定の防具装備時にチャージ時間を短くしたい時とかに
  401. #--------------------------------------------------------------------------
  402.   def charge_bonus
  403.     case @id
  404.     when 1
  405.       return 0
  406.     end
  407.     # 上記ID以外の防具は即時実行
  408.     return 0
  409.   end
  410. #--------------------------------------------------------------------------
  411. # ● 戦闘開始時のATBゲージ初期値 この数値だけ加算(マイナスで減算)されます
  412. #--------------------------------------------------------------------------
  413.   def atb_base
  414.     case @id
  415.     when 1
  416.       return 0
  417.     end
  418.     # 上記ID以外の防具
  419.     return 0
  420.   end
  421. end
  422. end
  423. #==============================================================================
  424. # ■ Game_Actor
  425. #------------------------------------------------------------------------------
  426. #  アクター設定
  427. #==============================================================================
  428. class Game_Actor < Game_Battler
  429. #--------------------------------------------------------------------------
  430. # ● アクターごとのチャージ設定(素手時) 設定はスキルと同じ。
  431. #--------------------------------------------------------------------------
  432.   def charge
  433.     case @actor_id
  434.     when 1
  435.       return [ 4, 0, 0, ""]
  436.     end
  437.     # 上記ID以外のアクターは即時実行
  438.     return [ 4, 0, 0, ""]
  439.   end
  440. #--------------------------------------------------------------------------
  441. # ● アクション終了時のATBゲージ設定(素手時)
  442. #--------------------------------------------------------------------------
  443. # 通常攻撃で素手時のみ効果があります
  444.   def recharge
  445.     case @actor_id
  446.     when 1
  447.       return 20
  448.     end
  449.     # 上記ID以外のアクターは共通設定を使用
  450.     return N02::ATB_ATTACK_RESET
  451.   end
  452. #--------------------------------------------------------------------------
  453. # ● 戦闘開始時のATBゲージ初期値(共通設定を無視します)
  454. #--------------------------------------------------------------------------
  455.   def atb_base
  456.     case @actor_id
  457.     when 1
  458.       return 30
  459.     end
  460.     # 上記ID以外のアクターは共通設定を使用
  461.     return N02::ATB_BASE_ACTOR
  462.   end
  463. #--------------------------------------------------------------------------
  464. # ● ATBゲージを表示するアクターを指定 表示するならtrue
  465. #--------------------------------------------------------------------------
  466.   def atb_on
  467.     case @actor_id
  468.     when 1
  469.       return true
  470.     end
  471.     # 上記ID以外のアクター設定
  472.     return true
  473.   end
  474. end  
  475. #==============================================================================
  476. # ■ Game_Enemy
  477. #------------------------------------------------------------------------------
  478. #  エネミー設定
  479. #==============================================================================
  480. class Game_Enemy < Game_Battler
  481. #--------------------------------------------------------------------------
  482. # ● エネミーごとのチャージ設定(素手時) 設定はスキルと同じ。
  483. #--------------------------------------------------------------------------
  484.   def charge
  485.     case @enemy_id
  486.     when 1
  487.       return [ 4, 20, 0, ""]
  488.     end
  489.     # 上記ID以外のエネミーは即時実行
  490.     return [ 4, 0, 0, ""]
  491.   end
  492. #--------------------------------------------------------------------------
  493. # ● アクション終了時のATBゲージ設定(素手時)
  494. #--------------------------------------------------------------------------
  495. # 通常攻撃で素手時のみ効果があります
  496.   def recharge
  497.     case @enemy_id
  498.     when 1
  499.       return 20
  500.     end
  501.     # 上記ID以外のアクターは共通設定を使用
  502.     return N02::ATB_ATTACK_RESET
  503.   end
  504. #--------------------------------------------------------------------------
  505. # ● 戦闘開始時のATBゲージ初期値(共通設定を無視します)
  506. #--------------------------------------------------------------------------
  507.   def atb_base
  508.     case @enemy_id
  509.     when 1
  510.       return 10
  511.     end
  512.     # 上記ID以外のエネミーは共通設定を使用
  513.     return N02::ATB_BASE_ENEMY
  514.   end
  515. #--------------------------------------------------------------------------
  516. # ● ATBゲージを表示するエネミーを指定(共通設定を無視します) 表示するならtrue
  517. #--------------------------------------------------------------------------
  518.   def atb_on
  519.     case @enemy_id
  520.     when 1
  521.       return true
  522.     end
  523.     # 上記ID以外のエネミーは共通設定を使用
  524.     return N02::ATB_ENEMY_ON
  525.   end
  526. end
复制代码
ATB
  1. #==============================================================================
  2. # ■ Scene_Battle  for ATB Ver1.2
  3. #------------------------------------------------------------------------------
  4. #  バトル画面の処理を行うクラスです。
  5. #==============================================================================
  6. class Scene_Battle < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 開始処理
  9.   #--------------------------------------------------------------------------
  10.   alias start_n02 start
  11.   def start
  12.     $gauge_stop = true
  13.     $game_party.atb_customize
  14.     start_n02
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 終了処理
  18.   #--------------------------------------------------------------------------
  19.   alias terminate_n02 terminate
  20.   def terminate
  21.     terminate_n02
  22.     # 二刀流の持ち替え処理を戻す
  23.     for member in $game_party.members
  24.       if member.two_swords_change
  25.         member.change_equip_by_id(1, member.weapon_id)
  26.         member.change_equip_by_id(0, 0)
  27.         member.two_swords_change = false
  28.       end  
  29.       member.clear_sprite_effects
  30.     end
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 戦闘開始の処理
  34.   #--------------------------------------------------------------------------
  35.   alias process_battle_start_n02 process_battle_start
  36.   def process_battle_start
  37.     @end_member = 0
  38.     preemptive if $game_troop.preemptive
  39.     surprise if $game_troop.surprise
  40.     @status_window.visible = true
  41.     process_battle_start_n02
  42.     @status_window.refresh
  43.     $gauge_stop = false
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 先制処理
  47.   #--------------------------------------------------------------------------
  48.   def preemptive
  49.     $game_troop.preemptive = false
  50.     for member in $game_party.members + $game_troop.members
  51.       member.at_count = 1000 if member.actor?
  52.       member.at_count = N02::ATB_BACKATTACK * -10 if !member.actor?
  53.     end  
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 不意打ち処理
  57.   #--------------------------------------------------------------------------
  58.   def surprise
  59.     $game_troop.surprise = false
  60.     for member in $game_party.members + $game_troop.members
  61.       member.at_count = N02::ATB_BACKATTACK * -10 if member.actor?
  62.       member.at_count = 1000 if !member.actor?
  63.     end
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 情報表示ビューポートの解放
  67.   #--------------------------------------------------------------------------
  68.   alias dispose_info_viewport_n02 dispose_info_viewport
  69.   def dispose_info_viewport
  70.     dispose_info_viewport_n02
  71.     @cursor.dispose if @cursor != nil && [email protected]?
  72.     @help_window.dispose if @help_window != nil && !@help_window.disposed?
  73.     @help_window = nil
  74.     @help_window2.dispose if @help_window2 != nil && !@help_window2.disposed?
  75.     @help_window2 = nil
  76.     @skill_window.dispose if @skill_window != nil && !@skill_window.disposed?
  77.     @skill_window = nil
  78.     @item_window.dispose if @item_window != nil && !@item_window.disposed?
  79.     @skill_window = nil
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● フレーム更新  ※再定義
  83.   #--------------------------------------------------------------------------
  84.   def update
  85.     super
  86.     update_basic(true)
  87.     unless $game_message.visible                # メッセージ表示中以外
  88.       return if judge_win_loss if @judge == nil # 勝敗判定
  89.       update_scene_change
  90.     end  
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 基本更新処理  ※再定義
  94.   #--------------------------------------------------------------------------
  95.   def update_basic(main = false)
  96.     Graphics.update unless main                 # ゲーム画面を更新
  97.     Input.update unless main                    # 入力情報を更新
  98.     $game_system.update                         # タイマーを更新
  99.     $game_troop.update                          # 敵グループを更新
  100.     @spriteset.update                           # スプライトセットを更新
  101.     @message_window.update                      # メッセージウィンドウを更新
  102.     update_info_viewport if !$gauge_stop        # 情報表示ビューポートを更新
  103.     # カーソル更新
  104.     @cursor.update if @cursor != nil && @cursor.visible
  105.     # メッセージ表示中はこれ以降処理させない
  106.     if $game_message.visible
  107.       @spriteset.gauge_off
  108.       @info_viewport.visible = false
  109.       return @message_window.visible = true
  110.     end
  111.     return if $gauge_stop
  112.     # 戦闘中断、シーン切り替えの際これ以降は処理させない
  113.     return if @judge
  114.     return if $game_temp.next_scene != nil
  115.     # ATBを更新
  116.     update_atb
  117.     # ターゲット更新
  118.     update_target if @target_members != nil
  119.     # コマンド入力フェイズ
  120.     start_actor_command_selection if @command_members.size != 0 && !@command_phase
  121.     if @skill_window != nil
  122.       update_skill_selection                    # スキル選択
  123.     elsif @item_window != nil
  124.       update_item_selection                     # アイテム選択
  125.     elsif @party_command_window.visible && @party_command_window.active
  126.       update_party_command_selection            # パーティコマンド選択
  127.     elsif @actor_command_window.active
  128.       update_actor_command_selection            # アクターコマンド選択
  129.     end
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● ATB更新
  133.   #--------------------------------------------------------------------------
  134.   def update_atb
  135.     for member in $game_party.members + $game_troop.members
  136.       # ACT更新
  137.       return start_main(member) if member.act_active && !@action_battlers.include?(member) && !member.union_battler
  138.       # ATBアクター更新
  139.       if member.actor? && member.at_active && !@command_members.include?(member) && member.movable?
  140.         return start_auto_action(member) if member.auto_action?
  141.         return @command_members.push(member)
  142.       # ATBエネミー更新
  143.       elsif !member.actor? && member.at_active && !@command_members.include?(member) && member.movable?
  144.         return start_auto_action(member)
  145.       end
  146.     end
  147.   end
  148.   #--------------------------------------------------------------------------
  149.   # ● 自動行動開始
  150.   #--------------------------------------------------------------------------
  151.   def start_auto_action(member)
  152.     return if @judge
  153.     # 戦闘行動の作成
  154.     member.make_action if member.union_skill_id == 0
  155.     # チャージ設定
  156.     act_type = charge_set(member)
  157.     # 複数回行動の作成
  158.     member.act_time = member.action_time[0] if !member.actor?
  159.     # 行動ゲージに切り替え
  160.     @spriteset.change_act(act_type, member.actor?, member.index)
  161.     # チャージアクション
  162.     make_charge_action(member)
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # ● チャージ設定
  166.   #--------------------------------------------------------------------------
  167.   def charge_set(member)
  168.     act_type = member.charge
  169.     # 通常攻撃(二刀のチャージ時間は双方武器の平均)
  170.     if member.actor? && member.action.attack? && member.weapon_id != 0
  171.       act_type = member.weapons[0].charge if member.weapons[0] != nil
  172.       act_type2 = member.weapons[1].charge if member.weapons[1] != nil
  173.       act_type[1] = (act_type[1] + act_type2[1]) / 2 if act_type2 != nil
  174.     elsif member.action.attack?
  175.       act_type = $data_weapons[member.weapon_id].charge if member.actor? && member.weapon_id != 0
  176.       act_type = $data_weapons[member.weapon].charge if !member.actor? && member.weapon != 0
  177.     end
  178.     act_type = $data_skills[member.action.skill_id].charge if member.action.skill?
  179.     act_type = $data_items[member.action.item_id].charge if member.action.item?
  180.     # チャージボーナス加算
  181.     if member.actor?
  182.       act_type[1] += $data_weapons[member.weapon_id].charge_bonus if member.weapon_id != 0
  183.       for i in 0...member.armors.size
  184.         # 二刀はキャンセル
  185.         next if member.two_swords_style && member.armors[0] != nil && member.armors[0]
  186.         act_type[1] += member.armors[i].charge_bonus if member.armors[i] != nil
  187.       end
  188.     end
  189.     return act_type
  190.   end   
  191.   #--------------------------------------------------------------------------
  192.   # ● 戦闘行動者の準備  ※再定義
  193.   #--------------------------------------------------------------------------
  194.   def start_main(member)
  195.     return if @judge
  196.     @message_window.clear
  197.     @action_battlers.push(member)
  198.     @status_window.refresh
  199.     member.charge_start = false
  200.     # アクティブバトラーがいなければ次の行動者をセット
  201.     set_next_active_battler if @active_battler == nil
  202.   end
  203.   #--------------------------------------------------------------------------
  204.   # ● ヘルプウインドウの表示  ※再定義
  205.   #--------------------------------------------------------------------------
  206.   def pop_help(obj)
  207.     return if @help_window == nil && obj.extension.include?("ヘルプ非表示")
  208.     return @help_window.visible = false if obj.extension.include?("ヘルプ非表示")
  209.     return if @skill_window != nil && @skill_window.visible
  210.     return if @item_window != nil && @item_window.visible
  211.     @help_window = Window_Help.new if @help_window == nil
  212.     @help_window.set_text(obj.name, 1)
  213.     @help_window.visible = true
  214.   end
  215.   #--------------------------------------------------------------------------
  216.   # ● チャージアクション作成
  217.   #--------------------------------------------------------------------------
  218.   def make_charge_action(member)
  219.     action = ""
  220.     case member.action.kind
  221.     when 0
  222.       if member.actor?
  223.         action = member.charge[3] if member.weapon_id == 0
  224.         action = $data_weapons[member.weapon_id].charge[3] if member.weapon_id != 0
  225.       else
  226.         action = member.charge[3] if member.weapon == 0
  227.         action = $data_weapons[member.weapon].charge[3] if member.weapon != 0
  228.       end
  229.     when 1;action = member.action.skill.charge[3]
  230.     when 2;action = member.action.item.charge[3]
  231.     end
  232.     member.charge_action = action
  233.     return if action == ""
  234.     member.charge_start = true
  235.     @spriteset.set_action(member.actor?, member.index, member.charge_action)
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● アクション実行中  ※再定義
  239.   #--------------------------------------------------------------------------
  240.   def playing_action
  241.     loop do
  242.       break if @judge
  243.       update_basic
  244.       # アクティブバトラーに格納されているアクション情報を見る
  245.       action = @active_battler.play
  246.       next if action == 0
  247.       @active_battler.play = 0
  248.       if action[0] == "個別処理"
  249.         individual
  250.       elsif action == "コラプス許可"
  251.         unimmortaling
  252.       elsif action == "アクティブ解除"
  253.         break action_end
  254.       elsif action == "終了"
  255.         break action_end
  256.       elsif action[0] == "対象アニメ"
  257.         damage_action(action[1])
  258.       end
  259.     end  
  260.   end
  261.   #--------------------------------------------------------------------------
  262.   # ● 戦闘アクション実行
  263.   #--------------------------------------------------------------------------
  264.   def process_action
  265.     # スリップダメージ
  266.     hp_slip_damage(@active_battler) if N02::ATB_SLIP_DAMAGE == 0
  267.     # 合体攻撃処理
  268.     union_possibility?
  269.     process_union_skill if @active_battler.union_skill_id != 0
  270.     return set_next_active_battler if @active_battler.union_battler
  271.     # 暴走混乱処理
  272.     @active_battler.action.prepare unless @active_battler.action.forcing
  273.     # 戦闘行動開始
  274.     $in_action = true
  275.     @message_window.clear
  276.     @active_battler.white_flash = true
  277.     # ヘルプウインドウ表示
  278.     help_on
  279.     # 戦闘アクション実行
  280.     execute_action if @active_battler.action.valid? && @active_battler.restriction < 4
  281.     # ヘルプウインドウ隠蔽
  282.     help_off
  283.     # 強制行動などでバトラーが空になったら次の行動者へ
  284.     return set_next_active_battler if @active_battler == nil
  285.     # スリップダメージ
  286.     mp_slip_damage(@active_battler) if N02::ATB_SLIP_DAMAGE == 0
  287.     # 戦闘アクション終了
  288.     @message_window.clear
  289.     @active_battler.white_flash = false
  290.     $in_action = false
  291.     @spriteset.gauge_update
  292.     # 合体攻撃終了処理
  293.     end_union_skill if @active_battler.union_skill_id != 0
  294.     # スキル派生がある場合、行動続行
  295.     return set_next_active_battler if @active_battler.derivation != 0 && !@forcing_battler
  296.     # エネミーの複数回行動
  297.     return set_next_active_battler if enemy_order
  298.     # 戦闘行動終了
  299.     turn_end(@active_battler)
  300.     # 次の行動者へ
  301.     @action_battlers.delete(@active_battler)
  302.     set_next_active_battler
  303.   end
  304.   #--------------------------------------------------------------------------
  305.   # ● ヘルプウインドウ表示
  306.   #--------------------------------------------------------------------------
  307.   def help_on
  308.     @help_window = Window_Help.new if @help_window == nil
  309.     @help_window.visible = false
  310.     return @help_window.visible = true if @skill_window != nil && @skill_window.visible
  311.     return @help_window.visible = true if @item_window != nil && @item_window.visible
  312.     return @help_window.visible = true if @active_battler.action.guard?
  313.     return @help_window.visible = true if @active_battler.action.kind == 0 && @active_battler.action.basic == 2
  314.   end
  315.   #--------------------------------------------------------------------------
  316.   # ● ヘルプウインドウ隠蔽
  317.   #--------------------------------------------------------------------------
  318.   def help_off
  319.     return if @help_window == nil
  320.     return @help_window.visible = true if @skill_window != nil && @skill_window.visible
  321.     return @help_window.visible = true if @item_window != nil && @item_window.visible
  322.     @help_window.visible = false
  323.   end
  324.   #--------------------------------------------------------------------------
  325.   # ● アクション終了  ※再定義
  326.   #--------------------------------------------------------------------------
  327.   def action_end
  328.     # 初期化
  329.     @individual_target = nil
  330.     @active_battler.active = false
  331.     @active_battler.clear_action_results
  332.     # 念のため不死身化解除
  333.     unimmortaling
  334.     # 反射されていた場合
  335.     if @active_battler.reflex != nil
  336.       if @active_battler.action.skill?
  337.         obj = @active_battler.action.skill
  338.         @active_battler.perfect_skill_effect(@active_battler, obj)
  339.       elsif @active_battler.action.item?
  340.         obj = @active_battler.action.item
  341.         @active_battler.item_effect(@active_battler, obj)
  342.       else
  343.         @active_battler.perfect_attack_effect(@active_battler)
  344.       end
  345.       pop_damage(@active_battler, obj, @active_battler.reflex)
  346.       @active_battler.perform_collapse
  347.       @active_battler.reflex = nil
  348.       wait(N01::COLLAPSE_WAIT)
  349.     end
  350.     # 逆吸収で戦闘不能になった場合
  351.     if @absorb_dead
  352.       @active_battler.perform_collapse
  353.       @absorb_dead = false
  354.       wait(N01::COLLAPSE_WAIT)
  355.     end
  356.     # 次の行動までウエイトを挟む
  357.     wait(N01::ACTION_WAIT)
  358.   end  
  359.   #--------------------------------------------------------------------------
  360.   # ● 合体攻撃判定
  361.   #--------------------------------------------------------------------------
  362.   def union_skill?(member)
  363.     # スキルに合体攻撃設定があるかチェック
  364.     for union_action in member.action.skill.union_action
  365.       union_skills = union_action if union_action.size != 0 && union_action.include?(member.action.skill_id)
  366.     end
  367.     return if union_skills == nil
  368.     @partners = []
  369.     @union_targets = union_target_decision(member, member.action.skill)
  370.     @union_target_index = member.action.target_index
  371.     # 合体攻撃メンバーが使用可能かチェック
  372.     for skill_id in union_skills
  373.       for actor in $game_party.members
  374.         if actor.skill_can_use?($data_skills[skill_id]) && actor.skill_id_learn?(skill_id)
  375.           @partners.push(actor)
  376.           actor.union_skill_id = skill_id
  377.         end
  378.       end
  379.     end
  380.     # 合体攻撃使用不可
  381.     if @partners.size != union_skills.size
  382.       for actor in @partners do actor.union_skill_id = 0 end
  383.       @partners = nil
  384.       member.action.clear if !member.action.guard?
  385.       return
  386.     end
  387.     # 合体攻撃使用可
  388.     for actor in @partners
  389.       # パートナーアクション決定
  390.       actor.action.kind = 1
  391.       actor.action.skill_id = actor.union_skill_id
  392.       actor.action.target_index = member.action.target_index
  393.       # コマンド強制キャンセル
  394.       if @command_members.include?(actor)
  395.         force_action_command_cansel(actor)
  396.         start_auto_action(member)
  397.       end
  398.     end
  399.     $in_union_action = true
  400.     @union_size = 0
  401.   end  
  402.   #--------------------------------------------------------------------------
  403.   # ● 合体攻撃可能か
  404.   #--------------------------------------------------------------------------
  405.   def union_possibility?
  406.     return if @partners == nil
  407.     for member in @partners
  408.       union_cansel = true unless member.inputable?
  409.     end
  410.     return if !union_cansel
  411.     end_union_skill
  412.     @active_battler.action.clear if !@active_battler.action.guard?
  413.   end
  414.   #--------------------------------------------------------------------------
  415.   # ● 合体攻撃ターゲット決定
  416.   #--------------------------------------------------------------------------
  417.   def union_target_decision(member, obj)
  418.     targets = member.action.make_targets
  419.     # デフォルトの複数回攻撃が設定されていれば単体ターゲットに変換
  420.     targets = [targets[0]] if obj.for_two? or obj.for_three? or obj.dual?
  421.     # ランダムターゲットの場合、一体を選択しランダム範囲を保持
  422.     if obj.extension.include?("ランダムターゲット")
  423.       randum_targets = targets.dup
  424.       targets = [randum_targets[rand(randum_targets.size)]]
  425.     end
  426.     # ターゲット情報をバトラースプライトに送る
  427.     @spriteset.set_target(member.actor?, member.index, targets)
  428.     return targets
  429.   end   
  430.   #--------------------------------------------------------------------------
  431.   # ● 合体攻撃処理
  432.   #--------------------------------------------------------------------------
  433.   def process_union_skill
  434.     @union_size += 1
  435.     if @union_size != @partners.size
  436.       return @active_battler.union_battler = true
  437.     end
  438.     # 合体攻撃スタート
  439.     @action_battlers.delete(@active_battler)
  440.     @active_battler.active = false
  441.     @active_battler = @partners.shift
  442.     @active_battler.act_active = true
  443.     @active_battler.active = true
  444.     @active_battler.union_battler = false
  445.     @active_battler.action.kind = 1
  446.     @active_battler.action.skill_id = @active_battler.union_skill_id
  447.     @active_battler.action.target_index = @union_target_index
  448.     for member in @partners
  449.       member.action.kind = 1
  450.       member.action.skill_id = member.union_skill_id
  451.       member.action.target_index = @union_target_index
  452.       member.force_target = ["N01target_change", @union_targets]
  453.       @spriteset.update_target(true, member.index)
  454.       # アクション実行
  455.       @spriteset.set_action(true, member.index, member.action.skill.base_action)
  456.     end
  457.   end  
  458.   #--------------------------------------------------------------------------
  459.   # ● 合体攻撃終了処理
  460.   #--------------------------------------------------------------------------
  461.   def end_union_skill
  462.     @active_battler.union_skill_id = 0
  463.     @active_battler.union_battler = false
  464.     for member in @partners
  465.       member.union_skill_id = 0
  466.       member.union_battler = false
  467.       member.action.clear
  468.       @action_battlers.delete(member)
  469.       turn_end(member)
  470.     end
  471.     @union_size = 0
  472.     @partners = nil
  473.     $in_union_action = false
  474.   end
  475.   #--------------------------------------------------------------------------
  476.   # ● エネミーの行動回数作成
  477.   #--------------------------------------------------------------------------
  478.   def enemy_order
  479.     return false if @active_battler.actor?
  480.     return false if @active_battler.act_time == 0 or !@active_battler.action.valid?
  481.     return true if rand(100) < @active_battler.action_time[1]
  482.   end
  483.   #--------------------------------------------------------------------------
  484.   # ● ターン終了(経過)  ※再定義
  485.   #--------------------------------------------------------------------------
  486.   def turn_end(member)
  487.     $in_action = false
  488.     # アクション終了時のATBゲージ設定
  489.     recharge_action(member)
  490.     member.action.clear if !member.action.guard?
  491.     process_battle_event
  492.     # ターン経過カウント
  493.     @end_member += 1
  494.     passage = true if N02::ATB_TURN_COUNT == 2
  495.     if @end_member >= $game_party.members.size + $game_troop.members.size
  496.       passage = true if N02::ATB_TURN_COUNT == 0
  497.       passage = true if N02::ATB_TURN_COUNT == 1 && @end_member == 2
  498.     elsif @end_member == ($game_party.members.size + $game_troop.members.size) / 2
  499.       passage = true if N02::ATB_TURN_COUNT == 1
  500.     end
  501.     # スリップダメージ
  502.     if @slip_all_damage
  503.       for battlers in $game_party.members + $game_troop.members do mp_slip_damage(battlers) end
  504.       @slip_all_damage = false
  505.       @slip_all_damaged = true
  506.     end
  507.     return if !passage
  508.     # スリップダメージ
  509.     if N02::ATB_SLIP_DAMAGE == 1 && !@slip_all_damaged
  510.       for battlers in $game_party.members + $game_troop.members do hp_slip_damage(battlers) end
  511.       @slip_all_damage = true
  512.     end
  513.     @slip_all_damaged = false
  514.     @end_member = 0
  515.     $game_troop.increase_turn
  516.     $game_troop.turn_ending = true
  517.     $game_troop.turn_ending = false
  518.     @status_window.refresh
  519.   end
  520.   #--------------------------------------------------------------------------
  521.   # ● アクション終了時のATBゲージ設定
  522.   #--------------------------------------------------------------------------
  523.   def recharge_action(member)
  524.     member.act_count = 0
  525.     recharge = member.recharge
  526.     # 通常攻撃(二刀のチャージ時間は双方武器の平均)
  527.     if member.actor? && member.action.attack?
  528.       recharge = member.weapons[0].recharge if member.weapons[0] != nil
  529.       recharge2 = member.weapons[1].recharge if member.weapons[1] != nil
  530.       recharge = (recharge + recharge2) / 2 if recharge2 != nil
  531.     elsif member.action.attack?
  532.       act_type = $data_weapons[member.weapon].charge if member.weapon != 0
  533.     end
  534.     recharge = $data_skills[member.action.skill_id].recharge if member.action.skill?
  535.     recharge = $data_items[member.action.item_id].recharge if member.action.item?
  536.     recharge = N02::ATB_GUARD_RESET if member.action.guard?
  537.     # ATBゲージに切り替え
  538.     @spriteset.change_atb(10 * recharge, member.actor?, member.index)
  539.     @spriteset.gauge_refresh(member.actor?, member.index)
  540.   end   
  541.   #--------------------------------------------------------------------------
  542.   # ● 次の行動者へ
  543.   #--------------------------------------------------------------------------
  544.   def set_next_active_battler
  545.     return if $game_party.all_dead? or $game_troop.all_dead?
  546.     # 全員の不死身化解除(イベント等で不死身設定がされていれば除く)
  547.     member_unimmortaling
  548.     # エネミー複数回行動時
  549.     @action_battlers.shift if @active_battler != nil && !@active_battler.actor? && @active_battler.act_time != 0
  550.     loop do
  551.       if $game_troop.forcing_battler != nil
  552.         @active_battler = $game_troop.forcing_battler
  553.         @action_battlers.delete(@active_battler)
  554.         $game_troop.forcing_battler = nil
  555.       else
  556.         @active_battler = @action_battlers.shift
  557.       end
  558.       @active_battler.action.clear if @active_battler != nil && @active_battler.dead?
  559.       return if @active_battler == nil
  560.       # 戦闘行動開始
  561.       return process_action if @active_battler.index != nil
  562.     end
  563.   end
  564.   #--------------------------------------------------------------------------
  565.   # ● バトルイベントの処理  ※再定義
  566.   #--------------------------------------------------------------------------
  567.   def process_battle_event
  568.     members_size = $game_party.members.size
  569.     loop do
  570.       return if judge_win_loss
  571.       return if $game_temp.next_scene != nil
  572.       $game_troop.interpreter.update
  573.       $game_troop.setup_battle_event
  574.       @message_window.update
  575.       if $game_message.visible
  576.         @message_window.visible = true
  577.         @status_window.visible = false
  578.       end
  579.       wait_for_message
  580.       @message_window.visible = false
  581.       @status_window.visible = true
  582.       reset_atb_actor if members_size != $game_party.members.size
  583.       if $game_troop.forcing_battler != nil
  584.         member_unimmortaling
  585.         $game_troop.forcing_battler.clear_sprite_effects
  586.         @spriteset.set_stand_by_action($game_troop.forcing_battler.actor?, $game_troop.forcing_battler.index)
  587.         set_next_active_battler
  588.       end
  589.       return unless $game_troop.interpreter.running?
  590.       update_basic
  591.     end
  592.   end
  593.   #--------------------------------------------------------------------------
  594.   # ● 全員の不死身化解除
  595.   #--------------------------------------------------------------------------
  596.   def member_unimmortaling
  597.     for member in $game_party.members + $game_troop.members
  598.       member.non_dead = true if member.immortal
  599.       next if member.non_dead
  600.       next if member.dead?
  601.       member.immortal = false
  602.     end
  603.   end
  604.   #--------------------------------------------------------------------------
  605.   # ● HPスリップダメージ
  606.   #--------------------------------------------------------------------------
  607.   def hp_slip_damage(member)
  608.     member.clear_action_results
  609.     return if !member.exist?
  610.     member.slip_damage = false
  611.     damage = 0
  612.     # 0ターン解除のステートがあるかチェック
  613.     for state in member.states
  614.       member.remove_state(state.id) if state.extension.include?("0ターン解除")
  615.       # スリップダメージ実行 state = [ 対象, 定数, 割合, POP, 戦闘不能許可]
  616.       next unless state.extension.include?("スリップダメージ")
  617.       for ext in state.slip_extension
  618.         if ext[0] == "hp"
  619.           base_damage = ext[1] + member.maxhp * ext[2] / 100
  620.           damage += base_damage + base_damage * (rand(5) - rand(5)) / 100
  621.           slip_pop = ext[3]
  622.           slip_dead = ext[4]
  623.           slip_damage_flug = true
  624.           member.slip_damage = true
  625.         end
  626.       end  
  627.     end
  628.     # デフォルトのスリップダメージ
  629.     if member.slip_damage? && member.exist? && !slip_damage_flug
  630.       damage += member.apply_variance(member.maxhp / 10, 10)
  631.       slip_dead = false
  632.       slip_pop = true
  633.       slip_damage_flug = true
  634.       member.slip_damage = true
  635.     end
  636.     # 防具の自動回復があるか
  637.     if member.actor? && member.auto_hp_recover && member.exist?
  638.       damage -= member.maxhp / 20
  639.       slip_pop = true
  640.     end  
  641.     # 戦闘不能不許可
  642.     damage = member.hp - 1 if damage >= member.hp && slip_dead = false
  643.     member.hp -= damage
  644.     @spriteset.set_damage_pop(member.actor?, member.index, damage) if slip_pop
  645.     member.perform_collapse if member.dead? && member.slip_damage
  646.     member.clear_action_results
  647.     @status_window.refresh
  648.   end
  649.   #--------------------------------------------------------------------------
  650.   # ● MPスリップダメージ
  651.   #--------------------------------------------------------------------------
  652.   def mp_slip_damage(member)
  653.     member.clear_action_results
  654.     return if !member.exist? or member.states.size == 0
  655.     member.slip_damage = false
  656.     mp_damage = 0
  657.     for state in member.states
  658.       next unless state.extension.include?("スリップダメージ")
  659.       for ext in state.slip_extension
  660.         if ext[0] == "mp"
  661.           base_damage = ext[1] + member.maxmp * ext[2] / 100
  662.           mp_damage += base_damage + base_damage * (rand(5) - rand(5)) / 100
  663.           slip_pop = ext[2]
  664.           slip_damage_flug = true
  665.         end
  666.       end
  667.     end  
  668.     member.mp_damage = mp_damage
  669.     member.mp -= mp_damage
  670.     @spriteset.set_damage_pop(member.actor?, member.index, mp_damage) if slip_pop
  671.     member.clear_action_results
  672.     @status_window.refresh
  673.   end  
  674.   #--------------------------------------------------------------------------
  675.   # ● 戦闘行動の実行 : 防御  ※再定義
  676.   #--------------------------------------------------------------------------
  677.   def execute_action_guard
  678.     @help_window.set_text("防御", 1)
  679.     @help_window.visible = true
  680.     # バトラーのアクティブ化を解除
  681.     @active_battler.active = false
  682.     wait(45)
  683.     @help_window.visible = false if @help_window != nil
  684.   end
  685.   #--------------------------------------------------------------------------
  686.   # ● 戦闘行動の実行 : 逃走  ※再定義
  687.   #--------------------------------------------------------------------------
  688.   def execute_action_escape
  689.     @spriteset.set_action(false, @active_battler.index, @active_battler.run_success)
  690.     @help_window.set_text("逃走", 1)
  691.     @help_window.visible = true
  692.     # バトラーのアクティブ化を解除
  693.     @active_battler.active = false
  694.     @active_battler.escape
  695.     Sound.play_escape
  696.     wait(45)
  697.     @help_window.visible = false if @help_window != nil
  698.   end
  699.   #--------------------------------------------------------------------------
  700.   # ● パーティコマンド選択の開始  ※再定義
  701.   #--------------------------------------------------------------------------
  702.   def start_party_command_selection
  703.     @info_viewport.visible = true
  704.     @status_window.index = @actor_index = -1
  705.   end
  706.   #--------------------------------------------------------------------------
  707.   # ● 次のアクターのコマンド入力へ  ※再定義
  708.   #--------------------------------------------------------------------------
  709.   def next_actor
  710.   end
  711.   #--------------------------------------------------------------------------
  712.   # ● 前のアクターのコマンド入力へ  ※再定義
  713.   #--------------------------------------------------------------------------
  714.   def prior_actor
  715.   end
  716.   #--------------------------------------------------------------------------
  717.   # ● アクターコマンド選択の開始  ※再定義
  718.   #--------------------------------------------------------------------------
  719.   def start_actor_command_selection
  720.     $in_command = true
  721.     @command_phase = true
  722.     @command_member_index = 0
  723.     @commander = @command_members[@command_member_index]
  724.     @status_window.active = true
  725.     @status_window.index = @commander.index
  726.     # カーソルセット
  727.     @cursor = Sprite_Cursor.new if @cursor == nil
  728.     @cursor.set(@commander)
  729.     # 動けるキャラのみコマンドアクションを
  730.     @spriteset.set_action(true, @commander.index,@commander.command_b) if @commander.inputable?
  731.     @party_command_window.active = false
  732.     @actor_command_window.setup(@commander)
  733.     @actor_command_window.active = true
  734.     @actor_command_window.index = 0
  735.     @actor_command_window_on = true
  736.     @status_window.refresh
  737.   end
  738.   #--------------------------------------------------------------------------
  739.   # ● コマンド更新  ※再定義
  740.   #--------------------------------------------------------------------------
  741.   def update_actor_command_selection
  742.     # コマンド入力できる状態でなくなればキャンセル
  743.     return reset_command unless commanding?
  744.     if Input.trigger?(Input::B)
  745.       Input.update
  746.       Sound.play_decision
  747.       start_party_command
  748.     elsif Input.trigger?(Input::C)
  749.       Input.update
  750.       case @actor_command_window.index
  751.       when 0  # 攻撃
  752.         Sound.play_decision
  753.         @commander.action.set_attack
  754.         start_target_enemy_selection
  755.       when 1  # スキル
  756.         Sound.play_decision
  757.         $in_select = true
  758.         start_skill_selection
  759.       when 2  # 防御
  760.         Sound.play_decision
  761.         @commander.action.set_guard
  762.         end_command
  763.       when 3  # アイテム
  764.         Sound.play_decision
  765.         $in_select = true
  766.         start_item_selection
  767.       end
  768.     # →キーでコマンドキャラ送り
  769.     elsif Input.trigger?(Input::RIGHT)
  770.       next_commander
  771.     # ←キーでコマンドキャラ戻し
  772.     elsif Input.trigger?(Input::LEFT)
  773.       back_commander
  774.     end
  775.   end
  776.   #--------------------------------------------------------------------------
  777.   # ● コマンド入力できる状態か
  778.   #--------------------------------------------------------------------------
  779.   def commanding?
  780.     return false if @judge or $gauge_stop
  781.     return false if @commander != nil && [email protected]?
  782.     return false if @commander != nil && @commander.union_skill_id != 0
  783.     return false if @commander != nil && @commander.at_count < 1000
  784.     return true
  785.   end
  786.   #--------------------------------------------------------------------------
  787.   # ● コマンドキャラ送り
  788.   #--------------------------------------------------------------------------
  789.   def next_commander
  790.     return if @command_members.size == 1 or @commander == nil
  791.     Audio.se_play("Audio/SE/" + N02::NEXT_SOUND01[2], N02::NEXT_SOUND01[1],  N02::NEXT_SOUND01[0])
  792.     # 動けるキャラのみコマンド戻りアクションを
  793.     @spriteset.set_action(true, @commander.index,@commander.command_a) if @commander.inputable?
  794.     # コマンド待ちメンバーのインデックスが最後なら
  795.     if @command_member_index == @command_members.size - 1
  796.       @command_member_index = 0
  797.     # 次のキャラにコマンドを送る
  798.     else
  799.       @command_member_index += 1
  800.     end
  801.     @commander = @command_members[@command_member_index]
  802.     @status_window.index = @commander.index
  803.     @actor_command_window.setup(@commander)
  804.     # カーソルセット
  805.     @cursor.set(@commander)
  806.     # 動けるキャラのみコマンドアクションを
  807.     @spriteset.set_action(true, @commander.index,@commander.command_b) if @commander.inputable?
  808.   end  
  809.   #--------------------------------------------------------------------------
  810.   # ● コマンドキャラ戻し
  811.   #--------------------------------------------------------------------------
  812.   def back_commander
  813.     return if @command_members.size == 1 or @commander == nil
  814.     Audio.se_play("Audio/SE/" + N02::NEXT_SOUND01[2], N02::NEXT_SOUND01[1],  N02::NEXT_SOUND01[0])
  815.     # 動けるキャラのみコマンド戻りアクションを
  816.     @spriteset.set_action(true, @commander.index,@commander.command_a) if @commander.inputable?
  817.     # コマンド待ちメンバーのインデックスが最初なら
  818.     if @command_member_index == 0
  819.       @command_member_index = @command_members.size - 1
  820.     # 前のキャラにコマンドを送る
  821.     else
  822.       @command_member_index -= 1
  823.     end
  824.     @commander = @command_members[@command_member_index]
  825.     @status_window.index = @commander.index
  826.     # カーソルセット
  827.     @cursor.set(@commander)
  828.     # 動けるキャラのみコマンドアクションを
  829.     @spriteset.set_action(true, @commander.index,@commander.command_b) if @commander.inputable?
  830.   end  
  831.   #--------------------------------------------------------------------------
  832.   # ● パーティコマンド選択の開始
  833.   #--------------------------------------------------------------------------
  834.   def start_party_command
  835.     $in_party_command = true
  836.     $in_command = false
  837.     @status_window.refresh
  838.     @status_window.index = @actor_index = -1
  839.     @info_viewport.visible = true
  840.     @message_window.visible = false
  841.     @pre_a_index = @actor_command_window.index
  842.     @actor_command_window.active = false
  843.     @actor_command_window.index = -1
  844.     @party_command_window.active = true
  845.     @party_command_window.index = 0
  846.     @party_command_window.visible = true
  847.   end
  848.   #--------------------------------------------------------------------------
  849.   # ● パーティコマンド選択の更新
  850.   #--------------------------------------------------------------------------
  851.   def update_party_command_selection
  852.     # コマンド入力できる状態でなくなればキャンセル
  853.     return reset_command unless commanding?
  854.     if Input.trigger?(Input::C)
  855.       case @party_command_window.index
  856.       when 0  # 戦う
  857.         Sound.play_decision
  858.         @status_window.index = @actor_index = -1
  859.         end_party_command
  860.       when 1  # 逃げる
  861.         return Sound.play_buzzer if $game_troop.can_escape == false
  862.         Sound.play_decision
  863.         end_party_command
  864.         process_escape if !@escape
  865.       end
  866.     elsif Input.trigger?(Input::B)
  867.       Sound.play_cancel
  868.       end_party_command
  869.     end
  870.   end
  871.   #--------------------------------------------------------------------------
  872.   # ● パーティコマンド選択の終了
  873.   #--------------------------------------------------------------------------
  874.   def end_party_command
  875.     $in_party_command = false
  876.     $in_command = true
  877.     @status_window.refresh
  878.     @message_window.visible = false
  879.     @party_command_window.active = false
  880.     @actor_command_window.active = true
  881.     @party_command_window.visible = false
  882.     @actor_command_window.index = @pre_a_index
  883.     @status_window.index = @commander.index
  884.     @status_window.active = true
  885.   end
  886.   #--------------------------------------------------------------------------
  887.   # ● 逃走の処理  ※再定義
  888.   #--------------------------------------------------------------------------
  889.   def process_escape
  890.     @escape = true
  891.     closed_window
  892.     @info_viewport.visible = false
  893.     @message_window.visible = true
  894.     text = sprintf(Vocab::EscapeStart, $game_party.name)
  895.     $game_message.texts.push(text)
  896.     if $game_troop.preemptive
  897.       success = true
  898.     else
  899.       success = (rand(100) < @escape_ratio)
  900.     end
  901.     Sound.play_escape
  902.     # 動けないアクターを除いて逃走成功アクション
  903.     if success
  904.       for actor in $game_party.members
  905.         if !actor.non_dead
  906.           actor.immortal = false
  907.           if actor.hp == 0 and not actor.state?(1)
  908.             actor.add_state(1)
  909.             actor.added_states.push(1)
  910.           end
  911.         end
  912.         unless actor.restriction >= 4
  913.           @spriteset.set_action(true, actor.index,actor.run_success)
  914.         end
  915.       end  
  916.       wait_for_message
  917.       @judge = true
  918.       if $game_party.all_dead?
  919.         process_defeat
  920.         battle_end(2)
  921.       else
  922.         battle_end(1)
  923.       end
  924.     # 動けないアクターを除いて逃走失敗アクション
  925.     else
  926.       for actor in $game_party.members
  927.         if !actor.non_dead
  928.           actor.immortal = false
  929.           if actor.hp == 0 and not actor.state?(1)
  930.             actor.add_state(1)
  931.             actor.added_states.push(1)
  932.           end
  933.         end
  934.         unless actor.restriction >= 4
  935.           @spriteset.set_action(true, actor.index,actor.run_ng)
  936.         end
  937.       end
  938.       @escape_ratio += 10
  939.       $game_message.texts.push('\.' + Vocab::EscapeFailure)
  940.       wait_for_message
  941.       $game_party.clear_actions
  942.       if $game_party.all_dead?
  943.         process_defeat
  944.         battle_end(2)
  945.       end
  946.     end
  947.     reset_atb_actor
  948.     @info_viewport.visible = true
  949.     @escape = false
  950.     for member in $game_party.members
  951.       member.clear_sprite_effects
  952.     end  
  953.   end  
  954.   #--------------------------------------------------------------------------
  955.   # ● アクターのATBを初期化
  956.   #--------------------------------------------------------------------------
  957.   def reset_atb_actor
  958.     @command_members = []
  959.     @commander = nil
  960.     $in_action = @command_phase = false
  961.     $in_command = $in_target = $in_select = false
  962.     @message_window.clear
  963.     for member in $game_party.members
  964.       @action_battlers.delete(member)
  965.       member.white_flash = false
  966.       member.action.clear
  967.       # ATBゲージに切り替え
  968.       @spriteset.change_atb(N02::ATB_RUN_NG * -10, member.actor?, member.index)
  969.     end
  970.   end
  971.   #--------------------------------------------------------------------------
  972.   # ● 開いているウインドウを閉じる
  973.   #--------------------------------------------------------------------------
  974.   def closed_window
  975.     @cursor.dispose if @cursor != nil
  976.     @cursor = nil
  977.     @help_window.dispose if @help_window != nil
  978.     @help_window = nil
  979.     @help_window2.dispose if @help_window2 != nil
  980.     @help_window2 = nil
  981.     @skill_window.dispose if @skill_window != nil
  982.     @skill_window = nil
  983.     @item_window.dispose if @item_window != nil
  984.     @item_window = nil
  985.     @actor_command_window_on = false if @actor_command_window != nil
  986.     @actor_command_window.active = false if @actor_command_window != nil
  987.     @party_command_window.visible = false if @party_command_window != nil
  988.     @party_command_window.active = false if @party_command_window != nil
  989.     @status_window.index = @actor_index = @actor_command_window.index = -1
  990.   end
  991.   #--------------------------------------------------------------------------
  992.   # ● ターゲット選択の開始  ※再定義
  993.   #--------------------------------------------------------------------------
  994.   def start_target_selection(actor = false)
  995.     $in_target = true
  996.     $in_command = $in_select = false
  997.     @target_actors = actor
  998.     @target_members = $game_party.members if @target_actors
  999.     @target_members = $game_troop.members unless @target_actors
  1000.     # 不要なウインドウを消す
  1001.     @actor_command_window.active = false
  1002.     @skill_window.visible = false if @skill_window != nil
  1003.     @item_window.visible = false if @item_window != nil
  1004.     # 存在しているターゲットで最も番号の低い対象を最初に指すように
  1005.     @index = 0
  1006.     @max_index = @target_members.size - 1
  1007.     # アクターは戦闘不能者でもターゲットできるようにエネミーと区別
  1008.     unless @target_actors
  1009.       @target_members.size.times do
  1010.         break if @target_members[@index].exist?
  1011.         @index += 1
  1012.       end
  1013.     end  
  1014.     # カーソルセット
  1015.     @cursor.set(@target_members[@index])
  1016.     @help_window.visible = false if @help_window != nil
  1017.     @help_window2 = Window_Help.new if @help_window2 == nil
  1018.     @help_window2.set_text_n02add(@target_members[@index])
  1019.   end
  1020.   #--------------------------------------------------------------------------
  1021.   # ● ターゲット選択更新  ※再定義
  1022.   #--------------------------------------------------------------------------
  1023.   def update_target
  1024.     # コマンド入力できる状態でなくなればキャンセル
  1025.     return reset_command unless commanding?
  1026.     return end_target_selection(cansel = true) if $game_troop.all_dead?
  1027.     cursor_down if !@target_members[@index].actor? && !@target_members[@index].exist?
  1028.     if Input.trigger?(Input::B)
  1029.       Input.update
  1030.       Sound.play_cancel
  1031.       end_target_selection(cansel = true)
  1032.     elsif Input.trigger?(Input::C)
  1033.       Input.update
  1034.       Sound.play_decision
  1035.       @commander.action.target_index = @index
  1036.       end_target_selection
  1037.       end_skill_selection
  1038.       end_item_selection
  1039.       @actor_command_window.active = false
  1040.       next_actor
  1041.     end
  1042.     if Input.repeat?(Input::LEFT)
  1043.       if @target_actors
  1044.         cursor_down if $back_attack
  1045.         cursor_up unless $back_attack
  1046.       else
  1047.         cursor_up if $back_attack
  1048.         cursor_down unless $back_attack
  1049.       end  
  1050.     end
  1051.     if Input.repeat?(Input::RIGHT)
  1052.       if @target_actors
  1053.         cursor_up if $back_attack
  1054.         cursor_down unless $back_attack
  1055.       else
  1056.         cursor_down if $back_attack
  1057.         cursor_up unless $back_attack
  1058.       end
  1059.     end
  1060.     cursor_up if Input.repeat?(Input::UP)
  1061.     cursor_down if Input.repeat?(Input::DOWN)
  1062.   end
  1063.   #--------------------------------------------------------------------------
  1064.   # ● カーソルを前に移動  ※再定義
  1065.   #--------------------------------------------------------------------------
  1066.   def cursor_up
  1067.     Sound.play_cursor
  1068.     @target_members.size.times do
  1069.       @index += @target_members.size - 1
  1070.       @index %= @target_members.size
  1071.       break if @target_actors
  1072.       break if @target_members[@index].exist?
  1073.     end
  1074.     # カーソルセット
  1075.     @cursor.set(@target_members[@index])
  1076.     @help_window2.set_text_n02add(@target_members[@index]) if @help_window2 != nil
  1077.   end
  1078.   #--------------------------------------------------------------------------
  1079.   # ● カーソルを次に移動  ※再定義
  1080.   #--------------------------------------------------------------------------
  1081.   def cursor_down
  1082.     Sound.play_cursor
  1083.     @target_members.size.times do
  1084.       @index += 1
  1085.       @index %= @target_members.size
  1086.       break if @target_actors
  1087.       break if @target_members[@index].exist?
  1088.     end
  1089.     # カーソルセット
  1090.     @cursor.set(@target_members[@index])
  1091.     @help_window2.set_text_n02add(@target_members[@index]) if @help_window2 != nil
  1092.   end
  1093.   #--------------------------------------------------------------------------
  1094.   # ● ターゲット選択の終了  再定義
  1095.   #--------------------------------------------------------------------------
  1096.   def end_target_selection(cansel = false)
  1097.     $in_target = false
  1098.     @help_window2.dispose if @help_window2 != nil
  1099.     @help_window2 = nil
  1100.     @help_window.visible = false if @help_window != nil
  1101.     if @skill_window != nil
  1102.       @skill_window.visible = @skill_window.active = true
  1103.       @help_window.visible = true if @help_window != nil
  1104.       @actor_command_window.active = false if cansel
  1105.       $in_select = true if cansel
  1106.     elsif @item_window != nil
  1107.       @item_window.visible = @item_window.active = true
  1108.       @help_window.visible = true if @help_window != nil
  1109.       @actor_command_window.active = false if cansel
  1110.       $in_select = true if cansel
  1111.     end
  1112.     @target_members = nil
  1113.     end_command if !cansel
  1114.     # カーソルセット
  1115.     @cursor.set(@commander) if cansel
  1116.     $in_command = true if cansel && @actor_command_window.index == 0
  1117.     @actor_command_window.active = true if cansel && @actor_command_window.index == 0
  1118.   end
  1119.   #--------------------------------------------------------------------------
  1120.   # ● コマンド初期化
  1121.   #--------------------------------------------------------------------------
  1122.   def reset_command
  1123.     @message_window.visible = false
  1124.     @party_command_window.active = false
  1125.     @commander.action.clear
  1126.     @party_command_window.visible = false
  1127.     $in_command = $in_select = $in_target = false
  1128.     @target_members = nil
  1129.     @actor_command_window.active = false
  1130.     @cursor.visible = false if @cursor != nil #20090924更新
  1131.     @command_phase = false
  1132.     end_skill_selection
  1133.     end_item_selection
  1134.     @party_command_window.active = @actor_command_window.active = false
  1135.     @actor_command_window_on = false
  1136.     @status_window.index = @actor_index = @actor_command_window.index = -1
  1137.     @command_members.delete(@commander)
  1138.     @commander = nil
  1139.   end  
  1140.   #--------------------------------------------------------------------------
  1141.   # ● 強制行動によるコマンドキャンセル
  1142.   #--------------------------------------------------------------------------
  1143.   def force_action_command_cansel(member)
  1144.     return if !member.inputable?
  1145.     # チャージ設定
  1146.     act_type = charge_set(member)
  1147.     # 行動ゲージに切り替え
  1148.     @spriteset.change_act(act_type, member.actor?, member.index)
  1149.     # 動けるキャラのみコマンド戻りアクションを
  1150.     @spriteset.set_action(true, member.index,member.command_a) if member.actor? && member.inputable?
  1151.     # チャージアクション
  1152.     make_charge_action(member)
  1153.     # 以下の処理はコマンド入力中のアクター限定
  1154.     return if !member.actor? or @commander != member
  1155.     # カーソル消去
  1156.     @cursor.visible = false if @cursor != nil #20090924更新
  1157.     @command_phase = false
  1158.     # ウインドウ初期化
  1159.     end_skill_selection
  1160.     end_item_selection
  1161.     $in_target = false
  1162.     @help_window2.dispose if @help_window2 != nil
  1163.     @help_window2 = nil
  1164.     @help_window.visible = false if @help_window != nil
  1165.     @party_command_window.active = @actor_command_window.active = false
  1166.     @actor_command_window_on = false
  1167.     @status_window.index = @actor_index = @actor_command_window.index = -1
  1168.     @command_members.delete(member)
  1169.     @commander = nil
  1170.     @message_window.visible = false
  1171.     @party_command_window.active = false
  1172.     @party_command_window.visible = false
  1173.     $in_command = $in_select = $in_target = false
  1174.     @target_members = nil
  1175.   end  
  1176.   #--------------------------------------------------------------------------
  1177.   # ● コマンド入力終了
  1178.   #--------------------------------------------------------------------------
  1179.   def end_command
  1180.     return if [email protected]?
  1181.     $in_command = false
  1182.     $in_select = false
  1183.     # カーソル消去
  1184.     @cursor.visible = false if @cursor != nil #20090924更新
  1185.     @command_phase = false
  1186.     # アクション実行時間チェック
  1187.     act_type = charge_set(@commander)
  1188.     # 行動ゲージに切り替え
  1189.     @spriteset.change_act(act_type, true, @commander.index)
  1190.     # 動けるキャラのみコマンド戻りアクションを
  1191.     @spriteset.set_action(true, @commander.index,@commander.command_a) if @commander.inputable?
  1192.     # チャージアクション
  1193.     make_charge_action(@commander)
  1194.     # 合体攻撃チェック
  1195.     union_skill?(@commander) if @commander.action.skill? && @partners == nil
  1196.     # ウインドウ初期化
  1197.     @party_command_window.active = @actor_command_window.active = false
  1198.     @actor_command_window_on = false
  1199.     @status_window.index = @actor_index = @actor_command_window.index = -1
  1200.     @command_members.delete(@commander)
  1201.     @commander = nil
  1202.   end
  1203.   #--------------------------------------------------------------------------
  1204.   # ● 情報表示ビューポートの作成  ※再定義
  1205.   #--------------------------------------------------------------------------
  1206.   def create_info_viewport
  1207.     @command_members = []
  1208.     @action_battlers = []
  1209.     @info_viewport = Viewport.new(0, 288, 544, 128)
  1210.     @info_viewport.z = 100
  1211.     @status_window = Window_BattleStatus.new
  1212.     @party_command_window = Window_PartyCommand2.new
  1213.     @actor_command_window = Window_ActorCommand.new
  1214.     @status_window.viewport = @info_viewport
  1215.     @actor_command_window.viewport = @info_viewport
  1216.     @status_window.x = 128
  1217.     @actor_command_window.x = 672
  1218.     @info_viewport.visible = false
  1219.     @party_command_window.visible = false
  1220.     @info_viewport.ox = 128
  1221.   end
  1222.   #--------------------------------------------------------------------------
  1223.   # ● 情報表示ビューポートの更新   ※再定義
  1224.   #--------------------------------------------------------------------------
  1225.   def update_info_viewport
  1226.     @party_command_window.update if @party_command_window.active
  1227.     @actor_command_window.update if @actor_command_window.active
  1228.     @status_window.update if @status_window.active
  1229.     @message_window.visible = false if !$game_message.visible
  1230.     @info_viewport.visible = true if !@message_window.visible
  1231.     @actor_command_window.x += 32 if @actor_command_window.x < 672 && !@actor_command_window_on
  1232.     @actor_command_window.x -= 32 if @actor_command_window.x > 544 && @actor_command_window_on
  1233.   end
  1234.   #--------------------------------------------------------------------------
  1235.   # ● スキル選択の開始  ※再定義
  1236.   #--------------------------------------------------------------------------
  1237.   def start_skill_selection
  1238.     @help_window = Window_Help.new if @help_window == nil
  1239.     @help_window.visible = true
  1240.     @skill_window = Window_Skill.new(0, 56, 544, 232, @commander)
  1241.     @skill_window.z = 1000
  1242.     @skill_window.help_window = @help_window
  1243.     @actor_command_window.active = false
  1244.   end
  1245.   #--------------------------------------------------------------------------
  1246.   # ● スキル選択の更新  ※再定義
  1247.   #--------------------------------------------------------------------------
  1248.   def update_skill_selection
  1249.     # コマンド入力できる状態でなくなればキャンセル
  1250.     return reset_command unless commanding?
  1251.     @skill_window.active = true
  1252.     @skill_window.update
  1253.     @help_window.update
  1254.     if Input.trigger?(Input::B)
  1255.       Sound.play_cancel
  1256.       end_skill_selection
  1257.       $in_command = true
  1258.     elsif Input.trigger?(Input::C)
  1259.       @skill = @skill_window.skill
  1260.       if @skill != nil
  1261.         @commander.last_skill_id = @skill.id
  1262.       end
  1263.       if @commander.skill_can_use?(@skill)
  1264.         return Sound.play_buzzer if @commander.union_skill?(@skill.id) && [email protected]_skill_can_use?(@skill.id)
  1265.         Sound.play_decision
  1266.         determine_skill
  1267.       else
  1268.         Sound.play_buzzer
  1269.       end
  1270.     end
  1271.   end
  1272.   #--------------------------------------------------------------------------
  1273.   # ● スキルの決定  ※再定義
  1274.   #--------------------------------------------------------------------------
  1275.   def determine_skill
  1276.     @commander.action.set_skill(@skill.id)
  1277.     @skill_window.active = false
  1278.     if @skill.need_selection?
  1279.       if @skill.for_opponent?
  1280.         start_target_enemy_selection
  1281.       else
  1282.         start_target_actor_selection
  1283.       end
  1284.     else
  1285.       end_skill_selection
  1286.       end_target_selection
  1287.     end
  1288.   end
  1289.   #--------------------------------------------------------------------------
  1290.   # ● スキル選択の終了
  1291.   #--------------------------------------------------------------------------
  1292.   alias end_skill_selection_n01 end_skill_selection
  1293.   def end_skill_selection
  1294.     end_skill_selection_n01
  1295.     $in_select = false
  1296.   end
  1297.   #--------------------------------------------------------------------------
  1298.   # ● アイテム選択の開始  ※再定義
  1299.   #--------------------------------------------------------------------------
  1300.   def start_item_selection
  1301.     @help_window = Window_Help.new if @help_window == nil
  1302.     @help_window.visible = true
  1303.     @item_window = Window_Item.new(0, 56, 544, 232)
  1304.     @item_window.z = 1000
  1305.     @item_window.help_window = @help_window
  1306.     @actor_command_window.active = false
  1307.   end
  1308.   #--------------------------------------------------------------------------
  1309.   # ● アイテム選択の更新  ※再定義
  1310.   #--------------------------------------------------------------------------
  1311.   def update_item_selection
  1312.     # コマンド入力できる状態でなくなればキャンセル
  1313.     return reset_command unless commanding?
  1314.     @item_window.active = true
  1315.     @item_window.update
  1316.     @help_window.update
  1317.     if Input.trigger?(Input::B)
  1318.       Sound.play_cancel
  1319.       end_item_selection
  1320.       $in_select = true
  1321.     elsif Input.trigger?(Input::C)
  1322.       @item = @item_window.item
  1323.       if @item != nil
  1324.         $game_party.last_item_id = @item.id
  1325.       end
  1326.       if $game_party.item_can_use?(@item)
  1327.         Sound.play_decision
  1328.         determine_item
  1329.       else
  1330.         Sound.play_buzzer
  1331.       end
  1332.     end
  1333.   end
  1334.   #--------------------------------------------------------------------------
  1335.   # ● アイテムの決定  ※再定義
  1336.   #--------------------------------------------------------------------------
  1337.   def determine_item
  1338.     @commander.action.set_item(@item.id)
  1339.     @item_window.active = false
  1340.     if @item.need_selection?
  1341.       if @item.for_opponent?
  1342.         start_target_enemy_selection
  1343.       else
  1344.         start_target_actor_selection
  1345.       end
  1346.     else
  1347.       end_item_selection
  1348.       end_target_selection
  1349.     end
  1350.   end
  1351.   #--------------------------------------------------------------------------
  1352.   # ● アイテム選択の終了
  1353.   #--------------------------------------------------------------------------
  1354.   alias end_item_selection_n01 end_item_selection
  1355.   def end_item_selection
  1356.     end_item_selection_n01
  1357.     $in_select = false
  1358.   end
  1359.   #--------------------------------------------------------------------------
  1360.   # ● 勝敗判定  ※再定義
  1361.   #--------------------------------------------------------------------------
  1362.   def judge_win_loss
  1363.     return true unless $game_temp.in_battle
  1364.     if $game_party.all_dead?
  1365.       @judge = true
  1366.       $gauge_stop = true
  1367.       closed_window
  1368.       @spriteset.atb_dispose
  1369.       $game_troop.clear_actions
  1370.       $game_party.clear_actions
  1371.       process_defeat
  1372.       return true
  1373.     elsif $game_troop.all_dead?
  1374.       @judge = true
  1375.       $gauge_stop = true
  1376.       closed_window
  1377.       @spriteset.atb_dispose
  1378.       $game_troop.clear_actions
  1379.       $game_party.clear_actions
  1380.       process_victory
  1381.       return true
  1382.     else
  1383.       return false
  1384.     end
  1385.   end
  1386. end  
  1387. #==============================================================================
  1388. # ■ Game_Battler (分割定義 1)
  1389. #------------------------------------------------------------------------------
  1390. #  バトラーを扱うクラスです。
  1391. #==============================================================================
  1392. class Game_Battler
  1393.   #--------------------------------------------------------------------------
  1394.   # ● 公開インスタンス変数
  1395.   #--------------------------------------------------------------------------
  1396.   attr_accessor :at_count         # コマンド待ちゲージ(1000がMAX)
  1397.   attr_accessor :at_active        # コマンド入力可能
  1398.   attr_accessor :atb_count_up     # ATBカウントアップ中
  1399.   attr_accessor :act_count        # 行動待ちゲージ(1000がMAX)
  1400.   attr_accessor :act_active       # 行動可能
  1401.   attr_accessor :at_speed         # ゲージアップスピード基準値
  1402.   attr_accessor :charge_action    # チャージアクション
  1403.   attr_accessor :charge_start     # チャージ中か
  1404.   attr_accessor :union_skill_id   # 合体攻撃スキルID
  1405.   attr_accessor :union_battler    # 合体攻撃参加者か
  1406.   attr_accessor :speed_level      # 戦闘参加者の最速スピード基準
  1407.   attr_accessor :low_speed_level  # 戦闘参加者の最遅スピード基準
  1408.   attr_accessor :graphics_width   # バトラー画像1セルあたりの横幅
  1409.   attr_accessor :graphics_height  # バトラー画像1セルあたりの縦幅
  1410.   #--------------------------------------------------------------------------
  1411.   # ● ステートの付加  ATBダメージ処理を追加
  1412.   #--------------------------------------------------------------------------
  1413.   alias add_state_n02 add_state
  1414.   def add_state(state_id)
  1415.     add_state_n02(state_id)
  1416.     if $data_states[state_id].atb_damage != 0
  1417.       @at_count = @at_count + $data_states[state_id].atb_damage * 10
  1418.       @at_count = 0 if @at_count < 0 && !$data_states[state_id].atb_minus_damage
  1419.       @at_count = 1000 if @at_count > 1000
  1420.       # ATBダメージでチャージキャンセル
  1421.       if $data_states[state_id].atb_damage < 0
  1422.         @act_count = 0
  1423.         @act_active = false
  1424.         @at_active = false
  1425.         @atb_count_up = true
  1426.       end
  1427.     end  
  1428.   end
  1429.   #--------------------------------------------------------------------------
  1430.   # ● 戦闘開始時のAT設定
  1431.   #--------------------------------------------------------------------------
  1432.   def atb_setting
  1433.     # 初期化
  1434.     @at_count = @act_count = @speed_level = @low_speed_level = @union_skill_id = 0
  1435.     @at_active = @act_active = @atb_count_up = @charge_start = @union_battler = false
  1436.     $in_party_command = $in_command = $in_target = $in_select = $in_action = false
  1437.     @charge_action = normal
  1438.     $in_union_action = false
  1439.     # ゲージアップスピード(戦闘速度)
  1440.     @at_speed = $game_party.atb_control[1]
  1441.     # ユーザー設定を使わない場合
  1442.     return if N02::ATB_CUSTOMIZE
  1443.     @at_speed = N02::ATB_SPEED
  1444.   end
  1445.   #--------------------------------------------------------------------------
  1446.   # ● ATBスピード基準値リフレッシュ
  1447.   #--------------------------------------------------------------------------
  1448.   def atb_base_speed_refresh
  1449.     battle_members = $game_party.members + $game_troop.members
  1450.     battle_members.sort! do |a,b|
  1451.       b.agi - a.agi
  1452.     end
  1453.     self.speed_level = battle_members[0].agi
  1454.     self.low_speed_level = battle_members[battle_members.size - 1].agi
  1455.   end
  1456.   #--------------------------------------------------------------------------
  1457.   # ● 自動行動判定
  1458.   #--------------------------------------------------------------------------
  1459.   def auto_action?
  1460.     return true if berserker? or confusion? or auto_battle or @union_skill_id != 0
  1461.     return false
  1462.   end
  1463.   #--------------------------------------------------------------------------
  1464.   # ● 合体攻撃スキル判定
  1465.   #--------------------------------------------------------------------------
  1466.   def union_skill?(skill_id)
  1467.     # スキルに合体攻撃設定があるかチェック
  1468.     for union_action in $data_skills[skill_id].union_action
  1469.       union_skills = union_action if union_action.size != 0 && union_action.include?(skill_id)
  1470.     end
  1471.     return false if union_skills == nil
  1472.     return true
  1473.   end  
  1474.   #--------------------------------------------------------------------------
  1475.   # ● 合体攻撃使用可能判定
  1476.   #--------------------------------------------------------------------------
  1477.   def union_skill_can_use?(skill_id)
  1478.     return false if $in_union_action
  1479.     for union_action in $data_skills[skill_id].union_action
  1480.       union_skills = union_action if union_action.size != 0 && union_action.include?(skill_id)
  1481.     end
  1482.     return false if union_skills == nil
  1483.     partners = []
  1484.     # 合体攻撃メンバーが使用可能かチェック
  1485.     for skill_id in union_skills
  1486.       for actor in $game_party.members
  1487.         if actor.skill_can_use?($data_skills[skill_id]) && actor.skill_id_learn?(skill_id)
  1488.           partners.push(actor)
  1489.         end
  1490.       end
  1491.     end
  1492.     return false if partners.size != union_skills.size
  1493.     return true
  1494.   end
  1495. end  
  1496. #==============================================================================
  1497. # ■ Game_Party
  1498. #------------------------------------------------------------------------------
  1499. #  パーティを扱うクラスです。
  1500. #==============================================================================
  1501. class Game_Party < Game_Unit
  1502.   #--------------------------------------------------------------------------
  1503.   # ● 公開インスタンス変数
  1504.   #--------------------------------------------------------------------------
  1505.   attr_accessor   :atb_custom                       # ATBユーザー設定
  1506.   attr_accessor   :atb_control                      # ATB設定
  1507.   #--------------------------------------------------------------------------
  1508.   # ● オブジェクト初期化
  1509.   #--------------------------------------------------------------------------
  1510.   alias initialize_n02 initialize
  1511.   def initialize
  1512.     initialize_n02
  1513.     @atb_control = []
  1514.     @atb_custom = [N02::ATB_NEWGAME_MODE, N02::ATB_NEWGAME_SPEED - 1]
  1515.   end
  1516.   #--------------------------------------------------------------------------
  1517.   # ● ユーザー設定をATB設定に反映
  1518.   #--------------------------------------------------------------------------
  1519.   def atb_customize
  1520.     # ウエイト・アクティブ設定を格納
  1521.     case @atb_custom[0]
  1522.     when 0;@atb_control[0] = N02::ATB_MODE1
  1523.     when 1;@atb_control[0] = N02::ATB_MODE2
  1524.     when 2;@atb_control[0] = N02::ATB_MODE3
  1525.     end
  1526.     # 戦闘速度を格納
  1527.     @atb_control[1] = N02::ATB_SPEED_MODE[@atb_custom[1]]
  1528.     # ユーザー設定を使わない場合
  1529.     return if N02::ATB_CUSTOMIZE
  1530.     @atb_control[0] = ["",N02::ATB_PARTY_COMMAND_WAIT, N02::ATB_COMMAND_WAIT, N02::ATB_TARGET_WAIT, N02::ATB_SELECT_WAIT, N02::ATB_ACTION_WAIT]
  1531.     @atb_control[1] = N02::ATB_SPEED
  1532.   end
  1533. end
  1534. #==============================================================================
  1535. # ■ Sprite_MoveAnime
  1536. #------------------------------------------------------------------------------
  1537. #  ATBゲージ用のスプライトです。
  1538. #==============================================================================
  1539. class Sprite_ATB < Sprite_Base
  1540.   #--------------------------------------------------------------------------
  1541.   # ● 公開インスタンス変数
  1542.   #--------------------------------------------------------------------------
  1543.   attr_accessor :battler
  1544.   attr_accessor :count            # 更新カウント
  1545.   #--------------------------------------------------------------------------
  1546.   # ● オブジェクト初期化
  1547.   #--------------------------------------------------------------------------
  1548.   def initialize(viewport,battler = nil)
  1549.     super(viewport)
  1550.     @battler = battler
  1551.     @count = 0
  1552.     @base_atb_count = 1
  1553.     @restriction_count = 0
  1554.     @state_freeze = false
  1555.     @update = 0
  1556.     @pre_width = 0
  1557.     make_gauge
  1558.     start_atb
  1559.     @party_command_wait = $game_party.atb_control[0][1]
  1560.     @command_wait = $game_party.atb_control[0][2]
  1561.     @target_wait = $game_party.atb_control[0][3]
  1562.     @select_wait = $game_party.atb_control[0][4]
  1563.     @action_wait = $game_party.atb_control[0][5]
  1564.   end
  1565.   #--------------------------------------------------------------------------
  1566.   # ● ATB初期値セッティング
  1567.   #--------------------------------------------------------------------------
  1568.   def start_atb
  1569.     atb = battler.atb_base * 10 + rand(N02::ATB_BASE_ADD) * 10
  1570.     if battler.actor?
  1571.       atb1 = battler.weapons[0].atb_base * 10 if battler.weapons[0] != nil
  1572.       atb2 = battler.weapons[1].atb_base * 10 if battler.weapons[1] != nil
  1573.       atb1 = atb if atb1 == nil
  1574.       atb2 = atb1 if atb2 == nil
  1575.       atb += (atb1 + atb2) / 2
  1576.       for i in 0...battler.armors.size
  1577.         # 二刀はキャンセル
  1578.         next if battler.two_swords_style && battler.armors[0] != nil && battler.armors[0]
  1579.         atb += battler.armors[i].atb_base * 10 if battler.armors[i] != nil
  1580.       end  
  1581.     end
  1582.     change_atb(atb)
  1583.   end
  1584.   #--------------------------------------------------------------------------
  1585.   # ● ゲージ作成
  1586.   #--------------------------------------------------------------------------
  1587.   def make_gauge
  1588.     self.bitmap = Cache.system("atb_bar_skin")
  1589.     @gauge = Sprite.new(viewport)
  1590.     @gauge.bitmap = Cache.system("atb_bar")
  1591.     @gauge_max = Sprite.new(viewport)
  1592.     @gauge_max.bitmap = Cache.system("atb_bar_active")
  1593.     @gauge_max.visible = false
  1594.     @gauge_division = 1000 / N02::ATB_WIDTH
  1595.     @gauge_space = N02::ATB_SPACE
  1596.   end
  1597.   #--------------------------------------------------------------------------
  1598.   # ● 座標セット
  1599.   #--------------------------------------------------------------------------
  1600.   def set(x, y)
  1601.     self.ox = @gauge.ox = @gauge_max.ox = self.bitmap.width / 2
  1602.     self.oy = @gauge.oy = @gauge_max.oy = self.bitmap.height / 2
  1603.     self.visible = @gauge.visible = @gauge_max.visible = false
  1604.     if @battler.actor? && N02::ATB_POSITION_HPWINDOW
  1605.       self.z = @gauge.z = @gauge_max.z = 1000
  1606.       self.x = @gauge.x = @gauge_max.x = N02::ATB_PARTY_POSITION[@battler.index][0]
  1607.       self.y = @gauge.y = @gauge_max.y = N02::ATB_PARTY_POSITION[@battler.index][1]
  1608.       return
  1609.     end
  1610.     adjust = N02::ATB_POSITION_ENEMY
  1611.     adjust = N02::ATB_POSITION_ACTOR if battler.actor?
  1612.     self.x = @gauge.x = @gauge_max.x = x + adjust[0]
  1613.     self.x = @gauge.x = @gauge_max.x = x - adjust[0] if $back_attack
  1614.     self.y = @gauge.y = @gauge_max.y = y + adjust[1]
  1615.     self.z = @gauge.z = @gauge_max.z = battler.position_z + 10
  1616.     @gauge_max.z += 1
  1617.   end
  1618.   #--------------------------------------------------------------------------
  1619.   # ● ATBゲージ切り替え
  1620.   #--------------------------------------------------------------------------
  1621.   def change_atb(restart_gauge = 0)
  1622.     @battler.atb_base_speed_refresh
  1623.     case N02::ATB_BASE_SPEED
  1624.     when 0
  1625.       return @base_atb_count = @battler.at_speed * battler.agi if N02::ATB_ABSOLUTE_SPEED == 0
  1626.       @base_atb_count = @battler.at_speed * battler.agi / N02::ATB_ABSOLUTE_SPEED
  1627.     when 1
  1628.       return @base_atb_count = @battler.at_speed * battler.agi if @battler.speed_level == 0
  1629.       @base_atb_count = @battler.at_speed * battler.agi / @battler.speed_level
  1630.     when 2
  1631.       return @base_atb_count = @battler.at_speed * @battler.agi if @battler.low_speed_level == 0
  1632.       @base_atb_count = @battler.at_speed * @battler.agi / @battler.low_speed_level
  1633.     when 3
  1634.       return @base_atb_count = @battler.at_speed * @battler.agi if @battler.speed_level / 2 + @battler.low_speed_level / 2 == 0
  1635.       @base_atb_count = @battler.at_speed * @battler.agi / (@battler.speed_level / 2 + @battler.low_speed_level / 2)
  1636.     end
  1637.     @base_atb_count = 1 if @base_atb_count == 0
  1638.     @battler.at_count = restart_gauge
  1639.     @battler.act_count = 0
  1640.     @gauge.bitmap = Cache.system("atb_bar")
  1641.     @battler.act_active = false
  1642.     @battler.at_active = false
  1643.     @battler.atb_count_up = true
  1644.   end
  1645.   #--------------------------------------------------------------------------
  1646.   # ● ACTゲージ切り替え
  1647.   #--------------------------------------------------------------------------
  1648.   def change_act(act_type)
  1649.     change_atb
  1650.     case act_type[0]
  1651.     when 0
  1652.       base = @battler.at_speed * @battler.agi
  1653.       base = @battler.at_speed * @battler.agi / act_type[2] if act_type[2] != 0
  1654.     when 1
  1655.       base = @battler.at_speed * @battler.agi / @battler.speed_level
  1656.     when 2
  1657.       base = @battler.at_speed * @battler.agi if @battler.low_speed_level == 0
  1658.       base = @battler.at_speed * @battler.agi / @battler.low_speed_level
  1659.     when 3
  1660.       base = @battler.at_speed * @battler.agi if @battler.speed_level / 2 + @battler.low_speed_level / 2 == 0
  1661.       base = @battler.at_speed * @battler.agi / (@battler.speed_level / 2 + @battler.low_speed_level / 2)
  1662.     when 4
  1663.       base = @battler.at_speed
  1664.     end
  1665.     if act_type[1] <= 0
  1666.       @base_act_count = 1000
  1667.     else
  1668.       @base_act_count = base *  100 / act_type[1]
  1669.     end
  1670.     @base_act_count = 1 if @base_act_count == 0
  1671.     @battler.act_count = 0
  1672.     @gauge.bitmap = Cache.system("act_bar")
  1673.     @battler.atb_count_up = false
  1674.     @battler.at_active = false
  1675.   end
  1676.   #--------------------------------------------------------------------------
  1677.   # ● フレーム更新
  1678.   #--------------------------------------------------------------------------
  1679.   def update
  1680.     # ステート管理
  1681.     states_control
  1682.     # 強制ゲージストップ
  1683.     return if $gauge_stop or [email protected]? or $game_message.visible
  1684.     # アクションウエイト
  1685.     wait = true if $in_action && !@action_wait
  1686.     wait = false if $in_action && @action_wait
  1687.     # パーティコマンド選択中ウエイト
  1688.     wait = true if $in_party_command && !@party_command_wait
  1689.     wait = false if $in_party_command && @party_command_wait
  1690.     # 戦闘コマンド選択中ウエイト
  1691.     wait = true if $in_command && !@command_wait
  1692.     wait = false if $in_command && @command_wait
  1693.     # ターゲット選択中ウエイト
  1694.     wait = true if $in_target && !@target_wait
  1695.     wait = false if $in_target && @target_wait
  1696.     # スキル/アイテム選択中ウエイト
  1697.     wait = true if $in_select && !@select_wait
  1698.     wait = false if $in_select && @select_wait
  1699.     # アクション中はゲージを消すか
  1700.     self.visible = @gauge.visible = true
  1701.     self.visible = @gauge_max.visible = @gauge.visible = false if @battler.act_active && N02::ATB_ACTION_ENEMY_OFF && [email protected]? && @battler.union_skill_id == 0
  1702.     self.visible = @gauge_max.visible = @gauge.visible = false if @battler.act_active && N02::ATB_ACTION_ACTOR_OFF && @battler.actor? && @battler.union_skill_id == 0
  1703.     # ゲージ表示設定
  1704.     self.visible = @gauge.visible = @gauge_max.visible = false if [email protected]_on
  1705.     self.visible = @gauge.visible = @gauge_max.visible = false if @battler.actor? && $game_message.visible && N02::ATB_POSITION_HPWINDOW
  1706.     # 見えないエネミーはゲージ隠蔽
  1707.     self.visible = @gauge.visible = @gauge_max.visible = false if [email protected]? && [email protected]?
  1708.     # ボタン入力によるゲージ制御
  1709.     wait = true if Input.press?(Input::ALT) && N02::ATB_ALT_WAIT
  1710.     wait = false if Input.press?(Input::CTRL) && N02::ATB_CTRL_ACTIVE
  1711.     # 自身のみアクションウエイト
  1712.     wait = true if @battler.act_active
  1713.     # ゲージウエイト
  1714.     return if wait
  1715.     # ステートによるゲージストップ処理
  1716.     return recover_states_freeze if @state_freeze
  1717.     # ゲージカウントアップ
  1718.     gauge_update
  1719.     # ゲージ描画
  1720.     return if @pre_width == @gauge_space + @battler.act_count / @gauge_division && [email protected]_count_up
  1721.     return if @pre_width == @gauge_space + @battler.at_count / @gauge_division && @battler.atb_count_up
  1722.     gauge_refresh
  1723.   end
  1724.   #--------------------------------------------------------------------------
  1725.   # ● ゲージカウントアップ
  1726.   #--------------------------------------------------------------------------
  1727.   def gauge_update
  1728.     # ACTカウントアップ
  1729.     act if [email protected]_count_up && [email protected]_active && [email protected]_active
  1730.     # ATBカウントアップ
  1731.     atb if @battler.atb_count_up
  1732.   end
  1733.   #--------------------------------------------------------------------------
  1734.   # ● ゲージリフレッシュ
  1735.   #--------------------------------------------------------------------------
  1736.   def gauge_refresh
  1737.     @gauge_max.visible = false if [email protected]_active && [email protected]_active
  1738.     @gauge.src_rect.width = @pre_width = @gauge_space + @battler.act_count / @gauge_division if [email protected]_count_up && [email protected]_active && [email protected]_active
  1739.     @gauge.src_rect.width = @pre_width = @gauge_space + @battler.at_count / @gauge_division if @battler.atb_count_up
  1740.   end
  1741.   #--------------------------------------------------------------------------
  1742.   # ● ゲージ隠蔽
  1743.   #--------------------------------------------------------------------------
  1744.   def off
  1745.     self.visible = @gauge.visible = @gauge_max.visible = false
  1746.   end
  1747.   #--------------------------------------------------------------------------
  1748.   # ● ゲージ表示
  1749.   #--------------------------------------------------------------------------
  1750.   def on
  1751.     self.visible = @gauge.visible = @gauge_max.visible = true
  1752.     gauge_refresh
  1753.   end
  1754.   #--------------------------------------------------------------------------
  1755.   # ● ステート管理
  1756.   #--------------------------------------------------------------------------
  1757.   def states_control
  1758.     if !@state_freeze && [email protected]?
  1759.       # 行動不能はゲージを0に
  1760.       @restriction_count = @battler.at_count
  1761.       @state_freeze = true
  1762.       @atb_dead = true if @battler.dead? && !@atb_dead
  1763.       change_atb(0)
  1764.       gauge_refresh
  1765.       self.visible = @gauge_max.visible = @gauge.visible = false if [email protected]? && [email protected]?
  1766.     # ステート復帰時
  1767.     elsif @battler.movable? && @state_freeze
  1768.       @state_freeze = false
  1769.       # 戦闘不能復帰時のゲージ処理
  1770.       return if !@atb_dead
  1771.       change_atb(N02::ATB_DEAD_COUNT * 10)
  1772.       @atb_dead = false
  1773.       gauge_refresh
  1774.     end
  1775.   end
  1776.   #--------------------------------------------------------------------------
  1777.   # ● ステートによるゲージストップ回復
  1778.   #--------------------------------------------------------------------------
  1779.   def recover_states_freeze
  1780.     @restriction_count += @base_atb_count
  1781.     @restriction_count += @base_atb_count * 2 if Input.press?(Input::SHIFT) && N02::ATB_SHIFT_BOOST
  1782.     if @restriction_count >= 1000
  1783.       # ステート自然回復許可
  1784.       @battler.remove_states_auto
  1785.       @restriction_count = 0
  1786.     end
  1787.   end
  1788.   #--------------------------------------------------------------------------
  1789.   # ● ATBカウント
  1790.   #--------------------------------------------------------------------------
  1791.   def atb
  1792.     if @battler.at_count <= 1000
  1793.       @gauge_max.visible = false
  1794.       @battler.at_count += @base_atb_count
  1795.       @battler.at_count += @base_atb_count * 2 if Input.press?(Input::SHIFT) && N02::ATB_SHIFT_BOOST
  1796.     end
  1797.     # ATBゲージMAX
  1798.     if @battler.at_count >= 1000
  1799.       # ステート自然回復
  1800.       @battler.remove_states_auto
  1801.       @battler.atb_count_up = false
  1802.       @battler.at_active = true
  1803.       @gauge.src_rect.width = 52
  1804.       return if [email protected]_on
  1805.       Audio.se_play("Audio/SE/" + N02::ATB_MAX_SOUND01[2], N02::ATB_MAX_SOUND01[1],  N02::ATB_MAX_SOUND01[0])
  1806.       @gauge_max.visible = true
  1807.     end
  1808.     @battler.act_active = false
  1809.   end  
  1810.   #--------------------------------------------------------------------------
  1811.   # ● ACTカウント
  1812.   #--------------------------------------------------------------------------
  1813.   def act
  1814.     if @battler.act_count <= 1000
  1815.       @gauge_max.visible = false
  1816.       @battler.act_count += @base_act_count
  1817.       @battler.at_count += @base_atb_count * 3 if Input.press?(Input::SHIFT) && N02::ATB_SHIFT_BOOST
  1818.     end
  1819.     # ACTゲージMAX
  1820.     if @battler.act_count >= 1000 && [email protected]_active
  1821.       @battler.act_active = true
  1822.       @gauge.src_rect.width = 52
  1823.       return if [email protected]_on
  1824.       Audio.se_play("Audio/SE/" + N02::ACT_MAX_SOUND01[2], N02::ACT_MAX_SOUND01[1],  N02::ACT_MAX_SOUND01[0])
  1825.       @gauge_max.visible = true
  1826.     end
  1827.   end  
  1828.   #--------------------------------------------------------------------------
  1829.   # ● 解放
  1830.   #--------------------------------------------------------------------------
  1831.   def dispose
  1832.     super
  1833.     @gauge.dispose
  1834.     @gauge_max.dispose
  1835.   end
  1836. end
  1837. #==============================================================================
  1838. # ■ Sprite_Cursor
  1839. #------------------------------------------------------------------------------
  1840. #  カーソルのスプライトです。
  1841. #==============================================================================
  1842. class Sprite_Cursor < Sprite_Base
  1843.   #--------------------------------------------------------------------------
  1844.   # ● オブジェクト初期化
  1845.   #--------------------------------------------------------------------------
  1846.   def initialize
  1847.     super
  1848.     create_target_cursor
  1849.   end
  1850.   #--------------------------------------------------------------------------
  1851.   # ● ターゲットカーソルスプライトの作成
  1852.   #--------------------------------------------------------------------------
  1853.   def create_target_cursor
  1854.     self.bitmap = Cache.system("cursor")
  1855.     @width = self.bitmap.width
  1856.     @height = self.bitmap.height / 3
  1857.     self.src_rect.set(0, 0, @width, @height)
  1858.     @cursor_flame = 0
  1859.     self.x = @pre_x = 272
  1860.     self.y = @pre_y = 208
  1861.     self.z = 300
  1862.     self.ox = @width
  1863.     self.oy = @height
  1864.     self.visible = false
  1865.     @time = 0
  1866.     @flash_time = 0
  1867.   end
  1868.   #--------------------------------------------------------------------------
  1869.   # ● フレーム更新
  1870.   #--------------------------------------------------------------------------
  1871.   def update
  1872.     # カーソル画像更新
  1873.     @cursor_flame = 0 if @cursor_flame == 40
  1874.     self.src_rect.set(0,           0, @width, @height) if @cursor_flame == 0
  1875.     self.src_rect.set(0,     @height, @width, @height) if @cursor_flame == 10
  1876.     self.src_rect.set(0, 2 * @height, @width, @height) if @cursor_flame == 20
  1877.     self.src_rect.set(0,     @height, @width, @height) if @cursor_flame == 30
  1878.     @cursor_flame += 1
  1879.     # カーソル座標更新
  1880.     return if @battler == nil
  1881.     # ターゲットを光らせる
  1882.     @flash_time -= 1
  1883.     if @flash_time == 0 && @battler.exist? && [email protected]
  1884.       @battler.white_flash = true
  1885.       @flash_time = 20
  1886.     end
  1887.     if @time == 0
  1888.       self.x = @battler.position_x
  1889.       return self.y = @battler.position_y - @battler.graphics_width / 5
  1890.     end  
  1891.     @time -= 1
  1892.     self.x = @pre_x + (@battler.position_x - @pre_x) * (9 - @time) / 9
  1893.     self.y = @pre_y + (@battler.position_y - @battler.graphics_width / 5 - @pre_y) * (9 - @time) / 9
  1894.   end
  1895.   #--------------------------------------------------------------------------
  1896.   # ● カーソル移動情報セット
  1897.   #--------------------------------------------------------------------------
  1898.   def set(battler)
  1899.     self.visible = true
  1900.     @battler = battler
  1901.     return if @battler == nil
  1902.     @battler.white_flash = true if @battler.exist? && [email protected]
  1903.     @time = 9
  1904.     @flash_time = 20
  1905.     @pre_x = self.x
  1906.     @pre_y = self.y
  1907.   end
  1908. end
  1909. #==============================================================================
  1910. # ■ Sprite_Battler
  1911. #------------------------------------------------------------------------------
  1912. #  バトラー表示用のスプライトです。
  1913. #==============================================================================
  1914. class Sprite_Battler < Sprite_Base
  1915.   #--------------------------------------------------------------------------
  1916.   # ● バトラー作成
  1917.   #--------------------------------------------------------------------------
  1918.   alias make_battler_n01 make_battler
  1919.   def make_battler
  1920.     make_battler_n01
  1921.     @battler.graphics_width = @width
  1922.     @battler.graphics_height = @height
  1923.     make_atb
  1924.   end  
  1925.   #--------------------------------------------------------------------------
  1926.   # ● 解放
  1927.   #--------------------------------------------------------------------------
  1928.   alias dispose_n01 dispose
  1929.   def dispose
  1930.     dispose_n01
  1931.     @atb_gauge.dispose if @atb_gauge != nil
  1932.   end  
  1933.   #--------------------------------------------------------------------------
  1934.   # ● 待機アクション  ※再定義
  1935.   #--------------------------------------------------------------------------
  1936.   def stand_by
  1937.     # チャージアクションを優先
  1938.     @battler.charge_start = false if @battler.charge_start && [email protected]?
  1939.     return @repeat_action = @battler.charge_action if @battler.charge_start
  1940.     # 通常待機に
  1941.     @repeat_action = @battler.normal
  1942.     # HPが1/4でピンチモーションに
  1943.     @repeat_action = @battler.pinch if @battler.hp <= @battler.maxhp / 4
  1944.     # 防御中
  1945.     @repeat_action = @battler.defence if @battler.guarding?
  1946.     # 何もステートがなければ終了
  1947.     return if @battler.state_id == nil
  1948.     for state in @battler.states.reverse
  1949.       # アクション禁止のステートだったらスキップ
  1950.       next if state.extension.include?("ステートアクション禁止")
  1951.       # エネミーで禁止されているステートアクションだったらスキップ
  1952.       next if @battler.is_a?(Game_Enemy) && state.extension.include?("エネミー除外")
  1953.       # ステートのモーションに
  1954.       @repeat_action = state.base_action
  1955.     end
  1956.   end
  1957.   #--------------------------------------------------------------------------
  1958.   # ● ATBゲージ作成
  1959.   #--------------------------------------------------------------------------
  1960.   def make_atb
  1961.     return if battler == nil
  1962.     battler.atb_setting
  1963.     if battler.actor? && N02::ATB_POSITION_HPWINDOW
  1964.       @atb_gauge = Sprite_ATB.new(@viewport2,battler)
  1965.     else
  1966.       @atb_gauge = Sprite_ATB.new(viewport,battler)
  1967.     end
  1968.     @atb_gauge.set(self.x, self.y)
  1969.   end  
  1970.   #--------------------------------------------------------------------------
  1971.   # ● ATBゲージビューポート作成
  1972.   #--------------------------------------------------------------------------
  1973.   def make_atb_viewport(new_viewport)
  1974.     @viewport2 = new_viewport
  1975.   end  
  1976.   #--------------------------------------------------------------------------
  1977.   # ● フレーム更新
  1978.   #--------------------------------------------------------------------------
  1979.   alias update_n01 update
  1980.   def update
  1981.     update_n01
  1982.     # ATB更新
  1983.     @atb_gauge.update if @atb_gauge != nil
  1984.   end
  1985.   #--------------------------------------------------------------------------
  1986.   # ● ゲージ更新
  1987.   #--------------------------------------------------------------------------
  1988.   def gauge_update
  1989.     @atb_gauge.gauge_update if @atb_gauge != nil
  1990.   end
  1991.   #--------------------------------------------------------------------------
  1992.   # ● ゲージリフレッシュ
  1993.   #--------------------------------------------------------------------------
  1994.   def gauge_refresh
  1995.     @atb_gauge.gauge_refresh if @atb_gauge != nil
  1996.   end
  1997.   #--------------------------------------------------------------------------
  1998.   # ● ゲージ表示
  1999.   #--------------------------------------------------------------------------
  2000.   def gauge_on
  2001.     @atb_gauge.on if @atb_gauge != nil
  2002.   end
  2003.   #--------------------------------------------------------------------------
  2004.   # ● ゲージ隠蔽
  2005.   #--------------------------------------------------------------------------
  2006.   def gauge_off
  2007.     @atb_gauge.off if @atb_gauge != nil
  2008.   end
  2009.   #--------------------------------------------------------------------------
  2010.   # ● ATBゲージ切り替え
  2011.   #--------------------------------------------------------------------------
  2012.   def change_atb(restart_gauge)
  2013.     @atb_gauge.change_atb(restart_gauge) if @atb_gauge != nil
  2014.   end
  2015.   #--------------------------------------------------------------------------
  2016.   # ● ACTゲージ切り替え
  2017.   #--------------------------------------------------------------------------
  2018.   def change_act(act_type)
  2019.     @atb_gauge.change_act(act_type) if @atb_gauge != nil
  2020.   end
  2021.   #--------------------------------------------------------------------------
  2022.   # ● ATBゲージ開放
  2023.   #--------------------------------------------------------------------------
  2024.   def atb_dispose
  2025.     @atb_gauge.dispose if @atb_gauge != nil
  2026.     @atb_gauge = nil
  2027.   end
  2028. end
  2029. #==============================================================================
  2030. # ■ Spriteset_Battle
  2031. #------------------------------------------------------------------------------
  2032. #  バトル画面のスプライトをまとめたクラスです。
  2033. #==============================================================================
  2034. class Spriteset_Battle
  2035.   #--------------------------------------------------------------------------
  2036.   # ● アクタースプライトの作成
  2037.   #--------------------------------------------------------------------------
  2038.   alias create_actors_n01 create_actors
  2039.   def create_actors
  2040.     create_actors_n01
  2041.     if N02::ATB_POSITION_HPWINDOW
  2042.       for sprites in @actor_sprites + @enemy_sprites
  2043.         sprites.make_atb_viewport(@viewport4)
  2044.       end
  2045.     end  
  2046.   end
  2047.   #--------------------------------------------------------------------------
  2048.   # ● ターゲット情報リフレッシュ
  2049.   #--------------------------------------------------------------------------
  2050.   def update_target(actor, index)
  2051.     @actor_sprites[index].update_target if actor
  2052.     @enemy_sprites[index].update_target unless actor
  2053.   end
  2054.   #--------------------------------------------------------------------------
  2055.   # ● ゲージ更新
  2056.   #--------------------------------------------------------------------------
  2057.   def gauge_update
  2058.     for sprites in @actor_sprites + @enemy_sprites
  2059.       sprites.gauge_update if sprites != nil
  2060.     end
  2061.   end
  2062.   #--------------------------------------------------------------------------
  2063.   # ● ゲージリフレッシュ
  2064.   #--------------------------------------------------------------------------
  2065.   def gauge_refresh(actor, index)
  2066.     @actor_sprites[index].gauge_refresh if actor
  2067.     @enemy_sprites[index].gauge_refresh unless actor
  2068.   end
  2069.   #--------------------------------------------------------------------------
  2070.   # ● ゲージ表示
  2071.   #--------------------------------------------------------------------------
  2072.   def gauge_on
  2073.     for sprites in @actor_sprites + @enemy_sprites
  2074.       sprites.gauge_on if sprites != nil
  2075.     end
  2076.   end
  2077.   #--------------------------------------------------------------------------
  2078.   # ● ゲージ隠蔽
  2079.   #--------------------------------------------------------------------------
  2080.   def gauge_off
  2081.     for sprites in @actor_sprites + @enemy_sprites
  2082.       sprites.gauge_off if sprites != nil
  2083.     end
  2084.   end
  2085.   #--------------------------------------------------------------------------
  2086.   # ● ATBゲージ切り替え
  2087.   #--------------------------------------------------------------------------
  2088.   def change_atb(restart_gauge, actor, index)
  2089.     @actor_sprites[index].change_atb(restart_gauge) if actor
  2090.     @enemy_sprites[index].change_atb(restart_gauge) unless actor
  2091.   end
  2092.   #--------------------------------------------------------------------------
  2093.   # ● ACTゲージ切り替え
  2094.   #--------------------------------------------------------------------------
  2095.   def change_act(act_type, actor, index)
  2096.     @actor_sprites[index].change_act(act_type) if actor
  2097.     @enemy_sprites[index].change_act(act_type) unless actor
  2098.   end
  2099.   #--------------------------------------------------------------------------
  2100.   # ● ATBゲージ一斉開放
  2101.   #--------------------------------------------------------------------------
  2102.   def atb_dispose
  2103.     for sprites in @actor_sprites + @enemy_sprites
  2104.       sprites.atb_dispose if sprites != nil
  2105.     end
  2106.   end
  2107. end
  2108. #==============================================================================
  2109. # ■ Window_Help
  2110. #------------------------------------------------------------------------------
  2111. #  スキルやアイテムの説明、アクターのステータスなどを表示するウィンドウです。
  2112. #==============================================================================
  2113. class Window_Help < Window_Base
  2114.   #--------------------------------------------------------------------------
  2115.   # ● テキスト設定
  2116.   #--------------------------------------------------------------------------
  2117.   def set_text_n02add(member)
  2118.     return if member == nil
  2119.     self.contents.clear
  2120.     self.contents.font.color = normal_color
  2121.     if !member.actor? && N02::ENEMY_NON_DISPLAY.include?(member.enemy_id)
  2122.       return self.contents.draw_text(4, 0, self.width - 40, WLH, member.name, 1)
  2123.     elsif member.actor? && !N02::ACTOR_DISPLAY
  2124.       return self.contents.draw_text(4, 0, self.width - 40, WLH, member.name, 1)
  2125.     end
  2126.     if N02::WORD_STATE_DISPLAY && N02::HP_DISPLAY
  2127.       self.contents.draw_text(0, 0, 180, WLH, member.name, 1)
  2128.       draw_actor_hp(member, 182, 0, 120)
  2129.       text = "["
  2130.       for state in member.states
  2131.         next if N02::STATE_NON_DISPLAY.include?(state.id)
  2132.         text += " " if text != "["
  2133.         text += state.name
  2134.       end
  2135.       text += N02::WORD_NORMAL_STATE if text == "["
  2136.       text += "]"
  2137.       text = "" if text == "[]"
  2138.       self.contents.draw_text(315, 0, 195, WLH, text, 0)
  2139.     elsif N02::WORD_STATE_DISPLAY
  2140.       text = member.name + "  ["
  2141.       for state in member.states
  2142.         next if N02::STATE_NON_DISPLAY.include?(state.id)
  2143.         text += " " if text != member.name + "  ["
  2144.         text += state.name
  2145.       end
  2146.       text += N02::WORD_NORMAL_STATE if text == member.name + "  ["
  2147.       text += "]"
  2148.       text = "" if text == "[]"
  2149.       self.contents.draw_text(4, 0, self.width - 40, WLH, text, 1)
  2150.     elsif N02::HP_DISPLAY
  2151.       self.contents.draw_text(4, 0, 240, WLH, member.name, 1)
  2152.       draw_actor_hp(member, 262, 0, 120)
  2153.     end
  2154.   end
  2155. end
  2156. #==============================================================================
  2157. # ■ Window_Skill
  2158. #------------------------------------------------------------------------------
  2159. #  スキル画面などで、使用できるスキルの一覧を表示するウィンドウです。
  2160. #==============================================================================
  2161. class Window_Skill < Window_Selectable
  2162.   #--------------------------------------------------------------------------
  2163.   # ● 項目の描画  ※再定義
  2164.   #--------------------------------------------------------------------------
  2165.   def draw_item(index)
  2166.     rect = item_rect(index)
  2167.     self.contents.clear_rect(rect)
  2168.     skill = @data[index]
  2169.     if skill != nil
  2170.       rect.width -= 4
  2171.       enabled = @actor.skill_can_use?(skill)
  2172.       enabled = @actor.union_skill_can_use?(skill.id) if @actor.union_skill?(skill.id)
  2173.       draw_item_name(skill, rect.x, rect.y, enabled)
  2174.       self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
  2175.     end
  2176.   end
  2177. end  
  2178. #==============================================================================
  2179. # ■ Window_BattleStatus
  2180. #------------------------------------------------------------------------------
  2181. #  バトル画面でパーティメンバーのステータスを表示するウィンドウです。
  2182. #==============================================================================
  2183. class Window_BattleStatus < Window_Selectable
  2184.   #--------------------------------------------------------------------------
  2185.   # ● カーソルを下に移動  ※再定義
  2186.   #--------------------------------------------------------------------------
  2187.   def cursor_down(wrap = false)
  2188.   end
  2189.   #--------------------------------------------------------------------------
  2190.   # ● カーソルを上に移動  ※再定義
  2191.   #--------------------------------------------------------------------------
  2192.   def cursor_up(wrap = false)
  2193.   end
  2194.   #--------------------------------------------------------------------------
  2195.   # ● フレーム更新  ※再定義
  2196.   #--------------------------------------------------------------------------
  2197.   def update
  2198.     super
  2199.     update_cursor
  2200.     call_update_help
  2201.   end
  2202. end
  2203. #==============================================================================
  2204. # ■ Window_PartyCommand2
  2205. #------------------------------------------------------------------------------
  2206. #  バトル画面で、戦うか逃げるかを選択するウィンドウです。
  2207. #==============================================================================
  2208. class Window_PartyCommand2 < Window_Selectable
  2209.   #--------------------------------------------------------------------------
  2210.   # ● オブジェクト初期化
  2211.   #--------------------------------------------------------------------------
  2212.   def initialize
  2213.     super(0, 234, 544, 56)
  2214.     @item_max = 2
  2215.     @column_max = 2
  2216.     self.contents.draw_text(32, 0, 96, WLH, "战斗", 2)
  2217.     self.contents.draw_text(310, 0, 96, WLH, "逃跑", 2) if $game_troop.can_escape
  2218.     self.contents.font.color.alpha = 128
  2219.     self.contents.draw_text(310, 0, 96, WLH, "逃跑", 2) if !$game_troop.can_escape
  2220.     self.active = false
  2221.   end
  2222. end
  2223. #==============================================================================
  2224. # ■ Window_MenuATB
  2225. #------------------------------------------------------------------------------
  2226. #  メニュー画面でATB設定を表示するウィンドウです。
  2227. #==============================================================================
  2228. class Window_ATB_active < Window_Selectable
  2229.   # アクティブタイムバトルのカスタマイズ項目からのテキスト
  2230.   ATB_MODE_NAME = N02::ATB_MODE_NAME
  2231.   ATB_MODE1 = N02::ATB_MODE1[0]
  2232.   ATB_MODE2 = N02::ATB_MODE2[0]
  2233.   ATB_MODE3 = N02::ATB_MODE3[0]
  2234.   #--------------------------------------------------------------------------
  2235.   # ● オブジェクト初期化
  2236.   #--------------------------------------------------------------------------
  2237.   def initialize
  2238.     super(0, 174, 544, 56)
  2239.     @item_max = 3
  2240.     @column_max = 3
  2241.     set_active
  2242.     self.active = true
  2243.     self.index = $game_party.atb_custom[0]
  2244.   end
  2245.   #--------------------------------------------------------------------------
  2246.   # ● アクティブ化
  2247.   #--------------------------------------------------------------------------
  2248.   def set_active
  2249.     self.contents.clear
  2250.     self.contents.font.size = 15
  2251.     self.contents.font.color = crisis_color
  2252.     self.contents.draw_text(  0, 0, 100, WLH, ATB_MODE_NAME, 0)
  2253.     self.contents.draw_text(  0, 0, 100, WLH, ATB_MODE_NAME, 0)
  2254.     self.contents.font.size = 20
  2255.     self.contents.font.color = normal_color
  2256.     refresh
  2257.   end  
  2258.   #--------------------------------------------------------------------------
  2259.   # ● アクティブ解除
  2260.   #--------------------------------------------------------------------------
  2261.   def non_active
  2262.     self.contents.clear
  2263.     self.contents.font.size = 15
  2264.     self.contents.font.color = system_color
  2265.     self.contents.draw_text(  0, 0, 100, WLH, ATB_MODE_NAME, 0)
  2266.     self.contents.font.size = 20
  2267.     self.contents.font.color = normal_color
  2268.     refresh
  2269.   end  
  2270.   #--------------------------------------------------------------------------
  2271.   # ● 項目を描画する矩形の取得
  2272.   #--------------------------------------------------------------------------
  2273.   def refresh
  2274.     case $game_party.atb_custom[0]
  2275.     when 0
  2276.       self.contents.draw_text(100, 0, 140, WLH, ATB_MODE1, 1)
  2277.       self.contents.font.color.alpha = 100
  2278.       self.contents.draw_text(240, 0, 140, WLH, ATB_MODE2, 1)
  2279.       self.contents.draw_text(380, 0, 140, WLH, ATB_MODE3, 1)
  2280.     when 1
  2281.       self.contents.font.color.alpha = 100
  2282.       self.contents.draw_text(100, 0, 140, WLH, ATB_MODE1, 1)
  2283.       self.contents.font.color = normal_color
  2284.       self.contents.draw_text(240, 0, 140, WLH, ATB_MODE2, 1)
  2285.       self.contents.font.color.alpha = 100
  2286.       self.contents.draw_text(380, 0, 140, WLH, ATB_MODE3, 1)
  2287.     when 2
  2288.       self.contents.font.color.alpha = 100
  2289.       self.contents.draw_text(100, 0, 140, WLH, ATB_MODE1, 1)
  2290.       self.contents.draw_text(240, 0, 140, WLH, ATB_MODE2, 1)
  2291.       self.contents.font.color = normal_color
  2292.       self.contents.draw_text(380, 0, 140, WLH, ATB_MODE3, 1)
  2293.     end
  2294.   end
  2295.   #--------------------------------------------------------------------------
  2296.   # ● 項目を描画する矩形の取得
  2297.   #--------------------------------------------------------------------------
  2298.   def item_rect(index)
  2299.     rect = Rect.new(0, 0, 0, 0)
  2300.     rect.width = 140
  2301.     rect.height = 24
  2302.     rect.x = index % @column_max * rect.width + 100
  2303.     rect.y = index / @column_max * WLH
  2304.     return rect
  2305.   end
  2306. end  
  2307. #==============================================================================
  2308. # ■ Window_MenuATB
  2309. #------------------------------------------------------------------------------
  2310. #  メニュー画面でATB設定を表示するウィンドウです。
  2311. #==============================================================================
  2312. class Window_ATB_speed < Window_Selectable
  2313.   # アクティブタイムバトルのカスタマイズ項目からのテキスト
  2314.   ATB_MODE_NAME = N02::ATB_SPEED_NAME
  2315.   #--------------------------------------------------------------------------
  2316.   # ● オブジェクト初期化
  2317.   #--------------------------------------------------------------------------
  2318.   def initialize
  2319.     super(0, 230, 544, 56)
  2320.     @item_max = 9
  2321.     @column_max = 9
  2322.     non_active
  2323.     self.active = false
  2324.     self.index = -1
  2325.   end
  2326.   #--------------------------------------------------------------------------
  2327.   # ● アクティブ化
  2328.   #--------------------------------------------------------------------------
  2329.   def set_active
  2330.     self.contents.clear
  2331.     self.contents.font.size = 15
  2332.     self.contents.font.color = crisis_color
  2333.     self.contents.draw_text(  0, 0, 140, WLH, ATB_MODE_NAME, 0)
  2334.     self.contents.draw_text(  0, 0, 140, WLH, ATB_MODE_NAME, 0)
  2335.     self.contents.font.size = 22
  2336.     self.contents.font.color = normal_color
  2337.     refresh
  2338.   end  
  2339.   #--------------------------------------------------------------------------
  2340.   # ● アクティブ解除
  2341.   #--------------------------------------------------------------------------
  2342.   def non_active
  2343.     self.contents.clear
  2344.     self.contents.font.size = 15
  2345.     self.contents.font.color = system_color
  2346.     self.contents.draw_text(  0, 0, 140, WLH, ATB_MODE_NAME, 0)
  2347.     self.contents.font.size = 22
  2348.     self.contents.font.color = normal_color
  2349.     refresh
  2350.   end  
  2351.   #--------------------------------------------------------------------------
  2352.   # ● 項目を描画する矩形の取得
  2353.   #--------------------------------------------------------------------------
  2354.   def refresh
  2355.     self.contents.font.color.alpha = 96
  2356.     self.contents.draw_text(94 + 38 * 0, 0, 140, WLH, "1", 1)
  2357.     self.contents.draw_text(94 + 38 * 1, 0, 140, WLH, "2", 1)
  2358.     self.contents.draw_text(94 + 38 * 2, 0, 140, WLH, "3", 1)
  2359.     self.contents.draw_text(94 + 38 * 3, 0, 140, WLH, "4", 1)
  2360.     self.contents.draw_text(94 + 38 * 4, 0, 140, WLH, "5", 1)
  2361.     self.contents.draw_text(94 + 38 * 5, 0, 140, WLH, "6", 1)
  2362.     self.contents.draw_text(94 + 38 * 6, 0, 140, WLH, "7", 1)
  2363.     self.contents.draw_text(94 + 38 * 7, 0, 140, WLH, "8", 1)
  2364.     self.contents.draw_text(94 + 38 * 8, 0, 140, WLH, "9", 1)
  2365.     self.contents.font.color.alpha = 256
  2366.     case $game_party.atb_custom[1]
  2367.     when 0;self.contents.draw_text(94 + 38 * 0, 0, 140, WLH, "1", 1)
  2368.     when 1;self.contents.draw_text(94 + 38 * 1, 0, 140, WLH, "2", 1)
  2369.     when 2;self.contents.draw_text(94 + 38 * 2, 0, 140, WLH, "3", 1)
  2370.     when 3;self.contents.draw_text(94 + 38 * 3, 0, 140, WLH, "4", 1)
  2371.     when 4;self.contents.draw_text(94 + 38 * 4, 0, 140, WLH, "5", 1)
  2372.     when 5;self.contents.draw_text(94 + 38 * 5, 0, 140, WLH, "6", 1)
  2373.     when 6;self.contents.draw_text(94 + 38 * 6, 0, 140, WLH, "7", 1)
  2374.     when 7;self.contents.draw_text(94 + 38 * 7, 0, 140, WLH, "8", 1)
  2375.     when 8;self.contents.draw_text(94 + 38 * 8, 0, 140, WLH, "9", 1)
  2376.     end
  2377.   end
  2378.   #--------------------------------------------------------------------------
  2379.   # ● 項目を描画する矩形の取得
  2380.   #--------------------------------------------------------------------------
  2381.   def item_rect(index)
  2382.     rect = Rect.new(0, 0, 0, 0)
  2383.     rect.width = 38
  2384.     rect.height = 24
  2385.     rect.x = index % @column_max * rect.width + 145
  2386.     rect.y = index / @column_max * WLH
  2387.     return rect
  2388.   end
  2389. end  
  2390. #==============================================================================
  2391. # ■ Window_ATB_Help
  2392. #------------------------------------------------------------------------------
  2393. #  ATB設定の説明を表示するウィンドウです。
  2394. #==============================================================================
  2395. class Window_ATB_Help < Window_Base
  2396.   # アクティブタイムバトルのカスタマイズ項目からのテキスト
  2397.   ATB_MODE_NAME = N02::ATB_MODE_NAME
  2398.   ATB_MODE1 = N02::ATB_MODE1[0]
  2399.   ATB_MODE2 = N02::ATB_MODE2[0]
  2400.   ATB_MODE3 = N02::ATB_MODE3[0]
  2401.   ATB_MODE1_HELP = N02::ATB_MODE1_HELP
  2402.   ATB_MODE2_HELP = N02::ATB_MODE2_HELP
  2403.   ATB_MODE3_HELP = N02::ATB_MODE3_HELP
  2404.   ATB_SPEED_NAME = N02::ATB_SPEED_NAME
  2405.   ATB_SPEED_HELP = N02::ATB_SPEED_HELP
  2406.   #--------------------------------------------------------------------------
  2407.   # ● オブジェクト初期化
  2408.   #--------------------------------------------------------------------------
  2409.   def initialize
  2410.     super(0, 56, 544, 96)
  2411.   end
  2412.   #--------------------------------------------------------------------------
  2413.   # ● テキスト設定
  2414.   #--------------------------------------------------------------------------
  2415.   def set_text_active(index)
  2416.     text1 = ATB_MODE_NAME + "  ["
  2417.     case index
  2418.     when 0
  2419.       text1 += ATB_MODE1 + "]"
  2420.       text2 = ATB_MODE1_HELP
  2421.     when 1
  2422.       text1 += ATB_MODE2 + "]"
  2423.       text2 = ATB_MODE2_HELP
  2424.     when 2
  2425.       text1 += ATB_MODE3 + "]"
  2426.       text2 = ATB_MODE3_HELP
  2427.     end
  2428.     self.contents.clear
  2429.     self.contents.font.color = crisis_color
  2430.     self.contents.draw_text(4, 4, self.width - 40, WLH, text1, 0)
  2431.     self.contents.font.color = normal_color
  2432.     self.contents.draw_text(4, 34, self.width - 40, WLH, text2, 0)
  2433.   end
  2434.   #--------------------------------------------------------------------------
  2435.   # ● テキスト設定
  2436.   #--------------------------------------------------------------------------
  2437.   def set_text_speed
  2438.     text1 = ATB_SPEED_NAME
  2439.     text2 = ATB_SPEED_HELP
  2440.     self.contents.clear
  2441.     self.contents.font.color = crisis_color
  2442.     self.contents.draw_text(4, 4, self.width - 40, WLH, text1, 0)
  2443.     self.contents.font.color = normal_color
  2444.     self.contents.draw_text(4, 34, self.width - 40, WLH, text2, 0)
  2445.   end
  2446. end
  2447. #==============================================================================
  2448. # ■ Window_ATB_Help
  2449. #------------------------------------------------------------------------------
  2450. #  ATB設定タイトル・操作を表示するウィンドウです。
  2451. #==============================================================================
  2452. class Window_ATB_Title < Window_Base
  2453.   #--------------------------------------------------------------------------
  2454.   # ● オブジェクト初期化
  2455.   #--------------------------------------------------------------------------
  2456.   def initialize
  2457.     super(0, 0, 544, 56)
  2458.     refresh
  2459.   end
  2460.   #--------------------------------------------------------------------------
  2461.   # ● テキスト設定
  2462.   #--------------------------------------------------------------------------
  2463.   def refresh
  2464.     text1 = N02::ATB_CUSTOMIZE_NAME
  2465.     text2 = "↑↓キーで移動 ←→キーで選択 決定キーで設定"
  2466.     self.contents.clear
  2467.     self.contents.font.color = system_color
  2468.     self.contents.draw_text(4, 0, 96, WLH, text1, 0)
  2469.     self.contents.font.color = normal_color
  2470.     self.contents.draw_text(110, 0, 420, WLH, text2, 0)
  2471.   end
  2472. end
  2473. #==============================================================================
  2474. # ■ Scene_ATB
  2475. #------------------------------------------------------------------------------
  2476. #  ATB設定を行うクラスです。
  2477. #==============================================================================
  2478. class Scene_ATB < Scene_Base
  2479.   #--------------------------------------------------------------------------
  2480.   # ● 開始処理
  2481.   #--------------------------------------------------------------------------
  2482.   def start
  2483.     super
  2484.     create_menu_background
  2485.     @title_window = Window_ATB_Title.new
  2486.     @help_window = Window_ATB_Help.new
  2487.     @active_window = Window_ATB_active.new
  2488.     @speed_window = Window_ATB_speed.new
  2489.     @help_window.set_text_active(@active_window.index)
  2490.     @active_window_index = @active_window.index
  2491.     @speed_window_index = $game_party.atb_custom[1]
  2492.   end
  2493.   #--------------------------------------------------------------------------
  2494.   # ● 終了処理
  2495.   #--------------------------------------------------------------------------
  2496.   def terminate
  2497.     super
  2498.     $game_party.atb_customize
  2499.     dispose_menu_background
  2500.     @title_window.dispose
  2501.     @help_window.dispose
  2502.     @active_window.dispose
  2503.     @speed_window.dispose
  2504.   end
  2505.   #--------------------------------------------------------------------------
  2506.   # ● 元の画面へ戻る
  2507.   #--------------------------------------------------------------------------
  2508.   def return_scene
  2509.     $scene = Scene_Menu.new(4)
  2510.   end
  2511.   #--------------------------------------------------------------------------
  2512.   # ● フレーム更新
  2513.   #--------------------------------------------------------------------------
  2514.   def update
  2515.     super
  2516.     update_menu_background
  2517.     @help_window.update
  2518.     @active_window.update
  2519.     @speed_window.update
  2520.     if @active_window.active
  2521.       update_active_selection
  2522.     elsif @speed_window.active
  2523.       update_speed_selection
  2524.     end
  2525.   end
  2526.   #--------------------------------------------------------------------------
  2527.   # ● アイテム選択の更新
  2528.   #--------------------------------------------------------------------------
  2529.   def update_active_selection
  2530.     if Input.trigger?(Input::B)
  2531.       Sound.play_cancel
  2532.       return_scene
  2533.     elsif Input.trigger?(Input::C)
  2534.       Sound.play_decision
  2535.       $game_party.atb_custom[0] = @active_window.index
  2536.       @active_window.set_active
  2537.     elsif Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN)
  2538.       Sound.play_cursor
  2539.       @speed_window.active = true
  2540.       @speed_window.set_active
  2541.       @speed_window.index = @speed_window_index
  2542.       @active_window.active = false
  2543.       @active_window.non_active
  2544.       @active_window_index = @active_window.index
  2545.       @active_window.index = -1
  2546.       @help_window.set_text_speed
  2547.     elsif Input.trigger?(Input::LEFT) or Input.trigger?(Input::RIGHT)
  2548.       @help_window.set_text_active(@active_window.index)
  2549.     end
  2550.   end
  2551.   #--------------------------------------------------------------------------
  2552.   # ● ターゲット選択の更新
  2553.   #--------------------------------------------------------------------------
  2554.   def update_speed_selection
  2555.     if Input.trigger?(Input::B)
  2556.       Sound.play_cancel
  2557.       return_scene
  2558.     elsif Input.trigger?(Input::C)
  2559.       Sound.play_decision
  2560.       $game_party.atb_custom[1] = @speed_window.index
  2561.       @speed_window.set_active
  2562.     elsif Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN)
  2563.       Sound.play_cursor
  2564.       @active_window.active = true
  2565.       @active_window.set_active
  2566.       @active_window.index = @active_window_index
  2567.       @speed_window.active = false
  2568.       @speed_window.non_active
  2569.       @speed_window_index = @speed_window.index
  2570.       @speed_window.index = -1
  2571.       @help_window.set_text_active(@active_window.index)
  2572.     end
  2573.   end
  2574. end
  2575. #==============================================================================
  2576. # ■ Scene_File
  2577. #------------------------------------------------------------------------------
  2578. #  ファイル画面の処理を行うクラスです。
  2579. #==============================================================================
  2580. class Scene_File < Scene_Base
  2581.   #--------------------------------------------------------------------------
  2582.   # ● 元の画面へ戻る  ※再定義
  2583.   #--------------------------------------------------------------------------
  2584.   def return_scene
  2585.     if @from_title
  2586.       $scene = Scene_Title.new
  2587.     elsif @from_event
  2588.       $scene = Scene_Map.new
  2589.     else
  2590.       $scene = Scene_Menu.new(5)
  2591.     end
  2592.   end
  2593. end  
  2594. #==============================================================================
  2595. # ■ Scene_End
  2596. #------------------------------------------------------------------------------
  2597. #  ゲーム終了画面の処理を行うクラスです。
  2598. #==============================================================================
  2599. class Scene_End < Scene_Base
  2600.   #--------------------------------------------------------------------------
  2601.   # ● 元の画面へ戻る  ※再定義
  2602.   #--------------------------------------------------------------------------
  2603.   def return_scene
  2604.     $scene = Scene_Menu.new(6)
  2605.   end
  2606. end
  2607. #==============================================================================
  2608. # ■ Scene_Menu
  2609. #------------------------------------------------------------------------------
  2610. #  メニュー画面の処理を行うクラスです。
  2611. #==============================================================================
  2612. class Scene_Menu < Scene_Base
  2613.   #--------------------------------------------------------------------------
  2614.   # ● コマンドウィンドウの作成
  2615.   #--------------------------------------------------------------------------
  2616.   alias create_command_window_n02 create_command_window
  2617.   def create_command_window
  2618.     return create_command_window_n02 if !N02::ATB_CUSTOMIZE
  2619.     s1 = Vocab::item
  2620.     s2 = Vocab::skill
  2621.     s3 = Vocab::equip
  2622.     s4 = Vocab::status
  2623.     s5 = N02::ATB_CUSTOMIZE_NAME
  2624.     s6 = Vocab::save
  2625.     s7 = Vocab::game_end
  2626.     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
  2627.     @command_window.index = @menu_index
  2628.     if $game_party.members.size == 0          # パーティ人数が 0 人の場合
  2629.       @command_window.draw_item(0, false)     # アイテムを無効化
  2630.       @command_window.draw_item(1, false)     # スキルを無効化
  2631.       @command_window.draw_item(2, false)     # 装備を無効化
  2632.       @command_window.draw_item(3, false)     # ステータスを無効化
  2633.     end
  2634.     if $game_system.save_disabled             # セーブ禁止の場合
  2635.       @command_window.draw_item(5, false)     # セーブを無効化
  2636.     end
  2637.   end
  2638.   #--------------------------------------------------------------------------
  2639.   # ● コマンド選択の更新
  2640.   #--------------------------------------------------------------------------
  2641.   alias update_command_selection_n02 update_command_selection
  2642.   def update_command_selection
  2643.     return update_command_selection_n02 if !N02::ATB_CUSTOMIZE
  2644.     if Input.trigger?(Input::B)
  2645.       Sound.play_cancel
  2646.       $scene = Scene_Map.new
  2647.     elsif Input.trigger?(Input::C)
  2648.       if $game_party.members.size == 0 and @command_window.index < 4
  2649.         Sound.play_buzzer
  2650.         return
  2651.       elsif $game_system.save_disabled and @command_window.index == 5
  2652.         Sound.play_buzzer
  2653.         return
  2654.       end
  2655.       Sound.play_decision
  2656.       case @command_window.index
  2657.       when 0      # アイテム
  2658.         $scene = Scene_Item.new
  2659.       when 1,2,3  # スキル、装備、ステータス
  2660.         start_actor_selection
  2661.       when 4      # ATB設定
  2662.         $scene = Scene_ATB.new
  2663.       when 5      # セーブ
  2664.         $scene = Scene_File.new(true, false, false)
  2665.       when 6      # ゲーム終了
  2666.         $scene = Scene_End.new
  2667.       end
  2668.     end
  2669.   end
  2670. end
复制代码

作者: yangjunyin2002    时间: 2013-3-2 20:04
这应该是最后一楼了
除了发的外,还有战斗血条对应、战斗信息、更改战斗背景、战斗雾效果、技能横列表示这几个脚本

┣STR15_Enemy HP Gauge
  1. #==============================================================================
  2. # ★RGSS2
  3. # STR15_Enemy HP Gauge v1.1a
  4. # By star:http://strcatyou.u-abel.net/
  5. # Translated by Mr. Bubble
  6. #
  7. # ・Show HP gauge of enemies when hit.
  8. # ・You can hide a specified enemy's HP gauge by adding "HIDEHP" to
  9. # the enemy's Notes field in the Database.
  10. # ・Updated with a back attack fix by Moonlight.  Use this version ONLY with the
  11. #  ATB+SBS scripts.
  12. #------------------------------------------------------------------------------

  13. #==============================================================================
  14. # ★このスクリプトの機能を有効にする
  15. if true
  16. #==============================================================================
  17. # ■ Sprite_Battler
  18. #==============================================================================
  19. class Sprite_Battler < Sprite_Base
  20.   # Word used in enemy Notes field to hide HP gauge
  21.   GAUGE_M = "HIDEHP"
  22.   # Gauge back color [Border color, Inside color]
  23.   GAUGE_BC = [Color.new(0,0,0), Color.new(32,48,64)]
  24.   # Color gradient [Left, Right]
  25.   GAUGE_GC = [Color.new(64,128,96), Color.new(96,192,160)]
  26.   #
  27.   GAUGE_W = 70 # Gauge width
  28.   GAUGE_H = 6 # Gauge height
  29.   GAUGE_S = 8 # Gauge speed (more than 2)
  30.   GAUGE_T = 640 # Gauge display length (more 510)
  31.   GAUGE_O = 16 # Gauge opacity
  32.   #
  33.   GAUGE_V = false # STR cursor appears when damaged. Requires STRxx Cursor.                  # ※XP風バトルを導入してない場合は有効にしないでください
  34.   #--------------------------------------------------------------------------
  35.   # ● ゲージスプライト作成(追加)
  36.   #--------------------------------------------------------------------------
  37.   def create_enhpgauge
  38.     g_width = GAUGE_W  # 幅
  39.     g_height = GAUGE_H # 高さ
  40.     f_color = GAUGE_BC # ゲージバックカラー
  41.     g_color = GAUGE_GC # ゲージカラー
  42.     # ビットマップ作成
  43.     bitmap = Bitmap.new(g_width, g_height * 2)
  44.     # 上半分:ゲージバック
  45.     bitmap.fill_rect(0, 0, g_width, g_height, f_color[0])         # 枠外
  46.     bitmap.fill_rect(1, 1, g_width - 2, g_height - 2, f_color[1]) # 枠内
  47.     # 下半分:グラデゲージ
  48.     bitmap.gradient_fill_rect(1, g_height + 1, g_width - 2, g_height - 2,
  49.                               g_color[0], g_color[1])             # グラデ
  50.     # スプライト作成 # [0] = ゲージバック; [1] = ゲージ
  51.     @hp_gauge = [Sprite.new, Sprite.new]
  52.     for i in 0..1
  53.       sprite = @hp_gauge[i]
  54.       sprite.viewport = self.viewport
  55.       sprite.bitmap = bitmap
  56.       sprite.src_rect.set(0, 0, g_width, g_height)
  57.       sprite.src_rect.y = g_height if i == 1
  58.       if $back_attack && N01::BACK_ATTACK && N01::BACK_ATTACK_NON_BACK_MIRROR
  59.         sprite.x = Graphics.width - @battler.screen_x
  60.       else
  61.         sprite.x = @battler.screen_x
  62.       end
  63.       sprite.y = @battler.screen_y - 8
  64.       sprite.ox = g_width / 2
  65.       sprite.oy = g_height / 2
  66.       sprite.z = 200
  67.       sprite.z += 20 if i == 1
  68.       sprite.opacity = 0
  69.     end
  70.     # いろいろ
  71.     @enid = @battler.enemy_id
  72.     @hp = @battler.hp
  73.     @gauge_width = GAUGE_W + 1
  74.     @gauge_opacity = 0
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● ゲージ更新(追加)
  78.   #--------------------------------------------------------------------------
  79.   def enhpgauge_update
  80.     # エネミーIDが変動していたらメモの内容を再取得・可視状態も更新
  81.     if @enid != @battler.enemy_id
  82.       @enid = @battler.enemy_id
  83.       @gauge_visible = true
  84.       @gauge_visible = false if $data_enemies[@enid].note.include?(GAUGE_M)
  85.       for i in @hp_gauge do i.visible = @gauge_visible end
  86.       end
  87.     return unless @gauge_visible
  88.     # ゲージ更新
  89.     if @hp != @battler.hp
  90.       g_width = (@battler.hp / (@battler.maxhp * 1.0))
  91.       @gauge_width = ((GAUGE_W * g_width) + 1).truncate
  92.       @gauge_opacity = GAUGE_T
  93.       @hp = @battler.hp
  94.     end
  95.     # 幅
  96.     g_width = @hp_gauge[1].src_rect.width
  97.     speed = GAUGE_S
  98.     rect = @hp_gauge[1].src_rect
  99.     rect.width = (@gauge_width + (g_width * (speed - 1))) / speed
  100.     if rect.width != @gauge_width
  101.       if rect.width > @gauge_width
  102.         rect.width -= 1
  103.       else
  104.         rect.width += 1
  105.       end
  106.     end
  107.     rect.width = 2 if rect.width <= 1 and @hp > 0
  108.     # 透明度
  109.     if GAUGE_V and @battler.cursor_flash
  110.       @gauge_opacity += GAUGE_O * 2 if @gauge_opacity <= GAUGE_T / 2
  111.     else
  112.       @gauge_opacity -= GAUGE_O if @gauge_opacity > 0
  113.     end
  114.     # 透明度適用
  115.     for i in @hp_gauge do i.opacity = @gauge_opacity end
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● オブジェクト初期化(エイリアス)
  119.   #--------------------------------------------------------------------------
  120.   alias initialize_str15 initialize
  121.   def initialize(viewport, battler = nil)
  122.     initialize_str15(viewport, battler)
  123.     if @battler.is_a?(Game_Enemy)
  124.       create_enhpgauge
  125.       @gauge_visible = true
  126.       @gauge_visible = false if $data_enemies[@enid].note.include?(GAUGE_M)
  127.       for i in @hp_gauge do i.visible = @gauge_visible end
  128.     end
  129.   end
  130.   #--------------------------------------------------------------------------
  131.   # ● 解放(エイリアス)
  132.   #--------------------------------------------------------------------------
  133.   alias dispose_str15 dispose
  134.   def dispose
  135.     dispose_str15
  136.     if @battler.is_a?(Game_Enemy)
  137.       @hp_gauge[0].bitmap.dispose
  138.       @hp_gauge[0].dispose
  139.       @hp_gauge[1].dispose
  140.     end
  141.   end
  142.   #--------------------------------------------------------------------------
  143.   # ● フレーム更新(エイリアス)
  144.   #--------------------------------------------------------------------------
  145.   alias update_str15 update
  146.   def update
  147.     update_str15
  148.     enhpgauge_update if @battler.is_a?(Game_Enemy)
  149.   end
  150. end
  151. #
  152. end
复制代码

作者: 吐槽砖家    时间: 2013-3-2 20:08
本帖最后由 吐槽砖家 于 2013-3-2 20:10 编辑

开水得了。移动也行。@tjjlb  
作者: LBQ    时间: 2013-3-2 20:50
为啥你老是搞【提问帖用】,这种东西= =。这种东西要真的觉得占地方也用记事本上传一个脚本文件不好吗= =
作者: 失格迷白    时间: 2013-3-3 12:11
您非法使用第三方脚本修改系统数据,即将对您封号处理
作者: 1367393986    时间: 2013-3-8 12:21
= =好长的脚本....




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