【ウディタ】数字入力コモン

【ウディタ】数字入力コモン コモンイベント

1~6桁の数字(パスワード)を入力できる自作コモンイベントを紹介します。

金額などの数字やパスワードを入力する場面で役立つはずです。

コモンイベント概要

1~6桁の数字(パスワード)を入力します。基本システム2に対応しています。

ウインドウ画像のみユーザーDBから読み込んでいますが、それ以外の画像やDBは使用していないので、簡単に導入して使用できます。

選択中の桁の上に表示される▼は、ルビ(振り仮名)を表示する特殊文字(\r[0~9,▼])を利用しています。

入力値

入力値は次の4つを指定します。

数値 入力内容
1 入力できる数字の桁数。1~6桁を指定可能。
2 表示位置のX座標。何も指定しなければX=160(横320pxの中央値)になる。
3 表示位置のY座標。何も指定しなければX=120(縦240pxの中央値)になる。
4 数字か文字列を選択。「0123」と入力した場合、数字選択だと「123」を戻し、文字列選択だと「0123」を戻す。

戻り値

コモンセルフ変数6の値を戻します。文字列が戻り値なので、呼び出し元でも文字列変数(システム変数4かコモンセルフ変数5~9)に代入してください。

コモンイベント詳細

桁数に応じてコモンセルフ変数21(一の位)~コモンセルフ変数26(十万の位)に数字を代入していきます。

操作方法

4方向キー(←→↑↓)、決定キー、キャンセルキーで次の操作をできます。

キー 操作内容
←→ 桁数移動。
↑↓ 0~9を選択。
決定 現在の数字で決定。
キャンセル 入力をやめる。

コマンド文

▼ 位置指定
■条件分岐(変数): 【1】 CSelf1[表示位置X] が -1 と同じ
-◇分岐: 【1】 [ CSelf1[表示位置X] が -1 と同じ ]の場合↓
|■変数操作: CSelf1[表示位置X] = 160 + 0
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf2[表示位置Y] が -1 と同じ
-◇分岐: 【1】 [ CSelf2[表示位置Y] が -1 と同じ ]の場合↓
|■変数操作: CSelf2[表示位置Y] = 120 + 0
|■
◇分岐終了◇
▼ ウインドウの横幅決定
■変数操作: CSelf60[ウインドウ横幅] = 10 + 0
■変数操作: CSelf60[ウインドウ横幅] += 8 * CSelf0[桁数]
■文字列操作:S10[[ウィンドウ画像]] = “\udb[16:0:0]”
■ピクチャ表示:1000 [中心]ウィンドウ(S10[[ウィンドウ画像]]) サイズ[CSelf60[ウインドウ横幅],30] X:CSelf1[表示位置X] Y:CSelf2[表示位置Y] / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
▼ カーソル位置初期化 1=一の位、2=十の位、…
■変数操作: CSelf40[カーソル位置] = 1 + 0
▼ 数値初期化
■変数操作: CSelf21[一の位]~CSelf26[十万の位] = 0 + 0
■ループ開始
|▼ 数値を表示
|■文字列操作:CSelf5[表示する数値] = “”
|■変数操作: CSelf70[数字表示用ループ] = CSelf0[桁数] + 1
|■回数付きループ [ CSelf0[桁数] ]回
| |■変数操作: CSelf70[数字表示用ループ] -= 1 + 0
| |■変数操作: CSelf71[数字表示用コモン番号] = CSelf70[数字表示用ループ] + 20
| |■変数操作: CSelf71[数字表示用コモン番号] += 1600000 + 0
| |■変数操作: CSelf72[数値一時保存] = V[CSelf71[数字表示用コモン番号]] + 0
| |■条件分岐(変数): 【1】 CSelf70[数字表示用ループ] が CSelf40[カーソル位置] と同じ
| |-◇分岐: 【1】 [ CSelf70[数字表示用ループ] が CSelf40[カーソル位置] と同じ ]の場合↓
| | |■文字列操作:CSelf5[表示する数値] += “\r[\cself[72],▼]”
| | |■
| |-◇上記以外
| | |■文字列操作:CSelf5[表示する数値] += “\cself[72]”
| | |■
| |◇分岐終了◇
| |■
|◇ループここまで◇◇
|■ピクチャ表示:1001 [中心]文字列[\cself[5]] X:CSelf1[表示位置X] Y:CSelf2[表示位置Y] / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100×100% / カラー R[100] G[100] B[100]
|■キー入力:CSelf50[キー入力][入力待ち] 4方向 決定(10) キャンセル(11)
|▼ 数値変更
|■条件分岐(変数): 【1】 CSelf50[キー入力] が 8 と同じ 【2】 CSelf50[キー入力] が 2 と同じ
|-◇分岐: 【1】 [ CSelf50[キー入力] が 8 と同じ ]の場合↓
| |▼ 上
| |■変数操作: CSelf71[数字表示用コモン番号] = CSelf40[カーソル位置] + 20
| |■変数操作: CSelf71[数字表示用コモン番号] += 1600000 + 0
| |■変数操作: V[CSelf71[数字表示用コモン番号]] += 1 + 0
| |■変数操作: CSelf72[数値一時保存] = V[CSelf71[数字表示用コモン番号]] + 0
| |■条件分岐(変数): 【1】 CSelf72[数値一時保存] が 10 と同じ
| |-◇分岐: 【1】 [ CSelf72[数値一時保存] が 10 と同じ ]の場合↓
| | |■変数操作: V[CSelf71[数字表示用コモン番号]] = 0 + 0
| | |■
| |◇分岐終了◇
| |■
|-◇分岐: 【2】 [ CSelf50[キー入力] が 2 と同じ ]の場合↓
| |▼ 下
| |■変数操作: CSelf71[数字表示用コモン番号] = CSelf40[カーソル位置] + 20
| |■変数操作: CSelf71[数字表示用コモン番号] += 1600000 + 0
| |■変数操作: V[CSelf71[数字表示用コモン番号]] -= 1 + 0
| |■変数操作: CSelf72[数値一時保存] = V[CSelf71[数字表示用コモン番号]] + 0
| |■条件分岐(変数): 【1】 CSelf72[数値一時保存] が -1 と同じ
| |-◇分岐: 【1】 [ CSelf72[数値一時保存] が -1 と同じ ]の場合↓
| | |■変数操作: V[CSelf71[数字表示用コモン番号]] = 9 + 0
| | |■
| |◇分岐終了◇
| |■
|◇分岐終了◇
|▼ カーソル位置変更
|■条件分岐(変数): 【1】 CSelf50[キー入力] が 4 と同じ 【2】 CSelf50[キー入力] が 6 と同じ
|-◇分岐: 【1】 [ CSelf50[キー入力] が 4 と同じ ]の場合↓
| |▼ 左
| |■変数操作: CSelf40[カーソル位置] += 1 + 0
| |■条件分岐(変数): 【1】 CSelf40[カーソル位置] が CSelf0[桁数] 超
| |-◇分岐: 【1】 [ CSelf40[カーソル位置] が CSelf0[桁数] 超 ]の場合↓
| | |■変数操作: CSelf40[カーソル位置] = 1 + 0
| | |■
| |◇分岐終了◇
| |■
|-◇分岐: 【2】 [ CSelf50[キー入力] が 6 と同じ ]の場合↓
| |▼ 右
| |■変数操作: CSelf40[カーソル位置] -= 1 + 0
| |■条件分岐(変数): 【1】 CSelf40[カーソル位置] が 0 と同じ
| |-◇分岐: 【1】 [ CSelf40[カーソル位置] が 0 と同じ ]の場合↓
| | |■変数操作: CSelf40[カーソル位置] = CSelf0[桁数] + 0
| | |■
| |◇分岐終了◇
| |■
|◇分岐終了◇
|▼ 入力終了
|■条件分岐(変数): 【1】 CSelf50[キー入力] が 10 と同じ 【2】 CSelf50[キー入力] が 11 と同じ
|-◇分岐: 【1】 [ CSelf50[キー入力] が 10 と同じ ]の場合↓
| |▼ 数値を表示
| |■文字列操作:CSelf6[出力する数値] = “”
| |■変数操作: CSelf70[数字表示用ループ] = CSelf0[桁数] + 1
| |■回数付きループ [ CSelf0[桁数] ]回
| | |■変数操作: CSelf70[数字表示用ループ] -= 1 + 0
| | |■変数操作: CSelf71[数字表示用コモン番号] = CSelf70[数字表示用ループ] + 20
| | |■変数操作: CSelf71[数字表示用コモン番号] += 1600000 + 0
| | |■変数操作: CSelf72[数値一時保存] = V[CSelf71[数字表示用コモン番号]] + 0
| | |■文字列操作:CSelf6[出力する数値] += “\cself[72]”
| | |■
| |◇ループここまで◇◇
| |■条件分岐(変数): 【1】 CSelf3[出力の種類] が 0 と同じ
| |-◇分岐: 【1】 [ CSelf3[出力の種類] が 0 と同じ ]の場合↓
| | |■変数操作: CSelf10[入力した数値] = CSelf6[出力する数値] + 0
| | |■文章:\cself[10]を入力しますか?
| | |■
| |-◇上記以外
| | |■文章:\cself[6]を入力しますか?
| | |■
| |◇分岐終了◇
| |■文章選択肢:/ 【1】はい / 【2】いいえ
| |-◇選択肢:【1】 はい の場合↓
| | |■ピクチャ消去:1000 ~ 1001 / 0(0)フレーム
| | |■ループ中断
| | |■
| |-◇選択肢:【2】 いいえ の場合↓
| | |■
| |◇分岐終了◇
| |■
|-◇分岐: 【2】 [ CSelf50[キー入力] が 11 と同じ ]の場合↓
| |■文章:入力をやめますか?
| |■文章選択肢:/ 【1】はい / 【2】いいえ
| |-◇選択肢:【1】 はい の場合↓
| | |■文字列操作:CSelf6[出力する数値] = “-1”
| | |■ピクチャ消去:1000 ~ 1001 / 0(0)フレーム
| | |■ループ中断
| | |■
| |-◇選択肢:【2】 いいえ の場合↓
| | |■
| |◇分岐終了◇
| |■
|◇分岐終了◇
|■
◇ループここまで◇◇

改造例

デフォルトの表示位置変更

「■変数操作: CSelf1[表示位置X] = 160 + 0」の160を別の数字にすると、デフォルトのX座標を変更できます。

「■変数操作: CSelf2[表示位置Y] = 120 + 0」の120を別の数字にすると、デフォルトのY座標を変更できます。

ウインドウ画像変更

「■文字列操作:S10[[ウィンドウ画像]] = “\udb[16:0:0]” 」の\udb[16:0:0]を別のファイル名などに変更すると、ウインドウ画像を変更できます。

桁数を増やす

コモンセルフ変数27以降も使えば、7桁以上の数字を入力できます。

入力値の数値1に桁数を追加する必要があります。また、「■変数操作: CSelf21[一の位]~CSelf26[十万の位] = 0 + 0」でコモンセルフ変数27以降の初期化も忘れないようにしましょう。

コモンイベントダウンロード

以下のリンクからコモンイベントをダウンロードできます。ご自由にお使いください。

数字入力コモン

【2024/05/01更新】『魄須邏(ハクスラ)』の最新バージョンは以下の画像をクリックするとダウンロードできます。現在のバージョンはVer1.0.27です。Ver1.0.6までのバージョンだと進行不能になるので、最新バージョンへの更新をお願いいたします。


魄須邏(ハクスラ)

当サイトのコメント欄は、名前やメールアドレスなどの入力なしに書き込めます。

バグのご報告をお待ちしています。どのような場面でどのような不具合が生じたのかを具体的に教えていただけると助かります。

その他のご意見やご感想なども自由に書き込んでください。

コメントは即座に公開されるわけではありませんのでご注意ください。

コモンイベント
みみずくをフォローする

コメント

タイトルとURLをコピーしました