アイテム使用時、特定のアクターにだけ効果が異なるようにしたい

うなぎや
記事: 3
登録日時: 2021年12月16日(木) 10:35

アイテム使用時、特定のアクターにだけ効果が異なるようにしたい

投稿記事by うなぎや » 2021年12月16日(木) 11:12

お世話になります。
当方ツクール買ったばかりの初心者です。

わたしは「牛乳が苦手なキャラクター」を作ろうと思っております。
アイテム"牛乳"(HP50%回復)を特定のアクター(仮にAとします)に使った時だけ回復ではなくダメージを受けるようにしたいのです。

初心者ながら色々調べました。結果、アイテム"牛乳"の使用効果の欄でコモンイベントを呼び出し、条件分岐で"牛乳"が使用されたのがAかどうかを判断して、もし対象者がAならAにステート毒(HP回復率-10%)を付与する、そうでない場合はHPを50%回復する…という様にすれば実現できるのではないかと考えました。
が、玄人の皆様ならご存知かと思いますが条件分岐の欄に「アイテムの被使用者で分岐する」という様なものはありません。どうすればこの分岐を実現できるでしょうか。

また、そんなことをしなくてもこうすれば簡単に実現できる、といったアイディアがございましたらご教授いただければ幸いです。
よろしくお願いいたします

アバター
アーヴェル
記事: 48
登録日時: 2019年5月18日(土) 12:02

Re: アイテム使用時、特定のアクターにだけ効果が異なるようにしたい

投稿記事by アーヴェル » 2021年12月16日(木) 16:40

こんにちはー。

とりあえずデフォルトの機能で可能な形を考えました。

自分も大したことは言えないので(特にscript部分)指摘が入るかもしれませんが、
一応実機でも動作を確認しました。


例ではステート10番が牛乳のデメリット用ステートとなります。
毒のような一般ステートにする場合、
もう少し手の混んだ事をしなきゃならなそうなので割愛します。


計算式の欄に以下のように書き込むと、牛乳ステートを”無効”にしているキャラクターに対しては、
最大HPの50%回復。”無効”でないキャラクターは0回復という計算式になります。

↓計算式
b.isStateResist(10) ? b.mhp*0.5 : 0;

補足して説明します。
ダメージ計算式において b は対象者の情報を持っています。

isStateResist(10)

の部分は、そのステートを無効にすることが出来るかを判定しています。
10という数字はステート番号の指定です。判定させるステートIDが51であればこの部分は

isStateResist(51)

という記述となります。途中の ? は条件分岐であるという記述。
: の左右で結果を分けています。

? より右で : の左側である
b.mhp*0.5は、無効化出来る場合に適用される計算式となり、対象の最大HPの50%という記述です。

: の右側である 0 は、
無効化出来ない場合に適用される計算式です。

以上の計算式で、ステート10番を"無効"のキャラクターは最大HPの50%回復。
”無効”でないキャラクターは0回復という計算式になります。

何度も”無効”と書いてあるとおり、
ステート有効度を0%にするのではなく、ステート無効化である事が条件となります。


後はこれに加えて、使用効果で牛乳ステートを100%付加させると、
牛乳ステートを無効にするキャラクターは回復し、
付与される筈の牛乳ステートも自前の耐性で無効化する為かからない。

無効にできないキャラクターは回復せずにそのまま牛乳ステートにかかる。という結果となります。
後は牛乳を任意のデメリットステートにすれば完成です。


別の方法としては属性吸収系のプラグインをお借りすることで、
牛乳という属性を作ってしまえば、飲んだ瞬間に直接ダメージということにも出来るのかなと。
うなぎや
記事: 3
登録日時: 2021年12月16日(木) 10:35

Re: アイテム使用時、特定のアクターにだけ効果が異なるようにしたい

投稿記事by うなぎや » 2021年12月16日(木) 17:35

アーヴェル様

ありがとうございます!!!!!大変助かりました!
ダメージ計算式も、これはなんぞや…?と思ってたところでしたので解説していただいてめ〜ちゃくちゃありがたかったです!
ご教授いただいた計算式をアイテムに設定して牛乳ステートの付与を付け、特定のキャラ以外に牛乳ステート無効を付けると見事に特定のキャラにはダメージ、それ以外のキャラはHPの50%回復いたしました!

ありがとうございます…本当に…

“MZ:質問” へ戻る