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

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

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

■12575 / inTopicNo.1)  SwitchとCase
  
□投稿者/ Chico -(2004/02/22(Sun) 23:43:24)
    こんばんわ、Chicoです。
    下記のようなeventを作ったもののうまく作動してくれません。

    Switch (Random(6))
    Case 1
       イベント
    Case 2
       イベント
    Case 3
       イベント
    Case 4
       イベント
    Case 5
       イベント
    Case 6
       イベント
    EndSw

    Caseに対応するSwitchが無いと言われます。
    どこを改善したらよろしいでしょうか?
引用返信/返信 削除キー/
■12576 / inTopicNo.2)  Re[1]: SwitchとCase
□投稿者/ オルフェイ -(2004/02/23(Mon) 01:15:11)
    どうも、オルフェイです。

    おそらくは
    > Switch (Random(6))
    の部分のRandom関数を括弧でくくっているのがエラーの元だと思います。現在の
    Switchではおそらく0に行くような設定になっていると思われます。この括弧を
    はずせばおそらく直ると思われます。

    それでは失礼いたします
引用返信/返信 削除キー/
■12577 / inTopicNo.3)  Re[1]: SwitchとCase
□投稿者/ マガツ -(2004/02/23(Mon) 11:22:54)

    こんにちは、マガツです。

    Switch の条件に直接Random を使うとうまく動作しないようです。
    なので、適当な変数に一度格納してから実行する事をお勧めします。
    例:
    Set 分岐用 Random(6)
    Switch 分岐用

    If ElseIf 文も同じようにうまく動作しないようですが…
    まぁこういう状況でRandom を直接使わないほうが良いという事でしょう。

    それでは

引用返信/返信 削除キー/
■12578 / inTopicNo.4)  Re[1]: SwitchとCase
□投稿者/ 玖琺祐一郎 -(2004/02/23(Mon) 12:30:20)
    どうも、玖琺祐一郎です。

    Chicoさんの書き込まれたものはゲームオーバーやSRC終了処理でも使われている技法なのでSwitch分〜EndSw自身には問題はありません。(2.0系、1.7系、1.6系で試しても特に問題は発生しません。)

    問題があるとすればイベントと省略された中身の方が可能性が高く思われます。
    イベントの中身をよく調べる事をお勧めします。

    それでも原因がわからない場合は関連するイベント(Switch分の中身)のプログラムを貼り付けるなりすれば予測できる原因も教えられるかもしれません。

    一番いいのは自分で気付く事なんですが。


引用返信/返信 削除キー/
■12583 / inTopicNo.5)  Re[2]: SwitchとCase
□投稿者/ Chico -(2004/02/23(Mon) 15:59:36)

    ユニットコマンド 撃墜数 敵 (((Info(オプション,ユニット情報隠蔽) = Off) OR (Condition(対象ユニット,識別済み) = 1)) AND (Condition(対象ユニット,ユニット情報隠蔽) = 0)):
    ユニットコマンド 撃墜数 NPC (Condition(対象ユニット,ユニット情報隠蔽) = 0):
    ユニットコマンド 撃墜数 中立 (((Info(オプション,ユニット情報隠蔽) = Off) OR (Condition(対象ユニット,識別済み) = 1)) AND (Condition(対象ユニット,ユニット情報隠蔽) = 0)):
    -*ユニットコマンド 撃墜数 味方 (Condition(対象ユニット,ユニット情報隠蔽) = 0):
    Set 分岐用 Random(6)
    Switch 分岐用
    Case 1
    If 作者正体 = 1 Then
    Talk 作者
    $(対象ユニット)の撃墜数$(撃墜数[対象ユニット])機だ。
    End
    Else
    Talk 作者
    Talk
    ???「$(対象ユニット)の撃墜数は$(撃墜数[対象ユニット])機だ。」
    End
    Case 2
    If 作者正体 = 1 Then
    Talk 作者代理
    $(対象ユニット)さんの撃墜数は$(撃墜数[対象ユニット])機ですょ。
    End
    Else
    Talk 作者代理
    Talk
    ???「$(対象ユニット)さんの撃墜数は$(撃墜数[対象ユニット])機ですょ。」
    End
    Case 3
    Talk 赤木リツコ(指示)
    そんなことより早く任務を遂行して!
    End
    Case 4
    Talk 碇ゲンドウ
    $(対象ユニット)の撃墜数は$(撃墜数[対象ユニット] )機だ。:<B>問題ない。<B>
    End
    Case 5
    Talk 伊吹マヤ
    $(対象ユニット)さんの撃墜数は$(撃墜数[対象ユニット] )機です!
    End
    Case 6
    Talk マギ
    $(対象ユニット)撃墜数取得中・・・:$(撃墜数[対象ユニット] )機
    End
    EndSw
    EndIf
    Exit


    とりあえずそのまま貼り付けました。
    エラーは下記のとおりです


    一つ目
    Caseに対応するSwitchがありません
    22: End
    23: Case 2
    24: If 作者正体 = 1 Then

    二つ目
    Caseに対応するSwitchがありません
    32: End
    33: Case 3
    34: Talk 赤木リツコ(指示)

    三つ目
    Switchに対応するEndSwがありません
    22: End
    23: Case 2
    24: If 作者正体 = 1 Then


    これです。どこが間違っているのでしょうか?
引用返信/返信 削除キー/
■12586 / inTopicNo.6)  Re[3]: SwitchとCase
□投稿者/ あーる -(2004/02/23(Mon) 16:14:18)
    > Case 1
    > If 作者正体 = 1 Then
    > Talk 作者
    > $(対象ユニット)の撃墜数$(撃墜数[対象ユニット])機だ。
    > End
    > Else
    > Talk 作者
    > Talk
    > ???「$(対象ユニット)の撃墜数は$(撃墜数[対象ユニット])機だ。」
    > End

    ←ここにEndifが必要です。

    > Case 2
    > If 作者正体 = 1 Then
    > Talk 作者代理
    > $(対象ユニット)さんの撃墜数は$(撃墜数[対象ユニット])機ですょ。
    > End
    > Else
    > Talk 作者代理
    > Talk
    > ???「$(対象ユニット)さんの撃墜数は$(撃墜数[対象ユニット])機ですょ。」
    > End

    ←ここにもEndifが必要です。

    > Case 3

    (中略)

    > Case 6
    > Talk マギ
    > $(対象ユニット)撃墜数取得中・・・:$(撃墜数[対象ユニット] )機
    > End
    > EndSw
    > EndIf

     ↑ここのEndifは必要ありません

    > Exit

     おそらくはIf⇔EndifのくくりがSwitch⇔Caseの枠の外に出てしまっているためにプログラムが判断に迷ってエラーを吐き出したものと思われます。
引用返信/返信 削除キー/
■12587 / inTopicNo.7)  Re[4]: SwitchとCase
□投稿者/ Chico -(2004/02/23(Mon) 17:05:40)
    作動成功しました!
    しかし、3ターン目あたりから「撃墜数」のコマンドが空白になってしまいます。
    どうしてでしょうか?
    本体側のバグですか?
引用返信/返信 削除キー/
■12588 / inTopicNo.8)  すいません、もう少しわかりやすく説明お願いします。
□投稿者/ 玖琺祐一郎 -(2004/02/23(Mon) 18:40:06)
    こんばんわ、玖琺祐一郎です。

    >作動成功しました!
    >しかし、3ターン目あたりから「撃墜数」のコマンドが空白になってしまいます。
    >どうしてでしょうか?
    >本体側のバグですか?

    と、書かれていますが、撃墜数のコマンドが空白になってしまうというのは撃墜数のコマンドが表示されないのでしょうか?それとも撃墜数のコマンドを実行しても空白が表示されるとかそういう意味なのでしょうか?

    ユニット隠蔽情報を利用されているようなので2.0系か1.7系だと思うのですが、それも出来れば記載されていた方が答え易さに繋がるはずです。

    途中で空白になるというのがどういうものかはわかりませんが、途中で状態が変わるなら高確率でシナリオ側のバグと思われます。

    一度、シナリオ(インクルードがあればそれも)をじっくり見直されてからわからないようであればもう一度詳しい説明とともに書き込みしてください。
引用返信/返信 削除キー/
■12589 / inTopicNo.9)  Re[6]: すいません、もう少しわかりやすく説明お願いします。
□投稿者/ Chico -(2004/02/23(Mon) 19:18:39)
    状態としては、コマンドが

    『移動   』
    『攻撃   』
    『特殊能力 』
    『武装一覧 』
    『撃墜数  』

    だったのが

    『移動   』
    『攻撃   』
    『特殊能力 』
    『武装一覧 』
    『     』

    になっているのですが・・・

引用返信/返信 削除キー/
■12590 / inTopicNo.10)  Re[5]: SwitchとCase
□投稿者/ TomTom -(2004/02/23(Mon) 19:24:22)
    TomTomです。

    おそらくは「撃墜数」というユニットコマンドと変数を同時に使用しているためであると思われます。
    撃墜数の変数名を変えてみてはいかがでしょうか。

    また、少しうまくいかなかったからといってすぐに本体のバグと言うのは、あまりよろしくないと思われます。
    エラーが出た場合に本体のバグである可能性は、シナリオ側のミスである可能性よりも遥かに低いので、
    本体よりもまずは自分のシナリオの組み方を疑ってみるようにしましょう。
引用返信/返信 削除キー/
■12593 / inTopicNo.11)  Re[7]: すいません、もう少しわかりやすく説明お願いします。
□投稿者/ 玖琺祐一郎 -(2004/02/24(Tue) 00:50:32)
    すいません、『自分で調べて』わからなければ『詳しい説明を記載してほしい』と書いたのですが、上のレスでは結果(見た目の不具合状態)しか書きこまれていないので答えようにも答えられません。

    もし、Chicoさん自身の手には負えないと判断されたのでしたら、撃墜数を確認するユニットコマンドをあきらめるという手もありますが、それでは根本的な解決にはならないので。(本人が良ければ別にそれはそれでかまわないのですが)

    関連する全てのイベントソース(オリジナルデータを作られているなら、当然それも。量が多ければ圧縮してリンクを貼り付けてもらってもいいですが)を貼り付けていただければ原因も追究できるかもしれません。
    その際には起動させるSRCのバージョンとかもちゃんと書いてください。(もし、1.7系の開発版の場合は現在入手不可のため自分は最終版でしかテスト出来ませんが。)
    ただ、それは最終手段(完全に人任せのため)ですのでシナリオライターであるChicoさんのためにはなりません。
    原因がわかっても自分で解決出来なかった問題は理解できにくかったりしますので。

    最後になりましたが、同じような動作をするユニットコマンドをもう一度ご自身で作られましたか?作られていないのであれば簡略化して作ってみる事をお勧めします。その際にきちんとした動作をするものを作れるかもしれませんので。

    コピー&ペースト&修正ではない新規のユニットコマンド『撃墜数』を作ったのであれば、その時点で上記の最終手段をするかどうか考えてください。
引用返信/返信 削除キー/
■12600 / inTopicNo.12)  Re[6]: SwitchとCase
□投稿者/ Chico -(2004/02/24(Tue) 19:50:02)
    一応うまく動くようになりました。
    皆様ありがとうございました。
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -