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

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

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

■19664 / inTopicNo.1)  撃墜数による分岐
  
□投稿者/ k2c -(2007/03/08(Thu) 17:39:00) [ID:LPo528xT]
    こんばんは。 現在二人のパイロット(A・B)の撃墜数がどちらが多いかでの分岐を
    考えているのですが上手くいきません。

    自分の考えていたのは〜
    Incr 撃墜数[A]
    Incr 撃墜数[B]
    Set 撃墜数[A] 0
    Set 撃墜数[B] 0

    If 撃墜数[A] > 撃墜数[B] Then
    Talk システム
    type1
    End
    Else
    Talk システム
    type2
    End
    EndIf

    なのですが、type2にしか実行されません。
    何か良い方法があればよろしくお願いいたします。
引用返信/返信 削除キー/
■19665 / inTopicNo.2)  Re[1]: 撃墜数による分岐
□投稿者/ シャアペン -(2007/03/08(Thu) 17:48:17) [ID:NUb7slog]
http://charpen.hp.infoseek.co.jp
    もしも本当にこのとおりに書かれているのならば、どれだけ撃墜してもIfによる答えはElseにしかなりません。撃墜する度に変数撃墜数[A]と撃墜数[B]が0にリセットされていますので。
    正しくするにはSetを削り、Incrのみにしてください。
引用返信/返信 削除キー/
■19667 / inTopicNo.3)  Re[2]: 撃墜数による分岐
□投稿者/ k2c -(2007/03/08(Thu) 23:37:41) [ID:LPo528xT]
    申し訳ありませんが上手くいきませんでした。
    今現在は下記の通りで試してます。

    スタート:

    Set 撃墜数 0
    Incr 撃墜数[NPC]
    Incr 撃墜数[味方]

    全滅 敵:

    If 撃墜数[NPC] > 撃墜数[味方] Then
    Talk システム
    type1
    End
    Else
    Talk システム
    type2
    End
    EndIf
引用返信/返信 削除キー/
■19669 / inTopicNo.4)  Re[3]: 撃墜数による分岐
□投稿者/ 深那 優 -(2007/03/10(Sat) 12:49:35) [ID:BdBd2wVX]
    横から失礼します。
    偶然見かけたので、私なりの案を書かせてもらいます。
    多分、下記のような感じでいけるんじゃないでしょうか。


    #<<スタートラベル>>
    スタート:

    #配列「撃墜数」宣言
    Set 撃墜数 0

    #スタートのイベント#

    Exit

    #<<破壊(敵)ラベル>>
    破壊 敵:

    #破壊したユニット名で分岐
    Switch Unit(相手ユニットID)
    Case A #Aが撃墜した場合
    #Aの撃墜数を+1する
    Incr 撃墜数[A]

    Case B #Bが撃墜した場合
    #Bの撃墜数を+1する
    Incr 撃墜数[B]

    EndSw

    Exit

    #<<全滅(敵)ラベル>>
    全滅 敵:

    #撃墜数で分岐
    #ユニット「A」の方が多く敵を撃墜した場合
    If 撃墜数[A] > 撃墜数[B] Then
    Talk システム
    TYPE1
    End

    #ユニット「A」とユニット「B」の撃墜数が同じ場合
    ElseIf 撃墜数[A] = 撃墜数[B] Then
    Talk システム
    TYPE2
    End

    #ユニット「B」の方が多く敵を撃墜した場合
    Else
    Talk システム
    TYPE3
    End
    EndIf

    Exit


    見当違いなことを書いてましたら、申し訳有りませんです(^^;
    では、横から失礼しました〜。
引用返信/返信 削除キー/
■19670 / inTopicNo.5)  Re[4]: 撃墜数による分岐
□投稿者/ k2c -(2007/03/12(Mon) 14:03:07) [ID:LPo528xT]
    アドバイスありがとうございます。 
    でも残念ながら、実行されませんでした。
    撃墜した数に差をつけても 撃墜数[A] = 撃墜数[B]のtype2になってしまいます。

引用返信/返信 削除キー/
■19671 / inTopicNo.6)  Re[5]: 撃墜数による分岐
□投稿者/ 中箱 -(2007/03/12(Mon) 18:16:24) [ID:8NrUE61r]
    こちらも横から失礼、中箱と申します。


    >でも残念ながら、実行されませんでした。
    >撃墜した数に差をつけても 撃墜数[A] = 撃墜数[B]のtype2になってしまいます。

    こちらで試す限り、深那 優さんの挙げられたものに従って適切に書き換えれば動きます。


    type2になってしまうということはつまり、
    撃墜数が正しくカウントされていない、ということです。

    ではどこが間違っているためにカウントされていないのか、
    実際に動かしながらヘルプ片手にひとつずつ確認しながら考え、調べていくことをお勧めします。

    まずは、配列"撃墜数[A]"、"撃墜数[B]"が、一回一回正しく数えられているかの確認からが妥当でしょうか。


    では
引用返信/返信 削除キー/
■19672 / inTopicNo.7)  Re[6]: 撃墜数による分岐
□投稿者/ k2c -(2007/03/13(Tue) 22:14:35) [ID:LPo528xT]
    仰るとおりにヘルプ片手に色々試しているのですが、四苦八苦です。
    現在書いているのは以下の通りです。

    Create 敵 実験生物 2 実験生物(ザコ) 20 7 13 実験体

    スタート:

    #配列「撃墜数」宣言
    Set 撃墜数 0
    Exit

    スタートイベント

    #<<破壊(敵)ラベル>>
    破壊 敵:
    Switch 実験生物(実験体)
    Case クロウム
    #クロウムが撃墜した場合クロウムの撃墜を+1する
    Incr 撃墜数[クロウム]
    Case D・B
    #D・Bが撃墜した場合D・Bの撃墜を+1する
    Incr 撃墜数[D・B]
    EndSw
    Exit

    #<<全滅(敵)ラベル>>
    全滅 敵:
    If 撃墜数[クロウム] > 撃墜数[D・B] Then
    Talk システム
    type1
    End

    ElseIf 撃墜数[クロウム] = 撃墜数[D・B] Then
    Talk システム
    type2
    End

    Else
    Talk システム
    type3
    End
    EndIf

引用返信/返信 削除キー/
■19673 / inTopicNo.8)  Re[7]: 撃墜数による分岐
□投稿者/ 深那 優 -(2007/03/13(Tue) 22:36:26) [ID:BdBd2wVX]
    k2cさんが書かれた内容を拝見する限り、下記の部分に問題があります。

    >#<<破壊(敵)ラベル>>
    >破壊 敵:
    >Switch 実験生物(実験体)

    私が書き込んだときにはこんな感じ↓

    >#<<破壊(敵)ラベル>>
    >破壊 敵:
    >Switch Unit(相手ユニットID)

    ・・・に書いていたと思いますが、これは「Unit」っていう関数と、「相手ユニットID」というシステム変数を使っています。
    なので、違う内容に書き換える必要はありません。

    「Unit(相手ユニットID)」がどういう意味なのかといいますと、
    「相手ユニットID」システム変数は、「イベントの対象となったユニットの相手ユニットのユニットID」を表します。
    今回は「破壊 敵:」ラベルでの使用なので、『敵ユニットを破壊したユニットのユニットID』ということになります。
    「Unit」関数は、「ユニットの名称」を返す関数で、引数には「メインパイロット名」か「ユニットID」を設定する決まりになっています。

    つまり、
    「Unit(相手ユニットID)」=「ユニットID」が「敵を破壊したユニットのユニットID」であるユニットの「ユニット名」
    になります。

    例を挙げれば、「クロウム」が「実験生物2」を破壊したとします。
    そうすると、「Switch Unit(相手ユニットID)」は、「Switch クロウム」と解釈されるわけです。


    なんだかごちゃごちゃ書いてしまいましたが、結論をいいますと、

    #<<破壊(敵)ラベル>>
    破壊 敵:
    Switch 実験生物(実験体)

    ↓↓↓↓↓↓↓↓↓↓↓↓

    #<<破壊(敵)ラベル>>
    破壊 敵:
    Switch Unit(相手ユニットID)


    と書きかえれば上手くいくんじゃないかと思います。


引用返信/返信 削除キー/
■19674 / inTopicNo.9)  出来ました。
□投稿者/ k2c -(2007/03/14(Wed) 00:58:34) [ID:LPo528xT]
    2007/03/14(Wed) 00:59:32 編集(投稿者)

    ようやく実行出来るようになりました。
    不要な書き換えの他にユニット名を「愛称」で書き込んだのが原因のようでした。
    長々とお付き合い下さって、ありがとうございました。
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -