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

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

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

■16533 / inTopicNo.1)  ダメージが0でも回数が減る盾を擬似再現
  
□投稿者/ ビタミンV -(2005/04/21(Thu) 03:12:52) [ID:K6Lg1Xuc]
    2005/04/21(Thu) 03:18:27 編集(投稿者)
    2005/04/21(Thu) 03:16:37 編集(投稿者)

    2.10で追加された特殊能力「盾」を、破属性を受けるとダメージが0でも回数が1回、ダメージを受けると回数が2回減る能力として擬似再現したいのですが、いくつか壁にぶつかってしまっています。


    ロボ乗り
    ロボ乗り, 男性, ロボ, AABA, 200
    特殊能力
    盾防御Lv1=S防御, 1, Lv2, 5, Lv3, 10
    S防御=解説 シールド防御を行い、ダメージを$()減少させる, 1
    ===
    フィールドLv1=盾 (盾防御回数Lv1 盾防御Lv1 !盾防御Lv2)
    フィールドLv1.2=盾 (盾防御回数Lv1 盾防御Lv2 !盾防御Lv3)
    フィールドLv1.4=盾 (盾防御回数Lv1 盾防御Lv3 !盾防御Lv4)


    盾持ちロボ
    盾持ちロボ, ロボ, 1, 4
    陸, 3, M, 800, 30
    特殊能力
    パイロット能力付加="盾防御回数Lv5"
    盾防御回数Lv5=解説 レベル回数分盾を発動させる
    2600, 60, 700, 45
    -ACA, -.bmp



    *攻撃 敵 味方 :
    盾防御前 = HP(相手ユニットID)

    Exit


    *攻撃後 敵 味方 :
    If Info(対象ユニットID,武器, 対象ユニット使用武器番号, 属性所有, 破) = 1 Then
      If HP(相手ユニットID) < 盾防御前 Then
      SetSkill 相手パイロット 盾防御回数 (Skill(相手パイロット,盾防御回数) - 2)
      EndIf
    Else
      If HP(相手ユニットID) < 盾防御前 Then
      SetSkill 相手パイロット 盾防御回数 (Skill(相手パイロット,盾防御回数) - 1)
      EndIf
    EndIf

    Exit


    と、ここまで作ったのですが、以下の問題が解決できません。

    1.ダミー特殊能力S防御の解説の中に、盾防御Lv*100+400の値を表示させたいのですが、方法がわからない。

    2.SetSkillで盾防御回数Lvを下げても、Skill関数は下がる前の値を返してしまうので、盾防御回数Lvが0にならない。

    3.受けたダメージが0だと盾防御回数Lvが減らないので、攻撃が命中しただけでLvが減るようにしたいのですが、攻撃が命中したかどうかの判定方法がわからない。

    以上です。どうすれば上記の問題を解決できるでしょうか?よろしくお願いします。
引用返信/返信 削除キー/
■16558 / inTopicNo.2)  Re[1]: ダメージが0でも回数が減る盾を擬似再現
□投稿者/ GAMEMASTER -(2005/04/24(Sun) 11:37:36) [ID:UzsFJoYV]
http://gamemaster.ifdef.jp/
     お初にお目にかかります。
     SRCユーザーの1人「GAMEMASTER」と申します。

    > 1.ダミー特殊能力S防御の解説の中に、盾防御Lv*100+400の値を表示させたいのですが、方法がわからない。

     解説の中に関数と式を記述することでレベルに応じて値を変更させることが出来ます。
     なお、これらダミー特殊能力はエリアスデータに定義しましょう。


     S防御
     盾防御=S防御
     S防御=解説 シールド防御を行い、ダメージを$(Skill(対象パイロット,盾防御) * 100 + 400)減少させる


    > 2.SetSkillで盾防御回数Lvを下げても、Skill関数は下がる前の値を返してしまうので、盾防御回数Lvが0にならない。

     SetSkillコマンドによる設定よりユニット用特殊能力「パイロット能力付加」の方が優先されている模様です。バグか仕様かは不明です。
     パイロット能力付加を使用せず、パイロットデータに直接記述しましょう。


     ロボ乗り
     ロボ乗り, 男性, ロボ, AABA, 200
     特殊能力
     S防御Lv1, 1, Lv2, 5, Lv3, 10
     盾防御回数Lv5, 1
     盾防御回数=解説 レベル回数分盾を発動させる, 1
     ===
     フィールドLv1=盾 (盾防御回数Lv1 盾防御Lv1 !盾防御Lv2)
     フィールドLv1.2=盾 (盾防御回数Lv1 盾防御Lv2 !盾防御Lv3)
     フィールドLv1.4=盾 (盾防御回数Lv1 盾防御Lv3 !盾防御Lv4)


    > 3.受けたダメージが0だと盾防御回数Lvが減らないので、攻撃が命中しただけでLvが減るようにしたいのですが、攻撃が命中したかどうかの判定方法がわからない。

     まず、攻撃イベントにおいて命中したかどうかを判断する変数を作成し(この時値は0に設定)、攻撃が命中した際にこの変数を1にするサブルーチンを呼び出すようにSetMessageコマンドを記述します。


     *攻撃 敵 味方:

     盾防御前 = HP(相手ユニットID)

     攻撃が命中 = 0

     SetMessage 対象ユニットID 攻撃(命中) "$(Call(攻撃命中))"

     Exit


     攻撃命中:

     攻撃が命中 = 1

     Return


     そして、攻撃後イベントにおいて変数「攻撃が命中」が0か1かで条件分岐を行わせましょう。


     *攻撃後 敵 味方:

     If 攻撃が命中 = 1 Then

      If Info(対象ユニットID,武器, 対象ユニット使用武器番号, 属性所有, 破) = 1 Then

       If HP(相手ユニットID) < 盾防御前 Then

        SetSkill 相手パイロット 盾防御回数 (Skill(相手パイロット,盾防御回数) - 2)

       EndIf

      Else

       If HP(相手ユニットID) < 盾防御前 Then

        SetSkill 相手パイロット 盾防御回数 (Skill(相手パイロット,盾防御回数) - 1)

       EndIf

      EndIf

     EndIf

     Exit


     参考になれば幸いです。

     もう時間がないようでございますね。では、これにて退散させてもらいましょう。
引用返信/返信 削除キー/
■16580 / inTopicNo.3)  Re[2]: ダメージが0でも回数が減る盾を擬似再現
□投稿者/ ビタミンV -(2005/04/27(Wed) 08:11:57) [ID:K6Lg1Xuc]
    色々と実験していたため返答が遅くなってしまいました、申し訳ありません。

    GAMEMASTER様のアドバイスを元に、動作をさせることができました。
    しかし、最終的な目標としてはユニット毎に盾の使用可能回数を設定し、乗り換えると盾の使用回数が変わる、つまりユニット側に依存するという形を取りたかったのですが、SetSkillコマンドがパイロット能力付加を優先してしまうため、完全に意図した動作をさせるのは無理なようです。

    アイテムやユニットクラス等を弄ることで調整することは可能ではあるのですが…
    イベントデータだけで再現する方法は私のスキルでは思いつきませんでした。
    一通り試したつもりですが、もし方法がありましたらご教授頂けると幸いです。
引用返信/返信 削除キー/
■16581 / inTopicNo.4)  Re[3]: ダメージが0でも回数が減る盾を擬似再現
□投稿者/ TomTom -(2005/04/27(Wed) 09:04:56) [ID:JVLcDIFR]
    TomTomです。

    確かに、パイロット能力付加によるものが優先されてしまいますね。

    それではユニットのパイロット能力付加を

     パイロット能力付加="盾防御最大回数Lv5=非表示"

    として、プロローグイベント及びターンイベントなど、回数が回復するタイミングで

    ForEach 味方 全て
    If Skill(PilotID(), 盾防御最大回数) > 0 Then
    SetSkill PilotID() 盾防御回数 Skill(PilotID(), 盾防御最大回数)
    EndIf
    Next

    このように「盾防御回数」のレベルをSetSkillコマンドで「盾防御最大回数」と合わせれば良いかと思います。
    (Include.eve内に常時ラベルのプロローグとして上記処理を書き込んでおけば、
     インターミッションのユニットステータスにも反映されます)
引用返信/返信 削除キー/
■16594 / inTopicNo.5)  Re[4]: ダメージが0でも回数が減る盾を擬似再現
□投稿者/ ビタミンV -(2005/04/28(Thu) 08:07:57) [ID:K6Lg1Xuc]
    返答ありがとうございます。

    まずお詫びを。前回の書き込みに誤りがありました。
    「SetSkillコマンドがパイロット能力付加を優先してしまうため」
    と書いてしまったのですが、どうもそうでない事が前回の書き込みの時点で判明していたのですが、うっかりGAMEMASTERさんの書き込みを引用してしまいました。

    提示していただいた方法なのですが、パイロット能力付加で付加した特殊能力はSetSkillコマンドで値を変動させても、Skill関数の値が変動しないようなのです。
    これを前回の時点で断っておくべきでした。
    なので、Skill関数を参照する方法全般が使えません。
    Skill関数を参照せずになんとか再現する方法は無いものでしょうか?
引用返信/返信 削除キー/
■16595 / inTopicNo.6)  Re[5]: ダメージが0でも回数が減る盾を擬似再現
□投稿者/ TomTom -(2005/04/28(Thu) 08:48:20) [ID:JVLcDIFR]
    TomTomです。

    >提示していただいた方法なのですが、パイロット能力付加で付加した特殊能力は
    >SetSkillコマンドで値を変動させても、Skill関数の値が変動しないようなのです。
    >これを前回の時点で断っておくべきでした。
    >なので、Skill関数を参照する方法全般が使えません。

    誤解があるようですが、私が提示した方法は

    ・「パイロット能力付加=盾防御最大回数=非表示」で付加するのは、あくまで最大値のみ(操作はしない)
    ・盾の使用回数回復時にSetSkillで「盾防御回数」のレベルを「盾防御最大回数」と同じにする。

    と言うものです。「盾防御回数」は「パイロット能力付加=盾防御回数」で付加しません。
    パイロット能力付加を直接には介さないので、SetSkillでレベルを変動させても
    Skill関数で正常に値の取得が出来るはずです。
引用返信/返信 削除キー/
■16596 / inTopicNo.7)  Re[6]: ダメージが0でも回数が減る盾を擬似再現
□投稿者/ ビタミンV -(2005/04/28(Thu) 16:58:15) [ID:K6Lg1Xuc]
    いくつか勘違いが重なってしまったようです。すみませんでした。
    提示していただいた方法で見事に再現することが出来ました。本当にありがとうございます。

    ここからは余談になってしまうのですが、なぜプロローグイベントで処理を行うとインターミッションに反映されるのでしょうか?
    プロローグ→スタート→エピローグ→インターミッション→プロローグ…
    という流れだと把握しているのですが、プロローグイベントを常時ラベルにすると何か特殊な処理が行われるのでしょうか?
引用返信/返信 削除キー/
■16598 / inTopicNo.8)  Re[7]: ダメージが0でも回数が減る盾を擬似再現
□投稿者/ TomTom -(2005/04/28(Thu) 21:44:00) [ID:mc0S8D3Q]
    TomTomです。

    >という流れだと把握しているのですが、プロローグイベントを常時ラベルにすると何か特殊な処理が行われるのでしょうか?

    何も特殊な処理というのはありませんが、ユニットステータス表示なども内部的には他のeveファイルと同じなので、
    参照できる範囲内に常時ラベルのプロローグイベントがあればそれらも実行されることになります。

    タイミング的に一番早く実行されるのは「Lib\Include.eve」なので、ここに記述しておくのが良いかもしれません。
引用返信/返信 削除キー/
■16599 / inTopicNo.9)  Re[8]: ダメージが0でも回数が減る盾を擬似再現
□投稿者/ ビタミンV -(2005/04/28(Thu) 23:51:06) [ID:K6Lg1Xuc]
    なるほど、ユニットステータス等もeveファイルでしたね。忘れていました、納得です。
    色々と教えて頂き、ありがとうございました。

解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -