; Messy source? .. hum.. who gives a shit?
STRING NAME,K, NUPPER, PAGER, NUPPIE, NUP, F, PWD, CHATPPE
BOOLEAN USENUP, USEPAGE
INTEGER CHOSEN, TRIES, X, MAXTRIES, pwdtries, Y
PRINT "@POFF@"
FOPEN 0, PPEPATH()+"LOGIN.CFG", O_RW, S_DB
FGET 0, NUPPER
FGET 0, PAGER
FGET 0, CHATPPE
FGET 0, NUPPIE
FGET 0, MAXTRIES
FCLOSE 0
IF (UPPER(NUPPER) = "NO") THEN USENUP = TRUE
ELSE USENUP = FALSE
endif
IF (UPPER(PAGER) = "NO") THEN USEPAGE = TRUE
ELSE USENUP = FALSE
endif
:entername
if (tries > MAXTRIES-1) then
Cls
PRINTLN "@X02TOO MANY NAME TRiES"
DTROFF
HANGUP
ENDIF
CLS
DISPFILE PPEPATH()+"LOGIN.PCB", GRAPH
Ansipos 19,4
:NotJustEnterDumbAss
INPUTSTR "_", NAME, 7, 50, MASK_ASCII()+"¢æå¥ÆÅ", UPCASE
if (NAME = "") then goto NotJustEnterDumbAss: endif
if (U_RECNUM(NAME) = -1) then
:menu
Ansipos 32,11: PRINT "@X02eSC = lOGOFF"
AnsiPos 3,9
Print "@X04|-@X02CONTiNUE@X04-@X02AS@X04-@X02NEWUSER@X04-|"
chosen = 1
:d
k = inkey()
IF (k = chr(27)) then
DISPFILE PPEPATH()+"LOGOFF.PCB", GRAPH
DTROFF
HANGUP
ENDIF
if (k = chr(13)) then goto checkwhat: endif
if (k = "RIGHT") then
inc chosen
if (chosen = 2) then
AnsiPos 3, 9
Print "@X02|-CONTiNUE-AS-NEWUSER-|"
AnsiPos 29,9
Print "@X04|----@X02RE-ENTER@X04-@X02NAME@X04----|"
chosen = 2
endif
if (chosen = 3) then
Ansipos 29,9
Print "@X02|----RE-ENTER-NAME----|"
Ansipos 55,9
Print "@X04|-----@X02PAGE@X04-@X02SYSOP!@X04-----|"
chosen = 3
endif
if (chosen = 4) then
Ansipos 55,9
Print "@X02|-----PAGE-SYSOP!-----|"
Ansipos 3,9
Print "@X04|-@X02CONTiNUE@X04-@X02AS@X04-@X02NEWUSER@X04-|"
chosen = 1
endif
endif
if (k = "LEFT") then
dec chosen
if (chosen = 2) then
Ansipos 55,9
Print "@X02|-----PAGE-SYSOP!-----|"
AnsiPos 29,9
Print "@X04|----@X02RE-ENTER@X04-@X02NAME@X04----|"
chosen = 2
endif
if (chosen = 0) then
AnsiPos 3, 9
Print "@X02|-CONTiNUE-AS-NEWUSER-|"
Ansipos 55,9
Print "@X04|-----@X02PAGE@X04-@X02SYSOP!@X04-----|"
chosen = 3
endif
if (chosen = 1) then
Ansipos 29,9
Print "@X02|----RE-ENTER-NAME----|"
Ansipos 3,9
Print "@X04|-@X02CONTiNUE@X04-@X02AS@X04-@X02NEWUSER@X04-|"
chosen = 1
endif
endif
goto d
ELSE
GetALTuser U_RECNUM(NAME)
ANSIPOS 19, 6
PRINT "@X02"+U_CITY
:pwdenter
inc pwdtries
if (pwdtries > Maxtries) then
DISPFILE PPEPATH()+"WRONGPWD.PCB", GRAPH
DTROFF
HANGUP
ENDIF
Ansipos 19,5
InputStr "_", PWD, 7, 50, MASK_ASCII()+"¢æå¥ÆÅ", ECHODOTS
if (UPPER(PWD) = UPPER(U_PWD)) THEN
ANSIPOS 19, 6
PRINT " "
GOTO LOGIN
else
ANSIPOS 19, 6
PRINT "@X04Wrong Password Entered, Tries Left : ",MAXTRIES-PwdTries
Pwd = ""
AnsiPos 19, 5
Print " "
goto PwdEnter
endif
ENDIF
:LOGIN
kbdstuff NAME+CHR(13)+CHR(13)
kbdstuff PWD+CHR(13)
CLS
goto endie
:checkwhat
if (chosen = 1) then
if (USENUP = FALSE) THEN CALL NUPPER
else
CLS
PRINTLN "@X01|-----------------------------------------------------------------------------|"
PRINTLN " @X02ENTER NUP: "
PRINTLN "@X01|-----------------------------------------------------------------------------|"
ANSIPOS 13,2
INPUTSTR "_", NUP, 7, 30, MASK_ASCII()+"¢æå¥ÆÅ", UPCASE
IF (UPPER(NUP) = UPPER(NUPPIE)) THEN
DISPFILE PPEPATH()+"CORRECT.PCB", GRAPH
ELSE
DISPFILE PPEPATH()+"WRONG.PCB", GRAPH
DTROFF
HANGUP
ENDIF
ENDIF
ENDIF
IF (Chosen = 2) then
inc tries
goto entername
endif
IF (Chosen = 3) then
CLS
PRINTLN "@X02PAGiNG SYSOP ..."
PRINTLN "@X01|-------------------------------------|"
PRINTLN ""
PRINTLN "@X01|-------------------------------------|@X02"
print "@X8F"
ANSIPOS 10,10: SPRINT "USER PAGiNG! PRESS <ENTER> TO CHAT / SPACE TO LOGOFF USER"
print "@X02"
ANSIPOS 1,3
:doodle
For x = 1 to 39
Print "·"
sound 400
For y = 1 to 25
F = KINKEY()
if (f = chr(13)) then
Sound 0
goto sysopin
endif
if (f = " ") then
Println
Print "@X07Stack Error!"
for y = 1 to 100
Print Chr(Random(255))
next
dtroff ; should hangup user..
Hangup ; just in case ;)
endif
NEXT
Sound 0
NEXT
endif
CLS
DISPFILE PPEPATH()+"LOGIN.PCB", GRAPH
goto menu
:sysopin
CALL CHATPPE
CLS
DISPFILE PPEPATH()+"LOGIN.PCB", GRAPH
GOTO MENU
:endie