SRC意見交換掲示板Mk2
(現在 過去ログ51 を表示中)

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

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

■5570 / inTopicNo.1)  新規関数【BattleResult】について
  
□投稿者/ 明けの明星 -(2007/06/23(Sat) 20:01:55) [ID:trIiWy40]
http://etarnalcatacomb.iaigiri.com/
    現在、【命中】【回避】【無効化】といった戦闘結果を取得するにはインクルードを組み、戦闘アニメやメッセージにサブルーチンを挟まなくてはならず、少々手間がかかり過ぎると思います。
    そこでこの関数をリクエストしたいのですが、下記の内容についてご意見をお願い致します。

    1.名称
    仮に【BattleRelust】というものを使います。が、サブルーチン等で使われているかもしれませんので、その場合は報告と代案がありましたらお願いします。

    2.概要
    最後に行われた戦闘の結果を返します。
    ステージ開始時にリセットされ、呼び出されるまで戦闘が起こっていない等、該当する結果が無い場合は空文字列【""】を返します。
    この関数の戻り値は攻撃した視点です。
    例−1:攻撃し、マジンガーZに援護防御され、800のダメージを与えて捕縛効果を発動させた。反撃されたが分身で回避した。
    BattleResult(対象ユニットID) = "命中"
    BattleResult(相手ユニットID) = "回避"
    BattleResult(対象ユニットID,詳細) = "800 援護防御=マジンガーZ 防御"
    BattleResult(相手ユニットID,詳細) = "分身"
    BattleResult(対象ユニットID,特殊効果) = "縛"
    BattleResult(相手ユニットID,特殊効果) = ""
    例−2:攻撃したが、相手のATフィールドに無効化された。
    BattleResult() = "無効化"
    BattleResult(詳細) = "ATフィールド"

    3.引数及び各戻り値
    3−1.BattleResult([ユニットID],["結果"])
    【命中】【回避】【無効化】を返します。

    3−2.BattleResult([ユニットID],"詳細")
    ・最後に行われた戦闘結果が【命中】の場合、与えたダメージを返します。何かしらの方法で軽減した場合、与えたダメージ・軽減した方法を発動した順番にリスト形式で返します。特殊能力による軽減は別名を用い、防御による軽減の場合は【防御】が返ります。援護防御による軽減の場合、【援護防御=ユニットID】でリストの二番目に援護防御したユニットが入り、ダメージは援護防御したユニットのものとなります。
    ・同上、【回避】の場合、回避の方法を返します。回避率による回避だった場合は【回避】、超回避や分身、切り払い等の特殊能力で回避した場合は特殊能力の別名を返します。
    ・同上、【無効化】の場合、無効化した特殊能力の別名を返します。

    3−3.BattleResult([ユニットID],"特殊効果")
    最後に行われた戦闘で特殊効果が発生した場合、それが発動した属性をリスト形式で返します。

    4.問題点
    ・当て身技・反射・自動反撃・援護攻撃についてはどうするか。
引用返信/返信 削除キー/
■5571 / inTopicNo.2)  参考代案二つ
□投稿者/ あかんべえ -(2007/06/24(Sun) 00:32:42) [ID:BvMPFOGG]
    2007/06/24(Sun) 01:20:59 編集(投稿者)

     あかんべえです。
     戦闘結果の取得については、私も以前からいろいろ考えていました。暖めていた案を二つ、参考までに出させてもらいます。ただ、えーと、明けの明星さんの提起を受けてあわてて書いちゃったので、まだ迷いもあり、検討しきれていないところもあります。なので、あくまで参考と考えてください。

    A.詳細案
     戦闘の全結果の取得をもくろむ案です。Info関数のような関数を使う点は明けの明星さんの原案と共通してますが、仕様はだいぶ違います。

    <用語>
     「攻撃(側)」は一連の戦闘を仕掛けた側を、「反撃(側)」「防御(側)」は仕掛けられた側を意味します。
     「アタック」は一回一回の武器使用を、「受け側」は武器を受けた側を意味します。

    <書式>
    BattleResult(戦闘種別,[ number,] データ種別)

    原則として、戦闘種別と number でアタックを指定します。
    戦闘種別・・・全、攻撃、反撃、支援攻撃、再攻撃、追加攻撃、自動反撃、反射、当て身技などを指定します。
     うち、「攻撃」はふつうの攻撃を意味します。
     「全」は一連の戦闘のすべてのアタックが該当します。
     反射・当て身技も一種のアタックとみなします。

    number・・・・1以上の整数が入ります。省略時は「1」です。
           戦闘種別で指定した種類のアタックが複数あったとき、起こった順番でナンバー付けされます。
           戦闘種別が「攻撃」でマップ攻撃のときは、受け側ユニットごとにナンバーが割り当てられます。

    データ種別・・以下を指定します。いずれも、該当アタックが成立しなかった場合には空文字を返します。
     種別・・・・・「全」専用のデータ種別で、攻撃・反撃・支援攻撃・再攻撃・追加攻撃・自動反撃・反射・当て身技のいずれかを返します。
     アタック側・・武器を使用したユニットのユニットIDを返します。合体技の場合は、技を使用したユニットです(他のユニットはPartner関数で求めます)。
     受け側・・・・武器を実際に受けたユニットのユニットIDを返します。
     使用武器・・・使用された武器名を返します。
     オプション・・反撃オプションです。反撃・防御・回避・空文字列(無抵抗の場合)のいずれかを返します。
     主結果・・・・命中・回避・無効化・射程外のいずれかを返します。ただし、「連」属性攻撃の場合は、「命中」の代わりに命中回数を返します。「回避」は特殊能力によらない通常の回避を意味します。
     ダメージ・・・受け側が受けたダメージの実値です。武器属性「衰」によるダメージは含みません(これは「CT」を使って割り出します)。
     CT・・・・・クリティカルの場合は「CT」を、状態が付加された場合は対応する文字のリストを返します。
     アタック側スキル、受け側スキル・・・それぞれの側が発動した特殊能力名とスペシャルパワー(短縮名)のリストを返します。

     支援オプションは、「アタック側」「受け側」を参照すればわかるので省略してます。

    <関連変数の追加>
    システム変数 CountAttack
     最近の戦闘のアタック総数を返します。これは不可欠ではありません。

    <動作のタイミング>
     BattleResult関数の戻り値と CountAttack の値は、戦闘開始時にすべてクリアされ、戦闘中にセットされます。戦闘関連システム変数と同様、戦闘イベント時にはすでに有効です。

    <欠点>
     見ての通り、データ量が多いです。システムの負担が心配ではあります。


    B.簡易案
     これまでの各掲示板での話題は、SetMessage / メッセージデータで取得可能なものを除けば、たいていダメージ量だったと思います。
     そこで、ダメージ量だけを取得し、他はメッセージデータを使おう(それで不可能なものは当面ガマンしよう)という案です。

    書式:
    BattleDamage(unit[, option])
     最近の戦闘でユニットが受けたダメージ(複数回攻撃を受けたときは総和)を返します。
     ただし、option に「アタック」を指定した場合は、ユニットが与えたダメージを返します。
     unit には、メインパイロット名またはユニットIDが有効です。
     武器属性「衰」によるダメージを含みます。「失」「吸」によるアタック側のHP増減は含みません。
引用返信/返信 削除キー/
■5572 / inTopicNo.3)  含まれる内容の検討から始めては?
□投稿者/ 中箱 -(2007/06/25(Mon) 18:17:28) [ID:8NrUE61r]
    ぜひとも欲しい機能ですねー。
    どうも、中箱です。


    タイトルにも書いたとおり、
    まずはこのリクエストによって「何を可能にしてもらうか」を固める所から始めた方が良いように思います。


    ですのでとりあえず、勝手ながら私が個人的に可能にして欲しい=リクエスト内容に含まれて欲しい内容を挙げさせていただきます。

    ○一戦闘ごとに、
    1:攻撃が行われた順番と、各攻撃ごとに攻撃したユニット、攻撃を受けたユニット。(反射・当て身・援護などを含む)
    が識別できること。

    ○各攻撃ごとに
    2:命中したか、無効化されたか、回避されたか。
    3:発動した特殊能力は何か。
    4:命中した場合、命中数(連属性時)と、与えたダメージがどれだけか。
    5:クリティカルが発生したかどうか(特殊効果武器の場合は、何が効果を発揮したか)。
    が識別できること。

    (直接には識別できなくとも、文字列操作関数だったりシステム変数だったりを利用すれば識別可能であれば良いです)


    1の順番に関してですが、
    発動した特殊能力さえ分かれば不要だと思われるかもしれませんが
    一ユニットにつき複数回攻撃が行われた場合(追加攻撃等)の結果も取得できるようにするならば、
    むしろその順番によって管理するのが良いと思います。

    2は、3や4に含めてしまってよいかもしれません。





    それと個人的には、関数という形よりもシステム変数でのリクエストの方がいいかな、とは。
    書式さえ工夫すれば、新設する変数は一つで済みますし。

    ・・そこから文字列操作関数等を用いて必要な情報を取り出さなけれなならないので、実際に利用する為には一手間かかってしまうのが難点ですが。

    (システム変数一つだけを新設する方向での対案も考えましたが、
     最初に述べたとおり、書式や方法よりもまずは「可能にしてもらう内容」を詰める事を優先するべきだと思いますので、とりあえず提示は控えます)


    今回は以上です
    では。
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -