home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PCBOARD
/
SKCHAT10.ZIP
/
SKCHAT.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-03-16
|
5KB
|
313 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
String TSTRING001(100)
String TSTRING002(100,20)
String TSTRING003(50)
String TSTRING004(20)
String STRING005
String STRING006
String STRING007
String STRING008
;------------------------------------------------------------------------------
BOOLEAN001 = 0
GetUser
INTEGER003 = 0
INTEGER002 = 0
INTEGER008 = 0
If (MinLeft() < 5) Then
PrintLn
PrintLn "Sorry @FIRST@, not enough time remaining to chat with Sy Kopath."
PrintLn
End
Endif
If (Exist(PPEPath() + "SKCHAT.DAT")) Goto LABEL001
Log "SKCHAT.DAT File Not Found!", 0
PrintLn
PrintLn "Error in SkChat setup! Please notify your Sysop."
PrintLn
End
:LABEL001
Log "Entered SKCHAT at " + Left(Time(), 5), 0
Cls
Print "@X0F"
STRING008 = "Gerry Schechter"
STRING005 = "Sy Kopath Chat v1.0 - (C) 1994 - " + STRING008
PrintLn Space((80 - Len(STRING005)) / 2) + STRING005
Print "@X0E"
If (BOOLEAN001) Then
STRING005 = "Registered to: " + ReadLine(PCBDat(), 94)
STRING007 = ReadLine(PCBDat(), 94)
PrintLn Space((80 - Len(STRING005)) / 2) + STRING005
FClose -1
GetToken INTEGER005
If (INTEGER005 == 0) Then
INTEGER005 = 300
Else
INTEGER005 = INTEGER005 * 60
Endif
Else
Delay 10
STRING007 = "UNREGISTERED VERSION"
STRING005 = "Registered to: " + STRING007
PrintLn Space((80 - Len(STRING005)) / 2) + STRING005
Delay 10
INTEGER005 = 300
Endif
INTEGER001 = Time()
If (BOOLEAN001) Goto LABEL003
If ((Left(STRING007, 1) <> "U") || (Right(STRING007, 1) <> "N")) Then
:LABEL002
PrintLn "@BEEP@ @X0C"
STRING005 = "Unauthorized Modification Of SKCHAT!"
PrintLn Space((80 - Len(STRING005)) / 2) + STRING005
Print Chr(7)
Log "Unauthorized Modification Of SKCHAT!", 0
Delay 20
Else
:LABEL003
DefColor
PrintLn
Print "Paging Sy Kopath. One moment please"
For INTEGER006 = 1 To 100
TSTRING001(INTEGER006) = ""
Next
Print "."
For INTEGER006 = 1 To 50
TSTRING003(INTEGER006) = ""
Next
For INTEGER006 = 1 To 20
TSTRING004(INTEGER006) = ""
Next
If ((Left(STRING008, 1) <> "G") || (Right(STRING008, 1) <> "r")) Goto LABEL002
If (!BOOLEAN001 && (Mid(STRING007, 2, 1) <> "N")) Goto LABEL002
If (!BOOLEAN001 && (Mid(STRING007, 5, 1) <> "G")) Goto LABEL002
:LABEL004
Inc INTEGER002
STRING005 = ""
STRING005 = ReadLine(PPEPath() + "SKCHAT.DAT", INTEGER002)
If (STRING005 == "") Then
FClose -1
PrintLn
Else
If (INTEGER002 % 25 == 0) Print "."
If (Left(STRING005, 1) == ";") Goto LABEL004
If (Left(STRING005, 1) == "@") Then
STRING006 = "@"
INTEGER004 = 1
Goto LABEL004
Endif
If (Left(STRING005, 1) == "$") Then
STRING006 = "$"
INTEGER004 = 1
Inc INTEGER003
TSTRING001(INTEGER003) = Right(STRING005, Len(STRING005) - 1)
TSTRING001(INTEGER003) = Upper(TSTRING001(INTEGER003))
Goto LABEL004
Endif
If (Left(STRING005, 1) == "!") Then
STRING006 = "!"
INTEGER004 = 1
Goto LABEL004
Endif
If (STRING006 == "@") Then
TSTRING004(INTEGER004) = STRING005
Inc INTEGER004
Goto LABEL004
Endif
If (STRING006 == "$") Then
TSTRING002(INTEGER003, INTEGER004) = STRING005
Inc INTEGER004
Goto LABEL004
Endif
If (STRING006 == "!") Then
TSTRING003(INTEGER004) = STRING005
Inc INTEGER004
Endif
Goto LABEL004
Endif
PrintLn "@POFF@"
:LABEL005
INTEGER006 = Random(19) + 1
If (TSTRING004(INTEGER006) == "") Goto LABEL005
Print "Sy Kopath > "
Delay 2
PrintLn TSTRING004(INTEGER006)
:LABEL006
PrintLn
Print "@FIRST@ > "
STRING006 = ""
:LABEL007
STRING005 = ""
STRING005 = Inkey()
If (STRING005 == "") Goto LABEL007
Print STRING005
If (STRING005 == Chr(8)) Then
Print " "
STRING006 = Left(STRING006, Len(STRING006) - 1)
If (GetX() > Len(Left(U_Name(), InStr(U_Name(), " ") - 1)) + 4) Backup 1
Goto LABEL007
Endif
STRING005 = Upper(STRING005)
STRING006 = STRING006 + STRING005
If (STRING005 <> Chr(13)) Goto LABEL007
If ((STRING005 == Chr(13)) && (STRING006 == Chr(13))) Then
Inc INTEGER008
If (INTEGER008 > 3) Goto LABEL010
Else
INTEGER008 = 0
Endif
PrintLn
PrintLn
STRING006 = Left(STRING006, Len(STRING006) - 1)
STRING006 = Upper(STRING006)
If (((STRING006 == "Q") || (STRING006 == "G")) || (STRING006 == "X")) Goto LABEL010
If ((Time() - INTEGER001 > INTEGER005) || (MinLeft() < 5)) Then
PrintLn "Sy Kopath > I gotta go now. Let's chat again tomorrow."
Else
Print "Sy Kopath > "
For INTEGER006 = 1 To 100
If (InStr(STRING006, TSTRING001(INTEGER006)) <> 0) Break
Next
:LABEL008
If (INTEGER006 == 101) Then
INTEGER007 = Random(49) + 1
If (TSTRING003(INTEGER007) == "") Goto LABEL008
PrintLn TSTRING003(INTEGER007)
Goto LABEL006
Endif
:LABEL009
INTEGER007 = Random(19) + 1
If (TSTRING002(INTEGER006, INTEGER007) == "") Goto LABEL009
PrintLn TSTRING002(INTEGER006, INTEGER007)
Goto LABEL006
Endif
:LABEL010
PrintLn
PrintLn
PrintLn "Nice chatting with you @FIRST@."
PrintLn
If (BOOLEAN001) Then
PrintLn
PrintLn "Returning you to ", STRING007, "."
Else
Delay 20
PrintLn "@BEEP@"
PrintLn "If you enjoyed this program, please ask your Sysop to register it!"
Delay 20
Endif
Endif
Log "Exited SKCHAT at " + Left(Time(), 5), 0
PrintLn "@PON@"
End
STRING005 = "Sy Kopath Chat v1.0 - (C) 1994 - Gerry Schechter"
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 1 Cls
; 54 Goto
; 52 Let
; 11 Print
; 30 PrintLn
; 36 If
; 2 FClose
; 1 GetUser
; 1 DefColor
; 4 Log
; 6 Delay
; 6 Inc
; 1 GetToken
; 1 Backup
;
;
; ■ Functions used :
;
; 2 -
; 1 *
; 4 /
; 1 %
; 20 +
; 9 -
; 21 ==
; 8 <>
; 6 <
; 4 <=
; 3 >
; 8 >=
; 24 !
; 11 &&
; 9 ||
; 8 Len(
; 3 Upper()
; 2 Mid()
; 11 Left()
; 3 Right()
; 4 Space()
; 5 Chr()
; 2 InStr()
; 3 Random()
; 4 Time()
; 2 U_Name()
; 1 Inkey()
; 2 PCBDat()
; 2 PPEPath()
; 3 ReadLine()
; 2 MinLeft()
; 1 Exist()
; 1 GetX()
;
;------------------------------------------------------------------------------
;
; Analysis flags : d
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 4 For/Next
; 0 While/EndWhile
; 16 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------