home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
bbs
/
birthday
/
birthday.scr
next >
Wrap
Text File
|
1992-02-15
|
8KB
|
272 lines
Script
abort off
;========================================================================
;= Birthday v1.0 - Feb 15, 1992 - By Big D =
;= Rubber City Atari BBS - 300/1200/2400 - 216/376-0885 =
;= =
;= Thanks to Outrider from the Rebel BBS 702/435-0786 =
;= for his Audit program which I modified to make this program. =
;= =
;= And thanks to Chuck Grimsby for his Todays program ver 1.95. =
;= The program, that gives this script a reason to be written. =
;= It will write and/or use a birthday dat file that is compatable with =
;= Todays v1.95.. So as the evens for the day are displayed so will the =
;= birthdays of your BBS's users... Read the read me file... =
;========================================================================
;
; ======= IMPORTANT INFO PLEASE READ ========
; Because of the script commands Copy and Expand do not want to work
; properly with out being compiled!!!!
; ======= YOU MUST COMPILE THIS SCRIPT =======
; ======= BEFORE YOU RUN IT =======
; Edit the User-Definable Variables below, save it then compile it.
; before you run it.. Other wise it will screw the data file.......
;~~~~~~~~~~~~~~~~~~~~~~~~ USER-DEFINABLE VARIABLES ~~~~~~~~~~~~~~~~~~~~~~
; Change these to match your BBS
string BBS = 'Rubber City Atari' ; Name of your BBS
string Log = 'F:\RCACALL.LOG' ; Your CALL LOG
string Path = 'F:\BIRTHDAY\' ; PATH for your Data files
integer Total_Users = '300' ; Maximum your Userlog is set for
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ OTHER VARIABLES ~~~~~~~~~~~~~~~~~~~~~~~~~~~
; Please do not change
var Key
var Line
var Temp
var Temp2
var BirthDay
var Birthday2
define Call = &27
string Date = &24
string Name = &1
string Name2
integer Np
integer Age
integer Count
integer Birth_Date
integer Birth_Year
integer Current_Day
integer Current_Date
integer Current_Year
integer Current_Month
integer Call_Num = &22
integer User_Num = &31
integer Screen_W = &11
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CHECK USER INFO ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If file_exists '[Path]BirthDay.Dat' ; Is this a first time run?
else
gosub CREATE_DAT ; If so create dat file.
endif
if command_level 1 ; Skip VISITORS
else
goto EXIT_WELCOME
endif
Expand Name 30 ; Set name to proper format
Np = User_Num * 42 ; Set file pointer Much faster
Np = Np - 42 ; then reading/writing whole file
if Call_Num = '1' ; Get info on their 1st call, if
goto GET_INFO ; not a Visitor.
endif
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ READ USER INFO ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
READ_INFO:
open '[Path]BirthDay.Dat' input ; Get their Birthday.
point Np
finput BirthDay
close
if BirthDay = '*00000000 ------------------------------'; They haven't entered it yet.
goto GET_INFO
endif
Name2 = copy (BirthDay, 11,30)
expand name2 30
if Name # Name2 ; Is the name the same? If not correct it.
open Log append
fprinte ' ***Name did not match Birthday.dat name***'
fprinte ' User name : [Name]'
fprinte ' Dat file name: [Name2]'
close
goto Get_Info
Endif
Current_Year = copy (Date, 7, 2) ; Routine for parsering current
Current_Month = copy (Date, 1, 2) ; date.
Current_Day = copy (Date, 4, 2)
Current_Date = '[Current_Month][Current_Day]'
Birth_Year = copy (Birthday, 8, 2) ; Routine for parsering user's
Birth_Date = copy (Birthday, 2, 2) ; Date of birth.
Temp = copy (Birthday, 4, 2)
Birthday2='[Birth_Date]/'
Birthday2='[Birthday2][Temp]/'
Birthday2='[Birthday2][Birth_Year]'
Birth_Date = '[Birth_Date][Temp]'
if Birth_Date > Current_Date ; See if they've had their birthday
Birth_Year = Birth_Year + 1 ; this year yet.
endif
Age = Current_Year - Birth_Year ; Get the caller's age.
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SAVE USER INFO ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WRITE_INFO:
open Log append
fprinte ' Birth Date: [Birthday2] Age: [Age] (&9)'
close
goto CHECK_FOR_BIRTHDAY
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GET INFO ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GET_INFO:
clear screen
printe '\n\n'
printe '\n'
bell
printe '\g***\r You are being audited by \g***' center
Printe '[BBS]\r' center
bell
Printe
printe 'We need this information for our files!' center
printe 'Please answer TRUTHFULLY. ' center
Printe 'You will later be asked to verify this ' center
Printer'information, so it is imperative you ' center
Printe 'enter the correct information. ' center
printe '\n\n\b'
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GET BIRTHDAY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ENTER_BIRTHDAY:
Count = '0'
BirthDay = ''
print 'Please enter your real \rBIRTHDAY\b (\gMM\b/\gDD\b/\gYYYY\b):\r '
GET_BIRTHDAY:
get_key Key
if Key = numeric
print Key
else
goto GET_BIRTHDAY ; If not numeric, ignore keypress.
endif
if Count > 0 ; We need to convert the first
goto GET_BIRTHDAY2 ; digit from 0 to a space, if
endif ; necessary, to match format of
; Express!.
if Key = '0'
Key = ' '
endif
GET_BIRTHDAY2:
BirthDay = '[BirthDay][Key]' ; Add keypress to BirthDay string.
increase Count
if Count = '2'
print '\g/\r' ; Date separator.
ef Count = '4'
print '\g/\r'
ef Count = '8'
goto EXIT_BIRTHDAY
endif
goto GET_BIRTHDAY
EXIT_BIRTHDAY:
printe '\n'
print 'Are you absolutely sure that is your correct birthday (y/N)?\b '
get_key Key
if Key # 'Y'
printe 'No\n'
goto ENTER_BIRTHDAY
endif
printe 'Yes\n\n'
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SAVE DATA ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SAVE_DATA:
printe '\gPlease wait while I save your data'
Temp2 = 'I[Birthday] [Name]'
open '[Path]BirthDay.Dat' append
point Np
Fprinte Temp2
close
goto READ_INFO
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CREATE DATA FILES ~~~~~~~~~~~~~~~~~~~~~~~~~~~
CREATE_DAT:
Printe 'Creating Dat files, Please wait one '
open '[Path]BirthDay.Dat' output ; Create initial BIRTHDAY.DAT.
for Key = 1 to Total_Users
fprinte '*00000000 ------------------------------'
endfor
close
Printe 'Thank you for waiting'
return
;~~~~~~~~~~~~~~~~~~~~~~~~ CHECK IF CALLER'S BIRTHDAY ~~~~~~~~~~~~~~~~~~~~~~
CHECK_FOR_BIRTHDAY:
if Birth_Date # Current_Date ; Check if their birthday is today.
goto EXIT_WELCOME ; If not, we goto WELCOME.
endif
clear screen
bell
view '[Path]Birthday.Txt' ; Show them BIRTHDAY.TXT.
open Log append
fprinte ' ***** H A P P Y B I R T H D A Y *****'
close
print 'Press <\rAny Key\b> To Continue\g...\b' center
get_key Key
printe '\n\n'
;~~~~~~~~~~~~~~~~~~~~~~~~~~ END OF WELCOME.SCR HERE ~~~~~~~~~~~~~~~~~~~~~~~
EXIT_WELCOME:
exit ; Or whatever else you want to add.