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

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

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

■19550 / inTopicNo.1)  IfとSwitchの複合によるイベント
  
□投稿者/ dame -(2007/02/04(Sun) 11:56:13) [ID:SY967DsK]
    ユニットのレベルが3になったときに「はい」「いいえ」の選択によって進化させたり進化をキャンセルできるようにしたのですが、
    シナリオはIfでイベントの条件を加え、選択(Switch)を組み合わせたイベントを作成しました。
    しかしユニットのレベルが2になったとたんに選択が現れIfの条件は消されてしまいました。
    以下問題部分

    レベルアップ スライム:
    If Level(ユニット) Mod 3 = 0 Then
    Ask スライムを進化させますか?
    いいえ
    はい
    End
    Switch 選択
    Case1
    Exit
    Case 2
    進化 ホイミスライム
    EndSw
    EndIf
    Exit

    進化 ホイミスライム:
    Transform スライム ホイミスライム
    Talk システム
    ホイミスライムに進化しました。
    End
    Exit

    いろいろやってみましたがどれもダメなのでどうすればよいか指摘、お願いします。

引用返信/返信 削除キー/
■19551 / inTopicNo.2)  Re[1]: IfとSwitchの複合によるイベント
□投稿者/ ガムニ -(2007/02/04(Sun) 13:17:26) [ID:rIaOTulp]
    初めまして、ガムニと申します。

    まず提示された内容はSRC上で動作させているものと同一のものである、
    という解釈でよろしいでしょうか。
    だとすると原因はIf文の条件式かと思われます。

    >If Level(ユニット) Mod 3 = 0 Then
    上記のIf文の式で使われているLevel関数ですが、
    ()の中に入れる値は「パイロット名称」である必要があります。
    つまりこの場合は「ユニット」という名称を持ったパイロットのレベルを参照しているので、
    「ユニット」というパイロットが存在しない場合は0が帰ってくるため
    0割る3のあまりは0ということでIf文を真で通過するためAsk選択へと移行します。

    なので問題を解決するにはスライムというユニットに乗っているパイロットの名称を
    Level関数内に入れてあげる必要があります。
    (仮にパイロット名が「スラぼう」だとするならばLevel(スラぼう)とする必要があります)


    あと、疑問に思う点が一つあるのですが、
    進化の条件として「レベルが3になった時」が挙げられているのですが、
    条件式を見る限りでは「レベルが3で割り切れるとき(レベルが3の倍数である時)」になっていますがこれは意図したものなのでしょうか。

    進化のレベルが3であると固定されているならIf文の条件式を
    If Level(ここにスライムに乗っているパイロット名) = 3 Then
    とする必要がありますし、3以上の時とするなら
    If Level(ここにスライムに乗っているパイロット名) >= 3 Then
    とする必要があるかと思います。


    あと、少し下のほうに同様の質問が見受けられましたが、
    同じ内容の質問については新規にツリーを建てるのではなく、
    ツリーに対し返信という形でお願いします。
引用返信/返信 削除キー/
■19554 / inTopicNo.3)  Re[2]: IfとSwitchの複合によるイベント
□投稿者/ dame -(2007/02/04(Sun) 15:49:34) [ID:SY967DsK]
    なるほど・・・

    ありがとうございます。

    次回から気をつけます。
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -