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

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

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

■8595 / inTopicNo.1)  マップ上での換装について
  
□投稿者/ RINT -(2003/06/02(Mon) 15:33:21)
http://rint0927.hp.infoseek.co.jp/index.html
    どうもRINTです。マップ上で換装するインクルードを過去ログを参考にして作成してみました。自分は開発版でシナリオ作成しているのですがマップによって
    うまく作動しないようなので(Organizeの後などにCallすると作動しません。)
    どなたかアドバイスいただけませんでしょうか?

    ユニット換装:
    If Unit() = "ストライクガンダム" Then
    Ask 換装先を選択して下さい
    変更しない
    エール
    ランチャー
    ソード
    End
    Switch 選択
    Case 2
    Transform エールストライクガンダム
    Case 3
    Transform ランチャーストライクガンダム
    Case 4
    Transform ソードストライクガンダム
    EndSw
    ElseIf Unit() = "エールストライクガンダム" Then
    Ask 換装先を選択して下さい
    変更しない
    ランチャー
    ソード
    End
    Switch 選択
    Case 2
    Transform ランチャーストライクガンダム
    Case 3
    Transform ソードストライクガンダム
    EndSw
    ElseIf Unit() = "ランチャーストライクガンダム" Then
    Ask 換装先を選択して下さい
    変更しない
    エール
    ソード
    End
    Switch 選択
    Case 2
    Transform エールストライクガンダム
    Case 3
    Transform ソードストライクガンダム
    EndSw
    ElseIf Unit() = "ソードストライクガンダム" Then
    Ask 換装先を選択して下さい
    変更しない
    エール
    ランチャー
    End
    Switch 選択
    Case 2
    Transform エールストライクガンダム
    Case 3
    Transform ランチャーストライクガンダム
    EndSw
    EndIf
    Confirm 以上でよろしいですか?
    If 選択 = 0 Then
    GoTo ユニット換装
    Else
    Return
    EndIf
    Return
引用返信/返信 削除キー/
■8598 / inTopicNo.2)  Re[1]: マップ上での換装について
□投稿者/ シャアペン -(2003/06/02(Mon) 17:04:15)
http://charpen-web.hp.infoseek.co.jp
     これはCase 1が抜けているためと思われます。何もないからとCase 1を省略したため誤動作をしているものと思います。それと、確認を取る処理は別ラベルにしておくといいと思います
引用返信/返信 削除キー/
■8600 / inTopicNo.3)  Re[1]: マップ上での換装について/11:50編集
□投稿者/ TomTom -(2003/06/02(Mon) 18:34:50)
    TomTomです。


    基本的にはこれで良いと思うのですが、
    Unit()を使用しているため、Callのタイミングによって
    正常に動作しないのではないかと思います。


    呼び出し部分がわからないので何ともいえませんが、

    ・Callで呼び出すのではなく、「ユニットコマンド」イベントを使用する
    ・Callを「ユニット換装 [換装するユニットに乗っているパイロット名]」とし、
     「ユニット換装」ルーチン内の「Unit()」を「Unit(Args(1))」と変更する

    このどちらかで動作すると思います。


    それでは。


    わざわざ新規レスにするのもなんなので追記
     ANSIさん、フォローありがとうございます。
     ちょっと表記が分かりにくかったですね。

解決済み!
引用返信/返信 削除キー/
■8604 / inTopicNo.4)  Re[2]: マップ上での換装について
□投稿者/ RINT -(2003/06/02(Mon) 23:17:06)
http://rint0927.hp.infoseek.co.jp/index.html
    どうもRINTです。シャアペンさん、TomTomさん、
    アドバイスありがとうございます。

    >・Callで呼び出すのではなく、「ユニットコマンド」イベントを使用する
    ・Callを「ユニット換装 [換装するユニットに乗っているパイロット名]」とし、
     「ユニット換装」ルーチン内の「Unit()」を「Unit(Args(1))」と変更する

    TomTomさんの仰った通りにやってみましたが、やはりうまくできないみたいです。開発版のバグ関連でしょうか。
    ========================================================================
    ・Callで呼ぶ場合。

    ユニット換装[換装するユニットに乗っているパイロット名]:
    If Unit(Args(1)) = "ストライクガンダム" Then
    Ask 換装先を選択して下さい
    変更しない
    エール
    ランチャー
    ソード
    End
    Switch 選択
    Case 2
    Transform エールストライクガンダム
    Case 3
    Transform ランチャーストライクガンダム
    Case 4
    Transform ソードストライクガンダム
    EndSw
    EndIf
    Confirm 以上でよろしいですか?
    If 選択 = 0 Then
    GoTo ユニット換装[換装するユニットに乗っているパイロット名]
    Else
    Return
    EndIf
    Return
    #######################################################################

    Organizeコマンドの後、Callすると、どうしてもConfirm〜文だけが表示されてしまいます。 関数関連はあまり得意でないため自分のミスならすみません。
    ========================================================================-
    ・ユニットコマンドの場合

    ユニットコマンド 換装 ストライクガンダム
    Ask 換装先を選択して下さい
    変更しない
    エール
    ランチャー
    ソード
    End
    Switch 選択
    Case 2
    Transform エールストライクガンダム
    Case 3
    Transform ランチャーストライクガンダム
    Case 4
    Transform ソードストライクガンダム
    EndSw
    ClearEvent
    Exit
    ################################################################
    ユニットコマンド自体がでてこないのですが間違いがあるのでしょうか?

引用返信/返信 削除キー/
■8608 / inTopicNo.5)  Re[3]: マップ上での換装について
□投稿者/ ANSI -(2003/06/03(Tue) 00:11:47)
    >Callを「ユニット換装 [換装するユニットに乗っているパイロット名]」とし、
    これは、「サブルーチン名を“ユニット換装 [換装するユニットに乗っているパイロット名]”にする」
    という意味ではなく、「“換装するユニットに乗っているパイロット名”を
    引数で指定するサブルーチンにする」という意味だと思います。
    具体的には以下のような感じです。


    # サブルーチンの呼び出し
    Call ユニット換装 "キラ=ヤマト"

    (中略)

    #
    # 換装用サブルーチン
    #
    ユニット換装:
    If Unit( Args(1) ) = "ストライクガンダム" Then

    # ※以下、全ての「Unit()」を「Unit( Args(1) )」に変換


    これで正常に動作すると思います。

    あと強いていうなら、最後のConfirmコマンドでキャンセルした場合、
    Gotoコマンドでサブルーチンの先頭ラベルにジャンプするのではなく、
    この選択処理全体をDoコマンドのループの中に入れて、OKが選択された場合のみ
    Breakコマンドでループを抜けるような処理の方が良いかもです。

    それからユニットコマンドの方ですが、
    こちらはラベルの最後に半角コロンが付いていなのが原因だと思われます。

    それでは。
引用返信/返信 削除キー/
■8613 / inTopicNo.6)  何度もすみません。
□投稿者/ RINT -(2003/06/03(Tue) 15:57:54)
http://rint0927.hp.infoseek.co.jp/index.html
    どうもRINTです。TomTomさん、ANSIさん、
    ご指摘、どうもありがとうございます。

    Call ユニット換装 "キラ=ヤマト"
    とすることで換装イベントが可能になりました。が、換装先のユニットがキラではなく他のユニットが対象になってしまいます。
    (例:アークエンジェルがエールストライクなどになってしまいます。)
    正常に作動するマップもあるんですが。

    Doコマンドの方は自分の力ではまだ、うまく処理できません。すみません(謝)
    例を作っていただけると嬉しいのですが。
    ユニットコマンドの方は自分の入力ミスでした。
    おかげさまで、こちらは正常にできるようになりました。
引用返信/返信 削除キー/
■8614 / inTopicNo.7)  Re[5]: 何度もすみません。
□投稿者/ TomTom -(2003/06/03(Tue) 16:12:16)
    TomTomです。


    > Call ユニット換装 "キラ=ヤマト"
    > とすることで換装イベントが可能になりました。
    > が、換装先のユニットがキラではなく他のユニットが対象になってしまいます。

    おそらくは"キラ=ヤマト"というパイロットが、
    マップ上に存在しないからでしょう。(母艦格納も含む)
     If Status("キラ=ヤマト") = "出撃" Then
    などのエラーチェックを掛ける必要があるかと思います。


    ところで、RINTさんはこのイベントをどのように処理したいのでしょうか。
    処理の内容は分かるのですが、「どのような場合にユニット換装の処理をしたいのか」
    ということが分からないため、どうにも的をはずした返答になっている気がして。

    出来れば、呼び出している部分のイベントラベル
    (「Call ユニット換装 "キラ=ヤマト"」が含まれているイベントラベル)
    の内容を提示してくだされば、もう少し正確な返答を出来ると思います。


    それでは。
引用返信/返信 削除キー/
■8616 / inTopicNo.8)  Re[6]: 何度もすみません。
□投稿者/ RINT -(2003/06/03(Tue) 16:32:13)
http://rint0927.hp.infoseek.co.jp/index.html
    レスありがとうございます。
    イベントファイルをアップしましたので面倒かと思いますが
    ご覧になっていただけませんか?

    http://rint0927.hp.infoseek.co.jp/UWVD0603.lzh
    2話の方は正常に機能するようです。

引用返信/返信 削除キー/
■8623 / inTopicNo.9)  Re[7]: 何度もすみません。
□投稿者/ TomTom -(2003/06/03(Tue) 18:25:06)
    TomTomです。


    申し訳ない、Unit()をUnit(Args(1))にするだけでは不十分だったようです。


    どうやら、Transformコマンドの使用時に変更もとユニットを
    明示的に指定していないことが原因のようです。

     Transform Args(1) エールストライクガンダム

    このように書き換えれば動作すると思います。


    それでは。
引用返信/返信 削除キー/
■8630 / inTopicNo.10)  長々とすいません。
□投稿者/ RINT -(2003/06/03(Tue) 21:54:03)
http://rint0927.hp.infoseek.co.jp/index.html
    TomTomさんの仰る通りに行ったら、正常に作動しました。
    どうもありがとうございます。
    最後に
    Call ユニット換装 "キラ=ヤマト"

    "キラ=ヤマト"という部分をメインパイロット名でなく、ユニットIDで指定する時はどのように記述すれば、よろしいのでしょうか?
    メインパイロット名だと乗り換えている際、複数Callしないといけないようですので。どうかご教授、お願いできないでしょうか?
引用返信/返信 削除キー/
■8640 / inTopicNo.11)  Re[9]: 長々とすいません。
□投稿者/ TomTom -(2003/06/04(Wed) 10:35:03)
    TomTomです。

    "キラ=ヤマト"の変わりにユニットIDを指定すれば問題はないはずです。
    が、そのユニットIDの取得が面倒ですね。

    Set ストライク換装 "ストライクガンダム,エールストライクガンダム,(以下すべての形態)"
    ForEach 味方
     If InStr(ストライク換装,Unit()) > 1 Then
      Call ユニット換装 Pilot()
     EndIf
    Next

    これでどうでしょう?
    テストはしていませんが、おそらくは動作すると思います。

    それでは。
引用返信/返信 削除キー/
■8645 / inTopicNo.12)  解決できました。
□投稿者/ RINT -(2003/06/04(Wed) 15:46:07)
http://rint0927.hp.infoseek.co.jp/index.html
    どうもRINTです。無事、解決できました。
    質問にお応えになってくださったTomTomさん、ANSIさん、シャアペンさん
    本当にありがとうございました。貴重なアドバイス、感謝してます。
    それでは。
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -