このスクリプトの評価と改良をお願いします!
#include "user32.as"
scr =2
*start
bgscr 0,ginfo(20),ginfo(21),0,0,0 : hParent = hwnd//ブルースクリーンで埋め尽くす
color 0,0,255 : boxf
exist "password.tlt"
if strsize = -1 : gosub *npass//パスワードファイルがない場合作成する
title "プライバシー保護"//タイトルなしは寂しいので枠なしでもやっておくべき
*primary
scr = scr+1//何回も新規ユーザー登録した際にscreenが効くようにするため
gsel 0 : color 255,255,255
notesel data
noteload "password.tlt"
nmax = noteinfo(0)
pos 260,260 : font "System",40,0
mes "一時的に退席しています。"
mes "プライバシーの侵害になるため、"
mes "マウス及びキーボードに触れないでください。"
font "",20 : objsize 450,22
acow = ""
pass = ""
repeat notemax
if cnt\2 == 1 : continue
noteget name,cnt
acow = acow+"\n"+name
loop
pos 240,420
mes"ユーザー名、パスワードを入力してください。"
font "",20 : pos 180,443 : mes "ユーザー名\n\nパスワード"
color 0,0,0 : boxf 288,481,740,504
pos 290,444 : combox acc,40,acow
pos 290,482 : input pass
hInput = objinfo(stat, 2)
sendmsg hInput, $CC, '*'//パスワードのところは*で隠す
objsize ,22
pos 768,444
button "ログオン",*log_on
button "新規作成",*npass
button "再起動",*start
*main
onexit gosub *main//Alt+F4で消えないようにする
objsel 1//パスワードにカーソルが合う
sdim psw,100//パスワードを格納する変数に100バイトの空きを用意
repeat //↑これで50文字までのパスワードに対応、動作を軽快に
if acc ! syspass {//変数syspassは元々存在しないためこの式で通る
syspass = acc//ユーザー名の変数accが変わるとどの行を読み込むかが変わる
if syspass = 1 : noteget psw,1
if syspass = 2 : noteget psw,3
if syspass = 3 : noteget psw,5
if syspass = 4 : noteget psw,7
if syspass = 5 : noteget psw,9
if syspass = 6 : noteget psw,11
if syspass = 7 : noteget psw,13
if syspass = 8 : noteget psw,15
if syspass = 9 : noteget psw,17
if syspass = 10 : noteget psw,19
if syspass = 11 : noteget psw,21
if syspass = 12 : noteget psw,23
if syspass = 13 : noteget psw,25
if syspass = 14 : noteget psw,27
if syspass = 15 : noteget psw,29
if syspass = 16 : noteget psw,31
if syspass = 17 : noteget psw,33
if syspass = 18 : noteget psw,35
if syspass = 19 : noteget psw,37
if syspass = 20 : noteget psw,39
}
wait 1
loop
stop//保険
*npass
if nmax >= 40 :dialog "登録上限に達しています。\n新しくパスワードを作成する場合は、\n別のフォルダにソフトをコピーしてください。",1,"登録不可" : goto *main//パスワードを20個までに
screen scr ,200,130
objsize 60,24
if strsize = -1 {//ファイルがあるか無いかで区別
dialog "正式なパスワード設定ファイルがありません\n新しく設定ファイルを作成します",0,"ファイル捜索"
}else : dialog "新しくユーザー名とパスワードを設定します",0,"新規登録"
newacow = ""
newpass = ""
pos 0,0
mes " 新規パスワードの登録\n パスワード入力待ち"
font "",20 : pos 0,48 : mes " ユーザー名\n パスワード"
pos 110,48 : input newacow : input newpass
hInput = objinfo(stat, 2)
sendmsg hInput, $CC, '*'
button "登録",*bagin
stop
*log_on
if syspass = 0 : goto*main
if pass = psw{//パス入力passとパスデータpswの文字列が一致しているか確認
dialog "PCのロックを解除しました。",0,"ロック解除"
end}
dialog "パスワードが違います。",0,"パスワード入力"//このまま下にプログラムが流れるので自動的にmainに帰る
goto *main
*bagin
notesel data
noteadd newacow : noteadd newpass
notesave "password.tlt"
dialog "登録しました。"
goto *start