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

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

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

■2345 / inTopicNo.1)  また自作精神コマンドなのですが…
  
□投稿者/ 幻狗 -(2002/03/02(Sat) 21:46:55)
    げんくと申します。
    この度は、「移動後攻撃した後に元の位置に戻る」という精神コマンドを思いついて作っていたのですが、うまく行きませんので皆さんの御知恵を拝借したくここにきました。


    *使用 味方 離脱:
    Talk システム
    移動後に攻撃をした場合、移動前の位置に戻る
    End
    Ask "精神コマンド「離脱」を使用します。消費精神ポイントは40です。"
    使う
    使わない
    End
    If 選択 = 2 Exit
    If SP() < 40 Then
     Talk システム
     SPが足りません。
     End
     Exit
    EndIf
    If 間合[対象ユニットID] = 1 Then
     Talk システム
     現在は使用できません。
     End
     Exit
    EndIf
    MindAnime 集中 対象ユニットID
    MindAnime 神速 対象ユニットID
    SP() = SP() - 40
    移動前X = X(対象ユニットID)
    移動前Y = Y(対象ユニットID)
    Set 間合[対象ユニットID]
    Exit

    *行動終了 対象ユニットID:
    移動前X = X(対象ユニットID)
    移動前Y = Y(対象ユニットID)
    Exit

    *攻撃後 味方 全:
    If 間合[対象ユニットID] = 0 Exit
    If Party(対象ユニットID) = 味方 Then
    If (X(移動前X) Y(移動前Y)) <> (X(対象ユニットID) Y(対象ユニットID)) Then
    Move 対象ユニットID (X(移動前X) Y(移動前Y)) 非同期
    UnSet 間合[対象ユニットID]
    Else
    EndIf
    EndIf


    今のところ問題は、
    攻撃後に座標1,1に飛んでしまう
    動かずに攻撃しても座標1,1に飛んでしまう
    敵から攻撃されても座標1,1に飛んでしまう
    といったところです。(全部、駄目じゃん)

    正直、自分で作っていて何がなんだかわかっていません。
    移動前の座標を記録する方法や
    SetとUnSetのあとの「間合[対象ユニットID]」がどういう意味なのか
    お答え出来る方、御手数ですが#で説明を入れて下さいませんでしょうか?

    宜しくお願い致します。
引用返信/返信 削除キー/
■2348 / inTopicNo.2)  Re[1]: また自作精神コマンドなのですが…
□投稿者/ 幻魔の公子 -(2002/03/02(Sat) 23:47:48)
     ちーす、幻魔の公子です。

     X関数、Y関数の使い方が間違っています。
     これらは引数に指定したユニットの座標を調べるものです。移動前X、移動前Yなるパイロットは、当然ながら存在しません。存在しないパイロットに対して関数を使っているため、1,1に移動してしまうのではないかと。

     攻撃された場合の方はちょっとわかりません。

     それでは。


引用返信/返信 削除キー/
■2355 / inTopicNo.3)  改良?改悪?とにかく修正
□投稿者/ 幻狗 -(2002/03/03(Sun) 13:45:07)
    *使用 味方 離脱:
    Talk システム
    移動後に攻撃をした場合、移動前の位置に戻る
    End
    Ask "精神コマンド「離脱」を使用します。消費精神ポイントは40です。"
    使う
    使わない
    End
    If 選択 = 2 Exit
    If SP() < 40 Then
     Talk システム
     SPが足りません。
     End
     Exit
    EndIf
    If 間合[対象ユニットID] = 1 Then
     Talk システム
     現在は使用できません。
     End
     Exit
    EndIf
    MindAnime 集中 対象ユニットID
    MindAnime 神速 対象ユニットID
    SP() = SP() - 40
    Set 移動前X座標 (X(対象ユニットID))
    Set 移動前Y座標 (Y(対象ユニットID))
    Set 間合[対象ユニットID]
    Exit

    *行動終了 味方:
    If 間合[対象ユニットID] = 0 Exit
    UnSet 移動前X座標
    UnSet 移動前Y座標
    Set 移動前X座標 (X(対象ユニットID))
    Set 移動前Y座標 (Y(対象ユニットID))
    Exit

    *攻撃後 味方 全:
    If 間合[対象ユニットID] = 0 Exit
    If Party(対象ユニットID) = 味方 Then
    If (X(移動前X座標) Y(移動前Y座標)) <> (X(対象ユニットID) Y(対象ユニットID)) Then
    Move 対象ユニット X(移動前X座標) Y(移動前Y座標) 非同期
    UnSet 移動前X座標
    UnSet 移動前Y座標
    UnSet 間合[対象ユニットID]
    Else
    EndIf
    EndIf


    と、まぁ
    書き換えてはみたものの
    依然として座標1,1に飛んでしまいます。
    Moveしているということは書式に問題はなし?なのかな?
引用返信/返信 削除キー/
■2359 / inTopicNo.4)  Re[3]: 改良?改悪?とにかく修正
□投稿者/ 幻魔の公子 -(2002/03/03(Sun) 15:48:56)
     幻魔の公子です。

     いや、だからですね、X関数とY関数の使い方が間違っているんですって書いてるじゃないですか。
     X(移動前X座標)というのは、「移動前X座標」というパイロットの現在座標を調べるために使うのです。そんなパイロットは当然存在しませんよね? この変数に入っているのは座標の数値でパイロット名称ではないのですから。
     つまり、一言で言うなら、これに対してX、Y関数を使用する必要が無いんです。

     それでは。

引用返信/返信 削除キー/
■2361 / inTopicNo.5)  これで動くはず
□投稿者/ 皇 -(2002/03/03(Sun) 21:55:49)
http://www5.ocn.ne.jp/~keito/ss/ss.htm
    どうも、皇です。

    *使用 味方 離脱:
    Talk システム
    移動後に攻撃をした場合、移動前の位置に戻る
    End
    Ask "精神コマンド「離脱」を使用します。消費精神ポイントは40です。" キャンセル可
    使う
    使わない
    End
    Switch 選択
    Case 0 2
     Exit
    EndSw
    If SP() < 40 Then
     Talk システム
     SPが足りません。
     End
     Exit
    EndIf
    If 間合[対象ユニットID] = 1 Then
     Talk システム
     現在は使用できません。
     End
     Exit
    EndIf
    MindAnime 集中 対象ユニットID
    MindAnime 神速 対象ユニットID
    SP() = SP() - 40
    Set 移動前X座標[対象ユニットID] X(対象ユニットID)
    Set 移動前Y座標[対象ユニットID] Y(対象ユニットID)
    Set 間合[対象ユニットID] 1
    SetStatus 対象ユニットID 離脱発動 -1
    Exit

    *行動終了 味方:
    If 間合[対象ユニットID] = 0 Exit
    If (Abs(X(対象ユニットID) - 移動前X座標[対象ユニットID]) + Abs(Y(対象ユニットID) - 移動前Y座標[対象ユニットID])) = 0 Exit
    Set 間合[対象ユニットID] 0
    ClearStatus 対象ユニットID 離脱発動
    Move 対象ユニット 移動前X座標[対象ユニットID] 移動前Y座標[対象ユニットID] 非同期
    Redraw
    Exit

    敵のターンには発動しないはずなので、攻撃後ラベルはいらないです。

    動作確認してないので、ダメだったらまた言ってください。
    それでは。
引用返信/返信 削除キー/
■2362 / inTopicNo.6)  Re[4]: これで動くはず
□投稿者/ 幻魔の公子 -(2002/03/03(Sun) 22:14:23)
     幻魔の公子です。

     幻狗さんやりたいことを詳しく理解してるわけじゃないんで違うかもですが、攻撃を仕掛けたときだけ元の位置に戻る、精神コマンドを作りたいのではないでしょうか?
     攻撃を仕掛けるまで持続で。

     違うならすいません。

     それでは。

引用返信/返信 削除キー/
■2363 / inTopicNo.7)  自己レス
□投稿者/ 皇 -(2002/03/03(Sun) 22:38:05)
http://www5.ocn.ne.jp/~keito/ss/ss.htm
    確かに、これじゃあ移動しただけで戻っちゃいますね。
    幻魔の公子さん、ご指摘どうもです。

    それでは、
    *攻撃後 味方 敵:
    If 間合[対象ユニットID] = 0 Exit
    If (Abs(X(対象ユニットID) - 移動前X座標[対象ユニットID]) + Abs(Y(対象ユニットID) - 移動前Y座標[対象ユニットID])) = 0 Exit
    Set 間合[対象ユニットID] 2
    Exit

    *行動終了 味方:
    Switch 間合[対象ユニットID]
    Case 1
     Set 移動前X座標[対象ユニットID] X(対象ユニットID)
     Set 移動前Y座標[対象ユニットID] Y(対象ユニットID)
    Case 2
     Set 間合[対象ユニットID] 0
     ClearStatus 対象ユニットID 離脱発動
     Move 対象ユニット 移動前X座標[対象ユニットID] 移動前Y座標[対象ユニットID] 非同期
     Redraw
    EndSw
    Exit

    使用イベントはそのままで。

    と、これでいいかな?
    それでは。
引用返信/返信 削除キー/
■2371 / inTopicNo.8)  ありがとうございました。
□投稿者/ 幻狗 -(2002/03/04(Mon) 20:15:12)
    幻魔の公子さん、皇さん
    本当にありがとうございました。

    幻魔の公子さんには同じ指摘をさせてしまいまして、
    ごめんなさいです。
    皇さんの書いて下さったのを見て
    どう言う事かがやっとわかりました。

    あと、3つくらい考えている物がありますけど、判らなくなった時に来ます。
    本当に、本当にありがとうございました。
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -