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

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

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

■8060 / inTopicNo.1)  毎ターン敵が増援
  
□投稿者/ 葵 -(2003/04/26(Sat) 21:42:36)
    どうも、葵です。
    敵が残っていると、毎ターン増援が出てくるというものなんですが、

    スタート:
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    create 味方 実験A 0 実験A 10 10 10
    Set 敵数 3
    exit

    破壊 実験B:
    Incr 敵数 -1
    exit

    ターン 2 味方:
    if 敵数 = 1 then
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    elseif 敵数 = 2 then
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    elseif 敵数 = 1 then
    create 敵 実験B 0 実験B 10 10 10
    else
    talk 実験B

    end
    endif
    exit

    と、記述したのですが、
    敵が全滅しようとしまいと、
    実験Bが
    「あ」といいます。

    どうぞ、ご教授御願いします。
解決済み!
引用返信/返信 削除キー/
■8061 / inTopicNo.2)  Re[1]: 毎ターン敵が増援
□投稿者/ ハク -(2003/04/26(Sat) 21:57:59)
    ハクというものです。

    敵が全滅している場合、敵数は0なので
    if 敵数 = 0 then
    とするのが正しい書式かと思います(単なる書き間違いだと思いますが)

    また別の話になりますが「敵数」という変数はシステム側で設定されているので
    (その時点で残っている敵の数を返します)
    わざわざシナリオ側で調整(破壊イベントで-1)する必要はありません。では。
引用返信/返信 削除キー/
■8062 / inTopicNo.3)  Re[1]: 毎ターン敵が増援
□投稿者/ 一生十八 -(2003/04/26(Sat) 21:58:40)
    どうも。一生十八(いつき とおや)です。

    >ターン 2 味方:
    >if 敵数 = 1 then
    これだと、敵が残り1体でプレイヤーフェイズを迎えた時しか
    敵増援が発生しません。

    If 敵数 > 0 Then

    と、書き換えてやればよろしいかと。
引用返信/返信 削除キー/
■8064 / inTopicNo.4)  訂正
□投稿者/ ハク -(2003/04/26(Sat) 22:40:16)
    すいません間違えました。
    敵が残っていた場合、ですね。
    お書きになった書式では敵数 = 3 のときの処理が無いので
    敵数が0 または 敵数が3 のときelseにとぶようになっいますので

    if 敵数 = 1 then           ←こっちか
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    elseif 敵数 = 2 then
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    elseif 敵数 = 1 then         ←こっちの
    create 敵 実験B 0 実験B 10 10 10
    else
    talk 実験B

    end
    endif
    exit

    どちらかを 敵数 = 3 と書き換えれば対処できます。
    3以上残っている場合に発生させたいなら 敵数 > 2 です。では。
引用返信/返信 削除キー/
■8068 / inTopicNo.5)  Re[3]: 訂正
□投稿者/ 葵 -(2003/04/27(Sun) 12:48:25)
    葵です。ご迷惑おかけします。

    言われたとおり、色々と書きなおしましたが、
    やはり、実験Bがしゃべるだけとなってしまいます。

    スタート:
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    create 味方 実験A 0 実験A 10 10 10
    Set 実験数 3
    exit

    破壊 実験B:
    Incr 実験数 -1
    exit

    ターン 全:
    if 実験数 = 3 then
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    elseif 実験数 = 2 then
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    elseif 実験数 = 1 then
    create 敵 実験B 0 実験B 10 10 10
    else
    talk 実験B

    end
    endif
    exit

    と、書き直しました。(変数を敵数から実験数にへんこう。ターンを全に、
    else文を変更)

    ご迷惑おかけします。
    どうぞ、よろしく御願いします。

引用返信/返信 削除キー/
■8069 / inTopicNo.6)  Re[4]: 訂正
□投稿者/ TomTom -(2003/04/27(Sun) 13:03:07)
    TomTomです。

    実験Bというのは、ザコか汎用パイロットですよね?
    でしたら、グループIDを使用されたほうがよいかと思います。
    下記のようにしてみてください。

    それでは。

    --------------------------------------------
    スタート:
    create 敵 実験B 0 実験B 10 10 10 実験グループ
    create 敵 実験B 0 実験B 10 10 10 実験グループ
    create 敵 実験B 0 実験B 10 10 10 実験グループ
    create 味方 実験A 0 実験A 10 10 10
    Set 実験数 3
    exit

    破壊 実験グループ:
    Incr 実験数 -1
    exit

    ターン 全:
    if 実験数 = 3 then
    create 敵 実験B 0 実験B 10 10 10 実験グループ
    create 敵 実験B 0 実験B 10 10 10 実験グループ
    create 敵 実験B 0 実験B 10 10 10 実験グループ
    elseif 実験数 = 2 then
    create 敵 実験B 0 実験B 10 10 10 実験グループ
    create 敵 実験B 0 実験B 10 10 10 実験グループ
    elseif 実験数 = 1 then
    create 敵 実験B 0 実験B 10 10 10 実験グループ
    else
    talk 実験B

    end
    endif
    exit
引用返信/返信 削除キー/
■8074 / inTopicNo.7)  Re[4]: 訂正
□投稿者/ ハク -(2003/04/27(Sun) 21:09:09)
    ハクです。

    お尋ねの件はTomTomさんの方法でうまく行くと思うのですが他の点について一言。

    ラベルに「ターン 全:」というのは指定できないので、
    「ターン 全 味方:」または「ターン 全 敵:」として下さい。では。
引用返信/返信 削除キー/
■8075 / inTopicNo.8)  追加
□投稿者/ ハク -(2003/04/28(Mon) 03:53:28)
    ハクです。
    一人でツリーを巨大化させて申し訳ありません。追加事項です。

    「実験B」が増えても「実験数」が増えていないため、
    「実験Bを残らず倒した時」ではなく「実験Bを3機を倒した時」に「あ」となっています。
    よって実験Bを1機Createするごとに実験数も1、増やす必要があります。
    またその場合、実験数が4以上になりえるので新たな条件式も必要となります。

    -----------------------

    もし、意図されているのが「敵が残っているとターンごとに倍増」ということなら

    ターン 全 敵:
    If 実験数 > 0 Then
    For i = 1 To 実験数
    Create 敵 実験B 0 実験B 10 10 10 実験グループ
    Incr 実験数 1
    Next
    Else
    Talk 実験B

    End
    EndIf
    Exit

    で再現可能です。違ってたら無視して下さい。では。
引用返信/返信 削除キー/
■8078 / inTopicNo.9)  Re[4]: 訂正
□投稿者/ シャアペン -(2003/04/28(Mon) 18:22:09)
http://charpen-web.hp.infoseek.co.jp
     このような書式にしたらいかがでしょうか?

    スタート:
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    create 味方 実験A 0 実験A 10 10 10
    exit

    ターン 全 味方:
    If ターン数 = 1 exit
    If 敵数 = 3 then
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    Endif
    If 敵数 = 2 then
    create 敵 実験B 0 実験B 10 10 10
    create 敵 実験B 0 実験B 10 10 10
    Endif
    If 敵数 = 1 then
    create 敵 実験B 0 実験B 10 10 10
    Endif
    If 敵数 = 0 then
    talk 実験B

    end
    Endif
    Exit

     この場合、2ターン目の味方ターン以降判定が行われます。(1ターン目はIf ターン数 = 1 exitによってイベントを発生させないようにしてある)
     Ifコマンドの判定符号が=の場合はElseIfで分けるよりも1つ1つIfをつないだほうがいいと思います。システム関数である“敵数”を使うことでローカル変数“実験数”を使う必要がなくなり、破壊イベントも必要なくなります。幾分スマートに収まったのではないかと思いますが、いかがでしょうか?
     ただし、このイベントの場合敵が4機以上いる場合はイベントは発生しません

解決済み!
引用返信/返信 削除キー/
■8079 / inTopicNo.10)  Re[5]: 訂正
□投稿者/ 葵 -(2003/04/28(Mon) 18:46:32)
    葵です。
    ハクさん、シャアベンさん、十八さん、tomotomさんどうもありがとうございます。

    無事作動しました。
    どうもありがとうござました。
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -