Door Game Help????
From
Becky Mcmillen@1:129/305 to
All on Thursday, January 17, 2008 21:42:43
Hello,
I am having a bit of trouble with a door game I am making. I cannot for the life of me get the user data to read/write from a user.dat file. Here is a snippet of code and maybe someone can tell me where I am going wrong to search the record for a user (Using DDPLUS) for a user name, and if found pull it out. If not, create a new? Thank You In Advance!
{$M 19456,0,655360}
program game;
uses crt, ddplus;
type UserRecord = Record
Name1 : string[30]; {first name}
Name2 : string[30]; {last name}
Hps : longint; {hitpoints}
Exp : longint; {experiece}
Score : longint; {score}
Level : longint; {level}
end;
UserArray = Array [1..500] of UserRecord;
var
Name1, Name2: String[30];
Hps, Exp, Score, Level: longint;
I, X : Integer;
CH : char;
FOUND: BOOLEAN;
SysOp: UserArray;
Users: UserRecord;
UserFile: file of UserRecord;
{***************************************************************}
Procedure NewPlayer;
begin
Assign(UserFile, 'SYSUSERS.DAT');
{$I-}
reset (UserFile);
{$I+}
X:=filesize(UserFile);
I:=1;
For I:=1 to X do begin
read (UserFile, Users);
Users.Name1 := User_First_Name;
Users.Name2 := User_Last_Name;
Users.Hps := 25;
Users.Exp := 0;
Users.Score := 0;
Users.Level := 1;
end;
end;
{***************************************************************}
Procedure Show;
begin
swrite('User Name '+Users.Name1 +' '+ Users.Name2);
end;
{***************************************************************}
Procedure AssignData (VAR OutData : UserRecord);
begin
with OutData do
begin
Users.Name1 := User_First_Name;
Users.Name2 := User_Last_Name;
Users.Hps := 25;
Users.Exp := 0;
Users.Score := 0;
Users.Level := 1;
end;
end;
{**************************************************************}
Procedure Data;
var
UserFile : File Of UserArray;
Begin
assign(UserFile, 'SYSUSERS.DAT');
{ rewrite(UserFile);}
reset(UserFile);
read(UserFile, SysOp);
I:=1;
Found:= FALSE;
While (I <=750) and (Not Found) do
Begin
write(I);
with SysOp[I] do
Found := (Users.Name1 = User_First_Name) and (Users.Name2 = User_Last_Name);
inc(I);
end;
If Found = TRUE then begin
{ sclrscr; }
swriteln('Welcome Back!');
I:=I-1;
writeln ('User #');
writeln (I);
readln;
assigndata(SysOp[I]);
reset(UserFile);
write(UserFile, SysOp);
Close(UserFile);
end
else begin
{ sclrscr;}
swriteln('YOU ARE NEW!!!!!!!!!!!!!!!');
I:=1;
while (SysOp[I].Name1 <> '') and (I <=750) do
inc(I);
assigndata(SysOp[I]);
reset(UserFile);
write(UserFile, SysOp);
Close(UserFile);
end;
end;
{***************************************************************}
Begin
InitDoorDriver('GAME.CTL');
NewPlayer;
Data;
AssignData(SysOp[I]);
Show;
readln;
end.
--- Renegade v12-07.7/Alpha
* Origin: The Titantic BBS Telnet - ttb.slyip.com (1:129/305)