スクリプト/キーボードでのパスワード入力(履歴ID:64)
最終投稿者: 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 #////////////////以下略///////////////////