ページ 11

【解決済み】マップ画面で指定した敵の行動パターンを変数に代入する方法

Posted: 2017年12月23日(土) 13:54
by ビービー
こんにちは。

現在通常のマップシーンで疑似的に戦闘をするゲームを作成したいと試みているのですが
敵の行動パターンを条件分岐で設定すると敵の数や行動パターンの種類で膨大なことになりそうです。
なのでもし表題の件が出来るのであれば製作がかなり楽になるので教えていただきたく質問させていただきます。

実際にやりたいことは以下になります。
①敵のIDを変数Aに代入
②変数Aの敵の行動パターンを特定
③行動パターンの中からレーティングの計算によって敵がおこなうであろうスキルのIDを変数Bに代入
④変数Bの値によって条件分岐

この中の②と③が主に教えていただきたい部分です。
よろしくお願いします。

Re: マップ画面で指定した敵の行動パターンを変数に代入する方法

Posted: 2017年12月23日(土) 14:31
by まっつUP
ビービー様
お世話になります。

あまりテストはしていないので不具合出ると思いますが
以下の処理でできると思います。
以下は、スクリプトコマンドで試しました。
(ゲーム変数への代入は割愛しました。)

var ene = new Game_Enemy(1,0,0);
ene.makeActions();
console.log(ene._actions);
console.log(ene._actions[0]._item._itemId);

Re: マップ画面で指定した敵の行動パターンを変数に代入する方法

Posted: 2017年12月23日(土) 15:31
by ビービー
まっつUP様
回答ありがとうございます。

可能であることがわかりひとまず安心しました。
ただ変数への代入方法がやってみたんですがうまくいきませんでした。
そちらも教えていただけると助かります。

またvar ene = new Game_Enemy(1,0,0);の1が敵のIDということでよろしいのでしょうか?

重ねての質問になり申し訳ありませんがよろしくお願いします。

Re: マップ画面で指定した敵の行動パターンを変数に代入する方法

Posted: 2017年12月23日(土) 17:41
by まっつUP
複数回行動の敵は想定していませんが
前述の(コンソール以外の)処理の最後に
$gameVariables.setValue(1,ene._actions[0]._item._itemId);
を追加しても変数1への値の代入が行われないでしょうか?
なお、プラグインは全て未導入を想定しております。
これでもまだ不可能なようなら、
状況を詳しく書いていただきたいです。
もしエラーが出ている場合はその内容もお願いします。

またvar ene = new Game_Enemy(1,0,0);の1が敵のIDということでよろしいのでしょうか?

はい、問題ありません。

Re: マップ画面で指定した敵の行動パターンを変数に代入する方法

Posted: 2017年12月23日(土) 18:14
by ビービー
再度回答ありがとうございます。

私の代入方法が見当違いなだけで
新たに教えていただいた方法で動作を確認することができました。

試しにID1,2,3のスキルにレーティングをそれぞれ5,4,3と設定した敵で試したところ
1が57、2が31、3が12とおよそ確率通りの結果が得られたので
この方法が利用できそうです。

この度はありがとうございました。