SRC質問掲示板Mk2
(現在 過去ログ58 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■11047 / inTopicNo.1)  二重分岐が正常に動作しない
  
□投稿者/ ドラゴンライダーΦズ -(2003/11/07(Fri) 02:31:19)
http://www2u.biglobe.ne.jp/~songokuu/Default.html
    私はドラゴンライダーΦズです。

    私のインクルードでまたも奇怪なエラーが起きました。

    基盤の「戦艦内部1.eve」の中で以下のように指定したインクルードがあります。

    CreativeInfinity 敵 デビルガンダム(1) キョウジ=カッシュ 1 1 デスアーミー -1 戦闘機部隊
    CreativeInfinity 敵 エネミーポット プラントAI(ザコ) 15 15 旧ザク -1 エネミーポット本体ロンロン
    CreativeInfinity 敵 メロゥド ティターンズ兵士(ザコ) 15 15 ゲルググ -1 エネミーポット搭載ロンロン
    CreativeInfinity 中立 ペガサス 連邦軍兵士(ザコ) 8 8 フライマンタ -1 エネミーポット搭載艦隊1
    CreativeInfinity 中立 スードリ ジェリド=メサ 8 8 ハイザック -1 超繁殖デビルガンダム

    しかし、
    「CreativeInfinity 中立 ペガサス 連邦軍兵士(ザコ) 8 8 フライマンタ -1 エネミーポット搭載艦隊1」
    というものでしか正常な分岐を行いません。

    正常に処理が行われないのは以下の処理です。

    If 艦隊の特徴[搭載戦艦] Then
    Switch 艦隊の特徴[搭載戦艦]
    Case 超繁殖デビルガンダム
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Set 生産増援ストッピング不能[搭載戦艦]
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(艦隊の特徴[搭載戦艦])(デビルガンダム増殖)
    $(Info(護衛増援ユニット[搭載戦艦],愛称))が発生しました。
    End
    Case 戦闘機部隊
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Set 生産増援ストッピング不能[搭載戦艦]
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(艦隊の特徴[搭載戦艦])(戦闘機発進)
    $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    End
    Case Else
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Set 生産増援ストッピング不能[搭載戦艦]
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(搭載戦艦)(艦載機出撃)
    $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    End
    EndSw
    Else
    If Not InStr(搭載戦艦,エネミーポット搭載) = 0 Then
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) プラントAI(ザコ) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(搭載戦艦)(ザコ戦艦搭載エネミーポット稼動)
    $(Info(無限生産ユニット[搭載戦艦],愛称))に搭載されたエネミーポットが$(Info(護衛増援ユニット[搭載戦艦],愛称))を生産しました。
    End
    ElseIf Not InStr(搭載戦艦,エネミーポット本体) = 0 Then
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) プラントAI(ザコ) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Set 生産増援ストッピング不能[搭載戦艦]
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(搭載戦艦)(エネミーポット稼動)
    $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が出てきました。
    End
    ElseIf Not InStr(搭載戦艦,戦闘機) = 0 Then
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Set 生産増援ストッピング不能[搭載戦艦]
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(搭載戦艦)(ザコ戦闘機発進)
    $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    End
    Else
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Set 生産増援ストッピング不能[搭載戦艦]
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(搭載戦艦)(ザコ艦載機出撃)
    $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    End
    EndIf
    EndIf

    この処理を行う際、
    「CreativeInfinity 中立 ペガサス 連邦軍兵士(ザコ) 8 8 フライマンタ -1 エネミーポット搭載艦隊1」
    は正常な処理を行うのですが、
    他のものではなぜか必ず以下の処理へ飛んでしまいます。

    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Set 生産増援ストッピング不能[搭載戦艦]
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(搭載戦艦)(ザコ艦載機出撃)
    $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    End

    #基盤
    CreativeInfinity:
    Switch Right(Pilot(対象ユニットID),4)
    Case "(ザコ)" "(汎用)"
    Create Args(1) Args(2) Call(平均ランク) Args(3) Call(平均レベル) Args(4) Args(5) Args(8)
    Case Else
    Create Args(1) Args(2) Call(平均ランク) Args(3) Call(平均レベル) Args(4) Args(5)
    艦隊の特徴[対象ユニット] = Args(8)
    EndSw
    無限生産ユニット[対象ユニット] = Args(2)
    護衛増援ユニット[対象ユニット] = Args(6)
    護衛増援数[対象ユニット] = Args(7)
    Return

    の中で上記の処理で使用している「艦隊の特徴[搭載戦艦]」はしっかりと定義しています。
    (実際には「ForEach 搭載戦艦 In 無限生産ユニット」で「対象ユニット」を「搭載戦艦」に置き換えています)

    このエラーを再現できるファイルはこちらです。
    http://www2u.biglobe.ne.jp/~songokuu/ErrorScenario.lzh

    使用しているのは安定版の最新版です。

引用返信/返信 削除キー/
■11048 / inTopicNo.2)  Re[1]: 二重分岐が正常に動作しない
□投稿者/ GAMEMASTER -(2003/11/07(Fri) 08:39:28)
http://nagoya.cool.ne.jp/gamemaster/
     GAMEMASTERです。

    > 私のインクルードでまたも奇怪なエラーが起きました。
    >
    > 基盤の「戦艦内部1.eve」の中で以下のように指定したインクルードがあります。
    >
    > CreativeInfinity 敵 デビルガンダム(1) キョウジ=カッシュ 1 1 デスアーミー -1 戦闘機部隊
    > CreativeInfinity 敵 エネミーポット プラントAI(ザコ) 15 15 旧ザク -1 エネミーポット本体ロンロン
    > CreativeInfinity 敵 メロゥド ティターンズ兵士(ザコ) 15 15 ゲルググ -1 エネミーポット搭載ロンロン
    > CreativeInfinity 中立 ペガサス 連邦軍兵士(ザコ) 8 8 フライマンタ -1 エネミーポット搭載艦隊1
    > CreativeInfinity 中立 スードリ ジェリド=メサ 8 8 ハイザック -1 超繁殖デビルガンダム
    >
    > しかし、
    > 「CreativeInfinity 中立 ペガサス 連邦軍兵士(ザコ) 8 8 フライマンタ -1 エネミーポット搭載艦隊1」
    > というものでしか正常な分岐を行いません。
    >
    > 正常に処理が行われないのは以下の処理です。
    >
    > If 艦隊の特徴[搭載戦艦] Then
    > Switch 艦隊の特徴[搭載戦艦]
    > Case 超繁殖デビルガンダム
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Set 生産増援ストッピング不能[搭載戦艦]
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(艦隊の特徴[搭載戦艦])(デビルガンダム増殖)
    > $(Info(護衛増援ユニット[搭載戦艦],愛称))が発生しました。
    > End
    > Case 戦闘機部隊
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Set 生産増援ストッピング不能[搭載戦艦]
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(艦隊の特徴[搭載戦艦])(戦闘機発進)
    > $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    > End
    > Case Else
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Set 生産増援ストッピング不能[搭載戦艦]
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(搭載戦艦)(艦載機出撃)
    > $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    > End
    > EndSw
    > Else
    > If Not InStr(搭載戦艦,エネミーポット搭載) = 0 Then
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) プラントAI(ザコ) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(搭載戦艦)(ザコ戦艦搭載エネミーポット稼動)
    > $(Info(無限生産ユニット[搭載戦艦],愛称))に搭載されたエネミーポットが$(Info(護衛増援ユニット[搭載戦艦],愛称))を生産しました。
    > End
    > ElseIf Not InStr(搭載戦艦,エネミーポット本体) = 0 Then
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) プラントAI(ザコ) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Set 生産増援ストッピング不能[搭載戦艦]
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(搭載戦艦)(エネミーポット稼動)
    > $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が出てきました。
    > End
    > ElseIf Not InStr(搭載戦艦,戦闘機) = 0 Then
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Set 生産増援ストッピング不能[搭載戦艦]
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(搭載戦艦)(ザコ戦闘機発進)
    > $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    > End
    > Else
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Set 生産増援ストッピング不能[搭載戦艦]
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(搭載戦艦)(ザコ艦載機出撃)
    > $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    > End
    > EndIf
    > EndIf
    >
    > この処理を行う際、
    > 「CreativeInfinity 中立 ペガサス 連邦軍兵士(ザコ) 8 8 フライマンタ -1 エネミーポット搭載艦隊1」
    > は正常な処理を行うのですが、
    > 他のものではなぜか必ず以下の処理へ飛んでしまいます。
    >
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Set 生産増援ストッピング不能[搭載戦艦]
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(搭載戦艦)(ザコ艦載機出撃)
    > $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    > End
    >
    > #基盤
    > CreativeInfinity:
    > Switch Right(Pilot(対象ユニットID),4)
    > Case "(ザコ)" "(汎用)"
    > Create Args(1) Args(2) Call(平均ランク) Args(3) Call(平均レベル) Args(4) Args(5) Args(8)
    > Case Else
    > Create Args(1) Args(2) Call(平均ランク) Args(3) Call(平均レベル) Args(4) Args(5)
    > 艦隊の特徴[対象ユニット] = Args(8)
    > EndSw
    > 無限生産ユニット[対象ユニット] = Args(2)
    > 護衛増援ユニット[対象ユニット] = Args(6)
    > 護衛増援数[対象ユニット] = Args(7)
    > Return
    >
    > の中で上記の処理で使用している「艦隊の特徴[搭載戦艦]」はしっかりと定義しています。
    > (実際には「ForEach 搭載戦艦 In 無限生産ユニット」で「対象ユニット」を「搭載戦艦」に置き換えています)
    >
    > このエラーを再現できるファイルはこちらです。
    > http://www2u.biglobe.ne.jp/~songokuu/ErrorScenario.lzh
    >
    > 使用しているのは安定版の最新版です。

     1:


    > Switch Right(Pilot(対象ユニットID),4)


     「対象ユニットID」はデフォルトユニット(この場合直前に作成されたユニット)が代入されますので、結果として以下の通りに動作することになります。

     デビルガンダム(1)作成時:デフォルトユニットが存在しないので何も代入されないが、ザコパイロットではないので結果的に正しく作成の処理が行われる
     エネミーポット作成時:デフォルトユニットのパイロットがキョウジ=カッシュ(ザコではない)ので作成の処理が正しく行われない
     メロゥド・ペガサス作成時:デフォルトユニットのパイロットがザコであり、かつ自身もザコなので正しく作成される
     スードリ作成時:デフォルトユニットのパイロットがザコであり、かつ自身はザコではないので作成の処理が正しく行われない

     まず、この処理を正しく行わせる必要があります。
     対象ユニットIDではなく、サブルーチンの引数として渡されているパイロット名称をそのまま代入しましょう。


     Switch Right(Args(3),4)


     2:


    > If 艦隊の特徴[搭載戦艦] Then


     この部分ですが、SRC本体は「艦隊の特徴[搭載戦艦]というユニットが出撃しているかどうか」という判断を行っている可能性があります。
     配列の要素が存在するかどうかという判断も行えるはずですが、万全を期すために以下の通りに記述しましょう。


     If 艦隊の特徴[搭載戦艦] <> "" Then


     以上の修正で、こちらは以下の通りに動作させることが出来ました。

     デビルガンダム(1):デビルガンダムからデスアーミーが発進しました。
     エネミーポット:エネミーポットから旧ザクが出てきました。
     メロゥド:メロゥドに搭載されたエネミーポットがゲルググを生産しました。
     ペガサス:ペガサスに搭載されたエネミーポットがフライマンタを生産しました。
     スードリ:ハイザックが発生しました。

     参考になれば幸いです。

     もう時間がないようでございますね。では、これにて退散させてもらいましょう。
引用返信/返信 削除キー/
■11063 / inTopicNo.3)  Re[2]: 二重分岐が正常に動作しない
□投稿者/ ドラゴンライダーΦズ -(2003/11/07(Fri) 21:53:56)
http://www2u.biglobe.ne.jp/~songokuu/Default.html
    私はドラゴンライダーΦズです。

    #基盤
    CreativeInfinity:
    Switch Right(Pilot(Args(3)),4)
    Case "(ザコ)" "(汎用)"
    Create Args(1) Args(2) Call(平均ランク) Args(3) Call(平均レベル) Args(4) Args(5) Args(8)
    Case Else
    Create Args(1) Args(2) Call(平均ランク) Args(3) Call(平均レベル) Args(4) Args(5)
    艦隊の特徴[対象ユニット] = Args(8)
    EndSw
    無限生産ユニット[対象ユニット] = Args(2)
    護衛増援ユニット[対象ユニット] = Args(6)
    護衛増援数[対象ユニット] = Args(7)
    Return

    #敵/中立ターンに指定した間隔で敵を生成する。
    *ターン 全 敵:
    *ターン 全 中立:
    If Not 戦艦突入後 Then
    StartBGM Enemy Appears.mid
    EndIf
    ForEach 搭載戦艦 In 無限生産ユニット
    If Not (戦艦突入後 Or 生産増援ストッピング[搭載戦艦]) Then
    If Party(搭載戦艦) = フェイズ Then
    If 艦隊の特徴[搭載戦艦] <> "" Then
    Switch 艦隊の特徴[搭載戦艦]
    Case 超繁殖デビルガンダム
    Set 生産増援ストッピング不能[搭載戦艦]
    If 護衛増援数[搭載戦艦] < 0 Then
    If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(護衛増援ユニット[搭載戦艦],愛称))が発生しました。
    End
    EndIf
    Else
    For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(護衛増援ユニット[搭載戦艦],愛称))が発生しました。
    End
    Else
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(護衛増援ユニット[搭載戦艦],愛称))が発生しました。
    Suspend
    EndIf
    Next
    EndIf
    Case 戦闘機部隊
    Set 生産増援ストッピング不能[搭載戦艦]
    If 護衛増援数[搭載戦艦] < 0 Then
    If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    End
    EndIf
    Else
    For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    End
    Else
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    Suspend
    EndIf
    Next
    EndIf
    Case Else
    Set 生産増援ストッピング不能[搭載戦艦]
    If 護衛増援数[搭載戦艦] < 0 Then
    If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    End
    EndIf
    Else
    For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    End
    Else
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    Suspend
    EndIf
    Next
    EndIf
    EndSw
    Else
    If Not InStr(搭載戦艦,エネミーポット搭載) = 0 Then
    If 護衛増援数[搭載戦艦] < 0 Then
    If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))に搭載されたエネミーポットが$(Info(護衛増援ユニット[搭載戦艦],愛称))を生産しました。
    End
    EndIf
    Else
    For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))に搭載されたエネミーポットが$(Info(護衛増援ユニット[搭載戦艦],愛称))を生産しました。
    End
    Else
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))に搭載されたエネミーポットが$(Info(護衛増援ユニット[搭載戦艦],愛称))を生産しました。
    Suspend
    EndIf
    Next
    EndIf
    ElseIf Not InStr(搭載戦艦,エネミーポット本体) = 0 Then
    Set 生産増援ストッピング不能[搭載戦艦]
    If 護衛増援数[搭載戦艦] < 0 Then
    If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が出てきました。
    End
    EndIf
    Else
    For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が出てきました。
    End
    Else
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が出てきました。
    Suspend
    EndIf
    Next
    EndIf
    ElseIf Not InStr(搭載戦艦,戦闘機) = 0 Then
    Set 生産増援ストッピング不能[搭載戦艦]
    If 護衛増援数[搭載戦艦] < 0 Then
    If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    End
    EndIf
    Else
    For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    End
    Else
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    Suspend
    EndIf
    Next
    EndIf
    Else
    Set 生産増援ストッピング不能[搭載戦艦]
    If 護衛増援数[搭載戦艦] < 0 Then
    If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    End
    EndIf
    Else
    For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    End
    Else
    Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    Suspend
    EndIf
    Next
    EndIf
    EndIf
    EndIf
    EndIf
    EndIf
    Next
    Exit

    インクルードの部分を上記のように変更したところ、
    今度はザコパイロットの搭乗する戦艦にかかわる処理において
    全てElse文に飛んでしまいます。

    GAMEMASTERさんが指摘された箇所は全て直しました。
    その直した箇所とはまったく関係がないと思われる場所に記述を追加したのですが、
    この通りです。バグでしょうか。
引用返信/返信 削除キー/
■11064 / inTopicNo.4)  Re[3]: 二重分岐が正常に動作しない
□投稿者/ GAMEMASTER -(2003/11/07(Fri) 22:22:55)
http://nagoya.cool.ne.jp/gamemaster/
     GAMEMASTERです。

    > #基盤
    > CreativeInfinity:
    > Switch Right(Pilot(Args(3)),4)
    > Case "(ザコ)" "(汎用)"
    > Create Args(1) Args(2) Call(平均ランク) Args(3) Call(平均レベル) Args(4) Args(5) Args(8)
    > Case Else
    > Create Args(1) Args(2) Call(平均ランク) Args(3) Call(平均レベル) Args(4) Args(5)
    > 艦隊の特徴[対象ユニット] = Args(8)
    > EndSw
    > 無限生産ユニット[対象ユニット] = Args(2)
    > 護衛増援ユニット[対象ユニット] = Args(6)
    > 護衛増援数[対象ユニット] = Args(7)
    > Return
    >
    > #敵/中立ターンに指定した間隔で敵を生成する。
    > *ターン 全 敵:
    > *ターン 全 中立:
    > If Not 戦艦突入後 Then
    > StartBGM Enemy Appears.mid
    > EndIf
    > ForEach 搭載戦艦 In 無限生産ユニット
    > If Not (戦艦突入後 Or 生産増援ストッピング[搭載戦艦]) Then
    > If Party(搭載戦艦) = フェイズ Then
    > If 艦隊の特徴[搭載戦艦] <> "" Then
    > Switch 艦隊の特徴[搭載戦艦]
    > Case 超繁殖デビルガンダム
    > Set 生産増援ストッピング不能[搭載戦艦]
    > If 護衛増援数[搭載戦艦] < 0 Then
    > If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(護衛増援ユニット[搭載戦艦],愛称))が発生しました。
    > End
    > EndIf
    > Else
    > For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(護衛増援ユニット[搭載戦艦],愛称))が発生しました。
    > End
    > Else
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(護衛増援ユニット[搭載戦艦],愛称))が発生しました。
    > Suspend
    > EndIf
    > Next
    > EndIf
    > Case 戦闘機部隊
    > Set 生産増援ストッピング不能[搭載戦艦]
    > If 護衛増援数[搭載戦艦] < 0 Then
    > If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    > End
    > EndIf
    > Else
    > For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    > End
    > Else
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    > Suspend
    > EndIf
    > Next
    > EndIf
    > Case Else
    > Set 生産増援ストッピング不能[搭載戦艦]
    > If 護衛増援数[搭載戦艦] < 0 Then
    > If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    > End
    > EndIf
    > Else
    > For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    > End
    > Else
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    > Suspend
    > EndIf
    > Next
    > EndIf
    > EndSw
    > Else
    > If Not InStr(搭載戦艦,エネミーポット搭載) = 0 Then
    > If 護衛増援数[搭載戦艦] < 0 Then
    > If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))に搭載されたエネミーポットが$(Info(護衛増援ユニット[搭載戦艦],愛称))を生産しました。
    > End
    > EndIf
    > Else
    > For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))に搭載されたエネミーポットが$(Info(護衛増援ユニット[搭載戦艦],愛称))を生産しました。
    > End
    > Else
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))に搭載されたエネミーポットが$(Info(護衛増援ユニット[搭載戦艦],愛称))を生産しました。
    > Suspend
    > EndIf
    > Next
    > EndIf
    > ElseIf Not InStr(搭載戦艦,エネミーポット本体) = 0 Then
    > Set 生産増援ストッピング不能[搭載戦艦]
    > If 護衛増援数[搭載戦艦] < 0 Then
    > If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が出てきました。
    > End
    > EndIf
    > Else
    > For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が出てきました。
    > End
    > Else
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が出てきました。
    > Suspend
    > EndIf
    > Next
    > EndIf
    > ElseIf Not InStr(搭載戦艦,戦闘機) = 0 Then
    > Set 生産増援ストッピング不能[搭載戦艦]
    > If 護衛増援数[搭載戦艦] < 0 Then
    > If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    > End
    > EndIf
    > Else
    > For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    > End
    > Else
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))から$(Info(護衛増援ユニット[搭載戦艦],愛称))が発進しました。
    > Suspend
    > EndIf
    > Next
    > EndIf
    > Else
    > Set 生産増援ストッピング不能[搭載戦艦]
    > If 護衛増援数[搭載戦艦] < 0 Then
    > If (ターン数 / Abs(護衛増援数[搭載戦艦])) = (ターン数 \ Abs(護衛増援数[搭載戦艦])) Then
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    > End
    > EndIf
    > Else
    > For ユニット生産数 = 1 To 護衛増援数[搭載戦艦]
    > Create フェイズ 護衛増援ユニット[搭載戦艦] Rank(搭載戦艦) Call(防衛兵力,無限生産ユニット[搭載戦艦]) Level(搭載戦艦) X(搭載戦艦) Y(搭載戦艦) 死んでも守ります[搭載戦艦]
    > ChangeMode 死んでも守ります[搭載戦艦] 搭載戦艦
    > If ユニット生産数 = 護衛増援数[搭載戦艦] Then
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    > End
    > Else
    > Talk ナレーター x(無限生産ユニット[搭載戦艦]) y(無限生産ユニット[搭載戦艦])
    > $(Info(無限生産ユニット[搭載戦艦],愛称))が$(Info(護衛増援ユニット[搭載戦艦],愛称))を出撃させました。
    > Suspend
    > EndIf
    > Next
    > EndIf
    > EndIf
    > EndIf
    > EndIf
    > EndIf
    > Next
    > Exit
    >
    > インクルードの部分を上記のように変更したところ、
    > 今度はザコパイロットの搭乗する戦艦にかかわる処理において
    > 全てElse文に飛んでしまいます。
    >
    > GAMEMASTERさんが指摘された箇所は全て直しました。
    > その直した箇所とはまったく関係がないと思われる場所に記述を追加したのですが、
    > この通りです。バグでしょうか。

     こちらは前回の第1項目で、


    >  Switch Right(Args(3),4)


     と修正するように返答しました。
     ところが、該当箇所を見ると以下のようになっています。


    > Switch Right(Pilot(Args(3)),4)


     これでは「(作成するパイロットの名称)という名前のユニットに搭乗するパイロット」を代入することになり、当然のことながらそのようなパイロットは存在しない(空文字列を代入することになる)ため、ザコパイロットに対する正しい分岐へ進まなくなります。
     こちらが前回示した通りの記述に修正したところ、正常に動作しました。

     参考になれば幸いです。

     もう時間がないようでございますね。では、これにて退散させてもらいましょう。
引用返信/返信 削除キー/
■11065 / inTopicNo.5)  Re[4]: 二重分岐が正常に動作しない
□投稿者/ ドラゴンライダーΦズ -(2003/11/07(Fri) 22:32:22)
http://www2u.biglobe.ne.jp/~songokuu/Default.html
    私はドラゴンライダーΦズです。

    申し訳ありません。しっかり見ていなかったようです。
    解決しました。
解決済み!
引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -