【解決済】標準で実装されている強化と弱化の変換を行うスキルを作りたい

あのにー
記事: 20
登録日時: 2020年10月31日(土) 17:39

【解決済】標準で実装されている強化と弱化の変換を行うスキルを作りたい

投稿記事 by あのにー »

お世話になっております。
現在作成中のゲームにて、ツクールにデフォルトで実装されている「弱化」を「強化」に、「強化」を「弱化」にする、それぞれ異なるスキルを作成しようとしています。

以下、弱化を「↓」、強化を「↑」と表記します

例えば、弱化を強化に変換するスキルの場合、
対象(アクター・エネミー問わず)が、HP↓↓、攻撃・魔攻↓、魔防↑を受けている時に、
このスキルを誰かが(自分・自分以外のアクター・エネミー問わず)を対象に発動すると、
HP↑↑、攻撃・魔攻↑、もともとあった魔防↑になる、といったものです。

強化を弱化に変換するスキルは、上記のスキルの完全に真逆なスキルということになります(HP↑↑、攻撃・魔攻↑ 、魔防↓→ HP↓↓、攻撃・魔攻↓、魔防↓)。

纏めると、
・強化を弱化、弱化を強化に変換するそれぞれ独立したスキルを作りたい
・強化を弱化に変換する際、もともとあった弱化は消滅・強化してはならない
・弱化を強化に変換する際、もともとあった強化は消滅・弱化してはならない

よろしくお願いします。

2020.12.08 追記
「強化」「弱化」がデフォルトで実装されている、2段階まで重ねがけ可能な効果であることの追記

同日 20:43 追記
プラグイン制作依頼スレッドにも依頼をしており、
そちらでも無理そうであれば、コモンイベントやステートを使った方法を採択したいと思います。
↓該当の投稿↓
viewtopic.php?t=10465
最後に編集したユーザー あのにー [ 2020年12月22日(火) 02:05 ], 累計 3 回
アバター
ムノクラ
記事: 2118
登録日時: 2018年2月23日(金) 11:41
連絡する:

Re: 強化↔弱化の変換を行うスキルを作りたい

投稿記事 by ムノクラ »

あのにー さんが書きました:お世話になっております。
現在作成中のゲームにて、弱化を強化に、強化を弱化にする、それぞれ異なるスキルを作成しようとしています。

以下、弱化を「↓」、強化を「↑」と表記します

例えば、弱化を強化に変換するスキルの場合、
対象(アクター・エネミー問わず)が、HP↓↓、攻撃・魔攻↓、魔防↑を受けている時に、
このスキルを誰かが(自分・自分以外のアクター・エネミー問わず)を対象に発動すると、
HP↑↑、攻撃・魔攻↑、もともとあった魔防↑になる、といったものです。

強化を弱化に変換するスキルは、上記のスキルの完全に真逆なスキルということになります(HP↑↑、攻撃・魔攻↑ 、魔防↓→ HP↓↓、攻撃・魔攻↓、魔防↓)。

纏めると、
・強化を弱化、弱化を強化に変換するそれぞれ独立したスキルを作りたい
・強化を弱化に変換する際、もともとあった弱化は消滅・強化してはならない
・弱化を強化に変換する際、もともとあった強化は消滅・弱化してはならない

よろしくお願いします。
つまり、ステートが反転するスキルを作りたいということですよね?

下記でできそうな気がします。

日本語版 VE State Replace プラグイン Ver1.00
ステートを別のステートに置換したり、式で詳細にカスタマイズできるプラグイン
https://fungamemake.com/archives/9854
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
あのにー
記事: 20
登録日時: 2020年10月31日(土) 17:39

Re: 強化↔弱化の変換を行うスキルを作りたい

投稿記事 by あのにー »

ムノクラ さんが書きました: つまり、ステートが反転するスキルを作りたいということですよね?

下記でできそうな気がします。

日本語版 VE State Replace プラグイン Ver1.00
ステートを別のステートに置換したり、式で詳細にカスタマイズできるプラグイン
https://fungamemake.com/archives/9854
ムノクラ様
申し訳ありません、今回の「強化」「弱化」とは、RPGツクールMVに標準で実装されている、デフォルトで2段階まで重ねがけすることが出来るものです。

私の投稿に書き漏れがあったことを、当該投稿の訂正とともに、深くお詫び申し上げます。
アバター
ムノクラ
記事: 2118
登録日時: 2018年2月23日(金) 11:41
連絡する:

Re: 強化↔弱化の変換を行うスキルを作りたい

投稿記事 by ムノクラ »

あのにー さんが書きました:
ムノクラ さんが書きました: つまり、ステートが反転するスキルを作りたいということですよね?

下記でできそうな気がします。

日本語版 VE State Replace プラグイン Ver1.00
ステートを別のステートに置換したり、式で詳細にカスタマイズできるプラグイン
https://fungamemake.com/archives/9854
ムノクラ様
申し訳ありません、今回の「強化」「弱化」とは、RPGツクールMVに標準で実装されている、デフォルトで2段階まで重ねがけすることが出来るものです。

私の投稿に書き漏れがあったことを、当該投稿の訂正とともに、深くお詫び申し上げます。
自分もその想定でした。
(公式の仕様の方を勘違いしていました…てっきりステートになっているのかと)
ですので、質問文はちょっと分かりにくかったですが(各ステートのスクリーンショットがあったら直感的だとは思いましたが)、理解できていると思います。

1.デフォルトのスキル「ウェポンカース」が1回かかっている。
2.スキル「バフチェンジ(仮)」を使用する。
3.「ウェポンブレス」が1回かかっている状態になる。

ような動作を攻撃力・防御力等の複数要素を変化させたいということですよね?

下記の記事をお借りすると
http://www.werepanda.jp/blog/plugin/20201122225821.html

「能力値8個×強弱2種で計16個」の強弱を反転するスキルを作りたいということですよね?


自分の説明が足りなかったと思います。

先のVE State Replaceですが、和訳時に簡単なテストをしたっきりなので、明確な記憶ではありませんし、詳細な動作検証はしていませんが、下記のような動作を想定していました。

1.各バフ・デバフにの効果をステート付与に変更する。
VE State Replaceと連動するように、重ねがけしたら上のステートになるようにメモを付けます。
上記の通り16種類のステートになるでしょう。
2.スキル「バフチェンジ(仮)」で反転するスイッチとなるステートを付与する。

のような手法を考えたのですが、結構手間がかかりますね。
VEシリーズはメンテンスされなくなって久しいので、シンプルに反転だけなら新しいプラグイン作成依頼をしたほうが良いかも知れません。
(そのような機能の既存プラグインを見かけた記憶がないので)

BuffRateをDebuffRateとを入れ替えるスキルを作れるプラグインになると思います。
(そう書いたほうが伝わるかと…ムノクラでは作れないですが、作れる人は15分くらいで作れそうな気がしてきました…)

希望が上記で合っているならプラグイン作成リクエストをしてみると良いと思います。
(自分も挑戦してみますが、初学者の上に戦闘関連はまったく不勉強で苦手ジャンルです)


ちなみに、コモンイベントを使用して、実現する方法もありますが、相当に面倒な処理になると思います。
例えば、バトルイベントの最初のターンに各アクターの攻撃力を変数に入れておき、どれだけ上がっているのか、現在の攻撃力と比較して、効果を決定するなど…
(条件分岐にステートは選べても、バフ・デバフの状態は選べないので、こういう方法しかなさそうな気がします。スクリプトで取得できれば別ですが)
この方法を使うにしても、バフ・デバフ状態をステートにしておいたほうが作りやすくなると思います。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
あのにー
記事: 20
登録日時: 2020年10月31日(土) 17:39

Re: 強化↔弱化の変換を行うスキルを作りたい

投稿記事 by あのにー »

ムノクラ さんが書きました: 1.デフォルトのスキル「ウェポンカース」が1回かかっている。
2.スキル「バフチェンジ(仮)」を使用する。
3.「ウェポンブレス」が1回かかっている状態になる。

ような動作を攻撃力・防御力等の複数要素を変化させたいということですよね?

下記の記事をお借りすると
http://www.werepanda.jp/blog/plugin/20201122225821.html

「能力値8個×強弱2種で計16個」の強弱を反転するスキルを作りたいということですよね?
はい、そういうことになります。

ムノクラ さんが書きました: シンプルに反転だけなら新しいプラグイン作成依頼をしたほうが良いかも知れません。
(そのような機能の既存プラグインを見かけた記憶がないので)

BuffRateをDebuffRateとを入れ替えるスキルを作れるプラグインになると思います。
(そう書いたほうが伝わるかと…ムノクラでは作れないですが、作れる人は15分くらいで作れそうな気がしてきました…)

希望が上記で合っているならプラグイン作成リクエストをしてみると良いと思います。
(自分も挑戦してみますが、初学者の上に戦闘関連はまったく不勉強で苦手ジャンルです)
分かりました、プラグイン制作依頼のスレッドにもアドバイスを求めてみたいと思います。
勉強にもなるので、私も挑戦してみます。

コモンイベントやVE State Replaceを使った方法は、
プラグイン制作の方が上手くいかなかった場合にとってみます。
プラグイン完成の際は、この投稿の題名変更に加えて、その投稿へのリンクを掲載する予定です。

アドバイス、ありがとうございました。
sally
記事: 119
登録日時: 2019年8月06日(火) 05:11

Re: 標準で実装されている強化と弱化の変換を行うスキルを作りたい

投稿記事 by sally »

トピックを拝見してコモンイベントの再現方法を探りましたが、強化(弱化)を付与する方法ですと自分の技量では再現ができませんでした。

強化(弱化)はスキル効果にしか存在しないためスクリプトが必須になるのですが、
・強化(弱化)段階の判別手段
・効果ターンの判別と付与手段
がリファレンスを探っても見あたらなかったためです。

なので、こうすればできるはずという理屈になってしまいますが、
構造的には強化(弱化)バフがかかっているかで条件分岐し、かかっていれば強化を解除して弱化を付与する
という方法にて再現は可能かと思います。

仮にステートを用いて下げる方法を使ってもよいのであれば、
hizさんのHzExState(https://hiz-tkool.tumblr.com/post/144395027735/hzexstatejs)
にて可能です。

こちらのプラグインですと、
ステートxがかかっている時にx重ねがけでxxに変わる
ステートxがかかっている時にyがかかるとzに変わる

といった処理が可能ですので、各強化と弱化を段階別に2つずつ16種類と、強化反転・弱化反転のステートの計18種類を作成。
こうすれば、強化ステートがかかっている時に強化反転ステートがかかると弱化に変わる、といった処理が可能になるかと思います。

ご期待のお答ができず誠に申し訳ありませんが、
ご参考になりましたら幸いです。
あのにー
記事: 20
登録日時: 2020年10月31日(土) 17:39

Re: 標準で実装されている強化と弱化の変換を行うスキルを作りたい

投稿記事 by あのにー »

sally様
アドバイスの方、ありがとうございます。
コモンイベントやステートを使った方法は、先に記載した通り
プラグイン制作依頼スレッドの方でも無理そうであれば実施させていただきます(本文に追記すればよかったですね……)。

ただ、HzExStateはほかの自分のやりたいこととも一致していたので、ありがたく使わせていただきます!
ありがとうございます。
ecf5DTTzl6h6lJj02
記事: 715
登録日時: 2018年12月23日(日) 13:55

Re: 標準で実装されている強化と弱化の変換を行うスキルを作りたい

投稿記事 by ecf5DTTzl6h6lJj02 »

こんばんは。
sally さんが書きました:強化(弱化)はスキル効果にしか存在しないためスクリプトが必須になるのですが、
・強化(弱化)段階の判別手段
・効果ターンの判別と付与手段
がリファレンスを探っても見あたらなかったためです。
アクターにかかっている 強化、弱体の状態は、

コード: 全て選択

$gameActors.actor(x)._buffs	// xはアクター番号

コード: 全て選択

$gameParty.battleMembers()[x]._buffs 		// xはバトルメンバー内でのインデックス番号(0発進)
などとすることで、配列を取得できます。
(配列の内容は先頭を0として、順番に、最大HP、最大MP、攻撃力、防御力、魔法力、魔法防御、敏捷性、運)
この配列には、強化であれば正の数、弱体であれば負の数が入っているので、符号を反転してしまえば、
そのまま、逆の効果となります。

ちなみにですが、弱体、強化の有効ターン数は、上記コードの _buffs の部分を _buffTurns に変えれば取得できます。
あのにー
記事: 20
登録日時: 2020年10月31日(土) 17:39

Re: 標準で実装されている強化と弱化の変換を行うスキルを作りたい

投稿記事 by あのにー »

ecf5DTTzl6h6lJj02 さんが書きました: この配列には、強化であれば正の数、弱体であれば負の数が入っているので、符号を反転してしまえば、
そのまま、逆の効果となります。
ecf5DTTzl6h6lJi02様
ということは、(強化→弱化で考えると、)配列内の正の値のみを条件分岐などで負の値に変えてあげれば、ターンはそのままに弱化変換ができる、ということでよろしいですか?
ecf5DTTzl6h6lJj02 さんが書きました: ちなみにですが、弱体、強化の有効ターン数は、上記コードの _buffs の部分を _buffTurns に変えれば取得できます。
弱化も_buffTurnsであるならば、もしやホントに負の値にするだけで実現が……!?
ecf5DTTzl6h6lJj02
記事: 715
登録日時: 2018年12月23日(日) 13:55

Re: 標準で実装されている強化と弱化の変換を行うスキルを作りたい

投稿記事 by ecf5DTTzl6h6lJj02 »

あのにー さんが書きました: ecf5DTTzl6h6lJi02様
ということは、(強化→弱化で考えると、)配列内の正の値のみを条件分岐などで負の値に変えてあげれば、ターンはそのままに弱化変換ができる、ということでよろしいですか?
はい、理論的に、そうなるはずです。
(ただ、単純に反転させる処理しか行わないと、ステータス表示が正しく変更されない可能性が高いですが)

追記:
反転させた後に、そのアクターに対してrefresh()関数 を実行して、そのあと、(バトル中の)ステータス表示ウィンドウに対してもrefresh()を実行してやる必要があります。
ウィンドウのrefresh()の実行は、

コード: 全て選択

SceneManager._scene._statusWindow.refresh()
で、できるはず。
返信する

“MV:質問”に戻る