名前入力したアクターの名前を他のアクターに反映するようなプラグインは無いでしょうか?
例えば
『アクター1』というアクターに『アレックス』と名前を付けるとして
『アレックス』という名前が『アクター2』というアクターにも反映されるような感じの物があればいいのですが…
デフォルトで出来るのでしたらすみません
【解決】入力したアクターの名前を他のアクターに反映するプラグイン
【解決】入力したアクターの名前を他のアクターに反映するプラグイン
最後に編集したユーザー 白頭イワシ on 2020年10月16日(金) 20:08 [ 編集 1 回目 ]
アクターが沢山出てくるゲームが作りたい!
https://twitter.com/hakuto_iwashi
https://twitter.com/hakuto_iwashi
Re: 入力したアクターの名前を他のアクターに反映するプラグイン
自己解決しました
解決方法ですが
名前入力するキャラをID#0001、変更したいキャラをID#0002として
名前入力処理の後に、スクリプトを挿入し以下のように実施
複数指定したい時(例としてID#0002~#0005まで変えたい時)
こんな感じに増やしていけば出来ました
前提として一度パーティに入ってないといけないので、一番最初に加入と脱退の処理を入れとかないとエラーが出ます
スクリプトで実行する場合、上記の処理を行う前に
と入れておくといいかもしれません
解決方法ですが
名前入力するキャラをID#0001、変更したいキャラをID#0002として
名前入力処理の後に、スクリプトを挿入し以下のように実施
コード: 全て選択
a = $gameActors._data[1]._name
$gameActors._data[2]._name = a
複数指定したい時(例としてID#0002~#0005まで変えたい時)
コード: 全て選択
a = $gameActors._data[1]._name
$gameActors._data[2]._name = a
$gameActors._data[3]._name = a
$gameActors._data[4]._name = a
$gameActors._data[5]._name = a
こんな感じに増やしていけば出来ました
前提として一度パーティに入ってないといけないので、一番最初に加入と脱退の処理を入れとかないとエラーが出ます
スクリプトで実行する場合、上記の処理を行う前に
コード: 全て選択
//加入の処理
$gameParty.addActor(1)
$gameParty.addActor(2)
$gameParty.addActor(3)
$gameParty.addActor(4)
$gameParty.addActor(5)
//脱退の処理
$gameParty.removeActor(1)
$gameParty.removeActor(2)
$gameParty.removeActor(3)
$gameParty.removeActor(4)
$gameParty.removeActor(5)
と入れておくといいかもしれません
アクターが沢山出てくるゲームが作りたい!
https://twitter.com/hakuto_iwashi
https://twitter.com/hakuto_iwashi
- Plasma Dark
- 記事: 717
- 登録日時: 2020年2月08日(土) 02:29
- 連絡を取る:
Re: 【解決】入力したアクターの名前を他のアクターに反映するプラグイン
前提として一度パーティに入ってないといけないので、一番最初に加入と脱退の処理を入れとかないとエラーが出ます
_で始まる変数に外部からアクセスするとこういう良くないことが起こります。
アクセス用兼初期化用のメソッドがあるので、それを介してアクセスすると良いでしょう。
アクターID2, 3, 4, 5に対し、アクターID1に入力した名前を反映させたい場合は以下のように書けます。
コード: 全て選択
[2, 3, 4, 5].forEach(actorId => {
$gameActors.actor(actorId).setName($gameActors.actor(1).name());
});
加入と脱退の処理は不要になります。
Re: 【解決】入力したアクターの名前を他のアクターに反映するプラグイン
Plasma Dark さんが書きました:前提として一度パーティに入ってないといけないので、一番最初に加入と脱退の処理を入れとかないとエラーが出ます
_で始まる変数に外部からアクセスするとこういう良くないことが起こります。
アクセス用兼初期化用のメソッドがあるので、それを介してアクセスすると良いでしょう。
アクターID2, 3, 4, 5に対し、アクターID1に入力した名前を反映させたい場合は以下のように書けます。コード: 全て選択
[2, 3, 4, 5].forEach(actorId => {
$gameActors.actor(actorId).setName($gameActors.actor(1).name());
});
加入と脱退の処理は不要になります。
動作確認しました、ありがとうございます。
forEach使えばよかったんですね…まだまだ勉強不足でした。
アクターが沢山出てくるゲームが作りたい!
https://twitter.com/hakuto_iwashi
https://twitter.com/hakuto_iwashi