【済】エネミーのIDを変数に

Abstain company

【済】エネミーのIDを変数に

投稿記事by Abstain company » 2016年11月07日(月) 12:29

プラグインのリクエストとは少し違うと思ってこちらで。
戦闘中、イベントコマンド「スクリプト」でエネミーのIDを変数に入れるコマンドを欲しております。
デフォルトで言うなら、スライムの時は 2、オークなら 3の値を返すというものです。
無論、変身したら変身後のIDが入る様に。
何卒ご教示下さい。
最後に編集したユーザー Abstain company on 2016年11月07日(月) 20:55 [ 編集 1 回目 ]

アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: エネミーのIDを変数に

投稿記事by まっつUP » 2016年11月07日(月) 17:56

Abstain company様
お世話になります。

具体的にどのエネミーのIDを入れたいのかが分からなかったので
敵グループの0番目にいるメンバーのデータベース上のIDを取得する方法を貼ります。
例ではコンソールに取得した値を表示します。

(スクリプトコマンド)
console.log($gameTroop.members()[0]._enemyId);
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
Abstain company

Re: エネミーのIDを変数に

投稿記事by Abstain company » 2016年11月07日(月) 20:10

まっつUP様
教えて頂いてなんですが、これだけではまだわかりません。
コンソールってどこにある何なんでしょう!?
(プログラムの専門用語に関しては当方まったく無知です)
より具体的な使用手順の御教示をお願い致します。

>具体的にどのエネミーのIDを入れたいのかが分からなかったので
どのエネミーも(コマンド中の値を変えれば)入れられる汎用性のあるコマンドを希望しております。

[追記]
console.logの事を調べて来ました。これを使われても困ります。
私はプラグインを作ろうとしているのではありません。
飽くまでイベントコマンドとして使えるものが欲しいだけです。
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: エネミーのIDを変数に

投稿記事by まっつUP » 2016年11月07日(月) 20:50

イベントコマンド「変数の操作」でオペランドに「スクリプト」を選択します。
以下のようになるようにしてください。
◆変数の操作:#0001 = $gameTroop.members()[0]._enemyId;
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
Abstain company

Re: エネミーのIDを変数に

投稿記事by Abstain company » 2016年11月07日(月) 20:54

まっつUP様
うまくいきました!
こちらこそ(プラグイン作成するものと)誤解を招く書き方ですみませんでした。
ありがとうございました!
Zakky
記事: 2
登録日時: 2021年6月07日(月) 00:26

Re: エネミーのIDを変数に

投稿記事by Zakky » 2021年12月07日(火) 16:41

まっつUP さんが書きました:イベントコマンド「変数の操作」でオペランドに「スクリプト」を選択します。
以下のようになるようにしてください。
◆変数の操作:#0001 = $gameTroop.members()[0]._enemyId;


横から失礼します。
ご参考にさせていただき、自分の問題もなんとかできました。

変数 = $gameTroop.members()[$gameTroop.members([BattleManager._subject._lastTargetIndex].index()]._enemyId;

これで変数へ敵IDを入れることができました。
(味方アクターが対象になるとおかしくなるので、対象が敵バトラーである条件分岐する必要はあるようですね。)

上記の式で冗長なところがあれば、ご指摘いただけるとあ
名無し蛙
記事: 302
登録日時: 2015年11月23日(月) 02:46

Re: 【済】エネミーのIDを変数に

投稿記事by 名無し蛙 » 2021年12月07日(火) 19:39

)が欠けてる部分がある、というツッコミは置いておいてこの式が正しいと仮定するなら

コード: 全て選択

$gameTroop.members()[BattleManager._subject._lastTargetIndex].enemyId();

で十分だと思います。

日本語に直すなら提示されたコードが
現在行動者(BattleManager._subject)が最後に対象を取ったバトラーのindex(._lastTargetIndex)を元にトループからエネミーを取得し、そのインデックスからトループからエネミーを取得し、そのエネミーIDを取得。
という同じオブジェクトを指す重複表現があるのでそれを削除しました。
あとついでにエネミーIDを取得する時は._enemyIdよりも.enemyId()の方が良いのですが
まぁ、他の._subjectや._lastTargetIndexにも触ってるし誤差ですね。

“MV:質問” へ戻る