【解決済み】アクターの入れ替え

返信する
yaiyai
記事: 27
登録日時: 2016年11月29日(火) 05:47

【解決済み】アクターの入れ替え

投稿記事 by yaiyai »

こんにちは。お世話になっております。
今回は戦闘中にアクターが変身スキルを使うと、別のアクターに変身する仕組みを作ろうとしたのですが、イベントでパーティーメンバーの入れ替えを行うとパーティーの並び順序が変わってしまい、イマイチ変身という感じが出せなく困っています。
パーティーの順番を保ったままn番目のアクターだけを入れ替えるということはできるでしょうか?ご教授お願いします。
最後に編集したユーザー yaiyai [ 2017年4月30日(日) 00:16 ], 累計 3 回
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡する:

Re: アクターの入れ替え

投稿記事 by トリアコンタン »

こんにちは!
イベントコマンドのスクリプトから以下のように入力します。
「actorId」は新しく入れたいアクターのID
「index」はアクターの並び順です。(0が先頭)

コード: 全て選択

var actorId = 6;
var index = 1;
if ($gameParty._actors.contains(actorId)) {
  var oldIndex = $gameParty._actors.indexOf(actorId);
  var oldActorId = $gameParty._actors[index];
  $gameParty._actors[oldIndex] = oldActorId;
}
$gameParty._actors[index] = actorId;
また、マップ画面で同様のことを行いたい場合、追加で以下のコードが必要です。

コード: 全て選択

$gamePlayer.refresh();
$gameMap.requestRefresh();
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
yaiyai
記事: 27
登録日時: 2016年11月29日(火) 05:47

Re: アクターの入れ替え

投稿記事 by yaiyai »

お早い返事ありがとうございます!大変助かりました。今後の製作に役立てます。
yaiyai
記事: 27
登録日時: 2016年11月29日(火) 05:47

Re: アクターの入れ替え

投稿記事 by yaiyai »

何度もすみません。
スクリプトを試してみたのですが、前のアクターがステートにかかっていたり強化状態になっていた場合、効果はないのにアイコンだけがそのままウィンドウに残ってしまいます。これを解決するにはどうしたらよいでしょうか?
アバター
まっつUP
記事: 1149
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: アクターの入れ替え

投稿記事 by まっつUP »

yaiyai様
お世話になります。

試していませんがスクリプトで
BattleManager.refreshStatus();
を実行するといくのでは?
RPGで笑顔を・・・

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

github
https://github.com/mattuup/RPGMakerMZ
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡する:

Re: アクターの入れ替え

投稿記事 by トリアコンタン »

こんにちは。
こちらで試してみたのですが、現象が再現できず入れ替え後にステートアイコンを含めてウィンドウの内容が更新されました。
何か別の条件があるか、他のプラグインとの競合かもしれません。

とはいえ、まっつUPさんの言うとおり以下のスクリプトでウィンドウを更新できるので
これでうまくと思います。

コード: 全て選択

BattleManager.refreshStatus();
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
yaiyai
記事: 27
登録日時: 2016年11月29日(火) 05:47

Re: アクターの入れ替え

投稿記事 by yaiyai »

わざわざ確認までしていただきありがとうございます。
プラグインとの競合が原因だったのですが、教えていただいたスクリプトで解決しました。

それから別の話になってしまうのですが、入れ替えてからの戦闘のテンポを考えて、変身したターンから行動できるようにしようと

http://torigoya.hatenadiary.jp/entry/quick_skill_mv

こちらのプラグインを使わせていただこうと思ったのですが、
TypeError : Cannot read property 'setAttack' of undefined
TypeError : Cannot read property 'setSkill' of undefined

などのエラーが出てしまいます。
やはり、ターン開始時にセットできていないアクターを行動させることは難しいのでしょうか?
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡する:

Re: アクターの入れ替え

投稿記事 by トリアコンタン »

なるほどです。競合等もあるので難しいですが、こちらの環境では元々のコードの一番下に以下のコードを追記したところ変身後のキャラクターで攻撃やスキルの使用ができました。

コード: 全て選択

$gameActors.actor(actorId).makeActions();
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
yaiyai
記事: 27
登録日時: 2016年11月29日(火) 05:47

Re: アクターの入れ替え

投稿記事 by yaiyai »

何度も何度もありがとうございます。
おかげでまさに理想のものが出来上がりました。
また機会があればお願いいたします。
返信する

“MV:質問”に戻る