検索
現代SFRPG「重力ルーペ/探求リバーブ」

ドラマティックRPG「バンドワゴン」

ハートフルRPG「地図の時間」

ビジュアルノベル「日向と香水」

ノベル×ADV「ストーリーテラー」 title1_2.png
カテゴリ
リンク集
【スポンサードリンク】

【ツクール新作】




【創作全般】






シナリオ制作


設定作り


最近読んでよかった本五選





創作意欲を掻き立てる本


自己管理術


クリエイター向けノウハウ

2017年01月08日

名前入力時に他アクターの名前使用を防ぐ

◆名前入力時に他アクターの名前使用を防ぐ

■問題点
デフォルトの名前入力イベントでは、任意の名前を設定できます。
一方で、他のアクターと名前が重複してしまう恐れがあります。

20161224_125.jpg

名前のやりなおしができない作品の場合、メニューを開くたびに辛い思いをすることになります。

■解決手順
ご紹介するイベントを実装することで、データベースに登録されているアクター名を禁止することができます。

20161224_127.jpg
※例はパッと思いついた順です

これはアクター1番の名前に対して、実装する場合のイベントです。


◆ラベル:やりなおし
◆名前入力の処理:ハロルド, 8文字
◆条件分岐:スクリプト:$dataActors.some(function(actor){return actor && $gameActors.actor(1)._name === actor.name && actor.id !== 1})
 ◆SEの演奏:Buzzer1 (90, 100, 0)
 ◆文章:なし, ウィンドウ, 下
 :  :その名前は既に使われています
 ◆ラベルジャンプ:やりなおし
 ◆
:分岐終了


20161224_126.jpg

■実装結果
アクター1番(ハロルド)がテレーゼの名前を使おうとすると
20161224_128.jpg

ブザー音が鳴り、やり直すようにメッセージが表示されます
20161224_129.jpg

■その他
もしアクター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はマーシャとなります。

20161224_130.jpg

■謝辞
情報提供者:terunonさん、奏 ねこまさん
※お二人ともありがとうございました!
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
http://fanblogs.jp/tb/5802723
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック