home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
DOOR
/
CQ10WBC.ZIP
/
CQREC.REC
< prev
next >
Wrap
Text File
|
1996-08-11
|
13KB
|
272 lines
╔════════════════════════════════════════════════════════════════════════════╗
║ OFFICIAL CRIME QUEST RECORD STRUCTURE - FOR GAME DEVELOPMENT USE v1.0WB+ ║
╚════════════════════════════════════════════════════════════════════════════╝
These are the official pascal file structures for the player and enemy files
of Crime Quest v1.0WB+. This file was last updated on 08-02-96. For the
software developers use.
Crime Quest - "Busting The Bad Guys"
(C) Copyright 1996 Brian Leiter, The Computer Doctor
and Spectrum Software ALL RIGHTS RESERVED.
A note from Brian Leiter: You have my permission to build add-ons, editors,
IGMs, and whatever - BUT, if you decide to charge money for them I would
appreciate it if you would upload me your file privately! This will let me
evaluate it and see if it deserves my stamp of approval.
*NOTICE* Some changes to the date fields will only work if Crime Quest is
REGISTERED!
That's right, I'm not against others making money off their IGMS, in fact, I
don't demand any percentage whatsoever. God knows I'm going to make much more
than I probably deserve. Just try not to charge more than $5.00 to $10.00 for
it, okay?
Also, in ANY utility for CRIME QUEST, be sure to give some credit to ME!
If you are going to build a CRIME QUEST Internal Game Module (IGM), you
MUST meet these specifications to call it such:
1. It reads NO external drop file, but gets all data from the dropfile.???
file. (Where ??? will be the node number)
2. It has options to install AND uninstall itself. (ie, add the program to the
CQIGMS.DAT file itself)
3. The top line if the file_id.diz is like this:
<NAME & VERSION OF YOUR PROG> CRIME QUEST IGM (Decorate if you like)
4. It must be as professional looking as crime quest with ANSI screens!
5. To be called an OFFICIAL CQ IGM, it must meet my stamp of approval and I
will then netmail you with other instructions.
The reason I'm giving these specific instructions is because a few others have
released their software as IGM's, sysops expect the "simple" installation they
got with the original game. But, instead find themselves having to mess with
writing dropfiles for the CRIME QUEST IGM separately - which can be a mess,
especially if the drop file is overwritten while someone else goes into the
game, etc.
╔════════════════════════════════════════════════════════════════════════════╗
║ - HOW DO I MAKE AN INTERNAL GAME MODULE - ║
╚════════════════════════════════════════════════════════════════════════════╝
It is really sort of easy. The smartest way is to write your door to be able
to read the DROPFILE.??? file - (For com port, port speed, etc) these are text
editable, so you should be able to figure them out ok. (Where ??? will be the
node number)
It comes down to this: Someone will be able to unzip your program, and run
the Config/Installer, and it will add two lines to the CQIGMS.DAT file. These
two lines are ALL CRIME QUEST needs to automatically list your door name as it
appears to the players, (second line) and the path and name of the EXE or BAT
file that is run. Look at the CQIGMS.DAT file, it comes with one IGM already
installed for you! Note: The CQIGMS.DAT file is automatically created when
CRIME QUEST is ran if it doesn't exist.
Please be considerate enough to throw a 'Uninstall' option in your configure
program - To find your two lines and strip them out, just in case the sysop
decides not to keep it. Sure, most sysops can edit the CQIGMS.DAT file
themselves, but it's a nice option anyway.
There you have it - The goal of this is to make installing add-ons much easier
then installing a whole new door, because they will not have to re-configure
any com port settings, or node settings, because you will be reading the
DROPFILE.??? file. This also means you don't have to mess with drop files at
all, since using the 'record number' from the DROPFILE.??? file lets you load
the entire record, including their BBS handle and CRIME QUEST character of
course. (Where ??? will be the node number)
╔════════════════════════════════════════════════════════════════════════════╗
║ - THE STRUCTURE OF THE DROPFILE.DAT FILE - ║
╚════════════════════════════════════════════════════════════════════════════╝
BRIAN
LEITER
XCOPPER
0
TRUE
60
0
0
38400
Reserved For Future Use
Reserved For Future Use
Reserved For Future Use
┌─[ Crime Quest IGM Dropfile ]─────────────────────────┐
│ │
│ Line 1: Users Real First Name │
│ Line 2: Users Real Last Name │
│ Line 3: Crime Quest Character Name │
│ Line 4: Players Record Number │
│ Line 5: Using Ansi? True or False (Should be TRUE) │
│ Line 6: Time Left In Minutes │
│ Line 7: Comport │
│ Line 8: Users Baud Rate │
│ Line 9: Locked Port Rate │
│ Line 10: Reserved For Future Use │
│ Line 11: Reserved For Future Use │
│ Line 12: Reserved For Future Use │
└──────────────────────────────────────────────────────┘
╔════════════════════════════════════════════════════════════════════════════╗
║ - THE PLAYER DATA FILE - ║
╚════════════════════════════════════════════════════════════════════════════╝
{CQPLAYER.DAT}
Type
Player_Info = Record {CRIME QUEST RECORD STRUCTURE AS OF 08-02-96}
RecordNumber : Integer; {Record number - Max=32000}
Start_Date : String[10]; {Date player started playing before killed}
End_Date : String[10]; {Date when player was killed}
Real_Name : String[30]; {Real name from the BBS}
Character : String[15]; {Players alias in the game}
Rank : Integer; {Rank - 1 to 9}
Division : Integer; {Division - 1 to 9}
Level : Integer; {Game level - 1 to 225}
Sex : Char; {M=Male F=Female}
GoodBad : Char; {Preference G=Good or B=Bad}
Skills : Char; {Skill - 0,1,2 or 3}
Skill1 : Integer; {Number of skill points-50 masters - Max=50}
Skill2 : Integer; {Number of skill points-50 masters - Max=50}
Skill3 : Integer; {Number of skill points-50 masters - Max=50}
Armor_Name : String[20]; {Name of current armor}
Armor_Num : Integer; {Current armor number - 0 to 12}
Defense_Str : Integer; {Defense strength}
Weapon_Name : String[20]; {Name of current weapon}
Weapon_Num : Integer; {Current weapon number - 0 to 12}
Attack_Str : Integer; {Attack strength}
Special_Event : Integer; {If 5, 'special' event will happen}
SW_Uses : Integer; {Special weapon uses - Max=999}
Attacks_Left : Integer; {Attacks left - Max=999}
Player_Fights : Integer; {Player fights left - Max=999}
Player_Kills : Integer; {Number of player kills - Max=999}
Lays : Integer; {Number of player lays - Max=999}
Chief : Integer; {Times player has won the game - Max=999}
Hosp_Visits : Integer; {Number of hospital visits left - Max=999}
Hit_Points : Integer; {Players current hit points - Max=32000}
Hit_Max : Integer; {Players maximum hit_points - Max=32000}
Last_Day : Integer; {Day number}
Cash_On_Hand : Longint; {Cash in hand - Max=2147483647}
Bank : Longint; {Cash in bank - Max=2147483647}
Credit : Longint; {Current credit amount - Max=2147483647}
Loan_Amt : Longint; {Current loan amount - Max=2147483647}
Experience : Longint; {Current experience - Max=2147483647}
Atk_Trainer : Boolean; {Attacked the Trainer - T/F}
Partner : Boolean; {Player has a partner - T/F}
Radar : Boolean; {Player used radar/jammer - T/F}
Computer : Boolean; {Player used the computer - T/F}
Station : Boolean; {Player at station/hideout(safety) - T/F}
Special_Done : Boolean; {Player has done 'special' - T/F}
Played_Today : Boolean; {Player played today - T/F}
Got_Gas : Boolean; {Player got gasoline - T/F}
Got_Prisoner : Boolean; {Got prisoner - T/F}
Loan : Boolean; {Player has a loan - T/F}
Dead : Boolean; {Player dead - T/F}
Seen_Frank : Boolean; {Seen frank - T/F}
Flirted_Today : Boolean; {Seen whore - T/F}
Seen_Trainer : Boolean; {Seen trainer - T/F}
Ques_Trainer : Boolean; {Questioned Trainer - T/F}
OnNow : Boolean; {Player Online Now - T/F}
Busy : Boolean; {Player Busy}
CurrentNode : Integer; {Players Current Node Number}
State : String[15]; {Current State}
City : String[15]; {Current City}
Editor_Used : String[10]; {Date Editor Used}
VersionInfo : String[10]; {Version Information}
UsedCheats : Boolean; {Used cheat codes}
LotteryUses : Integer; {Number of uses left}
Reserved1 : String; {Reserved for future use}
Reserved2 : LongInt; {Reserved for future use}
Reserved3 : Integer; {Reserved for future use}
Reserved4 : Boolean; {Reserved for future use}
End;
╔════════════════════════════════════════════════════════════════════════════╗
║ - THE NPC PLAYER DATA FILE - ║
╚════════════════════════════════════════════════════════════════════════════╝
{CQ.NPC}
Type
NPC_Info = Record
Name : String[15];
GoodBad : Char;
Weapon : String[20];
Sex : Char;
AtkStr : Integer;
DefenseStr : Integer;
Experience : LongInt;
Cash : LongInt;
HitPoints : Integer;
MaxHit : Integer;
Dead : Boolean;
AddPlayer : Boolean;
End;
╔════════════════════════════════════════════════════════════════════════════╗
║ - THE PLAYER WEAPON AND ARMOR FILES - ║
╚════════════════════════════════════════════════════════════════════════════╝
{PWEAPON.DAT}
Type
PWeapon = Record
Name : String[20]; {Weapon Name 0-12}
Cost : LongInt; {Weapon Cost}
End;
{PARMOR.DAT}
Type
PArmor = Record
Name : String[20]; {Armor Name 0-12}
Cost : LongInt; {Armor Cost}
End;
╔════════════════════════════════════════════════════════════════════════════╗
║ - THE CRIME QUEST WORD FILE - ║
╚════════════════════════════════════════════════════════════════════════════╝
{CQWORDS.DAT}
Type
CQWordFile = Record
Scrambled, {Scrambled Word}
Unscrambled : String[20]; {Unscrambled Word}
End;
╔════════════════════════════════════════════════════════════════════════════╗
║ - THE GOOD AND BAD PERSON FILES - ║
╚════════════════════════════════════════════════════════════════════════════╝
{GOOD.DAT}
Type
Good_Info = Record
Name : String[15];
Crime : String[40];
Weapon : String[20];
End;
{BAD.DAT}
Type
Bad_Info = Record
Name : String[15];
Crime : String[40];
Weapon : String[20];
End;
╔════════════════════════════════════════════════════════════════════════════╗
║ - CLOSING NOTES - ║
╚════════════════════════════════════════════════════════════════════════════╝
Well... that should about do it for now! If you want to become an "OFFICAL"
Crime Quest IGM Author, make SURE that you send me the IGM(s) for approval
BEFORE you make them public. An offical Crime Quest IGM MUST reflect the
following words on the welcome screen:
"An Offical Crime Quest Internal Game Module" or "An Offical Crime Quest IGM"
You will then be given a CQIGM# to put on that screen reflecting the Official
Number you were given.