名前入力時に他アクターの名前使用を防ぐ
名前入力時に他アクターの名前使用を防ぐ
問題点
デフォルトの名前入力イベントでは、任意の名前を設定できます。
一方で、他のアクターと名前が重複してしまう恐れがあります。
名前のやりなおしができない作品の場合、メニューを開くたびに辛い思いをすることになります。
解決手順
ご紹介するイベントを実装することで、データベースに登録されているアクター名を禁止することができます。
これはアクター1番の名前に対して、実装する場合のイベントです。
◆ラベル:やりなおし ◆名前入力の処理:ハロルド, 8文字 ◆条件分岐:スクリプト:$dataActors.some(function(actor){return actor && $gameActors.actor(1)._name === actor.name && actor.id !== 1}) ◆SEの演奏:Buzzer1 (90, 100, 0) ◆文章:なし, ウィンドウ, 下 : :その名前は既に使われています ◆ラベルジャンプ:やりなおし ◆ :分岐終了
実装結果
アクター1番(ハロルド)がテレーゼの名前を使おうとすると
ブザー音が鳴り、やり直すようにメッセージが表示されます
応用
もしアクターID:n番に対して実行する場合は太字の箇所を、対象のアクターIDに置き換えてください。
$dataActors.some(function(actor){return actor && $gameActors.actor(n)._name === actor.name && actor.id !== n})
例)アクターID:2番に対して実行する場合
$dataActors.some(function(actor){return actor && $gameActors.actor(2)._name === actor.name && actor.id !== 2})
アクターIDはデータベース-アクターの画面で確認できます。
画像の場合、アクターID:1はハロルド、2はテレーゼ、3はマーシャとなります。
その他
情報提供者:
terunon様
奏 ねこま様
執筆:kuro
本記事について何かありましたら@rpgmakerer_kuro宛にお知らせくださいませ
コメント