スクリプト/キーボードでのパスワード入力(履歴ID:64)
最終投稿者:
ikosami
更新:2012/03/18 09:43:24
ikosami
更新:2012/03/18 09:43:24
少し長いですが、これでキーボードでのパスワード入力ができます。
更新履歴
2011/10/31:パスワードの種類を4つ追加。
2011/08/09:パスワードがあっているのに、間違っていると出てくることがあるバグ修正。
2011/08/08:桁数を変えた時にnullが出るバグ修正&その他
2011/01/30:複数のパスワードに対応
使用例
開始スクリプト
更新履歴
2011/10/31:パスワードの種類を4つ追加。
2011/08/09:パスワードがあっているのに、間違っていると出てくることがあるバグ修正。
2011/08/08:桁数を変えた時にnullが出るバグ修正&その他
2011/01/30:複数のパスワードに対応
showImage(画像ID) #背景がないと、入力した文字が見えないことがあります・・・
deleteAllSprite()
deleteTextAll()
drawCanvas()
hideImage()
stopBGM()
speak("キーボードで入力してください。")
pasu = createArray()
#////////////////////////////////////////
pasu[0] = "0000000006" #パスワード1
pasu[1] = "0000000100" #パスワード2
keta = 10 #パスワードの桁数
pass = 2 #パスワードの数
#///////////////////////////////////////
pasyu = 0#パスワードの種類
# 0=パスワードと同じ数字か調べる
# 1=パスワード以上の数字か調べる(パスワードを1つにしてください。)
# 2=パスワード以下の数字か調べる(パスワードを1つにしてください。)
# 3=パスワードの倍数かどうか調べる
# 4=パスワードの約数かどうか調べる
# 5=(パス1≦入力≦パス2)の数字か調べる(パスワードを2つにしてください。)
#////////////////////////////////////////
loop = true
if pasyu == 1 || pasyu == 2
if pass == 1
else
speak("error\nパスワードの種類が1,2の場合は、パスワードの種類を1つにしてください。")
loop = false
end
end
if pasyu == 5
if pass == 2
else
speak("error\nパスワードの種類が5の場合は、パスワードの種類を2つにしてください。")
loop = false
end
end
su = 0 #何文字目かを表す変数
#ここから下はキーボードのキーの設定
k = createArray()
k[0] = "0";k[1] = "1";k[2] = "2";k[3] = "3";k[4] = "4"
k[5] = "5";k[6] = "6";k[7] = "7";k[8] = "8";k[9] = "9"
k[10] = "Q";k[11] = "W";k[12] = "E";k[13] = "R"
k[14] = "T";k[15] = "Y";k[16] = "U";k[17] = "I";
k[18] = "O";k[19] = "P";k[20] = "A";k[21] = "S";
k[22] = "D";k[23] = "F";k[24] = "G";k[25] = "H";
k[26] = "J";k[27] = "K";k[28] = "L";k[29] = "Z";
k[30] = "X";k[31] = "C";k[32] = "V";k[33] = "B";
k[34] = "N";k[35] = "M"
if pasyu == 0
ksk = 36
else
kk = createArray()
kk[0] = 0;kk[1] = 1;kk[2] = 2;kk[3] = 3;kk[4] = 4
kk[5] = 5;kk[6] = 6;kk[7] = 7;kk[8] = 8;kk[9] = 9
ksk = 10
end
#キーの設定ここまで
#↓入力箇所の表示
t = createText(250, 250, 400, 200)
ki = createArray()
i = 0
while i < keta
ki[i] = "-"
i = i + 1
end
setText(t, ki,"\nキーボードで入力してください。")
startInput()
#ループの開始
while loop
if hasInput()
takeInput()
i = 0
while i < ksk #すべてのキーを調べる
if isKeyDown(k[i])
if pasyu == 0
ki[su] = k[i]
else
ki[su] = kk[i]
end
su = su + 1
setText(t, ki,"\nキーボードで入力してください。")
if su == keta
loop = false
end
end
i = i + 1
end
end
waitTime(10)
end
endInput()
deleteTextAll() #表示を消す
#↓入力をひとつの変数に入れる
if pasyu == 0
p = ""
i = 0
while i < keta
p = p + ki[i]
i = i + 1
end
else
p = 0
ix = 1
i = 1
while i < keta
ix = ix * 10
i = i + 1
end
i = 0
while i < keta
p = p + (ki[i]*ix)
ix = ix / 10
i = i + 1
end
end
i = 0
answer = false
while i < pass
K = 0
if pasyu == 0
if p == pasu[i]
K = 1
end
elsif pasyu == 1
if p >= pasu[i]
K = 1
end
elsif pasyu == 2
if p <= pasu[i]
K = 1
end
elsif pasyu == 3
if p/pasu[i] == floor(p/pasu[i])
K = 1
speak(i)
end
elsif pasyu == 4
if pasu[i]/p == floor(pasu[i]/p)
K = 1
end
elsif pasyu == 5
if pasu[i] <= p && p <= pasu[i+1]
K = 1
end
end
#////////////////////////////////////////////
if K == 1
if i == 0
#パスワード1に合っていたときの処理
answer = true
elsif i == 1
#パスワード2に合っていたときの処理
answer = true
elsif i == 1
#パスワード3に合っていたときの処理
answer = true
end
end
#////////////////////////////////////////////
if pasyu == 5
i = i + 1
end
i = i + 1
end
if !answer
speak("パスワードが違います。\n入力:",p)
end
hideImage()
使用例
開始スクリプト
setVariable("銀行金", 0)
#↓預金上限額の桁数です。10なら9999999999まで。
setVariable("預金上限", 10)
#////////////////前略///////////////////
pasu[0] = getMoney() #所持金
keta = getVariable("預金上限")
pass = 1
pasyu = 2#所持金以下の数字か調べる
#////////////////中略///////////////////
if K == 1
if i == 0
speak("確かに",p,"円お預かりいたしました。")
subMoney(p)#お金を減らす
setVariable("銀行金", getVariable("銀行金")+p)
answer = true
end
end
#////////////////以下略///////////////////