home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / S / SKCHAT13.ZIP / SKCHAT.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-11-01  |  6KB  |  343 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Integer  INTEGER001
  21.     Integer  INTEGER002
  22.     Integer  INTEGER003
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     Integer  INTEGER006
  26.     Integer  INTEGER007
  27.     Integer  INTEGER008
  28.     Integer  INTEGER009
  29.     String   TSTRING001(100)
  30.     String   TSTRING002(100,20)
  31.     String   TSTRING003(50)
  32.     String   TSTRING004(20)
  33.     String   STRING005
  34.     String   STRING006
  35.     String   STRING007
  36.     String   STRING008
  37.     String   STRING009
  38.     String   STRING010
  39.  
  40. ;------------------------------------------------------------------------------
  41.  
  42.     BOOLEAN001 = 0
  43.     GetUser
  44.     INTEGER003 = 0
  45.     INTEGER002 = 0
  46.     INTEGER009 = 0
  47.     If (MinLeft() < 5) Then
  48.         PrintLn 
  49.         PrintLn "Sorry @FIRST@, not enough time remaining to chat."
  50.         PrintLn 
  51.         End
  52.     Endif
  53.     BOOLEAN001 = 0
  54.     If (Exist(PPEPath() + "SKCHAT.DAT")) Goto LABEL001
  55.     Log "SKCHAT.DAT File Not Found!", 0
  56.     PrintLn 
  57.     PrintLn "Error in SkChat setup! Please notify your Sysop."
  58.     PrintLn 
  59.     End
  60.     :LABEL001
  61.     Log "Entered SKCHAT at " + Left(Time(), 5), 0
  62.     Cls
  63.     Print "@X0F"
  64.     STRING009 = Mixed(U_Name())
  65.     STRING009 = Left(STRING009, InStr(STRING009, " ") - 1)
  66.     STRING008 = "Gerry Schechter"
  67.     STRING005 = "Sy Kopath Chat v1.3 - (C) 1994 - " + STRING008
  68.     If (!BOOLEAN001) PrintLn Space((80 - Len(STRING005)) / 2) + STRING005
  69.     Print "@X0E"
  70.     BOOLEAN001 = 0
  71.     If (BOOLEAN001) Then
  72.         STRING005 = "Registered to: " + ReadLine(PCBDat(), 94)
  73.         STRING007 = ReadLine(PCBDat(), 94)
  74.         FClose -1
  75.         GetToken INTEGER005
  76.         If (INTEGER005 == 0) Then
  77.             INTEGER005 = 300
  78.         Else
  79.             INTEGER005 = INTEGER005 * 60
  80.         Endif
  81.         GetToken STRING010
  82.         STRING010 = Mixed(STRING010)
  83.         If (STRING010 == "") STRING010 = "Sy Kopath"
  84.     Else
  85.         Delay 10
  86.         STRING007 = "UNREGISTERED VERSION"
  87.         STRING005 = "Registered to: " + STRING007
  88.         PrintLn Space((80 - Len(STRING005)) / 2) + STRING005
  89.         STRING010 = "Sy Kopath"
  90.         Delay 20
  91.         INTEGER005 = 300
  92.     Endif
  93.     INTEGER001 = Time()
  94.     If (BOOLEAN001) Goto LABEL003
  95.     If ((Left(STRING007, 1) <> "U") || (Right(STRING007, 1) <> "N")) Then
  96.         :LABEL002
  97.         PrintLn "@BEEP@ @X0C"
  98.         STRING005 = "Unauthorized Modification Of SKCHAT!"
  99.         PrintLn Space((80 - Len(STRING005)) / 2) + STRING005
  100.         Print Chr(7)
  101.         Log "Unauthorized Modification Of SKCHAT!", 0
  102.         Delay 30
  103.     Else
  104.         :LABEL003
  105.         DefColor
  106.         PrintLn 
  107.         Print "Paging ", STRING010, ". One moment please"
  108.         For INTEGER007 = 1 To 100
  109.             TSTRING001(INTEGER007) = ""
  110.         Next
  111.         Print "."
  112.         For INTEGER007 = 1 To 50
  113.             TSTRING003(INTEGER007) = ""
  114.         Next
  115.         For INTEGER007 = 1 To 20
  116.             TSTRING004(INTEGER007) = ""
  117.         Next
  118.         If ((Left(STRING008, 1) <> "G") || (Right(STRING008, 1) <> "r")) Goto LABEL002
  119.         If (!BOOLEAN001 && (Mid(STRING007, 2, 1) <> "N")) Goto LABEL002
  120.         If (!BOOLEAN001 && (Mid(STRING007, 5, 1) <> "G")) Goto LABEL002
  121.         If (!BOOLEAN001 && ((Left(STRING010, 1) <> "S") || (Right(STRING010, 1) <> "h"))) Goto LABEL002
  122.         :LABEL004
  123.         Inc INTEGER002
  124.         STRING005 = ""
  125.         STRING005 = ReadLine(PPEPath() + "SKCHAT.DAT", INTEGER002)
  126.         If (STRING005 == "") Then
  127.             FClose -1
  128.             PrintLn 
  129.         Else
  130.             If (INTEGER002 % 30 == 0) Print "."
  131.             If (Left(STRING005, 1) == ";") Goto LABEL004
  132.             If (Left(STRING005, 1) == "@") Then
  133.                 STRING006 = "@"
  134.                 INTEGER004 = 1
  135.                 Goto LABEL004
  136.             Endif
  137.             If (Left(STRING005, 1) == "$") Then
  138.                 STRING006 = "$"
  139.                 INTEGER004 = 1
  140.                 Inc INTEGER003
  141.                 TSTRING001(INTEGER003) = Right(STRING005, Len(STRING005) - 1)
  142.                 TSTRING001(INTEGER003) = Upper(TSTRING001(INTEGER003))
  143.                 Goto LABEL004
  144.             Endif
  145.             If (Left(STRING005, 1) == "!") Then
  146.                 STRING006 = "!"
  147.                 INTEGER004 = 1
  148.                 Goto LABEL004
  149.             Endif
  150.             If (STRING006 == "@") Then
  151.                 TSTRING004(INTEGER004) = ReplaceStr(STRING005, "@FIRST@", STRING009)
  152.                 Inc INTEGER004
  153.                 Goto LABEL004
  154.             Endif
  155.             If (STRING006 == "$") Then
  156.                 TSTRING002(INTEGER003, INTEGER004) = ReplaceStr(STRING005, "@FIRST@", STRING009)
  157.                 Inc INTEGER004
  158.                 Goto LABEL004
  159.             Endif
  160.             If (STRING006 == "!") Then
  161.                 TSTRING003(INTEGER004) = ReplaceStr(STRING005, "@FIRST@", STRING009)
  162.                 Inc INTEGER004
  163.             Endif
  164.             Goto LABEL004
  165.         Endif
  166.         PrintLn "@POFF@"
  167.         :LABEL005
  168.         INTEGER007 = Random(19) + 1
  169.         If (TSTRING004(INTEGER007) == "") Goto LABEL005
  170.         Print STRING010, " > "
  171.         STRING006 = ReplaceStr(TSTRING004(INTEGER007), "@SYSTIME@", Left(Time(), 5))
  172.         For INTEGER006 = 1 To Len(STRING006)
  173.             Print Mid(STRING006, INTEGER006, 1)
  174.             Delay Random(2) + 1
  175.         Next
  176.         PrintLn 
  177.         :LABEL006
  178.         PrintLn 
  179.         Print "@FIRST@ > "
  180.         STRING006 = ""
  181.         :LABEL007
  182.         STRING005 = ""
  183.         STRING005 = Inkey()
  184.         If (STRING005 == "") Goto LABEL007
  185.         Print STRING005
  186.         If (STRING005 == Chr(8)) Then
  187.             Print " "
  188.             STRING006 = Left(STRING006, Len(STRING006) - 1)
  189.             If (GetX() > Len(Left(U_Name(), InStr(U_Name(), " ") - 1)) + 4) Backup 1
  190.             Goto LABEL007
  191.         Endif
  192.         STRING005 = Upper(STRING005)
  193.         STRING006 = STRING006 + STRING005
  194.         If (STRING005 <> Chr(13)) Goto LABEL007
  195.         If ((STRING005 == Chr(13)) && (STRING006 == Chr(13))) Then
  196.             Inc INTEGER009
  197.             If (INTEGER009 > 3) Goto LABEL010
  198.         Else
  199.             INTEGER009 = 0
  200.         Endif
  201.         PrintLn 
  202.         PrintLn 
  203.         STRING006 = Left(STRING006, Len(STRING006) - 1)
  204.         STRING006 = Upper(STRING006)
  205.         If (((STRING006 == "Q") || (STRING006 == "G")) || (STRING006 == "X")) Goto LABEL010
  206.         If ((Time() - INTEGER001 > INTEGER005) || (MinLeft() < 5)) Then
  207.             PrintLn STRING010, " > I gotta go now. Let's chat again tomorrow."
  208.         Else
  209.             Print STRING010, " > "
  210.             For INTEGER007 = 1 To 100
  211.                 If (InStr(STRING006, TSTRING001(INTEGER007)) <> 0) Break
  212.             Next
  213.             :LABEL008
  214.             If (INTEGER007 == 101) Then
  215.                 INTEGER008 = Random(49) + 1
  216.                 If (TSTRING003(INTEGER008) == "") Goto LABEL008
  217.                 STRING006 = ReplaceStr(TSTRING003(INTEGER008), "@SYSTIME@", Left(TimeAp(Time()), 5))
  218.                 For INTEGER006 = 1 To Len(STRING006)
  219.                     Print Mid(STRING006, INTEGER006, 1)
  220.                     Delay Random(2) + 1
  221.                 Next
  222.                 PrintLn 
  223.                 Goto LABEL006
  224.             Endif
  225.             :LABEL009
  226.             INTEGER008 = Random(19) + 1
  227.             If (TSTRING002(INTEGER007, INTEGER008) == "") Goto LABEL009
  228.             STRING006 = ReplaceStr(TSTRING002(INTEGER007, INTEGER008), "@SYSTIME@", Left(TimeAp(Time()), 5))
  229.             For INTEGER006 = 1 To Len(STRING006)
  230.                 Print Mid(STRING006, INTEGER006, 1)
  231.                 Delay Random(2) + 1
  232.             Next
  233.             PrintLn 
  234.             Goto LABEL006
  235.         Endif
  236.         :LABEL010
  237.         PrintLn 
  238.         PrintLn 
  239.         PrintLn "Nice chatting with you @FIRST@."
  240.         If (BOOLEAN001) Then
  241.             Goto LABEL011
  242.         Endif
  243.         Delay 20
  244.         PrintLn "@BEEP@ @X0F"
  245.         PrintLn "If you enjoyed this program, please ask your Sysop to register it!"
  246.         Delay 30
  247.     Endif
  248.     :LABEL011
  249.     INTEGER007 = Date()
  250.     If (!BOOLEAN001 && (INTEGER007 % 7 == 0)) Log "Please register this program!", 0
  251.     Log "Exited SKCHAT at " + Left(Time(), 5), 0
  252.     PrintLn "@PON@"
  253.     End
  254.     STRING005 = " Registered To: UNREGISTERED VERSION "
  255.     STRING005 = "Sy Kopath Chat v1.3 - (C) 1994 - Gerry Schechter"
  256.  
  257. ;------------------------------------------------------------------------------
  258. ;
  259. ; Usage report (before postprocessing)
  260. ;
  261. ; ■ Statements used :
  262. ;
  263. ;    3       End
  264. ;    1       Cls
  265. ;    61      Goto 
  266. ;    70      Let 
  267. ;    14      Print 
  268. ;    26      PrintLn 
  269. ;    43      If 
  270. ;    2       FClose 
  271. ;    1       GetUser
  272. ;    1       DefColor
  273. ;    5       Log 
  274. ;    8       Delay 
  275. ;    6       Inc 
  276. ;    2       GetToken 
  277. ;    1       Backup 
  278. ;
  279. ;
  280. ; ■ Functions used :
  281. ;
  282. ;    2       -
  283. ;    1       *
  284. ;    3       /
  285. ;    2       %
  286. ;    25      +
  287. ;    9       -
  288. ;    23      ==
  289. ;    10      <>
  290. ;    9       <
  291. ;    7       <=
  292. ;    3       >
  293. ;    14      >=
  294. ;    30      !
  295. ;    19      &&
  296. ;    13      ||
  297. ;    13      Len(
  298. ;    3       Upper()
  299. ;    5       Mid()
  300. ;    16      Left()
  301. ;    4       Right()
  302. ;    3       Space()
  303. ;    5       Chr()
  304. ;    3       InStr()
  305. ;    6       Random()
  306. ;    1       Date()
  307. ;    7       Time()
  308. ;    3       U_Name()
  309. ;    2       TimeAp()
  310. ;    1       Inkey()
  311. ;    2       PCBDat()
  312. ;    2       PPEPath()
  313. ;    3       ReadLine()
  314. ;    2       MinLeft()
  315. ;    1       Exist()
  316. ;    1       GetX()
  317. ;    6       ReplaceStr()
  318. ;    2       Mixed()
  319. ;
  320. ;------------------------------------------------------------------------------
  321. ;
  322. ; Analysis flags : d
  323. ;
  324. ; d - Access PCBOARD.DAT ■ 2
  325. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  326. ;     for many PPE so they can find various informations on the system
  327. ;     (system paths, max number of lines in messages, ...) but it may also
  328. ;     be a way to gather vital informations.
  329. ;     ■ Search for : PCBDAT()
  330. ;
  331. ;------------------------------------------------------------------------------
  332. ;
  333. ; Postprocessing report
  334. ;
  335. ;    7       For/Next
  336. ;    0       While/EndWhile
  337. ;    16      If/Then or If/Then/Else
  338. ;    0       Select Case
  339. ;
  340. ;------------------------------------------------------------------------------
  341. ;                 AEGiS Corp - Break the routines, code against the machines!
  342. ;------------------------------------------------------------------------------
  343.