home *** CD-ROM | disk | FTP | other *** search
/ Carsten's PPE Collection / Carstens_PPE_Collection_2007.zip / T / TIMESON2.ZIP / TIMESON.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-06-12  |  3KB  |  207 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 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     String   TSTRING002(2)
  26.     String   TSTRING003(2)
  27.     String   STRING004
  28.     String   STRING005
  29.  
  30. ;------------------------------------------------------------------------------
  31.  
  32.     If (Psa(6) == 1) Then
  33.         Goto LABEL001
  34.         SPrintLn 
  35.         SPrintLn "┌───────────────────────────────────────────────────────────────────┐"
  36.         SPrintLn "│ Your system is improperly configured for use with the TIMESON.PPE │"
  37.         SPrintLn "│ file.  You MUST have the NOTES PSA installed in PCBoard.  Once    │"
  38.         SPrintLn "│ you have that done, this PPE will function correctly.             │"
  39.         SPrintLn "└───────────────────────────────────────────────────────────────────┘"
  40.         SPrintLn 
  41.         For INTEGER002 = 1 To 3
  42.             MPrint Chr(7)
  43.             Sound 2000
  44.             Delay 1
  45.             Sound 3000
  46.             Delay 1
  47.             Sound 4000
  48.             Delay 1
  49.             Sound 5000
  50.             Delay 1
  51.             Sound 6000
  52.             Delay 1
  53.         Next
  54.     Endif
  55.     Goto LABEL002
  56.     :LABEL001
  57.     If (U_LDate() <> Date()) Then
  58.         GetUser
  59.         TSTRING002(1) = "CALLS"
  60.         TSTRING002(2) = 1
  61.         U_Notes(2) = TSTRING002(1) + " " + TSTRING002(2)
  62.         PutUser
  63.     Else
  64.         GetUser
  65.         If (Left(U_Notes(2), 5) <> "CALLS") Then
  66.             TSTRING002(1) = "CALLS"
  67.             TSTRING002(2) = 1
  68.             U_Notes(2) = TSTRING002(1) + " " + TSTRING002(2)
  69.             PutUser
  70.         Endif
  71.         GetUser
  72.         Tokenize U_Notes(2)
  73.         INTEGER003 = 1
  74.         GetToken TSTRING002(INTEGER003)
  75.         While (TSTRING002(INTEGER003) <> "") Do
  76.             INTEGER003 = INTEGER003 + 1
  77.             GetToken TSTRING002(INTEGER003)
  78.         EndWhile
  79.         INTEGER001 = TSTRING002(2)
  80.         INTEGER002 = INTEGER001 + 1
  81.         TSTRING002(2) = INTEGER002
  82.         U_Notes(2) = TSTRING002(1) + " " + TSTRING002(2)
  83.         PutUser
  84.     Endif
  85.     FOpen 1, PPEPath() + "TIMESON.CFG", 0, 0
  86.     While (!Ferr(1) && (CurSec() <> STRING005)) Do
  87.         FGet 1, STRING005
  88.         Tokenize STRING005
  89.         STRING004 = 1
  90.         GetToken TSTRING003(STRING004)
  91.         While (TSTRING003(STRING004) <> "") Do
  92.             STRING004 = STRING004 + 1
  93.             GetToken TSTRING003(STRING004)
  94.         EndWhile
  95.     EndWhile
  96.     FClose 1
  97.     If (TSTRING003(1) == CurSec()) Then
  98.         INTEGER004 = TSTRING003(2)
  99.     Else
  100.         INTEGER004 = 7
  101.         Log "USER LEVEL NOT IN TIMESON.CFG", 1
  102.     Endif
  103.     If (TSTRING002(2) >= INTEGER004) Then
  104.         FreshLine
  105.         PrintLn "@X0FYOU HAVE LOGGED IN " + TSTRING002(2) + " TIMES TODAY!"
  106.         PrintLn "@X0FYOU HAVE EXCEEDED THE TIMES YOU CAN LOG TODAY ON AT"
  107.         Newline
  108.         PrintLn "@X0FYOUR CURRENT SECURITY LEVEL OF " + CurSec() + " !"
  109.         DispText 59, 2048 + 256 + 128
  110.         Newline
  111.         PrintLn 
  112.         Log "USER HAS EXCEEDED THE TIMES HE/SHE CAN CALL TODAY!", 0
  113.         Delay 45
  114.         Hangup
  115.     Else
  116.         INTEGER006 = TSTRING002(2)
  117.         INTEGER005 = INTEGER004 - INTEGER006
  118.         FreshLine
  119.         PrintLn "@X0FYOU HAVE LOGGED ONTO THE BBS " + INTEGER006 + " TIMES TODAY!"
  120.         PrintLn "@X0FYOU CAN STILL LOG ON " + INTEGER005 + " MORE TIMES TODAY!"
  121.         PrintLn 
  122.     Endif
  123.     :LABEL002
  124.     End
  125.  
  126. ;------------------------------------------------------------------------------
  127. ;
  128. ; Usage report (before postprocessing)
  129. ;
  130. ; ■ Statements used :
  131. ;
  132. ;    1       End
  133. ;    18      Goto 
  134. ;    20      Let 
  135. ;    7       PrintLn 
  136. ;    9       If 
  137. ;    1       FOpen 
  138. ;    1       FClose 
  139. ;    1       FGet 
  140. ;    1       Hangup
  141. ;    3       GetUser
  142. ;    3       PutUser
  143. ;    2       Log 
  144. ;    6       Delay 
  145. ;    2       Newline
  146. ;    2       Tokenize 
  147. ;    4       GetToken 
  148. ;    1       DispText 
  149. ;    2       FreshLine
  150. ;    5       Sound 
  151. ;    7       SPrintLn 
  152. ;    1       MPrint 
  153. ;
  154. ;
  155. ; ■ Functions used :
  156. ;
  157. ;    21      +
  158. ;    1       -
  159. ;    2       ==
  160. ;    5       <>
  161. ;    1       <
  162. ;    1       <=
  163. ;    3       >=
  164. ;    10      !
  165. ;    3       &&
  166. ;    1       ||
  167. ;    1       Left()
  168. ;    1       Ferr()
  169. ;    1       Chr()
  170. ;    1       Date()
  171. ;    1       U_LDate()
  172. ;    1       PPEPath()
  173. ;    3       CurSec()
  174. ;    1       Psa()
  175. ;
  176. ;------------------------------------------------------------------------------
  177. ;
  178. ; Analysis flags : WBM
  179. ;
  180. ; W - Write user ■ 5
  181. ;     Program writes a user record. Although this may be normal for a
  182. ;     User Editor, it may also be a way to modify an account level.
  183. ;     ■ Search for : PUTUSER
  184. ;
  185. ; B - Brute hangup ■ 1
  186. ;     Program hangup without notification. This may be a good way to
  187. ;     disconnect a user, but if used randomly, may be very nasty
  188. ;     ■ Search for : HANGUP, DTROFF
  189. ;
  190. ; M - Send text to modem only ■ 4
  191. ;     Some informations are sent only to the modem, not to the local
  192. ;     screen, this is a well known way to make stealth backdoors, Check!
  193. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  194. ;
  195. ;------------------------------------------------------------------------------
  196. ;
  197. ; Postprocessing report
  198. ;
  199. ;    1       For/Next
  200. ;    3       While/EndWhile
  201. ;    5       If/Then or If/Then/Else
  202. ;    0       Select Case
  203. ;
  204. ;------------------------------------------------------------------------------
  205. ;                 AEGiS Corp - Break the routines, code against the machines!
  206. ;------------------------------------------------------------------------------
  207.