【解決】アクターの並び順入れ替えについて

ヴンヴン丸
記事: 7
登録日時: 2019年1月03日(木) 18:41

【解決】アクターの並び順入れ替えについて

投稿記事by ヴンヴン丸 » 2019年3月24日(日) 01:32

こんにちわ。
現在作っているイベントで行き詰ってしまったので質問させて頂きます。

Yana様のSceneFormationを使用している前提で
あるアクター(A)がPT内にいる場合、その師匠的なキャラ(Z)が戦闘に参加する(AとZのアクターが入れ替わる)
といったイベントを組みたいのです。
戦闘中の他のアクターの並び順は変更せず、純粋にAの居た場所にZを入れたいのです。
(入れ替わり等の処理は全てコモンイベントで処理しています)

今の状態は…
パーティーにB.D.A.C.と四人いて、控えのメンバーがE.F.といる状態で
戦闘中にAが抜けて、新たにZが戦闘に加わる。とコモンイベントで単純にメンバーの入れ替えを行うと
B.D.A.C.【E.F.】 → B.D.C.E.【F.Z.】 となってしまいます…

スクリプトでできそうだな…とは思っているのですが、残念ながら勉強不足で答えが出せませんでした。

解決方法を教えて頂ける方の返信をお待ちしています。
最後に編集したユーザー ヴンヴン丸 on 2019年3月25日(月) 23:59 [ 編集 1 回目 ]

アバター
剣崎 宗二
記事: 681
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: アクターの並び順入れ替えについて

投稿記事by 剣崎 宗二 » 2019年3月24日(日) 19:45

お疲れ様です。
ヴンヴン丸様の方である程度スクリプトの知識があるという前提で、簡易に回答させて頂きます。

・パーティーに誰が加わっているかに関しては、$gameParty._actorsにIDの配列と言う形で格納されております。
その為、indexOfで削除目標とするIDが何番目にあるかを確認した上で、spliceを使って1要素差し替えを行えば問題ないと考えます。
(プラグインを入れないデフォルトの状態であればこれで十分です)

・但し、「Yana様のSceneFormation」についてはリンクが無かった為中身を見ておらず、この方法で影響が出るかどうかについては判断できません。

以上、よろしくお願いいたします。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
ヴンヴン丸
記事: 7
登録日時: 2019年1月03日(木) 18:41

Re: アクターの並び順入れ替えについて

投稿記事by ヴンヴン丸 » 2019年3月25日(月) 00:15

>>剣崎 宗二 様
返信ありがとうございます。

Yana様のSceneFormationのリンクを張ります
https://www6.atwiki.jp/pokotan/pages/3.html

勘違いをさせてしまうような書き方をしてしまったので申し訳ないのですが、スクリプトの知識は全くありません。強いて言うならば、他のサイトやツクマテの質問と回答をみておっかなびっくりやっています。

ですが、処理の仕方というか全体像は見えてきた気がします。

・パーティーに誰が加わっているかに関しては、$gameParty._actorsにIDの配列と言う形で格納されております。
その為、indexOfで削除目標とするIDが何番目にあるかを確認した上で、spliceを使って1要素差し替えを行えば問題ないと考えます。

剣崎さんが教えて頂いた方法を私なりに解釈すると、
1.コモンイベントからスクリプトを使用し、$gameParty._actorsの配列から抜きたいアクターの番号をindexOfで何番目にあるかを調べる
2.コモンイベントで抜きたいアクターを抜く処理を行う
3.コモンイベントからスクリプトで入れたいアクターを1.で調べた箇所に入れる

これで良いでしょうか?

今改めてrpg_managersのJSファイルを見てきたのですが、何となく目星はつけれましたが、どういったコマンドを使えば処理できるのかがわかりません。
後学の為にもお教え頂ければ幸いです。
アバター
剣崎 宗二
記事: 681
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: アクターの並び順入れ替えについて

投稿記事by 剣崎 宗二 » 2019年3月25日(月) 11:44

正確には、全てのステップがスクリプト内で行われ、尚且つステップ2と3が同じコマンドで行われる形となります。
具体的には以下の形式となります。(出先ゆえにコードのテストをしていない為、ミスがあったりしたら申し訳ございません)

コード: 全て選択

var index = $gameParty._actors.indexOf(PT離脱者ID);
$gameParty._actors.splice(index, 1, PT加入者ID);


例えばID3のキャラクターをID10のキャラクターに差し替える場合、

コード: 全て選択

var index = $gameParty._actors.indexOf(3);
$gameParty._actors.splice(index, 1, 10);

となります。

spliceコマンドの詳細については以下をご参照ください。
https://developer.mozilla.org/ja/docs/W ... ray/splice


尚SceneFormationの動作についてはざっくりと見てみましたが、単に入れ替えのSceneを追加するのみであり隊列自体の仕組みには影響しないと判断した為、問題ないかと考えます。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
ヴンヴン丸
記事: 7
登録日時: 2019年1月03日(木) 18:41

Re: アクターの並び順入れ替えについて

投稿記事by ヴンヴン丸 » 2019年3月25日(月) 20:49

>>剣崎 宗二 様
返信ありがとうございます。
今教えて頂いたスクリプトを試し、希望通りの動きが出来ました!
ありがとうございます!

また、スクリプトのコマンド詳細もとても参考になります。
すぐに使いこなせる様にはならないかと思いますが、少しづつ勉強していこうと思います。

重ね重ね、ありがとうございました!

“MV:質問” へ戻る