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

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

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

■20195 / inTopicNo.1)  マップ兵器の判定
  
□投稿者/ 27 -(2007/08/04(Sat) 18:40:31) [ID:dVCUhkuv]
    マップ兵器で攻撃を仕掛け範囲内に味方がいた場合味方を撃破してマップ兵器を仕掛けたユニットをレベルアップさせようとしています。
    そしてマップ兵器で攻撃するのは敵です。
    まずマップ兵器を味方がいても仕掛けるように識属性を付加しました。

    ここから本題なのですが識属性でマップ兵器を撃ち(今回はM直です)射程内に攻撃したユニットと同軍のユニットがいるかを調べるにはどうしたらいいでしょうか?
    また以前に敵全員に隠れ身を使わせてマップ兵器を撃つ直前に隠れ身を解除するという方法を教わりましたが識属性でも攻撃射程内のユニットを調べられるなら識属性の方が楽だろうと思い書きました。

    例(風来のシレンを元にしています)
    ドラゴンが敵に火を吐く
    敵に届く前に味方がいると味方に当たる
    その味方が死んでしまった場合ドラゴンのレベルが上がる

    また火が当たった味方が火炎入道だった場合火炎入道のレベルが上がる(おまけ)


    今回はM直なので貫通するという設定にしています、元ネタでは上の通り
    もしマップ兵器を撃ったユニットに一番近いユニットだけに命中するという事が出来るならご教授願います。

    読みにくい文章とは思いますがよろしくお願いします。
引用返信/返信 削除キー/
■20196 / inTopicNo.2)  あまり良い方法では無いですが…
□投稿者/ 千奈 -(2007/08/05(Sun) 00:24:30) [ID:JK58Kupu]
    > ここから本題なのですが識属性でマップ兵器を撃ち(今回はM直です)射程内に攻撃したユニットと同軍のユニットがいるかを調べるにはどうしたらいいでしょうか?

    撃ったM直武装の"範囲内"に同軍のユニットが存在するかどうか。ですよね?
    もし言葉通り"射程内"ということでしたら割と簡単に出来そうですが、"範囲内"となると難しいです…
    ですがM直限定ということなら、少々強引な方法ですが可能だと思います。



    まず、あらかじめM直の武装を持つユニットに、『M直の武装と全く同じ武装』を持たせ、"M直"と"識"を"M投L0"に変えて使用不能にしておきます。
    )例
          火炎, 1000, 1, 6, +10, -, 40, 100, AACA, +0, 火M直識
          火炎(イベント用), 1000, 1, 6, +10, -, 40, 100, AACA, +0, 火M投L0(使用不能)
    【攻撃】や【使用】ラベルを使って、M直武装を撃ったユニット(対象ユニット)と撃たれた
    ユニット(相手ユニット)の座標を調べます。(関数【X】【Y】を使用してください)
    ※この際、"一番近い敵"が相手ユニットになっていると思います。
    両者のX座標が同じならY座標、Y座標が同じならX座標を取り出し、撃ったユニットに近いほうから順にユニットが存在するかを調べます。
    )例
          対象ユニット座標が(5,5)、相手ユニット座標が(1,5)なら
          (4,5)→(3,5)→(2,5)の順に、ユニットが存在するか調べる。
    ユニットが存在するならM直の攻撃をCancelし、MapAttackコマンドでM投L0の攻撃を途中の座標にいたユニットに対して撃たせます。
    存在しないなら、MapAttackコマンドでM投L0の攻撃を相手ユニットに対して撃たせます。
    撃たれたユニットの名前を参照すれば火炎入道のレベルアップも出来ますし、撃たれたユニットが生存しているかを参照すれば、ドラゴンのレベルアップも出来ると思います。



    これで一応、『貫通せず味方にも当たる』と思います。
    実際にこのサブルーチンを組むのは結構大変なので、動作確認はしていませんが…
    組み方でわからないことが有ったり、うまく動かなかったりしたらまた聞いてください。
    可能な限りお答えしますので。
引用返信/返信 削除キー/
■20197 / inTopicNo.3)  Re[2]: あまり良い方法では無いですが…
□投稿者/ 27 -(2007/08/05(Sun) 08:06:32) [ID:dVCUhkuv]
    2007/08/05(Sun) 08:07:37 編集(投稿者)

    作れるか自信はありませんが、おかげさまでどういう形になるかの想像はつきました。
    どうしてもわからなくなったらまた質問しにきます。

    わかりやすい返答ありがとうございました。


    解決済みにチェックして質問というのも気が引けますが
    何故あまり良い方法ではないのでしょうか?
解決済み!
引用返信/返信 削除キー/
■20198 / inTopicNo.4)  Re[3]: あまり良い方法では無いですが…
□投稿者/ 千奈 -(2007/08/05(Sun) 11:22:00) [ID:JK58Kupu]
    方法がスマートに出来ず、煩雑になってしまったので…
    サブルーチンの組み方にもよりますが、動作が重くなる可能性が高いです。
    また、他のサブルーチン(インクルード)を併用される場合、予想外の動作をするかもしれません。

    あと、この方法ではM直限定になり、他のM属性武装には対応が難しいこと。
    戦闘アニメを手動で指定しないと、M直とM投では違うアニメが自動選択されることが多い。
    といった点でしょうか。

    …タイトルにこう書いておけば、もっと良い方法を思いついた方が書いてくれるかなぁ…と思ったのもあります。
    私自身、もっと良い方法がありそうな気がするんですが…思いつきませんでしたので…


引用返信/返信 削除キー/
■20199 / inTopicNo.5)  Re[4]: あまり良い方法では無いですが…
□投稿者/ 27 -(2007/08/05(Sun) 11:34:23) [ID:dVCUhkuv]
    重くなるかもしれないとは思いましたが他にも色々あったんですね
    そんなにスマートじゃないとは思えませんがとにかくこの方法で作ってみます。
    一時しのぎという感じは否めませんけど、目的の動作をすればOK
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -