| 私はドラゴンライダーΦズです。
関数が使われているサブルーチンを公開します。 攻撃後に「戦艦に突入できるか」の判定を行うものです。 動作の確認のため、実際の突入処理は省いてあります。
問題の関数が使われている場所は二つ目のSwitch文で、 このSwitch文で機体クラスの判定をしています。
不備が直ってなかったので、スイッチ文の不備も直しましたが、 変な値が返ってくることに変わりは無いので、正常動作はしないと思います。
#攻撃したユニットの条件判定と突入イベント呼び出し。 *攻撃後 味方 敵: If IsAvailable(相手ユニット,母艦) Then Set 戦艦突入可否判定 戦艦名 = Unit(相手ユニット) Switch 戦艦名 Case スードリ 護衛兵力 = ティターンズ兵士(ザコ) EndSw EndIf If Info(Unit(),武器, 対象ユニット使用武器, 最大射程) = 1 Then Switch Left(Info(Unit(対象ユニット),機体クラス),(InStr(Info(Unit(対象ユニット),機体クラス),"(") - 1))) Case 聖獣戦機 霊機 モビルファイター 獣戦機 Set 突撃兵突入 Switch Info(Unit(),武器, 対象ユニット使用武器, 属性) Case 突 武 接 Incr 戦艦突入可否判定 EndSw Case Else If Not IsAvailable(相手ユニット,母艦) Then Switch 対象ユニット使用武器 Case ドリルクラッシャー Switch 対象ユニット Case 旋風寺舞人 サンダーバロン Incr 戦艦突入可否判定 EndSw Case ドリルアタック Switch 対象ユニット Case ドリルランダー ドリルシルバー ドリルボーイ Incr 戦艦突入可否判定 EndSw Case ミラクルドリル Switch 対象ユニット Case ツワブキ=サンシロー Incr 戦艦突入可否判定 EndSw Case ダブルドリラー Incr 戦艦突入可否判定 Case 超電磁スピン Incr 戦艦突入可否判定 Case ドリルアーム Incr 戦艦突入可否判定 Case ゲッタードリル Incr 戦艦突入可否判定 Case クラフトドリル Incr 戦艦突入可否判定 Case ランダードリル Incr 戦艦突入可否判定 EndSw EndIf EndSw EndIf Talk ナレーター $(戦艦突入可否判定)は$(Left(Info(Unit(対象ユニット),機体クラス),(InStr(Info(Unit(対象ユニット),機体クラス),"(") - 1))))のカタパルトからの侵入を強行しました。 End Exit
このサブルーチンでは相手が戦艦であるかどうか、こちら側の使用した武器が条件に当てはまるかというのを判定します。 条件は「射程1の武器で格闘武器又はドリルで突撃するタイプの武器である」というものです。 格闘武器の場合、「操縦者が戦闘能力を持っている」という条件を満たす必要があるので、 機体クラスで分岐するようにしました。
ユニットの機体クラスが「聖獣戦機(和人専用)」のユニットが条件を満たすと、 最後のTalk文で「2は聖獣戦機のカタパルトからの侵入を強行しました。」と表示されるはずなのですが、 現状では「1は聖獣戦機)のカタパルトからの侵入を強行しました。」と表示されてしまいます。 動作テストで戦艦に攻撃しているので、「相手が戦艦である」という条件は満たしています。
|