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

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

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

■16248 / inTopicNo.1)  ユニットコマンドの条件式
  
□投稿者/ 明けの明星 -(2005/03/16(Wed) 11:10:44) [ID:MQdfce9G]
    ユニットコマンドの条件式でサブルーチンコールを行い、指揮範囲などを描画することは結構多くの人がやっていると思います。
    自分も同じようなことをやっていて起こったバグに対する質問なのですが、このサブルーチンコールの引数に『対象ユニットID』を指定した場合、何故か選択したユニットのIDではなく、直前に『create』で作成したユニットのIDが引数になってしまうことが多々あります。
    問題無く実行できることもあるのですが…これを直す方法はないのでしょうか?
引用返信/返信 削除キー/
■16249 / inTopicNo.2)  Re[1]: ユニットコマンドの条件式
□投稿者/ Mr.tonkati -(2005/03/16(Wed) 12:21:58) [ID:qoRZBP0K]
    2005/03/16(Wed) 12:29:17 編集(投稿者)

    初めまして、こんにちは。Mr.tonkatiです。


    >直前に『create』で作成したユニットのIDが引数になってしまう

    実は私も同じ疑問を抱いたことがあります。
    これはおそらく、「ヘルプに記載されていない仕様」というものだろう、と勝手に思い込んでいます(長いこと直されていないため)。
    とりあえずはCreateする前に、対象ユニットIDを変数に保存し、それを引数として参照しては如何でしょう。

    =====例

    攻撃 味方 敵:

    〜イベント〜

    ev = 対象ユニットID

    (Createコマンド使用)

    Call サブルーチン名 ev

    Exit


    =====終わり

    的外れであれば、失礼致しました。

    *どじを踏んだため修正致しました。
    失礼致しました。
引用返信/返信 削除キー/
■16250 / inTopicNo.3)  Re[2]: ユニットコマンドの条件式
□投稿者/ 明けの明星 -(2005/03/16(Wed) 12:28:54) [ID:MQdfce9G]
    攻撃イベントなどなら、対処法もわかるので大丈夫なんです。しかし、自分が詰まっているのは、ユニットコマンドなので…。
    イベント部分も書いておきます。

    -*ユニットコマンド 重力波確認 味方 (call(重力波確認,対象ユニットID)):
    exit

    重力波確認:
    if ターン数 > 0 then
    clearpicture
    local id = args(1)
    #######
    # 描画イベント
    #######
    return 0

    この時、サブルーチンに入った直後に引数を調べてみると、選択されたユニットではなく、直前に『create』をされたユニットになっているのです。
引用返信/返信 削除キー/
■16252 / inTopicNo.4)  Re[3]: ユニットコマンドの条件式
□投稿者/ Mr.tonkati -(2005/03/16(Wed) 12:55:32) [ID:qoRZBP0K]
    2005/03/16(Wed) 12:56:33 編集(投稿者)

    こんにちは、Mr.tonkatiです。


    先ほどは大変失礼致しました。
    で、上で挙げられたサブルーチン「重力波確認」の直後に、
    Talkでargs(1)内の調べてみましたが、とりあえずそういった現象は確認できませんでした。


    実際にその現象が起きている部分も掲示していただいた方が良いかもしれません。


    お力になれず申し訳ありませんでした。
引用返信/返信 削除キー/
■16253 / inTopicNo.5)  Re[4]: ユニットコマンドの条件式
□投稿者/ 明けの明星 -(2005/03/16(Wed) 13:16:58) [ID:MQdfce9G]
    全体を上げるとなるとちょっと長いのですが…まだページも持っていませんし。
    テキストで約15kbありますが、掲示したほうがいいでしょうか?
引用返信/返信 削除キー/
■16254 / inTopicNo.6)  Re[5]: ユニットコマンドの条件式
□投稿者/ Mr.tonkati -(2005/03/16(Wed) 14:07:51) [ID:qoRZBP0K]
    こんにちは、Mr.tonkatiです。

    >全体を上げるとなるとちょっと長いのですが…まだページも持っていませんし。
    >テキストで約15kbありますが、掲示したほうがいいでしょうか?


    いえ、その現象が確認できる必要最小限のもので結構かと思います。
    他のユーザーの皆様の中に解決できる方がおられるかもしれませんし、データを掲示するかどうかの判断はお任せいたします。


    ところで、ユニットコマンドの条件式なのですが、

    >-*ユニットコマンド 重力波確認 味方 (call(重力波確認,対象ユニットID)):
    exit


    とありますが、

    >-*ユニットコマンド 重力波確認 味方:
    call(重力波確認,対象ユニットID)
    exit


    というものでよいのでしょうか。
    一応書かれていた通りにやったらおかしな動作をしたもので、どういった意図を持たせておられるのかをお教え願えたら幸いです。(単に間違いであれば流してくださいませ、申し訳ありません。)


    真に失礼致しました。
引用返信/返信 削除キー/
■16255 / inTopicNo.7)  Re[6]: ユニットコマンドの条件式
□投稿者/ 明けの明星 -(2005/03/16(Wed) 14:17:11) [ID:MQdfce9G]
    問題の部分だけでそれくらいなのですが(汗)
    専用のレスを書いておきます。

    > ところで、ユニットコマンドの条件式なのですが、〜
    自分が書いた通りでいいんです。
    ユニットコマンドには条件式を書くことができますよね?
    ここでサブルーチンを呼び出し、サブルーチン内で『return 0』とすることで、ユニットコマンドの一覧には表示されないが、実際には実行されている…ということができるのです。
    指揮範囲などを描画する際に使われる記述方法です。他にも使うでしょうけど。
    自分はナデシコの重力波エネルギーやエヴァのケーブルでこれを使用しているのですが、二つあるからバグが起こっている、という可能性もあるんですけど…。
引用返信/返信 削除キー/
■16257 / inTopicNo.8)  Re[7]: ユニットコマンドの条件式
□投稿者/ Mr.tonkati -(2005/03/16(Wed) 15:06:36) [ID:qoRZBP0K]
    お答えくださり、ありがとうございます。
    大変感謝いたします。


    しかし、やはり現象の再現がかないません(正常に動作しています)。
    他に原因があるような気がいたします。


    Srcの最新ヴァージョンで、データの他の部分に見落としがなく、かつ他の方からの書き込みがなければ、やはりデータを張ってみたほうが良いのかも知れません。


    因みに自分が、試した際は、
    No.16250に張られたデータには、
    重力波確認:の真下にtalkコマンド、
    returnの真上にEndifをつけた以外は手を加えず、
    いくつかのシナリオで試してみました。
    (この手順に間違いがあれば失礼致しました。)


    では、失礼いたしました。
引用返信/返信 削除キー/
■16258 / inTopicNo.9)  Re[8]: ユニットコマンドの条件式
□投稿者/ 明けの明星 -(2005/03/16(Wed) 15:25:05) [ID:MQdfce9G]
    色々とアドバイスを貰ったのですが、原因…というか、解決策がわかりました。
    どうやら記述順に問題があったようです。ユニットコマンドイベントの前(上)に『foreach』を使うサブルーチンを記述しており、それによって問題が発生していたようです。このサブルーチンを呼び出すイベントよりも上に記述することで解決しました。

    Mr.tonkatiさん、ありがとうございました。
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -