攻撃対象によってコモンイベントを分岐させたい

トリック
記事: 1
登録日時: 2022年5月09日(月) 20:45

攻撃対象によってコモンイベントを分岐させたい

投稿記事by トリック » 2022年5月18日(水) 22:59

敵の攻撃を受ける味方にポイントが加算されるシステムを作りたいのですがやり方がわかりません
ラストターゲットを変数に当てはめることができれば可能だと思うのですが調べても出たものはリンクが切れているようで解決できませんでした

いっその事それぞれの味方ごとに専用のスキルとイベントを作ろうと思いましたが
自分が作ってるゲームでは戦闘中に味方がパーティから外れたり戻ったりしてしまい
パーティにいない味方を攻撃しようとしたり元々二番目にいた味方を攻撃する技で元々三番目にいた味方を攻撃したりしてしまいます

スクリプトやプラグイン、あるいは無理矢理にでも攻撃対象に対応して変数を操作することはできないでしょうか

ご教授お願い致します

アバター
フラクタル
記事: 17
登録日時: 2021年12月28日(火) 15:36

Re: 攻撃対象によってコモンイベントを分岐させたい

投稿記事by フラクタル » 2022年5月19日(木) 12:38

こんにちは。

やな様の発動前コモンhttps://plugin.fungamemake.com/archives/2033及び通常のコモンイベントを用いて、スキル使用前後の対象のHPの差を利用すれば解決できるかもしれません。
以下、デフォルトの場合の動作です。

まずはスキルにBeforeCommon及び通常のコモンイベントを設定します。
次にBeforeCommonとして発動するコモンイベントに以下のスクリプトを書きます。

コード: 全て選択

for(var i=1; i<=$gameParty.members().length; i++){
    $gameVariables.setValue(i,$gameParty.members()[i-1].hp);
}
この場合、変数1~4に先頭から順のパーティメンバーのHPが代入されます。

続いて通常呼び出しのコモンイベントに以下のスクリプトを記述します。

コード: 全て選択

for(var i=1; i<=$gameParty.members().length; i++){
    if($gameVariables.value(i) > $gameParty.members()[i-1].hp){
       if($gameParty.members()[i-1] == $gameActors.actor(1)){
          $gameVariables.setValue(5,$gameVariables.value(5)+1)}
       if($gameParty.members()[i-1] == $gameActors.actor(2)){
          $gameVariables.setValue(6,$gameVariables.value(6)+1)}
       if($gameParty.members()[i-1] == $gameActors.actor(3)){
          $gameVariables.setValue(7,$gameVariables.value(7)+1)}
       if($gameParty.members()[i-1] == $gameActors.actor(4)){
          $gameVariables.setValue(8,$gameVariables.value(8)+1)}
    }
}
このコードではまず、先程保存した変数とスキル発動後のHPの比較を行っております。
そしてこの比較が異なっているとき(つまりダメージを食らったとき)、そこに位置するアクターを特定、その後アクターごとに異なる変数にインクリメントを施しています。

もっとスマートに出来そうですが、参考になれば幸いです。

“MV:質問” へ戻る