设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1383|回复: 4
打印 上一主题 下一主题

[已经解决] 横版中敌人出现时出错

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2767
在线时间
675 小时
注册时间
2012-1-29
帖子
89
跳转到指定楼层
1
发表于 2012-8-21 19:00:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

  84. #==============================================================================
  85. # ■ 単発アクション
  86. #------------------------------------------------------------------------------
  87. #  通しアクションに利用するものです。これ単体では意味を持ちません。
  88. #==============================================================================
  89. # ここの単発アクション名同士は、かぶらないようにしてください。
  90. # 通しアクション名とかぶる分には問題ありません。
  91.   ANIME = {
  92. #--------------------------------------------------------------------------
  93. # ● バトラーアニメ設定
  94. #--------------------------------------------------------------------------
  95.   # ファイルNo…利用するグラフィックファイルのナンバー。
  96.   #             アクターの場合、0は歩行グラフィックを参照します。
  97.   #             1以降は"キャラクターグラフィック名+_1"のように_の後のナンバーの
  98.   #             グラフィックを参照します。例)$ラルフ_1 のファイルNoは1
  99.   #             グラフィックは全てキャラクターフォルダから探します。
  100.   #
  101.   # 種類…グラフィックファイルのセルの縦位置。上から0~3と続きます。
  102.   # 速度…アニメの更新速度。数字が低いほど早く更新します。
  103.   # ループ… [0=往復ループ] [1=片道ループ] [2=片道のみでループしない]
  104.   # 待ち…ループしない(2)場合、最後のアニメを表示してからの待ち(ウエイト)時間。
  105.   # 固定…アニメせずに固定する場合、セル番号(横位置)を指定。固定しない通常は-1。逆再生は-2。
  106.   # Z軸…手前に表示するならプラス。通常は画面下ほど手前に表示されます。
  107.   # 影…影グラフィックを表示するならtrue、しない場合はfalse
  108.   # 武器…武器を表示する場合は武器アクション名を。しない場合は""。
  109.   
  110.   # バトラーアニメ名      ファイルNo 種類 速度 ループ 待ち 固定  Z軸  影  武器
  111.   "待機"            => [ 0,  1,  15,   0,   0,  -1,   0, true,"" ],
  112.   "待機(固定)"      => [ 0,  1,  10,   2,   0,   1,   0, true,"" ],
  113.   "右向き(固定)"    => [ 0,  2,  10,   1,   2,   1,   0, true,"" ],
  114.   "ダメージ"        => [ 0,  3,   4,   2,   0,  -1,   0, true,"" ],
  115.   "戦闘不能"        => [ 0,  3,  10,   1,   8,   0,   0, true,"" ],
  116.   "前進"            => [ 0,  1,   1,   1,   0,  -1,   0, true,"" ],
  117.   "後退"            => [ 0,  2,   2,   1,   0,  -1,   0, true,"" ],
  118.   "手前表示"        => [ 0,  1,   2,   1,   0,  -1, 600, true,"" ],
  119.   "武器振り攻撃"    => [ 0,  1,   1,   2,   0,  -1,   2, true,"縦振り"],
  120.   "武器振り攻撃L"   => [ 0,  1,   1,   2,   0,  -1,   2, true,"縦振りL"],
  121.   "武器振り攻撃遅"  => [ 0,  1,   6,   2,   0,  -1,   2, true,"縦振り"],
  122.   "武器回し下"      => [ 0,  1,   2,   2,   0,  -1,   2, true,"下半回転"],
  123.   "武器回し上"      => [ 0,  1,   2,   2,   0,  -1,   2, true,"上半回転"],
  124.   "武器掲げ"        => [ 0,  1,   2,   2,  28,  -1,   2, true,"掲げ"],
  125.   
  126. #--------------------------------------------------------------------------
  127. # ● 武器アクション 武器グラフィックの動かし方
  128. #--------------------------------------------------------------------------
  129.   # ここで使用する武器アクション名は、上のバトラーアニメ設定でのみ有効です。
  130.   
  131.   # X軸…横に動かす距離。
  132.   # Y軸…縦に動かす距離。
  133.   # Z軸…バトラーより手前に表示するならtrue。
  134.   # 始度…動作前の最初の角度。半時計回りで0~360度。負が半時計回り。
  135.   # 終度…動作後の角度。
  136.   # 原点…回転元の原点。[0…中心] [1…左上] [2…右上] [3…左下] [4…右下]
  137.   # 反転…trueにすると動作前にグラフィックを反転して表示します。
  138.   # X拡…X軸拡大率、横の拡大率です。1が当倍、2が2倍、0.5が1/2になります。
  139.   # Y拡…Y軸拡大率、縦の拡大率です。1が当倍、2が2倍、0.5が1/2になります。
  140.   # 調X…微調整するX軸。この数字ぶん初期X座標が変化します。
  141.   # 調Y…微調整するY軸。この数字ぶん初期Y座標が変化します。
  142.   # 二刀…二刀流時限定で、左(項目でいうと下)の武器画像を表示するようにします。
  143.   #       二刀流じゃなかった場合はバトラーアニメごと処理を飛ばします。
  144.   
  145.   # 武器アクション名   X軸  Y軸  Z軸  始度 終度 原点 反転  X拡  Y拡  調X  調Y 二刀
  146.   "縦振り"     => [   6,   8,false,-135,  45,  4,false,   1,  1,  -4,  -6,false],
  147.   "縦振りL"    => [   6,   8,false,-135,  45,  4,false,   1,  1,  -4,  -6, true],
  148.   "下半回転"   => [   6,   8,false, 270,  45,  4,false,   1,  1,  -4,  -6,false],
  149.   "上半回転"   => [   6,   8,false,  45,-100,  4,false,   1,  1,  -4,  -6,false],
  150.   "掲げ"       => [   6,  -4,false,  90, -45,  4,false,   1,  1,  -4,  -6,false],

  151. #--------------------------------------------------------------------------
  152. # ● バトラー移動  エネミーのX軸移動は逆計算になります
  153. #--------------------------------------------------------------------------
  154.   # 目標…移動する座標の参照先 [0=自身の現在位置] [1=ターゲット] [2=画面] [3=初期位置]
  155.   # X軸…対象から見たX座標。絶対値は最低でも時間より高く
  156.   # Y軸…対象から見たY座標。絶対値は最低でも時間より高く
  157.   # 時間…移動時間。大きいほど遅い。これを距離で割ったのが1フレーム移動距離です。
  158.   # 加速…正は加速、負は減速。数値分1フレームの移動距離が増減しつづけます。
  159.   # ジャンプ…ジャンプ軌道。正は下、負は上軌道。0はジャンプしません。
  160.   # アニメ…その移動に利用するバトラーアニメ名。

  161.   #                        目標  X軸  Y軸 時間 加速 ジャンプ アニメ
  162.   "移動しない"          => [  0,   0,   0,  1,   0,   0,  "待機(固定)"],
  163.   "戦闘開始前の位置へ"  => [  0,  54,   0,  1,   0,   0,  "前進"],
  164.   "一歩前移動"          => [  3, -32,   0, 18,  -1,   0,  "前進"],
  165.   "一歩後移動"          => [  0,  32,   0,  8,  -1,   0,  "前進"],
  166.   "四人攻撃移動1"       => [  2, 444,  96, 18,  -1,   0,  "前進"],
  167.   "四人攻撃移動2"       => [  2, 444, 212, 18,  -1,   0,  "前進"],
  168.   "四人攻撃移動3"       => [  2, 384,  64, 18,  -1,   0,  "前進"],
  169.   "四人攻撃移動4"       => [  2, 384, 244, 18,  -1,   0,  "前進"],
  170.   "被ダメージ"          => [  0,  32,   0,  4,  -1,   0,  "ダメージ"],
  171.   "押し出す"            => [  0,  12,   0,  1,   1,   0,  "ダメージ"],
  172.   "味方逃走"            => [  0, 300,   0,300,   1,   0,  "後退"],
  173.   "逃走失敗"            => [  0,  48,   0, 16,   1,   0,  "後退"],
  174.   "勝利のジャンプ"      => [  0,   0,   0, 20,   0,  -5,  "前進"],
  175.   "目標移動"            => [  1,   0,   0, 18,  -1,   0,  "前進"],
  176.   "目標高速移動"        => [  1,   0, -12,  8,   0,  -2,  "前進"],
  177.   "目標前移動"          => [  1,  24,   0, 12,  -1,   0,  "前進"],
  178.   "目標前高速移動"      => [  1,  24,   0,  1,   0,   0,  "前進"],
  179.   "目標右前移動"        => [  1,  96,  32, 16,  -1,   0,  "前進"],
  180.   "目標左前移動"        => [  1,  96, -32, 16,  -1,   0,  "前進"],
  181.   "一歩前ジャンプ"      => [  0, -32,   0,  8,  -1,  -4,  "前進"],
  182.   "一歩後ジャンプ"      => [  0,  32,   0,  8,  -1,  -4,  "後退"],
  183.   "目標にジャンプ"      => [  1,  12, -12, 12,  -1,  -6,  "前進"],
  184.   "味方投げ"            => [  0, -24,   0, 16,   0,  -2,  "前進"],
  185.   "踏みつけ"            => [  1,  12, -32, 12,  -1,  -6,  "手前表示"],
  186.   "一歩前ジャンプ叩き"  => [  0, -32,   0, 12,  -1,  -2,  "武器振り攻撃"],
  187.   "前ジャンプ叩き"      => [  1,  12,   0, 12,  -1,  -5,  "武器振り攻撃遅"],
  188.   "後方に払い上げ"      => [  1,  12,   0, 16,   0,  -3,  "武器振り攻撃"],
  189.   "その場ジャンプ叩き"  => [  1,   0,   0, 16,   0,  -5,  "武器振り攻撃"],
  190.   "払い抜け"            => [  1, -96,   0, 16,   2,   0,  "武器振り攻撃"],
  191.   "右払い抜け"          => [  1, -96,  32, 16,   2,   0,  "武器振り攻撃"],
  192.   "左払い抜け"          => [  1, -96, -32, 16,   2,   0,  "武器振り攻撃"],
  193.   "右払い抜け2"         => [  1,-128,  48, 16,   2,   0,  "武器振り攻撃"],
  194.   "左払い抜け2"         => [  1,-128, -48, 16,   2,   0,  "武器振り攻撃"],
  195.   "右穿"                => [  1,  96,   0, 16,   2,   0,  "武器振り攻撃"],
  196.   "移动目标身后"        => [  1, -64,   0, 16,   0,   0,  "前進"],
  197.   "后跳攻击"            => [  1, -32,   0, 16,   0,  -5,  "武器振り攻撃"],
  198. #--------------------------------------------------------------------------
  199. # ● バトラー浮遊  バトラーを影から離します
  200. #--------------------------------------------------------------------------
  201.   # 判別…判別に使うので、すべて"float"で統一してください。
  202.   # 始高…浮遊開始の高さ。符号が負で影より高く、正だと低くなります。
  203.   # 終高…浮遊終了の高さ。移動系のアクションがあるまでこの高さを維持します。
  204.   # 時間…浮遊にかける時間。
  205.   # アニメ…浮遊に利用するバトラーアニメ名。
  206.   
  207.   #                      判別  始高 終高 時間 アニメ
  208.   "低空浮遊中"      => ["float", -22, -20,  2, "待機(固定)"],
  209.   "低空浮遊中2"     => ["float", -22, -20,  20, "待機(固定)"],
  210.   "低空浮遊中3"     => ["float", -18, -20,  2, "待機(固定)"],
  211.   "低空浮遊中4"     => ["float", -20, -22,  2, "待機(固定)"],
  212.   "ジャンプ停止"    => ["float",   0, -80,  4, "待機(固定)"],
  213.   "ジャンプ着地"    => ["float", -22,  7,  15, "待機(固定)"],
  214.   "持ち上げられる"  => ["float",   0, -30,  4, "待機(固定)"],
  215.   
  216. #--------------------------------------------------------------------------
  217. # ● 座標リセット 元の位置に戻る移動設定
  218. #--------------------------------------------------------------------------
  219.   # 判別…判別に使うので、すべて"reset"で統一してください。
  220.   # 時間…戻るのにかける時間。同じ時間でも距離が大きいと移動速度が変わります。
  221.   # 加速…正は加速、負は減速。数値分1フレームの移動距離が増減しつづけます。
  222.   # ジャンプ…ジャンプ軌道。正は下、負は上軌道。0はジャンプしません。
  223.   # アニメ…その移動に利用するバトラーアニメ名を入れます。

  224.   #                      判別  時間 加速 ジャンプ アニメ
  225.   "座標リセット"    => ["reset", 16,  0,   0,  "前進"],
  226.   "後退リセット"    => ["reset", 16,  0,   0,  "後退"],
  227.   
  228. #--------------------------------------------------------------------------
  229. # ● 強制アクション 自分以外のバトラーにアクションを取らせます
  230. #--------------------------------------------------------------------------
  231.   # 識別…取らせるアクションが単発か通しか。"単発"はここの単発アクション名を。
  232.   #       "通し"とは単発アクションを組み合わせたものを指します。
  233.   #
  234.   # 対象…アクションを取らせる対象。0はターゲット、それ以外はそのステートNoが
  235.   #       付いているバトラー全部を対象とします。
  236.   #       数値に-マイナスを付けることで、その絶対値のスキルIDを習得している
  237.   #       自分以外のアクターを対象とします(アクター限定)
  238.   #       インデックス(メンバー位置)で指定する場合、インデックス値に1000足します。
  239.   #       指定したインデックスが自分だったり存在しない場合(戦闘不能や逃走)は
  240.   #       0番から順に参照し、誰も該当しなかった時は行動を中断します。
  241.   #
  242.   # 復帰…アクション後位置を戻すなら座標リセット系の単発アクション名を入れます。
  243.   #       戻さない場合""とします。
  244.   # アクション名…強制するアクション名。識別が単発なら、単発アクション名を。
  245.   #               通しなら通しアクション名を。
  246.   
  247.   #                       識別    対象   復帰              アクション名
  248.   "小吹き飛ばし"     => ["単発",    0, "座標リセット",  "押し出す"],
  249.   "右回し"           => ["単発",    0, "座標リセット",  "右回り1回転"],
  250.   "縦にぺしゃんこ"   => ["単発",    0, "座標リセット",  "縦縮み"],
  251.   "着弾1"            => ["単発",    0, "座標リセット",  "対象から自身へ1"],
  252.   "味方持ち上げ"     => ["単発",    0,             "",  "持ち上げられる"],
  253.   "ウルリカと攻撃"   => ["通し",   18, "座標リセット",  "ウルリカ合体攻撃1"],
  254.   "四人で攻撃1"      => ["通し", -101, "座標リセット",  "四人合体攻撃1"],
  255.   "四人で攻撃2"      => ["通し", -102, "座標リセット",  "四人合体攻撃2"],
  256.   "四人で攻撃3"      => ["通し", -103, "座標リセット",  "四人合体攻撃3"],
  257.   "味方投げ飛ばし"   => ["通し", 1000, "座標リセット",  "投げつけられる"],

  258. #--------------------------------------------------------------------------
  259. # ● ターゲット変更  バトラーの現在ターゲットしている対象を変えます
  260. #--------------------------------------------------------------------------
  261.   # ※あくまでスプライトアクション上のターゲットを変えるだけで、戦闘上での
  262.   #   ターゲットは変更されません。戦闘行動中のバトラーだけが実行できます。
  263.   # 判別…判別に使うので、すべて"target"で統一してください。
  264.   #
  265.   # 対象…ターゲットを変更させる対象。0はターゲット、それ以外はそのステートNoが
  266.   #       付いているバトラー全部のターゲットを変えます。
  267.   #       数値を負にすることでその絶対値のスキルIDを習得している味方全員を対象に。
  268.   #       インデックス(メンバー位置)で指定する場合、インデックス値に1000足します。
  269.   #       指定したインデックスが自分だったり存在しない場合(戦闘不能や逃走)は
  270.   #       0番から順に参照します。
  271.   #
  272.   # 変更先…変更先内容   0=自分に  1=自分のターゲットに 
  273.   #                      2=自分のターゲットに変更後、自身のターゲットを変更相手に
  274.   #                      3=変更した自身のターゲットを戻す(事前に2を実行していること)
  275.   
  276.   # ターゲット変更名             判別   対象  変更先
  277.   "標的を自身に"          => ["target",    0,  0],
  278.   "二人攻撃目標統一"      => ["target",   18,  1],
  279.   "四人攻撃目標統一"      => ["target",   19,  1],
  280.   "投げる相手選択"        => ["target", 1000,  2],
  281.   "投げつけ目標セット"    => ["target", 1000,  3],
  282.   
  283. #--------------------------------------------------------------------------
  284. # ● スキル派生 アクションを中断し、別のスキルに派生させます
  285. #--------------------------------------------------------------------------
  286.   # 判別…判別に使うので、すべて"der"で統一してください。
  287.   # 確率…派生する確率、0~100で。派生しなかった場合、残りアクションを続行します。
  288.   # 習得…派生するスキルが未修得でも実行可能ならtrue
  289.   # スキルID…派生するスキルのID
  290.   
  291.   # 派生名               判別  確率  習得 スキルID
  292.   "ヒールに派生"     => ["der", 100, true,  91],
  293.   "適当に派生"       => ["der", 100, true,  92],

  294. #--------------------------------------------------------------------------
  295. # ● アクション条件  条件を設定し、満たされなかったら以降の全行動を中断します
  296. #--------------------------------------------------------------------------
  297.   # 判別…判別に使うので、すべて"nece"で統一してください。
  298.   # 対象…条件を参照する対象。[0=自分] [1=ターゲット] [2=敵全体] [3=味方全体]
  299.   # 内容… [0=ステート] [1=パラメータ] [2=スイッチ] [3=変数] [4=習得スキル]
  300.   #
  301.   # 条件…上の内容で決めた項目に合致する数値を入れます。
  302.   # [0]ステート…ステートID
  303.   # [1]パラメータ…[0=現HP] [1=現MP] [2=攻撃力] [3=防御力] [4=精神力] [5=敏捷性]
  304.   # [2]スイッチ…ゲーム中のスイッチNo
  305.   # [3]変数…ゲーム中の変数No
  306.   # [4]習得スキル…特定のスキル習得を条件とし、そのスキルIDを指定します。
  307.   #
  308.   # 補足…上の条件補足。
  309.   # [0]ステート…条件となる被ステート人数。
  310.   #              符号が正でかかっている、負でかかっていないことが条件となります。
  311.   # [1]パラメータ…パラメータの数値。対象が複数だと平均を出します。
  312.   #                符号が正で数値以上、負で数値以下が条件となります。
  313.   # [2]スイッチ…スイッチONが条件なら true、OFFが条件なら false
  314.   # [3]変数…符号が正で数値以上、負で数値以下が条件となります。
  315.   # [4]習得スキル…条件となるスキル習得人数。
  316.   
  317.   # 派生名                 判別  対象  内容 条件 補足
  318.   "二人攻撃条件確認"  => ["nece",   3,   0,  18,    1],
  319.   "四人攻撃条件確認"  => ["nece",   3,   0,  19,    3],
  320.   "浮遊ステート確認"  => ["nece",   0,   0,  17,    1],
  321.   "ネコに変身してるか"=> ["nece",   0,   0,  20,    1],
  322.   
  323. #--------------------------------------------------------------------------
  324. # ● バトラー回転 画像を回転。反転と違い、武器アクションは反映されません
  325. #--------------------------------------------------------------------------
  326.   # 判別…判別に使うので、すべて"angle"で統一してください。
  327.   # 時間…回転にかける時間。
  328.   # 始度…回転開始時の角度。0~360度を指定。正が半時計周り、負が時計周り。
  329.   # 終度…回転終了時の角度。0~360度を指定。上記ともにエネミーは逆計算になります。
  330.   # 復帰…trueにすると終了と同時に通常角度に戻る。falseはアクション中そのまま。

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

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

  344.   #                   判別  時間  X拡  Y拡  復帰
  345.   "横縮み"         => ["zoom", 16, 0.5, 1.0, true],
  346.   "縦縮み"         => ["zoom", 16, 1.0, 0.5, true],
  347.   
  348. #--------------------------------------------------------------------------
  349. # ● 戦闘アニメ データベースの戦闘アニメを表示します
  350. #--------------------------------------------------------------------------
  351.   # 判別…判別に使うので、すべて"anime"で統一してください。
  352.   # ID…アニメID。-1で武器やスキルに設定されたアニメになりダメージを表示。
  353.   #     -2にするとスキルでも武器依存のアニメになります。
  354.   # 対象… [0=自分] [1=ターゲット]
  355.   # 反転…trueでアニメ画像が反転されます。
  356.   # ウエイト…アニメ表示が終わるまで待つならtrue。
  357.   # 二刀用…trueで二刀流時限定でアニメを実行。アニメIDを-1にした通常攻撃の場合は
  358.   # 左武器に設定されたアニメを表示します。スキルはスキルアニメを再度実行。
  359.                               
  360.   #                       判別      ID 対象  反転  ウエイト  二刀用
  361.   "対象アニメ"        => ["anime",  -1,  1, false,false, false],
  362.   "対象アニメウエイト"=> ["anime",  -1,  1, false, true, false],
  363.   "対象アニメ武器"    => ["anime",  -2,  1, false,false, false],
  364.   "対象アニメL"       => ["anime",  -1,  1, false,false,  true],
  365.   "打撃アニメ"        => ["anime",  -1,  1, false,false, false],
  366.   "斬撃/必殺技1"      => ["anime",  4,  0, false,false, false],
  367.   "斬撃/必殺技2"      => ["anime",  20,  1, false,false, false],
  368.   "斬撃/必殺技3"      => ["anime",  318,  1, false,false, false],
  369.   "圣光突击"          => ["anime",  76,  1, false,false, false],
  370.   "圣光突击2"          => ["anime",  90,  1, false,false, false],
  371.   "觉醒1"             => ["anime",  77,  4, false,false, false],
  372.   "觉醒2"             => ["anime",  78,  0, false,false, false],
  373.   "觉醒3"             => ["anime",  89,  0, false,false, false],
  374.   "爆炎地狱"          => ["anime",  79,  0, false,false, false],
  375.   "寒冰审判"          => ["anime",  81,  0, false,false, false],
  376.   "雷击"          => ["anime",  35,  1, false,false, false],
  377.   "雷击2"          => ["anime",  95,  1, false,false, false],
  378.   "雷击3"          => ["anime",  84,  1, false,false, false],
  379.   "魔法发动1"             => ["anime",  83,  0, false,false, false],
  380.   "裂空1"             => ["anime",  85,  1, false,false, false],
  381.   "裂空2"             => ["anime",  86,  1, false,false, false],
  382.   "裂空3"             => ["anime",  87,  1, false,false, false],
  383.   "裂空4"             => ["anime",  88,  0, false,false, false],
  384.   "裂空5"             => ["anime",  96,  1, false,false, false],
  385.   "撕咬"             => ["anime",   55,  1, false,false, false],
  386.   "弩发射"             => ["anime",   113,  0, false,false, false],
  387.   "散弩"             => ["anime",   114,  1, false,false, false],
  388.   "突刺"             => ["anime",   115,  1, false,false, false],
  389.   "散弩2"             => ["anime",   116,  0, false,false, false],
  390.   "弩发射2"             => ["anime",   117,  0, false,false, false],
  391.   "冰箭1"             => ["anime",   118,  0, false,false, false],
  392.   "冰箭2"             => ["anime",   119,  0, false,false, false],
  393.   "冰箭3"             => ["anime",   120,  1, false,false, false],
  394.   "白羽之光"             => ["anime",   110,   0, false,false, false],
  395.   "白羽之光2"             => ["anime",   121,  0, false,false, false],
  396.   "白羽之光3"             => ["anime",   122,  0, false,false, false],
  397.   "毒箭"             => ["anime",   123,  1, false,false, false],
  398.   "寒冰之箭改"             => ["anime",   125,  0, false,false, false],
  399.   "寒冰之箭改2"             => ["anime",   126,  0, false,false, false],
  400.   "寒冰之箭改3"             => ["anime",   127,  1, false,false, false],
  401.   "白羽之光改"             => ["anime",   128,  1, false,false, false],
  402.   "白羽之光改2"             => ["anime",   129,  0, false,false, false],
  403.   "白羽之光改3"             => ["anime",   130,  0, false,false, false],  
  404.   "白羽之光改4"             => ["anime",   131,  0, false,false, false],  
  405.   "白羽之光改5"             => ["anime",   132,  1, false,false, false],
  406.   "爆炎之箭"             => ["anime",   140,  0, false,false, false],
  407.   "爆炎之箭2"             => ["anime",   141,  0, false,false, false],
  408.   "爆炎之箭3"             => ["anime",   142,  1, false,false, false],
  409.   "重力射击"             => ["anime",   143,  0, false,false, false],
  410.   "重力射击2"             => ["anime",   144, 0, false,false, false],
  411.   "重力射击3"             => ["anime",   145,  0, false,false, false],
  412.   "重力射击4"             => ["anime",   146,  0, false,false, false],
  413.   "重力射击5"             => ["anime",   331,  1, false,false, false],
  414.   "天堂突击"             => ["anime",   148,  0, false,false, false],
  415.   "天堂突击2"             => ["anime",   149,  0, false,false, false],
  416.   "天堂突击3"             => ["anime",   150,  1, false,false, false],
  417.   "天堂突击4"             => ["anime",   151,  1, false,false, false],  
  418.   "天堂突击5"             => ["anime",   152,  1, false,false, false],
  419.   "天堂突击6"             => ["anime",   153,  0, false,false, false],
  420.   "重力球"             => ["anime",   154,  0, false,false, false],
  421.   "重力球2"             => ["anime",   155,  0, false,false, false],
  422.   "开枪"             => ["anime",   157,  1, false,false, false],
  423.   "枪击中"             => ["anime",   158,  0, false,false, false],
  424.   "哦"             => ["anime",   160,  1, false,false, false],
  425.   "枪击中2"             => ["anime",   161,  0, false,false, false],
  426.   "弹壳"             => ["anime",   162,  0, false,false, false],
  427.   "榴弹"             => ["anime",   163,  0, false,false, false],
  428.   "榴弹2"             => ["anime",   164,  0, false,false, false],
  429.   "穿甲弹"             => ["anime",   165,  0, false,false, false],
  430.   "震荡"             => ["anime",   174,  0, false,false, false],
  431.   "震荡2"             => ["anime",   175,  0, false,false, false],
  432.   "震荡3"             => ["anime",   176,  0, false,false, false],
  433.   "震荡4"             => ["anime",   177,  0, false,false, false],
  434.   "能量冲击"             => ["anime",   181,  0, false,false, false],
  435.   "炸裂冲击"             => ["anime",   183,  0, false,false, false],
  436.   "炸裂冲击2"             => ["anime",   184,  0, false,false, false],
  437.   "旋风冲击"             => ["anime",   186,  0, false,false, false],
  438.   "旋风冲击2"             => ["anime",   185,  0, false,false, false],
  439.   "炸裂冲击改"             => ["anime",   187,  0, false,false, false],
  440.   "炸裂冲击改2"             => ["anime",   188,  0, false,false, false],
  441.   "火拳"             => ["anime",   189,  0, false,false, false],
  442.   "火拳2"             => ["anime",   190,  0, false,false, false],
  443.   "手雷"             => ["anime",   192,  0, false,false, false],
  444.   "烈火拳"             => ["anime",   194,  0, false,false, false],
  445.   "烈火拳2"             => ["anime",   195,  0, false,false, false],
  446.   "烈火拳3"             => ["anime",   196,  1, false,false, false],
  447.   "地裂斩"             => ["anime",   197,  1, false,false, false],
  448.   "真空碎"             => ["anime",   198,  0, false,false, false],
  449.   "地裂碎"             => ["anime",   200,  0, false,false, false],
  450.   "地裂碎2"             => ["anime",   201,  0, false,false, false],
  451.   "真空碎2"             => ["anime",   202,  1, false,false, false],
  452.   "真空碎3"             => ["anime",   203,  1, false,false, false],
  453.   "真空碎4"             => ["anime",   204,  1, false,false, false],
  454.   "地裂斩改"             => ["anime",   205,  0, false,false, false],
  455.   "真空碎5"             => ["anime",   206,  0, false,false, false],
  456.   "雷暴"             => ["anime",   38,  0, false,false, false],
  457.   "黑洞"             => ["anime",   66,  0, false,false, false],
  458.   "混沌之祭"             => ["anime",   207,  0, false,false, false],
  459.   "混沌之祭2"             => ["anime",   208,  0, false,false, false],
  460.   "混沌之祭3"             => ["anime",   210,  0, false,false, false],
  461.   "混沌之祭4"             => ["anime",   209,  1, false,false, false],
  462.   "歼灭之炎"             => ["anime",   14,  0, false,false, false],
  463.   "歼灭之炎2"             => ["anime",   32,  0, false,false, false],
  464.   "寒冰地狱"             => ["anime",   19,  0, false,false, false],
  465.   "寒冰地狱2"             => ["anime",   34,  0, false,false, false],
  466.   "火魔法"             => ["anime",   214,  0, false,false, false],
  467.   "水魔法"             => ["anime",   215,  0, false,false, false],
  468.   "火魔法2"             => ["anime",   216,  0, false,false, false],
  469.   "水魔法2"             => ["anime",   217,  0, false,false, false],
  470.   "高温射线"             => ["anime",   31,  0, false,false, false],
  471.   "绞杀冰剑"             => ["anime",   18,  1, false,false, false],
  472.   "绞杀冰剑2"             => ["anime",   33,  1, false,false, false],
  473.   "星蓝之剑"             => ["anime",   219,  0, false,false, false],
  474.   "星蓝之剑2"             => ["anime",   87,  0, false,false, false],
  475.   "黑洞2"             => ["anime",   222,  0, false,false, false],
  476.   "飓风刹2"             => ["anime",   226,  1, false,false, false],
  477.   "破碎2"             => ["anime",   227,  0, false,false, false],
  478.   "毁灭残影"             => ["anime",   228,  0, false,false, false],
  479.   "毁灭残影2"             => ["anime",   229,  0, false,false, false],
  480.   "龙斩"             => ["anime",   230,  0, false,false, false],
  481.   "龙斩2"             => ["anime",   231,  0, false,false, false],
  482.   "龙斩3"             => ["anime",   232,  0, false,false, false],
  483.   "龙斩4"             => ["anime",   233,  0, false,false, false],
  484.   "银刃"             => ["anime",   234,  1, false,false, false],
  485.   "力爆"             => ["anime",   237,  0, false,false, false],
  486.   "浊流"             => ["anime",   239,  0, false,false, false],
  487.   "光箭"             => ["anime",   243,  0, false,false, false],
  488.   "光箭2"             => ["anime",   242,  1, false,false, false],
  489.   "沙漠风暴"             => ["anime",   245,  0, false,false, false],
  490.   "沙漠风暴2"             => ["anime",   247,  0, false,false, false],
  491.   "沙漠风暴3"             => ["anime",   248,  0, false,false, false],
  492.   "变身BUG"             => ["anime",   250,  0, false,false, false],
  493.   "火箭弹"             => ["anime",   251,  0, false,false, false],
  494.   "火箭弹2"             => ["anime",   252,  0, false,false, false],
  495.   "混沌之祭5"             => ["anime",   256,  0, false,false, false],
  496.   "剧毒风暴"             => ["anime",   257,  0, false,false, false],
  497.   "真空刺"             => ["anime",   261,  0, false,false, false],
  498.   "真空刺2"             => ["anime",   258,  1, false,false, false],
  499.   "真空刺改"             => ["anime",   260,  0, false,false, false],
  500.   "真空刺改2"             => ["anime",   259,  0, false,false, false],
  501.   "雷暴2"             => ["anime",   36,  1, false,false, false],
  502.   "冰球"             => ["anime",   268,  0, false,false, false],
  503.   "冰球2"             => ["anime",   269,  1, false,false, false],
  504.   "高温激光枪"             => ["anime",   270,  0, false,false, false],
  505.   "高温激光枪2"             => ["anime",   271,  0, false,false, false],
  506.   "半月碎"             => ["anime",   273,  0, false,false, false],
  507.   "半月碎2"             => ["anime",   274,  0, false,false, false],
  508.   "半月碎3"             => ["anime",   275,  0, false,false, false],
  509.   "凯兰J"             => ["anime",   281,  0, false,false, false],
  510.   "丽娜J"             => ["anime",   282,  0, false,false, false],
  511.   "亚特J"             => ["anime",   283,  0, false,false, false],
  512.   "迪安J"             => ["anime",   284,  0, false,false, false],
  513.   "凯兰J2"             => ["anime",   285,  0, false,false, false],
  514.   "丽娜J2"             => ["anime",   286,  0, false,false, false],
  515.   "亚特J2"             => ["anime",   287,  0, false,false, false],
  516.   "迪安J2"             => ["anime",   288,  0, false,false, false],
  517.   "愤怒中的绝望"       => ["anime",   289,  0, false,false, false],
  518.   "炸裂神弓"       => ["anime",   290,  0, false,false, false],
  519.   "狂暴"       => ["anime",   291,  0, false,false, false],
  520.   "炸裂射击"       => ["anime",   292,  0, false,false, false],
  521.   "神圣之翼"       => ["anime",   293,  0, false,false, false],
  522.   "导力全开"       => ["anime",   294,  0, false,false, false],
  523.   "敌斩击"       => ["anime",   300,  1, false,false, false],
  524.   "敌斩击2"       => ["anime",   301,  1, false,false, false],
  525.   "敌斩击3"       => ["anime",   302,  1, false,false, false],
  526.   "敌斩击4"       => ["anime",   303,  1, false,false, false],
  527.   "敌斩击5"       => ["anime",   304,  1, false,false, false],
  528.   "敌斩击6"       => ["anime",   305,  1, false,false, false],
  529.   "敌斩击7"       => ["anime",   306,  1, false,false, false],
  530.   "斩击"       => ["anime",   315,  1, false,false, false],
  531.   "斩击2"       => ["anime",   316,  1, false,false, false],
  532.   "斩击3"       => ["anime",   317,  1, false,false, false],
  533.   "斩击4"       => ["anime",   310,  1, false,false, false],
  534.   "斩击5"       => ["anime",   319,  1, false,false, false],
  535.   "斩击6"       => ["anime",   320,  1, false,false, false],
  536.   "杀戮"       => ["anime",   323,  0, false,false, false],
  537.   "杀戮2"       => ["anime",   324,  0, false,false, false],
  538.   "杀戮3"       => ["anime",   325,  0, false,false, false],
  539.   "杀戮改"       => ["anime",   326,  0, false,false, false],
  540.   "杀戮改2"       => ["anime",   327,  0, false,false, false],
  541.   "杀戮改3"       => ["anime",   328,  0, false,false, false],
  542.   "背射"       => ["anime",   329,  0, false,false, false],
  543.   "背射2"       => ["anime",   330,  1, false,false, false],

  544. #--------------------------------------------------------------------------
  545. # ● アニメ飛ばし 戦闘アニメを飛ばします。飛び道具、遠距離攻撃用
  546. #--------------------------------------------------------------------------
  547.   # ID…データベースで設定されているアニメのID。0はアニメを非表示に。
  548.   # 対象…飛ばす対象 [0=ターゲット] [1=敵全体の中心] [2=味方全体の中心] [4=自身]
  549.   # タイプ…[0=当たって消える] [1=直線に貫通]
  550.   # 時間…アニメを飛ばす際の移動時間。大きいほど速度も遅い。
  551.   # 軌道…アニメを飛ばす際の軌道。数値を入れると曲線に。正が下、負が上軌道。
  552.   # 調X…微調整するX軸。飛ばす初期X座標が変化します。エネミーは自動で逆計算に。
  553.   # 調Y…微調整するY軸。飛ばす初期Y座標が変化します。
  554.   # 始…アニメを飛ばす際の開始位置。[0=自身] [1=対象] [2=移動させない]
  555.   # Z座標…アニメや武器をキャラより手前に表示するならtrue
  556.   # 武器…下の貼り付ける武器、スキルアクション名を入れます。利用しないなら""
  557.   
  558.   #                     判別   ID 対象 タイプ 時間  軌 調X 調Y 始 Z座標 武器
  559.   "魔法始動アニメ"  => ["m_a", 30,   4,  0,  52,   0,  0,  0, 2,false,""],
  560.   "火魔法始動アニメ"=> ["m_a", 214,   4,  0,  52,   0,  0,  0, 2,false,""],
  561.   "水魔法始動アニメ"=> ["m_a", 215,   4,  0,  52,   0,  0,  0, 2,false,""],
  562.   "暗魔法始動アニメ"=> ["m_a", 255,   4,  0,  52,   0,  0,  0, 2,false,""],
  563.   "対象から自身へ1" => ["m_a",  4,   0,  0,  24,   0,  0,  0, 1,false,""],
  564.   "武器投げ開始"    => ["m_a",  0,   0,  0,  18, -24,  0,  0, 0,false,"回転投げ"],
  565.   "武器投げ戻し"    => ["m_a",  0,   0,  0,  18,  24,  0,  0, 1,false,"回転投げ"],
  566.   "全体アニメ単体化"=> ["m_a", 80,   1,  0,  64,   0,  0,  0, 2, true,""],
  567.   
  568. #--------------------------------------------------------------------------
  569. # ● アニメ飛ばしに貼り付ける武器画像アクション 上のアニメ飛ばし専用
  570. #--------------------------------------------------------------------------
  571.   # 貼り付けた武器画像の動き。この画像は武器アクションの画像とは別に設定できます。
  572.   # その場合貼り付ける画像は武器設定で行ってください。
  573.   # 始度…動作前の最初の角度。半時計回りで0~360度。
  574.   # 終度…動作後の角度。半時計回りで0~360度。
  575.   # 時間…回転にかける時間。小さいほど早い。動作は消えるまでループし続けます。
  576.   
  577.   # 武器アクション名    始度 終度 時間
  578.   "回転投げ"     => [   0, 360,  8],
  579.   
  580. #--------------------------------------------------------------------------
  581. # ● アニメ飛ばしに貼り付けるスキル画像アクション 上のアニメ飛ばし専用
  582. #--------------------------------------------------------------------------
  583.   # 貼り付けたスキル画像の動き。貼り付ける画像はスキル設定で行ってください。
  584.   # 始度…動作前の最初の角度。半時計回りで0~360度。
  585.   # 終度…動作後の角度。半時計回りで0~360度。
  586.   # 時間…回転にかける時間。小さいほど早い。動作は消えるまでループし続けます。
  587.   # 判別…判別に使うので、すべて"skill"で統一してください。
  588.   
  589.   # 武器アクション名    始度 終度 時間 判別
  590.   "石投げ"       => [   0, 360,  8, "skill"],
  591.   
  592. #--------------------------------------------------------------------------
  593. # ● ふきだしアニメ イベントに使うふきだしアイコンを表示
  594. #--------------------------------------------------------------------------
  595.   # 判別…判別に使うので、すべて"balloon"で統一してください。
  596.   # 種類…ふきだしの種類(縦位置)を0~9で指定
  597.   # ループ…アニメ更新方法で、終了すると消えます。[0=片道] [1=往復]
  598.   
  599.   # ふきだし名         判別     種類 ループ
  600.   "状態異常/汎用"   => ["balloon",   6,  1],
  601.   "状態異常/ピンチ" => ["balloon",   5,  1],
  602.   "状態異常/睡眠"   => ["balloon",   9,  1],
  603.   "状態異常/中毒"   => ["balloon",   1,  1],
  604.   "状態異常/烧伤"   => ["balloon",   3,  1],
  605.   "状態異常/眩晕"   => ["balloon",   0,  1],
  606.   "状態異常/冰冻"   => ["balloon",   4,  1],
  607.   "状態異常/出血"   => ["balloon",   2,  1],
  608.   
  609. #--------------------------------------------------------------------------
  610. # ● サウンドの演奏
  611. #--------------------------------------------------------------------------
  612.   # 判別…判別に使うので、すべて"sound"で統一してください。
  613.   # 種別…効果音は"se"  BGMは"bgm"  BGSは"bgs"
  614.   # ピッチ…ピッチ、50~150まで指定。音量…ボリューム どちらも100がデフォルト。
  615.   # ファイル名…再生するファイル名。""にするとBGM、BGSを変えずに各種設定可能。
  616.   
  617.   #   SE名              判別   種別 ピッチ 音量  SEファイル名
  618.   "absorb1"       => ["sound", "se",  80, 100, "absorb1"],
  619.   
  620. #--------------------------------------------------------------------------
  621. # ● ゲーム全体のスピード変更  アクションの細部チェック用
  622. #--------------------------------------------------------------------------
  623.   # 判別…判別に使うので、すべて"fps"で統一してください。
  624.   # ゲームスピード…60がデフォルトで、低くなるほどスローになります。 
  625.   # ※このコマンドはFPSを直接変更するものです。取り扱いには注意してください。
  626.   #  またタイマーカウント、ゲーム内時間もその分ズレることになります。
  627.   
  628.   # 変更名           判別  ゲームスピード
  629.   "スロー再生"   => ["fps",  20],
  630.   "通常再生に"   => ["fps",  60],
  631.   
  632. #--------------------------------------------------------------------------
  633. # ● ステート付与
  634. #--------------------------------------------------------------------------
  635.   # 判別…判別に使うので、すべて"sta+"で統一してください。
  636.   # 対象…[0=自分] [1=ターゲット] [2=敵全体] [3=味方全体] [4=自分を除く味方全体]
  637.   # ステートID…付与するステートのID。「抵抗しない」ステート以外は抵抗します。
  638.   
  639.   # ステート付与名           判別  対象  ステートID
  640.   "二人攻撃ステート付与" => ["sta+",  0,  18],
  641.   "四人攻撃ステート付与" => ["sta+",  0,  19],
  642.   "neko"                 => ["sta+",  0,  20],
  643.   
  644. #--------------------------------------------------------------------------
  645. # ● ステート解除
  646. #--------------------------------------------------------------------------
  647.   # 判別…判別に使うので、すべて"sta-"で統一してください。
  648.   # 対象…[0=自分] [1=ターゲット] [2=敵全体] [3=味方全体] [4=自分を除く味方全体]
  649.   # ステートID…解除するステートのID
  650.   
  651.   # ステート付与名           判別  対象  ステートID
  652.   "二人攻撃ステート解除" => ["sta-",  3,  18],
  653.   "四人攻撃ステート解除" => ["sta-",  3,  19],

  654. #--------------------------------------------------------------------------
  655. # ● バトラー画像ファイル変更  自身のみアクター限定
  656. #--------------------------------------------------------------------------
  657.   # 判別…判別に使うので、すべて"change"で統一してください。
  658.   # リセット…戦闘後も変更を反映させるならfalse。キャラチップも変わります。
  659.   # ファイル名…変更する画像ファイル名。認識先を変えるので"_1"は指定しないように。
  660.   
  661.   # 変更名               判別   リセット  ファイル名
  662.   "ネコに変身"    => ["change", true,"!$怪物38"],
  663.   "沙漠风暴专用"    => ["change", true,"!$沙漠风暴专用"],
  664.   "沙漠风暴专用2"    => ["change", true,"!$沙漠风暴专用2"],
  665.   "変身解除"      => ["change", true,"$ラルフ"],
  666.   "沙漠风暴专用3"      => ["change", true,"!$主角12"],
  667.   "空白"      => ["change", true,"无标题-1"],
  668.   "变身解除2"      => ["change", true,"!$主角2"],
  669.   "变身解除3"      => ["change", true,"!$主角1"],
  670.   
  671. #--------------------------------------------------------------------------
  672. # ● ピクチャの表示 バトラー一体につき同時に1枚表示できます
  673. #--------------------------------------------------------------------------
  674.   # 始X…移動開始位置。画面から見たX座標。ピクチャの左上を原点とします。
  675.   # 始Y…移動開始位置。画面から見たY座標。
  676.   # 終X…移動終了X座標。
  677.   # 終Y…移動終了Y座標。
  678.   # 時間…移動時間。大きいほど遅い。これを距離で割ったのが1フレーム移動距離です。
  679.   # Z軸…HPウインドウよりも手前に表示するならtrue
  680.   # ピクチャファイル名…ピクチャフォルダ内のファイル名。

  681.   #                       判別   始X  始Y  終X  終Y 時間  Z軸 ピクチャファイル名
  682.   "カットイン1始"     => ["pic",-280,  48,   0,  64, 14,false,"Actor2-3"],
  683.   "カットイン1終"     => ["pic",   0,  48, 550,  64, 12,false,"Actor2-3"],
  684.   
  685. #--------------------------------------------------------------------------
  686. # ● ゲームスイッチの操作
  687. #--------------------------------------------------------------------------
  688.   # 判別…判別に使うので、すべて"switch"で統一してください。
  689.   # スイッチNo…何番のスイッチを操作するか
  690.   # ON/OFF…ONにするならtrue、OFFにするならfalse
  691.   #
  692.   # スイッチ操作名          判別   スイッチNo ON/OFF   
  693.   "スイッチNo1/ON"    => ["switch",   1,  true],
  694.   
  695. #--------------------------------------------------------------------------
  696. # ● ゲーム変数の操作
  697. #--------------------------------------------------------------------------
  698.   # 判別…判別に使うので、すべて"variable"で統一してください。
  699.   # 変数No…何番の変数を操作するか
  700.   # 操作…[0=代入] [1=加算] [2=減算] [3=乗算] [4=除算] [5=剰余]
  701.   # オペランド…演算の対象となる数値を指定します。
  702.   #
  703.   # 変数操作名           判別     変数No 操作 オペランド
  704.   "変数No1/+1"       => ["variable",   1,   1,    1],
  705.   
  706. #--------------------------------------------------------------------------
  707. # ● その他 設定項目なし。ここで使われている名称は変更しないでください。
  708. #--------------------------------------------------------------------------
  709.   # ピクチャ消去…表示しているピクチャを消します。
  710.   # 残像ON…バトラーの軌跡に残像を残します。通しアクション中は残像し続けます。
  711.   # 残像OFF…残像を消します。
  712.   # 反転…画像を反転します。再度反転させるか座標リセットしない限り反転したまま。
  713.   # 待機に移行しない…行動後、待機アクションを取らせません。
  714.   # コラプス許可…ターゲットのHPが0になった場合、このタイミングでコラプスを
  715.   #               開始させます。これがなければアクション終了時にコラプスします。
  716.   # 二刀限定…この次の単発アクションのみ、二刀限定で行うようにします。
  717.   #           二刀でなければ処理を飛ばし、次の単発アクションに移行します。
  718.   # 非二刀限定…上とは逆に二刀ではないときのみ次の単発アクションを有効にします。
  719.   # 個別処理開始…全体攻撃を個別で処理する場合の、リピート行動開始の目印です。
  720.   # 個別処理終了…全体攻撃を個別で処理する場合の、リピート行動終了の目印です。
  721.   # 初期位置変更…元の座標(初期位置)を今いる位置に変更します。
  722.   # 初期位置変更解除…初期位置変更で変化した座標を元に戻します。
  723.   # アクティブ解除…戦闘行動が終了したとみなし、直後に次のキャラが行動開始します。
  724.   #                 コラプス許可機能も含んでおり、これ以降ダメージは与えられません。
  725.   # 終了…行動の終了。これは入れなくてもアクションがなくなれば自動で認識します。
  726.   
  727.   "ピクチャ消去"    => ["ピクチャ消去"],
  728.   "残像ON"          => ["残像ON"],
  729.   "残像OFF"         => ["残像OFF"],
  730.   "反転"            => ["反転"],
  731.   "待機に移行しない"=> ["待機に移行しない"],
  732.   "コラプス許可"    => ["コラプス許可"],
  733.   "二刀限定"        => ["二刀限定"],
  734.   "非二刀限定"      => ["非二刀限定"],
  735.   "個別処理開始"    => ["個別処理開始"],
  736.   "個別処理終了"    => ["個別処理終了"],
  737.   "初期位置変更"    => ["初期位置変更"],
  738.   "初期位置変更解除"=> ["初期位置変更解除"],
  739.   "アクティブ解除"  => ["アクティブ解除"],
  740.   "終了"            => ["終了"]
  741.   
  742. #--------------------------------------------------------------------------
  743. # ● ウエイトについて
  744. #--------------------------------------------------------------------------
  745.   # 単発アクションで数値のみの場合、それがそのままウエイト時間となります。
  746.   # つまり単発アクション名に数値のみの名称は使えないので注意してください。
  747.   # ウエイトは次のアクションに行かずに待つ時間ですが、バトラーアニメの更新は
  748.   # 止まらずに行われます。
  749.   
  750.   }
  751. #==============================================================================
  752. # ■ 通しアクション
  753. #------------------------------------------------------------------------------
  754. #  上の単発アクションを組み合わせたもので、これが実際に取る行動となります
  755. #==============================================================================
  756.   # ここの通しアクション名が下のアクター、エネミー指定アクションに使われます。
  757.   # 行動は左側から順番に行われます。
  758.   ACTION = {
  759. #------------------------------- 待機系 -----------------------------------------  
  760.   # 通しアクション名     行動
  761.   
  762.   "戦闘開始"          => ["戦闘開始前の位置へ","座標リセット"],
  763.                           
  764.   "待機"              => ["待機"],
  765.                           
  766.   "ピンチ待機"        => ["移動しない","待機(固定)","状態異常/ピンチ","22"],
  767.                           
  768.   "状態異常待機"      => ["移動しない","待機(固定)","状態異常/汎用","22"],
  769.                           
  770.   "睡眠待機"          => ["移動しない","待機(固定)","状態異常/睡眠","22"],
  771.                           
  772.   "浮遊待機"          => ["待機(固定)","6","低空浮遊中","4",
  773.                           "低空浮遊中2","4","低空浮遊中3","4",
  774.                           "低空浮遊中4","4"],
  775.                         
  776.   "出血待机"          => ["移動しない","待機(固定)","状態異常/出血","22"],
  777.   
  778.   "眩晕待机"          => ["移動しない","待機(固定)","状態異常/眩晕","22"],  
  779.   
  780.   "中毒待机"          => ["移動しない","待機(固定)","状態異常/中毒","22"],  
  781.   
  782.   "烧伤待机"          => ["移動しない","待機(固定)","状態異常/烧伤","22"],  

  783.   "冰冻待机"          => ["移動しない","待機(固定)","状態異常/冰冻","22"],

  784.   "怒绝"              => ["待機(固定)","愤怒中的绝望","22"],

  785.   "炸裂神弓"              => ["待機(固定)","炸裂神弓","22"],
  786.   
  787.   "狂暴"              => ["待機(固定)","狂暴","22"],
  788.   
  789.   "炸裂射击"              => ["待機(固定)","炸裂射击","22"],
  790.   
  791.   "神圣之翼"              => ["待機(固定)","神圣之翼","50"],
  792.   
  793.   "导力全开"              => ["待機(固定)","导力全开","22"],
  794.                           
  795.   "気絶"              => ["倒れたまま","戦闘不能"],
  796.                           
  797.   "ダメージ"          => ["被ダメージ","座標リセット"],
  798.                           
  799.   "逃走"              => ["味方逃走"],
  800.                           
  801.   "エネミー逃走"      => ["味方逃走","座標リセット"],
  802.                           
  803.   "逃走失敗"          => ["逃走失敗","待機(固定)","8","座標リセット"],
  804.                           
  805.   "コマンド入力"      => ["一歩前移動"],
  806.                           
  807.   "コマンド入力後"    => ["座標リセット"],
  808.                           
  809.   "防御"              => ["待機(固定)","4","浮遊ステート確認","低空浮遊中",
  810.                           "2","低空浮遊中2","2","低空浮遊中3","2",
  811.                           "低空浮遊中4","2"],
  812.                           
  813.   "回避"              => ["一歩後ジャンプ","一歩後ジャンプ","待機(固定)","16",
  814.                           "座標リセット"],
  815.                           
  816.   "エネミー回避"      => ["一歩後ジャンプ","待機(固定)","16","座標リセット"],
  817.                           
  818.   "勝利"              => ["待機(固定)","16","右向き(固定)","勝利のジャンプ",
  819.                           "待機(固定)","待機に移行しない","ネコに変身してるか",
  820.                           "変身解除","待機(固定)","待機に移行しない",],
  821.                           
  822.   "座標復帰"          => ["座標リセット"],
  823.                           
  824. #------------------------------- 強制系 ----------------------------------------                          
  825.                           
  826.   "ウルリカ合体攻撃1" => ["2","目標左前移動","待機(固定)",
  827.                           "魔法始動アニメ","武器回し下","武器掲げ",
  828.                           "48","右払い抜け","64","後退リセット"],
  829.                           
  830.   "四人合体攻撃1"     => ["2","四人攻撃移動2","待機(固定)","魔法始動アニメ",
  831.                           "武器回し下","武器掲げ","90",
  832.                           "左払い抜け","96","後退リセット"],
  833.                           
  834.   "四人合体攻撃2"     => ["2","四人攻撃移動3","待機(固定)","魔法始動アニメ",
  835.                           "武器回し下","武器掲げ","60","右払い抜け2","右回し",
  836.                           "対象アニメ","128","後退リセット"],
  837.                           
  838.   "四人合体攻撃3"     => ["2","四人攻撃移動4","待機(固定)","魔法始動アニメ",
  839.                           "武器回し下","武器掲げ","34","左払い抜け2","右回し",
  840.                           "対象アニメ","144","後退リセット"],
  841.                           
  842.   "投げつけられる"    => ["右回り1回転","4","目標高速移動","一歩後ジャンプ","4",
  843.                           "待機(固定)","一歩後ジャンプ","待機(固定)","32"],
  844.                           
  845. #--------------------------- 基本アクション系 ----------------------------------
  846.   
  847.   "通常攻撃"          => ["目標前移動","武器振り攻撃","対象アニメウエイト",
  848.                           "1","武器振り攻撃L","対象アニメL","二刀限定","16",
  849.                           "コラプス許可","後退リセット"],
  850.                           
  851.   "敵武器なし攻撃"    => ["10","目標前移動","武器振り攻撃","対象アニメウエイト",
  852.                           "コラプス許可","後退リセット"],
  853.                           
  854.   "汎用スキル使用"    => ["一歩前移動","待機(固定)","魔法始動アニメ",
  855.                           "武器回し下","武器掲げ","武器振り攻撃",
  856.                           "対象アニメウエイト","コラプス許可","24","座標リセット"],
  857.                           
  858.   "汎用スキル個別処理"=> ["一歩前移動","魔法始動アニメ","武器回し下","武器掲げ",
  859.                           "個別処理開始","武器振り攻撃","対象アニメ","24",
  860.                           "個別処理終了","コラプス許可","座標リセット"],
  861.                           
  862.   "アイテム使用"      => ["目標前移動","待機(固定)","24","対象アニメウエイト",
  863.                           "コラプス許可","座標リセット"],
  864.                           
  865. #------------------------------ スキル系 ---------------------------------------                          
  866.   
  867.   "多段攻撃"          => ["前ジャンプ叩き","武器振り攻撃L","対象アニメ武器",
  868.                           "待機(固定)","16","対象アニメ武器","武器回し下",
  869.                           "武器回し上","4","その場ジャンプ叩き","武器振り攻撃L",
  870.                           "対象アニメ武器","待機(固定)","16","対象アニメ武器",
  871.                           "反転","武器振り攻撃","武器振り攻撃L","12","反転",
  872.                           "その場ジャンプ叩き","武器振り攻撃L","対象アニメ武器",
  873.                           "一歩後ジャンプ","一歩後ジャンプ","待機(固定)",
  874.                           "対象アニメ武器","払い抜け","武器振り攻撃L","コラプス許可",
  875.                           "残像OFF","16","後退リセット"],
  876.                           
  877.   "多段攻撃ランダム用"=> ["前ジャンプ叩き","武器振り攻撃L","斩击3","対象アニメウエイト","待機(固定)","16",
  878.                           "前ジャンプ叩き","武器振り攻撃L","斩击3","対象アニメウエイト","待機(固定)","16",
  879.                           "前ジャンプ叩き","武器振り攻撃L","斩击3","対象アニメウエイト","待機(固定)","16",
  880.                           "前ジャンプ叩き","武器振り攻撃L","斩击3","対象アニメウエイト","20","コラプス許可","座標リセット"],
  881.                           
  882.   "2段攻撃ランダム用"=> ["前ジャンプ叩き","斩击","対象アニメウエイト",
  883.                          "前ジャンプ叩き","斩击","対象アニメウエイト","一歩後ジャンプ","一歩後ジャンプ","待機(固定)","10",
  884.                         "対象アニメウエイト", "斩击2","払い抜け","小吹き飛ばし","武器振り攻撃L","18","コラプス許可","座標リセット"],
  885.                         
  886.   "高速多段攻撃"      => ["残像ON","前ジャンプ叩き","対象アニメ武器","武器振り攻撃L",
  887.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  888.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  889.                           "一歩後ジャンプ",
  890.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  891.                           "対象アニメ武器","払い抜け","武器振り攻撃L","コラプス許可",
  892.                           "一歩後ジャンプ",
  893.                           "コラプス許可","残像OFF","座標リセット"],
  894.    
  895.    "重击"      =>        ["前ジャンプ叩き","対象アニメウエイト","武器振り攻撃L","待機(固定)",
  896.                           "コラプス許可","12","座標リセット"],
  897.                           
  898.    "突刺"      =>        ["目標前移動","払い抜け","対象アニメ武器","突刺","5","武器振り攻撃L","待機(固定)",
  899.                           "コラプス許可","12","座標リセット"],                        
  900.                           
  901.    "毁灭残影"      =>     ["毁灭残影","目標前高速移動","残像ON","移动目标身后","反転","待機(固定)","5",
  902.                           "后跳攻击","毁灭残影2","対象アニメウエイト","武器振り攻撃L",
  903.                           "武器振り攻撃","一歩後ジャンプ","一歩後ジャンプ","払い抜け","小吹き飛ばし",
  904.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","毁灭残影2","対象アニメウエイト",
  905.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","毁灭残影2","対象アニメウエイト",
  906.                           "一歩後ジャンプ","一歩後ジャンプ","待機(固定)",
  907.                           "毁灭残影2","対象アニメウエイト","払い抜け","武器振り攻撃L","コラプス許可",
  908.                           "コラプス許可","反転","座標リセット"],                        
  909.                           
  910.   "高速99段攻撃"      => ["残像ON","待機(固定)","魔法始動アニメ","カットイン1始",
  911.                           "75","カットイン1終","8",
  912.                           
  913.                           "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  914.                           
  915.                           "ジャンプ停止","個別処理開始",
  916.                           "標的を自身に","武器振り攻撃","着弾1","8",
  917.                           "対象アニメ武器","個別処理終了",
  918.                           "ジャンプ着地","座標リセット",
  919.                           
  920.                           "前ジャンプ叩き","対象アニメ武器",
  921.                           
  922.                           "武器振り攻撃L","対象アニメ武器",
  923.                           
  924.                           "武器振り攻撃","対象アニメ武器",
  925.                           
  926.                           "前ジャンプ叩き","対象アニメ武器",
  927.                           
  928.                           "武器振り攻撃","対象アニメ武器",
  929.                           
  930.                         "標的を自身に","対象アニメウエイト","対象アニメ武器",
  931.                           
  932.                          "武器振り攻撃","対象アニメ武器",
  933.                           
  934.                           "着弾1","20","対象アニメウエイト","対象アニメ武器",
  935.                           
  936.                           "武器振り攻撃","対象アニメ武器",
  937.                   
  938.                          "武器振り攻撃L","対象アニメ武器",
  939.                         
  940.                         "前ジャンプ叩き","対象アニメ武器",
  941.                         
  942.                       "反転",  "武器振り攻撃","対象アニメ武器",
  943.                         
  944.                         "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  945.                         
  946.                         "武器振り攻撃","対象アニメ武器",
  947.                         
  948.                          "武器振り攻撃","対象アニメ武器",
  949.                         
  950.                          "標的を自身に","対象アニメウエイト","対象アニメ武器",
  951.                         
  952.                          "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  953.                         
  954.                          "武器振り攻撃","対象アニメ武器",
  955.                         
  956.                          "武器振り攻撃","対象アニメ武器",
  957.                         
  958.                          "標的を自身に","対象アニメウエイト","対象アニメ武器",
  959.                         
  960.                  "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  961.                   
  962.                  "着弾1","20","対象アニメウエイト","対象アニメ武器",
  963.                   
  964.                 "反転", "前ジャンプ叩き","対象アニメ武器",
  965.                   
  966.                   "武器振り攻撃","対象アニメ武器",
  967.                   
  968.                   "武器振り攻撃","対象アニメ武器",
  969.                   
  970.                 "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  971.                   
  972.                  "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  973.                   
  974.                   "武器振り攻撃","対象アニメ武器",
  975.                   
  976.                 "着弾1","20","対象アニメウエイト","対象アニメ武器",
  977.                   
  978.                  "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  979.                   
  980.                  "武器振り攻撃","対象アニメ武器",
  981.                   
  982.                   "武器振り攻撃L","対象アニメ武器",
  983.                   
  984.                   "前ジャンプ叩き","対象アニメ武器",
  985.                   
  986.                    "武器振り攻撃","対象アニメ武器",
  987.                   
  988.                   "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  989.                   
  990.                 "標的を自身に","対象アニメウエイト","対象アニメ武器",
  991.                   
  992.                  "前ジャンプ叩き","対象アニメ武器",
  993.                   
  994.                  "武器振り攻撃","対象アニメ武器",
  995.                   
  996.                  "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  997.                   
  998.                   "着弾1","20","対象アニメウエイト","対象アニメ武器",
  999.                   
  1000.                   "前ジャンプ叩き","対象アニメ武器",
  1001.                   
  1002.                   "武器振り攻撃","対象アニメ武器",
  1003.                   
  1004.                  "武器振り攻撃L","対象アニメ武器",
  1005.                   
  1006.                  "反転", "前ジャンプ叩き","対象アニメ武器",
  1007.                   
  1008.                   "武器振り攻撃","対象アニメ武器",
  1009.                   
  1010.                  "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  1011.                   
  1012.                   "着弾1","20","対象アニメウエイト","対象アニメ武器",
  1013.                   
  1014.                   "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  1015.                   
  1016.                  "着弾1","20","対象アニメウエイト","対象アニメ武器",
  1017.                   
  1018.                   "前ジャンプ叩き","対象アニメ武器",
  1019.                   
  1020.                "武器振り攻撃","対象アニメ武器",
  1021.                   
  1022.                  "反転", "前ジャンプ叩き","対象アニメ武器",
  1023.                   
  1024.                  "武器振り攻撃","対象アニメ武器",
  1025.                   
  1026.                  "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  1027.                           
  1028.                        "前ジャンプ叩き","対象アニメ武器",
  1029.                           
  1030.                         "武器振り攻撃L","対象アニメ武器",
  1031.                   
  1032.                   "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  1033.                   
  1034.                 "着弾1","20","対象アニメウエイト","対象アニメ武器",
  1035.                   
  1036.                   "前ジャンプ叩き","対象アニメ武器",
  1037.                   
  1038.                 "武器振り攻撃","対象アニメ武器",
  1039.                   
  1040.                 "反転",  "前ジャンプ叩き","対象アニメ武器",
  1041.                   
  1042.                   "武器振り攻撃","対象アニメ武器",
  1043.                   
  1044.                    "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  1045.                   
  1046.                    "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  1047.                   
  1048.                    "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  1049.                   
  1050.                    "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  1051.                   
  1052.                    "武器振り攻撃","absorb1","待機(固定)","武器投げ開始","12","対象アニメ武器",
  1053.                   
  1054.                  "反転",  "前ジャンプ叩き","対象アニメ武器",
  1055.                    "前ジャンプ叩き","対象アニメ武器",
  1056.                    "前ジャンプ叩き","対象アニメ武器",
  1057.                    "前ジャンプ叩き","対象アニメ武器",
  1058.                    "前ジャンプ叩き","対象アニメ武器",
  1059.                    "前ジャンプ叩き","対象アニメ武器",
  1060.                    "前ジャンプ叩き","対象アニメ武器",
  1061.                    "前ジャンプ叩き","対象アニメ武器",
  1062.                    "前ジャンプ叩き","対象アニメ武器",
  1063.                   
  1064.                    "対象アニメ武器", "払い抜け","小吹き飛ばし","武器振り攻撃L",
  1065.                   
  1066.                    "反転", "対象アニメ武器", "右穿","小吹き飛ばし","武器振り攻撃L",
  1067.                   
  1068.                   "反転", "対象アニメ武器", "払い抜け","小吹き飛ばし","武器振り攻撃L",
  1069.                   
  1070.                    "反転", "対象アニメ武器", "右穿","小吹き飛ばし","武器振り攻撃L",
  1071.                   
  1072.                   
  1073.                    "対象アニメ武器", "払い抜け","小吹き飛ばし","武器振り攻撃L",
  1074.                   
  1075.                    "反転", "対象アニメ武器", "右穿","小吹き飛ばし","武器振り攻撃L",
  1076.                   
  1077.                   "反転", "対象アニメ武器", "払い抜け","小吹き飛ばし","武器振り攻撃L",
  1078.                   
  1079.                    "反転", "対象アニメ武器", "右穿","小吹き飛ばし","武器振り攻撃L",
  1080.                   
  1081.                   
  1082.                    "対象アニメ武器", "払い抜け","小吹き飛ばし","武器振り攻撃L",
  1083.                   
  1084.                    "反転", "対象アニメ武器", "右穿","小吹き飛ばし","武器振り攻撃L",
  1085.                   
  1086.                   "反転", "対象アニメ武器", "払い抜け","小吹き飛ばし","武器振り攻撃L",
  1087.                   
  1088.                    "反転", "対象アニメ武器", "右穿","小吹き飛ばし","武器振り攻撃L","反転",
  1089.                   
  1090.                   "ジャンプ停止","個別処理開始",
  1091.                           "標的を自身に","武器振り攻撃","着弾1","8",
  1092.                           "対象アニメ武器","個別処理終了",
  1093.                           "ジャンプ着地","座標リセット",
  1094.                           
  1095.                           "コラプス許可",
  1096.                           "16","残像OFF","12","座標リセット",],                    
  1097.                           
  1098.      "弓箭"           => ["一歩前移動","待機(固定)","武器回し下","弩发射","5",
  1099.                            "対象アニメウエイト","コラプス許可","10","座標リセット"],
  1100.                            
  1101.      "弩"           => ["一歩前移動","待機(固定)","武器回し下","弩发射2","5",
  1102.                            "対象アニメウエイト","コラプス許可","10","座標リセット"],
  1103.   
  1104.      "枪"           => ["一歩前移動","待機(固定)","武器回し下","枪击中",
  1105.                         "対象アニメウエイト","コラプス許可","10","座標リセット"],
  1106.                         
  1107.      "光箭"           => ["一歩前移動","待機(固定)","武器回し下","光箭","5",
  1108.                            "対象アニメウエイト","コラプス許可","10","座標リセット"],
  1109.                            
  1110.      "魔导"           => ["5","待機(固定)","武器振り攻撃","5",
  1111.                            "対象アニメウエイト","コラプス許可","10","座標リセット"],
  1112.                           
  1113.   "二人同時攻撃"      => ["二人攻撃条件確認","二人攻撃目標統一","ウルリカと攻撃",
  1114.                           "目標右前移動","待機(固定)","魔法始動アニメ","武器回し下",
  1115.                           "武器掲げ","48","斬撃/必殺技2","左払い抜け","64","対象アニメ",
  1116.                           "コラプス許可","後退リセット","二人攻撃ステート解除"],
  1117.                           
  1118.   "二人同時攻撃準備"  => ["二人攻撃ステート付与"],  
  1119.                           
  1120.   "四人同時攻撃"      => ["四人攻撃条件確認","四人攻撃目標統一","四人で攻撃1",
  1121.                           "四人で攻撃2","四人で攻撃3","四人攻撃移動1","待機(固定)",
  1122.                           "魔法始動アニメ","武器回し下","武器掲げ","90",
  1123.                           "斬撃/必殺技1","右払い抜け","64","対象アニメウエイト",
  1124.                           "コラプス許可","後退リセット","合体攻撃解除"],
  1125.                           
  1126.   "四人同時攻撃準備"  => ["四人攻撃ステート付与"],
  1127.                           
  1128.   "武器投げ"          => ["一歩前移動","武器振り攻撃","Bow2","待機(固定)",
  1129.                           "武器投げ開始","12","対象アニメ武器","コラプス許可",
  1130.                           "武器投げ戻し","座標リセット"],
  1131.                           
  1132.   "個別全体遠距離攻撃"=> ["一歩前ジャンプ","ジャンプ停止","個別処理開始",
  1133.                           "標的を自身に","武器振り攻撃","着弾1","8",
  1134.                           "対象アニメ武器","個別処理終了","コラプス許可",
  1135.                           "ジャンプ着地","座標リセット"],
  1136.                           
  1137.   "全体遠距離攻撃"    => ["標的を自身に","武器振り攻撃","着弾1","20",
  1138.                           "対象アニメウエイト","コラプス許可"],
  1139.                         
  1140.   "ヒールに派生"      => ["目標前移動","対象アニメ","武器振り攻撃",
  1141.                           "16","ヒールに派生","座標リセット"],
  1142.                           
  1143.   "適当に派生"        => ["逃走失敗","魔法始動アニメ","武器回し下","武器掲げ",
  1144.                           "8","対象アニメ","適当に派生","座標リセット"],
  1145.                           
  1146.   "カットイン"        => ["待機(固定)","魔法始動アニメ","カットイン1始",
  1147.                           "75","カットイン1終","8","目標前移動",
  1148.                           "武器振り攻撃","対象アニメウエイト","コラプス許可",
  1149.                           "ピクチャ消去","後退リセット"],
  1150.                           
  1151.   "踏み潰し"          => ["目標にジャンプ","打撃アニメ","縦にぺしゃんこ","一歩後ジャンプ",
  1152.                           "踏みつけ","打撃アニメ","縦にぺしゃんこ","一歩後ジャンプ",
  1153.                           "踏みつけ","対象アニメ","縦にぺしゃんこ","一歩後ジャンプ",
  1154.                           "一歩後ジャンプ","コラプス許可","待機(固定)","8","後退リセット"],
  1155.                           
  1156.   "全体攻撃1"         => ["一歩前移動","待機(固定)","魔法始動アニメ","武器回し下",
  1157.                           "武器掲げ","全体アニメ単体化","武器振り攻撃","48",
  1158.                           "対象アニメウエイト","コラプス許可","座標リセット"],
  1159.                           
  1160.   "ネコに変身"        => ["一歩前ジャンプ","待機(固定)","魔法始動アニメ","32",
  1161.                           "ネコに変身","待機(固定)","neko","32","一歩後ジャンプ"],                     
  1162.                           
  1163.   "味方投げつけ"      => ["投げる相手選択","目標移動","味方持ち上げ","4",
  1164.                           "absorb1","投げつけ目標セット","味方投げ飛ばし",
  1165.                           "味方投げ","待機(固定)","対象アニメ","座標リセット",
  1166.                           "待機(固定)","32"],
  1167.   "高速多段攻撃2"      => ["残像ON","前ジャンプ叩き","対象アニメウエイト","武器振り攻撃L",
  1168.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","飓风刹2","対象アニメウエイト",
  1169.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","飓风刹2","対象アニメウエイト",
  1170.                           "一歩後ジャンプ",
  1171.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","飓风刹2","対象アニメウエイト",
  1172.                           "飓风刹2","対象アニメウエイト","払い抜け","武器振り攻撃L","コラプス許可",
  1173.                           "一歩後ジャンプ",
  1174.                           "コラプス許可","残像OFF","座標リセット"],
  1175.                           
  1176.   "高速多段攻撃3"     => ["残像ON","前ジャンプ叩き","対象アニメ武器","武器振り攻撃L",
  1177.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1178.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1179.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1180.                          "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1181.                          "一歩後ジャンプ","一歩後ジャンプ",
  1182.                          "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1183.                          "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1184.                          "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1185.                          "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1186.                          "一歩後ジャンプ","一歩後ジャンプ",
  1187.                          "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1188.                          "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1189.                          "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1190.                          "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1191.                          "一歩後ジャンプ","一歩後ジャンプ",
  1192.                          "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1193.                          "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1194.                          "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1195.                          "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1196.                          "対象アニメ武器","払い抜け","武器振り攻撃L","コラプス許可",
  1197.                          "一歩後ジャンプ",
  1198.                          "コラプス許可","残像OFF","座標リセット"],
  1199.   "高速多段攻撃4"     => ["残像ON","前ジャンプ叩き","対象アニメ武器","武器振り攻撃L",
  1200.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1201.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1202.                           "后跳攻击",
  1203.                            "一歩後ジャンプ","一歩後ジャンプ",
  1204.                           "対象アニメ武器","払い抜け","武器振り攻撃L","コラプス許可",
  1205.                           "コラプス許可","残像OFF","12","座標リセット"],
  1206.   "高速多段攻撃5"     => ["残像ON","前ジャンプ叩き","対象アニメ武器","武器振り攻撃L",
  1207.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1208.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1209.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1210.                           "一歩後ジャンプ","一歩後ジャンプ","待機(固定)",
  1211.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1212.                           "一歩後ジャンプ","一歩後ジャンプ","待機(固定)",
  1213.                           "対象アニメ武器","払い抜け","武器振り攻撃L","コラプス許可",
  1214.                           "コラプス許可","残像OFF","12","座標リセット"],
  1215.   "悬空破"     => ["残像ON","前ジャンプ叩き","银刃","対象アニメウエイト","武器振り攻撃L",                 
  1216.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1217.                   "银刃","対象アニメウエイト","払い抜け","武器振り攻撃L","コラプス許可",
  1218.                   "コラプス許可","残像OFF","12","座標リセット"],
  1219.   "碎空绝"     => ["前ジャンプ叩き","対象アニメ武器","武器振り攻撃L",
  1220.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1221.                   "武器振り攻撃","武器振り攻撃L",
  1222.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1223.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1224.                   "対象アニメ武器","武器振り攻撃L","コラプス許可",
  1225.                   "コラプス許可","残像OFF","12","座標リセット"],
  1226.   "骑士剑法"   => ["前ジャンプ叩き","対象アニメ武器",
  1227.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1228.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1229.                   "一歩後ジャンプ","目標前高速移動","武器振り攻撃L",
  1230.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1231.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1232.                   "一歩後ジャンプ",
  1233.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1234.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1235.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1236.                   "一歩後ジャンプ",
  1237.                    "対象アニメ武器","払い抜け","武器振り攻撃L","コラプス許可",
  1238.                   "コラプス許可","12","座標リセット"],
  1239.   "骑士剑法2"   => ["残像ON","前ジャンプ叩き","対象アニメ武器",
  1240.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1241.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1242.                   "一歩後ジャンプ","目標前高速移動","武器振り攻撃L",
  1243.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1244.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1245.                   "一歩後ジャンプ",
  1246.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1247.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1248.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1249.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1250.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1251.                   "一歩後ジャンプ",
  1252.                   "対象アニメ武器","払い抜け","武器振り攻撃L","コラプス許可",
  1253.                   "コラプス許可","12","座標リセット","残像OFF",],

  1254.   "碎空绝2"     => ["残像ON","前ジャンプ叩き","対象アニメ武器","武器振り攻撃L",
  1255.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1256.                   "武器振り攻撃","武器振り攻撃L",
  1257.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1258.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1259.                   "一歩後ジャンプ",
  1260.                   "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1261.                   "対象アニメ武器","払い抜け","武器振り攻撃L","コラプス許可",
  1262.                   "一歩後ジャンプ",
  1263.                   "コラプス許可","残像OFF","座標リセット"],
  1264.                   
  1265.    "突刺2"      => ["目標前移動","払い抜け","対象アニメ武器","武器振り攻撃L",
  1266.                    "一歩後ジャンプ",   
  1267.                    "目標前移動","払い抜け","対象アニメ武器","武器振り攻撃L",
  1268.                    "一歩後ジャンプ",
  1269.                    "目標前移動","払い抜け","対象アニメ武器","武器振り攻撃L",
  1270.                    "コラプス許可","12","座標リセット"],
  1271.                   
  1272.    "突刺3"      => ["残像ON","目標前移動","払い抜け","対象アニメ武器","武器振り攻撃L",
  1273.                    "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",   
  1274.                    "目標前移動","払い抜け","対象アニメ武器","武器振り攻撃L",
  1275.                    "一歩後ジャンプ",
  1276.                    "目標前移動","払い抜け","対象アニメ武器","武器振り攻撃L",
  1277.                    "一歩後ジャンプ","一歩後ジャンプ","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1278.                    "コラプス許可","12","残像OFF","座標リセット"],
  1279.                   
  1280.    "突刺4"      => ["残像ON","目標前移動","払い抜け","対象アニメ武器","武器振り攻撃L",
  1281.                    "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",   
  1282.                    "払い抜け","小吹き飛ばし","対象アニメ武器","武器振り攻撃L","武器振り攻撃L",
  1283.                    "一歩後ジャンプ","一歩後ジャンプ",
  1284.                    "目標前高速移動","払い抜け","対象アニメ武器","武器振り攻撃遅",
  1285.                    "一歩後ジャンプ",
  1286.                    "武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1287.                    "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1288.                    "コラプス許可","12","残像OFF","座標リセット"],
  1289.                   
  1290.    "突刺5"      => ["残像ON","目標前移動","払い抜け","対象アニメ武器","武器振り攻撃",
  1291.                    "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",   
  1292.                    "目標前移動","払い抜け","対象アニメ武器","武器振り攻撃遅",
  1293.                    "一歩後ジャンプ",
  1294.                    "目標前高速移動","払い抜け","対象アニメ武器","武器振り攻撃L",
  1295.                    "一歩後ジャンプ","武器振り攻撃","小吹き飛ばし","武器振り攻撃L","対象アニメ武器",
  1296.                    "コラプス許可","残像OFF","座標リセット"],

  1297.    "突刺6"      => ["残像ON","目標前移動","払い抜け","対象アニメ武器","武器振り攻撃L",
  1298.                    "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",   
  1299.                    "払い抜け","小吹き飛ばし","対象アニメ武器","武器振り攻撃L","武器振り攻撃L",
  1300.                    "一歩後ジャンプ","一歩後ジャンプ",
  1301.                    "目標前高速移動","払い抜け","対象アニメ武器","武器振り攻撃遅",
  1302.                    "一歩後ジャンプ",
  1303.                    "武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1304.                    "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1305.                    "一歩後ジャンプ","一歩後ジャンプ",
  1306.                    "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1307.                    "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1308.                    "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1309.                    "一歩後ジャンプ",
  1310.                    "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1311.                    "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1312.                    "コラプス許可","12","残像OFF","座標リセット"],
  1313.   "多段攻撃2"      => ["前ジャンプ叩き","武器振り攻撃L","対象アニメ武器",
  1314.                       "待機(固定)","16","対象アニメ武器","武器回し下",
  1315.                       "武器回し上","4","その場ジャンプ叩き","武器振り攻撃L",
  1316.                       "対象アニメ武器","待機(固定)","16","対象アニメ武器",
  1317.                       "武器振り攻撃","武器振り攻撃L","12",
  1318.                       "その場ジャンプ叩き","武器振り攻撃L","対象アニメ武器",
  1319.                       "一歩後ジャンプ","一歩後ジャンプ","待機(固定)","非二刀限定",
  1320.                       "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1321.                       "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1322.                       "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1323.                       "一歩後ジャンプ","一歩後ジャンプ",
  1324.                       "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1325.                       "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1326.                       "対象アニメ武器","武器振り攻撃","コラプス許可","二刀限定",
  1327.                       "残像OFF","16","後退リセット"],
  1328.   "重击2"      =>        ["前ジャンプ叩き","対象アニメウエイト","斬撃/必殺技1","武器振り攻撃L","待機(固定)","50",
  1329.                           "コラプス許可","12","座標リセット"],
  1330.   "重击3"      =>        ["待機(固定)","前ジャンプ叩き","武器振り攻撃L","対象アニメウエイト","破碎2","待機(固定)","35",
  1331.                           "コラプス許可","12","座標リセット"],
  1332.   "重击4"      =>        ["前ジャンプ叩き","対象アニメ武器","斬撃/必殺技3","武器振り攻撃L","待機(固定)","20",
  1333.                           "コラプス許可","12","座標リセット"],
  1334.   "圣光突击"   => ["觉醒1","待機(固定)","30","前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","圣光突击","20","待機(固定)",
  1335.                   "前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","圣光突击","20","待機(固定)",
  1336.                   "前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","圣光突击","20","待機(固定)",
  1337.                   "前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","圣光突击","20","待機(固定)",
  1338.                   "前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","圣光突击","20","待機(固定)",
  1339.                   "前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","圣光突击","10","待機(固定)","圣光突击2","50","待機(固定)","コラプス許可","座標リセット"],              
  1340.   "爆炎地狱"   => ["丽娜J2","50",
  1341.                   "待機(固定)","32","武器振り攻撃遅","火魔法2","30","爆炎地狱",
  1342.                   "対象アニメウエイト","5","対象アニメウエイト","10",
  1343.                   "対象アニメウエイト","5","対象アニメウエイト","15",
  1344.                   "対象アニメウエイト","10",
  1345.                   "コラプス許可","12","座標リセット"],
  1346.   "寒冰审判"   => ["丽娜J2","50",
  1347.                   "待機(固定)","32","武器振り攻撃遅","水魔法2","30","寒冰审判","10",
  1348.                   "対象アニメウエイト","15","対象アニメウエイト","30","対象アニメウエイト","30",
  1349.                   "コラプス許可","12","座標リセット"],
  1350.   "死神裂空碎"   =>       ["觉醒3","待機(固定)","32",
  1351.                           "前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","裂空2","5","待機(固定)",
  1352.                           "一歩後ジャンプ","一歩後ジャンプ",
  1353.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1354.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1355.                           "目標前高速移動","武器振り攻撃L","小吹き飛ばし","対象アニメ武器",
  1356.                           "一歩後ジャンプ","一歩後ジャンプ",
  1357.                           "払い抜け","対象アニメ武器","武器振り攻撃L","裂空1","7","待機(固定)",
  1358.                           "一歩後ジャンプ","一歩後ジャンプ",
  1359.                           "前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","裂空5","5","待機(固定)",
  1360.                           "前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","裂空5","5","待機(固定)",
  1361.                           "前ジャンプ叩き","武器振り攻撃L","対象アニメ武器","裂空5","5","待機(固定)",
  1362.                           "一歩後ジャンプ","一歩後ジャンプ","裂空4","待機(固定)","30",
  1363.                           "対象アニメ武器","払い抜け","武器振り攻撃L","裂空3","50","待機(固定)",
  1364.                           "コラプス許可","12","座標リセット"],
  1365.   "撕咬"          => ["目標前移動","武器振り攻撃","撕咬","待機(固定)","10","対象アニメウエイト",
  1366.                       "コラプス許可","後退リセット"],
  1367.   "散箭"           => ["一歩前移動","待機(固定)","武器回し下","散弩2","5","散弩","10",
  1368.                       "対象アニメウエイト","コラプス許可","10","座標リセット"],
  1369.   "散箭2"          => ["一歩前移動","待機(固定)","武器回し下","光箭","5","光箭2","10",
  1370.                       "対象アニメウエイト","コラプス許可","10","座標リセット"],
  1371.   "冰箭"           => ["一歩前移動","待機(固定)","武器回し下","冰箭1","35","冰箭2","25","待機(固定)",
  1372.                       "冰箭3","対象アニメウエイト","15","コラプス許可","10","座標リセット"],
  1373.   "空袭连射"       => ["一歩前移動","待機(固定)","武器回し下","弩发射","5","散弩","10",
  1374.                       "対象アニメウエイト","一歩後ジャンプ","一歩後ジャンプ",
  1375.                       "武器回し下","弩发射","5","散弩","10","対象アニメウエイト",
  1376.                       "武器回し下","弩发射","5","散弩","10","対象アニメウエイト",
  1377.                       "武器回し下","弩发射","5","散弩","10","対象アニメウエイト",
  1378.                       "コラプス許可","12","座標リセット"],
  1379.         
  1380.   "空袭连射2"      => ["一歩前移動","待機(固定)","武器回し下","光箭","5","光箭2","10",
  1381.                       "対象アニメウエイト","一歩後ジャンプ","一歩後ジャンプ",
  1382.                       "武器回し下","光箭","5","光箭2","10","対象アニメウエイト",
  1383.                       "武器回し下","光箭","5","光箭2","10","対象アニメウエイト",
  1384.                       "武器回し下","光箭","5","光箭2","10","対象アニメウエイト",
  1385.                       "コラプス許可","12","座標リセット"],  
  1386.   "白羽之光"       => ["一歩前移動","待機(固定)","武器回し下","白羽之光2","30","白羽之光3","対象アニメウエイト","50","待機(固定)",
  1387.                       "白羽之光","対象アニメウエイト","25","コラプス許可","10","座標リセット"],
  1388.   "毒箭"           => ["一歩前移動","待機(固定)","武器回し下","弩发射","5","毒箭",
  1389.                       "対象アニメウエイト","10","コラプス許可","10","座標リセット"],
  1390.   "冰箭2"           => ["一歩前移動","待機(固定)","武器回し下","寒冰之箭改","35","寒冰之箭改2","35","待機(固定)",
  1391.                       "寒冰之箭改3","対象アニメウエイト","35",
  1392.                       "コラプス許可","10","座標リセット"],
  1393.   "白羽之光2"       => ["一歩前移動","待機(固定)","武器回し下","白羽之光改4","30","白羽之光改2","30","白羽之光改","対象アニメウエイト","50","待機(固定)",
  1394.                       "白羽之光改3","対象アニメウエイト","白羽之光改5","5",
  1395.                       "対象アニメウエイト","白羽之光改5","5","対象アニメウエイト","白羽之光改5","5",
  1396.                       "対象アニメウエイト","白羽之光改5","5","対象アニメウエイト","白羽之光改5","5",
  1397.                       "コラプス許可","10","座標リセット"],
  1398.   "火箭"           => ["一歩前移動","待機(固定)","武器回し下","爆炎之箭2","25","待機(固定)",
  1399.                       "爆炎之箭3","対象アニメウエイト","30","コラプス許可","10","座標リセット"],
  1400.   "天堂突击"       => ["一歩前移動","待機(固定)","武器回し下","弩发射","5","散弩","10",
  1401.                       "対象アニメウエイト","一歩後ジャンプ","一歩後ジャンプ",
  1402.                       "武器回し下","弩发射","5","散弩","10","対象アニメウエイト",
  1403.                       "武器回し下","弩发射","5","散弩","10","対象アニメウエイト",
  1404.                       "武器回し下","弩发射","5","散弩","10","対象アニメウエイト",
  1405.                       "コラプス許可","12","座標リセット"],
  1406.                      
  1407.   "重力射击"       => ["待機(固定)","凯兰J","50",
  1408.                       "待機(固定)","武器回し下","重力射击","35","重力射击2","50",
  1409.                       "重力射击3","対象アニメウエイト","50",
  1410.                       "重力射击4","対象アニメウエイト","20",
  1411.                       "コラプス許可","10","座標リセット"],
  1412.                      
  1413.   "天空突击"       => ["待機(固定)","凯兰J2","50",
  1414.                       "一歩前移動","待機(固定)","武器回し下","天堂突击","対象アニメウエイト","20",
  1415.                       "一歩後ジャンプ","一歩後ジャンプ",
  1416.                       "武器回し下","天堂突击2","天堂突击3","対象アニメウエイト","10",
  1417.                       "武器回し下","天堂突击2","天堂突击4","対象アニメウエイト","10",
  1418.                       "武器回し下","天堂突击2","天堂突击3","対象アニメウエイト","10",
  1419.                       "武器回し下","天堂突击2","天堂突击5","対象アニメウエイト","10",
  1420.                       "武器回し下","天堂突击2","天堂突击3","対象アニメウエイト","10",
  1421.                       "武器回し下","天堂突击2","天堂突击4","対象アニメウエイト","10",
  1422.                       "武器回し下","天堂突击2","天堂突击5","対象アニメウエイト","10",
  1423.                       "武器回し下","天堂突击2","天堂突击3","対象アニメウエイト","20",
  1424.                       "一歩前移動","一歩前移動","待機(固定)","武器回し下","10","天堂突击6","対象アニメウエイト","20",
  1425.                       "コラプス許可","10","座標リセット"],

  1426.   "重力球"       => ["一歩後ジャンプ","待機(固定)","重力球","25",
  1427.                     "前ジャンプ叩き","待機(固定)","5","重力球2",
  1428.                     "対象アニメウエイト","白羽之光改5","10","対象アニメウエイト","白羽之光改5","10",
  1429.                     "対象アニメウエイト","白羽之光改5","10","対象アニメウエイト","白羽之光改5","10",
  1430.                     "対象アニメウエイト","白羽之光改5","10","対象アニメウエイト","白羽之光改5","10",
  1431.                     "対象アニメウエイト","白羽之光改5","10","対象アニメウエイト","白羽之光改5","20",
  1432.                     "コラプス許可","10","座標リセット"],
  1433.   "超级连射"       => ["一歩後ジャンプ","待機(固定)","武器回し下","枪击中",
  1434.                       "対象アニメウエイト","反転","一歩前移動","反転",
  1435.                       "待機(固定)","武器回し下","枪击中","対象アニメウエイト",
  1436.                       "枪击中","対象アニメウエイト",
  1437.                       "待機(固定)","反転","一歩後ジャンプ","一歩後ジャンプ","反転","武器回し下","枪击中","対象アニメウエイト",
  1438.                       "コラプス許可","12","座標リセット"],
  1439.   "超级连射2"       => ["一歩後ジャンプ",
  1440.                       "武器回し下","5","枪击中2","対象アニメウエイト",
  1441.                       "弹壳","15",
  1442.                       "コラプス許可","12","座標リセット"],
  1443.   "榴弹"       =>      ["一歩後ジャンプ",
  1444.                       "武器回し下","5","榴弹","40",
  1445.                       "榴弹2","対象アニメウエイト","20","武器回し下",
  1446.                       "弹壳","15",
  1447.                       "コラプス許可","12","座標リセット"],
  1448.   "穿甲弹"       =>   ["一歩後ジャンプ",
  1449.                       "武器回し下","穿甲弹","5","対象アニメウエイト",
  1450.                       "武器回し下","穿甲弹","5","対象アニメウエイト",
  1451.                       "武器回し下","穿甲弹","5","対象アニメウエイト",
  1452.                       "コラプス許可","12","座標リセット"],
  1453.   
  1454.   "震荡"       =>   ["凯兰J","50",
  1455.                     "一歩後ジャンプ","待機(固定)","武器回し下","5","震荡4","対象アニメウエイト","30",
  1456.                     "震荡2","対象アニメウエイト","30",
  1457.                     "コラプス許可","12","座標リセット"],
  1458.                     
  1459.   "能量冲击"      => ["一歩後ジャンプ","待機(固定)","能量冲击","25",
  1460.                     "前ジャンプ叩き","待機(固定)","対象アニメウエイト",
  1461.                     "コラプス許可","10","座標リセット"],
  1462.   "炸裂冲击"      => ["前ジャンプ叩き","一歩後ジャンプ","一歩後ジャンプ","待機(固定)","炸裂冲击","40",
  1463.                     "待機(固定)","武器回し下","炸裂冲击2","対象アニメウエイト","30",
  1464.                     "コラプス許可","10","座標リセット"],
  1465.   "旋风"       =>   ["亚特J","50",
  1466.                     "一歩後ジャンプ","待機(固定)","旋风冲击","25",
  1467.                     "前ジャンプ叩き","待機(固定)","5","旋风冲击2",
  1468.                     "対象アニメウエイト","白羽之光改5","5","対象アニメウエイト","白羽之光改5","5",
  1469.                     "対象アニメウエイト","白羽之光改5","5","対象アニメウエイト","白羽之光改5","5",
  1470.                     "対象アニメウエイト","白羽之光改5","5","対象アニメウエイト","白羽之光改5","5",
  1471.                     "対象アニメウエイト","白羽之光改5","5","対象アニメウエイト","白羽之光改5","5",
  1472.                     "対象アニメウエイト","白羽之光改5","5","対象アニメウエイト","白羽之光改5","5",
  1473.                     "対象アニメウエイト","白羽之光改5","5","対象アニメウエイト","白羽之光改5","20",
  1474.                     "コラプス許可","10","座標リセット"],
  1475.   "炸裂冲击2"      => ["前ジャンプ叩き","一歩後ジャンプ","一歩後ジャンプ","待機(固定)","炸裂冲击改","50",
  1476.                     "待機(固定)","武器回し下","炸裂冲击改2","対象アニメウエイト","30",
  1477.                     "コラプス許可","10","座標リセット"],
  1478.   "火拳"         => ["一歩後ジャンプ","待機(固定)","火拳","30",
  1479.                     "武器回し下","10","火拳2","10","対象アニメウエイト",              
  1480.                     "コラプス許可","10","座標リセット"],
  1481.   "手雷"          => ["一歩後ジャンプ","待機(固定)","手雷","25",                    
  1482.                     "対象アニメウエイト","10",
  1483.                     "コラプス許可","10","座標リセット"],
  1484.   "烈火拳"         => ["亚特J2","50",
  1485.                      "一歩後ジャンプ","待機(固定)","烈火拳","35",
  1486.                     "勝利のジャンプ","武器振り攻撃","烈火拳2","20","烈火拳3",
  1487.                     "20","対象アニメウエイト","5","対象アニメウエイト","5","対象アニメウエイト","25",
  1488.                     "コラプス許可","10","座標リセット"],
  1489.   "地裂斩"      =>      ["前ジャンプ叩き","地裂斩","対象アニメウエイト","武器振り攻撃L","待機(固定)","20",
  1490.                       "コラプス許可","12","座標リセット"],
  1491.   "真空碎"         => ["迪安J","50",
  1492.                     "待機(固定)","勝利のジャンプ","武器振り攻撃","真空碎","30",
  1493.                     "対象アニメウエイト",
  1494.                     "コラプス許可","10","座標リセット"],
  1495.   "地裂碎"      => ["迪安J2","50",
  1496.                     "待機(固定)","勝利のジャンプ","武器振り攻撃","地裂碎","30",
  1497.                     "真空碎2","対象アニメウエイト","20","真空碎3","対象アニメウエイト","20",
  1498.                     "真空碎4","対象アニメウエイト","20","勝利のジャンプ","武器振り攻撃","地裂斩改",
  1499.                     "65","真空碎5","対象アニメウエイト","50","地裂碎2","対象アニメウエイト","30",
  1500.                     "コラプス許可","10","座標リセット"],
  1501.   "雷暴"      => ["一歩後ジャンプ","待機(固定)","魔法始動アニメ","武器回し下","10",
  1502.                 "待機(固定)","雷暴","対象アニメウエイト","10","対象アニメウエイト","18",
  1503.                 "対象アニメウエイト","20",
  1504.                 "コラプス許可","10","座標リセット"],
  1505.   "黑洞"      => ["一歩後ジャンプ","待機(固定)","武器回し下","魔法始動アニメ","10",
  1506.                 "待機(固定)","黑洞","10","対象アニメウエイト","5",
  1507.                 "対象アニメウエイト","5","対象アニメウエイト","5","対象アニメウエイト","5",
  1508.                 "対象アニメウエイト","15","対象アニメウエイト","20",
  1509.                 "コラプス許可","10","座標リセット"],
  1510. "混沌"         => ["待機(固定)","勝利のジャンプ","武器振り攻撃","混沌之祭","10","混沌之祭2",
  1511.                     "25","混沌之祭3","対象アニメウエイト","30","混沌之祭4","対象アニメウエイト","5",
  1512.                     "対象アニメウエイト","5","対象アニメウエイト","5","対象アニメウエイト","20",
  1513.                     "コラプス許可","10","座標リセット"],
  1514. "歼灭之炎"    => ["火魔法始動アニメ","待機(固定)",
  1515.                   "武器回し下","歼灭之炎","22","対象アニメウエイト","30","コラプス許可","10","座標リセット"],
  1516. "高温射线"    => ["火魔法始動アニメ","待機(固定)",
  1517.                   "武器回し下","高温射线","5","対象アニメウエイト","3",
  1518.                   "対象アニメウエイト","15","対象アニメウエイト","20",
  1519.                   "コラプス許可","10","座標リセット"],
  1520. "歼灭之炎2"   => ["火魔法始動アニメ","待機(固定)",
  1521.                   "武器回し下","歼灭之炎2","22","対象アニメウエイト","30","コラプス許可","10","座標リセット"],
  1522. "寒冰地狱"    => ["水魔法始動アニメ","待機(固定)",
  1523.                   "武器回し下","寒冰地狱","30","対象アニメウエイト","20",
  1524.                   "対象アニメウエイト","20",
  1525.                   "コラプス許可","10","座標リセット"],
  1526. "寒冰地狱2"    => ["水魔法始動アニメ","待機(固定)",
  1527.                   "武器回し下","寒冰地狱2","30","対象アニメウエイト","30",
  1528.                   "対象アニメウエイト","20",
  1529.                   "コラプス許可","10","座標リセット"],
  1530. "绞杀冰剑"    => ["水魔法始動アニメ","待機(固定)",
  1531.                   "武器回し下","10","绞杀冰剑","5","対象アニメウエイト","15",
  1532.                   "対象アニメウエイト","15","対象アニメウエイト","20",
  1533.                   "コラプス許可","10","座標リセット"],
  1534.                   
  1535. "绞杀冰剑2"    => ["水魔法始動アニメ","待機(固定)",
  1536.                   "武器回し下","10","绞杀冰剑2","5","対象アニメウエイト","15",
  1537.                   "対象アニメウエイト","15","対象アニメウエイト","20",
  1538.                   "コラプス許可","10","座標リセット"],
  1539.                   
  1540. "星蓝之剑"    => ["右払い抜け2","星蓝之剑","対象アニメウエイト","待機(固定)","50",
  1541.                  "星蓝之剑2","対象アニメウエイト","35",
  1542.                  "コラプス許可","10","座標リセット"],
  1543.                  
  1544. "黑洞2"        => ["丽娜J2","50",
  1545.                     "一歩後ジャンプ","裂空4","待機(固定)","25",
  1546.                     "武器回し下","20","待機(固定)","5","黑洞2",
  1547.                     "対象アニメウエイト","5","対象アニメウエイト","5",
  1548.                     "対象アニメウエイト","5","対象アニメウエイト","5",
  1549.                     "対象アニメウエイト","5","対象アニメウエイト","5",
  1550.                     "対象アニメウエイト","5","対象アニメウエイト","5",
  1551.                     "対象アニメウエイト","5","対象アニメウエイト","5",
  1552.                     "対象アニメウエイト","5","対象アニメウエイト","5",
  1553.                     "対象アニメウエイト","5","対象アニメウエイト","5",
  1554.                     "対象アニメウエイト","5","対象アニメウエイト","5",
  1555.                     "対象アニメウエイト","5","対象アニメウエイト","15",
  1556.                     "コラプス許可","10","座標リセット"],
  1557.                     
  1558.   "龙斩"      =>      ["亚特J2","50",
  1559.                       "龙斩","前ジャンプ叩き","龙斩2","対象アニメウエイト","武器振り攻撃L","待機(固定)","20",
  1560.                       "一歩後ジャンプ","一歩後ジャンプ","待機(固定)","武器振り攻撃遅","20",
  1561.                       "龙斩3","対象アニメウエイト","5","対象アニメウエイト","5",
  1562.                       "対象アニメウエイト","5","対象アニメウエイト","25","一歩後ジャンプ","一歩後ジャンプ",
  1563.                       "待機(固定)","裂空4","25","前ジャンプ叩き","龙斩4","対象アニメウエイト","武器振り攻撃L","待機(固定)","20",
  1564.                       "コラプス許可","12","座標リセット"],
  1565.                      
  1566.   "连环爆烈"      => ["前ジャンプ叩き","地裂碎","対象アニメウエイト","武器振り攻撃L","20","待機(固定)",
  1567.                       "前ジャンプ叩き","地裂碎","対象アニメウエイト","武器振り攻撃L","20",
  1568.                       "前ジャンプ叩き","地裂碎","対象アニメウエイト","武器振り攻撃L","20",
  1569.                       "前ジャンプ叩き","地裂碎","対象アニメウエイト","武器振り攻撃L","20",
  1570.                       "コラプス許可","12","座標リセット"],
  1571.   "强力爆烈"      => ["前ジャンプ叩き","力爆","対象アニメウエイト","武器振り攻撃L","待機(固定)","20",
  1572.                       "コラプス許可","12","座標リセット"],
  1573.   "浊流"      =>        ["魔法始動アニメ","15","浊流","対象アニメウエイト",
  1574.                         "対象アニメウエイト","対象アニメウエイト","対象アニメウエイト",
  1575.                         "コラプス許可","12","座標リセット"],
  1576.                         
  1577.   "沙漠风暴"    => ["凯兰J2","50",
  1578.                     "一歩後ジャンプ","沙漠风暴2","沙漠风暴专用","60",
  1579.                     "沙漠风暴","対象アニメウエイト","沙漠风暴","対象アニメウエイト",
  1580.                     "沙漠风暴","対象アニメウエイト","沙漠风暴","対象アニメウエイト",
  1581.                     "沙漠风暴","対象アニメウエイト","沙漠风暴","対象アニメウエイト",
  1582.                     "沙漠风暴","対象アニメウエイト","沙漠风暴","対象アニメウエイト",
  1583.                     "沙漠风暴","対象アニメウエイト","沙漠风暴","対象アニメウエイト",
  1584.                     "沙漠风暴","対象アニメウエイト","沙漠风暴","対象アニメウエイト",
  1585.                     "沙漠风暴","対象アニメウエイト","沙漠风暴","対象アニメウエイト",
  1586.                     "沙漠风暴","対象アニメウエイト","沙漠风暴","対象アニメウエイト",
  1587.                     "沙漠风暴","対象アニメウエイト","沙漠风暴","対象アニメウエイト",
  1588.                     "沙漠风暴","対象アニメウエイト","沙漠风暴","対象アニメウエイト","10",
  1589.                     "待機(固定)","沙漠风暴专用2","沙漠风暴3","40","变身BUG","沙漠风暴专用3","10","一歩後ジャンプ",
  1590.                     "待機(固定)","火箭弹","50","火箭弹2","対象アニメウエイト","対象アニメウエイト",
  1591.                     "コラプス許可","10","座標リセット"],
  1592.                      
  1593. "混沌2"         => ["待機(固定)","暗魔法始動アニメ","武器振り攻撃","20","混沌之祭2",
  1594.                     "35","混沌之祭4","5","対象アニメウエイト","5","対象アニメウエイト","5",
  1595.                     "対象アニメウエイト","5","対象アニメウエイト","20",
  1596.                     "コラプス許可","10","座標リセット"],
  1597.                     
  1598. "混沌3"         => ["丽娜J","50",
  1599.                      "待機(固定)","暗魔法始動アニメ","武器振り攻撃","20","混沌之祭5",
  1600.                      "30","混沌之祭3","5","対象アニメウエイト","20",
  1601.                      "コラプス許可","10","座標リセット"],

  1602. "剧毒"         => ["待機(固定)","暗魔法始動アニメ","武器振り攻撃","20","剧毒风暴",
  1603.                     "対象アニメウエイト","10","対象アニメウエイト","10","対象アニメウエイト","20",
  1604.                     "コラプス許可","10","座標リセット"],
  1605.                     
  1606. "真空刺"      =>      ["3","真空刺","目標前高速移動",
  1607.                         "払い抜け","対象アニメウエイト","待機(固定)","20",
  1608.                         "コラプス許可","座標リセット"],
  1609.                         
  1610. "真空刺2"      =>      ["真空刺改","8","目標前高速移動",
  1611.                         "払い抜け","真空刺改2","対象アニメウエイト","待機(固定)","35",
  1612.                         "コラプス許可","座標リセット"],
  1613.   
  1614. "雷暴2"      => ["一歩後ジャンプ","待機(固定)","魔法始動アニメ","武器回し下","10",
  1615.                 "待機(固定)","雷暴2","対象アニメウエイト","35","対象アニメウエイト","20",
  1616.                 "コラプス許可","10","座標リセット"],
  1617.                
  1618. "冰球"        => ["丽娜J","50","水魔法始動アニメ",
  1619.                  "待機(固定)","武器回し下","冰球","40","冰球2","10","対象アニメウエイト","15",
  1620.                   "対象アニメウエイト","15","対象アニメウエイト","20",
  1621.                   "コラプス許可","10","座標リセット"],
  1622.             
  1623. "高温激光"   =>["丽娜J","50","火魔法始動アニメ",
  1624.                 "待機(固定)","武器回し下","高温激光枪","75","高温激光枪2","対象アニメウエイト","35",
  1625.                 "コラプス許可","10","座標リセット"],
  1626.                
  1627. "半月碎"        =>     ["亚特J","50",
  1628.                         "半月碎3","目標前高速移動","残像ON","待機(固定)","反転","5","武器振り攻撃L","反転","半月碎","5",
  1629.                         "対象アニメウエイト","35","待機(固定)","10","半月碎2",
  1630.                         "対象アニメウエイト","5","対象アニメウエイト","5","対象アニメウエイト","5","対象アニメウエイト","30","反転",
  1631.                         "コラプス許可","反転","座標リセット"],
  1632.                         
  1633. "重击/敌"       =>     ["目標前移動","敌斩击2","対象アニメウエイト","20",
  1634.                         "コラプス許可","座標リセット"],
  1635.                         
  1636. "连击/敌"       =>     ["目標前移動","敌斩击","対象アニメウエイト","20",
  1637.                         "目標前移動","敌斩击","対象アニメウエイト","20",
  1638.                         "目標前移動","敌斩击","対象アニメウエイト","20",
  1639.                         "コラプス許可","座標リセット"],
  1640.                         
  1641. "横扫/敌"       =>     ["目標前移動","敌斩击3","対象アニメウエイト","30",
  1642.                         "コラプス許可","座標リセット"],
  1643.                         
  1644. "突刺/敌"       =>     ["目標前移動","敌斩击4","対象アニメウエイト","20",
  1645.                         "コラプス許可","座標リセット"],
  1646.                         
  1647. "重击/敌2"       =>     ["目標前移動","敌斩击5","対象アニメウエイト","20",
  1648.                         "コラプス許可","座標リセット"],
  1649.                         
  1650. "连击/敌2"       =>     ["目標前移動","敌斩击6","対象アニメウエイト","20",
  1651.                         "目標前移動","敌斩击6","対象アニメウエイト","20",
  1652.                         "目標前移動","敌斩击6","対象アニメウエイト","20",
  1653.                         "コラプス許可","座標リセット"],
  1654.                         
  1655. "重击/敌3"       =>     ["目標前移動","敌斩击7","対象アニメウエイト","20",
  1656.                         "コラプス許可","座標リセット"],
  1657.                         
  1658. "双破"      =>        ["前ジャンプ叩き","斩击4","対象アニメウエイト","武器振り攻撃L","待機(固定)",
  1659.                         "20","一歩後移動","一歩後移動",
  1660.                         "払い抜け","対象アニメウエイト","斩击5","小吹き飛ばし","武器振り攻撃L","20",         
  1661.                         "コラプス許可","12","座標リセット"],
  1662.                         
  1663. "杀戮盛宴"      =>     ["杀戮3","残像ON","目標前高速移動","空白","10","杀戮","40",
  1664.                           "变身BUG","变身解除2","座標リセット","待機(固定)","10","杀戮2","対象アニメウエイト","20",
  1665.                           "コラプス許可","12","座標リセット"],  
  1666.                           
  1667. "杀戮盛宴2"      =>     ["杀戮改3","残像ON","目標前高速移動","空白","10","杀戮改","40",
  1668.                           "变身BUG","变身解除2","座標リセット","待機(固定)","10","杀戮改2","対象アニメウエイト","20",
  1669.                           "コラプス許可","12","座標リセット"],
  1670.                         
  1671. "杀戮盛宴3"      =>     ["杀戮3","残像ON","目標前高速移動","空白","10","杀戮","40",
  1672.                           "变身BUG","变身解除3","座標リセット","待機(固定)","10","杀戮2","対象アニメウエイト","20",
  1673.                           "コラプス許可","12","座標リセット"],
  1674.                           
  1675. "背射"      =>          ["毁灭残影","残像ON","目標前高速移動","移动目标身后","一歩前ジャンプ","反転","待機(固定)","武器回し下","背射",
  1676.                           "8","背射2","対象アニメウエイト","20","残像OFF",
  1677.                           "コラプス許可","12","座標リセット","反転",],
  1678.                         
  1679. #-------------------------------------------------------------------------------
  1680.   "終了"              => ["終了"]}
  1681. end
  1682. #==============================================================================
  1683. # ■ Game_Actor"その場ジャンプ叩き"
  1684. #------------------------------------------------------------------------------
  1685. #  アクターごとに基本アクションを指定します
  1686. #==============================================================================
  1687. class Game_Actor < Game_Battler
  1688.   #--------------------------------------------------------------------------
  1689.   # ● アクターIDから素手(武器なし)時のアクションを決めます
  1690.   #--------------------------------------------------------------------------
  1691.   # when 1 ←この数字がアクターID
  1692.   # return "通常攻撃" ←対応する通しアクション名を入れてください
  1693.   def non_weapon
  1694.     case @actor_id
  1695.     when 1
  1696.       return "通常攻撃"
  1697.     end
  1698.     # 上記のアクターID以外すべてに適用されるアクション
  1699.     return "通常攻撃"
  1700.   end
  1701.   #--------------------------------------------------------------------------
  1702.   # ● 通常待機
  1703.   #--------------------------------------------------------------------------
  1704.   def normal
  1705.     case @actor_id
  1706.     when 1
  1707.       return "待機"
  1708.     end
  1709.     # 上記のアクターID以外すべてに適用されるアクション
  1710.     return "待機"
  1711.   end
  1712.   #--------------------------------------------------------------------------
  1713.   # ● ピンチ(HP1/4以下)
  1714.   #--------------------------------------------------------------------------
  1715.   def pinch
  1716.     case @actor_id
  1717.     when 1
  1718.       return "ピンチ待機"
  1719.     end
  1720.     # 上記のアクターID以外すべてに適用されるアクション
  1721.     return "ピンチ待機"
  1722.   end
  1723.   #--------------------------------------------------------------------------
  1724.   # ● 防御
  1725.   #--------------------------------------------------------------------------
  1726.   def defence
  1727.     case @actor_id
  1728.     when 1
  1729.       return "防御"
  1730.     end
  1731.     # 上記のアクターID以外すべてに適用されるアクション
  1732.     return "防御"
  1733.   end
  1734.   #--------------------------------------------------------------------------
  1735.   # ● ダメージ 対象アニメ時、ヒットしていればこのアクションを取ります
  1736.   #--------------------------------------------------------------------------
  1737.   def damage_hit
  1738.     case @actor_id
  1739.     when 1
  1740.       return "ダメージ"
  1741.     end
  1742.     # 上記のアクターID以外すべてに適用されるアクション
  1743.     return "ダメージ"
  1744.   end  
  1745.   #--------------------------------------------------------------------------
  1746.   # ● 回避 対象アニメ時、ヒットしていなければこのアクションを取ります
  1747.   #--------------------------------------------------------------------------
  1748.   def evasion
  1749.     case @actor_id
  1750.     when 1
  1751.       return "回避"
  1752.     end
  1753.     # 上記のアクターID以外すべてに適用されるアクション
  1754.     return "回避"
  1755.   end  
  1756.   #--------------------------------------------------------------------------
  1757.   # ● コマンド入力前動作
  1758.   #--------------------------------------------------------------------------
  1759.   def command_b
  1760.     case @actor_id
  1761.     when 1
  1762.       return "コマンド入力"
  1763.     end
  1764.     # 上記のアクターID以外すべてに適用されるアクション
  1765.     return "コマンド入力"
  1766.   end
  1767.   #--------------------------------------------------------------------------
  1768.   # ● コマンド入力後動作
  1769.   #--------------------------------------------------------------------------
  1770.   def command_a
  1771.     case @actor_id
  1772.     when 1
  1773.       return "コマンド入力後"
  1774.     end
  1775.     # 上記のアクターID以外すべてに適用されるアクション
  1776.     return "コマンド入力後"
  1777.   end
  1778.   #--------------------------------------------------------------------------
  1779.   # ● 逃走成功
  1780.   #--------------------------------------------------------------------------
  1781.   def run_success
  1782.     case @actor_id
  1783.     when 1
  1784.       return "逃走"
  1785.     end
  1786.     # 上記のアクターID以外すべてに適用されるアクション
  1787.     return "逃走"
  1788.   end
  1789.   #--------------------------------------------------------------------------
  1790.   # ● 逃走失敗
  1791.   #--------------------------------------------------------------------------
  1792.   def run_ng
  1793.     case @actor_id
  1794.     when 1
  1795.       return "逃走失敗"
  1796.     end
  1797.     # 上記のアクターID以外すべてに適用されるアクション
  1798.     return "逃走失敗"
  1799.   end
  1800.   #--------------------------------------------------------------------------
  1801.   # ● 勝利
  1802.   #--------------------------------------------------------------------------
  1803.   def win
  1804.     case @actor_id
  1805.     when 1
  1806.       return "勝利"
  1807.     end
  1808.     # 上記のアクターID以外すべてに適用されるアクション
  1809.     return "勝利"
  1810.   end
  1811.   #--------------------------------------------------------------------------
  1812.   # ● 戦闘突入時のアクション
  1813.   #--------------------------------------------------------------------------  
  1814.   def first_action
  1815.     case @actor_id
  1816.     when 1
  1817.       return "戦闘開始"
  1818.     end
  1819.     # 上記のアクターID以外すべてに適用されるアクション
  1820.     return "戦闘開始"
  1821.   end
  1822.   #--------------------------------------------------------------------------
  1823.   # ● アクションが中断された場合の復帰アクション
  1824.   #--------------------------------------------------------------------------  
  1825.   def recover_action
  1826.     case @actor_id
  1827.     when 1
  1828.       return "座標復帰"
  1829.     end
  1830.     # 上記のアクターID以外すべてに適用されるアクション
  1831.     return "座標復帰"
  1832.   end
  1833.   #--------------------------------------------------------------------------
  1834.   # ● 影グラフィック  キャラクターフォルダから参照
  1835.   #--------------------------------------------------------------------------
  1836.   # return "shadow00" ←指定する画像ファイル名を入れてください
  1837.   def shadow
  1838.     case @actor_id
  1839.     when 1
  1840.       return "shadow00"
  1841.     end
  1842.     # 上記のアクターID以外すべてに適用される影グラフィック
  1843.     return "shadow00"
  1844.   end
  1845.   #--------------------------------------------------------------------------
  1846.   # ● 影グラフィックの位置を微調整
  1847.   #--------------------------------------------------------------------------
  1848.   # return [横座標, 縦座標]
  1849.   def shadow_plus
  1850.     case @actor_id
  1851.     when 1
  1852.       return [ 0, 4]
  1853.     end
  1854.     # 上記のアクターID以外すべてに適用される位置
  1855.     return [ 0, 4]
  1856.   end
  1857. end
  1858. #==============================================================================
  1859. # ■ Game_Enemy
  1860. #------------------------------------------------------------------------------
  1861. #  エネミーの基本アクション指定
  1862. #==============================================================================
  1863. class Game_Enemy < Game_Battler
  1864.   #--------------------------------------------------------------------------
  1865.   # ● エネミーIDから武器設定なしの通常攻撃アクションを決めます
  1866.   #--------------------------------------------------------------------------
  1867.   # when 1 ←この数字がエネミーID
  1868.   # return "敵武器なし攻撃" ←対応する通しアクション名を入れてください
  1869.   def base_action
  1870.     case @enemy_id
  1871.     when 1
  1872.       return "敵武器なし攻撃"
  1873.     end
  1874.     # 上記のエネミーID以外すべてに適用されるアクション
  1875.     return "敵武器なし攻撃"
  1876.   end
  1877.   #--------------------------------------------------------------------------
  1878.   # ● 通常待機
  1879.   #--------------------------------------------------------------------------
  1880.   def normal
  1881.     case @enemy_id
  1882.     when 1
  1883.       return "待機"
  1884.     end
  1885.     # 上記のエネミーID以外すべてに適用されるアクション
  1886.     return "待機"
  1887.   end
  1888.   #--------------------------------------------------------------------------
  1889.   # ● ピンチ(HP1/4以下)
  1890.   #--------------------------------------------------------------------------
  1891.   def pinch
  1892.     case @enemy_id
  1893.     when 1
  1894.       return "待機"
  1895.     end
  1896.     # 上記のエネミーID以外すべてに適用されるアクション
  1897.     return "待機"
  1898.   end
  1899.   #--------------------------------------------------------------------------
  1900.   # ● 防御
  1901.   #--------------------------------------------------------------------------  
  1902.   def defence
  1903.     case @enemy_id
  1904.     when 1
  1905.       return "防御"
  1906.     end
  1907.     # 上記のエネミーID以外すべてに適用されるアクション
  1908.     return "防御"
  1909.   end
  1910.   #--------------------------------------------------------------------------
  1911.   # ● ダメージ 対象アニメ時、ヒットしていればこのアクションを取ります
  1912.   #--------------------------------------------------------------------------
  1913.   def damage_hit
  1914.     case @enemy_id
  1915.     when 1
  1916.       return "ダメージ"
  1917.     end
  1918.     # 上記のエネミーID以外すべてに適用されるアクション
  1919.     return "ダメージ"
  1920.   end
  1921.   #--------------------------------------------------------------------------
  1922.   # ● 回避 対象アニメ時、ヒットしてなければこのアクションを取ります
  1923.   #--------------------------------------------------------------------------
  1924.   def evasion
  1925.     case @enemy_id
  1926.     when 1
  1927.       return "エネミー回避"
  1928.     end
  1929.     # 上記のエネミーID以外すべてに適用されるアクション
  1930.     return "エネミー回避"
  1931.   end
  1932.   #--------------------------------------------------------------------------
  1933.   # ● 逃走
  1934.   #--------------------------------------------------------------------------
  1935.   def run_success
  1936.     case @enemy_id
  1937.     when 1
  1938.       return "エネミー逃走"
  1939.     end
  1940.     # 上記のエネミーID以外すべてに適用されるアクション
  1941.     return "エネミー逃走"
  1942.   end
  1943.   #--------------------------------------------------------------------------
  1944.   # ● 戦闘突入時のアクション
  1945.   #--------------------------------------------------------------------------  
  1946.   def first_action
  1947.     case @enemy_id
  1948.     when 1
  1949.       return "戦闘開始"
  1950.     end
  1951.     # 上記のエネミーID以外すべてに適用されるアクション
  1952.     return "戦闘開始"
  1953.   end
  1954.   #--------------------------------------------------------------------------
  1955.   # ● アクションが中断された場合の復帰アクション
  1956.   #--------------------------------------------------------------------------  
  1957.   def recover_action
  1958.     case @enemy_id
  1959.     when 1
  1960.       return "座標復帰"
  1961.     end
  1962.     # 上記のエネミーID以外すべてに適用されるアクション
  1963.     return "座標復帰"
  1964.   end
  1965.   #--------------------------------------------------------------------------
  1966.   # ● 影グラフィック  キャラクターフォルダから参照
  1967.   #--------------------------------------------------------------------------
  1968.   # return "shadow01" ←指定する画像ファイル名を入れてください。
  1969.   def shadow
  1970.     case @enemy_id
  1971.     when 1
  1972.       return "shadow01"
  1973.     end
  1974.     # 上記のエネミーID以外すべてに適用される影グラフィック
  1975.     return "shadow01"
  1976.   end
  1977.   #--------------------------------------------------------------------------
  1978.   # ● 影グラフィックの位置を微調整
  1979.   #--------------------------------------------------------------------------
  1980.   # return [横座標, 縦座標]
  1981.   def shadow_plus
  1982.     case @enemy_id
  1983.     when 1
  1984.       return [ 0, -30]
  1985.     end
  1986.     # 上記のエネミーID以外すべてに適用される位置
  1987.     return [ 0, 0]
  1988.   end
  1989.   #--------------------------------------------------------------------------
  1990.   # ● エネミー武器設定  アクションとアニメは武器のものに反映されます
  1991.   #--------------------------------------------------------------------------
  1992.   # return 1 ←この数字が武器ID。0にすると素手扱いになります。
  1993.   #            エネミーアニメをONにしていると画像も表示されます。
  1994.   def weapon
  1995.     case @enemy_id
  1996.     when 23
  1997.       return 152
  1998.     when 24
  1999.       return 152
  2000.     when 1
  2001.       return 152
  2002.     when 2
  2003.       return 152
  2004.     when 3
  2005.       return 152
  2006.     when 4
  2007.       return 152
  2008.     when 5
  2009.       return 152
  2010.     when 6
  2011.       return 152
  2012.     when 7
  2013.       return 154
  2014.     when 8
  2015.       return 154
  2016.     when 9
  2017.       return 152
  2018.     when 10
  2019.       return 152
  2020.     when 11
  2021.       return 152
  2022.     when 12
  2023.       return 152
  2024.     when 13
  2025.       return 152
  2026.     when 14
  2027.       return 152
  2028.     end
  2029.     # 上記のエネミーID以外すべてに適用される武器ID
  2030.     return 0
  2031.   end
  2032.   #--------------------------------------------------------------------------
  2033.   # ● 戦闘配置の微調整  データベースで設定できない広範囲の座標はここで調整
  2034.   #--------------------------------------------------------------------------
  2035.   # return [ 0, 0] => [X座標、Y座標] この数値分データベース上の配置から変化します
  2036.   def position_plus
  2037.     case @enemy_id
  2038.     when 1
  2039.       return [0, 0]
  2040.     end
  2041.     # 上記のエネミーID以外すべてに適用される座標調整
  2042.     return [ 0, 0]
  2043.   end
  2044.   #--------------------------------------------------------------------------
  2045.   # ● エネミーのコラプス(撃破時の退場)タイプ
  2046.   #--------------------------------------------------------------------------
  2047.   # コラプスさせずに残すなら1、ノーマルタイプは2、ボスタイプは3
  2048.   def collapse_type
  2049.     case @enemy_id
  2050.     when 7
  2051.       return 3
  2052.     when 14
  2053.       return 3
  2054.     end
  2055.     # 上記のエネミーID以外すべてに適用されるコラプス
  2056.     return 2
  2057.   end
  2058.   #--------------------------------------------------------------------------
  2059.   # ● エネミー行動回数 1ターンに何回行動するか
  2060.   #--------------------------------------------------------------------------
  2061.   #        回数  確率  補正               
  2062.   # return [  2, 100,  50]                       
  2063.   #                        
  2064.   # 回数…最大行動回数
  2065.   # 確率…次の行動を取る確率。数値は%
  2066.   # 補正…素早さ補正。行動するたびにこの数値%分素早さが低下
  2067.   def action_time
  2068.     case @enemy_id
  2069.     when 1
  2070.       return [ 1, 100, 100]
  2071.     end
  2072.     # 上記のエネミーID以外すべてに適用される行動回数
  2073.     return [ 1, 100, 100]
  2074.   end
  2075.   #--------------------------------------------------------------------------
  2076.   # ● エネミーアニメ
  2077.   #--------------------------------------------------------------------------
  2078.   # エネミーにアニメさせるか trueにするとアクターと同等の扱いになります。
  2079.   # [設定方法]
  2080.   # 1.エネミーのアニメ画像をキャラクターフォルダに用意
  2081.   # 2.データベースのエネミーバトラーファイル名を、参照するキャラファイル名にする
  2082.   def anime_on
  2083.     case @enemy_id
  2084.     when 17
  2085.       return true
  2086.     when 18
  2087.       return true
  2088.     when 19
  2089.       return true
  2090.     when 20
  2091.       return true
  2092.     when 21
  2093.       return true
  2094.     when 22
  2095.       return true
  2096.     when 30
  2097.       return true
  2098.     end
  2099.     # 上記のエネミーID以外すべてに適用されるアニメ設定
  2100.     return false
  2101.   end
  2102.   #--------------------------------------------------------------------------
  2103.   # ● エネミーアニメ時の自動反転
  2104.   #--------------------------------------------------------------------------
  2105.   # 上のアニメがONになっているエネミーの画像や武器アニメを自動反転させるならtrue
  2106.   def action_mirror
  2107.     case @enemy_id
  2108.     when 17
  2109.       return true
  2110.     when 18
  2111.       return true
  2112.     when 19
  2113.       return true
  2114.     when 20
  2115.       return true
  2116.     when 21
  2117.       return true
  2118.     when 22
  2119.       return true
  2120.     when 30
  2121.       return true
  2122.     end
  2123.     # 上記のエネミーID以外すべてに適用されるアニメ設定
  2124.     return false
  2125.   end
  2126. end
  2127. module RPG
  2128. #==============================================================================
  2129. # ■ module RPG
  2130. #------------------------------------------------------------------------------
  2131. #  ステートアクション設定です。
  2132. #==============================================================================
  2133. class State
  2134. #--------------------------------------------------------------------------
  2135. # ● ID指定 ステートによって通常待機、ピンチのアクションが変わります。
  2136. #--------------------------------------------------------------------------
  2137. # when 1 ←この数字がステートID
  2138. # return "気絶" ←対応する通しアクション名を入れてください
  2139.   def base_action
  2140.     case @id
  2141.     when 1  # 戦闘不能(HP0)時です。最優先で選択されます
  2142.       return "気絶"
  2143.     when 3,4,5,7,60
  2144.       return "状態異常待機"
  2145.     when 999  
  2146.       return "睡眠待機"
  2147.     when 999  
  2148.       return "浮遊待機"
  2149.     when 10  
  2150.       return "出血待机"
  2151.     when 64  
  2152.       return "出血待机"
  2153.     when 2
  2154.       return "中毒待机"
  2155.     when 67
  2156.       return "中毒待机"
  2157.     when 13  
  2158.       return "烧伤待机"
  2159.     when 55  
  2160.       return "眩晕待机"
  2161.     when 56  
  2162.       return "眩晕待机"
  2163.     when 63  
  2164.       return "眩晕待机"
  2165.     when 16
  2166.       return "冰冻待机"
  2167.     when 18
  2168.       return "冰冻待机"
  2169.     when 66
  2170.       return "冰冻待机"
  2171.     when 21
  2172.       return "怒绝"
  2173.     when 54
  2174.       return "炸裂神弓"
  2175.     when 23
  2176.       return "狂暴"
  2177.     when 59
  2178.       return "炸裂射击"
  2179.     when 68
  2180.       return "神圣之翼"
  2181.     when 25
  2182.       return "导力全开"
  2183.     end
  2184.     # 上記IDのステート以外すべてに適用される通しアクション
  2185.     return "待機"
  2186.   end
  2187. #--------------------------------------------------------------------------
  2188. # ● 拡張設定 ステートIDから拡張設定を決めます。重複可能。
  2189. #--------------------------------------------------------------------------
  2190. # "自動復活/50"…戦闘不能時に自動で復帰。戦闘不能付与で解除されない設定にすること。
  2191. #                /の後ろの数字は復帰時のHP(最大値からの割合%)復帰後ステートは自動解除される
  2192. # "魔法反射/39"…魔法(物理攻撃以外)スキルを反射。/の後に反射時のアニメIDを入れる
  2193. # "物理反射/39"…物理攻撃(スキル含む)を反射。/の後に反射時のアニメIDを入れる
  2194. # "魔法無効/39"…魔法(物理攻撃以外)スキルを無効化。/の後に無効時のアニメIDを入れる
  2195. # "物理無効/39"…物理攻撃(スキル含む)を無効化。/の後に無効時のアニメIDを入れる
  2196. # "コスト吸収"…受けたスキルのコストを自身に還元。数値はPOPしません
  2197. # "0ターン解除"…行動順にかかわらずそのターンでステートを解除
  2198. # "エネミー除外"…エネミーに取らせたくないステートアクション
  2199. # "POPなし"…ステート付加時、ダメージウインドウにステート名を表示しない
  2200. # "アイコン非表示"…ステータスウインドウにステートアイコンを表示しない
  2201. # "ステートアクション禁止"…ステートが付加しても待機アクションに反映させない
  2202. # "スリップダメージ"…下のスリップダメージ設定を適用させます
  2203. # "なし"…拡張なし
  2204.   def extension
  2205.     case @id
  2206.     when 1  # 戦闘不能
  2207.       return ["POPなし","エネミー除外"]
  2208.     when 2  # 毒
  2209.       return ["スリップダメージ"]
  2210.     when 13  # 烧伤
  2211.       return ["スリップダメージ"]
  2212.     when 10  # 出血
  2213.       return ["スリップダメージ"]
  2214.     when 64  # 出血2
  2215.       return ["スリップダメージ"]
  2216.     when 68  # 圣灵
  2217.       return ["スリップダメージ"]
  2218.     when 25  # 导力
  2219.       return ["スリップダメージ"]
  2220.     when 69  # 魔法反射
  2221.       return ["魔法反射/296"]
  2222.     when 30  # 完美防御
  2223.       return ["魔法無効/297","物理無効/297"]
  2224.     when 33  # 完美防御2
  2225.       return ["魔法無効/297","物理無効/297"]
  2226.     when 70  # 物理反射
  2227.       return ["物理反射/298"]
  2228.     when 999  
  2229.       return ["0ターン解除","アイコン非表示"]
  2230.     when 999
  2231.       return ["0ターン解除","アイコン非表示"]
  2232.     when 999
  2233.       return ["アイコン非表示","ステートアクション禁止"]
  2234.     end
  2235.     # 上記のID以外すべてに適用される拡張設定
  2236.     return ["なし"]
  2237.   end
  2238. #--------------------------------------------------------------------------
  2239. # ● スリップダメージ拡張設定 スリップ回復も含まれます
  2240. #--------------------------------------------------------------------------
  2241. # when 1 ←この数字がステートID。上で"スリップダメージ"が付いている時のみ有効
  2242. #      複数の設定も反映可。例)[["hp",0,5,true],["mp",0,5,true]]
  2243. #                           
  2244. #         対象  定数  割合  POP  戦闘不能許可
  2245. # return [["hp",    0,  10, true,  true]]
  2246. #
  2247. # 対象…スリップダメージ対象が HPなら"hp" MPなら"mp"
  2248. # 定数…この数値がそのままダメージ。マイナスなら回復。数値は多少分散します
  2249. # 割合…対象の最大値の割合でダメージ。数値は%。定数と足し算され多少分散します
  2250. # POP…戦闘画面で数値をPOPさせるならtrue
  2251. # 戦闘不能許可…HP0を許可するならtrue
  2252.   def slip_extension
  2253.    case @id
  2254.     when 2  # 毒
  2255.       return [["hp", 0, 1, true, true]]
  2256.     when 13  # 烧伤  
  2257.       return [["hp", 0, 1, true, true]]
  2258.     when 10  # 出血  
  2259.       return [["hp", 0, 5, true, true]]
  2260.     when 64  # 出血2  
  2261.       return [["hp", 0, 5, true, true]]
  2262.     when 68  # 圣灵2
  2263.       return [["hp", 0, -10, true, true]]
  2264.     when 999 # MP1%回復
  2265.       return [["mp", 0, -1, false, true]]
  2266.     when 999 # MP2%回復
  2267.       return [["mp", 0, -2, false, true]]
  2268.     when 999 # MP3%回復
  2269.       return [["mp", 0, -3, false, true]]
  2270.     when 999 # MP4%回復
  2271.       return [["mp", 0, -4, false, true]]
  2272.     when 25  # MP10%回復
  2273.       return [["mp", 0, -10, false, true]]
  2274.     when 999 # MP6%回復
  2275.       return [["mp", 0, -6, false, true]]
  2276.     when 999 # HMコンバータ
  2277.       return [["hp", 0,10, true, true],["mp", 0, -5, true, true]]
  2278.     when 999 # MHコンバータ
  2279.       return [["hp", 0,-10, true, true],["mp", 0, 5, true, true]]
  2280.     end
  2281.     return []
  2282.   end
  2283. end
  2284. #==============================================================================
  2285. # ■ module RPG
  2286. #------------------------------------------------------------------------------
  2287. #  武器アクション設定です。
  2288. #==============================================================================
  2289. class Weapon
  2290. #--------------------------------------------------------------------------
  2291. # ● アクション指定 装備している武器のIDから通常攻撃のアクションを決めます。
  2292. #--------------------------------------------------------------------------
  2293. # when 1 ←この数字が武器ID
  2294. # return "通常攻撃" ←対応する通しアクション名を入れてください
  2295.   def base_action
  2296.     case @id
  2297.     when 4
  2298.       return "弩"
  2299.     when 3
  2300.       return "弓箭"
  2301.     when 27
  2302.       return "弓箭"
  2303.     when 28
  2304.       return "弓箭"
  2305.     when 29
  2306.       return "弓箭"
  2307.     when 30
  2308.       return "弓箭"
  2309.     when 31
  2310.       return "弓箭"
  2311.     when 32
  2312.       return "弓箭"
  2313.     when 33
  2314.       return "弓箭"
  2315.     when 34
  2316.       return "弓箭"
  2317.     when 36
  2318.       return "弩"
  2319.     when 37
  2320.       return "弩"
  2321.     when 38
  2322.       return "弩"
  2323.     when 39
  2324.       return "弩"
  2325.     when 40
  2326.       return "弩"
  2327.     when 41
  2328.       return "弩"
  2329.     when 42
  2330.       return "弩"
  2331.     when 43
  2332.       return "弩"
  2333.     when 45
  2334.       return "枪"
  2335.     when 46
  2336.       return "枪"
  2337.     when 47
  2338.       return "枪"      
  2339.     when 48
  2340.       return "枪"
  2341.     when 139
  2342.       return "枪"
  2343.     when 141
  2344.       return "枪"
  2345.     when 112
  2346.       return "光箭"
  2347.     when 113
  2348.       return "光箭"
  2349.     when 114
  2350.       return "光箭"
  2351.     when 115
  2352.       return "光箭"
  2353.     when 116
  2354.       return "光箭"
  2355.     when 117
  2356.       return "光箭"
  2357.     when 118
  2358.       return "光箭"
  2359.     when 119
  2360.       return "光箭"
  2361.     when 135
  2362.       return "光箭"
  2363.     when 136
  2364.       return "光箭"
  2365.     when 147
  2366.       return "光箭"
  2367.     when 148
  2368.       return "光箭"
  2369.     when 121
  2370.       return "魔导"
  2371.     when 122
  2372.       return "魔导"
  2373.     when 123
  2374.       return "魔导"
  2375.     when 124
  2376.       return "魔导"
  2377.     when 137
  2378.       return "魔导"
  2379.     when 149
  2380.       return "魔导"
  2381.     end
  2382.     # 上記のID以外すべてに適用されるアクション
  2383.     return "通常攻撃"
  2384.   end
  2385. #--------------------------------------------------------------------------
  2386. # ● グラフィック指定 装備している武器のIDから武器グラフィックを指定します
  2387. #--------------------------------------------------------------------------
  2388. # return "001-Weapon01" ←対応する武器グラフィックのファイル名を入れてください
  2389. #                         武器グラフィックはキャラクターフォルダに入れてください
  2390. # アイコンを利用する場合、IDにないものは全てアイコン画像を利用します
  2391. # 特定の武器を非表示にしたい場合は空の画像を用意して、それを指定します
  2392.   def graphic
  2393.     case @id
  2394.     when 1
  2395.       return ""
  2396.     end
  2397.     # 上記ID以外は全てアイコン画像を利用
  2398.     return ""
  2399.   end
  2400. #--------------------------------------------------------------------------
  2401. # ● 飛ばしアニメに貼り付ける武器グラフィック キャラクターフォルダを参照します
  2402. #--------------------------------------------------------------------------
  2403. # アニメ飛ばし用の武器画像は上の設定とは別に指定。弓と矢の表現などに。
  2404. # ここで設定しなかった武器は上の画像と同じになります。
  2405.   def flying_graphic
  2406.     case @id
  2407.     when 75
  2408.       return ""
  2409.     end
  2410.     # 上記ID以外は全て上の画像を利用
  2411.     return ""
  2412.   end
  2413. end  
  2414. #==============================================================================
  2415. # ■ module RPG
  2416. #------------------------------------------------------------------------------
  2417. #  スキルアクション設定です。
  2418. #==============================================================================
  2419. class Skill
  2420. #--------------------------------------------------------------------------
  2421. # ● スキルIDからアクションを決めます。
  2422. #--------------------------------------------------------------------------  
  2423.   def base_action
  2424.     case @id
  2425.     when 156
  2426.       return "震荡"
  2427.     when 143
  2428.       return "背射"
  2429.     when 214
  2430.       return "重击/敌"
  2431.     when 215
  2432.       return "连击/敌"
  2433.     when 216
  2434.       return "横扫/敌"
  2435.     when 217
  2436.       return "突刺/敌"
  2437.     when 218
  2438.       return "重击/敌2"
  2439.     when 219
  2440.       return "连击/敌2"
  2441.     when 220
  2442.       return "重击/敌3"
  2443.     when 209
  2444.       return "半月碎"
  2445.     when 208
  2446.       return "高温激光"
  2447.     when 207
  2448.       return "冰球"
  2449.     when 181
  2450.       return "雷暴2"
  2451.     when 206
  2452.       return "剧毒"
  2453.     when 205
  2454.       return "沙漠风暴"
  2455.     when 203
  2456.       return "散箭2"
  2457.     when 202
  2458.       return "浊流"
  2459.     when 195
  2460.       return "黑洞2"
  2461.     when 198
  2462.       return "连环爆烈"
  2463.     when 199
  2464.       return "强力爆烈"
  2465.     when 194
  2466.       return "星蓝之剑"
  2467.     when 197
  2468.       return "龙斩"
  2469.     when 16
  2470.       return "绞杀冰剑"
  2471.     when 17
  2472.       return "寒冰地狱"
  2473.     when 37
  2474.       return "寒冰地狱2"
  2475.     when 35
  2476.       return "歼灭之炎2"
  2477.     when 36
  2478.       return "绞杀冰剑2"
  2479.     when 12
  2480.       return "歼灭之炎"
  2481.     when 34
  2482.       return "高温射线"
  2483.     when 186
  2484.       return "混沌3"
  2485.     when 182
  2486.       return "雷暴"
  2487.     when 185
  2488.       return "混沌2"
  2489.     when 171
  2490.       return "真空碎"
  2491.     when 172
  2492.       return "地裂碎"
  2493.     when 170
  2494.       return "地裂斩"
  2495.     when 168
  2496.       return "烈火拳"
  2497.     when 144
  2498.       return "手雷"
  2499.     when 166
  2500.       return "火拳"
  2501.     when 167
  2502.       return "旋风"
  2503.     when 159
  2504.       return "能量冲击"
  2505.     when 160
  2506.       return "炸裂冲击"
  2507.     when 164
  2508.       return "炸裂冲击2"
  2509.     when 154
  2510.       return "穿甲弹"
  2511.     when 153
  2512.       return "榴弹"
  2513.     when 151
  2514.       return "超级连射"
  2515.     when 152
  2516.       return "超级连射2"
  2517.     when 163
  2518.       return "重力球"
  2519.     when 146
  2520.       return "天空突击"
  2521.     when 145
  2522.       return "重力射击"
  2523.     when 141
  2524.       return "冰箭2"
  2525.     when 139
  2526.       return "毒箭"
  2527.     when 138
  2528.       return "白羽之光"
  2529.     when 142
  2530.       return "白羽之光2"
  2531.     when 136
  2532.       return "空袭连射"
  2533.     when 204
  2534.       return "空袭连射2"
  2535.     when 135
  2536.       return "散箭"
  2537.     when 137
  2538.       return "冰箭"
  2539.     when 66
  2540.       return "撕咬"
  2541.     when 1
  2542.       return "2段攻撃ランダム用"
  2543.     when 100
  2544.       return "死神裂空碎"
  2545.     when 98
  2546.       return "疾电之失"
  2547.     when 97
  2548.       return "寒冰审判"
  2549.     when 96
  2550.       return "爆炎地狱"
  2551.     when 53
  2552.       return "真空刺"
  2553.     when 60
  2554.       return "真空刺2"
  2555.     when 52
  2556.       return "双破"
  2557.     when 22
  2558.       return "高速多段攻撃3"
  2559.     when 29
  2560.       return "高速多段攻撃4"
  2561.     when 30
  2562.       return "高速多段攻撃5"
  2563.     when 32
  2564.       return "多段攻撃2"
  2565.     when 54
  2566.       return "骑士剑法"
  2567.     when 59
  2568.       return "骑士剑法2"
  2569.     when 999
  2570.       return "多段攻撃"
  2571.     when 5
  2572.       return "杀戮盛宴"
  2573.     when 221
  2574.       return "杀戮盛宴3"
  2575.     when 3
  2576.       return "多段攻撃ランダム用"        
  2577.     when 999
  2578.       return "高速多段攻撃"
  2579.     when 19
  2580.       return "杀戮盛宴2"
  2581.     when 51
  2582.       return "重击"
  2583.     when 177
  2584.       return "地裂斩"
  2585.     when 95
  2586.       return "圣光突击"
  2587.     when 4
  2588.       return "重击2"
  2589.     when 20
  2590.       return "重击3"
  2591.     when 6
  2592.       return "重击4"
  2593.     when 161
  2594.       return "突刺"
  2595.     when 71
  2596.       return "突刺2"
  2597.     when 72
  2598.       return "突刺3"
  2599.     when 162
  2600.       return "突刺4"
  2601.     when 78
  2602.       return "突刺5"
  2603.     when 165
  2604.       return "突刺6"
  2605.     when 21
  2606.       return "毁灭残影"     
  2607.     end
  2608.     # 上記のID以外すべてに適用されるアクション  
  2609.     return "汎用スキル使用"
  2610.   end
  2611. #--------------------------------------------------------------------------
  2612. # ● 拡張設定 スキルIDから拡張設定を決めます。重複可能。
  2613. #--------------------------------------------------------------------------
  2614. # "必中"…絶対に攻撃が回避されない
  2615. # "HP消費"…MP消費がHP消費に変わる
  2616. # "%コストMAX"…スキルコストが最大MP(HP)からの割合に変化。例)MAXMP500でコスト10だとMP50消費に
  2617. # "%コストNOW"…スキルコストが現在MP(HP)からの割合に変化
  2618. # "反射無視"…魔法・物理スキル反射と無効化ステートを無視する
  2619. # "%ダメージMAX/30"…ダメージ計算が対象の最大HP(MP)からの割合に変化。/から後の数値%分ダメージ
  2620. # "%ダメージNOW/30"…ダメージ計算が対象の現在HP(MP)からの割合に変化。/から後の数値%分ダメージ
  2621. # "コスト威力"…使用者の最大MP(HP)に対する消費MP(HP)の割合で威力が変化。MAX消費でそのままの威力、MAXの10%で威力1/10
  2622. # "現HP威力"…使用者の最大HPに対する現在HPの割合で威力が変化。MAXでそのままの威力、MAXの10%で威力1/10
  2623. # "現MP威力"…使用者の最大MPに対する現在MPの割合で威力が変化。MAXでそのままの威力、MAXの10%で威力1/10
  2624. # "MP消費半分無効"…防具オプション「MP消費半分」を無効化
  2625. # "ヘルプ非表示"…アクション時、ヘルプウインドウにスキル名を表示しない
  2626. # "全域"…ターゲット範囲が敵味方全体に
  2627. # "ランダムターゲット"…ターゲット内から一体をランダムで選ぶように
  2628. # "自分以外"…ターゲット内から自分を除く
  2629. # "ダメージアクション禁止"…ダメージを与えた際のアクションを取らせない
  2630. # "行動前フラッシュなし"…行動時にバトラーを光らせない
  2631. # "なし"…拡張なし
  2632.   def extension
  2633.     case @id
  2634.     when 11
  2635.       return ["ヘルプ非表示"]
  2636.     when 2
  2637.       return ["反射無視"]
  2638.     when 7
  2639.       return ["反射無視"]
  2640.     when 9
  2641.       return ["反射無視"]
  2642.     when 13
  2643.       return ["反射無視"]
  2644.     when 23
  2645.       return ["反射無視"]
  2646.     when 24
  2647.       return ["反射無視"]
  2648.     when 42
  2649.       return ["反射無視"]
  2650.     when 44
  2651.       return ["反射無視"]
  2652.     when 45
  2653.       return ["反射無視"]
  2654.     when 50
  2655.       return ["反射無視"]
  2656.     when 55
  2657.       return ["反射無視"]
  2658.     when 56
  2659.       return ["反射無視"]
  2660.     when 58
  2661.       return ["反射無視"]
  2662.     when 63
  2663.       return ["反射無視"]
  2664.     when 69
  2665.       return ["反射無視"]
  2666.     when 77
  2667.       return ["反射無視"]
  2668.     when 147
  2669.       return ["反射無視"]
  2670.     when 155
  2671.       return ["反射無視"]
  2672.     when 178
  2673.       return ["反射無視"]
  2674.     when 28
  2675.       return ["反射無視"]
  2676.     when 189
  2677.       return ["反射無視"]
  2678.     when 190
  2679.       return ["反射無視"]
  2680.     when 191
  2681.       return ["反射無視"]
  2682.     when 192
  2683.       return ["反射無視"]
  2684.     when 210
  2685.       return ["反射無視"]
  2686.     when 211
  2687.       return ["反射無視"]
  2688.     when 212
  2689.       return ["反射無視"]
  2690.     when 3
  2691.       return ["ランダムターゲット"]
  2692.     when 165
  2693.       return ["ランダムターゲット"]
  2694.     when 198
  2695.       return ["ランダムターゲット"]
  2696.     when 162
  2697.       return ["ランダムターゲット"]
  2698.     when 205
  2699.       return ["ランダムターゲット"]
  2700.     when 154
  2701.       return ["ランダムターゲット"]
  2702.     when 151
  2703.       return ["ランダムターゲット"]
  2704.     when 146
  2705.       return ["ランダムターゲット"]
  2706.     when 204
  2707.       return ["ランダムターゲット"]
  2708.     when 136
  2709.       return ["ランダムターゲット"]
  2710.     when 98
  2711.       return ["ランダムターゲット"]
  2712.     when 95
  2713.       return ["ランダムターゲット"]
  2714.     when 59
  2715.       return ["ランダムターゲット"]
  2716.     when 54
  2717.       return ["ランダムターゲット"]
  2718.     when 22
  2719.       return ["ランダムターゲット"]
  2720.     when 32
  2721.       return ["ランダムターゲット"]           
  2722.     when 71
  2723.       return ["ランダムターゲット"]
  2724.     when 72
  2725.       return ["ランダムターゲット"]
  2726.     when 73
  2727.       return ["ランダムターゲット"]
  2728.     when 78
  2729.       return ["ランダムターゲット"]
  2730.     when 79
  2731.       return ["ランダムターゲット"]
  2732.     when 52
  2733.       return ["ランダムターゲット"]
  2734.     when 215
  2735.       return ["ランダムターゲット"]
  2736.     when 219
  2737.       return ["ランダムターゲット"]
  2738.     when 14
  2739.       return ["ダメージアクション禁止"]
  2740.     when 167
  2741.       return ["ダメージアクション禁止"]
  2742.     when 999
  2743.       return ["全域"]
  2744.     when 19
  2745.       return ["ヘルプ非表示","行動前フラッシュなし"]
  2746.     when 100
  2747.       return ["ダメージアクション禁止"]
  2748.     when 185
  2749.       return ["ダメージアクション禁止"]
  2750.     when 16
  2751.       return ["ダメージアクション禁止"]
  2752.     when 36
  2753.       return ["ダメージアクション禁止"]
  2754.     when 101
  2755.       return ["ヘルプ非表示","行動前フラッシュなし"]
  2756.     when 102
  2757.       return ["ヘルプ非表示","行動前フラッシュなし"]
  2758.     when 103
  2759.       return ["ヘルプ非表示","行動前フラッシュなし"]
  2760.     end
  2761.     # 上記のID以外すべてに適用される拡張設定
  2762.     return ["なし"]
  2763.   end
  2764. #--------------------------------------------------------------------------
  2765. # ● 飛ばしアニメに貼り付ける画像 キャラクターフォルダを参照します
  2766. #--------------------------------------------------------------------------
  2767. # スキルIDで画像を指定
  2768.   def flying_graphic
  2769.     case @id
  2770.     when 1
  2771.       return ""
  2772.     end
  2773.     # 上記ID以外は画像未使用
  2774.     return ""
  2775.   end
  2776. end  
  2777. #==============================================================================
  2778. # ■ module RPG
  2779. #------------------------------------------------------------------------------
  2780. #  アイテムアクション設定です。
  2781. #==============================================================================
  2782. class Item
  2783. #--------------------------------------------------------------------------
  2784. # ● アイテムIDからアクションを決めます。
  2785. #--------------------------------------------------------------------------  
  2786.   def base_action
  2787.     case @id
  2788.     when 1
  2789.       return "アイテム使用"
  2790.     end
  2791.     # 上記のID以外すべてに適用されるアクション
  2792.     return "アイテム使用"
  2793.   end
  2794. #--------------------------------------------------------------------------
  2795. # ● 拡張設定 アイテムIDから拡張設定を決めます。重複可能。
  2796. #--------------------------------------------------------------------------
  2797. # "必中"…絶対に攻撃が回避されない
  2798. # "反射無視"…魔法・物理反射と無効化ステートを無視する
  2799. # "ヘルプ非表示"…ヘルプウインドウにアイテム名を表示しない
  2800. # "全域"…ターゲット範囲が敵味方全体に
  2801. # "ランダムターゲット"…ターゲット内から一体をランダムで選ぶように
  2802. # "自分以外"…ターゲット内から自分を除く
  2803. # "ダメージアクション禁止"…ダメージを与えた際のアクションを取らせない
  2804. # "行動前フラッシュなし"…行動時にバトラーを光らせない
  2805. # "なし"…拡張なし
  2806.   def extension
  2807.     case @id
  2808.     when 999
  2809.       return ["なし"]
  2810.     end
  2811.     # 上記のID以外すべてに適用される拡張設定
  2812.     return ["なし"]
  2813.   end
  2814. end
  2815. end
复制代码
  1. #==============================================================================
  2. # ■ Sprite_Battler Ver2.4
  3. #------------------------------------------------------------------------------
  4. #  バトラー表示用のスプライトです。
  5. #==============================================================================
  6. class Sprite_Battler < Sprite_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● オブジェクト初期化
  9.   #--------------------------------------------------------------------------
  10.   def initialize(viewport, battler = nil)
  11.     super(viewport)
  12.     @battler = 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.     @angle = 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.     @wait = 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.     @height = 0                        # 縦矩形
  66.     @picture_time = 0                  # ピクチャー表示時間
  67.     @individual_targets = []           # 個別処理の保持ターゲット
  68.     @balloon_duration = 65             # ふきだしアニメ時間
  69.     @reverse = false                   # アニメ逆転再生フラグ
  70.     # バトラーがいない場合は処理を中断
  71.     return @battler_visible = false if @battler == nil
  72.     # バトラーがアクターの場合、またはエネミーアニメがオンの場合
  73.     @anime_flug = true if @battler.actor?
  74.     @anime_flug = true if [email protected]? && @battler.anime_on
  75.     # バトラー作成
  76.     make_battler
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● バトラー作成
  80.   #--------------------------------------------------------------------------
  81.   def make_battler
  82.     # 初期配置の取得
  83.     @battler.base_position
  84.     # 色相はバトラーとして認識
  85.     @battler_hue = @battler.battler_hue
  86.     # バトラーがアクターの場合、またはエネミーアニメがオンの場合
  87.     if @anime_flug
  88.       # メイン武器を用意
  89.       @weapon_R = Sprite_Weapon.new(viewport,@battler)
  90.       # 味方はキャラクター名、エネミーはバトラー名を取得
  91.       @battler_name = @battler.character_name if @battler.actor?
  92.       @battler_name = @battler.battler_name unless @battler.actor?
  93.       # エネミー反転がオンの場合、画像を反転させる
  94.       self.mirror = true if [email protected]? && @battler.action_mirror
  95.       # 歩行グラフィックを利用するかどうかで転送元の矩形サイズの認識先を変える
  96.       self.bitmap = Cache.character(@battler_name) if N01::WALK_ANIME
  97.       self.bitmap = Cache.character(@battler_name + "_1") unless N01::WALK_ANIME
  98.       # 転送元の矩形を取得
  99.       @width = self.bitmap.width / @base_width
  100.       @height = self.bitmap.height / @base_height
  101.       # 矩形を設定
  102.       @sx = @pattern * @width
  103.       @sy = @anime_kind * @height
  104.       # バトラー本体を描画
  105.       self.src_rect.set(@sx, @sy, @width, @height)
  106.     # アニメしないバトラーの場合
  107.     else
  108.       # ビットマップを取得、設定
  109.       @battler_name = @battler.battler_name
  110.       self.bitmap = Cache.battler(@battler_name, @battler_hue)
  111.       @width = bitmap.width
  112.       @height = bitmap.height
  113.     end
  114.     # バックアタック時には画像を反転させる
  115.     self.mirror = false if self.mirror && $back_attack && N01::BACK_ATTACK
  116.     self.mirror = true if $back_attack && !self.mirror && N01::BACK_ATTACK
  117.     # 位置を初期化
  118.     @battler.reset_coordinate
  119.     # 原点を決定
  120.     self.ox = @width / 2
  121.     self.oy = @height * 2 / 3
  122.     # スプライトの座標を設定
  123.     update_move
  124.     # アニメ飛ばし用スプライトを用意
  125.     @move_anime = Sprite_MoveAnime.new(viewport,battler)
  126.     # ピクチャ用スプライトを用意
  127.     @picture = Sprite.new
  128.     # 影スプライトを用意
  129.     make_shadow if N01::SHADOW
  130.     # ダメージスプライト作成
  131.     @damage = Sprite_Damage.new(viewport,battler)
  132.   end
  133.   #--------------------------------------------------------------------------
  134.   # ● 影作成
  135.   #--------------------------------------------------------------------------
  136.   def make_shadow
  137.     @shadow.dispose if @shadow != nil
  138.     @battler_hue = @battler.battler_hue
  139.     @shadow = Sprite.new(viewport)
  140.     @shadow.z = 200
  141.     @shadow.visible = false
  142.     # バトラーに当てられた影グラフィックを用意
  143.     @shadow.bitmap = Cache.character(@battler.shadow)
  144.     @shadow_height = @shadow.bitmap.height
  145.     # 影位置の微調整用インスタンス
  146.     @shadow_plus_x = @battler.shadow_plus[0] - @width / 2
  147.     @shadow_plus_y = @battler.shadow_plus[1]
  148.     # バトラー画像のサイズに合わせて影画像をリサイズ
  149.     @shadow.zoom_x = @width * 1.0 / @shadow.bitmap.width
  150.     # 更新
  151.     update_shadow
  152.     # フェードに影が引っかからないようにフラグを立てる
  153.     @skip_shadow = true
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 解放
  157.   #--------------------------------------------------------------------------
  158.   def dispose
  159.     self.bitmap.dispose if self.bitmap != nil
  160.     @weapon_R.dispose if @weapon_R != nil
  161.     @move_anime.dispose if @move_anime != nil
  162.     @picture.dispose if @picture != nil
  163.     @shadow.dispose if @shadow != nil
  164.     @damage.dispose if @damage != nil
  165.     @balloon.dispose if @balloon != nil
  166.     mirage_off
  167.     super
  168.   end  
  169.   #--------------------------------------------------------------------------
  170.   # ● ダメージアクション  action = [アニメID,反転フラグ,リアクション許可]
  171.   #--------------------------------------------------------------------------
  172.   def damage_action(action)
  173.     damage = @battler.hp_damage
  174.     damage = @battler.mp_damage if @battler.mp_damage != 0
  175.     # HPとMP両方同時にダメージがあるなら
  176.     if @battler.hp_damage != 0 && @battler.mp_damage != 0
  177.       @battler.double_damage = true
  178.       damage = @battler.hp_damage
  179.     end  
  180.     # 吸収攻撃でHP0の処理
  181.     if action[0] == "absorb"
  182.       absorb = true
  183.       action[0] = nil
  184.     end
  185.     # ヒットしている時のみアニメ実行
  186.     unless @battler.evaded or @battler.missed or action[0] == nil
  187.       @battler.animation_id = action[0]
  188.       @battler.animation_mirror = action[1]
  189.     end
  190.     # ダメージアクション実行
  191.     start_action(@battler.damage_hit) if damage > 0 && action[2]
  192.     # 攻撃が当たっていない場合は回避アクション実行
  193.     if @battler.evaded or @battler.missed
  194.       start_action(@battler.evasion) if action[2]
  195.       Sound.play_evasion
  196.     end
  197.     @damage.damage_pop unless absorb or action[3] != nil
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ● ダメージ数値POP
  201.   #--------------------------------------------------------------------------
  202.   def damage_pop(damage)
  203.     @damage.damage_pop(damage)
  204.   end  
  205.   #--------------------------------------------------------------------------
  206.   # ● 戦闘開始行動
  207.   #--------------------------------------------------------------------------
  208.   def first_action
  209.     # 行動できるかチェックし、できなければそのステートのアクション開始
  210.     action = @battler.first_action unless @battler.restriction == 4
  211.     action = $data_states[@battler.state_id].base_action if @battler.states[0] != nil && @battler.restriction == 4
  212.     start_action(action)
  213.     @skip_shadow = false
  214.   end
  215.   #--------------------------------------------------------------------------
  216.   # ● アクション開始
  217.   #--------------------------------------------------------------------------
  218.   def start_action(kind)
  219.     # 各種動作を初期化
  220.     reset
  221.     # 現在取っている待機アクションを記憶
  222.     stand_by
  223.     # 新しいアクション内容の決定
  224.     @action = N01::ACTION[kind].dup
  225.     # 行動配列の先頭からシフト
  226.     active = @action.shift
  227.     # 自動で終了を付ける
  228.     @action.push("終了")
  229.     # 現在のアクションを決定
  230.     @active_action = N01::ANIME[active]
  231.     # ウエイト設定
  232.     @wait = active.to_i if @active_action == nil
  233.     # 単発アクション開始
  234.     action
  235.   end
  236.   #--------------------------------------------------------------------------
  237.   # ● 強制単発アクション開始
  238.   #--------------------------------------------------------------------------
  239.   def start_one_action(kind,back)
  240.     # 各種動作を初期化
  241.     reset
  242.     # 現在取っている待機アクションを記憶
  243.     stand_by
  244.     # 座標リセットアクションをセッティング
  245.     @action = [back]
  246.     # 自動で終了を付ける
  247.     @action.push("終了")
  248.     # 現在のアクションを決定
  249.     @active_action = N01::ANIME[kind]
  250.     # 単発アクション開始
  251.     action
  252.   end
  253.   #--------------------------------------------------------------------------
  254.   # ● 次のアクションへ
  255.   #--------------------------------------------------------------------------
  256.   def next_action
  257.     # ウェイト中の場合キャンセル
  258.     return @wait -= 1 if @wait > 0
  259.     # まだ全アニメセルが終了していない場合キャンセル
  260.     return if @anime_end == false
  261.     # 最後のアニメセル表示待ち
  262.     return @unloop_wait -= 1 if @unloop_wait > 0
  263.     # 行動配列の先頭からシフト
  264.     active = @action.shift
  265.     # 現在のアクションを決定
  266.     @active_action = N01::ANIME[active]
  267.     # ウエイト設定
  268.     @wait = active.to_i if @active_action == nil
  269.     # 単発アクション開始
  270.     action
  271.   end
  272.   #--------------------------------------------------------------------------
  273.   # ● 待機アクション
  274.   #--------------------------------------------------------------------------
  275.   def stand_by
  276.     # 通常待機に
  277.     @repeat_action = @battler.normal
  278.     # HPが1/4でピンチモーションに
  279.     @repeat_action = @battler.pinch if @battler.hp <= @battler.maxhp / 4
  280.     # 防御中
  281.     @repeat_action = @battler.defence if @battler.guarding?
  282.     # 何もステートがなければ終了
  283.     return if @battler.state_id == nil
  284.     for state in @battler.states.reverse
  285.       # アクション禁止のステートだったらスキップ
  286.       next if state.extension.include?("ステートアクション禁止")
  287.       # エネミーで禁止されているステートアクションだったらスキップ
  288.       next if @battler.is_a?(Game_Enemy) && state.extension.include?("エネミー除外")
  289.       # ステートのモーションに
  290.       @repeat_action = state.base_action
  291.     end
  292.   end
  293.   #--------------------------------------------------------------------------
  294.   # ● 待機アクションの割り込み
  295.   #--------------------------------------------------------------------------
  296.   def push_stand_by
  297.     action = @battler.normal
  298.     action = @battler.pinch if @battler.hp <= @battler.maxhp / 4
  299.     action = @battler.defence if @battler.guarding?
  300.     for state in @battler.states.reverse
  301.       # アクション禁止のステートだったらスキップ
  302.       next if state.extension.include?("ステートアクション禁止")
  303.       # エネミーで禁止されているステートアクションだったらスキップ
  304.       next if @battler.is_a?(Game_Enemy) && state.extension.include?("エネミー除外")
  305.       # ステートのモーションに
  306.       action = state.base_action
  307.     end
  308.     @repeat_action = action
  309.     # 割り込み
  310.     @action.delete("終了")
  311.     act = N01::ACTION[action].dup
  312.     for i in 0...act.size
  313.       @action.push(act[i])
  314.     end  
  315.     @action.push("終了")
  316.   end
  317.   #--------------------------------------------------------------------------
  318.   # ● 各種変化を初期化
  319.   #--------------------------------------------------------------------------
  320.   def reset
  321.     self.zoom_x = self.zoom_y = 1
  322.     self.oy = @height * 2 / 3
  323.     @angle = self.angle = 0
  324.     @anime_end = true
  325.     @non_repeat = false
  326.     @anime_freeze = false
  327.     @unloop_wait = 0
  328.   end  
  329.   #--------------------------------------------------------------------------
  330.   # ● ジャンプを初期化
  331.   #--------------------------------------------------------------------------
  332.   def jump_reset
  333.     @battler.jump = @jump_time = @jump_time_plus = @jump_up = @jump_down = 0
  334.     @jump_size = @jump_plus = @float_time = @float_up = 0
  335.   end
  336.   #--------------------------------------------------------------------------
  337.   # ● ターゲット情報を受け取る
  338.   #--------------------------------------------------------------------------
  339.   def get_target(target)
  340.     # 個別処理中は中止(全域で自分が巻き込まれた時ターゲット情報が狂わないように)
  341.     return if @battler.individual
  342.     @target_battler = target
  343.   end
  344.   #--------------------------------------------------------------------------
  345.   # ● アクション情報をバトラーに格納
  346.   #--------------------------------------------------------------------------
  347.   def send_action(action)
  348.     @battler.play = 0
  349.     @battler.play = action if @battler.active
  350.   end
  351.   #--------------------------------------------------------------------------
  352.   # ● バトラー追加
  353.   #--------------------------------------------------------------------------
  354.   def battler_join
  355.     if @battler.exist? && !@battler_visible
  356.       # 戦闘不能からの復活なら処理をスキップ
  357.       if @battler.revival && @anime_flug
  358.         return @battler.revival = false
  359.       elsif @battler.revival && !@anime_flug
  360.         @battler.revival = false
  361.         self.visible = true
  362.         return
  363.       end  
  364.       @anime_flug = true if @battler.actor?
  365.       @anime_flug = true if [email protected]? && @battler.anime_on
  366.       make_battler
  367.       @damage = Sprite_Damage.new(viewport,battler)
  368.       @join = true
  369.       first_action
  370.     end
  371.   end
  372.   #--------------------------------------------------------------------------
  373.   # ● フレーム更新 ※再定義
  374.   #--------------------------------------------------------------------------
  375.   def update
  376.     super
  377.     # バトラーがいない場合スキップ
  378.     return self.bitmap = nil if @battler == nil
  379.     # バトラー追加
  380.     battler_join
  381.     # 次のアクションへ
  382.     next_action
  383.     # アニメパターン更新
  384.     update_anime_pattern
  385.     # ターゲット更新
  386.     update_target
  387.     # 強制アクション更新
  388.     update_force_action
  389.     # 座標更新
  390.     update_move
  391.     # 影更新
  392.     update_shadow if @shadow != nil
  393.     # 武器更新
  394.     @weapon_R.update if @weapon_action
  395.     # 浮遊更新
  396.     update_float if @float_time > 0
  397.     # 回転更新
  398.     update_angle if @angle_time > 0
  399.     # 拡大縮小更新
  400.     update_zoom if @zoom_time > 0
  401.     # 残像更新
  402.     update_mirage if @mirage_flug
  403.     # ピクチャ更新
  404.     update_picture if @picture_time > 0
  405.     # アニメ飛ばし更新
  406.     update_move_anime if @anime_moving
  407.     # ふきだしアニメ更新
  408.     update_balloon if @balloon_duration <= 64
  409.     # ダメージスプライト更新
  410.     @damage.update
  411.     setup_new_effect
  412.     update_effect
  413.     update_battler_bitmap
  414.   end
  415.   #--------------------------------------------------------------------------
  416.   # ● アニメパターン更新
  417.   #--------------------------------------------------------------------------
  418.   def update_anime_pattern
  419.     # 更新時間がくるまでスキップ
  420.     return @frame -= 1 if @frame != 0
  421.     # 必要な時だけ武器アニメ更新
  422.     @weapon_R.action if @weapon_action && @weapon_R != nil
  423.     # アニメのコマが最後まで到達したらリピート方法をチェック
  424.     if @pattern_back
  425.       # 往復ループ
  426.       if @anime_loop == 0
  427.         # 逆転再生
  428.         if @reverse
  429.           @pattern += 1
  430.           if @pattern == @base_width - 1
  431.             @pattern_back = false
  432.             @anime_end = true
  433.           end
  434.         # 通常再生
  435.         else  
  436.           @pattern -= 1
  437.           if @pattern == 0
  438.             @pattern_back = false
  439.             @anime_end = true
  440.           end  
  441.         end  
  442.       # 片道ループもしくはループしない
  443.       else
  444.         @anime_end = true
  445.         if @anime_loop == 1
  446.           @pattern = 0 if !@reverse
  447.           @pattern = @base_width - 1 if @reverse
  448.           @pattern_back = false
  449.         end  
  450.       end  
  451.     # アニメのコマを進める   
  452.     else
  453.       if @reverse
  454.         @pattern -= 1
  455.         @pattern_back = true if @pattern == 0
  456.       else  
  457.         @pattern += 1
  458.         @pattern_back = true if @pattern == @base_width - 1
  459.       end  
  460.     end
  461.     # 更新時間を初期化
  462.     @frame = @anime_speed
  463.     # アニメ固定の場合は横矩形を固定
  464.     return if @anime_freeze
  465.     # 転送元の矩形を設定
  466.     return unless @anime_flug
  467.     @sx = @pattern * @width
  468.     @sy = @anime_kind * @height
  469.     self.src_rect.set(@sx, @sy, @width, @height)
  470.   end
  471.   #--------------------------------------------------------------------------
  472.   # ● ターゲット更新 action = ["N01target_change",ターゲット情報]
  473.   #--------------------------------------------------------------------------
  474.   def update_target
  475.     # ターゲットチェック
  476.     return if @battler.force_target == 0
  477.     # 個別処理中は中止(全域で自分が巻き込まれた時ターゲット情報が狂わないように)
  478.     return if @battler.individual
  479.     @target_battler = @battler.force_target[1]
  480.     @battler.force_target = 0
  481.   end  
  482.   #--------------------------------------------------------------------------
  483.   # ● 強制アクション更新 action = [識別,復帰,実行するアクション]
  484.   #--------------------------------------------------------------------------
  485.   def update_force_action
  486.     # 強制アクションチェック
  487.     action = @battler.force_action
  488.     return if action == 0
  489.     @battler.force_action = 0
  490.     # アクティブ中は割り込ませない
  491.     return if @battler.active
  492.     # コラプスならそのまま行動に直結
  493.     return collapse_action if action[0] == "N01collapse"
  494.     # 単発ならそのまま行動に直結
  495.     return start_one_action(action[2],action[1]) if action[0] == "単発"
  496.     # 通しはアクションとして扱う
  497.     start_action(action[2])
  498.     # 座標復帰の有無
  499.     return if action[1] == ""
  500.     # 終了位置を入れ替えて復帰アクションを入れる
  501.     @action.delete("終了")
  502.     @action.push(action[1])
  503.     @action.push("終了")
  504.   end   
  505.   #--------------------------------------------------------------------------
  506.   # ● 座標更新
  507.   #--------------------------------------------------------------------------
  508.   def update_move
  509.     # 加減速で出る距離の増減を補完
  510.     if @move_speed_plus_x > 0
  511.       # 移動計算
  512.       @move_x += @moving_x
  513.       # 移動を実行
  514.       @battler.move_x = @move_x
  515.       @move_speed_plus_x -= 1
  516.     elsif @move_speed_x > 0
  517.       # 加速の場合
  518.       if @move_boost_x != 0
  519.         @moving_x += @move_boost_x
  520.       end  
  521.       # 移動計算
  522.       @move_x += @moving_x
  523.       # 移動を実行
  524.       @battler.move_x = @move_x
  525.       @move_speed_x -= 1
  526.     end
  527.     # 加減速で出る距離の増減を補完
  528.     if @move_speed_plus_y > 0
  529.       # 移動計算
  530.       @move_y += @moving_y
  531.       # 移動を実行
  532.       @battler.move_y = @move_y
  533.       @move_speed_plus_y -= 1
  534.     elsif @move_speed_y > 0
  535.       # 加速の場合
  536.       if @move_boost_y != 0
  537.         @moving_y += @move_boost_y
  538.       end  
  539.       # 移動計算
  540.       @move_y += @moving_y
  541.       # 移動を実行
  542.       @battler.move_y = @move_y
  543.       @move_speed_y -= 1
  544.     end
  545.     # ジャンプ上昇
  546.     if @jump_up != 0
  547.       # 移動計算
  548.       @jump_plus += @jump_up
  549.       # 移動を実行
  550.       @battler.jump = @jump_plus
  551.       @jump_up = @jump_up / 2
  552.       @jump_time -= 1
  553.       # ジャンプが頂点に達したら
  554.       if @jump_time == 0 or @jump_up == @jump_sign
  555.         @jump_down = @jump_up * 2 * @jump_sign * @jump_sign2
  556.         @jump_time_plus += @jump_time * 2
  557.         @jump_up = 0
  558.         return
  559.       end  
  560.     end  
  561.     # ジャンプ下降
  562.     if @jump_down != 0
  563.       if @jump_time_plus != 0
  564.         @jump_time_plus -= 1
  565.       elsif @jump_down != @jump_size
  566.         # 移動計算
  567.         @jump_plus += @jump_down
  568.         # 移動を実行
  569.         @battler.jump = @jump_plus
  570.         @jump_down = @jump_down * 2
  571.         if @jump_down == @jump_size
  572.           if @jump_flug
  573.             @jump_flug = false
  574.           else
  575.             # 移動計算
  576.             @jump_plus += @jump_down
  577.             # 移動を実行
  578.             @battler.jump = @jump_plus
  579.             @jump_down = @jump_size = 0
  580.           end
  581.         end  
  582.       end
  583.     end
  584.     # スプライトの座標を設定
  585.     self.x = @battler.position_x
  586.     self.y = @battler.position_y
  587.     self.z = @battler.position_z
  588.   end
  589.   #--------------------------------------------------------------------------
  590.   # ● 影更新
  591.   #--------------------------------------------------------------------------
  592.   def update_shadow
  593.     @shadow.opacity = self.opacity
  594.     @shadow.x = self.x + @shadow_plus_x
  595.     @shadow.y = self.y + @shadow_plus_y - @jump_plus
  596.   end
  597.   #--------------------------------------------------------------------------
  598.   # ● 浮遊更新
  599.   #--------------------------------------------------------------------------
  600.   def update_float
  601.     @float_time -= 1
  602.     @jump_plus += @float_up
  603.     @battler.jump = @jump_plus
  604.   end   
  605.   #--------------------------------------------------------------------------
  606.   # ● 回転更新
  607.   #--------------------------------------------------------------------------
  608.   def update_angle
  609.     # 回転実行
  610.     @angle += @angling
  611.     self.angle = @angle
  612.     @angle_time -= 1
  613.     # 回転時間がなくなったら項目をリセット
  614.     return @angle = 0 if @angle_time == 0
  615.     # 復帰フラグがあれば角度を0に戻す
  616.     self.angle = 0 if @angle_reset
  617.   end  
  618.   #--------------------------------------------------------------------------
  619.   # ● 拡大縮小更新
  620.   #--------------------------------------------------------------------------
  621.   def update_zoom
  622.     # 拡大縮小実行
  623.     @zoom_x += @zooming_x
  624.     @zoom_y += @zooming_y
  625.     self.zoom_x = @zoom_x
  626.     self.zoom_y = @zoom_y
  627.     @zoom_time -= 1
  628.     # 拡大縮小時間がなくなったら項目をリセット
  629.     return if @zoom_time != 0
  630.     @zoom_x = @zoom_y = 0
  631.     self.oy = @height * 2 / 3
  632.     # 復帰フラグがあれば戻す
  633.     self.zoom_x = self.zoom_y = 1 if @zoom_reset
  634.   end  
  635.   #--------------------------------------------------------------------------
  636.   # ● 残像更新
  637.   #--------------------------------------------------------------------------
  638.   def update_mirage
  639.     # 残像は最大3つまで表示し、2フレームごとに更新
  640.     mirage(@mirage0) if @mirage_count == 1
  641.     mirage(@mirage1) if @mirage_count == 3
  642.     mirage(@mirage2) if @mirage_count == 5
  643.     @mirage_count += 1
  644.     @mirage_count = 0 if @mirage_count == 6
  645.   end
  646.   #--------------------------------------------------------------------------
  647.   # ● ピクチャ更新
  648.   #--------------------------------------------------------------------------
  649.   def update_picture
  650.     @picture_time -= 1
  651.     @picture.x += @moving_pic_x
  652.     @picture.y += @moving_pic_y
  653.   end  
  654.   #--------------------------------------------------------------------------
  655.   # ● アニメ飛ばし更新
  656.   #--------------------------------------------------------------------------
  657.   def update_move_anime
  658.     @move_anime.update
  659.     @anime_moving = false if @move_anime.finish?
  660.     @move_anime.action_reset if @move_anime.finish?
  661.   end  
  662.   #--------------------------------------------------------------------------
  663.   # ● 崩壊エフェクトの更新 ※再定義
  664.   #--------------------------------------------------------------------------
  665.   def update_collapse
  666.     normal_collapse if @collapse_type == 2
  667.     boss_collapse1 if @collapse_type == 3
  668.   end
  669.   #--------------------------------------------------------------------------
  670.   # ● ふきだしアニメ更新
  671.   #--------------------------------------------------------------------------
  672.   def update_balloon
  673.     @balloon_duration -= 1 if @balloon_duration > 0 && !@balloon_back
  674.     @balloon_duration += 1 if @balloon_back
  675.     if @balloon_duration == 64
  676.       @balloon_back = false
  677.       @balloon.visible = false
  678.     elsif @balloon_duration == 0
  679.       @balloon.visible = false if @balloon_loop == 0
  680.       @balloon_back = true if @balloon_loop == 1
  681.     end   
  682.     @balloon.x = self.x
  683.     @balloon.y = self.y
  684.     @balloon.z = 10
  685.     @balloon.opacity = self.opacity
  686.     sx = 7 * 32 if @balloon_duration < 12
  687.     sx = (7 - (@balloon_duration - 12) / 8) * 32 unless @balloon_duration < 12
  688.     @balloon.src_rect.set(sx, @balloon_id * 32, 32, 32)
  689.   end
  690.   #--------------------------------------------------------------------------
  691.   # ● 転送元ビットマップの更新 ※再定義
  692.   #--------------------------------------------------------------------------
  693.   def update_battler_bitmap
  694.     return if @battler.actor?
  695.     if @battler.battler_name != @battler_name or @battler.battler_hue != @battler_hue
  696.       @battler_name = @battler.battler_name
  697.       @battler_hue = @battler.battler_hue
  698.       make_battler
  699.       self.opacity = 0 if @battler.dead? or @battler.hidden
  700.     end
  701.   end
  702.   #--------------------------------------------------------------------------
  703.   # ● アクション実行
  704.   #--------------------------------------------------------------------------
  705.   def action
  706.     return if @active_action == nil
  707.     action = @active_action[0]
  708.     # 反転の場合
  709.     return mirroring if action == "反転"
  710.     # 回転の場合  
  711.     return angling if action == "angle"
  712.     # 拡大縮小の場合  
  713.     return zooming if action == "zoom"
  714.     # 残像ONの場合
  715.     return mirage_on if action == "残像ON"
  716.     # 残像OFFの場合
  717.     return mirage_off if action == "残像OFF"
  718.     # ピクチャ表示の場合
  719.     return picture if action == "pic"
  720.     # ピクチャ消去の場合
  721.     return @picture.visible = false && @picture_time = 0 if action == "ピクチャ消去"
  722.     # グラフィックファイル変更の場合  
  723.     return graphics_change if action == "change"
  724.     # 戦闘アニメ表示の場合  
  725.     return battle_anime if action == "anime"
  726.     # ふきだしアニメ表示の場合  
  727.     return balloon_anime if action == "balloon"
  728.     # BGM/BGS/SE演奏の場合  
  729.     return sound if action == "sound"
  730.     # ゲームスイッチ操作の場合  
  731.     return $game_switches[@active_action[1]] = @active_action[2] if action == "switch"
  732.     # ゲーム変数操作の場合  
  733.     return variable if action == "variable"
  734.     # 二刀限定の場合
  735.     return two_swords if action == "二刀限定"
  736.     # 非二刀限定の場合
  737.     return non_two_swords if action == "非二刀限定"
  738.     # アクション条件の場合
  739.     return necessary if action == "nece"
  740.     # スキル派生の場合  
  741.     return derivating if action == "der"
  742.     # 個別処理開始の場合
  743.     return individual_action if action == "個別処理開始"
  744.     # 個別処理終了の場合
  745.     return individual_action_end if action == "個別処理終了"
  746.     # 待機に移行しない場合
  747.     return non_repeat if action == "待機に移行しない"
  748.     # 初期位置変更の場合
  749.     return @battler.change_base_position(self.x, self.y) if action == "初期位置変更"
  750.     # 初期位置変更解除の場合
  751.     return @battler.base_position if action == "初期位置変更解除"
  752.     # ターゲット変更の場合  
  753.     return change_target if action == "target"
  754.     # ターゲットのコラプス許可
  755.     return send_action(action) if action == "コラプス許可"
  756.     # アクティブ解除
  757.     return send_action(action) if action == "アクティブ解除"
  758.     # ステート付与の場合  
  759.     return state_on if action == "sta+"
  760.     # ステート解除の場合  
  761.     return state_off if action == "sta-"
  762.     # ゲーム全体のスピード変更の場合
  763.     return Graphics.frame_rate = @active_action[1] if action == "fps"
  764.     # 浮遊の場合  
  765.     return floating if action == "float"
  766.     # 強制アクションの場合  
  767.     return force_action if @active_action.size == 4
  768.     # 座標リセットの場合  
  769.     return reseting if @active_action.size == 5
  770.     # 移動の場合
  771.     return moving if @active_action.size == 7
  772.     # バトラーアニメの場合
  773.     return battler_anime if @active_action.size == 9
  774.     # アニメ飛ばしの場合
  775.     return moving_anime if @active_action.size == 11
  776.     # 終了の場合
  777.     return anime_finish if action == "終了"
  778.   end
  779.   #--------------------------------------------------------------------------
  780.   # ● 反転実行
  781.   #--------------------------------------------------------------------------
  782.   def mirroring  
  783.     # すでに反転されていれば元に戻す
  784.     if self.mirror
  785.       self.mirror = false
  786.       # 武器アニメも反映
  787.       @weapon_R.mirroring if @anime_flug
  788.     else
  789.       self.mirror = true
  790.       # 武器アニメも反映
  791.       @weapon_R.mirroring if @anime_flug
  792.     end
  793.   end  
  794.   #--------------------------------------------------------------------------
  795.   # ● 回転実行
  796.   #--------------------------------------------------------------------------
  797.   def angling  
  798.     # ジャンプを初期化
  799.     jump_reset
  800.     # 情報確認
  801.     @angle_time = @active_action[1]
  802.     start_angle = @active_action[2]
  803.     end_angle = @active_action[3]
  804.     @angle_reset = @active_action[4]
  805.     # バックアタック時には逆に
  806.     start_angle *= -1 if $back_attack
  807.     end_angle *= -1 if $back_attack
  808.     # エネミーは逆に
  809.     start_angle *= -1 if @battler.is_a?(Game_Enemy)
  810.     end_angle *= -1 if @battler.is_a?(Game_Enemy)
  811.     # 時間が0以下なら即座に最終角度へ
  812.     if @angle_time <= 0
  813.       self.angle = end_angle
  814.       return  @angle_time = 0
  815.     end  
  816.     # 回転時間から1フレームあたりの角度を出す
  817.     @angling = (end_angle - start_angle) / @angle_time
  818.     # 割り切れない余りを初期角度に
  819.     @angle = (end_angle - start_angle) % @angle_time + start_angle
  820.   end
  821.   #--------------------------------------------------------------------------
  822.   # ● 拡大縮小実行
  823.   #--------------------------------------------------------------------------
  824.   def zooming  
  825.     # ジャンプを初期化
  826.     jump_reset
  827.     # 情報確認
  828.     @zoom_time = @active_action[1]
  829.     zoom_x = @active_action[2] - 1
  830.     zoom_y = @active_action[3] - 1
  831.     @zoom_reset = @active_action[4]
  832.     @zoom_x = @zoom_y = 1
  833.     # 時間が0以下ならスキップ
  834.     return @zoom_time = 0 if @zoom_time <= 0
  835.     # 拡大時間から1フレームあたりの拡大率を出す
  836.     @zooming_x = zoom_x / @zoom_time
  837.     @zooming_y = zoom_y / @zoom_time
  838.   end  
  839.   #--------------------------------------------------------------------------
  840.   # ● 残像開始
  841.   #--------------------------------------------------------------------------
  842.   def mirage_on
  843.     # 戦闘不能時には残像させない
  844.     return if @battler.dead?
  845.     @mirage0 = Sprite.new(self.viewport)
  846.     @mirage1 = Sprite.new(self.viewport)
  847.     @mirage2 = Sprite.new(self.viewport)
  848.     @mirage_flug = true
  849.     @mirage_count = 0
  850.   end  
  851.   #--------------------------------------------------------------------------
  852.   # ● 残像表示
  853.   #--------------------------------------------------------------------------
  854.   def mirage(body)
  855.     body.bitmap = self.bitmap.dup
  856.     body.x = self.x
  857.     body.y = self.y
  858.     body.ox = self.ox
  859.     body.oy = self.oy
  860.     body.z = self.z
  861.     body.mirror = self.mirror
  862.     body.angle = @angle
  863.     body.opacity = 160
  864.     body.zoom_x = self.zoom_x
  865.     body.zoom_y = self.zoom_y   
  866.     body.src_rect.set(@sx, @sy, @width, @height) if @anime_flug
  867.     body.src_rect.set(0, 0, @width, @height) unless @anime_flug
  868.   end   
  869.   #--------------------------------------------------------------------------
  870.   # ● 残像終了
  871.   #--------------------------------------------------------------------------
  872.   def mirage_off
  873.     @mirage_flug = false
  874.     @mirage0.dispose if @mirage0 != nil
  875.     @mirage1.dispose if @mirage1 != nil
  876.     @mirage2.dispose if @mirage2 != nil
  877.   end   
  878.   #--------------------------------------------------------------------------
  879.   # ● ピクチャ表示
  880.   #--------------------------------------------------------------------------
  881.   def picture
  882.     # 移動開始位置を確認
  883.     pic_x = @active_action[1]
  884.     pic_y = @active_action[2]
  885.     # 移動終了位置を確認
  886.     pic_end_x = @active_action[3]
  887.     pic_end_y = @active_action[4]
  888.     @picture_time = @active_action[5]
  889.     # 時間で割り、1フレーム当たりの移動速度を計算
  890.     @moving_pic_x = (pic_end_x - pic_x)/ @picture_time
  891.     @moving_pic_y = (pic_end_y - pic_y)/ @picture_time
  892.     # 割り切れない場合最初に加算
  893.     plus_x = (pic_end_x - pic_x)% @picture_time
  894.     plus_y = (pic_end_y - pic_y)% @picture_time
  895.     # ピクチャ表示
  896.     @picture.bitmap = Cache.picture(@active_action[7])
  897.     @picture.x = pic_x + plus_x
  898.     @picture.y = pic_y + plus_y
  899.     # Z座標調整
  900.     @picture.z = 1
  901.     @picture.z = 1000 if @active_action[6]
  902.     @picture.visible = true
  903.   end
  904.   #--------------------------------------------------------------------------
  905.   # ● グラフィックファイル変更
  906.   #--------------------------------------------------------------------------
  907.   def graphics_change  
  908.     # アクター限定
  909.     return if @battler.is_a?(Game_Enemy)
  910.     # グラフィック変更
  911.     @battler_name = @active_action[2]
  912.     # 歩行グラフィックを利用するかどうかで転送元の矩形サイズの認識先を変える
  913.     self.bitmap = Cache.character(@battler_name) if N01::WALK_ANIME
  914.     self.bitmap = Cache.character(@battler_name + "_1") unless N01::WALK_ANIME
  915.     # 転送元の矩形を取得
  916.     @width = self.bitmap.width / @base_width
  917.     @height = self.bitmap.height / @base_height
  918.     # 戦闘後も変更を反映させるならキャラチップもここで変更
  919.     @battler.graphic_change(@active_action[2]) unless @active_action[1]
  920.   end  
  921.   #--------------------------------------------------------------------------
  922.   # ● 戦闘アニメ表示 [判別,ID,対象,反転,ウエイト,二刀フラグ]
  923.   #--------------------------------------------------------------------------
  924.   def battle_anime
  925.     # エネミーの二刀フラグアニメ処理はキャンセル
  926.     return if @active_action[5] && [email protected]?
  927.     # 二刀ではないアクターの二刀フラグアニメ処理はキャンセル
  928.     return if @active_action[5] && @battler.weapons[1] == nil
  929.     # 二刀で右(上に配置された)武器がなく左(下に配置)だけ持ってる場合
  930.     if @battler.actor?
  931.       return if !@active_action[5] && @battler.weapons[0] == nil && @battler.weapons[1] != nil
  932.     end
  933.     anime_id = @active_action[1]
  934.     # バックアタック時にアニメ画像を反転
  935.     if $back_attack
  936.       mirror = true if @active_action[3] == false
  937.       mirror = false if @active_action[3]
  938.     end
  939.     # 武器とスキルアニメの場合
  940.     if anime_id < 0
  941.       # 行動の種類でアニメ先を分岐
  942.       if @battler.action.skill? && anime_id != -2
  943.         anime_id = @battler.action.skill.animation_id
  944.       elsif @battler.action.item? && anime_id != -2
  945.         anime_id = @battler.action.item.animation_id
  946.       else
  947.         # 武器がなければ素手アニメを使用
  948.         anime_id = N01::NO_WEAPON
  949.         if @battler.actor?
  950.           weapon_id = @battler.weapon_id
  951.           anime_id = $data_weapons[weapon_id].animation_id if weapon_id != 0
  952.           # 二刀アニメの場合
  953.           anime_id = @battler.atk_animation_id2 if @active_action[5]
  954.         else
  955.           weapon_id = @battler.weapon
  956.           anime_id = $data_weapons[weapon_id].animation_id if weapon_id != 0
  957.         end
  958.       end
  959.       # ウエイト設定
  960.       @wait = $data_animations[anime_id].frame_max * 4 if $data_animations[anime_id] != nil && @active_action[4]
  961.       waitflug = true
  962.       # ダメージ表示のアニメなら、ダメージ計算を先に済ませるため処理を中断
  963.       damage_action = [anime_id, mirror, true]
  964.       return @battler.play = ["対象アニメ",damage_action] if @battler.active
  965.     end
  966.     # アニメ実行
  967.     if @active_action[2] == 0 && $data_animations[anime_id] != nil
  968.       @battler.animation_id = anime_id
  969.       @battler.animation_mirror = mirror
  970.     elsif $data_animations[anime_id] != nil
  971.       for target in @target_battler
  972.         target.animation_id = anime_id
  973.         target.animation_mirror = mirror
  974.       end  
  975.     end
  976.     # ウエイト設定
  977.     @wait = $data_animations[anime_id].frame_max * 4 if $data_animations[anime_id] != nil && @active_action[4] && !waitflug
  978.   end
  979.   #--------------------------------------------------------------------------
  980.   # ● ふきだしアニメ表示
  981.   #--------------------------------------------------------------------------
  982.   def balloon_anime
  983.     return if self.opacity == 0
  984.     if @balloon == nil
  985.       @balloon = Sprite.new
  986.       @balloon.bitmap = Cache.system("Balloon")
  987.       @balloon.ox = @width / 16
  988.       @balloon.oy = @balloon.height / 10 + @height / 3
  989.     end
  990.     @balloon_id = @active_action[1]
  991.     @balloon_loop = @active_action[2]
  992.     @balloon_duration = 64
  993.     @balloon_back = false
  994.     update_balloon
  995.     @balloon.visible = true
  996.   end  
  997.   #--------------------------------------------------------------------------
  998.   # ● BGM/BGS/SE演奏
  999.   #--------------------------------------------------------------------------
  1000.   def sound   
  1001.     # 情報を取得
  1002.     pitch = @active_action[2]
  1003.     vol =  @active_action[3]
  1004.     name = @active_action[4]
  1005.     # 実行
  1006.     case @active_action[1]
  1007.     when "se"
  1008.       Audio.se_play("Audio/SE/" + name, vol, pitch)
  1009.     when "bgm"
  1010.       # 名前指定のない場合、現在のBGMを変えないように
  1011.       if @active_action[4] == ""
  1012.         now_bgm = RPG::BGM.last
  1013.         name = now_bgm.name
  1014.       end
  1015.       Audio.bgm_play("Audio/BGM/" + name, vol, pitch)
  1016.     when "bgs"
  1017.       # 名前指定のない場合、現在のBGSを変えないように
  1018.       if @active_action[4] == ""
  1019.         now_bgs = RPG::BGS.last
  1020.         name = now_bgs.name
  1021.       end
  1022.       Audio.bgs_play("Audio/BGS/" + name, vol, pitch)
  1023.     end
  1024.   end
  1025.   #--------------------------------------------------------------------------
  1026.   # ● ゲーム変数操作
  1027.   #--------------------------------------------------------------------------
  1028.   def variable
  1029.     # オペランドチェック
  1030.     operand = @active_action[3]
  1031.     # 変数操作で分岐
  1032.     case @active_action[2]
  1033.     when 0 # 代入
  1034.       $game_variables[@active_action[1]] = operand
  1035.     when 1 # 加算
  1036.       $game_variables[@active_action[1]] += operand
  1037.     when 2 # 減算
  1038.       $game_variables[@active_action[1]] -= operand
  1039.     when 3 # 乗算
  1040.       $game_variables[@active_action[1]] *= operand
  1041.     when 4 # 除算
  1042.       $game_variables[@active_action[1]] /= operand
  1043.     when 5 # 剰余
  1044.       $game_variables[@active_action[1]] %= operand
  1045.     end
  1046.   end  
  1047.   #--------------------------------------------------------------------------
  1048.   # ● 二刀限定
  1049.   #--------------------------------------------------------------------------
  1050.   def two_swords
  1051.     # エネミーは処理させない
  1052.     return @action.shift unless @battler.actor?
  1053.     # 左(下部表示)に武器がなかったら次のアクションを除く
  1054.     return @action.shift if @battler.weapons[1] == nil
  1055.     # 行動配列の先頭からシフト
  1056.     active = @action.shift
  1057.     # 現在のアクションを決定
  1058.     @active_action = N01::ANIME[active]
  1059.     # ウエイト設定
  1060.     @wait = active.to_i if @active_action == nil
  1061.     # 単発アクション開始
  1062.     action
  1063.   end
  1064.   #--------------------------------------------------------------------------
  1065.   # ● 非二刀限定
  1066.   #--------------------------------------------------------------------------
  1067.   def non_two_swords
  1068.     # エネミーは処理させない
  1069.     return unless @battler.actor?
  1070.     # 左(下部表示)に武器があったら次のアクションを除く
  1071.     return @action.shift if @battler.weapons[1] != nil
  1072.     # 行動配列の先頭からシフト
  1073.     active = @action.shift
  1074.     # 現在のアクションを決定
  1075.     @active_action = N01::ANIME[active]
  1076.     # ウエイト設定
  1077.     @wait = active.to_i if @active_action == nil
  1078.     # 単発アクション開始
  1079.     action
  1080.   end
  1081.   #--------------------------------------------------------------------------
  1082.   # ● アクション条件
  1083.   #--------------------------------------------------------------------------
  1084.   def necessary
  1085.     nece1 = @active_action[3]
  1086.     nece2 = @active_action[4]
  1087.     # ターゲットチェック
  1088.     case @active_action[1]
  1089.     # 0自身 1ターゲット 2敵全体 3味方全体
  1090.     when 0
  1091.       target = [$game_party.members[@battler.index]] if @battler.is_a?(Game_Actor)
  1092.       target = [$game_troop.members[@battler.index]] if @battler.is_a?(Game_Enemy)
  1093.     when 1
  1094.       target = @target_battler
  1095.     when 2
  1096.       target = $game_troop.members
  1097.     when 3
  1098.       target = $game_party.members
  1099.     end
  1100.     # ターゲットが空の場合は失敗とみなす
  1101.     return start_action(@battler.recover_action) if target.size == 0
  1102.     # 内容チェック
  1103.     case @active_action[2]
  1104.     # ステートID指定だった場合
  1105.     when 0
  1106.       # 補足が正で「ステートにかかっている」、負は「かかっていない」が条件に
  1107.       state_on = true if nece2 > 0
  1108.       # 条件人数を出す
  1109.       state_member = nece2.abs
  1110.       # 0は仲間数を出す
  1111.       if nece2 == 0
  1112.         state_member = $game_party.members.size if @battler.is_a?(Game_Actor)
  1113.         state_member = $game_troop.members.size if @battler.is_a?(Game_Enemy)
  1114.       end  
  1115.       # ターゲットのステートチェックし人数をカウント
  1116.       for member in target
  1117.         state_member -= 1 if member.state?(nece1)
  1118.       end
  1119.       # 条件が満たされていればアクション続行
  1120.       if state_member == 0 && state_on
  1121.         return
  1122.       elsif state_member == nece2.abs
  1123.         return if state_on == nil
  1124.       end  
  1125.     # パラメータ指定だった場合
  1126.     when 1  
  1127.       # 補足が正で「数値以上」、負は「数値以下」が条件に
  1128.       num_over = true if nece2 > 0
  1129.       # 参照数値
  1130.       num = 0
  1131.       # ターゲットのパラメータチェック
  1132.       for member in target
  1133.         # 参照パラメータで分岐
  1134.         case  nece1
  1135.         when 0 # 現HP
  1136.           num += member.hp
  1137.         when 1 # 現MP
  1138.           num += member.mp
  1139.         when 2 # 攻撃力
  1140.           num += member.atk
  1141.         when 3 # 防御力
  1142.           num += member.def
  1143.         when 4 # 精神力
  1144.           num += member.spi
  1145.         when 5 # 敏捷性
  1146.           num += member.agi
  1147.         end
  1148.       end
  1149.       # 平均を出す
  1150.       num = num / target.size
  1151.       # 条件が満たされていればアクション続行
  1152.       if num > nece2.abs && num_over
  1153.         return
  1154.       elsif num < nece2.abs
  1155.         return if num_over == nil
  1156.       end
  1157.     # スイッチ指定だった場合
  1158.     when 2
  1159.       # 条件が満たされていればアクション続行
  1160.       if $game_switches[nece1]
  1161.         # 補足がtrueで「スイッチON」、falseは「スイッチOFF」が条件に
  1162.         return if nece2
  1163.       # スイッチがOFFの場合はON時とは逆に  
  1164.       else
  1165.         return unless nece2
  1166.       end  
  1167.     # 変数指定だった場合
  1168.     when 3
  1169.       # 補足が正で「数値以上」、負は「数値以下」が条件に
  1170.       if nece2 > 0
  1171.         return if $game_variables[nece1] > nece2
  1172.       else
  1173.         return unless $game_variables[nece1] > nece2.abs
  1174.       end
  1175.     # 習得スキル指定だった場合
  1176.     when 4
  1177.       # スキル条件人数を出す
  1178.       skill_member = nece2.abs
  1179.       for member in target
  1180.         skill_member -= 1 if member.skill_learn?(nece1)
  1181.         # 条件確認
  1182.         return if skill_member == 0
  1183.       end  
  1184.     end
  1185.     # 条件を満たせなければ以降のアクションを中断
  1186.     return @action = ["終了"] if @non_repeat
  1187.     # 防御中は不自然に見えないように座標復帰させない
  1188.     action = @battler.recover_action
  1189.     action = @battler.defence if @battler.guarding?
  1190.     return start_action(action)
  1191.   end  
  1192.   #--------------------------------------------------------------------------
  1193.   # ● スキル派生
  1194.   #--------------------------------------------------------------------------
  1195.   def derivating
  1196.     # 未修得スキルは派生不可なら
  1197.     return unless @active_action[2] && [email protected]_learn?(@active_action[3])
  1198.     # 確率分岐
  1199.     return if rand(100) > @active_action[1]
  1200.     # 派生成功
  1201.     @battler.derivation = @active_action[3]
  1202.     # 以降のアクションを中断
  1203.     @action = ["終了"]
  1204.   end
  1205.   #--------------------------------------------------------------------------
  1206.   # ● 個別処理開始
  1207.   #--------------------------------------------------------------------------
  1208.   def individual_action
  1209.     # リピートフラグオン
  1210.     @battler.individual = true
  1211.     # リピートアクションを保持
  1212.     @individual_act = @action.dup
  1213.     # ターゲットを保持し、行動ターゲットをひとつずつ抜き出す
  1214.     send_action(["個別処理"])
  1215.     @individual_targets = @target_battler.dup
  1216.     @target_battler = [@individual_targets.shift]
  1217.   end
  1218.   #--------------------------------------------------------------------------
  1219.   # ● 個別処理終了
  1220.   #--------------------------------------------------------------------------
  1221.   def individual_action_end
  1222.     # ターゲットが残っていないなら行動終了
  1223.     return @battler.individual = false if @individual_targets.size == 0
  1224.     @action = @individual_act.dup
  1225.     @target_battler = [@individual_targets.shift]
  1226.   end  
  1227.   #--------------------------------------------------------------------------
  1228.   # ● 待機に移行しない
  1229.   #--------------------------------------------------------------------------
  1230.   def non_repeat
  1231.     @repeat_action = []
  1232.     @non_repeat = true
  1233.     anime_finish
  1234.   end  
  1235.   #--------------------------------------------------------------------------
  1236.   # ● ターゲット変更 action = [判別, 変更する対象, 変更先]
  1237.   #--------------------------------------------------------------------------
  1238.   def change_target
  1239.     # 自身の変更したターゲットを元に戻す
  1240.     return @target_battler = @now_targets.dup if @active_action[2] == 3
  1241.     # 送るターゲット情報
  1242.     target = [@battler] if @active_action[2] == 0
  1243.     target = @target_battler.dup if @active_action[2] != 0
  1244.     # 自身のターゲットを送った相手にする場合、現在のターゲットを記憶
  1245.     if @active_action[2] == 2
  1246.       @now_targets = @target_battler.dup
  1247.       @target_battler = []
  1248.     end  
  1249.     # 送るターゲットがインデックス指定の場合
  1250.     if @active_action[1] >= 1000
  1251.       members = $game_party.members if @battler.actor?
  1252.       members = $game_troop.members unless @battler.actor?
  1253.       index = @active_action[1] - 1000
  1254.       if index < members.size
  1255.         if members[index].exist? && @battler.index != index
  1256.           # ターゲット変更
  1257.           members[index].force_target = ["N01target_change", target]
  1258.           # 自身のターゲットを送った相手にする場合
  1259.           @target_battler = [members[index]] if @active_action[2] == 2
  1260.           change = true
  1261.         else
  1262.           for member in members
  1263.             next if @battler.index == member.index
  1264.             next unless member.exist?
  1265.             member.force_target = ["N01target_change", target]
  1266.             @target_battler = [member] if @active_action[2] == 2
  1267.             break change = true
  1268.           end
  1269.         end
  1270.       end
  1271.     # 送るターゲットがステートID指定だった場合
  1272.     elsif @active_action[1] > 0
  1273.       for member in $game_party.members + $game_troop.members
  1274.         if member.state?(@active_action[1])
  1275.           member.force_target = ["N01target_change", target]
  1276.           @target_battler.push(member) if @active_action[2] == 2
  1277.           change = true
  1278.         end  
  1279.       end  
  1280.     # 送るターゲットが習得スキル指定だった場合
  1281.     elsif @active_action[1] < 0
  1282.       skill_id = @active_action[1].abs
  1283.       for actor in $game_party.members
  1284.         if actor.skill_learn?(skill_id)
  1285.           actor.force_target = ["N01target_change", target]
  1286.           @target_battler.push(target) if @active_action[2] == 2
  1287.           change = true
  1288.         end  
  1289.       end
  1290.     # 送るターゲットがターゲットだった場合
  1291.     else
  1292.       for member in @target_battler
  1293.         member.force_target = ["N01target_change", target]
  1294.         @target_battler.push(member) if @active_action[2] == 2
  1295.         change = true
  1296.       end
  1297.     end
  1298.     # 条件を満たせなければ以降のアクションを中断
  1299.     return if change
  1300.     return @action = ["終了"] if @non_repeat
  1301.     return start_action(@battler.recover_action)
  1302.   end   
  1303.   #--------------------------------------------------------------------------
  1304.   # ● ステート付与
  1305.   #--------------------------------------------------------------------------
  1306.   def state_on  
  1307.     state_id = @active_action[2]
  1308.     # 対象で分岐
  1309.     case @active_action[1]
  1310.     when 0
  1311.       @battler.add_state(state_id)
  1312.     when 1
  1313.       if @target_battler != nil
  1314.         for target in @target_battler
  1315.           target.add_state(state_id)
  1316.         end
  1317.       end
  1318.     when 2
  1319.       for target in $game_troop.members
  1320.         target.add_state(state_id)
  1321.       end
  1322.     when 3
  1323.       for target in $game_party.members
  1324.         target.add_state(state_id)
  1325.       end
  1326.     when 4
  1327.       for target in $game_party.members
  1328.         if target.index != @battler.index
  1329.           target.add_state(state_id)
  1330.         end  
  1331.       end
  1332.     end
  1333.   end
  1334.   #--------------------------------------------------------------------------
  1335.   # ● ステート解除
  1336.   #--------------------------------------------------------------------------
  1337.   def state_off  
  1338.     state_id = @active_action[2]
  1339.     # 対象で分岐
  1340.     case @active_action[1]
  1341.     when 0
  1342.       @battler.remove_state(state_id)
  1343.     when 1
  1344.       if @target_battler != nil
  1345.         for target in @target_battler
  1346.           target.remove_state(state_id)
  1347.         end
  1348.       end
  1349.     when 2
  1350.       for target in $game_troop.members
  1351.         target.remove_state(state_id)
  1352.       end
  1353.     when 3
  1354.       for target in $game_party.members
  1355.         target.remove_state(state_id)
  1356.       end
  1357.     when 4
  1358.       for target in $game_party.members
  1359.         if target.index != @battler.index
  1360.           target.remove_state(state_id)
  1361.         end  
  1362.       end
  1363.     end
  1364.   end  
  1365.   #--------------------------------------------------------------------------
  1366.   # ● 浮遊実行
  1367.   #--------------------------------------------------------------------------
  1368.   def floating  
  1369.     # ジャンプを初期化
  1370.     jump_reset
  1371.     # 情報確認
  1372.     @jump_plus = @active_action[1]
  1373.     float_end = @active_action[2]
  1374.     @float_time = @active_action[3]
  1375.     # 1フレーム当たりの移動高度を計算
  1376.     @float_up = (float_end - @jump_plus)/ @float_time
  1377.     # 浮遊が完了するまで次のアクションに行かない
  1378.     @wait = @float_time
  1379.     # 浮遊アニメ設定を反映
  1380.     if @anime_flug
  1381.       move_anime = N01::ANIME[@active_action[4]]
  1382.       # グラフィック指定がない場合はスキップ
  1383.       if move_anime != nil
  1384.         # 現在のアクションを上書き
  1385.         @active_action = move_anime
  1386.         # バトラーアニメ開始
  1387.         battler_anime
  1388.         # 浮遊が完了したら即アニメが終わるように
  1389.         @anime_end = true
  1390.       end
  1391.     end
  1392.     # 初期高度に浮遊
  1393.     @battler.jump = @jump_plus
  1394.   end      
  1395.   #--------------------------------------------------------------------------
  1396.   # ● 強制アクション
  1397.   #--------------------------------------------------------------------------
  1398.   def force_action
  1399.     # アクションが単発か通しか判別
  1400.     kind = @active_action[0]
  1401.     # 復帰の有無をチェック
  1402.     rebirth = @active_action[2]
  1403.     # 強制アクション内容を取得
  1404.     play = @active_action[3]
  1405.     # 上3つの情報をまとめて格納
  1406.     action = [kind,rebirth,play]
  1407.     # ターゲットがインデックス指定の場合
  1408.     if @active_action[1] >= 1000
  1409.       members = $game_party.members if @battler.actor?
  1410.       members = $game_troop.members unless @battler.actor?
  1411.       index = @active_action[1] - 1000
  1412.       if index < members.size
  1413.         if members[index].exist? && @battler.index != index
  1414.           # バトラー情報に渡す
  1415.           return members[index].force_action = action
  1416.         else
  1417.           for target in members
  1418.             next if @battler.index == target.index
  1419.             next unless target.exist?
  1420.             force = true
  1421.             break target.force_action = action
  1422.           end
  1423.         end
  1424.       end
  1425.       # 条件を満たせなければ以降のアクションを中断
  1426.       return if force
  1427.       return @action = ["終了"] if @non_repeat
  1428.       return start_action(@battler.recover_action)
  1429.     # ターゲット指定の場合  
  1430.     elsif @active_action[1] == 0
  1431.       for target in @target_battler
  1432.         target.force_action = action if target != nil
  1433.       end
  1434.     # ステートID指定だった場合  
  1435.     elsif @active_action[1] > 0
  1436.       for target in $game_party.members + $game_troop.members
  1437.         target.force_action = action if target.state?(@active_action[1])
  1438.       end
  1439.     # 習得スキル指定だった場合  
  1440.     elsif @active_action[1] < 0  
  1441.       # エネミーは処理させない
  1442.       return if @battler.is_a?(Game_Enemy)
  1443.       for actor in $game_party.members
  1444.         # 自分は除く
  1445.         unless actor.id == @battler.id
  1446.           # バトラー情報に渡す
  1447.           actor.force_action = action if actor.skill_id_learn?(@active_action[1].abs)
  1448.         end
  1449.       end
  1450.     end
  1451.   end
  1452.   #--------------------------------------------------------------------------
  1453.   # ● 座標リセット実行
  1454.   #--------------------------------------------------------------------------
  1455.   def reseting
  1456.     # ジャンプを初期化
  1457.     jump_reset
  1458.     # 回転を元に戻す
  1459.     self.angle = 0
  1460.     # 情報確認
  1461.     @distanse_x   = @move_x * -1
  1462.     @distanse_y   = @move_y * -1
  1463.     @move_speed_x = @active_action[1]
  1464.     @move_speed_y = @move_speed_x
  1465.     @move_boost_x = @active_action[2]
  1466.     @move_boost_y = @move_boost_x
  1467.     @jump         = @active_action[3]
  1468.     # 移動計算
  1469.     move_distance
  1470.     # 移動アニメ設定を反映
  1471.     if @anime_flug
  1472.       move_anime = N01::ANIME[@active_action[4]]
  1473.       # グラフィック指定がない場合はスキップ
  1474.       if move_anime != nil
  1475.         # 現在のアクションを上書き
  1476.         @active_action = move_anime
  1477.         # バトラーアニメ開始
  1478.         battler_anime
  1479.       end
  1480.       # 移動が完了したら即アニメが終わるように
  1481.       @anime_end = true
  1482.     end
  1483.   end
  1484.   #--------------------------------------------------------------------------
  1485.   # ● 移動実行
  1486.   #--------------------------------------------------------------------------
  1487.   def moving  
  1488.     # ジャンプを初期化
  1489.     jump_reset
  1490.     # X軸移動を便宜上抜き出す
  1491.     xx = @active_action[1]
  1492.     # バックアタック時にはX軸を逆に
  1493.     xx *= -1 if $back_attack
  1494.     # 移動目標のターゲットを確認
  1495.     case @active_action[0]
  1496.     when 0 # 自身
  1497.       @distanse_x = xx
  1498.       @distanse_y = @active_action[2]
  1499.     when 1 # ターゲット
  1500.       # ターゲットが決まってない場合、自身に変換
  1501.       if @target_battler == nil
  1502.         @distanse_x = xx
  1503.         @distanse_y = @active_action[2]
  1504.       else
  1505.         # ターゲット対象をひとつずつチェック
  1506.         target_x = 0
  1507.         target_y = 0
  1508.         time = 0
  1509.         for i in 0...@target_battler.size
  1510.           if @target_battler[i] != nil
  1511.             time += 1
  1512.             target_x += @target_battler[i].position_x
  1513.             target_y += @target_battler[i].position_y
  1514.           end  
  1515.         end
  1516.         # ターゲットが空だった場合、自身に変換
  1517.         if time == 0
  1518.           @distanse_x = xx
  1519.           @distanse_y = @active_action[2]
  1520.         else  
  1521.           # 複数ターゲットの中心を計算
  1522.           target_x = target_x / time
  1523.           target_y = target_y / time
  1524.           # 最終的な移動距離を算出
  1525.           @distanse_y = target_y - self.y + @active_action[2]
  1526.           # X座標はアクターとエネミーで逆計算
  1527.           if @battler.is_a?(Game_Actor)
  1528.             @distanse_x = target_x - self.x + xx
  1529.           else
  1530.             @distanse_x = self.x - target_x + xx
  1531.           end  
  1532.         end  
  1533.       end  
  1534.     when 2 # 画面
  1535.       # X座標はアクターとエネミーで逆計算
  1536.       if @battler.is_a?(Game_Actor)
  1537.         @distanse_x = xx - self.x
  1538.         @distanse_x = Graphics.width + xx - self.x if $back_attack
  1539.       else
  1540.         @distanse_x = self.x - xx
  1541.         @distanse_x = self.x - (Graphics.width + xx) if $back_attack
  1542.       end
  1543.       @distanse_y = @active_action[2] - self.y
  1544.     when 3 # 初期位置
  1545.       # X座標はアクターとエネミーで逆計算
  1546.       if @battler.is_a?(Game_Actor)
  1547.         @distanse_x = xx + @battler.base_position_x - self.x
  1548.       else
  1549.         @distanse_x = xx + self.x - @battler.base_position_x
  1550.       end
  1551.       @distanse_y = @active_action[2] + @battler.base_position_y - @battler.position_y
  1552.     end
  1553.     @move_speed_x = @active_action[3]
  1554.     @move_speed_y = @active_action[3]
  1555.     @move_boost_x = @active_action[4]
  1556.     @move_boost_y = @active_action[4]
  1557.     @jump         = @active_action[5]
  1558.     @jump_plus = 0
  1559.     # 移動計算
  1560.     move_distance
  1561.     # 移動アニメ設定を反映
  1562.     if @anime_flug
  1563.       move_anime = N01::ANIME[@active_action[6]]
  1564.       # グラフィック指定がない場合はスキップ
  1565.       if move_anime != nil
  1566.         # 現在のアクションを上書き
  1567.         @active_action = move_anime
  1568.         # バトラーアニメ開始
  1569.         battler_anime
  1570.       end  
  1571.       # 移動が完了したら即アニメが終わるように
  1572.       @anime_end = true
  1573.     end
  1574.   end
  1575.   #--------------------------------------------------------------------------
  1576.   # ● 移動計算
  1577.   #--------------------------------------------------------------------------
  1578.   def move_distance
  1579.     # 速度が0の場合、その場に留まる
  1580.     if @move_speed_x == 0
  1581.       @moving_x = 0
  1582.       @moving_y = 0
  1583.     else  
  1584.       # 1フレームあたりの移動距離を計算
  1585.       @moving_x = @distanse_x / @move_speed_x
  1586.       @moving_y = @distanse_y / @move_speed_y
  1587.       # 余った距離はこの時点で移動し消化
  1588.       over_x = @distanse_x % @move_speed_x
  1589.       over_y = @distanse_y % @move_speed_y
  1590.       @move_x += over_x
  1591.       @move_y += over_y
  1592.       @battler.move_x = @move_x
  1593.       @battler.move_y = @move_y
  1594.       @distanse_x -= over_x
  1595.       @distanse_y -= over_y
  1596.     end  
  1597.     # 移動があるかどうかの判定
  1598.     if @distanse_x == 0
  1599.       @move_speed_x = 0
  1600.     end
  1601.     if @distanse_y == 0
  1602.       @move_speed_y = 0
  1603.     end
  1604.     # X座標移動計算
  1605.     # 加減速による移動フレーム数の修正
  1606.     boost_x = @moving_x
  1607.     move_x = 0
  1608.     # 加速がある場合
  1609.     if @move_boost_x > 0 && @distanse_x != 0
  1610.       # 加減速の正負を左右移動に合わせて変換
  1611.       if @distanse_x == 0
  1612.         @move_boost_x = 0
  1613.       elsif @distanse_x < 0
  1614.         @move_boost_x *= -1
  1615.       end
  1616.       # 距離の変化を事前計算
  1617.       for i in 0...@move_speed_x
  1618.         boost_x += @move_boost_x
  1619.         move_x += boost_x
  1620.         # オーバー距離を記録
  1621.         over_distance = @distanse_x - move_x
  1622.         # 右移動で距離オーバーする直前が何フレーム目だったか記録
  1623.         if @distanse_x > 0 && over_distance < 0
  1624.           @move_speed_x = i
  1625.           break
  1626.         # 左移動で距離オーバーする直前が何フレーム目だったか記録
  1627.         elsif @distanse_x < 0 && over_distance > 0
  1628.           @move_speed_x = i
  1629.           break
  1630.         end
  1631.       end
  1632.       # オーバー距離を一回前に戻す
  1633.       before = over_distance + boost_x
  1634.       # 余った距離を等速移動させるフレーム数を加算
  1635.       @move_speed_plus_x = (before / @moving_x).abs
  1636.       # それでも余った距離はこの時点で移動し消化
  1637.       @move_x += before % @moving_x
  1638.       @battler.move_x = @move_x
  1639.     # 減速がある場合  
  1640.     elsif @move_boost_x < 0 && @distanse_x != 0
  1641.       # 加減速の正負を左右移動に合わせて変換
  1642.       if @distanse_x == 0
  1643.         @move_boost_x = 0
  1644.       elsif @distanse_x < 0
  1645.         @move_boost_x *= -1
  1646.       end
  1647.       # 距離の変化を事前計算
  1648.       for i in 0...@move_speed_x
  1649.         boost_x += @move_boost_x
  1650.         move_x += boost_x
  1651.         # 足りない距離を記録
  1652.         lost_distance = @distanse_x - move_x
  1653.         before = lost_distance
  1654.         # 右移動で速度が0になる直前が何フレーム目だったか記録
  1655.         if @distanse_x > 0 && boost_x < 0
  1656.           @move_speed_x = i - 1
  1657.           # 足りない距離を一回前に戻す
  1658.           before = lost_distance + boost_x
  1659.           break
  1660.         # 左移動で速度が0になる直前が何フレーム目だったか記録
  1661.         elsif @distanse_x < 0 && boost_x > 0
  1662.           @move_speed_x= i - 1
  1663.           # 足りない距離を一回前に戻す
  1664.           before = lost_distance + boost_x
  1665.           break
  1666.         end
  1667.       end
  1668.       # 足りない距離を等速移動させるフレーム数を加算
  1669.       plus = before / @moving_x
  1670.       @move_speed_plus_x = plus.abs
  1671.       # それでも余った距離はこの時点で移動し消化
  1672.       @move_x += before % @moving_x
  1673.       @battler.move_x = @move_x
  1674.     end
  1675.     # Y座標移動計算
  1676.     # 加減速による移動フレーム数の修正
  1677.     boost_y = @moving_y
  1678.     move_y = 0
  1679.     # 加速がある場合
  1680.     if @move_boost_y > 0 && @distanse_y != 0
  1681.       # 加減速の正負を左右移動に合わせて変換
  1682.       if @distanse_y == 0
  1683.         @move_boost_y = 0
  1684.       elsif @distanse_y < 0
  1685.         @move_boost_y *= -1
  1686.       end
  1687.       # 距離の変化を事前計算
  1688.       for i in 0...@move_speed_y
  1689.         boost_y += @move_boost_y
  1690.         move_y += boost_y
  1691.         # オーバー距離を記録
  1692.         over_distance = @distanse_y - move_y
  1693.         # 右移動で距離オーバーする直前が何フレーム目だったか記録
  1694.         if @distanse_y > 0 && over_distance < 0
  1695.           @move_speed_y = i
  1696.           break
  1697.         # 左移動で距離オーバーする直前が何フレーム目だったか記録
  1698.         elsif @distanse_y < 0 && over_distance > 0
  1699.           @move_speed_y = i
  1700.           break
  1701.         end
  1702.       end
  1703.       # オーバー距離を一回前に戻す
  1704.       before = over_distance + boost_y
  1705.       # 余った距離を等速移動させるフレーム数を加算
  1706.       @move_speed_plus_y = (before / @moving_y).abs
  1707.       # それでも余った距離はこの時点で移動し消化
  1708.       @move_y += before % @moving_y
  1709.       @battler.move_y = @move_y
  1710.     # 減速がある場合  
  1711.     elsif @move_boost_y < 0 && @distanse_y != 0
  1712.       # 加減速の正負を左右移動に合わせて変換
  1713.       if @distanse_y == 0
  1714.         @move_boost_y = 0
  1715.       elsif @distanse_y < 0
  1716.         @move_boost_y *= -1
  1717.       end
  1718.       # 距離の変化を事前計算
  1719.       for i in 0...@move_speed_y
  1720.         boost_y += @move_boost_y
  1721.         move_y += boost_y
  1722.         # 足りない距離を記録
  1723.         lost_distance = @distanse_y - move_y
  1724.         before = lost_distance
  1725.         # 右移動で速度が0になる直前が何フレーム目だったか記録
  1726.         if @distanse_y > 0 && boost_y < 0
  1727.           @move_speed_y = i
  1728.           # 足りない距離を一回前に戻す
  1729.           before = lost_distance + boost_y
  1730.           break
  1731.         # 左移動で速度が0になる直前が何フレーム目だったか記録
  1732.         elsif @distanse_y < 0 && boost_y > 0
  1733.           @move_speed_y = i
  1734.           # 足りない距離を一回前に戻す
  1735.           before = lost_distance + boost_y
  1736.           break
  1737.         end
  1738.       end
  1739.       # 足りない距離を等速移動させるフレーム数を加算
  1740.       plus = before / @moving_y
  1741.       @move_speed_plus_y = plus.abs
  1742.       # それでも余った距離はこの時点で移動し消化
  1743.       @move_y += before % @moving_y
  1744.       @battler.move_y = @move_y
  1745.     end
  1746.     # 移動完了時間を算出
  1747.     x = @move_speed_plus_x + @move_speed_x
  1748.     y = @move_speed_plus_y + @move_speed_y
  1749.     if x > y
  1750.       end_time = x
  1751.     else
  1752.       end_time = y
  1753.     end
  1754.     # 移動が完了するまで次のアクションに行かない
  1755.     @wait = end_time
  1756.     # ジャンプ計算
  1757.     if @jump != 0
  1758.       # 移動がなくジャンプのみの場合
  1759.       if @wait == 0
  1760.         # 時間に計上
  1761.         @wait = @active_action[3]
  1762.       end  
  1763.       # 移動完了時間からジャンプ時間を算出
  1764.       @jump_time = @wait / 2
  1765.       # 割り切れない場合の余り時間
  1766.       @jump_time_plus = @wait % 2
  1767.       # ジャンプの正負を判別
  1768.       @jump_sign = 0
  1769.       @jump_sign2 = 0
  1770.       if @jump < 0
  1771.         @jump_sign = -1
  1772.         @jump_sign2 = 1
  1773.         @jump = @jump * -1
  1774.       else
  1775.         @jump_sign = 1
  1776.         @jump_sign2 = -1
  1777.       end
  1778.       # ジャンプ初速度を決定
  1779.       @jump_up = 2 ** @jump * @jump_sign
  1780.       # ジャンプ時間の端数を微調整
  1781.       if @jump_time == 0
  1782.         @jump_up = 0
  1783.       elsif @jump_time != 1
  1784.         @jump_size = @jump_up * @jump_sign * @jump_sign2
  1785.       else
  1786.         @jump_size = @jump_up * 2 * @jump_sign * @jump_sign2
  1787.         @jump_flug = true
  1788.       end  
  1789.     end
  1790.   end
  1791.   #--------------------------------------------------------------------------
  1792.   # ● バトラーアニメ開始
  1793.   #--------------------------------------------------------------------------
  1794.   def battler_anime
  1795.     # アニメ設定を反映
  1796.     @anime_kind  = @active_action[1]
  1797.     @anime_speed = @active_action[2]
  1798.     @anime_loop  = @active_action[3]
  1799.     # ウエイト時間があれば加算
  1800.     @unloop_wait = @active_action[4]
  1801.     @anime_end = true
  1802.     @reverse = false
  1803.     # 武器アクションがある場合だけ更新する
  1804.     if @weapon_R != nil && @active_action[8] != ""
  1805.       # 武器の設定をチェック
  1806.       weapon_kind = N01::ANIME[@active_action[8]]
  1807.       # エネミーと二刀ではないアクターの二刀フラグアニメ処理はキャンセル
  1808.       two_swords_flug = weapon_kind[11]
  1809.       return if two_swords_flug && [email protected]?
  1810.       return if two_swords_flug && @battler.weapons[1] == nil && @battler.actor?
  1811.       if @battler.actor? && @battler.weapons[0] == nil && !two_swords_flug
  1812.         @weapon_R.action_reset
  1813.       elsif @battler.actor? && @battler.weapons[1] == nil && two_swords_flug
  1814.         @weapon_R.action_reset
  1815.       elsif [email protected]? && @battler.weapon == 0
  1816.         @weapon_R.action_reset
  1817.       else
  1818.         # 初期化
  1819.         @weapon_R.action_reset
  1820.         # アニメパターンが固定だった場合の武器位置を取得
  1821.         if @active_action[5] != -1
  1822.           @weapon_R.freeze(@active_action[5])
  1823.         end
  1824.         # 武器画像を設定
  1825.         @weapon_R.weapon_graphics unless two_swords_flug
  1826.         @weapon_R.weapon_graphics(true) if two_swords_flug
  1827.         # 武器アクションを渡す
  1828.         @weapon_R.weapon_action(@active_action[8],@anime_loop)
  1829.         @weapon_action = true
  1830.         # 最初の武器アクションを更新
  1831.         @weapon_R.action
  1832.       end
  1833.     elsif @weapon_R != nil
  1834.       @weapon_R.action_reset
  1835.     end  
  1836.     @anime_end = false
  1837.     # アニメパターンが固定だった場合
  1838.     if @active_action[5] != -1 && @active_action[5] != -2
  1839.       # フラグオン
  1840.       @anime_freeze = true
  1841.       # アニメが常に終了しているとみなす
  1842.       @anime_end = true
  1843.     # 片道逆転再生だった場合
  1844.     elsif @active_action[5] == -2
  1845.       @anime_freeze = false
  1846.       # フラグオン
  1847.       @reverse = true
  1848.       # 最初のアニメパターンを更新
  1849.       @pattern = @base_width - 1
  1850.       # 武器アニメがある時だけフレーム更新
  1851.       if @weapon_action && @weapon_R != nil
  1852.         @weapon_R.action
  1853.         @weapon_R.update
  1854.       end
  1855.     # 通常のアニメ更新の場合  
  1856.     else  
  1857.       @anime_freeze = false
  1858.       # 最初のアニメパターンを更新
  1859.       @pattern = 0
  1860.       # 武器アニメがある時だけフレーム更新
  1861.       if @weapon_action && @weapon_R != nil
  1862.         @weapon_R.action
  1863.         @weapon_R.update
  1864.       end
  1865.     end  
  1866.     @pattern_back = false
  1867.     @frame = @anime_speed
  1868.     # Z座標設定
  1869.     @battler.move_z = @active_action[6]
  1870.     # 影の有無
  1871.     if @shadow != nil
  1872.       @shadow.visible = true if @active_action[7]
  1873.       @shadow.visible = false unless @active_action[7]
  1874.       @shadow.visible = false if @skip_shadow
  1875.     end
  1876.     # ナンバリングから読み取るファイル名を分岐
  1877.     if @active_action[0] == 0
  1878.       file_name = @battler_name
  1879.     else
  1880.       file_name = @battler_name + "_" + @active_action[0].to_s
  1881.     end  
  1882.     # アニメしないバトラーなら処理終了
  1883.     return unless @anime_flug
  1884.     self.bitmap = Cache.character(file_name)
  1885.     # 転送元の矩形を設定
  1886.     @sx = @pattern * @width
  1887.     @sy = @anime_kind * @height
  1888.     @sx = @active_action[5] * @width if @anime_freeze
  1889.     self.src_rect.set(@sx, @sy, @width, @height)
  1890.   end
  1891.   #--------------------------------------------------------------------------
  1892.   # ● アニメ飛ばし
  1893.   #--------------------------------------------------------------------------
  1894.   def moving_anime
  1895.     # まだ前のアニメ飛ばしが残っているなら初期化
  1896.     @move_anime.action_reset if @anime_moving
  1897.     @anime_moving = true
  1898.     # バックアタック中はアニメ、武器画像反転
  1899.     mirror = false
  1900.     mirror = true if $back_attack
  1901.     # アニメID
  1902.     id = @active_action[1]
  1903.     # 対象
  1904.     target = @active_action[2]
  1905.     x = y = mem = 0
  1906.     # 対象が単体の場合
  1907.     if target == 0
  1908.       # ターゲットが決まってない場合、自身に変換
  1909.       if @target_battler == nil
  1910.         x = self.x
  1911.         y = self.y
  1912.       else
  1913.         # ターゲットが空の場合、自身に変換
  1914.         if @target_battler[0] == nil
  1915.           x = self.x
  1916.           y = self.y
  1917.         else  
  1918.           # 最初に入っているターゲットに対象決定
  1919.           x = @target_battler[0].position_x
  1920.           y = @target_battler[0].position_y
  1921.         end  
  1922.       end  
  1923.     # 対象が敵の中心の場合  
  1924.     elsif target == 1
  1925.       # 自身がアクターの場合はエネミーの中心を計算
  1926.       if @battler.is_a?(Game_Actor)
  1927.         for target in $game_troop.members
  1928.           x += target.position_x
  1929.           y += target.position_y
  1930.           mem += 1
  1931.         end
  1932.         x = x / mem
  1933.         y = y / mem
  1934.       # 自身がエネミーの場合はアクターの中心を計算
  1935.       else
  1936.         for target in $game_party.members
  1937.           x += target.position_x
  1938.           y += target.position_y
  1939.           mem += 1
  1940.         end
  1941.         x = x / mem
  1942.         y = y / mem
  1943.       end
  1944.     # 対象が味方の中心の場合  
  1945.     elsif target == 2
  1946.       # 自身がアクターの場合はアクターの中心を計算
  1947.       if @battler.is_a?(Game_Actor)
  1948.         for target in $game_party.members
  1949.           x += target.position_x
  1950.           y += target.position_y
  1951.           mem += 1
  1952.         end
  1953.         x = x / mem
  1954.         y = y / mem
  1955.       # 自身がエネミーの場合はエネミーの中心を計算
  1956.       else
  1957.         for target in $game_troop.members
  1958.           x += target.position_x
  1959.           y += target.position_y
  1960.           mem += 1
  1961.         end
  1962.         x = x / mem
  1963.         y = y / mem
  1964.       end
  1965.     # 対象が自身の場合  
  1966.     else
  1967.       x = self.x
  1968.       y = self.y
  1969.     end  
  1970.     # 開始位置の微調整
  1971.     plus_x = @active_action[6]
  1972.     plus_y = @active_action[7]
  1973.     # エネミーはX軸を逆に
  1974.     plus_x *= -1 if @battler.is_a?(Game_Enemy)
  1975.     # 最終的な移動距離を算出
  1976.     distanse_x = x - self.x - plus_x
  1977.     distanse_y = y - self.y - plus_y
  1978.     # 飛ばしタイプ
  1979.     type = @active_action[3]
  1980.     # 速度
  1981.     speed = @active_action[4]
  1982.     # 軌道
  1983.     orbit = @active_action[5]
  1984.     # 自身が開始位置なら
  1985.     if @active_action[8] == 0
  1986.       @move_anime.base_x = self.x + plus_x
  1987.       @move_anime.base_y = self.y + plus_y
  1988.     # 対象が開始位置なら
  1989.     elsif @active_action[8] == 1
  1990.       @move_anime.base_x = x + plus_x
  1991.       @move_anime.base_y = y + plus_y
  1992.       # 距離を反対に
  1993.       distanse_y = distanse_y * -1
  1994.       distanse_x = distanse_x * -1
  1995.     # 動かさないなら
  1996.     else
  1997.       @move_anime.base_x = x
  1998.       @move_anime.base_y = y
  1999.       distanse_x = distanse_y = 0
  2000.     end
  2001.     # 武器アクションなしは武器表示しない
  2002.     if @active_action[10] == ""
  2003.       weapon = ""  
  2004.     # アニメなしエネミーは武器表示しない
  2005.     elsif @anime_flug != true
  2006.       weapon = ""  
  2007.     # 武器アクションがある場合
  2008.     else
  2009.       # 飛ばす武器グラフィックが指定されているかチェック
  2010.       if @battler.is_a?(Game_Actor)
  2011.         battler = $game_party.members[@battler.index]
  2012.         weapon_id = battler.weapon_id
  2013.       else  
  2014.         battler = $game_troop.members[@battler.index]
  2015.         weapon_id = battler.weapon
  2016.       end  
  2017.       # スキル画像利用か武器画像利用か判別
  2018.       weapon_act = N01::ANIME[@active_action[10]].dup if @active_action[10] != ""
  2019.       # 武器画像利用で素手でなければ
  2020.       if weapon_id != 0 && weapon_act.size == 3
  2021.         weapon_file = $data_weapons[weapon_id].flying_graphic
  2022.         # 別画像が指定されていなければ既存の武器グラフィックを取得
  2023.         if weapon_file == ""
  2024.           weapon_name = $data_weapons[weapon_id].graphic
  2025.           icon_weapon = false
  2026.           # さらに指定がなければアイコングラフィックを利用
  2027.           if weapon_name == ""
  2028.             weapon_name = $data_weapons[weapon_id].icon_index
  2029.             icon_weapon = true
  2030.           end  
  2031.         # 指定されていればそのグラフィック名を取得  
  2032.         else
  2033.           icon_weapon = false
  2034.           weapon_name = weapon_file
  2035.         end
  2036.         # 武器アクション情報を取得
  2037.         weapon = @active_action[10]
  2038.       # 武器画像利用で素手なら表示しない
  2039.       elsif weapon_act.size == 3
  2040.         weapon = ""
  2041.       # スキル画像利用
  2042.       elsif weapon_act != nil && @battler.action.skill != nil
  2043.         icon_weapon = false
  2044.         weapon_name = $data_skills[@battler.action.skill.id].flying_graphic
  2045.         weapon = @active_action[10]
  2046.       end
  2047.     end
  2048.     # Z座標を決定
  2049.     @move_anime.z = 1
  2050.     @move_anime.z = 1000 if @active_action[9]
  2051.     # 以上の情報を全てアニメ飛ばしスプライトに送る
  2052.     @move_anime.anime_action(id,mirror,distanse_x,distanse_y,type,speed,orbit,weapon,weapon_name,icon_weapon)
  2053.   end  
  2054.   #--------------------------------------------------------------------------
  2055.   # ● アクション終了
  2056.   #--------------------------------------------------------------------------
  2057.   def anime_finish
  2058.     # 個別処理終了が省略された場合リピートさせる
  2059.     return individual_action_end if @individual_targets.size != 0
  2060.     # アクティブバトラーにアクション情報を格納
  2061.     send_action(@active_action[0]) if @battler.active
  2062.     # 残像があれば開放
  2063.     mirage_off if @mirage_flug
  2064.     # 待機アクションを繰り返す
  2065.     start_action(@repeat_action) unless @non_repeat
  2066.   end   
  2067.   #--------------------------------------------------------------------------
  2068.   # ● コラプスアクション
  2069.   #--------------------------------------------------------------------------
  2070.   def collapse_action
  2071.     @non_repeat = true
  2072.     @effect_type = COLLAPSE
  2073.     @collapse_type = @battler.collapse_type unless @battler.actor?
  2074.     @battler_visible = false unless @battler.actor?
  2075.     @effect_duration = N01::COLLAPSE_WAIT + 48 if @collapse_type == 2
  2076.     @effect_duration = 401 if @collapse_type == 3
  2077.   end  
  2078.   #--------------------------------------------------------------------------
  2079.   # ● ノーマルコラプス
  2080.   #--------------------------------------------------------------------------
  2081.   def normal_collapse
  2082.     if @effect_duration == 47
  2083.       Sound.play_enemy_collapse
  2084.       self.blend_type = 1
  2085.       self.color.set(255, 128, 128, 128)
  2086.     end
  2087.     self.opacity = 256 - (48 - @effect_duration) * 6 if @effect_duration <= 47
  2088.   end  
  2089.   #--------------------------------------------------------------------------
  2090.   # ● ボスコラプス
  2091.   #--------------------------------------------------------------------------
  2092.   def boss_collapse1
  2093.     if @effect_duration == 320
  2094.       Audio.se_play("Audio/SE/Absorb1", 100, 80)
  2095.       self.flash(Color.new(255, 255, 255), 60)
  2096.       viewport.flash(Color.new(255, 255, 255), 20)
  2097.     end
  2098.     if @effect_duration == 280
  2099.       Audio.se_play("Audio/SE/Absorb1", 100, 80)
  2100.       self.flash(Color.new(255, 255, 255), 60)
  2101.       viewport.flash(Color.new(255, 255, 255), 20)
  2102.     end
  2103.     if @effect_duration == 220
  2104.       Audio.se_play("Audio/SE/Earth4", 100, 80)
  2105.       reset
  2106.       self.blend_type = 1
  2107.       self.color.set(255, 128, 128, 128)
  2108.       self.wave_amp = 6
  2109.     end
  2110.     if @effect_duration < 220
  2111.       self.src_rect.set(0, @effect_duration / 2 - 110, @width, @height)
  2112.       self.x += 8 if @effect_duration % 4 == 0
  2113.       self.x -= 8 if @effect_duration % 4 == 2
  2114.       self.wave_amp += 1 if @effect_duration % 10 == 0
  2115.       self.opacity = @effect_duration
  2116.       return if @effect_duration < 50
  2117.       Audio.se_play("Audio/SE/Earth4", 100, 50) if @effect_duration % 50 == 0
  2118.     end
  2119.   end
  2120. end
复制代码
  1. #==============================================================================
  2. # ■ Scene_Battle Ver2.4
  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.   def pop_help(obj)
  42.     return if obj.extension.include?("ヘルプ非表示")
  43.     @help_window.set_text(obj.name, 1)
  44.     @help_window.visible = true
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 情報表示ビューポートの移動
  48.   #--------------------------------------------------------------------------
  49.   def move1_info_viewport
  50.     @info_viewport.ox = 0
  51.     loop do
  52.       update_basic
  53.       @info_viewport.ox -= 0
  54.       @party_command_window.x -= 0
  55.       @actor_command_window.x += 0
  56.       break if @info_viewport.ox == 0
  57.     end  
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 情報表示ビューポートの移動
  61.   #--------------------------------------------------------------------------
  62.   def move2_info_viewport
  63.     @info_viewport.ox = 0
  64.     loop do
  65.       update_basic
  66.       @info_viewport.ox -= 0
  67.       @party_command_window.x += 0
  68.       @actor_command_window.x -= 0
  69.       break if @info_viewport.ox == 0
  70.     end  
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 次のアクターのコマンド入力へ
  74.   #--------------------------------------------------------------------------
  75.   alias next_actor_n01 next_actor
  76.   def next_actor
  77.     # 動けるキャラのみコマンドアクションを
  78.     if @active_battler != nil && @active_battler.inputable? && @active_battler.actor?
  79.       @spriteset.set_action(true, @actor_index,@active_battler.command_a)
  80.     end
  81.     # 最後のアクターの場合、アクションが終わるまで待つ
  82.     @wait_count = 32 if @actor_index == $game_party.members.size-1
  83.     next_actor_n01
  84.     # 動けるキャラのみコマンドアクションを
  85.     if @active_battler != nil && @active_battler.inputable? && @active_battler.actor?
  86.       @spriteset.set_action(true, @actor_index,@active_battler.command_b)
  87.     end
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ● 前のアクターのコマンド入力へ
  91.   #--------------------------------------------------------------------------
  92.   alias prior_actor_n01 prior_actor
  93.   def prior_actor
  94.     # 動けるキャラのみコマンドアクションを
  95.     if @active_battler != nil && @active_battler.inputable? && @active_battler.actor?
  96.       @active_battler.action.clear
  97.       @spriteset.set_action(true, @actor_index,@active_battler.command_a)
  98.     end
  99.     prior_actor_n01
  100.     # 動けるキャラのみコマンドアクションを
  101.     if @active_battler != nil && @active_battler.inputable? && @active_battler.actor?
  102.       @active_battler.action.clear
  103.       @spriteset.set_action(true, @actor_index,@active_battler.command_b)
  104.     end
  105.   end  
  106.   #--------------------------------------------------------------------------
  107.   # ● ターゲット選択の開始  ※再定義
  108.   #--------------------------------------------------------------------------
  109.   def start_target_enemy_selection
  110.     start_target_selection
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● ターゲット選択の開始  ※再定義
  114.   #--------------------------------------------------------------------------
  115.   def start_target_actor_selection
  116.     start_target_selection(true)
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● ターゲット選択の開始
  120.   #--------------------------------------------------------------------------
  121.   def start_target_selection(actor = false)
  122.     members = $game_party.members if actor
  123.     members = $game_troop.members unless actor
  124.     # カーソルスプライトの作成
  125.     @cursor = Sprite.new
  126.     @cursor.bitmap = Cache.character("cursor")
  127.     @cursor.src_rect.set(0, 0, 32, 32)
  128.     @cursor_flame = 0
  129.     @cursor.x = -200
  130.     @cursor.y = -200
  131.     @cursor.ox = @cursor.width
  132.     @cursor.oy = @cursor.height
  133.     # ターゲット名を表示するヘルプウインドウを作成
  134.     @help_window = Window_Help.new if @help_window == nil
  135.     # 不要なウインドウを消す
  136.     @actor_command_window.active = false
  137.     @skill_window.visible = false if @skill_window != nil
  138.     @item_window.visible = false if @item_window != nil
  139.     # 存在しているターゲットで最も番号の低い対象を最初に指すように
  140.     @index = 0
  141.     @max_index = members.size - 1
  142.     # アクターは戦闘不能者でもターゲットできるようにエネミーと区別
  143.     unless actor
  144.       members.size.times do
  145.         break if members[@index].exist?
  146.         @index += 1
  147.       end
  148.     end  
  149.     @help_window.set_text(members[@index].name, 1)
  150.     select_member(actor)
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ● ターゲット選択
  154.   #--------------------------------------------------------------------------
  155.   def select_member(actor = false)
  156.     members = $game_party.members if actor
  157.     members = $game_troop.members unless actor
  158.     loop do
  159.       update_basic
  160.       @cursor_flame = 0 if @cursor_flame == 30
  161.       @cursor.src_rect.set(0,  0, 32, 32) if @cursor_flame == 29
  162.       @cursor.src_rect.set(0, 32, 32, 32) if @cursor_flame == 15
  163.       point = @spriteset.set_cursor(actor, @index)
  164.       @cursor.x = point[0]
  165.       @cursor.y = point[1]
  166.       @cursor_flame += 1
  167.       if Input.trigger?(Input::B)
  168.         Sound.play_cancel
  169.         end_target_selection
  170.         break
  171.       elsif Input.trigger?(Input::C)
  172.         Sound.play_decision
  173.         @active_battler.action.target_index = @index
  174.         end_target_selection
  175.         end_skill_selection
  176.         end_item_selection
  177.         next_actor
  178.         break
  179.       end
  180.       if Input.repeat?(Input::LEFT)
  181.         if actor
  182.           cursor_down(members, actor) if $back_attack
  183.           cursor_up(members, actor) unless $back_attack
  184.         else
  185.           cursor_up(members, actor) if $back_attack
  186.           cursor_down(members, actor) unless $back_attack
  187.         end  
  188.       end
  189.       if Input.repeat?(Input::RIGHT)
  190.         if actor
  191.           cursor_up(members, actor) if $back_attack
  192.           cursor_down(members, actor) unless $back_attack
  193.         else
  194.           cursor_down(members, actor) if $back_attack
  195.           cursor_up(members, actor) unless $back_attack
  196.         end
  197.       end
  198.       cursor_up(members, actor) if Input.repeat?(Input::UP)
  199.       cursor_down(members, actor) if Input.repeat?(Input::DOWN)
  200.     end
  201.   end
  202.   #--------------------------------------------------------------------------
  203.   # ● カーソルを前に移動
  204.   #--------------------------------------------------------------------------
  205.   def cursor_up(members, actor)
  206.     Sound.play_cursor
  207.     members.size.times do
  208.       @index += members.size - 1
  209.       @index %= members.size
  210.       break if actor
  211.       break if members[@index].exist?
  212.     end
  213.     @help_window.set_text(members[@index].name, 1)
  214.   end
  215.   #--------------------------------------------------------------------------
  216.   # ● カーソルを次に移動
  217.   #--------------------------------------------------------------------------
  218.   def cursor_down(members, actor)
  219.     Sound.play_cursor
  220.     members.size.times do
  221.       @index += 1
  222.       @index %= members.size
  223.       break if actor
  224.       break if members[@index].exist? && !actor
  225.     end
  226.     @help_window.set_text(members[@index].name, 1)
  227.   end
  228.   #--------------------------------------------------------------------------
  229.   # ● ターゲット選択の終了
  230.   #--------------------------------------------------------------------------
  231.   def end_target_selection
  232.     @actor_command_window.active = true if @actor_command_window.index == 0
  233.     @skill_window.visible = true if @skill_window != nil
  234.     @item_window.visible = true if @item_window != nil
  235.     @cursor.dispose
  236.     @cursor = nil
  237.     if @actor_command_window.index == 0
  238.       @help_window.dispose
  239.       @help_window = nil
  240.     end
  241.   end
  242.   #--------------------------------------------------------------------------
  243.   # ● 逃走の処理  ※再定義
  244.   #--------------------------------------------------------------------------
  245.   def process_escape
  246.     @info_viewport.visible = false
  247.     @message_window.visible = true
  248.     text = sprintf(Vocab::EscapeStart, $game_party.name)
  249.     $game_message.texts.push(text)
  250.     if $game_troop.preemptive
  251.       success = true
  252.     else
  253.       success = (rand(100) < @escape_ratio)
  254.     end
  255.     Sound.play_escape
  256.     # 動けないアクターを除いて逃走成功アクション
  257.     if success
  258.       for actor in $game_party.members
  259.         unless actor.restriction == 4
  260.           @spriteset.set_action(true, actor.index,actor.run_success)
  261.         end
  262.       end  
  263.       wait_for_message
  264.       battle_end(1)
  265.     # 動けないアクターを除いて逃走失敗アクション
  266.     else
  267.       for actor in $game_party.members
  268.         unless actor.restriction == 4
  269.           @spriteset.set_action(true, actor.index,actor.run_ng)
  270.         end
  271.       end
  272.       @escape_ratio += 10
  273.       $game_message.texts.push('\.' + Vocab::EscapeFailure)
  274.       wait_for_message
  275.       $game_party.clear_actions
  276.       start_main
  277.     end
  278.   end  
  279.   #--------------------------------------------------------------------------
  280.   # ● 勝利の処理
  281.   #--------------------------------------------------------------------------
  282.   alias process_victory_n01 process_victory
  283.   def process_victory
  284.     @status_window.visible = true
  285.     @message_window.visible = false
  286.     # ボスコラプスはウエイトを長く挟む
  287.     for enemy in $game_troop.members
  288.       break boss_wait = true if enemy.collapse_type == 3
  289.     end
  290.     wait(440) if boss_wait
  291.     wait(N01::WIN_WAIT) unless boss_wait
  292.     # 動けないアクターを除いて勝利アクション
  293.     for actor in $game_party.members
  294.       unless actor.restriction == 4
  295.         @spriteset.set_action(true, actor.index,actor.win)
  296.       end
  297.     end
  298.     process_victory_n01
  299.   end
  300.   #--------------------------------------------------------------------------
  301.   # ● 戦闘処理の実行開始  ※再定義
  302.   #--------------------------------------------------------------------------
  303.   def start_main
  304.     $game_troop.increase_turn
  305.     @info_viewport.visible = true
  306.     @info_viewport.ox = 0
  307.     @party_command_window.active = false
  308.     @actor_command_window.active = false
  309.     @status_window.index = @actor_index = -1
  310.     @active_battler = nil
  311.     @message_window.clear
  312.     $game_troop.make_actions
  313.     make_action_orders
  314.     # 情報表示ビューポートの移動
  315.     move1_info_viewport
  316.     # スキル名を表示するヘルプウインドウを作成
  317.     @help_window = Window_Help.new
  318.     @help_window.visible = false
  319.     process_battle_event
  320.   end
  321.   #--------------------------------------------------------------------------
  322.   # ● バトルイベントの処理  ※再定義
  323.   #--------------------------------------------------------------------------
  324.   def process_battle_event
  325.     loop do
  326.       return if judge_win_loss
  327.       return if $game_temp.next_scene != nil
  328.       $game_troop.interpreter.update
  329.       $game_troop.setup_battle_event
  330.       @message_window.update
  331.       if $game_message.visible
  332.         @message_window.visible = true
  333.         @status_window.visible = false
  334.       end
  335.       wait_for_message
  336.       @message_window.visible = false
  337.       @status_window.visible = true
  338.       process_action if $game_troop.forcing_battler != nil
  339.       return unless $game_troop.interpreter.running?
  340.       update_basic
  341.     end
  342.   end
  343.   #--------------------------------------------------------------------------
  344.   # ● 行動順序作成
  345.   #--------------------------------------------------------------------------
  346.   alias make_action_orders_n01 make_action_orders
  347.   def make_action_orders
  348.     make_action_orders_n01
  349.     # エネミーの行動回数チェック
  350.     for enemy in $game_troop.members
  351.       enemy.act_time = 0
  352.       if enemy.action_time[0] != 1
  353.         action_time = 0
  354.         # 確率から回数を取得
  355.         for i in 1...enemy.action_time[0]
  356.           action_time += 1 if rand(100) < enemy.action_time[1]
  357.         end
  358.         enemy.act_time = action_time
  359.         action_time.times do
  360.           enemy_order_time(enemy)
  361.           action_time -= 1
  362.           break if action_time == 0
  363.         end  
  364.         enemy.adj_speed = nil
  365.       end
  366.     end
  367.   end
  368.   #--------------------------------------------------------------------------
  369.   # ● エネミーの行動回数作成
  370.   #--------------------------------------------------------------------------
  371.   def enemy_order_time(enemy)
  372.     enemy.make_action_speed2(enemy.action_time[2])
  373.     select_time = 0
  374.     for member in @action_battlers
  375.       select_time += 1
  376.       break @action_battlers.push(enemy) if member.action.speed < enemy.adj_speed
  377.       break @action_battlers.push(enemy) if select_time == @action_battlers.size
  378.     end
  379.   end
  380.   #--------------------------------------------------------------------------
  381.   # ● 戦闘行動の実行
  382.   #--------------------------------------------------------------------------
  383.   alias execute_action_n01 execute_action
  384.   def execute_action
  385.     # スキル、アイテム拡張で行動前にフラッシュさせない設定があるなら
  386.     if @active_battler.action.kind != 0
  387.       obj = @active_battler.action.skill if @active_battler.action.kind == 1
  388.       obj = @active_battler.action.item if @active_battler.action.kind == 2
  389.       if obj.extension.include?("行動前フラッシュなし")
  390.         @active_battler.white_flash = false
  391.       end  
  392.     end
  393.     # バトラーをアクティブ化
  394.     @active_battler.active = true
  395.     execute_action_n01
  396.     # スキル派生がある場合、行動続行
  397.     if @active_battler.derivation != 0
  398.       @active_battler.action.kind = 1
  399.       @active_battler.action.skill_id = @active_battler.derivation
  400.       @action_battlers.unshift(@active_battler)
  401.     end
  402.     # 複数回行動のエネミーがいる場合、次の行動を決定
  403.     if !@active_battler.actor? && @active_battler.act_time != 0
  404.       @active_battler.make_action
  405.       @active_battler.act_time -= 1
  406.     end
  407.   end
  408.   #--------------------------------------------------------------------------
  409.   # ● ターン終了  ※再定義
  410.   #--------------------------------------------------------------------------
  411.   def turn_end
  412.     for member in $game_party.members + $game_troop.members
  413.       member.clear_action_results
  414.       next unless member.exist?
  415.       member.slip_damage = false
  416.       actor = member.actor?
  417.       damage = 0
  418.       # 0ターン解除のステートがあるかチェック
  419.       for state in member.states
  420.         member.remove_state(state.id) if state.extension.include?("0ターン解除")
  421.         # スリップダメージ実行 state = [ 対象, 定数, 割合, POP, 戦闘不能許可]
  422.         next unless state.extension.include?("スリップダメージ")
  423.         for ext in state.slip_extension
  424.           if ext[0] == "hp"
  425.             base_damage = ext[1] + member.maxhp * ext[2] / 100
  426.             damage += base_damage + base_damage * (rand(5) - rand(5)) / 100
  427.             slip_pop = ext[3]
  428.             slip_dead = ext[4]
  429.             slip_damage_flug = true
  430.             member.slip_damage = true
  431.           end
  432.         end  
  433.       end
  434.       # デフォルトのスリップダメージ
  435.       if member.slip_damage? && member.exist? && !slip_damage_flug
  436.         damage += member.apply_variance(member.maxhp / 10, 10)
  437.         slip_dead = false
  438.         slip_pop = true
  439.         slip_damage_flug = true
  440.         member.slip_damage = true
  441.       end
  442.       damage = member.hp - 1 if damage >= member.hp && slip_dead = false
  443.       member.hp -= damage
  444.       @spriteset.set_damage_pop(actor, member.index, damage) if slip_pop
  445.       member.perform_collapse if member.dead? && member.slip_damage
  446.       member.clear_action_results
  447.     end
  448.     @status_window.refresh
  449.     # HPとMPのタイミングをずらす
  450.     wait(55) if slip_damage_flug
  451.     slip_damage_flug = false
  452.     for member in $game_party.members + $game_troop.members
  453.       member.clear_action_results
  454.       next unless member.exist?
  455.       actor = member.actor?
  456.       mp_damage = 0
  457.       for state in member.states
  458.         next unless state.extension.include?("スリップダメージ")
  459.         for ext in state.slip_extension
  460.           if ext[0] == "mp"
  461.             base_damage = ext[1] + member.maxmp * ext[2] / 100
  462.             mp_damage += base_damage + base_damage * (rand(5) - rand(5)) / 100
  463.             slip_pop = ext[2]
  464.             slip_damage_flug = true
  465.           end
  466.         end
  467.         member.mp_damage = mp_damage
  468.         member.mp -= mp_damage
  469.         @spriteset.set_damage_pop(actor, member.index, mp_damage) if slip_pop
  470.       end   
  471.       member.clear_action_results
  472.     end
  473.     @status_window.refresh
  474.     # ダメージと回復のタイミングをずらす
  475.     wait(55) if slip_damage_flug
  476.     # 自動回復があるか
  477.     for member in $game_party.members
  478.       if member.auto_hp_recover and member.exist?
  479.         plus_hp = member.maxhp / 20
  480.         member.hp += plus_hp
  481.         @spriteset.set_damage_pop(true, member.index, plus_hp * -1)
  482.         plus_hp_flug = true
  483.       end
  484.       member.clear_action_results
  485.     end
  486.     @status_window.refresh
  487.     wait(55) if plus_hp_flug
  488.     @help_window.dispose if @help_window != nil
  489.     @help_window = nil
  490.     move2_info_viewport
  491.     $game_troop.turn_ending = true
  492.     $game_troop.preemptive = false
  493.     $game_troop.surprise = false
  494.     process_battle_event
  495.     $game_troop.turn_ending = false
  496.     start_party_command_selection
  497.   end
  498.   #--------------------------------------------------------------------------
  499.   # ● 戦闘行動の実行 : 攻撃  ※再定義
  500.   #--------------------------------------------------------------------------
  501.   def execute_action_attack
  502.     # 行動中に死なないようメンバー全員を不死身化
  503.     immortaling
  504.     target_decision
  505.     self_index = @active_battler.index
  506.     if @active_battler.actor?
  507.       if @active_battler.weapon_id == 0
  508.         action = @active_battler.non_weapon
  509.       else  
  510.         action = $data_weapons[@active_battler.weapon_id].base_action
  511.       end  
  512.     else
  513.       if @active_battler.weapon == 0
  514.         action = @active_battler.base_action
  515.       else
  516.         action = $data_weapons[@active_battler.weapon].base_action
  517.       end  
  518.     end
  519.     @spriteset.set_action(@active_battler.actor?, self_index, action)
  520.     playing_action
  521.   end
  522.   #--------------------------------------------------------------------------
  523.   # ● 戦闘行動の実行 : 防御  ※再定義
  524.   #--------------------------------------------------------------------------
  525.   def execute_action_guard
  526.     @help_window.set_text("防御", 1)
  527.     @help_window.visible = true
  528.     # バトラーのアクティブ化を解除
  529.     @active_battler.active = false
  530.     wait(45)
  531.     @help_window.visible = false
  532.   end
  533.   #--------------------------------------------------------------------------
  534.   # ● 戦闘行動の実行 : 逃走
  535.   #--------------------------------------------------------------------------
  536.   def execute_action_escape
  537.     @spriteset.set_action(false, @active_battler.index, @active_battler.run_success)
  538.     @help_window.set_text("逃走", 1)
  539.     @help_window.visible = true
  540.     # バトラーのアクティブ化を解除
  541.     @active_battler.active = false
  542.     @active_battler.escape
  543.     Sound.play_escape
  544.     wait(45)
  545.     @help_window.visible = false
  546.   end
  547.   #--------------------------------------------------------------------------
  548.   # ● 戦闘行動の実行 : 待機  ※再定義
  549.   #--------------------------------------------------------------------------
  550.   def execute_action_wait
  551.     # バトラーのアクティブ化を解除
  552.     @active_battler.active = false
  553.     wait(45)
  554.   end   
  555.   #--------------------------------------------------------------------------
  556.   # ● 戦闘行動の実行 : スキル  ※再定義
  557.   #--------------------------------------------------------------------------
  558.   def execute_action_skill
  559.     # 行動中に死なないようメンバー全員を不死身化
  560.     immortaling
  561.     skill = @active_battler.action.skill
  562.     # スキルコスト消費
  563.     return if @active_battler.consum_skill_cost(skill) == false
  564.     # ターゲット決定
  565.     target_decision(skill)
  566.     # アクション開始
  567.     @spriteset.set_action(@active_battler.actor?, @active_battler.index, skill.base_action)
  568.     # ヘルプウインドウにスキル名表示
  569.     pop_help(skill)
  570.     # アクション中
  571.     playing_action
  572.     # コモンイベント取得
  573.     $game_temp.common_event_id = skill.common_event_id
  574.   end
  575.   #--------------------------------------------------------------------------
  576.   # ● 戦闘行動の実行 : アイテム  ※再定義
  577.   #--------------------------------------------------------------------------
  578.   def execute_action_item
  579.     immortaling
  580.     item = @active_battler.action.item
  581.     $game_party.consume_item(item)
  582.     target_decision(item)
  583.     @spriteset.set_action(@active_battler.actor?, @active_battler.index, item.base_action)
  584.     pop_help(item)
  585.     playing_action
  586.     $game_temp.common_event_id = item.common_event_id
  587.   end
  588.   #--------------------------------------------------------------------------
  589.   # ● ターゲット決定
  590.   #--------------------------------------------------------------------------
  591.   def target_decision(obj = nil)
  592.     @targets = @active_battler.action.make_targets
  593.     # ターゲットがいない場合、アクション中断
  594.     if @targets.size == 0
  595.       action = @active_battler.recover_action
  596.       @spriteset.set_action(@active_battler.actor?, @active_battler.index, action)
  597.     end
  598.     if obj != nil
  599.       # デフォルトの複数回攻撃が設定されていれば単体ターゲットに変換
  600.       if obj.for_two? or obj.for_three? or obj.dual?
  601.         @targets = [@targets[0]]
  602.       end
  603.       # ランダムターゲットの場合、一体を選択しランダム範囲を保持
  604.       if obj.extension.include?("ランダムターゲット")
  605.         randum_targets = @targets.dup
  606.         @targets = [randum_targets[rand(randum_targets.size)]]
  607.       end
  608.     end
  609.     # ターゲット情報をバトラースプライトに送る
  610.     @spriteset.set_target(@active_battler.actor?, @active_battler.index, @targets)
  611.   end   
  612.   #--------------------------------------------------------------------------
  613.   # ● アクション実行中
  614.   #--------------------------------------------------------------------------
  615.   def playing_action
  616.     loop do
  617.       update_basic
  618.       # アクティブバトラーに格納されているアクション情報を見る
  619.       action = @active_battler.play
  620.       next if action == 0
  621.       @active_battler.play = 0
  622.       if action[0] == "個別処理"
  623.         individual
  624.       elsif action == "コラプス許可"
  625.         unimmortaling
  626.       elsif action == "アクティブ解除"
  627.         break action_end
  628.       elsif action == "終了"
  629.         break action_end
  630.       elsif action[0] == "対象アニメ"
  631.         damage_action(action[1])
  632.       end
  633.     end  
  634.   end
  635.   #--------------------------------------------------------------------------
  636.   # ● 個別処理
  637.   #--------------------------------------------------------------------------
  638.   def individual
  639.     # ターゲット情報を保持
  640.     @individual_target = @targets
  641.     @stand_by_target = @targets.dup
  642.   end
  643.   #--------------------------------------------------------------------------
  644.   # ● コラプス禁止
  645.   #--------------------------------------------------------------------------
  646.   def immortaling
  647.     # 全員に不死身付与
  648.     for member in $game_party.members + $game_troop.members
  649.       # 既に戦闘不能ならスキップ
  650.       next if member.dead?
  651.       # イベント等で不死身設定になっていたら解除を無効にするフラグを立てる
  652.       member.non_dead = true if member.immortal
  653.       member.immortal = true
  654.     end  
  655.   end  
  656.   #--------------------------------------------------------------------------
  657.   # ● コラプス許可
  658.   #--------------------------------------------------------------------------
  659.   def unimmortaling
  660.     # 個別処理中はコラプス許可しない
  661.     return if @active_battler.individual
  662.     # 全員の不死身化解除(イベント等で不死身設定がされていれば除く)
  663.     for member in $game_party.members + $game_troop.members
  664.       next member.non_dead = false if member.non_dead
  665.       next if member.dead?
  666.       member.immortal = false
  667.       member.add_state(1) if member.hp == 0
  668.       member.perform_collapse
  669.     end
  670.     # この時点で待機アクションに即反映させる
  671.     @targets = @stand_by_target if @stand_by_target != nil
  672.     return if @targets == nil or @targets.size == 0
  673.     for target in @targets
  674.       @spriteset.set_stand_by_action(target.actor?, target.index)
  675.       # 自動復活チェック
  676.       next unless target.hp == 0
  677.       resurrection(target)
  678.     end  
  679.   end
  680.   #--------------------------------------------------------------------------
  681.   # ● 自動復活
  682.   #--------------------------------------------------------------------------
  683.   def resurrection(target)
  684.     for state in target.states
  685.       for ext in state.extension
  686.         name = ext.split('')
  687.         next unless name[0] == "自"
  688.         wait(50)
  689.         name = name.join
  690.         name.slice!("自動復活/")
  691.         target.hp = target.maxhp * name.to_i / 100
  692.         target.remove_state(1)
  693.         target.remove_state(state.id)
  694.         target.animation_id = N01::RESURRECTION
  695.         target.animation_mirror = true if $back_attack
  696.         @status_window.refresh
  697.         wait($data_animations[N01::RESURRECTION].frame_max * 4)
  698.       end  
  699.     end
  700.   end
  701.   #--------------------------------------------------------------------------
  702.   # ● 魔法反射・無効
  703.   #--------------------------------------------------------------------------
  704.   def magic_reflection(target, obj)
  705.     return if obj.physical_attack
  706.     for state in target.states
  707.       for ext in state.extension
  708.         name = ext.split('')
  709.         next unless name[0] == "魔"
  710.         if name[2] == "反"
  711.           name = name.join
  712.           name.slice!("魔法反射/")
  713.           target.animation_id = name.to_i
  714.           target.animation_mirror = true if $back_attack
  715.           @reflection = true
  716.         else
  717.           name = name.join
  718.           name.slice!("魔法無効/")
  719.           target.animation_id = name.to_i
  720.           target.animation_mirror = true if $back_attack
  721.           @invalid = true
  722.         end  
  723.       end  
  724.     end
  725.   end
  726.   #--------------------------------------------------------------------------
  727.   # ● 物理反射・無効
  728.   #--------------------------------------------------------------------------
  729.   def physics_reflection(target, obj)
  730.     return if obj != nil && !obj.physical_attack
  731.     for state in target.states
  732.       for ext in state.extension
  733.         name = ext.split('')
  734.         next unless name[0] == "物"
  735.         if name[2] == "反"
  736.           name = name.join
  737.           name.slice!("物理反射/")
  738.           target.animation_id = name.to_i
  739.           target.animation_mirror = true if $back_attack
  740.           @reflection = true
  741.         else
  742.           name = name.join
  743.           name.slice!("物理無効/")
  744.           target.animation_id = name.to_i
  745.           target.animation_mirror = true if $back_attack
  746.           @invalid = true
  747.         end
  748.       end  
  749.     end
  750.   end
  751.   #--------------------------------------------------------------------------
  752.   # ● スキルコスト吸収
  753.   #--------------------------------------------------------------------------
  754.   def absorb_cost(target, obj)
  755.     for state in target.states
  756.       if state.extension.include?("コスト吸収")
  757.         cost = @active_battler.calc_mp_cost(obj)
  758.         # SP消費とHP消費で分ける
  759.         return target.hp += cost if obj.extension.include?("HP消費")
  760.         return target.mp += cost
  761.       end  
  762.     end
  763.   end
  764.   #--------------------------------------------------------------------------
  765.   # ● 吸収処理
  766.   #--------------------------------------------------------------------------
  767.   def absorb_attack(obj, target, index, actor)
  768.     absorb = target.hp_damage
  769.     absorb = target.mp_damage if target.mp_damage != 0
  770.     # ターゲットが複数同時の吸収処理
  771.     @wide_attack = true if obj.scope == 2 or obj.scope == 4 or obj.scope == 6 or obj.extension.include?("全域")
  772.     if @wide_attack && @absorb == nil && @targets.size != 1
  773.       # 吸収した分を戻す
  774.       @active_battler.hp -= @active_battler.hp_damage
  775.       @active_battler.mp -= @active_battler.mp_damage
  776.       # 後で吸い戻す数値として加算
  777.       @absorb = absorb
  778.       @absorb_target_size = @targets.size - 2
  779.     elsif @absorb != nil && @absorb_target_size > 0
  780.       @active_battler.hp -= @active_battler.hp_damage
  781.       @active_battler.mp -= @active_battler.mp_damage
  782.       @absorb += absorb
  783.       @absorb_target_size -= 1
  784.     # 複数ターゲットの最終吸収処理
  785.     elsif @absorb != nil
  786.       # 吸収した分を戻す
  787.       @active_battler.hp -= @active_battler.hp_damage
  788.       @active_battler.mp -= @active_battler.mp_damage
  789.       @absorb += absorb
  790.       # ここで全吸収分を反映
  791.       @active_battler.hp_damage = -@absorb
  792.       @active_battler.mp_damage = -@absorb if target.mp_damage != 0
  793.       @active_battler.hp -= @active_battler.hp_damage
  794.       @active_battler.mp -= @active_battler.mp_damage
  795.       # 吸収量が0の場合の吸収者側処理
  796.       absorb_action = ["absorb", nil, false] if @absorb == 0
  797.       absorb_action = [nil, nil, false] if @absorb != 0
  798.       @spriteset.set_damage_action(actor, index, absorb_action)
  799.       @active_battler.perform_collapse
  800.       @absorb = nil
  801.       @absorb_target_size = nil
  802.     # 単体での吸収処理
  803.     else
  804.       if N01::ABSORB_DAMAGE
  805.         # 吸収した分を戻す
  806.         @active_battler.hp -= @active_battler.hp_damage
  807.         @active_battler.mp -= @active_battler.mp_damage
  808.         # 吸収反映
  809.         @active_battler.hp_damage = -absorb
  810.         @active_battler.mp_damage = -absorb if target.mp_damage != 0
  811.         @active_battler.hp -= @active_battler.hp_damage
  812.         @active_battler.mp -= @active_battler.mp_damage
  813.       end
  814.       # 吸収量が0の場合の吸収者側処理
  815.       absorb_action = ["absorb", nil, false] if absorb == 0
  816.       absorb_action = [nil, nil, false] if absorb != 0
  817.       @spriteset.set_damage_action(actor, index, absorb_action)
  818.       # 逆吸収でHP0になった場合
  819.       @absorb_dead = true if @active_battler.hp == 0 && !@active_battler.non_dead
  820.     end
  821.     # 吸収量が0の場合の対象者側処理
  822.     return 0 if absorb == 0
  823.   end
  824.   #--------------------------------------------------------------------------
  825.   # ● アクション終了
  826.   #--------------------------------------------------------------------------
  827.   def action_end
  828.     # 初期化
  829.     @individual_target = nil
  830.     @help_window.visible = false if @help_window != nil && @help_window.visible
  831.     @active_battler.active = false
  832.     @active_battler.clear_action_results
  833.     # 念のため不死身化解除
  834.     unimmortaling
  835.     # 反射されていた場合
  836.     if @active_battler.reflex != nil
  837.       if @active_battler.action.skill?
  838.         obj = @active_battler.action.skill
  839.         @active_battler.perfect_skill_effect(@active_battler, obj)
  840.       elsif @active_battler.action.item?
  841.         obj = @active_battler.action.item
  842.         @active_battler.item_effect(@active_battler, obj)
  843.       else
  844.         @active_battler.perfect_attack_effect(@active_battler)
  845.       end
  846.       pop_damage(@active_battler, obj, @active_battler.reflex)
  847.       @active_battler.perform_collapse
  848.       @active_battler.reflex = nil
  849.       wait(N01::COLLAPSE_WAIT)
  850.     end
  851.     # 逆吸収で戦闘不能になった場合
  852.     if @absorb_dead
  853.       @active_battler.perform_collapse
  854.       @absorb_dead = false
  855.       wait(N01::COLLAPSE_WAIT)
  856.     end
  857.     # 次の行動までウエイトを挟む
  858.     wait(N01::ACTION_WAIT)
  859.   end  
  860.   #--------------------------------------------------------------------------
  861.   # ● ダメージ処理
  862.   #--------------------------------------------------------------------------
  863.   def damage_action(action)
  864.     # 個別処理の場合ターゲットを一つずつ抜き出す
  865.     @targets = [@individual_target.shift] if @active_battler.individual
  866.     # スキルの場合
  867.     if @active_battler.action.skill?
  868.       obj = @active_battler.action.skill
  869.       for target in @targets
  870.         return if target == nil
  871.         return if target.dead? && !obj.for_dead_friend?
  872.         # HPが0なら戦闘不能復活以外はミスしない
  873.         target.revival = true if obj.for_dead_friend?
  874.         if target.hp == 0 && !obj.for_dead_friend?
  875.           target.perfect_skill_effect(@active_battler, obj)
  876.         # 必中確認
  877.         elsif obj.extension.include?("必中")
  878.           target.perfect_skill_effect(@active_battler, obj)
  879.         else
  880.           # 反射確認
  881.           magic_reflection(target, obj) unless obj.extension.include?("反射無視")
  882.           physics_reflection(target, obj) unless obj.extension.include?("反射無視")
  883.           # ダメージ計算
  884.           target.skill_effect(@active_battler, obj) unless @reflection or @invalid
  885.         end  
  886.         pop_damage(target, obj, action) unless @reflection or @invalid
  887.         # コスト吸収確認
  888.         absorb_cost(target, obj)
  889.         # 反射アクション取得
  890.         @active_battler.reflex = action if @reflection
  891.         @reflection = false
  892.         @invalid = false
  893.       end
  894.     # アイテムの場合
  895.     elsif @active_battler.action.item?
  896.       obj = @active_battler.action.item
  897.       for target in @targets
  898.         return if target == nil
  899.         return if target.dead? && !obj.for_dead_friend?
  900.         target.revival = true if obj.for_dead_friend?
  901.         if target.hp == 0 && !obj.for_dead_friend?
  902.           target.perfect_item_effect(@active_battler, obj)
  903.         elsif obj.extension.include?("必中")
  904.           target.perfect_item_effect(@active_battler, obj)
  905.         else
  906.           magic_reflection(target, obj) unless obj.extension.include?("反射無視")
  907.           physics_reflection(target, obj) unless obj.extension.include?("反射無視")
  908.           target.item_effect(@active_battler, obj) unless @reflection or @invalid
  909.         end
  910.         pop_damage(target, obj, action) unless @reflection or @invalid
  911.         @active_battler.reflex = action if @reflection
  912.         @reflection = false
  913.         @invalid = false
  914.       end
  915.     # 通常攻撃の場合
  916.     else
  917.       for target in @targets
  918.         return if target == nil or target.dead?
  919.         physics_reflection(target, nil)
  920.         target.perfect_attack_effect(@active_battler) if target.hp <= 0
  921.         target.attack_effect(@active_battler) unless target.hp <= 0 or @reflection or @invalid
  922.         pop_damage(target, nil, action) unless @reflection or @invalid
  923.         # 反射アクション取得
  924.         @active_battler.reflex = action if @reflection
  925.         @reflection = false
  926.         @invalid = false
  927.       end
  928.     end
  929.     # ステータスウインドウをリフレッシュ
  930.     @status_window.refresh
  931.     # 連続行動中のランダムターゲットを考慮し、すぐに次のターゲットを選択
  932.     return if obj == nil
  933.     target_decision(obj) if obj.extension.include?("ランダムターゲット")
  934.   end
  935.   #--------------------------------------------------------------------------
  936.   # ● ダメージ表示  action = [アニメID,反転フラグ,リアクション許可]
  937.   #--------------------------------------------------------------------------
  938.   def pop_damage(target, obj, action)
  939.     index = @active_battler.index
  940.     actor = @active_battler.actor?
  941.     if obj != nil
  942.       # スキルやアイテムが吸収属性なら
  943.       absorb = absorb_attack(obj, target, index, actor) if obj.absorb_damage
  944.       action.push(true) if absorb == 0
  945.       # 拡張設定でダメージアクション禁止なら
  946.       action[2] = false if obj.extension.include?("ダメージアクション禁止")
  947.     end
  948.     # 対象のリアクション
  949.     @spriteset.set_damage_action(target.actor?, target.index, action)
  950.   end
  951. end  
  952. #==============================================================================
  953. # ■ Game_BattleAction
  954. #------------------------------------------------------------------------------
  955. #  戦闘行動を扱うクラスです。
  956. #==============================================================================
  957. class Game_BattleAction
  958.   #--------------------------------------------------------------------------
  959.   # ● 行動が有効か否かの判定  ※再定義
  960.   #--------------------------------------------------------------------------
  961.   def valid?
  962.     return false if nothing?                      # 何もしない
  963.     return true if @forcing                       # 行動強制中
  964.     return false unless battler.movable?          # 行動不能
  965.     if skill?                                     # スキル
  966.       if battler.derivation != 0
  967.         battler.derivation = 0
  968.         return true
  969.       end  
  970.       return false unless battler.skill_can_use?(skill)
  971.     elsif item?                                   # アイテム
  972.       return false unless friends_unit.item_can_use?(item)
  973.     end
  974.     return true
  975.   end
  976.   #--------------------------------------------------------------------------
  977.   # ● ターゲットの配列作成  ※再定義
  978.   #--------------------------------------------------------------------------
  979.   def make_targets
  980.     if attack?
  981.       return make_attack_targets
  982.     elsif skill?
  983.       targets = make_obj_targets(skill)
  984.       targets = make_obj_targets2(skill, targets) if skill.extension != ["なし"]
  985.       return targets
  986.     elsif item?
  987.       targets = make_obj_targets(item)
  988.       targets = make_obj_targets2(item, targets) if item.extension != ["なし"]
  989.       return targets
  990.     end
  991.   end
  992.   #--------------------------------------------------------------------------
  993.   # ● スキルまたはアイテムのターゲット作成の拡張
  994.   #--------------------------------------------------------------------------
  995.   def make_obj_targets2(obj, targets)
  996.     if obj.extension.include?("全域")
  997.       targets = []
  998.       targets += opponents_unit.existing_members
  999.       targets += friends_unit.existing_members
  1000.     end
  1001.     if obj.extension.include?("自分以外")
  1002.       targets.delete($game_party.members[battler.index]) if battler.actor?
  1003.       targets.delete($game_troop.members[battler.index]) unless battler.actor?
  1004.     end
  1005.     return targets.compact
  1006.   end
  1007. end
  1008. #==============================================================================
  1009. # ■ Sprite_Base
  1010. #------------------------------------------------------------------------------
  1011. #  アニメーションの表示処理を追加したスプライトのクラスです。
  1012. #==============================================================================
  1013. class Sprite_Base < Sprite
  1014.   #--------------------------------------------------------------------------
  1015.   # ● アニメーションの更新 アニメをスプライトに追従するように
  1016.   #--------------------------------------------------------------------------
  1017.   alias update_animation_n01 update_animation
  1018.   def update_animation
  1019.     @animation_ox = x - ox + width / 2
  1020.     @animation_oy = y - oy + height / 2
  1021.     update_animation_n01
  1022.   end
  1023. end  
  1024. #==============================================================================
  1025. # ■ Spriteset_Battle
  1026. #------------------------------------------------------------------------------
  1027. #  バトル画面のスプライトをまとめたクラスです。
  1028. #==============================================================================
  1029. class Spriteset_Battle
  1030.   #--------------------------------------------------------------------------
  1031.   # ● エネミースプライトの作成
  1032.   #--------------------------------------------------------------------------
  1033.   def create_enemies
  1034.     @enemy_sprites = []
  1035.     for i in 0...$game_troop.members.size
  1036.       enemy = $game_troop.members[i]
  1037.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  1038.       # バトル開始アクションを起こす
  1039.       @enemy_sprites[i].opacity = 0 if $game_troop.members[i].hidden
  1040.       @enemy_sprites[i].first_action if $game_troop.members[i] != nil
  1041.     end
  1042.   end
  1043.   #--------------------------------------------------------------------------
  1044.   # ● アクタースプライトの作成
  1045.   #--------------------------------------------------------------------------
  1046.   def create_actors
  1047.     @actor_sprites = []
  1048.     # メンバー最大数スプライトを用意
  1049.     member = N01::MAX_MEMBER
  1050.     for i in 0...member
  1051.       actor = $game_party.members[i]
  1052.       @actor_sprites.push(Sprite_Battler.new(@viewport1, actor))
  1053.       # バトル開始アクションを起こす
  1054.       @actor_sprites[i].first_action if $game_party.members[i] != nil
  1055.     end
  1056.   end
  1057.   
  1058.   #--------------------------------------------------------------------------
  1059.   # ● バックアタック
  1060.   #--------------------------------------------------------------------------
  1061.   def back_attack  
  1062.     # 強制バックアタックならフラグオン
  1063.     for i in 0...N01::BACK_ATTACK_SWITCH.size
  1064.       return $back_attack = true if $game_switches[N01::BACK_ATTACK_SWITCH[i]]
  1065.     end
  1066.     # 不意打ちが発生していなければ処理を中断
  1067.     return $back_attack = false unless $game_troop.surprise && N01::BACK_ATTACK
  1068.     # 装備等によるバックアタック無効化をチェック
  1069.     for actor in $game_party.members
  1070.       return $back_attack = false if N01::NON_BACK_ATTACK_WEAPONS.include?(actor.weapon_id)
  1071.       return $back_attack = false if N01::NON_BACK_ATTACK_ARMOR1.include?(actor.armor1_id)
  1072.       return $back_attack = false if N01::NON_BACK_ATTACK_ARMOR2.include?(actor.armor2_id)
  1073.       return $back_attack = false if N01::NON_BACK_ATTACK_ARMOR3.include?(actor.armor3_id)
  1074.       return $back_attack = false if N01::NON_BACK_ATTACK_ARMOR4.include?(actor.armor4_id)
  1075.       for i in 0...N01::NON_BACK_ATTACK_SKILLS.size
  1076.         return $back_attack = false if actor.skill_id_learn?(N01::NON_BACK_ATTACK_SKILLS[i])
  1077.       end  
  1078.     end
  1079.     # バックアタック発生
  1080.     $back_attack = true
  1081.   end
  1082.   #--------------------------------------------------------------------------
  1083.   # ● アクタースプライトの更新  ※再定義
  1084.   #--------------------------------------------------------------------------
  1085.   def update_actors
  1086.     for i in 0...$game_party.members.size
  1087.       if @actor_sprites[i].battler.id != $game_party.members[i].id
  1088.         @actor_sprites[i].battler = $game_party.members[i]
  1089.         @actor_sprites[i].make_battler
  1090.         @actor_sprites[i].first_action
  1091.       end  
  1092.     end  
  1093.     for sprite in @actor_sprites
  1094.       sprite.update
  1095.     end
  1096.   end
  1097.   #--------------------------------------------------------------------------
  1098.   # ● ダメージアクションセット 
  1099.   #--------------------------------------------------------------------------  
  1100.   def set_damage_action(actor, index, action)
  1101.     @actor_sprites[index].damage_action(action) if actor
  1102.     @enemy_sprites[index].damage_action(action) unless actor
  1103.   end
  1104.   #--------------------------------------------------------------------------
  1105.   # ● ダメージPOPセット 
  1106.   #--------------------------------------------------------------------------  
  1107.   def set_damage_pop(actor, index, damage)
  1108.     @actor_sprites[index].damage_pop(damage) if actor
  1109.     @enemy_sprites[index].damage_pop(damage) unless actor
  1110.   end
  1111.   #--------------------------------------------------------------------------
  1112.   # ● ターゲットセット
  1113.   #--------------------------------------------------------------------------  
  1114.   def set_target(actor, index, target)
  1115.     @actor_sprites[index].get_target(target) if actor
  1116.     @enemy_sprites[index].get_target(target) unless actor
  1117.   end
  1118.   #--------------------------------------------------------------------------
  1119.   # ● アクションセット
  1120.   #--------------------------------------------------------------------------  
  1121.   def set_action(actor, index, kind)
  1122.     @actor_sprites[index].start_action(kind) if actor
  1123.     @enemy_sprites[index].start_action(kind) unless actor
  1124.   end  
  1125.   #--------------------------------------------------------------------------
  1126.   # ● 待機アクションセット
  1127.   #--------------------------------------------------------------------------  
  1128.   def set_stand_by_action(actor, index)
  1129.     @actor_sprites[index].push_stand_by if actor
  1130.     @enemy_sprites[index].push_stand_by unless actor
  1131.   end  
  1132.   #--------------------------------------------------------------------------
  1133.   # ● カーソル移動のセット
  1134.   #--------------------------------------------------------------------------  
  1135.   def set_cursor(actor, index)
  1136.     return [@actor_sprites[index].x, @actor_sprites[index].y] if actor
  1137.     return [@enemy_sprites[index].x, @enemy_sprites[index].y] unless actor
  1138.   end
  1139. end
  1140. #==============================================================================
  1141. # ■ Sprite_MoveAnime
  1142. #------------------------------------------------------------------------------
  1143. #  アニメ飛ばし用のスプライトです。
  1144. #==============================================================================
  1145. class Sprite_MoveAnime < Sprite_Base
  1146.   #--------------------------------------------------------------------------
  1147.   # ● 公開インスタンス変数
  1148.   #--------------------------------------------------------------------------
  1149.   attr_accessor :battler
  1150.   attr_accessor :base_x   # 自身の基本X座標
  1151.   attr_accessor :base_y   # 自身の基本Y座標
  1152.   #--------------------------------------------------------------------------
  1153.   # ● オブジェクト初期化
  1154.   #--------------------------------------------------------------------------
  1155.   def initialize(viewport,battler = nil)
  1156.     super(viewport)
  1157.     @battler = battler
  1158.     self.visible = false
  1159.     @base_x = 0
  1160.     @base_y = 0
  1161.     @move_x = 0                # 動かしたX座標
  1162.     @move_y = 0                # 動かしたY座標
  1163.     @moving_x = 0              # 1フレーム当たり動かすX座標
  1164.     @moving_y = 0              # 1フレーム当たり動かすY座標
  1165.     @orbit = 0                 # 円軌道
  1166.     @orbit_plus = 0            # 加算する円軌道
  1167.     @orbit_time = 0            # 円軌道計算時間
  1168.     @through = false           # 貫通するかどうか
  1169.     @finish = false            # 移動終了フラグ
  1170.     @time = 0                  # 移動時間
  1171.     @angle = 0                 # 武器の角度
  1172.     @angling = 0               # 1フレーム当たり動かす武器の角度
  1173.   end
  1174.   #--------------------------------------------------------------------------
  1175.   # ● アクションを取得
  1176.   #--------------------------------------------------------------------------  
  1177.   def anime_action(id,mirror,distanse_x,distanse_y,type,speed,orbit,weapon,icon_index,icon_weapon)
  1178.     # 1フレームあたりの移動距離を算出
  1179.     @time = speed
  1180.     @moving_x = distanse_x / speed
  1181.     @moving_y = distanse_y / speed
  1182.     # 貫通するかどうか
  1183.     @through = true if type == 1
  1184.     # 円軌道を取得
  1185.     @orbit_plus = orbit
  1186.     @orbit_time = @time
  1187.     # 武器グラフィックの有無
  1188.     if weapon != ""
  1189.       action = N01::ANIME[weapon].dup
  1190.       @angle = action[0]
  1191.       end_angle = action[1]
  1192.       time = action[2]
  1193.       # 1フレームあたりの回転角度を出す
  1194.       @angling = (end_angle - @angle)/ time
  1195.       # 開始角度を取る
  1196.       self.angle = @angle
  1197.       # 武器グラフィックを表示
  1198.       self.mirror = mirror
  1199.       if icon_weapon
  1200.         self.bitmap = Cache.system("Iconset")
  1201.         self.src_rect.set(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
  1202.         self.ox = 12
  1203.         self.oy = 12
  1204.       else
  1205.         self.bitmap = Cache.character(icon_index)
  1206.         self.ox = self.bitmap.width / 2
  1207.         self.oy = self.bitmap.height / 2
  1208.       end  
  1209.       self.visible = true
  1210.       # バトラーより手前に表示
  1211.       self.z = 1000
  1212.     end  
  1213.     # 最初は動かさず一回だけ表示
  1214.     self.x = @base_x + @move_x
  1215.     self.y = @base_y + @move_y + @orbit
  1216.     if id != 0
  1217.       animation = $data_animations[id]
  1218.       start_animation(animation, mirror)
  1219.     end
  1220.   end  
  1221.   #--------------------------------------------------------------------------
  1222.   # ● 変化した動きをリセット
  1223.   #--------------------------------------------------------------------------  
  1224.   def action_reset
  1225.     @moving_x = @moving_y = @move_x = @move_y = @base_x = @base_y = @orbit = 0
  1226.     @orbit_time = @angling = @angle = 0   
  1227.     @through = self.visible = @finish = false
  1228.     dispose_animation
  1229.   end   
  1230.   #--------------------------------------------------------------------------
  1231.   # ● 貫通終了
  1232.   #--------------------------------------------------------------------------  
  1233.   def finish?
  1234.     return @finish
  1235.   end
  1236.   #--------------------------------------------------------------------------
  1237.   # ● フレーム更新
  1238.   #--------------------------------------------------------------------------
  1239.   def update
  1240.     super
  1241.     # 時間消費
  1242.     @time -= 1
  1243.     # 時間まで指定の動きを
  1244.     if @time >= 0
  1245.       @move_x += @moving_x
  1246.       @move_y += @moving_y
  1247.       # 円軌道計算
  1248.       if @time < @orbit_time / 2
  1249.         @orbit_plus = @orbit_plus * 5 / 4
  1250.       elsif @time == @orbit_time / 2
  1251.         @orbit_plus *= -1
  1252.       else
  1253.         @orbit_plus = @orbit_plus * 2 / 3
  1254.       end  
  1255.       @orbit += @orbit_plus
  1256.     end   
  1257.     # 時間がきても貫通ならそのまま直進
  1258.     @time = 100 if @time < 0 && @through
  1259.     @finish = true if @time < 0 && !@through
  1260.     # スプライトの座標を更新
  1261.     self.x = @base_x + @move_x
  1262.     self.y = @base_y + @move_y + @orbit
  1263.     # 貫通の場合、画面から消えたら終了フラグオン
  1264.     if self.x < -200 or self.x > 840 or self.y < -200 or self.y > 680
  1265.       @finish = true
  1266.     end
  1267.     # 武器グラフィック更新
  1268.     if self.visible
  1269.       @angle += @angling
  1270.       self.angle = @angle
  1271.     end  
  1272.   end
  1273. end
  1274. #==============================================================================
  1275. # ■ Sprite_Weapon
  1276. #------------------------------------------------------------------------------
  1277. #  ウエポン表示用のスプライトです。
  1278. #==============================================================================
  1279. class Sprite_Weapon < Sprite_Base
  1280.   #--------------------------------------------------------------------------
  1281.   # ● 公開インスタンス変数
  1282.   #--------------------------------------------------------------------------
  1283.   attr_accessor :battler
  1284.   #--------------------------------------------------------------------------
  1285.   # ● オブジェクト初期化
  1286.   #--------------------------------------------------------------------------
  1287.   def initialize(viewport,battler = nil)
  1288.     super(viewport)
  1289.     @battler = battler
  1290.     @action = []                     # 武器のアクション情報
  1291.     @move_x = 0                      # 動かしたX座標
  1292.     @move_y = 0                      # 動かしたY座標
  1293.     @move_z = 0                      # 動かしたZ座標
  1294.     @plus_x = 0                      # 微調整分のX座標
  1295.     @plus_y = 0                      # 微調整分のY座標
  1296.     @angle = 0                       # 武器の回転角度
  1297.     @zoom_x = 1                      # 武器の横拡大率
  1298.     @zoom_y = 1                      # 武器の縦拡大率
  1299.     @moving_x = 0                    # 1フレーム当たり動かすX座標
  1300.     @moving_y = 0                    # 1フレーム当たり動かすY座標
  1301.     @angling = 0                     # 1フレーム当たりの回転角度
  1302.     @zooming_x = 1                   # 1フレーム当たりの横拡大率
  1303.     @zooming_y = 1                   # 1フレーム当たりの縦拡大率   
  1304.     @freeze = -1                     # 固定アニメ用武器位置
  1305.     @mirroring = false               # バトラーが反転しているか
  1306.     @time = N01::ANIME_PATTERN + 1   # 更新回数
  1307.     # 武器を取得
  1308.     weapon_graphics
  1309.   end
  1310.   #--------------------------------------------------------------------------
  1311.   # ● 解放
  1312.   #--------------------------------------------------------------------------
  1313.   def dispose
  1314.     self.bitmap.dispose if self.bitmap != nil
  1315.     super
  1316.   end
  1317.   #--------------------------------------------------------------------------
  1318.   # ● 武器を取得
  1319.   #--------------------------------------------------------------------------  
  1320.   def weapon_graphics(left = false)
  1321.     if @battler.actor?
  1322.       weapon = @battler.weapons[0] unless left
  1323.       weapon = @battler.weapons[1] if left
  1324.     else
  1325.       weapon = $data_weapons[@battler.weapon]
  1326.       # エネミー反転フラグ確認
  1327.       @mirroring = true if @battler.action_mirror
  1328.     end
  1329.     # 武器がなければ処理をキャンセル
  1330.     return if weapon == nil
  1331.     # アイコンを利用するなら
  1332.     if weapon.graphic == ""
  1333.       icon_index = weapon.icon_index
  1334.       self.bitmap = Cache.system("Iconset")
  1335.       self.src_rect.set(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
  1336.       @weapon_width = @weapon_height = 24
  1337.     # ID指定があったら、アイコンではなくそのグラフィックを取得  
  1338.     else
  1339.       self.bitmap = Cache.character(weapon.graphic)
  1340.       @weapon_width = self.bitmap.width
  1341.       @weapon_height = self.bitmap.height
  1342.     end
  1343.   end
  1344.   #--------------------------------------------------------------------------
  1345.   # ● アニメ固定時の武器位置を取得
  1346.   #--------------------------------------------------------------------------  
  1347.   def freeze(action)
  1348.     @freeze = action
  1349.   end
  1350.   #--------------------------------------------------------------------------
  1351.   # ● 武器アクションを取得 freeze
  1352.   #--------------------------------------------------------------------------  
  1353.   def weapon_action(action,loop)
  1354.     # 名称がない場合は非表示に
  1355.     if action == ""
  1356.       self.visible = false
  1357.     # 素手なら非表示に
  1358.     elsif @weapon_id == 0
  1359.       self.visible = false
  1360.     # 武器アクション情報を受け取る
  1361.     else
  1362.       @action = N01::ANIME[action]
  1363.       act0 = @action[0]
  1364.       act1 = @action[1]
  1365.       act2 = @action[2]
  1366.       act3 = @action[3]
  1367.       act4 = @action[4]
  1368.       act5 = @action[5]
  1369.       act6 = @action[6]
  1370.       act7 = @action[7]
  1371.       act8 = @action[8]
  1372.       act9 = @action[9]
  1373.       act10 = @action[10]
  1374.       # バトラーが反転してる場合、X軸の動きを逆に
  1375.       if @mirroring
  1376.         act0 *= -1
  1377.         act3 *= -1
  1378.         act4 *= -1
  1379.         act9 *= -1
  1380.       end
  1381.       # バックアタック時には逆に
  1382.       if $back_attack && N01::BACK_ATTACK
  1383.         act0 *= -1
  1384.         act3 *= -1
  1385.         act4 *= -1
  1386.         act9 *= -1
  1387.       end
  1388.       # キャラのアニメパターン数をチェック
  1389.       time = N01::ANIME_PATTERN
  1390.       # Z座標をチェック
  1391.       if act2
  1392.         self.z = @battler.position_z + 1
  1393.       else
  1394.         self.z = @battler.position_z - 1
  1395.       end
  1396.       # 反転はここで実行し、すでに反転している場合は元に戻す
  1397.       if act6
  1398.         if self.mirror
  1399.           self.mirror = false
  1400.         else
  1401.           self.mirror = true
  1402.         end
  1403.       end
  1404.       # バトラーの反転を反映
  1405.       if @mirroring
  1406.         if self.mirror
  1407.           self.mirror = false
  1408.         else
  1409.           self.mirror = true
  1410.         end
  1411.       end
  1412.       # バックアタック時には逆に
  1413.       if $back_attack && N01::BACK_ATTACK
  1414.         if self.mirror
  1415.           self.mirror = false
  1416.         else
  1417.           self.mirror = true
  1418.         end
  1419.       end  
  1420.       # アニメパターン数で割った変化を計算
  1421.       @moving_x = act0 / time
  1422.       @moving_y = act1 / time
  1423.       # 最初の角度を代入
  1424.       @angle = act3
  1425.       self.angle = @angle
  1426.       # 更新角度を計算
  1427.       @angling = (act4 - act3)/ time
  1428.       # 角度が割り切れない場合、ここで余り分を回転加算
  1429.       @angle += (act4 - act3) % time
  1430.       # 拡大縮小
  1431.       @zooming_x = (1 - act7) / time
  1432.       @zooming_y = (1 - act8) / time
  1433.       # 反転してる場合、回転元の原点を逆に
  1434.       if self.mirror
  1435.         case act5
  1436.         when 1 # 左上→右上に
  1437.           act5 = 2
  1438.         when 2 # 右上→左上に
  1439.           act5 = 1
  1440.         when 3 # 左下→右下に
  1441.           act5 = 4
  1442.         when 4 # 右下→左下に
  1443.           act5 = 3
  1444.         end  
  1445.       end   
  1446.       # 回転元の原点を設定
  1447.       case act5
  1448.       when 0 # 中心
  1449.         self.ox = @weapon_width / 2
  1450.         self.oy = @weapon_height / 2
  1451.       when 1 # 左上
  1452.         self.ox = 0
  1453.         self.oy = 0
  1454.       when 2 # 右上
  1455.         self.ox = @weapon_width
  1456.         self.oy = 0
  1457.       when 3 # 左下
  1458.         self.ox = 0
  1459.         self.oy = @weapon_height
  1460.       when 4 # 右下
  1461.         self.ox = @weapon_width
  1462.         self.oy = @weapon_height
  1463.       end  
  1464.       # 座標微調整
  1465.       @plus_x = act9
  1466.       @plus_y = act10
  1467.       # 往復ループならフラグオン
  1468.       @loop = true if loop == 0
  1469.       # 初回で0から始まるように、この時点で-1回の動きをさせる
  1470.       @angle -= @angling
  1471.       @zoom_x -= @zooming_x
  1472.       @zoom_y -= @zooming_y
  1473.       # スプライトの座標を更新
  1474.       @move_x -= @moving_x
  1475.       @move_y -= @moving_y
  1476.       @move_z = 1000 if act2
  1477.       # 固定アニメの場合、この時点で動きを消化
  1478.       if @freeze != -1
  1479.         for i in 0..@freeze + 1
  1480.           @angle += @angling
  1481.           @zoom_x += @zooming_x
  1482.           @zoom_y += @zooming_y
  1483.           # スプライトの座標を更新
  1484.           @move_x += @moving_x
  1485.           @move_y += @moving_y
  1486.         end
  1487.         @angling = 0
  1488.         @zooming_x = 0
  1489.         @zooming_y = 0
  1490.         @moving_x = 0
  1491.         @moving_y = 0
  1492.       end
  1493.       # 可視
  1494.       self.visible = true
  1495.     end
  1496.   end  
  1497.   #--------------------------------------------------------------------------
  1498.   # ● 変化した動きを全部リセット
  1499.   #--------------------------------------------------------------------------  
  1500.   def action_reset
  1501.     @moving_x = @moving_y = @move_x = @move_y = @plus_x = @plus_y = 0
  1502.     @angling = @zooming_x = @zooming_y = @angle = self.angle = @move_z = 0
  1503.     @zoom_x = @zoom_y = self.zoom_x = self.zoom_y = 1
  1504.     self.mirror = self.visible = @loop = false
  1505.     @freeze = -1
  1506.     @action = []
  1507.     @time = N01::ANIME_PATTERN + 1
  1508.   end
  1509.   #--------------------------------------------------------------------------
  1510.   # ● 往復ループさせる
  1511.   #--------------------------------------------------------------------------  
  1512.   def action_loop
  1513.     # 動きを反対に
  1514.     @angling *= -1
  1515.     @zooming_x *= -1
  1516.     @zooming_y *= -1
  1517.     @moving_x *= -1
  1518.     @moving_y *= -1
  1519.   end  
  1520.   #--------------------------------------------------------------------------
  1521.   # ● アクターが反転している場合、自身も反転させる
  1522.   #--------------------------------------------------------------------------
  1523.   def mirroring
  1524.     return @mirroring = false if @mirroring
  1525.     @mirroring = true
  1526.   end  
  1527.   #--------------------------------------------------------------------------
  1528.   # ● アクターアニメが更新された時のみ武器アクションの変化を更新
  1529.   #--------------------------------------------------------------------------
  1530.   def action
  1531.     return if @time <= 0
  1532.     @time -= 1
  1533.     # 回転、拡大縮小を更新
  1534.     @angle += @angling
  1535.     @zoom_x += @zooming_x
  1536.     @zoom_y += @zooming_y
  1537.     # スプライトの座標を更新
  1538.     @move_x += @moving_x
  1539.     @move_y += @moving_y
  1540.     # 往復ループなら動きを反転
  1541.     if @loop && @time == 0
  1542.       @time = N01::ANIME_PATTERN + 1
  1543.       action_loop
  1544.     end
  1545.   end  
  1546.   #--------------------------------------------------------------------------
  1547.   # ● フレーム更新
  1548.   #--------------------------------------------------------------------------
  1549.   def update
  1550.     super
  1551.     # 回転、拡大縮小を更新
  1552.     self.angle = @angle
  1553.     self.zoom_x = @zoom_x
  1554.     self.zoom_y = @zoom_y
  1555.     # スプライトの座標を更新
  1556.     self.x = @battler.position_x + @move_x + @plus_x
  1557.     self.y = @battler.position_y + @move_y + @plus_y
  1558.     self.z = @battler.position_z + @move_z - 1
  1559.   end
  1560. end

  1561. #==============================================================================
  1562. # ■ Game_Battler (分割定義 1)
  1563. #------------------------------------------------------------------------------
  1564. #  バトラーを扱うクラスです。
  1565. #==============================================================================
  1566. class Game_Battler
  1567.   #--------------------------------------------------------------------------
  1568.   # ● 公開インスタンス変数
  1569.   #--------------------------------------------------------------------------
  1570.   attr_accessor :hp_damage        # 行動結果: HP ダメージ
  1571.   attr_accessor :mp_damage        # 行動結果: MP ダメージ
  1572.   attr_accessor :move_x           # X方向の移動補正
  1573.   attr_accessor :move_y           # Y方向の移動補正
  1574.   attr_accessor :move_z           # Z方向の移動補正
  1575.   attr_accessor :jump             # ジャンプ補正
  1576.   attr_accessor :active           # アクティブか
  1577.   attr_accessor :non_dead         # 不死身フラグ
  1578.   attr_accessor :slip_damage      # スリップダメージフラグ
  1579.   attr_accessor :derivation       # スキル派生ID
  1580.   attr_accessor :individual       # スキル派生ID
  1581.   attr_accessor :play             # アクション情報
  1582.   attr_accessor :force_action     # 強制されるアクション情報
  1583.   attr_accessor :force_target     # ターゲット変更情報
  1584.   attr_accessor :revival          # 復活
  1585.   attr_accessor :double_damage    # HPMP両方同時ダメージ
  1586.   attr_accessor :reflex           # スキル反射情報
  1587.   attr_accessor :absorb           # スキルコスト吸収
  1588.   attr_reader   :base_position_x  # 初期配置X座標
  1589.   attr_reader   :base_position_y  # 初期配置Y座標   
  1590.   #--------------------------------------------------------------------------
  1591.   # ● オブジェクト初期化
  1592.   #--------------------------------------------------------------------------
  1593.   alias initialize_n01 initialize
  1594.   def initialize
  1595.     initialize_n01
  1596.     @move_x = @move_y = @move_z = @plus_y = @jump = @derivation = @play = 0
  1597.     @force_action = @force_target = @base_position_x = @base_position_y = 0
  1598.     @absorb = @act_time = 0
  1599.     @active = @non_dead = @individual = @slip_damage = @revival = @double_damage = false
  1600.   end
  1601.   #--------------------------------------------------------------------------
  1602.   # ● 一番新しいステートIDを返す
  1603.   #--------------------------------------------------------------------------
  1604.   def state_id
  1605.     return @states[@states.size - 1]
  1606.   end
  1607.   #--------------------------------------------------------------------------
  1608.   # ● スキルの使用可能判定  ※再定義
  1609.   #--------------------------------------------------------------------------
  1610.   def skill_can_use?(skill)
  1611.     return false unless skill.is_a?(RPG::Skill)
  1612.     return false unless movable?
  1613.     return false if silent? and skill.spi_f > 0
  1614.     if skill.extension.include?("HP消費")
  1615.       return false if calc_mp_cost(skill) > hp
  1616.     else
  1617.       return false if calc_mp_cost(skill) > mp
  1618.     end
  1619.     if $game_temp.in_battle
  1620.       return skill.battle_ok?
  1621.     else
  1622.       return skill.menu_ok?
  1623.     end
  1624.   end
  1625.   #--------------------------------------------------------------------------
  1626.   # ● スキルの消費 MP 計算  ※再定義
  1627.   #--------------------------------------------------------------------------
  1628.   def calc_mp_cost(skill)
  1629.     if half_mp_cost && !skill.extension.include?("MP消費半分無効")
  1630.       cost = skill.mp_cost / 2
  1631.     else
  1632.       cost = skill.mp_cost
  1633.     end
  1634.     if skill.extension.include?("%コストMAX")
  1635.       return self.maxhp * cost / 100 if skill.extension.include?("HP消費")
  1636.       return self.maxmp * cost / 100
  1637.     elsif skill.extension.include?("%コストNOW")
  1638.       return self.hp * cost / 100 if skill.extension.include?("HP消費")
  1639.       return self.mp * cost / 100
  1640.     end
  1641.     return cost
  1642.   end
  1643.   #--------------------------------------------------------------------------
  1644.   # ● スキルコスト消費
  1645.   #--------------------------------------------------------------------------
  1646.   def consum_skill_cost(skill)
  1647.     return false unless skill_can_use?(skill)
  1648.     cost = calc_mp_cost(skill)
  1649.     return self.hp -= cost if skill.extension.include?("HP消費")
  1650.     return self.mp -= cost
  1651.   end
  1652.   #--------------------------------------------------------------------------
  1653.   # ● 通常攻撃によるダメージ計算  二刀流補正
  1654.   #--------------------------------------------------------------------------
  1655.   alias make_attack_damage_value_n01 make_attack_damage_value
  1656.   def make_attack_damage_value(attacker)
  1657.     make_attack_damage_value_n01(attacker)
  1658.     # 二本の武器を装備しているときのみ補正を有効に
  1659.     return unless attacker.actor?
  1660.     return if attacker.weapons[0] == nil
  1661.     return if attacker.weapons[1] == nil
  1662.     @hp_damage = @hp_damage * N01::TWO_SWORDS_STYLE[0] / 100
  1663.   end
  1664.   #--------------------------------------------------------------------------
  1665.   # ● スキルまたはアイテムによるダメージ計算 二刀流補正
  1666.   #--------------------------------------------------------------------------
  1667.   alias make_obj_damage_value_n01 make_obj_damage_value
  1668.   def make_obj_damage_value(user, obj)
  1669.     make_obj_damage_value_n01(user, obj)
  1670.     # 二本の武器を装備しているときのみ補正を有効に
  1671.     return unless user.actor?
  1672.     return if user.weapons[0] == nil
  1673.     return if user.weapons[1] == nil
  1674.     if obj.damage_to_mp  
  1675.       @mp_damage = @mp_damage * N01::TWO_SWORDS_STYLE[1] / 100 # MP にダメージ
  1676.     else
  1677.       @hp_damage = @hp_damage * N01::TWO_SWORDS_STYLE[1] / 100 # HP にダメージ
  1678.     end
  1679.   end
  1680.   #--------------------------------------------------------------------------
  1681.   # ● 通常攻撃の効果適用  すでに戦闘不能で絶対に回避できない処理
  1682.   #--------------------------------------------------------------------------
  1683.   def perfect_attack_effect(attacker)
  1684.     clear_action_results
  1685.     make_attack_damage_value(attacker)            # ダメージ計算
  1686.     execute_damage(attacker)                      # ダメージ反映
  1687.     apply_state_changes(attacker)                 # ステート変化
  1688.   end
  1689.   #--------------------------------------------------------------------------
  1690.   # ● スキルの効果適用  すでに戦闘不能で絶対に回避できない処理
  1691.   #--------------------------------------------------------------------------
  1692.   def perfect_skill_effect(user, skill)
  1693.     clear_action_results
  1694.     make_obj_damage_value(user, skill)            # ダメージ計算
  1695.     make_obj_absorb_effect(user, skill)           # 吸収効果計算
  1696.     execute_damage(user)                          # ダメージ反映
  1697.     apply_state_changes(skill)                    # ステート変化
  1698.   end
  1699.   #--------------------------------------------------------------------------
  1700.   # ● アイテムの効果適用  すでに戦闘不能で絶対に回避できない処理
  1701.   #--------------------------------------------------------------------------
  1702.   def perfect_item_effect(user, item)
  1703.     clear_action_results
  1704.     hp_recovery = calc_hp_recovery(user, item)    # HP 回復量計算
  1705.     mp_recovery = calc_mp_recovery(user, item)    # MP 回復量計算
  1706.     make_obj_damage_value(user, item)             # ダメージ計算
  1707.     @hp_damage -= hp_recovery                     # HP 回復量を差し引く
  1708.     @mp_damage -= mp_recovery                     # MP 回復量を差し引く
  1709.     make_obj_absorb_effect(user, item)            # 吸収効果計算
  1710.     execute_damage(user)                          # ダメージ反映
  1711.     item_growth_effect(user, item)                # 成長効果適用
  1712.     if item.physical_attack and @hp_damage == 0   # 物理ノーダメージ判定
  1713.       return                                    
  1714.     end
  1715.     apply_state_changes(item)                     # ステート変化
  1716.   end
  1717.   #--------------------------------------------------------------------------
  1718.   # ● ダメージの反映
  1719.   #--------------------------------------------------------------------------
  1720.   alias execute_damage_n01 execute_damage
  1721.   def execute_damage(user)
  1722.     execute_damage_n01(user)
  1723.     # 吸収の場合ここで処理を相殺
  1724.     if @absorbed               
  1725.       user.hp_damage = -@hp_damage
  1726.       user.mp_damage = -@mp_damage
  1727.     end
  1728.   end
  1729.   #--------------------------------------------------------------------------
  1730.   # ● スキルの効果適用
  1731.   #--------------------------------------------------------------------------
  1732.   alias skill_effect_n01 skill_effect
  1733.   def skill_effect(user, obj)
  1734.     # 変化前のHPMPを保持
  1735.     nowhp = self.hp
  1736.     nowmp = self.mp
  1737.     # 現在HPMP威力計算用に変化前の使用者HPMPを取得
  1738.     if obj.extension.include?("HP消費")
  1739.       user_hp = user.hp + user.calc_mp_cost(obj)
  1740.       user_mp = user.mp
  1741.     else  
  1742.       user_hp = user.hp
  1743.       user_mp = user.mp + user.calc_mp_cost(obj)
  1744.     end  
  1745.     # 拡張設定チェック
  1746.     check_extension(obj)
  1747.     # ダメージ計算
  1748.     skill_effect_n01(user, obj)
  1749.     # ダメージ系の拡張がある場合ここで処理を相殺
  1750.     if @extension
  1751.       self.hp = nowhp
  1752.       self.mp = nowmp
  1753.     end
  1754.     # 攻撃が当たっていない場合は処理中断
  1755.     return if self.evaded or self.missed
  1756.     # ダメージ属性変換
  1757.     damage = @hp_damage unless obj.damage_to_mp
  1758.     damage = @mp_damage if obj.damage_to_mp
  1759.     # 割合ダメージ
  1760.     if @ratio_maxdamage != nil
  1761.       damage = self.maxhp * @ratio_maxdamage / 100 unless obj.damage_to_mp
  1762.       damage = self.maxmp * @ratio_maxdamage / 100 if obj.damage_to_mp
  1763.     end
  1764.     if @ratio_nowdamage != nil
  1765.       damage = self.hp * @ratio_nowdamage / 100 unless obj.damage_to_mp
  1766.       damage = self.mp * @ratio_nowdamage / 100 if obj.damage_to_mp
  1767.     end
  1768.     # コスト威力
  1769.     if @cost_damage
  1770.       cost = user.calc_mp_cost(obj)
  1771.       if obj.extension.include?("HP消費")
  1772.         damage = damage * cost / user.maxhp
  1773.       else
  1774.         damage = damage * cost / user.maxmp
  1775.       end
  1776.     end
  1777.     # 現在HP威力
  1778.     damage = damage * user_hp / user.maxhp if @nowhp_damage
  1779.     # 現在MP威力
  1780.     damage = damage * user_mp / user.maxmp if @nowmp_damage
  1781.     # ダメージ属性変換戻し
  1782.     @hp_damage = damage unless obj.damage_to_mp
  1783.     @mp_damage = damage if obj.damage_to_mp
  1784.     # 拡張反映
  1785.     if @extension
  1786.       self.hp -= @hp_damage
  1787.       self.mp -= @mp_damage
  1788.     end
  1789.     # 初期化
  1790.     @extension = false
  1791.     @cost_damage = false
  1792.     @nowhp_damage = false
  1793.     @nowmp_damage = false
  1794.     @ratio_maxdamage = nil
  1795.     @ratio_nowdamage = nil
  1796.   end
  1797.   #--------------------------------------------------------------------------
  1798.   # ● 拡張設定チェック
  1799.   #--------------------------------------------------------------------------
  1800.   def check_extension(skill)
  1801.     for ext in skill.extension
  1802.       # コスト威力
  1803.       if ext == "コスト威力"  
  1804.         @extension = true
  1805.         next @cost_damage = true
  1806.       # 現在HP威力
  1807.       elsif ext == "現HP威力"
  1808.         @extension = true
  1809.         next @nowhp_damage = true
  1810.       # 現在MP威力
  1811.       elsif ext == "現MP威力"
  1812.         @extension = true
  1813.         next @nowmp_damage = true
  1814.       else
  1815.         # 割合ダメージ
  1816.         name = ext.split('')
  1817.         if name[5] == "M"
  1818.           name = name.join
  1819.           name.slice!("%ダメージMAX/")
  1820.           @extension = true
  1821.           next @ratio_maxdamage = name.to_i
  1822.         elsif name[5] == "N"
  1823.           name = name.join
  1824.           name.slice!("%ダメージNOW/")
  1825.           @extension = true
  1826.           next @ratio_nowdamage = name.to_i
  1827.         end  
  1828.       end
  1829.     end  
  1830.   end
  1831.   #--------------------------------------------------------------------------
  1832.   # ● 初期配置の変更
  1833.   #--------------------------------------------------------------------------
  1834.   def change_base_position(x, y)
  1835.     @base_position_x = x
  1836.     @base_position_y = y
  1837.   end
  1838.   #--------------------------------------------------------------------------
  1839.   # ● 初期化
  1840.   #--------------------------------------------------------------------------
  1841.   def reset_coordinate
  1842.     @move_x = @move_y = @move_z = @jump = @derivation = 0
  1843.     @active = @non_dead = @individual = false   
  1844.   end
  1845.   #--------------------------------------------------------------------------
  1846.   # ● スリップダメージの効果適用
  1847.   #--------------------------------------------------------------------------
  1848.   def slip_damage_effect
  1849.     if slip_damage? and @hp > 0
  1850.       @hp_damage = apply_variance(maxhp / 10, 10)
  1851.       @hp_damage = @hp - 1 if @hp_damage >= @hp
  1852.       self.hp -= @hp_damage
  1853.     end
  1854.   end
  1855. end  
  1856. #==============================================================================
  1857. # ■ Game_Actor
  1858. #------------------------------------------------------------------------------
  1859. #  アクターを扱うクラスです。
  1860. #==============================================================================
  1861. class Game_Actor < Game_Battler
  1862.   #--------------------------------------------------------------------------
  1863.   # ● 公開インスタンス変数
  1864.   #--------------------------------------------------------------------------
  1865.   attr_accessor :two_swords_change          # 二刀流強制持ち替えフラグ
  1866.   #--------------------------------------------------------------------------
  1867.   # ● IDによるスキルの習得済み判定
  1868.   #--------------------------------------------------------------------------
  1869.   def skill_id_learn?(skill_id)
  1870.     return @skills.include?(skill_id)
  1871.   end
  1872.   #--------------------------------------------------------------------------
  1873.   # ● スキルの使用可能判定  ※再定義
  1874.   #--------------------------------------------------------------------------
  1875.   def skill_can_use?(skill)
  1876.     return super
  1877.   end
  1878.   #--------------------------------------------------------------------------
  1879.   # ● グラフィックの変更
  1880.   #--------------------------------------------------------------------------
  1881.   def graphic_change(character_name)
  1882.     @character_name = character_name
  1883.   end
  1884.   #--------------------------------------------------------------------------
  1885.   # ● コラプスの実行 ※再定義
  1886.   #--------------------------------------------------------------------------
  1887.   def perform_collapse
  1888.     Sound.play_actor_collapse if $game_temp.in_battle and dead?
  1889.   end
  1890.   #--------------------------------------------------------------------------
  1891.   # ● 初期配置の取得
  1892.   #--------------------------------------------------------------------------
  1893.   def base_position
  1894.     base = N01::ACTOR_POSITION[self.index]
  1895.     @base_position_x = base[0]
  1896.     @base_position_y = base[1]
  1897.     # バックアタック時はX軸を逆に
  1898.     @base_position_x = Graphics.width - base[0] if $back_attack && N01::BACK_ATTACK
  1899.   end
  1900.   #--------------------------------------------------------------------------
  1901.   # ● バトル画面 X 座標の取得
  1902.   #--------------------------------------------------------------------------
  1903.   def position_x
  1904.     return 0 if self.index == nil
  1905.     return @base_position_x + @move_x
  1906.   end
  1907.   #--------------------------------------------------------------------------
  1908.   # ● バトル画面 Y 座標の取得
  1909.   #--------------------------------------------------------------------------
  1910.   def position_y
  1911.     return 0 if self.index == nil
  1912.     return @base_position_y + @move_y + @jump
  1913.   end
  1914.   #--------------------------------------------------------------------------
  1915.   # ● バトル画面 Z 座標の取得
  1916.   #--------------------------------------------------------------------------
  1917.   def position_z
  1918.     return 0 if self.index == nil
  1919.     return self.index + @base_position_y + @move_y + @move_z - @jump + 200
  1920.   end  
  1921. end
  1922. #==============================================================================
  1923. # ■ Game_Enemy
  1924. #------------------------------------------------------------------------------
  1925. #  エネミーを扱うクラスです。
  1926. #==============================================================================
  1927. class Game_Enemy < Game_Battler
  1928.   #--------------------------------------------------------------------------
  1929.   # ● 公開インスタンス変数
  1930.   #--------------------------------------------------------------------------
  1931.   attr_accessor :adj_speed        # 複数回行動の速度補正
  1932.   attr_accessor :act_time         # 行動数回
  1933.   #--------------------------------------------------------------------------
  1934.   # ● アクションスピードの決定 複数回行動用
  1935.   #--------------------------------------------------------------------------
  1936.   def make_action_speed2(adj)
  1937.     @adj_speed = self.action.speed if @adj_speed == nil
  1938.     @adj_speed = @adj_speed * adj / 100
  1939.   end
  1940.   #--------------------------------------------------------------------------
  1941.   # ● コラプスの実行 ※再定義
  1942.   #--------------------------------------------------------------------------
  1943.   def perform_collapse
  1944.     @force_action = ["N01collapse"] if $game_temp.in_battle and dead?
  1945.   end
  1946.   #--------------------------------------------------------------------------
  1947.   # ● 初期配置の取得
  1948.   #--------------------------------------------------------------------------
  1949.   def base_position
  1950.     return if self.index == nil
  1951.     # バトラー画像のサイズをチェックしY座標を修正
  1952.     bitmap = Bitmap.new("Graphics/Battlers/" + @battler_name) if !self.anime_on
  1953.     bitmap = Bitmap.new("Graphics/Characters/" + @battler_name) if self.anime_on && N01::WALK_ANIME
  1954.     bitmap = Bitmap.new("Graphics/Characters/" + @battler_name + "_1") if self.anime_on && !N01::WALK_ANIME
  1955.     height = bitmap.height
  1956.     @base_position_x = self.screen_x + self.position_plus[0]
  1957.     @base_position_y = self.screen_y + self.position_plus[1] - height / 3
  1958.     bitmap.dispose
  1959.     # バックアタック時はX軸を逆に
  1960.     if $back_attack && N01::BACK_ATTACK
  1961.       @base_position_x = Graphics.width - self.screen_x - self.position_plus[0]
  1962.     end
  1963.   end
  1964.   #--------------------------------------------------------------------------
  1965.   # ● バトル画面 X 座標の取得
  1966.   #--------------------------------------------------------------------------
  1967.   def position_x
  1968.     return @base_position_x - @move_x
  1969.   end
  1970.   #--------------------------------------------------------------------------
  1971.   # ● バトル画面 Y 座標の取得
  1972.   #--------------------------------------------------------------------------
  1973.   def position_y
  1974.     return @base_position_y + @move_y + @jump
  1975.   end
  1976.   #--------------------------------------------------------------------------
  1977.   # ● バトル画面 Z 座標の取得
  1978.   #--------------------------------------------------------------------------
  1979.   def position_z
  1980.     return position_y + @move_z - @jump + 200
  1981.   end
  1982. end
  1983. #==============================================================================
  1984. # ■ Sprite_Damage
  1985. #------------------------------------------------------------------------------
  1986. #  ダメージ表示のスプライトです。
  1987. #==============================================================================
  1988. class Sprite_Damage < Sprite_Base
  1989.   #--------------------------------------------------------------------------
  1990.   # ● 公開インスタンス変数
  1991.   #--------------------------------------------------------------------------
  1992.   attr_accessor :battler
  1993.   #--------------------------------------------------------------------------
  1994.   # ● オブジェクト初期化
  1995.   #--------------------------------------------------------------------------
  1996.   def initialize(viewport,battler = nil)
  1997.     super(viewport)
  1998.     @battler = battler
  1999.     @damage = 0
  2000.     @duration = 0
  2001.     @x = 0
  2002.     @y = 0
  2003.     @z_plus = 0
  2004.     @minus = false
  2005.     @num1 = Sprite.new(viewport)
  2006.     @num2 = Sprite.new(viewport)
  2007.     @num3 = Sprite.new(viewport)
  2008.     @num4 = Sprite.new(viewport)
  2009.     @num5 = Sprite.new(viewport)
  2010.     @num1.visible = false
  2011.     @num2.visible = false
  2012.     @num3.visible = false
  2013.     @num4.visible = false
  2014.     @num5.visible = false
  2015.   end
  2016.   #--------------------------------------------------------------------------
  2017.   # ● フレーム更新
  2018.   #--------------------------------------------------------------------------
  2019.   def update
  2020.     move_damage(@num5, @pop_time) if @num5.visible
  2021.     move_damage(@num4, @pop_time - 2) if @num4.visible
  2022.     move_damage(@num3, @pop_time - 4) if @num3.visible
  2023.     move_damage(@num2, @pop_time - 6) if @num2.visible
  2024.     move_damage(@num1, @pop_time - 8) if @num1.visible
  2025.     move_window if @window != nil
  2026.     @duration -= 1 if @duration > 0
  2027.   end
  2028.   #--------------------------------------------------------------------------
  2029.   # ● 数値の動き
  2030.   #--------------------------------------------------------------------------
  2031.   def move_damage(num, min)
  2032.     case @duration
  2033.     when min-1..min
  2034.       num.y -= 4
  2035.     when min-3..min-2
  2036.       num.y -= 3
  2037.     when min-6..min-4
  2038.       num.y -= 2
  2039.     when min-14..min-7
  2040.       num.y += 2
  2041.     when min-17..min-15
  2042.       num.y -= 2
  2043.     when min-23..min-18
  2044.       num.y += 1
  2045.     when min-27..min-24
  2046.       num.y -= 1
  2047.     when min-30..min-28
  2048.       num.y += 1
  2049.     when min-33..min-31
  2050.       num.y -= 1
  2051.     when min-36..min-34
  2052.       num.y += 1
  2053.     end
  2054.     next_damage if @battler.double_damage && @duration == min-34
  2055.     num.opacity = 256 - (12 - @duration) * 32
  2056.     num.visible = false if @duration == 0
  2057.   end
  2058.   #--------------------------------------------------------------------------
  2059.   # ● 文字ウインドウの動き
  2060.   #--------------------------------------------------------------------------
  2061.   def move_window
  2062.     @window.x -= 6 if @window_time > 0 && @window.x > 0
  2063.     @window_time -= 1
  2064.     if @duration == 0
  2065.       @window.dispose
  2066.       @window = nil
  2067.     end
  2068.   end  
  2069.   #--------------------------------------------------------------------------
  2070.   # ● HPMP両方同時ダメージ
  2071.   #--------------------------------------------------------------------------
  2072.   def next_damage
  2073.     @battler.hp_damage = 0
  2074.     @battler.double_damage = false
  2075.     damage_pop
  2076.   end  
  2077.   #--------------------------------------------------------------------------
  2078.   # ● ダメージPOP準備
  2079.   #--------------------------------------------------------------------------
  2080.   def damage_pop(num = nil)
  2081.     reset
  2082.     damage = battler.hp_damage
  2083.     # ステートの変化を抜き出す
  2084.     states = battler.added_states
  2085.     text = ""
  2086.     # MPダメージ用テキスト(HPMP両方同時ダメージは除く)
  2087.     if [email protected]_damage && @battler.mp_damage != 0
  2088.       text = N01::POP_MP_DAM if battler.mp_damage > 0
  2089.       text = N01::POP_MP_REC if battler.mp_damage < 0
  2090.       damage = battler.mp_damage
  2091.     end
  2092.     # スリップダメージはMPダメージ以外文字を表示させない
  2093.     if num == nil
  2094.       text = N01::POP_MISS if battler.missed && states == []
  2095.       text = N01::POP_DAMAGE0 if damage == 0 && states == [] && !battler.revival
  2096.       text = N01::POP_EVA if battler.evaded
  2097.       text = N01::POP_CRI if battler.critical
  2098.       for state in states
  2099.         # POPなし設定のステートは表示させない
  2100.         unless state.extension.include?("POPなし")
  2101.           text += " " if text != ""
  2102.           text += state.name
  2103.         end
  2104.       end
  2105.     else
  2106.       damage = num
  2107.     end
  2108.     # ダメージと回復を分ける
  2109.     @minus = false
  2110.     @minus = true if damage < 0
  2111.     damage = damage.abs
  2112.     # POP位置微調整
  2113.     adjust = -16
  2114.     adjust = 16 if $back_attack
  2115.     adjust = 0 if damage == 0
  2116.     @x = battler.position_x + adjust
  2117.     @y = battler.position_y
  2118.     window(text) if text != ""
  2119.     @pop_time = N01::NUM_DURATION
  2120.     # ダメージがなければ数字のPOPをさせない
  2121.     return @duration = @pop_time if damage == 0
  2122.     @num_time = -1
  2123.     damage_file(@num1, damage % 10, @pop_time - 7) if damage >= 0
  2124.     damage_file(@num2, (damage % 100)/10, @pop_time - 5) if damage >= 10
  2125.     damage_file(@num3, (damage % 1000)/100, @pop_time - 3) if damage >= 100
  2126.     damage_file(@num4, (damage % 10000)/1000, @pop_time - 1) if damage >= 1000
  2127.     damage_file(@num5, (damage % 100000)/10000, @pop_time + 1) if damage >= 10000
  2128.   end  
  2129.   #--------------------------------------------------------------------------
  2130.   # ● 情報ウインドウ準備
  2131.   #--------------------------------------------------------------------------
  2132.   def window(text)
  2133.     @window = Window_Damage.new(@x - 64, @y - 22)
  2134.     @window.pop_text(text)
  2135.     @window_time = 5
  2136.   end  
  2137.   #--------------------------------------------------------------------------
  2138.   # ● 数字画像準備
  2139.   #--------------------------------------------------------------------------
  2140.   def damage_file(num, cw, dur)
  2141.     num.visible = true
  2142.     # ファイル判別
  2143.     file = N01::DAMAGE_GRAPHICS
  2144.     file = N01::RECOVER_GRAPHICS if @minus
  2145.     # 数字
  2146.     num.bitmap = Cache.system(file)
  2147.     @num_time += 1
  2148.     sx = num.bitmap.width / 10
  2149.     num.src_rect.set(cw * sx, 0, sx, num.height)
  2150.     num.x = @x - (num.width + N01::NUM_INTERBAL) * @num_time
  2151.     num.y = @y
  2152.     num.z = 2000 - @num_time
  2153.     @duration = dur
  2154.     @window.x = num.x - @window.width + 64 if @window != nil && N01::NON_DAMAGE_WINDOW
  2155.     @window.x = num.x - @window.width + 26 if @window != nil && !N01::NON_DAMAGE_WINDOW
  2156.     @window.x = 0 if @window != nil && @window.x < 0
  2157.   end
  2158.   #--------------------------------------------------------------------------
  2159.   # ● ダメージリセット
  2160.   #--------------------------------------------------------------------------
  2161.   def reset
  2162.     @num5.visible = @num4.visible = @num3.visible = @num2.visible = @num1.visible = false
  2163.     @window.dispose if @window != nil
  2164.     @window = nil
  2165.   end  
  2166.   #--------------------------------------------------------------------------
  2167.   # ● 開放
  2168.   #--------------------------------------------------------------------------
  2169.   def dispose
  2170.     super
  2171.     @num1.dispose
  2172.     @num2.dispose
  2173.     @num3.dispose
  2174.     @num4.dispose
  2175.     @num5.dispose
  2176.     @window.dispose if @window != nil
  2177.   end  
  2178. end
  2179. #==============================================================================
  2180. # ■ Window_Damage
  2181. #------------------------------------------------------------------------------
  2182. #  クリティカル等を表示するウインドウです。
  2183. #==============================================================================
  2184. class Window_Damage < Window_Base
  2185.   #--------------------------------------------------------------------------
  2186.   # ● オブジェクト初期化
  2187.   #--------------------------------------------------------------------------
  2188.   def initialize(x, y)
  2189.     super(x, y, 160, 46)
  2190.     self.opacity = 0 if N01::NON_DAMAGE_WINDOW
  2191.   end
  2192.   #--------------------------------------------------------------------------
  2193.   # ● ウィンドウ内容の作成
  2194.   #--------------------------------------------------------------------------
  2195.   def create_contents
  2196.     self.contents.dispose
  2197.     self.contents = Bitmap.new(width - 32, height - 32)
  2198.   end
  2199.   #--------------------------------------------------------------------------
  2200.   # ● テキスト設定
  2201.   #--------------------------------------------------------------------------
  2202.   def pop_text(text, align = 1)
  2203.     self.contents.clear
  2204.     self.width = self.contents.text_size(text).width + 36
  2205.     self.contents = Bitmap.new(width - 32, height - 32)
  2206.     self.contents.font.color = normal_color
  2207.     self.contents.font.size = 16
  2208.     self.contents.draw_text(0,-8, width - 32, 32, text, align)
  2209.   end  
  2210. end  
  2211. #==============================================================================
  2212. # ■ Window_Base
  2213. #------------------------------------------------------------------------------
  2214. #  ゲーム中のすべてのウィンドウのスーパークラスです。
  2215. #==============================================================================
  2216. class Window_Base < Window  
  2217.   #--------------------------------------------------------------------------
  2218.   # ● ステートの描画  ※再定義(ステートアイコンを表示しない設定を反映)
  2219.   #--------------------------------------------------------------------------
  2220.   def draw_actor_state(actor, x, y, width = 96)
  2221.     count = 0
  2222.     for state in actor.states
  2223.       break if state.extension.include?("アイコン非表示")
  2224.       draw_icon(state.icon_index, x + 24 * count, y)
  2225.       count += 1
  2226.       break if (24 * count > width - 24)
  2227.     end
  2228.   end
  2229. end
  2230.   
复制代码

点评

这版本的横版我还真没见过,新版的?还是楼主自己改的XD,有没有范例撒?  发表于 2012-8-22 00:00
好了吗呃?  发表于 2012-8-21 20:14
。。。。。。。。。。。。。  发表于 2012-8-21 19:49

Lv1.梦旅人

梦石
0
星屑
50
在线时间
106 小时
注册时间
2012-4-13
帖子
278
2
发表于 2012-8-21 19:14:10 手机端发表。 | 只看该作者
在敌人名称前加$

点评

忘了……还得加id  发表于 2012-8-23 20:43
绝对不是,你蒙的吧?  发表于 2012-8-21 19:49
你说的是敌人图片还是敌人的名称。敌人图片有加$  发表于 2012-8-21 19:19
←别人那偷来的签名
回复

使用道具 举报

Lv1.梦旅人

沉睡的八宝粥 

梦石
0
星屑
64
在线时间
832 小时
注册时间
2011-4-22
帖子
2996

短篇七萝莉正太组季军

3
发表于 2012-8-21 19:24:23 | 只看该作者
食人族幽灵 发表于 2012-8-21 19:14
在敌人名称前加$

日文我也看不懂,总之LS说的话绝对错误。
应该是是第1个大脚本2101行需要设定敌人的ID:
加入
  1. when 敌人编号
  2.      return true
复制代码

点评

好好的都不知道为什么会这样==!  发表于 2012-8-21 19:53
之前一直不用,最近不知道就要用了。  发表于 2012-8-21 19:53

评分

参与人数 2星屑 +70 收起 理由
怪蜀黍 + 10 我很赞同(+3),八宝粥很自信(+2).
Luciffer + 60 我很赞同

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
320 小时
注册时间
2012-7-15
帖子
53
4
发表于 2012-8-21 20:20:45 | 只看该作者
弄个中文的吧,话说这脚本技能加了不少哦
2118行  是敌方动画的设定
   # 上記のエネミーID以外すべてに適用されるアニメ設定
    return false
false 改true

2142行    敌方动画時的自动反转
# 上記のエネミーID以外すべてに適用されるアニメ設定
    return false
这里我也弄成的true

点评

经测试。也是无效的  发表于 2012-8-22 04:05
好,我试试  发表于 2012-8-22 04:00

评分

参与人数 1星屑 +120 收起 理由
Luciffer + 120 楼主自己加的吧?

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
320 小时
注册时间
2012-7-15
帖子
53
5
发表于 2012-8-22 12:05:01 | 只看该作者
那个确实对照中文的来看是这样定义敌人行走图的,要不拿这个脚本重新按你的改下吧

1111111111111111.zip

642.05 KB, 下载次数: 0

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-24 22:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表