皆様
お世話になっております。
本日は、TPの増加方法について相談させてください。
私のゲームではTPを有効活用する為、様々な技を使用時にTPを消費する仕様となっております。
つまり、TPを効率的に貯めることで、大技が出しやすくなる設計です。
また、アクター(もしくは職業)毎に、バトル時にやることが違うので、個別にTPの増やし方を
変えたいと思っております。
例えば、
戦士 > 物理攻撃が主なので、攻撃するとTPが増える
魔法使い > 魔法攻撃が主なので、魔法で攻撃するとTPが増える
タンク > 防御が主なので、敵の攻撃を受けるとTPが増える
盗賊 > 盗みが主なので、敵からなにか盗むとTPが増える
僧侶 > 回復が主なので、誰かを回復するとTPが増える
バッファー > 補助が主なので、味方をバフするとTPが増える
ジャマー > 敵を状態異常にするのが主なので、敵にデバフするとTPが増える
のようにやりたいです。
yanfly様の enhansdTPを実装しましたが、細かい部分で上記が実現出来ず・・・・
【解決済み】TPの増加方法(モード)をアクター毎もしくは職業毎に変えたい
【解決済み】TPの増加方法(モード)をアクター毎もしくは職業毎に変えたい
最後に編集したユーザー maker-b [ 2019年8月04日(日) 14:14 ], 累計 1 回
Re: TPの増加方法(モード)をアクター毎もしくは職業毎に変えたい
こちら、結局YEP_EnhancedTPで実現できない各項目にはそれぞれ「詳細がないと実装できない」理由があるかと思います。
詳しく1点ずつ見ていきますと:
>戦士、魔法使い
魔法と物理攻撃の定義は如何なるものでしょうか。
命中タイプによる分岐でしたら、「必中」タイプはどちらになりますか?
>タンク
YEP_EnhancedTPにあると思います。(Take HP DMG)
>盗賊
デフォルトでは盗むという機能はなかったと思いますので、何かしらのプラグインで実現していると考えますが、そのプラグインが何であるか次第で実装方法が変わります。
>僧侶
YEP_EnhancedTPにあると思います。(Heal HP DMG)
>バッファー、ジャマー
バフとデバフをどう区分しますか?
例えば「攻撃力を上げて防御を下げる」というステートがあったとして、これはどちらの分類になりますでしょうか。
(デバフに関しては敵に掛ける物、という分類であれば、YEP_EnhancedTPに既にDeal Stateであると思います)
以上の観点から、もう少し仕様を詰めた上で、(作業量次第では有償で)どなたかに依頼する事も考慮すべきかと考えます。
詳しく1点ずつ見ていきますと:
>戦士、魔法使い
魔法と物理攻撃の定義は如何なるものでしょうか。
命中タイプによる分岐でしたら、「必中」タイプはどちらになりますか?
>タンク
YEP_EnhancedTPにあると思います。(Take HP DMG)
>盗賊
デフォルトでは盗むという機能はなかったと思いますので、何かしらのプラグインで実現していると考えますが、そのプラグインが何であるか次第で実装方法が変わります。
>僧侶
YEP_EnhancedTPにあると思います。(Heal HP DMG)
>バッファー、ジャマー
バフとデバフをどう区分しますか?
例えば「攻撃力を上げて防御を下げる」というステートがあったとして、これはどちらの分類になりますでしょうか。
(デバフに関しては敵に掛ける物、という分類であれば、YEP_EnhancedTPに既にDeal Stateであると思います)
以上の観点から、もう少し仕様を詰めた上で、(作業量次第では有償で)どなたかに依頼する事も考慮すべきかと考えます。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
Re: TPの増加方法(モード)をアクター毎もしくは職業毎に変えたい
剣崎 様
早速のご回答ありがとうございます!
確かに、要件の整理が必要ですね。
>戦士、魔法使い
魔法と物理攻撃の定義は如何なるものでしょうか。
命中タイプによる分岐でしたら、「必中」タイプはどちらになりますか?
必中タイプは
戦士>物理攻撃
魔法使い>魔法攻撃
としております。
>タンク
YEP_EnhancedTPにあると思います。(Take HP DMG)
はい、実装出来ました!ありがとうございます。
>盗賊
デフォルトでは盗むという機能はなかったと思いますので、何かしらのプラグインで実現していると考えますが、そのプラグインが何であるか次第で実装方法が変わります。
YEP_StealSnatchというyanfly様のプラグインを使っております。
>僧侶
YEP_EnhancedTPにあると思います。(Heal HP DMG)
はい、実装出来ました!ありがとうございます。
>バッファー、ジャマー
バフとデバフをどう区分しますか?
例えば「攻撃力を上げて防御を下げる」というステートがあったとして、これはどちらの分類になりますでしょうか。
(デバフに関しては敵に掛ける物、という分類であれば、YEP_EnhancedTPに既にDeal Stateであると思います)
ご指摘の通り、シンプルに、
味方にステートを付与した人>バッファー
敵にステートを付与した人>ジャマー
という設計にしたいと思います。
以上、自分の中である程度まとめました。
1 アタッカー(物理攻撃でTP UP)未実装
2 マジシャン(魔法攻撃でTP UP)未実装
3 タンク(被ダメージでTP UP)済
4 ヒーラー(味方のHPを回復させるとTP UP)済
5 バッファー(味方にステートを付与するとTP UP)未実装
6 ジャマー(敵にステートを付与するとTP UP)済
7 シーフ(敵からなにか盗むとTP UP)未実装
こんな状況となりました。最悪、1と2は、統合してもいいかな、と思っております。
早速のご回答ありがとうございます!
確かに、要件の整理が必要ですね。
>戦士、魔法使い
魔法と物理攻撃の定義は如何なるものでしょうか。
命中タイプによる分岐でしたら、「必中」タイプはどちらになりますか?
必中タイプは
戦士>物理攻撃
魔法使い>魔法攻撃
としております。
>タンク
YEP_EnhancedTPにあると思います。(Take HP DMG)
はい、実装出来ました!ありがとうございます。
>盗賊
デフォルトでは盗むという機能はなかったと思いますので、何かしらのプラグインで実現していると考えますが、そのプラグインが何であるか次第で実装方法が変わります。
YEP_StealSnatchというyanfly様のプラグインを使っております。
>僧侶
YEP_EnhancedTPにあると思います。(Heal HP DMG)
はい、実装出来ました!ありがとうございます。
>バッファー、ジャマー
バフとデバフをどう区分しますか?
例えば「攻撃力を上げて防御を下げる」というステートがあったとして、これはどちらの分類になりますでしょうか。
(デバフに関しては敵に掛ける物、という分類であれば、YEP_EnhancedTPに既にDeal Stateであると思います)
ご指摘の通り、シンプルに、
味方にステートを付与した人>バッファー
敵にステートを付与した人>ジャマー
という設計にしたいと思います。
以上、自分の中である程度まとめました。
1 アタッカー(物理攻撃でTP UP)未実装
2 マジシャン(魔法攻撃でTP UP)未実装
3 タンク(被ダメージでTP UP)済
4 ヒーラー(味方のHPを回復させるとTP UP)済
5 バッファー(味方にステートを付与するとTP UP)未実装
6 ジャマー(敵にステートを付与するとTP UP)済
7 シーフ(敵からなにか盗むとTP UP)未実装
こんな状況となりました。最悪、1と2は、統合してもいいかな、と思っております。
Re: TPの増加方法(モード)をアクター毎もしくは職業毎に変えたい
1、2については統合をお勧めします。
理由としては、YEP_EnhancedTPの仕組み上「使われた技のデータ」を参照するのが難しくなるため。
(参照できるデータは主に各種変数スイッチ等と、使用者、使用先となります)
5,6についてはコードの改造が必要となります。
まずはこちら差し替えで「使用者と使用先が同じPTの場合増加しない」の制限を解除した後、
例えば増加値がバッファー、ジャマー共に10固定だった場合、Deal Stateに
バッファーの場合:
ジャマーの場合:
と書けば宜しいのではないかと。
7は色々と面倒です。先ず、増加式/値を入れる場所がないので。
Flee Battle等、使わない式を転用するという手もありますが…
理由としては、YEP_EnhancedTPの仕組み上「使われた技のデータ」を参照するのが難しくなるため。
(参照できるデータは主に各種変数スイッチ等と、使用者、使用先となります)
5,6についてはコードの改造が必要となります。
まずはこちら差し替えで「使用者と使用先が同じPTの場合増加しない」の制限を解除した後、
コード: 全て選択
Game_Battler.prototype.chargeTpByAddState = function() {
var user = BattleManager._subject;
var target = this;
if (user) {
var value = user.getTpEval('dealState', user, this, 0);
user.gainTpmodeTp(value);
}
var value = this.getTpEval('gainState', this, user, 0);
this.gainTpmodeTp(value);
};
バッファーの場合:
コード: 全て選択
user.isActor() == target.isActor() ? 10 : 0
コード: 全て選択
user.isActor() == target.isActor() ? 0 : 10
7は色々と面倒です。先ず、増加式/値を入れる場所がないので。
Flee Battle等、使わない式を転用するという手もありますが…
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
Re: TPの増加方法(モード)をアクター毎もしくは職業毎に変えたい
剣崎 様
早速のレスありがとうございます!!!
以下内容を実装しましたら、バッファーとジャマーが想定どおりの動きでした!
ありがとうございます!
確かに、シーフは設定が面倒なので、まさにご指示頂いた通り、
アタッカーを共通化し、シーフは廃止しました!
evalは便利ですね。
勉強になりました!
ご対応ありがとうございます!
早速のレスありがとうございます!!!
以下内容を実装しましたら、バッファーとジャマーが想定どおりの動きでした!
ありがとうございます!
確かに、シーフは設定が面倒なので、まさにご指示頂いた通り、
アタッカーを共通化し、シーフは廃止しました!
evalは便利ですね。
勉強になりました!
ご対応ありがとうございます!