home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / bbs / chaos151 / chaos.scr next >
Text File  |  1992-09-30  |  6KB  |  213 lines

  1. SCRIPT
  2.  
  3. ; Chaos.SCR v1.0 for Express 1.60 or higher
  4. ; Change and setup to match your BBS and tastes.
  5. ; Adapted from script to run Assassin- by Kevin McFarland
  6. ; by Solano STation BBS
  7.  
  8.  abort off
  9.  
  10. SETUP:
  11.  
  12.  clear variables
  13.  
  14. ;! Change the following to fit your system
  15.  
  16.  define noplay = 10       ; minutes left after which play is not allowed
  17.  define bbs_log = 'C:\bbs\userlog.txt'          ;or pathname (c:\bbs\callers.log)
  18.  define bbs_path = 'C:\bbs\'                 ;path BBS is run from
  19.  define game_menu = 'M:\menus_80\arcade.hlp'  ;pathname of main game menu
  20.  
  21. ;  All your Stellar Chaos files should be in one folder (Chaos_path)
  22.  
  23.  define Chaos_path = 'E:\Chaos\'         ;Chaos folder
  24.  define SCprg  = 'Chaos*.Tos'             ;program name
  25.  define SCdoc  = 'Chaosins.txt'          ;doc file
  26.  define SCnews = '*.log'                 ;news file
  27.  define sc_score = 'scscore.txt'         ;scores of players
  28.  define old_news = 'news.bak'            ;yesterday's news
  29.  
  30.  define %0               ; 1 key input for user selection
  31.  define pause            ; Dummy input, used to pause display
  32.  define user_log         ; For log print routine     LOGPRINT
  33.  define docfile          ; For file printer routine  DOCPRINT
  34.  define fc               ; Variable for file copy
  35.  integer cd              ; Variable for directory changes
  36.  define prompt           ; prompt for command routine
  37.  define option           ; where command routine looks for choice
  38.  define time_used_call         ; for time limit routine
  39.  define time_left_call         ;
  40.  define time_used_day          ;
  41.  define time_left_day          ;
  42.  define time_on                ;
  43.  define time_ok                ;
  44.  define time_per_call = '&13'  ;
  45.  define time_per_day = '&14'   ;
  46.  define time_before = '&15'    ;
  47.  
  48.  user_log = 'Enters Chaos menu' ;if you want to know when callers
  49.  gosub logprint                        ;enter Chaos menu
  50.  
  51. TOP:
  52.  prompt = '\r\i  Chaos  \o\b\v\{1234-DGX?\}: '  ;Add G if you exec a game menu
  53.  option = 'Chaos'
  54.  
  55. goto menuSC
  56.  
  57. COMMAND:
  58.  abort off
  59.  margin (2)
  60.  printe
  61.  print '(&32 min) [prompt]'  ; Hold the cursor on this line
  62.  if time_exceeded       ;check time limit every time game prompt prints
  63.   printe                ;blank line between game and BBS prompt
  64.   exit                  ;let BBS log them off
  65.  endif
  66.  get_key %0             ;get callers choice
  67.  goto [option]          ;goto the if/ef choice routine
  68.  
  69. LOGPRINT:
  70.  open '[bbs_log]', append                    ;logs callers activity
  71.  fprinte '  &23 [user_log]'
  72.  close
  73.  return
  74.  
  75. DOCPRINT:
  76.  printe
  77.  printe ' < Control-S to Pause,\vControl-X to Abort >'
  78.  printe
  79.  view '[docfile]'                    ;formats text output
  80.  return
  81.  
  82. INVALID:
  83.  printe 'Enter ? For Menu...'        ; what happens upon invalid command
  84.  goto command                        ; choice
  85.  
  86. Chaos:
  87.  
  88.  if %0 = '?'                         ;choices for Chaos 
  89.   printe 'Help!'
  90.   goto menusc
  91.  
  92.  ef %0 = 1
  93.   print 'Play Chaos? \{y,N\}: '
  94.   goto playsc
  95.  
  96.  ef %0 = 2
  97.   printe 'Today's News'
  98.   docfile = '[Chaos_path][SCnews]'
  99.   gosub docprint
  100.   goto command
  101.  
  102.  ef %0 = 3
  103.   printe 'Yesterday's News'
  104.   docfile = '[Chaos_path][old_news]'
  105.   gosub docprint
  106.   goto command
  107.  
  108. ef %0 = 4
  109.   printe 'Chaos Rankings'
  110.   docfile = '[Chaos_path][sc_score]'
  111.   gosub docprint
  112.   goto command
  113.  
  114.  ef %0 = D
  115.   printe 'Chaos Doc\"s'
  116.   docfile = '[Chaos_path][SCdoc]'
  117.   gosub docprint
  118.   goto command
  119.  
  120.  ef %0 = G
  121.   cd= file_chgdir '[BBS_Path]'
  122.   printe 'Exit To Game Menu...'
  123.   execute [game_menu]
  124.  
  125.  ef %0 = X
  126.   cd= file_chgdir '[BBS_Path]'
  127.   printe 'Exit to BBS..'
  128.   exit
  129.  
  130.  endif
  131.  goto invalid
  132.  
  133. PLAYSC:
  134.  abort off
  135.  get_key %0
  136.  if %0 # Y
  137.   printe 'No'
  138.   goto command
  139.  else
  140.   printe 'Yes'
  141.  endif
  142.  gosub timelimit
  143.  if time_ok = N
  144.   user_log = '-->Attempts Chaos after time limit!'
  145.   gosub logprint
  146.   goto command
  147.  endif
  148.  printe
  149.  printe ' Loading Chaos'
  150.  printe
  151.  open 'E:\chaos\scuser.dat', output ; Forem2.2
  152.   fprinte '&01'                     ;
  153.   Endif 
  154. fprinte                           ;
  155.  close                             ;
  156.  user_log = 'Plays Chaos'
  157.  gosub logprint
  158.  close
  159.  printe
  160.  GEM '[Chaos_path][SCprg]'                    ;! Chaos prg filename
  161.  abort off
  162.  user_log= 'Quits Chaos'
  163.  cd = file_chgdir '[bbs_path]'
  164.  gosub logprint
  165.  close
  166.  printe
  167.  goto command
  168.  
  169. TIMELIMIT:
  170.  increase noplay
  171.  if &29 = 300                        ;if 300 baud, cut them off
  172.   noplay = [noplay] + 5              ;5 minutes sooner
  173.  endif
  174.  time_ok = Y
  175.  time_on = &32
  176.  time_left_call = [time_per_call] - [time_on] ;time left for this call    
  177.  if time_left_call < noplay
  178.   printe '\n Sorry, you don\"t have enough time\vduring this call to play.'
  179.   time_ok = N
  180.  endif
  181.  time_used_day = [time_before] + [time_on] 
  182.  time_left_day = [time_per_day] - [time_used_day] ;time left for today
  183.  if time_left_day < noplay
  184.   printe '\n Sorry, you don\"t have enough time\vleft for today to play.'
  185.   time_ok = N
  186.  endif
  187.  return
  188.  
  189. MENUSC:
  190.  clear screen
  191.  if &11= '80' then
  192.   margin (20)
  193.  endif
  194.  printe ' \r '
  195.  printe '  \i                          \o'
  196.  printe '  \i  Solano STation Presents \o'     ; Your BBS name goes here
  197.  printe '  \i  --------------------    \o'
  198.  printe '  \i       Chaos 1.51         \o'
  199.  printe '  \i                          \o'
  200.  printe ' \b '
  201.  printe '  \r\{1\}\b   Play Chaos     '
  202.  printe '  \r\{2\}\b   News- Today    '
  203.  printe '  \r\{3\}\b   News- Yesterday' 
  204.  printe '  \r\{4\}\b   Chaos Rankings '
  205.  printe
  206.  printe '  \r\{D\}\b   Documentation'
  207.  printe '  \r\{G\}\b   Exit to Game Menu'  ;if you execute a game menu
  208.  printe '  \r\{X\}\b   Exit to BBS'
  209.  printe '  \r\{?\}\b   This Menu'
  210.  printe
  211.  goto command
  212.  
  213.