[contents of README]

ProgressQuest v6.2(probably pre-release)
-----------------------------------------
This directory represents an ex post facto rendering of pq6 in its
various versions in svn, so that changes will be trackable thataway.

The version as of this moment in svn is 6.2, but this is probably not
the final 6.2. That will come in the next checkin.

(I didn't add this file in PQ 6.0, but after that you can use this README
to trace the checkin history using svn.)
This commit is contained in:
Eric Fredricksen
2006-12-24 20:08:53 +00:00
parent 1e1e8379a6
commit 51792e632d
133 changed files with 793 additions and 19106 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -105,7 +105,7 @@ object FrontForm: TFrontForm
Height = 13 Height = 13
Align = alBottom Align = alBottom
Alignment = taCenter Alignment = taCenter
Caption = #169' 2002 Eric Fredricksen - v6.1' Caption = #169' 2002 Eric Fredricksen - v6.2'
Color = clWhite Color = clWhite
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = 11382189 Font.Color = 11382189
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+4 -4
View File
@@ -1,6 +1,6 @@
object MainForm: TMainForm object MainForm: TMainForm
Left = 226 Left = 281
Top = 145 Top = 121
Width = 682 Width = 682
Height = 569 Height = 569
HorzScrollBar.Visible = False HorzScrollBar.Visible = False
@@ -551,8 +551,8 @@ object MainForm: TMainForm
ParentColor = False ParentColor = False
end end
object fQueue: TListBox object fQueue: TListBox
Left = 12 Left = 48
Top = 72 Top = 76
Width = 49 Width = 49
Height = 45 Height = 45
ItemHeight = 13 ItemHeight = 13
+262 -59
View File
@@ -5,12 +5,12 @@ interface
uses uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, ImgList, Menus, Psock, Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, ImgList, Menus, ShellAPI;
NMHttp, ShellAPI;
const const
RevString = '&rev=3'; RevString = '&rev=4';
wmIconTray = WM_USER + Ord('t'); wmIconTray = WM_USER + Ord('t');
kFileExt = '.pq';
type type
TMainForm = class(TForm) TMainForm = class(TForm)
@@ -84,11 +84,23 @@ type
procedure TriggerAutosizes; procedure TriggerAutosizes;
function GameSaveName: String; function GameSaveName: String;
procedure OnTrayMessage(var Msg: TMessage); message wmIconTray; procedure OnTrayMessage(var Msg: TMessage); message wmIconTray;
procedure OnSysCommand(Var Msg : TWMSysCommand); message WM_SYSCOMMAND; procedure OnSysCommand(var Msg : TWMSysCommand); message WM_SYSCOMMAND;
procedure Guildify; procedure Guildify;
procedure ClearAllSelections; procedure ClearAllSelections;
procedure OnQueryEndSession(var Msg : TMessage); message WM_QUERYENDSESSION;
procedure OnEndSession(var Msg : TMessage); message WM_ENDSESSION;
procedure RestoreIt;
function AuthenticateUrl(url: String): String;
procedure Log(line: String);
procedure ExportCharSheet;
public public
FTrayIcon: TNotifyIconData; FTrayIcon: TNotifyIconData;
FReportSave: Boolean;
FLogEvents: Boolean;
FMakeBackups: Boolean;
FMinToTray: Boolean;
FExportSheets: Boolean;
FSaveFileName: String;
procedure MinimizeIt; procedure MinimizeIt;
procedure LoadGame(name: String); procedure LoadGame(name: String);
function SaveGame: Boolean; function SaveGame: Boolean;
@@ -128,21 +140,65 @@ procedure Navigate(url: String);
implementation implementation
uses NewGuy, Math, Config, Front, zlibex, SelServ, Login, mmsystem; uses Web, StrUtils, NewGuy, Math, Config, Front, zlibex, SelServ, Login,
mmsystem, Registry, ShlObj;
{$R *.dfm} {$R *.dfm}
{ D E F I N E CHEATS} {$DEFINE CHEATS}
// Returns '' if not there, which is lame, but okay for my purposes
function RegRead(root: HKEY; path, name: String): String;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := root;
if Reg.OpenKey(path, false) then
Result := Reg.ReadString(name);
Reg.CloseKey;
finally
Reg.Free;
end;
end;
procedure RegWrite(root: HKEY; path, name, value: String);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := root;
Reg.OpenKey(path, true);
Reg.WriteString(name, value);
Reg.CloseKey;
finally
Reg.Free;
end;
end;
procedure MakeFileAssociations; procedure MakeFileAssociations;
const
kPQFileType = 'ProgressQuest.GameSave';
var
kOpenCommand: String;
begin begin
// HKCR/.pq (Default)="pqfile" kOpenCommand := '"' + Application.ExeName + '" "%1"';
// HKCR/pqfile (Default)="Progress Quest saved game" RegWrite(HKEY_CLASSES_ROOT, kFileExt,'', kPQFileType);
// HKCR/pqfile/shell (Default)="open" RegWrite(HKEY_CLASSES_ROOT, kPQFileType, '', 'Progresss Quest saved game');
// HKCR/pqfile/shell/open/command (Default)='c:\blah\pq.exe "%1"' RegWrite(HKEY_CLASSES_ROOT, kPQFileType + '\DefaultIcon', '', Application.ExeName + ',0');
RegWrite(HKEY_CLASSES_ROOT, kPQFileType + '\Shell\Open', '', '&Open');
if RegRead(HKEY_CLASSES_ROOT, kPQFileType + '\Shell\Open\Command', '') <> kOpenCommand then begin
RegWrite(HKEY_CLASSES_ROOT, kPQFileType + '\Shell\Open\Command', '', kOpenCommand);
// Notify Windows Explorer to realize we added this. In case this is slow
// I don't do this unless I'm sure this one has changed.
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
end; end;
procedure TMainForm.MinimizeIt; procedure TMainForm.MinimizeIt;
begin begin
if not FMinToTray then Exit;
with FTrayIcon do with FTrayIcon do
begin begin
cbSize := SizeOf(FTrayIcon); cbSize := SizeOf(FTrayIcon);
@@ -151,7 +207,7 @@ begin
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP; uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := wmIconTray; uCallbackMessage := wmIconTray;
hIcon := Application.Icon.Handle; hIcon := Application.Icon.Handle;
StrPCopy(szTip, Application.Title); StrPCopy(szTip, Caption);
//a.szTip := 'Progress Quest'; //a.szTip := 'Progress Quest';
end; end;
Application.Minimize; Application.Minimize;
@@ -161,30 +217,24 @@ end;
procedure TMainForm.OnSysCommand(var Msg: TWMSysCommand); procedure TMainForm.OnSysCommand(var Msg: TWMSysCommand);
begin begin
if (Msg.CmdType = SC_MINIMIZE) then if (Msg.CmdType = SC_MINIMIZE) and FMinToTray then
MinimizeIt(); MinimizeIt();
inherited; inherited;
end; end;
procedure TMainForm.OnTrayMessage(var Msg: TMessage); procedure TMainForm.RestoreIt;
var
p : TPoint;
begin
case Msg.lParam of
WM_LBUTTONDOWN, WM_RBUTTONDOWN:
begin begin
ShowWindow(Application.Handle, SW_SHOW); ShowWindow(Application.Handle, SW_SHOW);
Application.Restore; Application.Restore;
Shell_NotifyIcon(NIM_DELETE, @MainForm.FTrayIcon); Shell_NotifyIcon(NIM_DELETE, @MainForm.FTrayIcon);
end; end;
{ WM_RBUTTONDOWN:
procedure TMainForm.OnTrayMessage(var Msg: TMessage);
//var p : TPoint;
begin begin
//SetForegroundWindow(Handle); case Msg.lParam of
//GetCursorPos(p); WM_LBUTTONDOWN, WM_RBUTTONDOWN:
//PopUpMenu1.Popup(p.x, p.y); RestoreIt;
//PostMessage(Handle, WM_NULL, 0, 0);
end;
}
end; end;
end; end;
@@ -195,6 +245,8 @@ begin
//Shell_NotifyIcon(NIM_ADD, @MainForm.FTrayIcon); //Shell_NotifyIcon(NIM_ADD, @MainForm.FTrayIcon);
end; end;
MainForm.Timer1.Enabled := True; MainForm.Timer1.Enabled := True;
// BS location for this but
MainForm.Caption := 'ProgressQuest - ' + ChangeFileExt(MainForm.GameSaveName, '');
end; end;
function TMainForm.GetPasskey: Integer; begin Result := Traits.Tag; end; function TMainForm.GetPasskey: Integer; begin Result := Traits.Tag; end;
@@ -327,7 +379,7 @@ function Young(m: Integer; s: String): String;
begin begin
Result := IntToStr(m) + s; // in case I screw up Result := IntToStr(m) + s; // in case I screw up
case -m of case -m of
-5,5: Result := 'fœtal ' + s; -5,5: Result := 'fetal ' + s;
-4,4: Result := 'baby ' + s; -4,4: Result := 'baby ' + s;
-3,3: Result := 'preadolescent ' + s; -3,3: Result := 'preadolescent ' + s;
-2,2: Result := 'teenage ' + s; -2,2: Result := 'teenage ' + s;
@@ -708,12 +760,14 @@ var
lev, level, l, i, montag: Integer; lev, level, l, i, montag: Integer;
m: string; m: string;
begin begin
lev := 0; // Quell stupid compiler warning
with QuestBar do begin with QuestBar do begin
Position := 0; Position := 0;
Max := 50 + Random(100); Max := 50 + Random(100);
end; end;
with Quests do begin with Quests do begin
if Items.Count > 0 then begin if Items.Count > 0 then begin
Log('Quest completed: ' + Items[Items.Count-1].Caption);
Items[Items.Count-1].StateIndex := 1; Items[Items.Count-1].StateIndex := 1;
case Random(4) of case Random(4) of
0: WinSpell; 0: WinSpell;
@@ -770,6 +824,7 @@ begin
fQuest.Caption := ''; fQuest.Caption := '';
end; end;
end; end;
Log('Commencing quest: ' + Caption);
StateIndex := 0; StateIndex := 0;
MakeVisible(false); MakeVisible(false);
end; end;
@@ -849,9 +904,79 @@ begin
Brag('a'); Brag('a');
end; end;
procedure TMainForm.Log(line: String);
var
stamp: String;
logname: String;
log: TextFile;
begin
if FLogEvents then begin
logname := ChangeFileExt(GameSaveName, '.log');
DateTimeToString(stamp, '[yyyy-mm-dd hh:nn:ss]', Now);
AssignFile(log, logname);
if FileExists(logname) then Append(log) else Rewrite(log);
WriteLn(log, stamp + ' ' + line);
Flush(log);
CloseFile(log);
end;
end;
procedure TMainForm.ExportCharSheet;
var
f: TextFile;
i: Integer;
begin
AssignFile(f, ChangeFileExt(GameSaveName, '.sheet'));
Rewrite(f);
Write(f,Get(Traits,'Name'));
if GetHostName <> '' then
Write(f,' [' + GetHostName + ']');
WriteLn(f);
WriteLn(f,Get(Traits,'Race') + ' ' + Get(Traits,'Class'));
WriteLn(f,Format('Level %d (exp. %d/%d)', [GetI(Traits,'Level'), ExpBar.Position, ExpBar.Max]));
//WriteLn(f,'Level ' + Get(Traits,'Level') + ' (' + ExpBar.Hint + ')');
WriteLn(f);
with Plots do if Items.Count > 0 then
WriteLn(f,'Plot stage: ' + Items[Items.Count-1].Caption + ' (' + PlotBar.Hint + ')');
with Quests do if Items.Count > 0 then
WriteLn(f,'Quest: ' + Items[Items.Count-1].Caption + ' (' + QuestBar.Hint + ')');
WriteLn(f);
WriteLn(f, 'Stats:');
WriteLn(f, Format(' STR%7d', [GetI(Stats,'STR')]));
WriteLn(f, Format(' CON%7d', [GetI(Stats,'CON')]));
WriteLn(f, Format(' DEX%7d', [GetI(Stats,'DEX')]));
WriteLn(f, Format(' INT%7d', [GetI(Stats,'INT')]));
WriteLn(f, Format(' WIS%7d HP Max%7d', [GetI(Stats,'WIS'), GetI(Stats,'HP Max')]));
WriteLn(f, Format(' CHA%7d MP Max%7d', [GetI(Stats,'CHA'), GetI(Stats,'MP Max')]));
WriteLn(f);
WriteLn(f, 'Equipment:');
for i := 1 to Equips.Items.Count-1 do
if Get(Equips,i) <> '' then
WriteLn(f, ' ' + LeftStr(Equips.Items[i].Caption + ' ', 12) + Get(Equips,i));
WriteLn(f);
WriteLn(f, 'Spell Book:');
with Spells do
for i := 1 to Items.Count-1 do
WriteLn(f, ' ' + Items[i].Caption + ' ' + Get(Spells,i));
WriteLn(f);
WriteLn(f, 'Inventory (' + EncumBar.Hint + '):');
WriteLn(f, ' ' + Indefinite('gold piece', GetI(Inventory, 'Gold')));
with Inventory do
for i := 2 to Items.Count-1 do
if Pos(' of ', Items[i].Caption) > 0
then WriteLn(f, ' ' + Definite(Items[i].Caption, GetI(Inventory,i)))
else WriteLn(f, ' ' + Indefinite(Items[i].Caption, GetI(Inventory,i)));
WriteLn(f);
WriteLn(f, '-- ' + DateTimeToStr(Now));
WriteLn(f, '-- Progress Quest 6.2 - http://progressquest.com/');
Flush(f);
CloseFile(f);
end;
procedure TMainForm.Task(caption: String; msec: Integer); procedure TMainForm.Task(caption: String; msec: Integer);
begin begin
Kill.SimpleText := caption + '...'; Kill.SimpleText := caption + '...';
Log(Kill.SimpleText);
with TaskBar do begin with TaskBar do begin
Position := 0; Position := 0;
Max := msec; Max := msec;
@@ -859,8 +984,19 @@ begin
end; end;
procedure TMainForm.Add(list: TListView; key: String; value: Integer); procedure TMainForm.Add(list: TListView; key: String; value: Integer);
var line: String;
begin begin
Put(list, key, value + GetI(list,key)); Put(list, key, value + GetI(list,key));
if value = 0 then Exit;
if value > 0 then line := 'Gained' else line := 'Lost';
if key = 'Gold' then begin
key := 'gold piece';
if value > 0 then line := 'Got paid' else line := 'Spent';
end;
if value < 0 then value := -value;
line := line + ' ' + Indefinite(key, value);
Log(line);
end; end;
procedure TMainForm.AddR(list: TListView; key: String; value: Integer); procedure TMainForm.AddR(list: TListView; key: String; value: Integer);
@@ -982,7 +1118,7 @@ begin
Dequeue(); Dequeue();
end else with TaskBar do begin end else with TaskBar do begin
elapsed := timeGetTime - Timer1.Tag; elapsed := LongInt(timeGetTime) - LongInt(Timer1.Tag);
if elapsed > 100 then elapsed := 100; if elapsed > 100 then elapsed := 100;
if elapsed < 0 then elapsed := 0; if elapsed < 0 then elapsed := 0;
Position := Position + elapsed;//Integer(Timer1.Interval); Position := Position + elapsed;//Integer(Timer1.Interval);
@@ -998,6 +1134,14 @@ begin
TaskBar.Position := 0; TaskBar.Position := 0;
ExpBar.Position := 0; ExpBar.Position := 0;
Encumbar.Position := 0; Encumbar.Position := 0;
FReportSave := true;
FLogEvents := false;
FMakeBackups := false;
FMinToTray := true;
FExportSheets := false;
MakeFileAssociations;
end; end;
procedure TMainForm.SpeedButton1Click(Sender: TObject); procedure TMainForm.SpeedButton1Click(Sender: TObject);
@@ -1056,15 +1200,35 @@ end;
procedure TMainForm.FormShow(Sender: TObject); procedure TMainForm.FormShow(Sender: TObject);
var var
Done: Boolean; done, exportandexit: Boolean;
i: Integer;
begin begin
if Timer1.Enabled then Exit; if Timer1.Enabled then Exit;
Done := false; done := false;
if ParamCount >= 1 then begin exportandexit := false;
LoadGame(ParamStr(1)); for i := 1 to ParamCount do begin
NewGuyForm.Server.OnSuccess := nil; if ParamStr(i) = '-log'
NewGuyForm.Server.OnFailure := nil; then FLogEvents := true
end else else if ParamStr(i) = '-backup'
then FMakeBackups := true
else if ParamStr(i) = '-no-report-save'
then FReportSave := false
else if ParamStr(i) = '-no-tray'
then FMinToTray := false
else if ParamStr(i) = '-export'
then FExportSheets := true
else if ParamStr(i) = '-export-only'
then exportandexit := true
else begin
LoadGame(ParamStr(i));
if exportandexit then begin
ExportCharSheet;
Timer1.Enabled := false;
Close;
end;
Exit;
end;
end;
while not Done do begin while not Done do begin
SetHostName(''); SetHostName('');
SetHostAddr(''); SetHostAddr('');
@@ -1072,14 +1236,12 @@ begin
SetPassword(''); SetPassword('');
case FrontForm.ShowModal of case FrontForm.ShowModal of
mrOk: begin mrOk: begin
Done := RollCharacter; done := RollCharacter;
end; end;
mrRetry: begin mrRetry: begin
// load // load
if FrontForm.OpenDialog1.Execute then begin if FrontForm.OpenDialog1.Execute then begin
LoadGame(FrontForm.OpenDialog1.Filename); LoadGame(FrontForm.OpenDialog1.Filename);
NewGuyForm.Server.OnSuccess := nil;
NewGuyForm.Server.OnFailure := nil;
Done := true; Done := true;
end; end;
end; end;
@@ -1134,10 +1296,13 @@ var
m: TMemoryStream; m: TMemoryStream;
i: Integer; i: Integer;
begin begin
Log('Saving game: ' + GameSaveName);
Result := true; Result := true;
try try
DeleteFile(GameSaveName + '.bak'); if FMakeBackups then begin
MoveFile(PChar(GameSaveName), PChar(GameSaveName + '.bak')); DeleteFile(ChangeFileExt(GameSaveName, '.bak'));
MoveFile(PChar(GameSaveName), PChar(ChangeFileExt(GameSaveName, '.bak')));
end;
f := TFileStream.Create(GameSaveName, fmCreate); f := TFileStream.Create(GameSaveName, fmCreate);
except except
on EfCreateError do begin on EfCreateError do begin
@@ -1164,6 +1329,7 @@ var
m: TStream; m: TStream;
i: Integer; i: Integer;
begin begin
FSaveFileName := name;
m := TMemoryStream.Create; m := TMemoryStream.Create;
f := TFileStream.Create(name, fmOpenRead); f := TFileStream.Create(name, fmOpenRead);
try try
@@ -1187,6 +1353,7 @@ begin
for i := 0 to ComponentCount-1 do for i := 0 to ComponentCount-1 do
m.ReadComponent(Components[i]); m.ReadComponent(Components[i]);
m.Free; m.Free;
Log('Loaded game: ' + name);
StartTimer; StartTimer;
TriggerAutosizes; TriggerAutosizes;
end; end;
@@ -1208,15 +1375,23 @@ begin
Timer1.Enabled := false; Timer1.Enabled := false;
Shell_NotifyIcon(NIM_DELETE, @FTrayIcon); Shell_NotifyIcon(NIM_DELETE, @FTrayIcon);
if SaveGame then if SaveGame then
if FReportSave then
ShowMessage('Game saved as ' + GameSaveName); ShowMessage('Game saved as ' + GameSaveName);
end; end;
FReportSave := true;
Action := caFree;
end; end;
function TMainForm.GameSaveName: String; function TMainForm.GameSaveName: String;
begin begin
Result := Get(Traits,'Name'); if FSaveFileName = '' then begin
if GetHostName <> '' then Result := Result + ' [' + GetHostName + ']'; FSaveFileName := Get(Traits,'Name');
Result := Result + '.pq'; if GetHostName <> '' then
FSaveFileName := FSaveFileName + ' [' + GetHostName + ']';
FSaveFileName := FSaveFileName + kFileExt;
FSaveFileName := ExpandFileName(PChar(FSaveFileName));
end;
Result := FSaveFileName;
end; end;
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word; procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
@@ -1266,11 +1441,13 @@ end;
procedure TMainForm.Brag(trigger: String); procedure TMainForm.Brag(trigger: String);
var var
url: string; url, body: string;
best, i: Integer; best, i: Integer;
const const
flat = 1; flat = 1;
begin begin
if FExportSheets then
ExportCharSheet;
if GetPasskey = 0 then Exit; // not a online game! if GetPasskey = 0 then Exit; // not a online game!
url := 'cmd=b&t=' + trigger; url := 'cmd=b&t=' + trigger;
with Traits do for i := 0 to Items.Count-1 do with Traits do for i := 0 to Items.Count-1 do
@@ -1293,26 +1470,31 @@ begin
url := url + '&a=' + UrlEncode(Plots.Items[Plots.Items.Count-1].Caption); url := url + '&a=' + UrlEncode(Plots.Items[Plots.Items.Count-1].Caption);
url := url + '&h=' + UrlEncode(GetHostName); url := url + '&h=' + UrlEncode(GetHostName);
url := url + RevString; url := url + RevString;
//url := url + '&passkey=' + IntToStr((not GetI(Traits,'Level') * 9831) xor GetPasskey);
url := url + '&p=' + IntToStr(LFSR(url, GetPasskey)); url := url + '&p=' + IntToStr(LFSR(url, GetPasskey));
url := url + '&m=' + UrlEncode(GetMotto); url := url + '&m=' + UrlEncode(GetMotto);
with NewGuyForm.Server do try url := AuthenticateUrl(GetHostAddr + url);
Abort; try
HeaderInfo.UserId := GetLogin; body := DownloadString(url);
HeaderInfo.Password := GetPassword; if (LowerCase(Split(body,0)) = 'report') then
OnSuccess := NewGuyForm.BragSuccess; ShowMessage(Split(body,1));
Get(GetHostAddr + url);
except except
on ESockError do begin on EWebError do begin
// 'ats okay. // 'ats okay.
Abort;
end; end;
end; end;
end; end;
function TMainForm.AuthenticateUrl(url: String): String;
begin
if (GetLogin <> '') or (GetPassword <> '') then
Result := StuffString(url, 8, 0, GetLogin+':'+GetPassword+'@')
else
Result := url;
end;
procedure TMainForm.Guildify; procedure TMainForm.Guildify;
var var
url: string; url, s,b: string;
i: Integer; i: Integer;
begin begin
if GetPasskey = 0 then Exit; // not a online game! if GetPasskey = 0 then Exit; // not a online game!
@@ -1323,19 +1505,40 @@ begin
url := url + RevString; url := url + RevString;
url := url + '&guild=' + UrlEncode(GetGuild); url := url + '&guild=' + UrlEncode(GetGuild);
url := url + '&p=' + IntToStr(LFSR(url, GetPasskey)); url := url + '&p=' + IntToStr(LFSR(url, GetPasskey));
with NewGuyForm.GuildGet do try url := AuthenticateUrl(GetHostAddr + url);
Abort; try
HeaderInfo.UserId := GetLogin; b := DownloadString(url);
HeaderInfo.Password := GetPassword; s := Take(b);
Get(GetHostAddr + url); if s <> '' then ShowMessage(s);
s := Take(b);
if s <> '' then Navigate(s);
except except
on ESockError do begin on EWebError do begin
// 'ats okay. // 'ats okay.
Abort; Abort;
end; end;
end; end;
end; end;
procedure TMainForm.OnQueryEndSession(var Msg: TMessage);
var Action: TCloseAction;
begin
FReportSave := false;
FormClose(Self, Action);
ReplyMessage(-1);
end;
procedure TMainForm.OnEndSession(var Msg: TMessage);
var Action: TCloseAction;
begin
Msg.Result := 0;
if Msg.wParam <> 0 then begin
FReportSave := false;
FormClose(Self, Action);
end;
ReplyMessage(0);
end;
initialization initialization
RegisterClasses([TMainForm]); RegisterClasses([TMainForm]);
end. end.
BIN
View File
Binary file not shown.
+2 -31
View File
@@ -1,6 +1,6 @@
object NewGuyForm: TNewGuyForm object NewGuyForm: TNewGuyForm
Left = 323 Left = 203
Top = 164 Top = 146
BorderIcons = [] BorderIcons = []
BorderStyle = bsDialog BorderStyle = bsDialog
Caption = 'Progress Quest - New Character' Caption = 'Progress Quest - New Character'
@@ -354,21 +354,6 @@ object NewGuyForm: TNewGuyForm
TabOrder = 8 TabOrder = 8
Visible = False Visible = False
end end
object Server: TNMHTTP
Port = 0
ReportLevel = 0
Body = 'Default.htm'
Header = 'Head.txt'
HeaderInfo.Referer = 'PQ6.1'
InputFileMode = False
OutputFileMode = False
OnAboutToSend = ServerAboutToSend
OnSuccess = ServerSuccess
OnFailure = ServerFailure
ProxyPort = 0
Left = 332
Top = 312
end
object PoorCodeDesign: TNMURL object PoorCodeDesign: TNMURL
Left = 336 Left = 336
Top = 268 Top = 268
@@ -378,18 +363,4 @@ object NewGuyForm: TNewGuyForm
Left = 332 Left = 332
Top = 208 Top = 208
end end
object GuildGet: TNMHTTP
Port = 0
ReportLevel = 0
Body = 'Default.htm'
Header = 'Head.txt'
HeaderInfo.Referer = 'PQ6.1'
InputFileMode = False
OutputFileMode = False
OnAboutToSend = ServerAboutToSend
OnSuccess = GuildGetSuccess
ProxyPort = 0
Left = 332
Top = 340
end
end end
+16 -44
View File
@@ -5,7 +5,7 @@ interface
uses uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Psock, NMHttp, NMURL, AppEvnts; Dialogs, StdCtrls, ExtCtrls, ComCtrls, AppEvnts, NMURL;
type type
TNewGuyForm = class(TForm) TNewGuyForm = class(TForm)
@@ -32,27 +32,21 @@ type
Name: TLabeledEdit; Name: TLabeledEdit;
OldRolls: TListBox; OldRolls: TListBox;
Button2: TButton; Button2: TButton;
Server: TNMHTTP;
PoorCodeDesign: TNMURL; PoorCodeDesign: TNMURL;
Account: TLabeledEdit; Account: TLabeledEdit;
Password: TLabeledEdit; Password: TLabeledEdit;
ApplicationEvents1: TApplicationEvents; ApplicationEvents1: TApplicationEvents;
GuildGet: TNMHTTP;
procedure RerollClick(Sender: TObject); procedure RerollClick(Sender: TObject);
procedure UnrollClick(Sender: TObject); procedure UnrollClick(Sender: TObject);
procedure ServerSuccess(Cmd: CmdType);
procedure SoldClick(Sender: TObject); procedure SoldClick(Sender: TObject);
procedure ServerFailure(Cmd: CmdType);
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure ServerAboutToSend(Sender: TObject);
procedure ApplicationEvents1Minimize(Sender: TObject); procedure ApplicationEvents1Minimize(Sender: TObject);
procedure GuildGetSuccess(Cmd: CmdType);
private private
procedure RollEm; procedure RollEm;
function GetAccount: String; function GetAccount: String;
function GetPassword: String; function GetPassword: String;
procedure ParseSoldResponse(body: String);
public public
procedure BragSuccess(Cmd: CmdType);
function Go: Boolean; function Go: Boolean;
end; end;
@@ -63,7 +57,7 @@ function UrlEncode(s: string): string;
implementation implementation
uses Main, SelServ; uses Main, SelServ, StrUtils, Web;
{$R *.dfm} {$R *.dfm}
@@ -148,26 +142,18 @@ begin
RollEm; RollEm;
end; end;
procedure TNewGuyForm.ServerSuccess(Cmd: CmdType); procedure TNewGuyForm.ParseSoldResponse(body: String);
begin begin
if (LowerCase(Split(Server.Body,0)) = 'ok') then begin if (LowerCase(Split(body,0)) = 'ok') then begin
MainForm.SetPasskey(Split(Server.Body,1)); MainForm.SetPasskey(Split(body,1));
MainForm.SetLogin(GetAccount); MainForm.SetLogin(GetAccount);
MainForm.SetPassword(GetPassword); MainForm.SetPassword(GetPassword);
Server.OnSuccess := nil;
Server.OnFailure := nil;
ModalResult := mrOk; ModalResult := mrOk;
end else begin end else begin
ShowMessage(Server.Body); ShowMessage(body);
end; end;
end; end;
procedure TNewGuyForm.BragSuccess(Cmd: CmdType);
begin
if (LowerCase(Split(Server.Body,0)) = 'report') then
ShowMessage(Split(Server.Body,1));
end;
function TNewGuyForm.GetAccount: String; function TNewGuyForm.GetAccount: String;
begin begin
Result := ''; Result := '';
@@ -189,20 +175,19 @@ begin
try try
Screen.Cursor := crHourglass; Screen.Cursor := crHourglass;
try try
Server.HeaderInfo.UserId := GetAccount; if (MainForm.Label8.Tag and 16) = 0
Server.HeaderInfo.Password := GetPassword; then url := MainForm.GetHostAddr
else url := 'http://www.progressquest.com/create.php?';
if (GetAccount <> '') or (GetPassword <> '') then
url := StuffString(url, 8, 0, GetAccount+':'+GetPassword+'@');
args := 'cmd=create' + args := 'cmd=create' +
'&name=' + UrlEncode(Name.Text) + '&name=' + UrlEncode(Name.Text) +
'&realm=' + UrlEncode(MainForm.GetHostName) + '&realm=' + UrlEncode(MainForm.GetHostName) +
RevString; RevString;
if (MainForm.Label8.Tag and 16) = 0 ParseSoldResponse(DownloadString(url + args));
then url := MainForm.GetHostAddr
else url := 'http://www.progressquest.com/create.php?';
Server.Get(url + args);
except except
on ESockError do begin on EWebError do begin
ShowMessage('Error connecting to server'); ShowMessage('Error connecting to server');
Server.Abort;
end; end;
end; end;
finally finally
@@ -211,31 +196,18 @@ begin
end; end;
end; end;
procedure TNewGuyForm.ServerFailure(Cmd: CmdType); {
begin
ShowMessage('Connection to server ' + MainForm.GetHostName + ' failed');
end;
procedure TNewGuyForm.ServerAboutToSend(Sender: TObject); procedure TNewGuyForm.ServerAboutToSend(Sender: TObject);
begin begin
Server.SendHeader.Values['Content-Type'] := 'text/plain'; Server.SendHeader.Values['Content-Type'] := 'text/plain';
Server.SendHeader.Values['Motto'] := MainForm.GetMotto; Server.SendHeader.Values['Motto'] := MainForm.GetMotto;
Server.SendHeader.Values['Guild'] := MainForm.GetGuild; Server.SendHeader.Values['Guild'] := MainForm.GetGuild;
end; end;
}
procedure TNewGuyForm.ApplicationEvents1Minimize(Sender: TObject); procedure TNewGuyForm.ApplicationEvents1Minimize(Sender: TObject);
begin begin
MainForm.MinimizeIt; MainForm.MinimizeIt;
end; end;
procedure TNewGuyForm.GuildGetSuccess(Cmd: CmdType);
var s,b: string;
begin
b := GuildGet.Body;
s := Take(b);
if s <> '' then ShowMessage(s);
s := Take(b);
if s <> '' then Navigate(s);
end;
end. end.
+8 -7
View File
@@ -1,9 +1,10 @@
ProgressQuest v6.1 ProgressQuest v6.2(probably pre-release)
------------------ -----------------------------------------
This is an ex post facto rendering of pq6 in its various versions in This directory represents an ex post facto rendering of pq6 in its
svn, so that changes will be trackable thataway. various versions in svn, so that changes will be trackable thataway.
The version as of this moment in svn is 6.1 The version as of this moment in svn is 6.2, but this is probably not
the final 6.2. That will come in the next checkin.
I didn't add this file in PQ 6.0, but after that you can use this README (I didn't add this file in PQ 6.0, but after that you can use this README
to trace the checkin history using svn. to trace the checkin history using svn.)
BIN
View File
Binary file not shown.
+4 -18
View File
@@ -1,6 +1,6 @@
object ServerSelectForm: TServerSelectForm object ServerSelectForm: TServerSelectForm
Left = 279 Left = 292
Top = 201 Top = 57
Width = 490 Width = 490
Height = 381 Height = 381
Caption = 'Progress Quest - Select Realm' Caption = 'Progress Quest - Select Realm'
@@ -207,25 +207,11 @@ object ServerSelectForm: TServerSelectForm
Visible = False Visible = False
OnChange = AccessCodeChange OnChange = AccessCodeChange
end end
object ServerLoader: TNMHTTP
Port = 0
ReportLevel = 0
Body = 'Default.htm'
Header = 'Head.txt'
HeaderInfo.Cookie = 'yumyum'
HeaderInfo.Password = 'chickens'
InputFileMode = False
OutputFileMode = False
OnSuccess = ServerLoaderSuccess
ProxyPort = 0
Left = 220
Top = 152
end
object Timer1: TTimer object Timer1: TTimer
Enabled = False Enabled = False
Interval = 10 Interval = 10
OnTimer = Timer1Timer OnTimer = Timer1Timer
Left = 116 Left = 224
Top = 4 Top = 76
end end
end end
+16 -15
View File
@@ -4,8 +4,8 @@ unit SelServ;
interface interface
uses uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Windows, Messages, SysUtils, Forms, Dialogs, StdCtrls, ExtCtrls,
Dialogs, StdCtrls, ComCtrls, ExtCtrls, Psock, NMHttp; ComCtrls, Controls, Classes;
type type
TServerSelectForm = class(TForm) TServerSelectForm = class(TForm)
@@ -16,13 +16,11 @@ type
Desc: TRichEdit; Desc: TRichEdit;
Select: TButton; Select: TButton;
Button2: TButton; Button2: TButton;
ServerLoader: TNMHTTP;
Descs: TListBox; Descs: TListBox;
Timer1: TTimer; Timer1: TTimer;
Hosts: TListBox; Hosts: TListBox;
Options: TListBox; Options: TListBox;
AccessCode: TLabeledEdit; AccessCode: TLabeledEdit;
procedure ServerLoaderSuccess(Cmd: CmdType);
procedure ServersClick(Sender: TObject); procedure ServersClick(Sender: TObject);
procedure SelectClick(Sender: TObject); procedure SelectClick(Sender: TObject);
procedure AccessCodeChange(Sender: TObject); procedure AccessCodeChange(Sender: TObject);
@@ -31,6 +29,7 @@ type
private private
procedure Fetch(path: String); procedure Fetch(path: String);
function CurrentOpts: Integer; function CurrentOpts: Integer;
procedure ParseServerList(body: String);
public public
function Go: Boolean; function Go: Boolean;
end; end;
@@ -42,7 +41,7 @@ function Take(var s: String): String;
implementation implementation
uses NewGuy, Login, Main; uses NewGuy, Login, Main, Web;
{$R *.dfm} {$R *.dfm}
@@ -57,12 +56,12 @@ begin
end; end;
end; end;
procedure TServerSelectForm.ServerLoaderSuccess(Cmd: CmdType); procedure TServerSelectForm.ParseServerList(body: String);
var var
s, def: String; s, def: String;
ndef: Integer; ndef: Integer;
begin begin
s := ServerLoader.Body; s := body;
if (LowerCase(Take(s)) = 'ok') then begin if (LowerCase(Take(s)) = 'ok') then begin
def := Take(s); def := Take(s);
ndef := 0; ndef := 0;
@@ -78,7 +77,7 @@ begin
ServersClick(Self); ServersClick(Self);
// Select.Enabled := true; // Select.Enabled := true;
end else begin end else begin
ShowMessage(ServerLoader.Body); ShowMessage(body);
ModalResult := mrCancel; ModalResult := mrCancel;
end; end;
end; end;
@@ -96,6 +95,8 @@ begin
end; end;
procedure TServerSelectForm.Fetch(path: String); procedure TServerSelectForm.Fetch(path: String);
var
url, reply: String;
begin begin
Select.Enabled := false; Select.Enabled := false;
Servers.Items.Clear; Servers.Items.Clear;
@@ -106,17 +107,17 @@ begin
if path <> '' then if path <> '' then
Caption := Caption + ' [' + path + ']'; Caption := Caption + ' [' + path + ']';
Desc.Text := 'Fetching realm list from server...'; Desc.Text := 'Fetching realm list from server...';
url := 'http://www.progressquest.com/list.php?' + RevString + '&p=' + path;
if AccessCode.Visible then
url := url + '&ac=' + UrlEncode(AccessCode.Text);
try try
Screen.Cursor := crHourglass; Screen.Cursor := crHourglass;
try try
if AccessCode.Visible reply := DownloadString(url);
then ServerLoader.HeaderInfo.Password := AccessCode.Text ParseServerList(reply);
else ServerLoader.HeaderInfo.Password := '';
ServerLoader.Get('http://www.progressquest.com/list.php?' + RevString + '&p=' + path +'&ac=' + UrlEncode(ServerLoader.HeaderInfo.Password));
except except
on ESockError do begin on EWebError do begin
ShowMessage('Error connecting to server'); ShowMessage('Error connecting to Progress Quest server');
ServerLoader.Abort;
ModalResult := mrCancel; ModalResult := mrCancel;
end; end;
end; end;
BIN
View File
Binary file not shown.
+49
View File
@@ -0,0 +1,49 @@
unit Web;
interface
uses
Windows, Messages, SysUtils, Classes, WinInet;
type
EWebError = class(Exception);
function DownloadString(const Url: string): string;
implementation
function DownloadString(const Url: string): string;
var
NetHandle: HINTERNET;
UrlHandle: HINTERNET;
Buffer: array[0..1024] of Char;
BytesRead: dWord;
begin
Result := '';
NetHandle := InternetOpen('PQ6.2', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if Assigned(NetHandle) then
begin
UrlHandle := InternetOpenUrl(NetHandle, PChar(Url),
nil, 0, // headers
INTERNET_FLAG_RELOAD or
INTERNET_FLAG_PRAGMA_NOCACHE or
INTERNET_FLAG_NO_UI,
0);
if Assigned(UrlHandle) then begin
repeat
InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer)-1, BytesRead);
Buffer[BytesRead] := #0;
Result := Result + Buffer;
until BytesRead = 0;
InternetCloseHandle(UrlHandle);
end else begin
raise EWebError.CreateFmt('Cannot open URL %s', [Url]);
end;
InternetCloseHandle(NetHandle);
end else begin
// NetHandle is not valid. Raise an exception
raise EWebError.Create('Unable to initialize internet API');
end;
end;
end.
BIN
View File
Binary file not shown.
+39
View File
@@ -0,0 +1,39 @@
Chillmitts [Oobag]
Gyrognome Puma Burgular
Level 1 (exp. 220/1200)
Plot stage: Act I (5 hours remaining)
Quest: Deliver this counterpane (83% complete)
Stats:
STR 10
CON 9
DEX 6
INT 7
WIS 5 HP Max 2
CHA 15 MP Max 8
Equipment:
Weapon Sharp Stick
Shield Pie Plate
Helm
Hauberk
Brassairts -1 Holey Threadbare Chamois
Vambraces
Gauntlets
Cuisses
Greaves
Sollerets
Spell Book:
Hastiness I
Big Sister III
Inventory (20/20 cubits):
34 Gold
2 orc snouts
a merman trident
a Gleaming Bandolier of Grob
-- June 12 2002 10:12:12
-- Progress Quest 6.2 - http://progressquest.com
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.
Binary file not shown.
-129
View File
@@ -1,129 +0,0 @@
<html>
<body bgcolor=#ffffd0>
<font color=#404000>
<h1><font color=#e02000>P</font>rogress <font color=#e02000>Q</font>uest</h1>
<font color=#404000>
<a href=http://progressquest.com/>http://progressquest.com/</a>
<h3> Back story </h3>
Since time before time the Vorlak had held the Crosshutch at Thraeskamp.
The ancient reckoning held that the Five Skrelkampi (and their Truebine) would
return when the great Trond-feast could be held anew and the Belnap reunited.
But this legend became lost to all but the Papperboxen at Horbug.
One of their own was Yallow the Speldrig, who found an unlikely pupil in
Torbole Understeady, the discarded illigitimate waif of Wainthane Topknox,
whom Yallow renamed Grumdrig and began to school as a boar-pulmet's apprentice. ...And, as it
was said by some, in aberdoxy.
<p>
As our story opens young Grumdrig has returned to Horbug following a trying stint in
Spilwaer Spond where his laconic disposition and fertile mind bred a series
of misadventures which had landed him outside the good graces of the Jordref there,
Welham, who had secretly begun a long term course of slow but
disaccomodating illpeel in the lad's morning fanwael.
Meanwhile, though scarce a tuft of <i>mansefur</i> had yet made its appearance
on the boy's <i>manssach</i>, a number of visiting Roilwachhs have begun to
exhibit a discreet
and seemingly inexplicable interest in the boy. Strange indeed, as he would not reach
his krouchensterm for another harvest or more.
And when Grumdrig's resiliant compatriot Paedri
appears at Grumdrig's lochnotat with a Scrolstamp from the old Speldrig,
a woozy foreboding feeling rises from his young gut...
<h3> Introduction </h3>
<b>Progress Quest</b> is a next generation computer role-playing game.
Gamers who have played modern online role-playing games,
or almost any computer role-playing game,
or who have at any time installed or upgraded their operating system, will find themselves
incredibly comfortable with <b>Progress Quest</b>'s very familiar gameplay.
<b>Progress Quest</b> follows reverently in the footsteps of recent smash hit
online worlds, but is careful to streamline the more tedious aspects of those
offerings. Players will still have the satisfaction of building their character
from a ninety-pound level 1 teenager, to an incredibly puissant, magically imbued warrior,
well able to snuff out the lives of a barnload of bugbears
without need of so much as a lunch break. Yet, gone are the tedious micromanagement
and other frustrations common to that older generation of RPG's.
<h3> User manual </h3>
Even inexperienced gamers will find <b>Progress Quest</b>
remarkably intutive and simple to play. Start the program
and click the <code>New Game (Single Player)</code> button,
or click <code>New Game (Multiplayer)</code> and select a Realm to
compete against players from all over the world.
You will then be presented with the character creation screen.
Select a name, race and class for the new character. Then, use the <code>Roll</code> button
until you are statisfied with the stats
for your character. <i>Tip: You can use the <code>Unroll</code> button (a feature exclusive to <b>Progress Quest</b>)
to go back to any previous roll if you find that you've
clicked too hastily.</i>
<p>
If you choose to play an online game, your character will share adventures with other <b>Progress
Quest</b> characters in an online virtual world. Online play requires
internet connectivity, though sophisiticated algorithms
keep the bandwidth usage to a minimum. You can compare your character against
the top <b>Progress Quest</b> players by visiting
<a href=http://progressquest.com/realms.php>http://progressquest.com/realms.php</a>
(or hit &lt;Ctrl&gt;-&lt;B&gt; from within the game).
<p>
Finally, hit the <code>Sold!</code> button to begin the game. The game will start immediately and
you can safely familiarize yourself with the game's single interface screen as the game progresses
on its own.
Soon your avatar will will be seeking and destroying an exotic panopoly of beasts while you
gaze proudly on. Missing, you will notice, is the tedious march from town, the bewildering maze of cookie cutter
streets hiding some specific merchant or NPC,
and the repetetive hunt for just the right beast to execute. <b>Progress Quest</b> supplies
your character with an endless series of victims, as well as exciting quests which keep your quest
log full to the brim at all times.
<p>
TREASURE: Each slain creature yields a trophy, which can be sold in any town.
When the encumbrance bar reaches maximum, your character automatically returns to the nearest town
to sell your loot. If sufficiently liquid, he may then purchase an upgrade in equpiment (weapon or armor).
That being done, the interpid adventurer then returns to the frontier to spill more blood.
<i>Tip: The amount your character can carry before his encumbrance bar fills up
increases as his STR stat improves.</i>
<p>
QUESTS: When a quest is complete, your character is rewarded with one of:
a) a special, valuable, treasure item,
b) an improved weapon or piece of armor,
c) a boost in stats, or
d) a new spell for his spellbook. The character is then assigned
a follow-up quest, which he immediately begins to make progress on.
<p>
EXPERIENCE AND LEVELING UP: Experience represents your character's knowledge about the world
around him, as well as his battle prowess and ability to channel the forces of magical power.
Your character gains experience by killing monsters and sentient beings,
over and over again. Once the experience bar is full, your character levels up, and is
given an automatic boost in several of his stats and a new spell for his spellbook.
<p>
DYING: Be warned that your character can be slain by monsters which are tougher than
he can handle. However, this concept
has been abstracted out of the game and takes effect simply by somewhat reducing the experience
accumulated for each successful murder.
<p>
SAVING YOUR PROGRESS: Your game is saved whenever you quit, as well as each time your character levels
up or completes a quest. You can pick up where you left off by restarting <b>Progress Quest</b> and clicking the <code>Load Game</code>
button. <b>Progress Quest</b> makes a backup of your existing save file each time it saves anew, so
if your save file becomes corrupted, load the backup, and lament the progress that must now be regained.
<h3> Game controls </h3>
<b>Progress Quest</b> belongs to a new breed of "fire and forget" RPG's. There is no need to interact
with <b>Progress Quest</b> at all; it will make progress with you or without you.
<p>
You can quit <b>Progress Quest</b> by using the window close box, or by hitting &lt;Alt&gt;-&lt;F4&gt;
(hold down the &lt;Alt&gt; key while hitting &lt;F4&gt;), but there is really little need to ever do so.
Please note that your character will <i>not</i> make any progress <i>except when <b>Progress Quest</b> is
running</i>. Your character will make <i>no</i> progress once you quit the program, until you start
<b>Progress Quest</b> again.
<h3> Keyboard quick reference </h3>
<table border=1 cellspacing=5><th>Key</th><th>Description</tr>
<tr><td>Alt-F4<td>Exit <b>Progress Quest</b></table>
<p>
<small>&copy:Copyright 2002
<a href=mailto:grumdrig@progressquest.com>grumdrig@progressquest.com</a>
BIN
View File
Binary file not shown.
-802
View File
@@ -1,802 +0,0 @@
object K: TK
Left = 335
Top = 119
Width = 572
Height = 567
Caption = 'K'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 8
Top = 116
Width = 28
Height = 13
Caption = 'Spells'
end
object Label2: TLabel
Left = 168
Top = 4
Width = 64
Height = 13
Caption = 'Offense Attrib'
end
object Label3: TLabel
Left = 280
Top = 228
Width = 70
Height = 13
Caption = 'Defense Atrtrib'
end
object Label4: TLabel
Left = 140
Top = 228
Width = 34
Height = 13
Caption = 'Shields'
end
object Label5: TLabel
Left = 8
Top = 228
Width = 27
Height = 13
Caption = 'Armor'
end
object Label6: TLabel
Left = 8
Top = 4
Width = 41
Height = 13
Caption = 'Weapon'
end
object Label7: TLabel
Left = 164
Top = 428
Width = 40
Height = 13
Caption = 'Speicals'
end
object Label8: TLabel
Left = 8
Top = 428
Width = 47
Height = 13
Caption = 'Item Attrib'
end
object Label9: TLabel
Left = 320
Top = 428
Width = 34
Height = 13
Caption = 'Item Of'
end
object Label10: TLabel
Left = 172
Top = 116
Width = 58
Height = 13
Caption = 'Boring Items'
end
object Label11: TLabel
Left = 12
Top = 344
Width = 125
Height = 13
Caption = 'Monsters (name level item)'
end
object Label12: TLabel
Left = 236
Top = 344
Width = 162
Height = 13
Caption = 'Monster mods (adjustment pattern)'
end
object Label13: TLabel
Left = 324
Top = 8
Width = 56
Height = 13
Caption = 'OffenseBad'
end
object Label14: TLabel
Left = 404
Top = 232
Width = 59
Height = 13
Caption = 'DefenseBad'
end
object Spells: TMemo
Left = 8
Top = 132
Width = 153
Height = 89
Lines.Strings = (
'Slime Finger'
'Rabbit Punch'
'Hastiness'
'Good Move'
'Sadness'
'Seasick'
'Gyp'
'Innoculate'
'Cone of Annoyance'
'Magnetic Orb'
'Invisible Hands'
'Revolting Cloud'
'Aqueous Humor'
'Spectral Miasma'
'Clever Fellow'
'Lockjaw'
'Hydrophobia'
'Big Sister'
'Cone of Paste'
'Mulligan'
'Nestor'#39's Bright Idea'
'Holy Batpole'
'Tumor (Benign)'
'Braingate'
'Nonplus'
'Animate Nightstand'
'Eye of the Troglodyte'
'Curse Name'
'Dropsy'
'Vitreous Humor'
'Roger'#39's Grand Illusion'
'Covet'
'Astral Miasma'
'Spectral Oyster'
'Acrid Hands'
'Angioplasty'
'Grognor'#39's Big Day Off'
'Tumor (Malignant)'
'Animate Tunic'
'Ursine Armor'
'Holy Roller'
'Tonsilectomy'
'Curse Family'
'Infinite Confusion')
TabOrder = 0
WordWrap = False
end
object OffenseAttrib: TMemo
Left = 168
Top = 20
Width = 141
Height = 89
Lines.Strings = (
'Polished|+1'
'Serrated|+1'
'Heavy|+1'
'Pronged|+2'
'Steely|+2'
'Vicious|+3'
'Venomed|+4'
'Stabbity|+4'
'Dancing|+5'
'Invisible|+6'
'Vorpal|+7')
TabOrder = 1
WordWrap = False
end
object DefenseAttrib: TMemo
Left = 280
Top = 244
Width = 113
Height = 89
Lines.Strings = (
'Studded|+1'
'Banded|+2'
'Gilded|+2'
'Festooned|+3'
'Holy|+4'
'Cambric|+1'
'Fine|+4'
'Impressive|+5'
'Custom|+3')
TabOrder = 2
WordWrap = False
end
object Shields: TMemo
Left = 140
Top = 244
Width = 133
Height = 89
Lines.Strings = (
'Parasol|0'
'Pie Plate|1'
'Garbage Can Lid|2'
'Buckler|3'
'Plexiglass|4'
'Fender|4'
'Round Shield|5'
'Carapace|5'
'Scutum|6'
'Propugner|6'
'Kite Shield|7'
'Pavise|8'
'Tower Shield|9'
'Baroque Shield|11'
'Aegis|12'
'Magnetic Field|18')
TabOrder = 3
WordWrap = False
end
object Armors: TMemo
Left = 8
Top = 244
Width = 129
Height = 89
Lines.Strings = (
'Lace|1'
'Macrame|2'
'Burlap|3'
'Canvas|4'
'Flannel|5'
'Chamois|6'
'Pleathers|7'
'Leathers|8'
'Bearskin|9'
'Ringmail|10'
'Scale Mail|12'
'Chainmail|14'
'Splint Mail|15'
'Platemail|16'
'ABS|17'
'Kevlar|18'
'Titanium|19'
'Mithril Mail|20'
'Diamond Mail|25'
'Plasma|30')
TabOrder = 4
WordWrap = False
end
object Weapons: TMemo
Left = 8
Top = 20
Width = 153
Height = 89
Lines.Strings = (
'Stick|0'
'Broken Bottle|1'
'Shiv|1'
'Sprig|1'
'Oxgoad|1'
'Eelspear|2'
'Bowie Knife|2'
'Claw Hammer|2'
'Handpeen|2'
'Andiron|3'
'Hatchet|3'
'Tomahawk|3'
'Hackbarm|3'
'Crowbar|4'
'Mace|4'
'Battleadze|4'
'Leafmace|5'
'Shortsword|5'
'Longiron|5'
'Poachard|5'
'Baselard|5'
'Whinyard|6'
'Blunderbuss|6'
'Longsword|6'
'Crankbow|6'
'Blibo|7'
'Broadsword|7'
'Morning Star|8'
'Pole-adze|8'
'Spontoon|8'
'Bastard Sword|9'
'Peen-arm|9'
'Culverin|10'
'Lance|10'
'Halberd|11'
'Poleax|12'
'Bandyclef|15')
TabOrder = 5
WordWrap = False
end
object Specials: TMemo
Left = 164
Top = 444
Width = 149
Height = 89
Lines.Strings = (
'Diadem'
'Festoon'
'Gemstone'
'Phial'
'Tiara'
'Scabbard'
'Arrow'
'Lens'
'Lamp'
'Hymnal'
'Fleece'
'Laurel'
'Brooch'
'Gimlet'
'Cobble'
'Albatross'
'Brazier'
'Bandolier'
'Tome'
'Garnet'
'Amethyst'
'Candelabra'
'Corset'
'Sphere'
'Sceptre'
'Ankh'
'Talisman'
'Orb'
'Gammel'
'Ornament'
'Brocade'
'Galoon'
'Bijou'
'Spangle'
'Gimcrack')
TabOrder = 6
WordWrap = False
end
object ItemAttrib: TMemo
Left = 8
Top = 444
Width = 149
Height = 89
Lines.Strings = (
'Golden'
'Gilded'
'Spectral'
'Astral'
'Garlanded'
'Precious'
'Crafted'
'Dual'
'Filigreed'
'Cruciate'
'Arcane'
'Blessed'
'Reverential'
'Lucky'
'Enchanted'
'Gleaming'
'Grandiose'
'Sacred'
'Legendary'
'Mythic'
'Crystalline'
'Austere'
'Ostentatious'
'One True'
'Proverbial'
'Fearsome '
'Deadly'
'Benevolent'
'Unearthly'
'Magnificent'
'Iron'
'Ormolu'
'Puissant')
TabOrder = 7
WordWrap = False
end
object ItemOfs: TMemo
Left = 320
Top = 444
Width = 149
Height = 89
Lines.Strings = (
'Foreboding'
'Foreshadowing'
'Nervousness'
'Happiness'
'Torpor'
'Danger'
'Craft'
'Silence'
'Invisibility'
'Rapidity'
'Pleasure'
'Practicality'
'Hurting'
'Joy'
'Petulance'
'Intrusion'
'Chaos'
'Suffering'
'Extroversion'
'Frenzy'
'Solitude'
'Punctuality'
'Efficiency'
'Comfort'
'Patience'
'Internment'
'Incarceration'
'Misapprehension'
'Loyalty'
'Envy'
'Acrimony'
'Worry'
'Fear'
'Awe'
'Guile'
'Prurience'
'Fortune'
'Perspicacity'
'Domination'
'Submission'
'Fealty'
'Hunger'
'Despair'
'Cruelty'
'Grob'
'Dignard'
'Ra'
'the Bone'
'Diamonique'
'Electrum'
'Hydragyrum')
TabOrder = 8
WordWrap = False
end
object BoringItems: TMemo
Left = 168
Top = 132
Width = 149
Height = 89
Lines.Strings = (
'nail'
'lunchpail'
'sock'
'I.O.U.'
'cookie'
'pint'
'toothpick'
'writ'
'newspaper'
'letter'
'plank'
'hat'
'egg'
'coin'
'needle'
'bucket'
'ladder'
'chicken'
'twig'
'dirtclod'
'counterpane'
'vest'
'teratoma'
'bunny'
'rock'
'pole'
'carrot'
'canoe'
'inkwell'
'hoe'
'bandage'
'trowel'
'towel'
'planter box'
'anvil'
'axle'
'tuppence'
'casket'
'nosegay'
'trinket')
TabOrder = 9
WordWrap = False
end
object Monsters: TMemo
Left = 8
Top = 360
Width = 221
Height = 61
Lines.Strings = (
'Anhkheg|6|chitin'
'Ant|0|antenna'
'Ape|4|ass'
'Baluchitherium|14|ear'
'Beholder|10|eyestalk'
'Black Pudding|10|saliva'
'Blink Dog|4|eyelid'
'Cub Scout|1|neckercheif'
'Girl Scout|2|cookie'
'Boy Scout|3|merit badge'
'Eagle Scout|4|merit badge'
'Bugbear|3|skin'
'Bugboar|3|tusk'
'Boogie|3|slime'
'Camel|2|hump'
'Carrion Crawler|3|egg'
'Catoblepas|6|neck'
'Centaur|4|rib'
'Centipede|0|leg'
'Cockatrice|5|wattle'
'Couatl|9|wing'
'Crayfish|0|antenna'
'Demogorgon|53|tentacle'
'Jubilex|17|gel'
'Manes|1|tooth'
'Orcus|27|wand'
'Succubus|6|bra'
'Vrock|8|neck'
'Hezrou|9|leg'
'Glabrezu|10|collar'
'Nalfeshnee|11|tusk'
'Marilith|7|arm'
'Balor|8|whip'
'Yeenoghu|25|flail'
'Asmodeus|52|leathers'
'Baalzebul|43|pants'
'Barbed Devil|8|flame'
'Bone Devil|9|hook'
'Dispater|30|matches'
'Erinyes|6|thong'
'Geryon|30|cornucopia'
'Malebranche|5|fork'
'Ice Devil|11|snow'
'Lemure|3|blob'
'Pit Fiend|13|seed'
'Anklyosaurus|9|tail'
'Brontosaurus|30|brain'
'Diplodocus|24|fin'
'Elasmosaurus|15|neck'
'Gorgosaurus|13|arm'
'Iguanadon|6|thumb'
'Megalosaurus|12|jaw'
'Monoclonius|8|horn'
'Pentasaurus|12|head'
'Stegosaurus|18|plate'
'Triceratops|16|horn'
'Tyranosauraus Rex|18|forearm'
'Djinn|7|lamp'
'Doppleganger|4|face'
'Black Dragon|7|*'
'Plaid Dragon|7|sporrin'
'Blue Dragon|9|*'
'Beige Dragon|9|*'
'Brass Dragon|7|pole'
'Tin Dragon|8|*'
'Bronze Dragon|9|medal'
'Chromatic Dragon|16|mineral water'
'Copper Dragon|8|loafer'
'Gold Dragon|8|filling'
'Green Dragon|8|*'
'Platinum Dragon|21|*'
'Red Dragon|10|cocktail'
'Silver Dragon|10|*'
'White Dragon|6|tooth'
'Dragon Turtle|13|shell'
'Dryad|2|acorn'
'Dwarf|1|drawers'
'Eel|2|sashimi'
'Efreet|10|cinder'
'Sand Elemental|8|glass'
'Bacon Elemental|10|bit'
'Porn Elemental|12|lube'
'Cheese Elemental|14|curd'
'Hair Elemental|16|follicle'
'Swamp Elf|1|lilypad'
'Brown Elf|1|tusk'
'Sea Elf|1|jerkin'
'Ettin|10|fur'
'Frog|0|leg'
'Violet Fungi|3|spore'
'Gargoyle|4|gravel'
'Gelatinous Cube|4|jam'
'Ghast|4|vomit'
'Ghost|10|*'
'Ghoul|2|muscle'
'Humidity Giant|12|drops'
'Beef Giant|11|steak'
'Quartz Giant|10|crystal'
'Porcelain Giant|9|fixture'
'Rice Giant|8|grain'
'Cloud Giant|12|condensation'
'Fire Giant|11|cigarettes'
'Frost Giant|10|snowman'
'Hill Giant|8|corpse'
'Stone Giant|9|hatchling'
'Storm Giant|15|barometer'
'Mini Giant|4|pompadour'
'Gnoll|2|collar'
'Gnome|1|hat'
'Goblin|1|ear'
'Grid Bug|1|carapace'
'Jellyrock|9|seedling'
'Beer Golem|15|foam'
'Oxygen Golem|17|platelet'
'Cardboard Golem|14|recycling'
'Rubber Golem|16|ball'
'Leather Golem|15|fob'
'Gorgon|8|testicle'
'Gray Ooze|3|gravy'
'Green Slime|2|sample'
'Griffon|7|nest'
'Banshee|7|larynx'
'Harpy|3|mascara'
'Hell Hound|5|tongue'
'Hippocampus|4|mane'
'Hippogriff|3|egg'
'Hobgoblin|1|patella'
'Homonculus|2|fluid'
'Hydra|8|gyrum'
'Imp|2|tail'
'Invisible Stalker|8|*'
'Iron Peasant|3|chaff'
'Jumpskin|3|shin'
'Kobold|1|penis'
'Leprechaun|1|wallet'
'Leucrotta|6|hoof'
'Lich|11|crown'
'Lizard Man|2|tail'
'Lurker|10|sac'
'Manticore|6|spike'
'Mastodon|12|tusk'
'Medusa|6|eye'
'Multicell|2|dendrite'
'Pirate|1|booty'
'Berserker|1|shirt'
'Caveman|2|club'
'Dervish|1|robe'
'Merman|1|trident'
'Mermaid|1|gills'
'Mimic|9|hinge'
'Mind Flayer|8|tentacle'
'Minotaur|6|map'
'Yellow Mold|1|spore'
'Morkoth|7|teeth'
'Mummy|6|gauze'
'Naga|9|rattle'
'Nebbish|1|belly'
'Neo-Otyugh|11|organ '
'Nixie|1|webbing'
'Nymph|3|hanky'
'Ochre Jelly|6|nucleus'
'Octopus|2|beak'
'Ogre|4|talon'
'Ogre Mage|5|apparel'
'Orc|1|snout'
'Otyugh|7|organ'
'Owlbear|5|feather'
'Pegasus|4|aileron'
'Peryton|4|antler'
'Piercer|3|tip'
'Pixie|1|dust'
'Man-o-war|3|tentacle'
'Purple Worm|15|dung'
'Quasit|3|tail'
'Rakshasa|7|pajamas'
'Rat|0|tail'
'Remorhaz|11|protrusion'
'Roc|18|wing'
'Roper|11|twine'
'Rot Grub|1|eggsac'
'Rust Monster|5|shavings'
'Satyr|5|hoof'
'Sea Hag|3|wart'
'Silkie|3|fur'
'Shadow|3|silhouette'
'Shambling Mound|10|mulch'
'Shedu|9|hoof'
'Shrieker|3|stalk'
'Skeleton|1|clavicle'
'Spectre|7|vestige'
'Sphinx|10|paw'
'Spider|0|web'
'Sprite|1|can'
'Stirge|1|proboscis'
'Stun Bear|5|tooth'
'Stun Worm|2|trode'
'Su-monster|5|tail'
'Sylph|3|thigh'
'Titan|20|sandal'
'Trapper|12|shag'
'Treant|10|acorn'
'Triton|3|scale'
'Troglodyte|2|tail'
'Troll|6|hide'
'Umber Hulk|8|claw'
'Unicorn|4|blood'
'Vampire|8|pancreas'
'Wight|4|lung'
'Will-o-the-Wisp|9|wisp'
'Wraith|5|finger'
'Wyvern|7|wing'
'Xorn|7|jaw'
'Yeti|4|fur'
'Zombie|2|forehead'
'Wasp|0|stinger'
'Rat|1|tail'
'Bunny|0|ear'
'Moth|0|dust'
'Beagle|0|collar'
'Midge|0|corpse'
'Ostrich|1|beak'
'Billy Goat|1|beard'
'Bat|1|wing'
'Koala|2|heart'
'Wolf|2|paw'
'Whippet|2|collar'
'Uruk|2|boot')
TabOrder = 10
WordWrap = False
end
object MonMods: TMemo
Left = 232
Top = 360
Width = 221
Height = 61
Lines.Strings = (
'-4 f'#339'tal *'
'-4 dying *'
'-3 crippled *'
'-3 baby *'
'-2 adolescent'
'-2 very sick *'
'-1 lesser *'
'-1 undernourished *'
'+1 greater *'
'+1 * Elder'
'+2 war *'
'+2 Battle-*'
'+3 Were-*'
'+3 undead *'
'+4 giant *'
'+4 * Rex')
TabOrder = 11
WordWrap = False
end
object OffenseBad: TMemo
Left = 316
Top = 20
Width = 141
Height = 89
Lines.Strings = (
'Dull|-2'
'Tarnished|-1'
'Rusty|-3'
'Padded|-5'
'Bent|-4'
'Mini|-4'
'Rubber|-6'
'Nerf|-7'
'Unbalanced|-2')
TabOrder = 12
WordWrap = False
end
object DefenseBad: TMemo
Left = 396
Top = 244
Width = 141
Height = 89
Lines.Strings = (
'Holey|-1'
'Patched|-1'
'Threadbare|-2'
'Faded|-1'
'Rusty|-3'
'Motheaten|-3'
'Mildewed|-2'
'Torn|-3'
'Dented|-3'
'Cursed|-5'
'Plastic|-4'
'Cracked|-4'
'Warped|-3'
'Corroded|-3')
TabOrder = 13
WordWrap = False
end
end
-53
View File
@@ -1,53 +0,0 @@
unit Config;
{ copyright (c)2002 Eric Fredricksen all rights reserved }
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TK = class(TForm)
Spells: TMemo;
Label1: TLabel;
OffenseAttrib: TMemo;
Label2: TLabel;
DefenseAttrib: TMemo;
Label3: TLabel;
Shields: TMemo;
Label4: TLabel;
Armors: TMemo;
Label5: TLabel;
Weapons: TMemo;
Label6: TLabel;
Specials: TMemo;
Label7: TLabel;
ItemAttrib: TMemo;
Label8: TLabel;
ItemOfs: TMemo;
Label9: TLabel;
BoringItems: TMemo;
Label10: TLabel;
Monsters: TMemo;
MonMods: TMemo;
Label11: TLabel;
Label12: TLabel;
OffenseBad: TMemo;
Label13: TLabel;
DefenseBad: TMemo;
Label14: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
K: TK;
implementation
{$R *.dfm}
end.
File diff suppressed because it is too large Load Diff
-51
View File
@@ -1,51 +0,0 @@
unit Front;
{ copyright (c)2002 Eric Fredricksen all rights reserved }
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TFrontForm = class(TForm)
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
Button4: TButton;
Label2: TLabel;
Button3: TButton;
Panel2: TPanel;
Logo: TImage;
Label3: TLabel;
HomeLink: TLabel;
Label1: TLabel;
procedure HomeLinkClick(Sender: TObject);
procedure LogoClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrontForm: TFrontForm;
implementation
uses ShellAPI, Main, Info;
{$R *.dfm}
procedure TFrontForm.HomeLinkClick(Sender: TObject);
begin
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', nil, '', SW_SHOW);
end;
procedure TFrontForm.LogoClick(Sender: TObject);
begin
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', nil, '', SW_SHOW);
end;
end.
-448
View File
@@ -1,448 +0,0 @@
{*************************************************************}
{ HTTPGet component for Delphi 32 }
{ Version: 1.94 }
{ E-Mail: info@utilmind.com }
{ WWW: http://www.utilmind.com }
{ Created: October 19, 1999 }
{ Modified: June 6, 2000 }
{ Legal: Copyright (c) 1999-2000, UtilMind Solutions }
{*************************************************************}
{ PROPERTIES: }
{ Agent: String - User Agent }
{ }
{* BinaryData: Boolean - This setting specifies which type }
{* of data will taken from the web. }
{* If you set this property TRUE then }
{* component will determinee the size }
{* of files *before* getting them from }
{* the web. }
{* If this property is FALSE then as we}
{* do not knows the file size the }
{* OnProgress event will doesn't work. }
{* Also please remember that is you set}
{* this property as TRUE you will not }
{* capable to get from the web ASCII }
{* data and ofter got OnError event. }
{ }
{ FileName: String - Path to local file to store the data }
{ taken from the web }
{ Password, UserName - set this properties if you trying to }
{ get data from password protected }
{ directories. }
{ Referer: String - Additional data about referer document }
{ URL: String - The url to file or document }
{ UseCache: Boolean - Get file from the Internet Explorer's }
{ cache if requested file is cached. }
{*************************************************************}
{ METHODS: }
{ GetFile - Get the file from the web specified in the URL }
{ property and store it to the file specified in }
{ the FileName property }
{ GetString - Get the data from web and return it as usual }
{ String. You can receive this string hooking }
{ the OnDoneString event. }
{ Abort - Stop the current session }
{*************************************************************}
{ EVENTS: }
{ OnDoneFile - Occurs when the file is downloaded }
{ OnDoneString - Occurs when the string is received }
{ OnError - Occurs when error happend }
{ OnProgress - Occurs at the receiving of the BINARY DATA }
{*************************************************************}
{ Please see demo program for more information. }
{*************************************************************}
{ IMPORTANT NOTE: }
{ This software is provided 'as-is', without any express or }
{ implied warranty. In no event will the author be held }
{ liable for any damages arising from the use of this }
{ software. }
{ Permission is granted to anyone to use this software for }
{ any purpose, including commercial applications, and to }
{ alter it and redistribute it freely, subject to the }
{ following restrictions: }
{ 1. The origin of this software must not be misrepresented, }
{ you must not claim that you wrote the original software. }
{ If you use this software in a product, an acknowledgment }
{ in the product documentation would be appreciated but is }
{ not required. }
{ 2. Altered source versions must be plainly marked as such, }
{ and must not be misrepresented as being the original }
{ software. }
{ 3. This notice may not be removed or altered from any }
{ source distribution. }
{*************************************************************}
unit HTTPGet;
interface
uses
Windows, Messages, SysUtils, Classes, WinInet;
type
TOnProgressEvent = procedure(Sender: TObject; TotalSize, Readed: Integer) of object;
TOnDoneFileEvent = procedure(Sender: TObject; FileName: String; FileSize: Integer) of object;
TOnDoneStringEvent = procedure(Sender: TObject; Result: String) of object;
THTTPGetThread = class(TThread)
private
FTAcceptTypes,
FTAgent,
FTURL,
FTFileName,
FTStringResult,
FTUserName,
FTPassword,
FTPostQuery,
FTReferer: String;
FTBinaryData,
FTUseCache: Boolean;
FTResult: Boolean;
FTFileSize: Integer;
FTToFile: Boolean;
BytesToRead, BytesReaded: DWord;
FTProgress: TOnProgressEvent;
procedure UpdateProgress;
protected
procedure Execute; override;
public
constructor Create(aAcceptTypes, aAgent, aURL, aFileName, aUserName, aPassword, aPostQuery, aReferer: String;
aBinaryData, aUseCache: Boolean; aProgress: TOnProgressEvent; aToFile: Boolean);
end;
THTTPGet = class(TComponent)
private
FAcceptTypes: String;
FAgent: String;
FBinaryData: Boolean;
FURL: String;
FUseCache: Boolean;
FFileName: String;
FUserName: String;
FPassword: String;
FPostQuery: String;
FReferer: String;
FWaitThread: Boolean;
FThread: THTTPGetThread;
FError: TNotifyEvent;
FResult: Boolean;
FProgress: TOnProgressEvent;
FDoneFile: TOnDoneFileEvent;
FDoneString: TOnDoneStringEvent;
procedure ThreadDone(Sender: TObject);
public
constructor Create(aOwner: TComponent); override;
destructor Destroy; override;
procedure GetFile;
procedure GetString;
procedure Abort;
published
property AcceptTypes: String read FAcceptTypes write FAcceptTypes;
property Agent: String read FAgent write FAgent;
property BinaryData: Boolean read FBinaryData write FBinaryData;
property URL: String read FURL write FURL;
property UseCache: Boolean read FUseCache write FUseCache;
property FileName: String read FFileName write FFileName;
property UserName: String read FUserName write FUserName;
property Password: String read FPassword write FPassword;
property PostQuery: String read FPostQuery write FPostQuery;
property Referer: String read FReferer write FReferer;
property WaitThread: Boolean read FWaitThread write FWaitThread;
property OnProgress: TOnProgressEvent read FProgress write FProgress;
property OnDoneFile: TOnDoneFileEvent read FDoneFile write FDoneFile;
property OnDoneString: TOnDoneStringEvent read FDoneString write FDoneString;
property OnError: TNotifyEvent read FError write FError;
end;
procedure Register;
implementation
// THTTPGetThread
constructor THTTPGetThread.Create(aAcceptTypes, aAgent, aURL, aFileName, aUserName, aPassword, aPostQuery, aReferer: String;
aBinaryData, aUseCache: Boolean; aProgress: TOnProgressEvent; aToFile: Boolean);
begin
FreeOnTerminate := True;
inherited Create(True);
FTAcceptTypes := aAcceptTypes;
FTAgent := aAgent;
FTURL := aURL;
FTFileName := aFileName;
FTUserName := aUserName;
FTPassword := aPassword;
FTPostQuery := aPostQuery;
FTReferer := aReferer;
FTProgress := aProgress;
FTBinaryData := aBinaryData;
FTUseCache := aUseCache;
FTToFile := aToFile;
Resume;
end;
procedure THTTPGetThread.UpdateProgress;
begin
FTProgress(Self, FTFileSize, BytesReaded);
end;
procedure THTTPGetThread.Execute;
var
hSession, hConnect, hRequest: hInternet;
HostName, FileName: String;
f: File;
Buf: Pointer;
dwBufLen, dwIndex: DWord;
Data: Array[0..$400] of Char;
TempStr: String;
RequestMethod: PChar;
InternetFlag: DWord;
AcceptType: LPStr;
procedure ParseURL(URL: String; var HostName, FileName: String);
procedure ReplaceChar(c1, c2: Char; var St: String);
var
p: Integer;
begin
while True do
begin
p := Pos(c1, St);
if p = 0 then Break
else St[p] := c2;
end;
end;
var
i: Integer;
begin
if Pos('http://', LowerCase(URL)) <> 0 then
System.Delete(URL, 1, 7);
i := Pos('/', URL);
HostName := Copy(URL, 1, i);
FileName := Copy(URL, i, Length(URL) - i + 1);
if (Length(HostName) > 0) and (HostName[Length(HostName)] = '/') then
SetLength(HostName, Length(HostName) - 1);
end;
procedure CloseHandles;
begin
InternetCloseHandle(hRequest);
InternetCloseHandle(hConnect);
InternetCloseHandle(hSession);
end;
begin
try
ParseURL(FTURL, HostName, FileName);
if Terminated then
begin
FTResult := False;
Exit;
end;
if FTAgent <> '' then
hSession := InternetOpen(PChar(FTAgent),
INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0)
else
hSession := InternetOpen(nil,
INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
hConnect := InternetConnect(hSession, PChar(HostName),
INTERNET_DEFAULT_HTTP_PORT, PChar(FTUserName), PChar(FTPassword), INTERNET_SERVICE_HTTP, 0, 0);
if FTPostQuery = '' then RequestMethod := 'GET'
else RequestMethod := 'POST';
if FTUseCache then InternetFlag := 0
else InternetFlag := INTERNET_FLAG_RELOAD;
AcceptType := PChar('Accept: ' + FTAcceptTypes);
hRequest := HttpOpenRequest(hConnect, RequestMethod, PChar(FileName), 'HTTP/1.0',
PChar(FTReferer), @AcceptType, InternetFlag, 0);
if FTPostQuery = '' then
HttpSendRequest(hRequest, nil, 0, nil, 0)
else
HttpSendRequest(hRequest, 'Content-Type: application/x-www-form-urlencoded', 47,
PChar(FTPostQuery), Length(FTPostQuery));
if Terminated then
begin
CloseHandles;
FTResult := False;
Exit;
end;
dwIndex := 0;
dwBufLen := 1024;
GetMem(Buf, dwBufLen);
FTResult := HttpQueryInfo(hRequest, HTTP_QUERY_CONTENT_LENGTH,
Buf, dwBufLen, dwIndex);
if Terminated then
begin
FreeMem(Buf);
CloseHandles;
FTResult := False;
Exit;
end;
if FTResult or not FTBinaryData then
begin
if FTResult then
FTFileSize := StrToInt(StrPas(Buf));
BytesReaded := 0;
if FTToFile then
begin
AssignFile(f, FTFileName);
Rewrite(f, 1);
end
else FTStringResult := '';
while True do
begin
if Terminated then
begin
if FTToFile then CloseFile(f);
FreeMem(Buf);
CloseHandles;
FTResult := False;
Exit;
end;
if not InternetReadFile(hRequest, @Data, SizeOf(Data), BytesToRead) then Break
else
if BytesToRead = 0 then Break
else
begin
if FTToFile then
BlockWrite(f, Data, BytesToRead)
else
begin
TempStr := Data;
SetLength(TempStr, BytesToRead);
FTStringResult := FTStringResult + TempStr;
end;
inc(BytesReaded, BytesToRead);
if Assigned(FTProgress) then
Synchronize(UpdateProgress);
end;
end;
if FTToFile then
FTResult := FTFileSize = Integer(BytesReaded)
else
begin
SetLength(FTStringResult, BytesReaded);
FTResult := BytesReaded <> 0;
end;
if FTToFile then CloseFile(f);
end;
FreeMem(Buf);
CloseHandles;
except
end;
end;
// HTTPGet
constructor THTTPGet.Create(aOwner: TComponent);
begin
inherited Create(aOwner);
FAcceptTypes := '*/*';
FAgent := 'UtilMind HTTPGet';
end;
destructor THTTPGet.Destroy;
begin
Abort;
inherited Destroy;
end;
procedure THTTPGet.GetFile;
var
Msg: TMsg;
begin
if not Assigned(FThread) then
begin
FThread := THTTPGetThread.Create(FAcceptTypes, FAgent, FURL, FFileName, FUserName, FPassword, FPostQuery, FReferer,
FBinaryData, FUseCache, FProgress, True);
FThread.OnTerminate := ThreadDone;
if FWaitThread then
while Assigned(FThread) do
while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end
end;
procedure THTTPGet.GetString;
var
Msg: TMsg;
begin
if not Assigned(FThread) then
begin
FThread := THTTPGetThread.Create(FAcceptTypes, FAgent, FURL, FFileName, FUserName, FPassword, FPostQuery, FReferer,
FBinaryData, FUseCache, FProgress, False);
FThread.OnTerminate := ThreadDone;
if FWaitThread then
while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end
end;
procedure THTTPGet.Abort;
begin
if Assigned(FThread) then
begin
FThread.Terminate;
FThread.FTResult := False;
end;
end;
procedure THTTPGet.ThreadDone(Sender: TObject);
begin
FResult := FThread.FTResult;
if FResult then
if FThread.FTToFile then
if Assigned(FDoneFile) then FDoneFile(Self, FThread.FTFileName, FThread.FTFileSize) else
else
if Assigned(FDoneString) then FDoneString(Self, FThread.FTStringResult) else
else
if Assigned(FError) then FError(Self);
FThread := nil;
end;
procedure Register;
begin
RegisterComponents('UtilMind', [THTTPGet]);
end;
end.
-101
View File
@@ -1,101 +0,0 @@
object Form4: TForm4
Left = 192
Top = 107
Width = 696
Height = 480
Caption = 'Progress Quest VI'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000000000000A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
CC00003300000033330000336600003399000033CC000033FF00006600000066
330000666600006699000066CC000066FF000099000000993300009966000099
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
CC003300FF00333300003333330033336600333399003333CC003333FF003366
00003366330033666600336699003366CC003366FF0033990000339933003399
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
330066006600660099006600CC006600FF006633000066333300663366006633
99006633CC006633FF00666600006666330066666600666699006666CC006699
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
CC009999000099339900990099009900CC009900000099333300990066009933
CC009900FF00996600009966330099336600996699009966CC009933FF009999
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF005852
5151515151515258585858585858585858585858585858585852515151515852
51514A4A4A515152585858585858585858585858585858585251514B4A4B5852
514B4A4A4A4B51515258585858585858585858585858585251514B4A4A4A5852
150F4A4A4A4A4B5151515152525251525252525252525151514A0F154A4B580B
0E0E0B4A4A4A4A4A5151515151515151515151515151514B4B0B0E0E0B512311
15220E514A4A4A4A4A4A4A4B4A4A4A4A4A4A4A4A4A4A4A4A4A0F22143D234313
22431151514A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A11432213435822
23296710294B4A4A44442244154422441544224444444A221012292322585858
58514443151D4B4A442215221522152215221522154B0E151544515252585858
5879294A43140D4A22150D0E2243100E1D0D2215220D14434A03525258585858
585852514A224A430E0E1443220D111543140E0E4344224A4A51515258585858
585858514B1514220E2243150D444444444322222214154B4B4B515258585858
585858585174151D4A434A4A15104422234A434A1D15742A4A4B515258585858
585858585222444B457422224B44224B222274454B4422524A4B515258585858
58585858510A4B4C3F4C44EA4A22224A6D444C3F4C4B0A4A4A51515258585858
585858580D15294B4523ECC8C44A4AE946EC23454B29150D4A51515858585858
58585858444A4A234AAEC8FCFCA7E9F9F946AE44234A4A435151525858585858
58585858232244224AEFA7FCFC62F9F9F946EF4A224422235151525858585858
585858584B434A110C4A8DA862F9F9F9698D4A0C114A43295151525858585858
5858585852222210514A8D46F9F9F962A78D4A51104322524B51525858585858
58585858524B0C034AEB46F9F9F962FCFCA7F84A030C4B4A4A51515258585858
5858585251514B4AED46F9F9F9E3A8FCFCFCA7ED4A4B4A4A4A4B515152585858
58585851514B4AED46F9F9F9E3F7F7E6FCFCFCA7ED4A4A4A4A4A4B5152585858
585852514B4AEB46F9F9F9E3ED525892E6FCFCFCA7EB4A4A4A4A4A4B51525858
585852514A6D46F9F9F9E3ED5858585892E6FCFCFCA76D4A4A4A4A4A51515858
5858514B14B5F047F9E3F7585858585858B5E6FCC8DDB5144A4A4A4A51515858
585852AE09F3F3BCE3B55858585858585858B5D0DDF3F309AE4A4B4B51515858
5858BCF4F5F4F4F4075858585858585858585807F4F4F4F5DEBC515151525858
58991BF5F5F2DDB6585858585858585858585858B6DDF3F5F51B995152585858
5892B51909B592585858585858585858585858585892B509DDB5925858585858
58720909ECEB58585858585858585858585858585858F8EC0909725858585858
58F78DAEED5858585858585858585858585858585858581CAE8D925858580000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000}
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object WebBrowser1: TWebBrowser
Left = 0
Top = 0
Width = 688
Height = 453
Align = alClient
TabOrder = 0
ControlData = {
4C0000001B470000D22E00000000000000000000000000000000000000000000
000000004C000000000000000000000001000000E0D057007335CF11AE690800
2B2E126208000000000000004C0000000114020000000000C000000000000046
8000000000000000000000000000000000000000000000000000000000000000
00000000000000000100000000000000000000000000000000000000}
end
end
-31
View File
@@ -1,31 +0,0 @@
unit Info;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw;
type
TForm4 = class(TForm)
WebBrowser1: TWebBrowser;
private
{ Private declarations }
public
procedure Go(url: String);
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Go(url: String);
begin
WebBrowser1.Navigate(url);
Show;
end;
end.
-166
View File
@@ -1,166 +0,0 @@
object LoginForm: TLoginForm
Left = 314
Top = 162
Width = 265
Height = 448
Caption = 'Progress Quest Login'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
PixelsPerInch = 96
TextHeight = 13
object GroupBox1: TGroupBox
Left = 12
Top = 176
Width = 237
Height = 69
Caption = 'New Users'
TabOrder = 0
object Label1: TLabel
Left = 2
Top = 15
Width = 233
Height = 18
Align = alTop
AutoSize = False
Caption = ' To sign up for a new account, visit'
Layout = tlBottom
end
object Label2: TLabel
Left = 2
Top = 33
Width = 233
Height = 25
Cursor = crHandPoint
Align = alTop
Alignment = taCenter
AutoSize = False
Caption = 'http://progressquest.com/user.php'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clActiveCaption
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold, fsUnderline]
ParentColor = False
ParentFont = False
Layout = tlCenter
OnClick = Label2Click
end
end
object Login: TButton
Left = 88
Top = 388
Width = 75
Height = 25
Caption = 'Login'
Default = True
Enabled = False
TabOrder = 1
OnClick = LoginClick
end
object Button1: TButton
Left = 172
Top = 388
Width = 75
Height = 25
Caption = 'Cancel'
ModalResult = 2
TabOrder = 2
end
object GroupBox2: TGroupBox
Left = 12
Top = 256
Width = 237
Height = 121
Caption = 'Proxy Settings'
TabOrder = 3
object Label3: TLabel
Left = 12
Top = 20
Width = 213
Height = 45
AutoSize = False
Caption =
'Most people can leave this blank, but if you use a proxy to conn' +
'ect to the Web, or wish to use a proxy to cheat, enter it here.'
WordWrap = True
end
object LabeledEdit1: TLabeledEdit
Left = 12
Top = 84
Width = 149
Height = 21
EditLabel.Width = 31
EditLabel.Height = 13
EditLabel.Caption = 'Server'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 0
end
object LabeledEdit2: TLabeledEdit
Left = 164
Top = 84
Width = 57
Height = 21
EditLabel.Width = 19
EditLabel.Height = 13
EditLabel.Caption = 'Port'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 1
end
end
object GroupBox3: TGroupBox
Left = 12
Top = 12
Width = 237
Height = 157
Caption = 'Account Info'
TabOrder = 4
object Label4: TLabel
Left = 8
Top = 20
Width = 221
Height = 45
AutoSize = False
Caption =
'Some realms are open to the public riffraff, but others may requ' +
'ire a valid account. You can enter default account information h' +
'ere.'
WordWrap = True
end
object Account: TLabeledEdit
Left = 8
Top = 84
Width = 221
Height = 21
EditLabel.Width = 40
EditLabel.Height = 13
EditLabel.Caption = 'Account'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 0
OnChange = AccountChange
end
object Password: TLabeledEdit
Left = 8
Top = 124
Width = 221
Height = 21
EditLabel.Width = 46
EditLabel.Height = 13
EditLabel.Caption = 'Password'
LabelPosition = lpAbove
LabelSpacing = 3
PasswordChar = '*'
TabOrder = 1
OnChange = AccountChange
end
end
end
-60
View File
@@ -1,60 +0,0 @@
unit Login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Psock, NMHttp;
type
TLoginForm = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Login: TButton;
Button1: TButton;
GroupBox2: TGroupBox;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
Label3: TLabel;
GroupBox3: TGroupBox;
Account: TLabeledEdit;
Password: TLabeledEdit;
Label4: TLabel;
procedure Label2Click(Sender: TObject);
procedure AccountChange(Sender: TObject);
procedure LoginClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
LoginForm: TLoginForm;
implementation
uses ShellAPI, Main, NewGuy, SelServ;
{$R *.dfm}
procedure TLoginForm.Label2Click(Sender: TObject);
begin
ShellExecute(GetDesktopWindow(), 'open', PChar(TLabel(Sender).Caption), nil, '', SW_SHOW);
end;
procedure TLoginForm.AccountChange(Sender: TObject);
begin
Login.Enabled := (Account.Text <> '') and (Password.Text <> '');
end;
procedure TLoginForm.LoginClick(Sender: TObject);
begin
MainForm.SetLogin(Account.Text);
MainForm.SetPassword(Password.Text);
if ServerSelectForm.Go then
ModalResult := mrOk;
end;
end.
-656
View File
@@ -1,656 +0,0 @@
object MainForm: TMainForm
Left = 226
Top = 145
Width = 682
Height = 569
HorzScrollBar.Visible = False
VertScrollBar.Visible = False
Caption = 'Progress Quest'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000000000000A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
CC00003300000033330000336600003399000033CC000033FF00006600000066
330000666600006699000066CC000066FF000099000000993300009966000099
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
CC003300FF00333300003333330033336600333399003333CC003333FF003366
00003366330033666600336699003366CC003366FF0033990000339933003399
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
330066006600660099006600CC006600FF006633000066333300663366006633
99006633CC006633FF00666600006666330066666600666699006666CC006699
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
CC009999000099339900990099009900CC009900000099333300990066009933
CC009900FF00996600009966330099336600996699009966CC009933FF009999
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
KeyPreview = True
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnCreate = FormCreate
OnKeyDown = FormKeyDown
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 0
Top = 0
Width = 200
Height = 507
Align = alLeft
TabOrder = 0
object Label1: TLabel
Left = 1
Top = 1
Width = 198
Height = 13
Align = alTop
Caption = 'Character Sheet'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label6: TLabel
Left = 1
Top = 229
Width = 198
Height = 13
Align = alTop
Caption = 'Experience'
end
object Label4: TLabel
Left = 1
Top = 258
Width = 198
Height = 13
Align = alTop
Caption = 'Spell Book'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Traits: TListView
Left = 1
Top = 14
Width = 198
Height = 79
Align = alTop
Columns = <
item
Caption = 'Trait'
Width = 60
end
item
AutoSize = True
Caption = 'Value'
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
Items.Data = {
6E0000000400000000000000FFFFFFFFFFFFFFFF0000000000000000044E616D
6500000000FFFFFFFFFFFFFFFF0000000000000000045261636500000000FFFF
FFFFFFFFFFFF000000000000000005436C61737300000000FFFFFFFFFFFFFFFF
0000000000000000054C6576656C}
MultiSelect = True
ReadOnly = True
RowSelect = True
TabOrder = 1
ViewStyle = vsReport
end
object Stats: TListView
Left = 1
Top = 93
Width = 198
Height = 136
Align = alTop
Columns = <
item
Caption = 'Stat'
Width = 60
end
item
AutoSize = True
Caption = 'Value'
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
Items.Data = {
CE0000000800000000000000FFFFFFFFFFFFFFFF000000000000000003535452
00000000FFFFFFFFFFFFFFFF000000000000000003434F4E00000000FFFFFFFF
FFFFFFFF00000000000000000344455800000000FFFFFFFFFFFFFFFF00000000
0000000003494E5400000000FFFFFFFFFFFFFFFF000000000000000003574953
00000000FFFFFFFFFFFFFFFF00000000000000000343484100000000FFFFFFFF
FFFFFFFF0000000000000000064850204D617800000000FFFFFFFFFFFFFFFF00
00000000000000064D50204D6178}
MultiSelect = True
ReadOnly = True
RowSelect = True
TabOrder = 0
ViewStyle = vsReport
end
object ExpBar: TProgressBar
Left = 1
Top = 242
Width = 198
Height = 16
Align = alTop
Min = 0
Max = 100
ParentShowHint = False
Position = 50
Smooth = True
ShowHint = True
TabOrder = 2
end
object Spells: TListView
Left = 1
Top = 271
Width = 198
Height = 203
Align = alClient
Columns = <
item
AutoSize = True
Caption = 'Spell'
end
item
Caption = 'Level'
Width = 60
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
MultiSelect = True
ReadOnly = True
RowSelect = True
TabOrder = 3
ViewStyle = vsReport
end
object Cheats: TPanel
Left = 1
Top = 474
Width = 198
Height = 32
Align = alBottom
TabOrder = 4
Visible = False
object CashIn: TButton
Left = 32
Top = 4
Width = 25
Height = 25
Caption = '$'
TabOrder = 0
OnClick = CashInClick
end
object Button1: TButton
Left = 4
Top = 4
Width = 25
Height = 25
Caption = 'L+1'
TabOrder = 1
OnClick = Button1Click
end
object FinishQuest: TButton
Left = 92
Top = 4
Width = 27
Height = 25
Caption = 'Q!'
TabOrder = 2
OnClick = FinishQuestClick
end
object Button3: TButton
Left = 124
Top = 4
Width = 27
Height = 25
Caption = 'X!'
TabOrder = 3
OnClick = SpeedButton1Click
end
object CheatPlot: TButton
Left = 60
Top = 3
Width = 27
Height = 25
Caption = 'P!'
TabOrder = 4
OnClick = CheatPlotClick
end
end
end
object Panel3: TPanel
Left = 474
Top = 0
Width = 200
Height = 507
Align = alRight
TabOrder = 1
object Label3: TLabel
Left = 1
Top = 177
Width = 198
Height = 13
Align = alTop
Caption = 'Quests'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label2: TLabel
Left = 1
Top = 1
Width = 198
Height = 13
Align = alTop
Caption = 'Plot Development'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object QuestBar: TProgressBar
Left = 1
Top = 490
Width = 198
Height = 16
Align = alBottom
Min = 0
Max = 0
ParentShowHint = False
Smooth = True
ShowHint = True
TabOrder = 0
end
object Plots: TListView
Left = 1
Top = 14
Width = 198
Height = 147
Align = alTop
Columns = <
item
AutoSize = True
Caption = 'Act'
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
IconOptions.Arrangement = iaLeft
MultiSelect = True
ReadOnly = True
RowSelect = True
ShowColumnHeaders = False
StateImages = ImageList1
TabOrder = 1
ViewStyle = vsReport
end
object PlotBar: TProgressBar
Left = 1
Top = 161
Width = 198
Height = 16
Align = alTop
Min = 0
Max = 0
ParentShowHint = False
Smooth = True
ShowHint = True
TabOrder = 2
end
object Quests: TListView
Left = 1
Top = 190
Width = 198
Height = 300
Align = alClient
Columns = <
item
AutoSize = True
Caption = 'Quest'
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
IconOptions.Arrangement = iaLeft
MultiSelect = True
ReadOnly = True
RowSelect = True
ShowColumnHeaders = False
StateImages = ImageList1
TabOrder = 3
ViewStyle = vsReport
end
end
object Panel2: TPanel
Left = 200
Top = 0
Width = 274
Height = 507
Align = alClient
TabOrder = 2
object InventoryLabelAlsoGameStyle: TLabel
Left = 1
Top = 176
Width = 272
Height = 13
Align = alTop
Caption = 'Inventory'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label7: TLabel
Left = 1
Top = 477
Width = 272
Height = 13
Align = alBottom
Caption = 'Encumbrance'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object Label8: TLabel
Left = 1
Top = 1
Width = 272
Height = 13
Align = alTop
Caption = 'Equipment'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Inventory: TListView
Left = 1
Top = 189
Width = 272
Height = 288
Align = alClient
Columns = <
item
AutoSize = True
Caption = 'Item'
end
item
Alignment = taRightJustify
Caption = 'Qty'
Width = 69
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
MultiSelect = True
ReadOnly = True
RowSelect = True
TabOrder = 0
ViewStyle = vsReport
end
object EncumBar: TProgressBar
Left = 1
Top = 490
Width = 272
Height = 16
Align = alBottom
Min = 0
Max = 100
ParentShowHint = False
Position = 50
Smooth = True
ShowHint = True
TabOrder = 1
end
object Equips: TListView
Left = 1
Top = 14
Width = 272
Height = 162
Align = alTop
Columns = <
item
Caption = 'Position'
Width = 60
end
item
AutoSize = True
Caption = 'Equipped'
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
Items.Data = {
410100000B00000000000000FFFFFFFFFFFFFFFF000000000000000006576561
706F6E00000000FFFFFFFFFFFFFFFF000000000000000006536869656C640000
0000FFFFFFFFFFFFFFFF00000000000000000448656C6D00000000FFFFFFFFFF
FFFFFF0000000000000000074861756265726B00000000FFFFFFFFFFFFFFFF00
000000000000000A4272617373616972747300000000FFFFFFFFFFFFFFFF0000
0000000000000956616D62726163657300000000FFFFFFFFFFFFFFFF00000000
00000000094761756E746C65747300000000FFFFFFFFFFFFFFFF000000000000
00000847616D6265736F6E00000000FFFFFFFFFFFFFFFF000000000000000007
4375697373657300000000FFFFFFFFFFFFFFFF00000000000000000747726561
76657300000000FFFFFFFFFFFFFFFF000000000000000009536F6C6C65726574
73}
MultiSelect = True
ReadOnly = True
RowSelect = True
ShowColumnHeaders = False
TabOrder = 2
ViewStyle = vsReport
end
object vars: TPanel
Left = 84
Top = 32
Width = 177
Height = 129
Caption = 'vars'
TabOrder = 3
Visible = False
object fTask: TLabel
Left = 20
Top = 16
Width = 27
Height = 13
AutoSize = False
Caption = 'fTask'
Color = clMoneyGreen
ParentColor = False
end
object fQuest: TLabel
Left = 24
Top = 36
Width = 31
Height = 13
AutoSize = False
Caption = 'fQuest'
Color = clSkyBlue
ParentColor = False
end
object fQueue: TListBox
Left = 12
Top = 72
Width = 49
Height = 45
ItemHeight = 13
TabOrder = 0
end
end
end
object Panel4: TPanel
Left = 0
Top = 507
Width = 674
Height = 35
Align = alBottom
Caption = 'Panel4'
TabOrder = 3
object Kill: TStatusBar
Left = 1
Top = -1
Width = 672
Height = 19
Panels = <
item
Width = 50
end>
SimplePanel = True
SimpleText = 'Welcome to Progress Quest!'
end
object TaskBar: TProgressBar
Left = 1
Top = 18
Width = 672
Height = 16
Align = alBottom
Min = 0
Max = 100
Position = 50
Smooth = True
Step = 1
TabOrder = 1
end
end
object Timer1: TTimer
Enabled = False
Interval = 100
OnTimer = Timer1Timer
Left = 40
Top = 120
end
object ImageList1: TImageList
Height = 12
Width = 12
Left = 92
Top = 52
Bitmap = {
494C01010200040004000C000C00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000300000000C00000001001000000000008004
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000424D3E000000000000003E000000
28000000300000000C0000000100010000000000600000000000000000000000
000000000000000000000000FFFFFF0000100100000000007FD7FD0000000000
7FD77D00000000007FD63D00000000007FD41D00000000007FD48D0000000000
7FD5C500000000007FD7E500000000007FD7F500000000007FD7FD0000000000
0010010000000000FFFFFF000000000000000000000000000000000000000000
000000000000}
end
end
File diff suppressed because it is too large Load Diff
-395
View File
@@ -1,395 +0,0 @@
object NewGuyForm: TNewGuyForm
Left = 323
Top = 164
BorderIcons = []
BorderStyle = bsDialog
Caption = 'Progress Quest - New Character'
ClientHeight = 458
ClientWidth = 509
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000000000000A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
CC00003300000033330000336600003399000033CC000033FF00006600000066
330000666600006699000066CC000066FF000099000000993300009966000099
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
CC003300FF00333300003333330033336600333399003333CC003333FF003366
00003366330033666600336699003366CC003366FF0033990000339933003399
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
330066006600660099006600CC006600FF006633000066333300663366006633
99006633CC006633FF00666600006666330066666600666699006666CC006699
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
CC009999000099339900990099009900CC009900000099333300990066009933
CC009900FF00996600009966330099336600996699009966CC009933FF009999
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
OldCreateOrder = False
Position = poScreenCenter
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Race: TRadioGroup
Left = 8
Top = 48
Width = 185
Height = 401
Caption = 'Race'
Items.Strings = (
'Half Orc'
'Half Man'
'Half Halfling'
'Double Hobbit'
'Low Elf'
'Dung Elf'
'Talking Pony'
'Greater Gnome'
'Gyrognome'
'Lesser Dwarf'
'Crested Dwarf'
'Eel Man'
'Panda Man'
'Trans-Kobold'
'Enchanted Motorcycle'
'Will o'#39' the Wisp'
'Battle-Finch'
'Double Wookiee'
'Skraeling'
'Demicanadian'
'Land Squid')
TabOrder = 0
end
object Klass: TRadioGroup
Left = 200
Top = 48
Width = 185
Height = 365
Caption = 'Class'
Items.Strings = (
'Ur-Paladin'
'Voodoo Princess'
'Robot Monk'
'Mu-Fu Monk'
'Mage Illusioner'
'Shiv-Knight'
'Inner Mason'
'Fighter/Organist'
'Puma Burgular'
'Runeloremaster'
'Tongueblade'
'Hunter Strangler'
'Battle-Felon'
'Tickle-Mimic'
'Slow Poisoner'
'Bastard Lunatic'
'Lowling'
'Birdrider')
TabOrder = 1
end
object GroupBox1: TGroupBox
Left = 392
Top = 48
Width = 109
Height = 365
Caption = 'Stats'
TabOrder = 2
object Label3: TLabel
Left = 22
Top = 60
Width = 23
Height = 13
Caption = 'CON'
end
object Label7: TLabel
Left = 22
Top = 156
Width = 22
Height = 13
Caption = 'CHA'
end
object Label6: TLabel
Left = 22
Top = 132
Width = 21
Height = 13
Caption = 'WIS'
end
object Label5: TLabel
Left = 22
Top = 108
Width = 18
Height = 13
Caption = 'INT'
end
object Label4: TLabel
Left = 22
Top = 84
Width = 22
Height = 13
Caption = 'DEX'
end
object Label2: TLabel
Left = 22
Top = 36
Width = 22
Height = 13
Caption = 'STR'
end
object Label8: TLabel
Left = 22
Top = 204
Width = 24
Height = 13
Caption = 'Total'
end
object CHA: TPanel
Left = 52
Top = 152
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 0
end
object WIS: TPanel
Left = 52
Top = 128
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 1
end
object INT: TPanel
Left = 52
Top = 104
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 2
end
object DEX: TPanel
Left = 52
Top = 80
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 3
end
object CON: TPanel
Left = 52
Top = 56
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 4
end
object STR: TPanel
Left = 52
Top = 32
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 5
end
object Reroll: TButton
Left = 18
Top = 284
Width = 75
Height = 25
Caption = 'Roll'
TabOrder = 6
OnClick = RerollClick
end
object Total: TPanel
Left = 52
Top = 200
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
Color = clWhite
TabOrder = 7
end
object Unroll: TButton
Left = 18
Top = 316
Width = 75
Height = 25
Caption = 'Unroll'
Enabled = False
TabOrder = 8
OnClick = UnrollClick
end
end
object Sold: TButton
Left = 342
Top = 424
Width = 75
Height = 25
Caption = 'Sold!'
Default = True
TabOrder = 3
OnClick = SoldClick
end
object Name: TLabeledEdit
Left = 8
Top = 20
Width = 185
Height = 21
EditLabel.Width = 28
EditLabel.Height = 13
EditLabel.Caption = 'Name'
LabelPosition = lpAbove
LabelSpacing = 3
MaxLength = 30
TabOrder = 4
Text = 'Grumdrig'
end
object OldRolls: TListBox
Left = 396
Top = 228
Width = 21
Height = 13
ItemHeight = 13
TabOrder = 5
Visible = False
end
object Button2: TButton
Left = 426
Top = 424
Width = 75
Height = 25
Caption = 'Cancel'
ModalResult = 2
TabOrder = 6
end
object Account: TLabeledEdit
Left = 200
Top = 20
Width = 185
Height = 21
EditLabel.Width = 40
EditLabel.Height = 13
EditLabel.Caption = 'Account'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 7
Visible = False
end
object Password: TLabeledEdit
Left = 392
Top = 20
Width = 109
Height = 21
EditLabel.Width = 46
EditLabel.Height = 13
EditLabel.Caption = 'Password'
LabelPosition = lpAbove
LabelSpacing = 3
PasswordChar = '*'
TabOrder = 8
Visible = False
end
object Server: TNMHTTP
Port = 0
ReportLevel = 0
Body = 'Default.htm'
Header = 'Head.txt'
HeaderInfo.Referer = 'PQ6.1'
InputFileMode = False
OutputFileMode = False
OnAboutToSend = ServerAboutToSend
OnSuccess = ServerSuccess
OnFailure = ServerFailure
ProxyPort = 0
Left = 332
Top = 312
end
object PoorCodeDesign: TNMURL
Left = 336
Top = 268
end
object ApplicationEvents1: TApplicationEvents
OnMinimize = ApplicationEvents1Minimize
Left = 332
Top = 208
end
object GuildGet: TNMHTTP
Port = 0
ReportLevel = 0
Body = 'Default.htm'
Header = 'Head.txt'
HeaderInfo.Referer = 'PQ6.1'
InputFileMode = False
OutputFileMode = False
OnAboutToSend = ServerAboutToSend
OnSuccess = GuildGetSuccess
ProxyPort = 0
Left = 332
Top = 340
end
end
-241
View File
@@ -1,241 +0,0 @@
unit NewGuy;
{ copyright (c)2002 Eric Fredricksen all rights reserved }
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Psock, NMHttp, NMURL, AppEvnts;
type
TNewGuyForm = class(TForm)
Race: TRadioGroup;
Klass: TRadioGroup;
Label2: TLabel;
STR: TPanel;
Label3: TLabel;
CON: TPanel;
Label4: TLabel;
DEX: TPanel;
Label5: TLabel;
INT: TPanel;
Label6: TLabel;
WIS: TPanel;
Label7: TLabel;
CHA: TPanel;
Reroll: TButton;
GroupBox1: TGroupBox;
Label8: TLabel;
Total: TPanel;
Sold: TButton;
Unroll: TButton;
Name: TLabeledEdit;
OldRolls: TListBox;
Button2: TButton;
Server: TNMHTTP;
PoorCodeDesign: TNMURL;
Account: TLabeledEdit;
Password: TLabeledEdit;
ApplicationEvents1: TApplicationEvents;
GuildGet: TNMHTTP;
procedure RerollClick(Sender: TObject);
procedure UnrollClick(Sender: TObject);
procedure ServerSuccess(Cmd: CmdType);
procedure SoldClick(Sender: TObject);
procedure ServerFailure(Cmd: CmdType);
procedure FormShow(Sender: TObject);
procedure ServerAboutToSend(Sender: TObject);
procedure ApplicationEvents1Minimize(Sender: TObject);
procedure GuildGetSuccess(Cmd: CmdType);
private
procedure RollEm;
function GetAccount: String;
function GetPassword: String;
public
procedure BragSuccess(Cmd: CmdType);
function Go: Boolean;
end;
var
NewGuyForm: TNewGuyForm;
function UrlEncode(s: string): string;
implementation
uses Main, SelServ;
{$R *.dfm}
function UrlEncode(s: string): string;
begin
NewGuyForm.PoorCodeDesign.InputString := s;
Result := NewGuyForm.PoorCodeDesign.Encode;
end;
procedure Roll(stat: TPanel);
begin
stat.Tag := 3 + Random(6) + Random(6) + Random(6);
stat.Caption := IntToStr(stat.Tag);
end;
function Choose(n, k: Integer): Real;
var
d, i: Longint;
begin
Result := n;
d := 1;
for i := 2 to k do begin
Result := Result * (1+n-i);
d := d * i;
end;
Result := Result / d;
end;
procedure TNewGuyForm.RollEm;
begin
ReRoll.Tag := RandSeed;
Roll(STR);
Roll(CON);
Roll(DEX);
Roll(INT);
Roll(WIS);
Roll(CHA);
Total.tag := STR.Tag + Con.Tag + DEX.Tag + Int.Tag + Wis.Tag + CHA.Tag;
Total.Caption := IntToStr(Total.Tag);
if Total.Tag >= (63+18) then Total.Color := clRed
else if Total.Tag > (4 * 18) then Total.Color := clYellow
else if Total.Tag <= (63-18) then Total.Color := clGray
else if Total.Tag < (3 * 18) then Total.Color := clSilver
else Total.Color := clWhite;
end;
procedure TNewGuyForm.RerollClick(Sender: TObject);
begin
OldRolls.Items.Insert(0, IntToStr(ReRoll.Tag));
Unroll.Enabled := true;
RollEm;
end;
function TNewGuyForm.Go: Boolean;
begin
Tag := 1;
Result := mrOk = ShowModal;
end;
procedure TNewGuyForm.FormShow(Sender: TObject);
begin
if Tag > 0 then begin
Tag := 0;
Caption := 'Progress Quest - New Character';
if MainForm.GetHostName <> '' then
Caption := Caption + ' [' + MainForm.GetHostName + ']';
Randomize;
RollEm;
with Race do
ItemIndex := Random(Items.Count);
with Klass do
ItemIndex := Random(Items.Count);
Name.SetFocus;
end;
end;
procedure TNewGuyForm.UnrollClick(Sender: TObject);
begin
RandSeed := StrToInt(OldRolls.Items[0]);
OldRolls.Items.Delete(0);
Unroll.Enabled := OldRolls.Items.Count > 0;
RollEm;
end;
procedure TNewGuyForm.ServerSuccess(Cmd: CmdType);
begin
if (LowerCase(Split(Server.Body,0)) = 'ok') then begin
MainForm.SetPasskey(Split(Server.Body,1));
MainForm.SetLogin(GetAccount);
MainForm.SetPassword(GetPassword);
Server.OnSuccess := nil;
Server.OnFailure := nil;
ModalResult := mrOk;
end else begin
ShowMessage(Server.Body);
end;
end;
procedure TNewGuyForm.BragSuccess(Cmd: CmdType);
begin
if (LowerCase(Split(Server.Body,0)) = 'report') then
ShowMessage(Split(Server.Body,1));
end;
function TNewGuyForm.GetAccount: String;
begin
Result := '';
if Account.Visible then Result := Account.Text;
end;
function TNewGuyForm.GetPassword: String;
begin
Result := '';
if Password.Visible then Result := Password.Text;
end;
procedure TNewGuyForm.SoldClick(Sender: TObject);
var url, args: String;
begin
if MainForm.GetHostAddr = ''
then ModalResult := mrOk
else begin
try
Screen.Cursor := crHourglass;
try
Server.HeaderInfo.UserId := GetAccount;
Server.HeaderInfo.Password := GetPassword;
args := 'cmd=create' +
'&name=' + UrlEncode(Name.Text) +
'&realm=' + UrlEncode(MainForm.GetHostName) +
RevString;
if (MainForm.Label8.Tag and 16) = 0
then url := MainForm.GetHostAddr
else url := 'http://www.progressquest.com/create.php?';
Server.Get(url + args);
except
on ESockError do begin
ShowMessage('Error connecting to server');
Server.Abort;
end;
end;
finally
Screen.Cursor := crDefault;
end;
end;
end;
procedure TNewGuyForm.ServerFailure(Cmd: CmdType);
begin
ShowMessage('Connection to server ' + MainForm.GetHostName + ' failed');
end;
procedure TNewGuyForm.ServerAboutToSend(Sender: TObject);
begin
Server.SendHeader.Values['Content-Type'] := 'text/plain';
Server.SendHeader.Values['Motto'] := MainForm.GetMotto;
Server.SendHeader.Values['Guild'] := MainForm.GetGuild;
end;
procedure TNewGuyForm.ApplicationEvents1Minimize(Sender: TObject);
begin
MainForm.MinimizeIt;
end;
procedure TNewGuyForm.GuildGetSuccess(Cmd: CmdType);
var s,b: string;
begin
b := GuildGet.Body;
s := Take(b);
if s <> '' then ShowMessage(s);
s := Take(b);
if s <> '' then Navigate(s);
end;
end.
-231
View File
@@ -1,231 +0,0 @@
object ServerSelectForm: TServerSelectForm
Left = 279
Top = 201
Width = 490
Height = 381
Caption = 'Progress Quest - Select Realm'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000000000000A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
CC00003300000033330000336600003399000033CC000033FF00006600000066
330000666600006699000066CC000066FF000099000000993300009966000099
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
CC003300FF00333300003333330033336600333399003333CC003333FF003366
00003366330033666600336699003366CC003366FF0033990000339933003399
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
330066006600660099006600CC006600FF006633000066333300663366006633
99006633CC006633FF00666600006666330066666600666699006666CC006699
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
CC009999000099339900990099009900CC009900000099333300990066009933
CC009900FF00996600009966330099336600996699009966CC009933FF009999
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
OldCreateOrder = False
Position = poScreenCenter
DesignSize = (
482
354)
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 8
Top = 8
Width = 31
Height = 13
Caption = 'Server'
end
object Label2: TLabel
Left = 172
Top = 8
Width = 53
Height = 13
Caption = 'Description'
end
object Servers: TListBox
Left = 8
Top = 24
Width = 157
Height = 277
Anchors = [akLeft, akTop, akBottom]
ItemHeight = 13
TabOrder = 0
OnClick = ServersClick
OnDblClick = ServersDblClick
end
object Panel1: TPanel
Left = 172
Top = 24
Width = 302
Height = 277
Anchors = [akLeft, akTop, akRight, akBottom]
BevelOuter = bvLowered
BorderWidth = 4
Caption = 'Panel1'
TabOrder = 1
object Desc: TRichEdit
Left = 5
Top = 5
Width = 292
Height = 267
Align = alClient
BevelEdges = []
BevelInner = bvNone
BevelOuter = bvNone
BevelKind = bkTile
BorderStyle = bsNone
Color = clBtnFace
Ctl3D = True
ParentCtl3D = False
ReadOnly = True
TabOrder = 0
WantTabs = True
WantReturns = False
end
end
object Select: TButton
Left = 313
Top = 320
Width = 75
Height = 25
Anchors = [akRight, akBottom]
Caption = '&Select'
Default = True
Enabled = False
TabOrder = 2
OnClick = SelectClick
end
object Button2: TButton
Left = 397
Top = 320
Width = 75
Height = 25
Anchors = [akRight, akBottom]
Caption = '&Cancel'
ModalResult = 2
TabOrder = 3
end
object Descs: TListBox
Left = 24
Top = 100
Width = 121
Height = 33
ItemHeight = 13
TabOrder = 4
Visible = False
end
object Hosts: TListBox
Left = 24
Top = 144
Width = 121
Height = 33
ItemHeight = 13
TabOrder = 5
Visible = False
end
object Options: TListBox
Left = 24
Top = 56
Width = 121
Height = 33
ItemHeight = 13
TabOrder = 6
Visible = False
end
object AccessCode: TLabeledEdit
Left = 8
Top = 320
Width = 157
Height = 21
Anchors = [akLeft, akBottom]
EditLabel.Width = 63
EditLabel.Height = 13
EditLabel.Caption = 'Access Code'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 7
Visible = False
OnChange = AccessCodeChange
end
object ServerLoader: TNMHTTP
Port = 0
ReportLevel = 0
Body = 'Default.htm'
Header = 'Head.txt'
HeaderInfo.Cookie = 'yumyum'
HeaderInfo.Password = 'chickens'
InputFileMode = False
OutputFileMode = False
OnSuccess = ServerLoaderSuccess
ProxyPort = 0
Left = 220
Top = 152
end
object Timer1: TTimer
Enabled = False
Interval = 10
OnTimer = Timer1Timer
Left = 116
Top = 4
end
end
-184
View File
@@ -1,184 +0,0 @@
unit SelServ;
{ copyright (c)2002 Eric Fredricksen all rights reserved }
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls, Psock, NMHttp;
type
TServerSelectForm = class(TForm)
Servers: TListBox;
Label1: TLabel;
Label2: TLabel;
Panel1: TPanel;
Desc: TRichEdit;
Select: TButton;
Button2: TButton;
ServerLoader: TNMHTTP;
Descs: TListBox;
Timer1: TTimer;
Hosts: TListBox;
Options: TListBox;
AccessCode: TLabeledEdit;
procedure ServerLoaderSuccess(Cmd: CmdType);
procedure ServersClick(Sender: TObject);
procedure SelectClick(Sender: TObject);
procedure AccessCodeChange(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ServersDblClick(Sender: TObject);
private
procedure Fetch(path: String);
function CurrentOpts: Integer;
public
function Go: Boolean;
end;
var
ServerSelectForm: TServerSelectForm;
function Take(var s: String): String;
implementation
uses NewGuy, Login, Main;
{$R *.dfm}
function Take(var s: String): String;
begin
if Pos('|',s) > 0 then begin
Result := Trim(Copy(s,1,Pos('|',s)-1));
s := Copy(s,Pos('|',s)+1,100000);
end else begin
Result := Trim(s);
s := '';
end;
end;
procedure TServerSelectForm.ServerLoaderSuccess(Cmd: CmdType);
var
s, def: String;
ndef: Integer;
begin
s := ServerLoader.Body;
if (LowerCase(Take(s)) = 'ok') then begin
def := Take(s);
ndef := 0;
repeat
Servers.Items.Add(Take(s));
if Servers.Items[Servers.Count-1] = def then
ndef := Servers.Count-1;
Options.Items.Add(Take(s));
Hosts.Items.Add(Take(s));
Descs.Items.Add(Take(s));
until s = '';
Servers.ItemIndex := ndef;
ServersClick(Self);
// Select.Enabled := true;
end else begin
ShowMessage(ServerLoader.Body);
ModalResult := mrCancel;
end;
end;
procedure TServerSelectForm.ServersClick(Sender: TObject);
begin
Desc.Lines.Text := Descs.Items[Servers.ItemIndex];
AccessCode.Visible := (CurrentOpts and 8) > 0;
AccessCodeChange(Sender);
end;
function TServerSelectForm.CurrentOpts: Integer;
begin
Result := StrToIntDef(Options.Items[Servers.ItemIndex],0);
end;
procedure TServerSelectForm.Fetch(path: String);
var url: String;
begin
Select.Enabled := false;
Servers.Items.Clear;
Descs.Items.Clear;
Options.Items.Clear;
Hosts.Items.Clear;
Caption := 'Progress Quest - Select Realm';
if path <> '' then
Caption := Caption + ' [' + path + ']';
Desc.Text := 'Fetching realm list from server...';
try
Screen.Cursor := crHourglass;
try
if AccessCode.Visible
then ServerLoader.HeaderInfo.Password := AccessCode.Text
else ServerLoader.HeaderInfo.Password := '';
ServerLoader.Get('http://www.progressquest.com/list.php?' + RevString + '&p=' + path +'&ac=' + UrlEncode(ServerLoader.HeaderInfo.Password));
except
on ESockError do begin
ShowMessage('Error connecting to server');
ServerLoader.Abort;
ModalResult := mrCancel;
end;
end;
finally
Screen.Cursor := crDefault;
end;
end;
function TServerSelectForm.Go: Boolean;
begin
Timer1.Enabled := true;
Result := //(Servers.Count > 0) and
(mrOk = ShowModal);
end;
function ServerURL(user, pass, host, uri: String): String;
begin
if Pos(uri, '?') > 0 then uri := uri + '&' else uri := uri + '?';
uri := uri + 'rev=3';
Result := 'http://' + user + ':' + pass + '@' + host + uri;
end;
procedure TServerSelectForm.AccessCodeChange(Sender: TObject);
begin
Select.Enabled :=
(CurrentOpts and 32 = 0) and
(Servers.Count > 0) and (
(not AccessCode.Visible) or
(AccessCode.Text <> ''));
end;
procedure TServerSelectForm.SelectClick(Sender: TObject);
begin
// 1: account required to create char
// 2: password required to create char
// 4: is a dir
// 8: password required to select
// 16: use progressquest.com for creates!
// 32: disable it!
if (CurrentOpts and 4) > 0 then begin
Fetch(Hosts.Items[Servers.ItemIndex]);
end else begin
MainForm.SetHostAddr(Hosts.Items[Servers.ItemIndex]);
MainForm.SetHostName(Servers.Items[Servers.ItemIndex]);
MainForm.Label8.Tag := CurrentOpts;
NewGuyForm.Account.Visible := (CurrentOpts and 1) > 0;
NewGuyForm.Password.Visible := (CurrentOpts and 2) > 0;
if MainForm.RollCharacter then
ModalResult := mrOk;
end;
end;
procedure TServerSelectForm.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
Fetch('');
end;
procedure TServerSelectForm.ServersDblClick(Sender: TObject);
begin
if Select.Enabled then SelectClick(Self);
end;
end.
-24
View File
@@ -1,24 +0,0 @@
program pq;
uses
Forms,
Config in 'Config.pas' {K},
Front in 'Front.pas' {FrontForm},
Main in 'Main.pas' {MainForm},
NewGuy in 'NewGuy.pas' {NewGuyForm},
SelServ in 'SelServ.pas' {ServerSelectForm};
{$E exe}
{$R *.res}
begin
Application.Initialize;
Application.Title := 'Progress Quest';
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TK, K);
Application.CreateForm(TFrontForm, FrontForm);
Application.CreateForm(TNewGuyForm, NewGuyForm);
Application.CreateForm(TServerSelectForm, ServerSelectForm);
Application.Run;
end.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-32
View File
@@ -1,32 +0,0 @@
<html>
<head>
<title>PQ Official Download Page</title>
</head>
<body>
<h1 align=center><a href=http://progressquest.com/>Progress Quest</a></h1>
<p><small>
Progress Quest<br>
Copyright (c) 2002 Eric Fredricksen
<p>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
<p>
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
<p>
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.</small>
<p align=center>
<b><a href=pq6-1.zip>DOWNLOAD PQ6-1.ZIP</a></b>
<p>
</body>
</html>
-20
View File
@@ -1,20 +0,0 @@
Progress Quest
Copyright (c) 2002 Eric Fredricksen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-129
View File
@@ -1,129 +0,0 @@
<html>
<body bgcolor=#ffffd0>
<font color=#404000>
<h1><font color=#e02000>P</font>rogress <font color=#e02000>Q</font>uest</h1>
<font color=#404000>
<a href=http://progressquest.com/>http://progressquest.com/</a>
<h3> Back story </h3>
Since time before time the Vorlak had held the Crosshutch at Thraeskamp.
The ancient reckoning held that the Five Skrelkampi (and their Truebine) would
return when the great Trond-feast could be held anew and the Belnap reunited.
But this legend became lost to all but the Papperboxen at Horbug.
One of their own was Yallow the Speldrig, who found an unlikely pupil in
Torbole Understeady, the discarded illigitimate waif of Wainthane Topknox,
whom Yallow renamed Grumdrig and began to school as a boar-pulmet's apprentice. ...And, as it
was said by some, in aberdoxy.
<p>
As our story opens young Grumdrig has returned to Horbug following a trying stint in
Spilwaer Spond where his laconic disposition and fertile mind bred a series
of misadventures which had landed him outside the good graces of the Jordref there,
Welham, who had secretly begun a long term course of slow but
disaccomodating illpeel in the lad's morning fanwael.
Meanwhile, though scarce a tuft of <i>mansefur</i> had yet made its appearance
on the boy's <i>manssach</i>, a number of visiting Roilwachhs have begun to
exhibit a discreet
and seemingly inexplicable interest in the boy. Strange indeed, as he would not reach
his krouchensterm for another harvest or more.
And when Grumdrig's resiliant compatriot Paedri
appears at Grumdrig's lochnotat with a Scrolstamp from the old Speldrig,
a woozy foreboding feeling rises from his young gut...
<h3> Introduction </h3>
<b>Progress Quest</b> is a next generation computer role-playing game.
Gamers who have played modern online role-playing games,
or almost any computer role-playing game,
or who have at any time installed or upgraded their operating system, will find themselves
incredibly comfortable with <b>Progress Quest</b>'s very familiar gameplay.
<b>Progress Quest</b> follows reverently in the footsteps of recent smash hit
online worlds, but is careful to streamline the more tedious aspects of those
offerings. Players will still have the satisfaction of building their character
from a ninety-pound level 1 teenager, to an incredibly puissant, magically imbued warrior,
well able to snuff out the lives of a barnload of bugbears
without need of so much as a lunch break. Yet, gone are the tedious micromanagement
and other frustrations common to that older generation of RPG's.
<h3> User manual </h3>
Even inexperienced gamers will find <b>Progress Quest</b>
remarkably intutive and simple to play. Start the program
and click the <code>New Game (Single Player)</code> button,
or click <code>New Game (Multiplayer)</code> and select a Realm to
compete against players from all over the world.
You will then be presented with the character creation screen.
Select a name, race and class for the new character. Then, use the <code>Roll</code> button
until you are statisfied with the stats
for your character. <i>Tip: You can use the <code>Unroll</code> button (a feature exclusive to <b>Progress Quest</b>)
to go back to any previous roll if you find that you've
clicked too hastily.</i>
<p>
If you choose to play an online game, your character will share adventures with other <b>Progress
Quest</b> characters in an online virtual world. Online play requires
internet connectivity, though sophisiticated algorithms
keep the bandwidth usage to a minimum. You can compare your character against
the top <b>Progress Quest</b> players by visiting
<a href=http://progressquest.com/realms.php>http://progressquest.com/realms.php</a>
(or hit &lt;Ctrl&gt;-&lt;B&gt; from within the game).
<p>
Finally, hit the <code>Sold!</code> button to begin the game. The game will start immediately and
you can safely familiarize yourself with the game's single interface screen as the game progresses
on its own.
Soon your avatar will will be seeking and destroying an exotic panopoly of beasts while you
gaze proudly on. Missing, you will notice, is the tedious march from town, the bewildering maze of cookie cutter
streets hiding some specific merchant or NPC,
and the repetetive hunt for just the right beast to execute. <b>Progress Quest</b> supplies
your character with an endless series of victims, as well as exciting quests which keep your quest
log full to the brim at all times.
<p>
TREASURE: Each slain creature yields a trophy, which can be sold in any town.
When the encumbrance bar reaches maximum, your character automatically returns to the nearest town
to sell your loot. If sufficiently liquid, he may then purchase an upgrade in equpiment (weapon or armor).
That being done, the interpid adventurer then returns to the frontier to spill more blood.
<i>Tip: The amount your character can carry before his encumbrance bar fills up
increases as his STR stat improves.</i>
<p>
QUESTS: When a quest is complete, your character is rewarded with one of:
a) a special, valuable, treasure item,
b) an improved weapon or piece of armor,
c) a boost in stats, or
d) a new spell for his spellbook. The character is then assigned
a follow-up quest, which he immediately begins to make progress on.
<p>
EXPERIENCE AND LEVELING UP: Experience represents your character's knowledge about the world
around him, as well as his battle prowess and ability to channel the forces of magical power.
Your character gains experience by killing monsters and sentient beings,
over and over again. Once the experience bar is full, your character levels up, and is
given an automatic boost in several of his stats and a new spell for his spellbook.
<p>
DYING: Be warned that your character can be slain by monsters which are tougher than
he can handle. However, this concept
has been abstracted out of the game and takes effect simply by somewhat reducing the experience
accumulated for each successful murder.
<p>
SAVING YOUR PROGRESS: Your game is saved whenever you quit, as well as each time your character levels
up or completes a quest. You can pick up where you left off by restarting <b>Progress Quest</b> and clicking the <code>Load Game</code>
button. <b>Progress Quest</b> makes a backup of your existing save file each time it saves anew, so
if your save file becomes corrupted, load the backup, and lament the progress that must now be regained.
<h3> Game controls </h3>
<b>Progress Quest</b> belongs to a new breed of "fire and forget" RPG's. There is no need to interact
with <b>Progress Quest</b> at all; it will make progress with you or without you.
<p>
You can quit <b>Progress Quest</b> by using the window close box, or by hitting &lt;Alt&gt;-&lt;F4&gt;
(hold down the &lt;Alt&gt; key while hitting &lt;F4&gt;), but there is really little need to ever do so.
Please note that your character will <i>not</i> make any progress <i>except when <b>Progress Quest</b> is
running</i>. Your character will make <i>no</i> progress once you quit the program, until you start
<b>Progress Quest</b> again.
<h3> Keyboard quick reference </h3>
<table border=1 cellspacing=5><th>Key</th><th>Description</tr>
<tr><td>Alt-F4<td>Exit <b>Progress Quest</b></table>
<p>
<small>&copy:Copyright 2002
<a href=mailto:grumdrig@progressquest.com>grumdrig@progressquest.com</a>
Binary file not shown.
-802
View File
@@ -1,802 +0,0 @@
object K: TK
Left = 335
Top = 119
Width = 572
Height = 567
Caption = 'K'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 8
Top = 116
Width = 28
Height = 13
Caption = 'Spells'
end
object Label2: TLabel
Left = 168
Top = 4
Width = 64
Height = 13
Caption = 'Offense Attrib'
end
object Label3: TLabel
Left = 280
Top = 228
Width = 70
Height = 13
Caption = 'Defense Atrtrib'
end
object Label4: TLabel
Left = 140
Top = 228
Width = 34
Height = 13
Caption = 'Shields'
end
object Label5: TLabel
Left = 8
Top = 228
Width = 27
Height = 13
Caption = 'Armor'
end
object Label6: TLabel
Left = 8
Top = 4
Width = 41
Height = 13
Caption = 'Weapon'
end
object Label7: TLabel
Left = 164
Top = 428
Width = 40
Height = 13
Caption = 'Speicals'
end
object Label8: TLabel
Left = 8
Top = 428
Width = 47
Height = 13
Caption = 'Item Attrib'
end
object Label9: TLabel
Left = 320
Top = 428
Width = 34
Height = 13
Caption = 'Item Of'
end
object Label10: TLabel
Left = 172
Top = 116
Width = 58
Height = 13
Caption = 'Boring Items'
end
object Label11: TLabel
Left = 12
Top = 344
Width = 125
Height = 13
Caption = 'Monsters (name level item)'
end
object Label12: TLabel
Left = 236
Top = 344
Width = 162
Height = 13
Caption = 'Monster mods (adjustment pattern)'
end
object Label13: TLabel
Left = 324
Top = 8
Width = 56
Height = 13
Caption = 'OffenseBad'
end
object Label14: TLabel
Left = 404
Top = 232
Width = 59
Height = 13
Caption = 'DefenseBad'
end
object Spells: TMemo
Left = 8
Top = 132
Width = 153
Height = 89
Lines.Strings = (
'Slime Finger'
'Rabbit Punch'
'Hastiness'
'Good Move'
'Sadness'
'Seasick'
'Gyp'
'Innoculate'
'Cone of Annoyance'
'Magnetic Orb'
'Invisible Hands'
'Revolting Cloud'
'Aqueous Humor'
'Spectral Miasma'
'Clever Fellow'
'Lockjaw'
'Hydrophobia'
'Big Sister'
'Cone of Paste'
'Mulligan'
'Nestor'#39's Bright Idea'
'Holy Batpole'
'Tumor (Benign)'
'Braingate'
'Nonplus'
'Animate Nightstand'
'Eye of the Troglodyte'
'Curse Name'
'Dropsy'
'Vitreous Humor'
'Roger'#39's Grand Illusion'
'Covet'
'Astral Miasma'
'Spectral Oyster'
'Acrid Hands'
'Angioplasty'
'Grognor'#39's Big Day Off'
'Tumor (Malignant)'
'Animate Tunic'
'Ursine Armor'
'Holy Roller'
'Tonsilectomy'
'Curse Family'
'Infinite Confusion')
TabOrder = 0
WordWrap = False
end
object OffenseAttrib: TMemo
Left = 168
Top = 20
Width = 141
Height = 89
Lines.Strings = (
'Polished|+1'
'Serrated|+1'
'Heavy|+1'
'Pronged|+2'
'Steely|+2'
'Vicious|+3'
'Venomed|+4'
'Stabbity|+4'
'Dancing|+5'
'Invisible|+6'
'Vorpal|+7')
TabOrder = 1
WordWrap = False
end
object DefenseAttrib: TMemo
Left = 280
Top = 244
Width = 113
Height = 89
Lines.Strings = (
'Studded|+1'
'Banded|+2'
'Gilded|+2'
'Festooned|+3'
'Holy|+4'
'Cambric|+1'
'Fine|+4'
'Impressive|+5'
'Custom|+3')
TabOrder = 2
WordWrap = False
end
object Shields: TMemo
Left = 140
Top = 244
Width = 133
Height = 89
Lines.Strings = (
'Parasol|0'
'Pie Plate|1'
'Garbage Can Lid|2'
'Buckler|3'
'Plexiglass|4'
'Fender|4'
'Round Shield|5'
'Carapace|5'
'Scutum|6'
'Propugner|6'
'Kite Shield|7'
'Pavise|8'
'Tower Shield|9'
'Baroque Shield|11'
'Aegis|12'
'Magnetic Field|18')
TabOrder = 3
WordWrap = False
end
object Armors: TMemo
Left = 8
Top = 244
Width = 129
Height = 89
Lines.Strings = (
'Lace|1'
'Macrame|2'
'Burlap|3'
'Canvas|4'
'Flannel|5'
'Chamois|6'
'Pleathers|7'
'Leathers|8'
'Bearskin|9'
'Ringmail|10'
'Scale Mail|12'
'Chainmail|14'
'Splint Mail|15'
'Platemail|16'
'ABS|17'
'Kevlar|18'
'Titanium|19'
'Mithril Mail|20'
'Diamond Mail|25'
'Plasma|30')
TabOrder = 4
WordWrap = False
end
object Weapons: TMemo
Left = 8
Top = 20
Width = 153
Height = 89
Lines.Strings = (
'Stick|0'
'Broken Bottle|1'
'Shiv|1'
'Sprig|1'
'Oxgoad|1'
'Eelspear|2'
'Bowie Knife|2'
'Claw Hammer|2'
'Handpeen|2'
'Andiron|3'
'Hatchet|3'
'Tomahawk|3'
'Hackbarm|3'
'Crowbar|4'
'Mace|4'
'Battleadze|4'
'Leafmace|5'
'Shortsword|5'
'Longiron|5'
'Poachard|5'
'Baselard|5'
'Whinyard|6'
'Blunderbuss|6'
'Longsword|6'
'Crankbow|6'
'Blibo|7'
'Broadsword|7'
'Morning Star|8'
'Pole-adze|8'
'Spontoon|8'
'Bastard Sword|9'
'Peen-arm|9'
'Culverin|10'
'Lance|10'
'Halberd|11'
'Poleax|12'
'Bandyclef|15')
TabOrder = 5
WordWrap = False
end
object Specials: TMemo
Left = 164
Top = 444
Width = 149
Height = 89
Lines.Strings = (
'Diadem'
'Festoon'
'Gemstone'
'Phial'
'Tiara'
'Scabbard'
'Arrow'
'Lens'
'Lamp'
'Hymnal'
'Fleece'
'Laurel'
'Brooch'
'Gimlet'
'Cobble'
'Albatross'
'Brazier'
'Bandolier'
'Tome'
'Garnet'
'Amethyst'
'Candelabra'
'Corset'
'Sphere'
'Sceptre'
'Ankh'
'Talisman'
'Orb'
'Gammel'
'Ornament'
'Brocade'
'Galoon'
'Bijou'
'Spangle'
'Gimcrack')
TabOrder = 6
WordWrap = False
end
object ItemAttrib: TMemo
Left = 8
Top = 444
Width = 149
Height = 89
Lines.Strings = (
'Golden'
'Gilded'
'Spectral'
'Astral'
'Garlanded'
'Precious'
'Crafted'
'Dual'
'Filigreed'
'Cruciate'
'Arcane'
'Blessed'
'Reverential'
'Lucky'
'Enchanted'
'Gleaming'
'Grandiose'
'Sacred'
'Legendary'
'Mythic'
'Crystalline'
'Austere'
'Ostentatious'
'One True'
'Proverbial'
'Fearsome '
'Deadly'
'Benevolent'
'Unearthly'
'Magnificent'
'Iron'
'Ormolu'
'Puissant')
TabOrder = 7
WordWrap = False
end
object ItemOfs: TMemo
Left = 320
Top = 444
Width = 149
Height = 89
Lines.Strings = (
'Foreboding'
'Foreshadowing'
'Nervousness'
'Happiness'
'Torpor'
'Danger'
'Craft'
'Silence'
'Invisibility'
'Rapidity'
'Pleasure'
'Practicality'
'Hurting'
'Joy'
'Petulance'
'Intrusion'
'Chaos'
'Suffering'
'Extroversion'
'Frenzy'
'Solitude'
'Punctuality'
'Efficiency'
'Comfort'
'Patience'
'Internment'
'Incarceration'
'Misapprehension'
'Loyalty'
'Envy'
'Acrimony'
'Worry'
'Fear'
'Awe'
'Guile'
'Prurience'
'Fortune'
'Perspicacity'
'Domination'
'Submission'
'Fealty'
'Hunger'
'Despair'
'Cruelty'
'Grob'
'Dignard'
'Ra'
'the Bone'
'Diamonique'
'Electrum'
'Hydragyrum')
TabOrder = 8
WordWrap = False
end
object BoringItems: TMemo
Left = 168
Top = 132
Width = 149
Height = 89
Lines.Strings = (
'nail'
'lunchpail'
'sock'
'I.O.U.'
'cookie'
'pint'
'toothpick'
'writ'
'newspaper'
'letter'
'plank'
'hat'
'egg'
'coin'
'needle'
'bucket'
'ladder'
'chicken'
'twig'
'dirtclod'
'counterpane'
'vest'
'teratoma'
'bunny'
'rock'
'pole'
'carrot'
'canoe'
'inkwell'
'hoe'
'bandage'
'trowel'
'towel'
'planter box'
'anvil'
'axle'
'tuppence'
'casket'
'nosegay'
'trinket')
TabOrder = 9
WordWrap = False
end
object Monsters: TMemo
Left = 8
Top = 360
Width = 221
Height = 61
Lines.Strings = (
'Anhkheg|6|chitin'
'Ant|0|antenna'
'Ape|4|ass'
'Baluchitherium|14|ear'
'Beholder|10|eyestalk'
'Black Pudding|10|saliva'
'Blink Dog|4|eyelid'
'Cub Scout|1|neckercheif'
'Girl Scout|2|cookie'
'Boy Scout|3|merit badge'
'Eagle Scout|4|merit badge'
'Bugbear|3|skin'
'Bugboar|3|tusk'
'Boogie|3|slime'
'Camel|2|hump'
'Carrion Crawler|3|egg'
'Catoblepas|6|neck'
'Centaur|4|rib'
'Centipede|0|leg'
'Cockatrice|5|wattle'
'Couatl|9|wing'
'Crayfish|0|antenna'
'Demogorgon|53|tentacle'
'Jubilex|17|gel'
'Manes|1|tooth'
'Orcus|27|wand'
'Succubus|6|bra'
'Vrock|8|neck'
'Hezrou|9|leg'
'Glabrezu|10|collar'
'Nalfeshnee|11|tusk'
'Marilith|7|arm'
'Balor|8|whip'
'Yeenoghu|25|flail'
'Asmodeus|52|leathers'
'Baalzebul|43|pants'
'Barbed Devil|8|flame'
'Bone Devil|9|hook'
'Dispater|30|matches'
'Erinyes|6|thong'
'Geryon|30|cornucopia'
'Malebranche|5|fork'
'Ice Devil|11|snow'
'Lemure|3|blob'
'Pit Fiend|13|seed'
'Anklyosaurus|9|tail'
'Brontosaurus|30|brain'
'Diplodocus|24|fin'
'Elasmosaurus|15|neck'
'Gorgosaurus|13|arm'
'Iguanadon|6|thumb'
'Megalosaurus|12|jaw'
'Monoclonius|8|horn'
'Pentasaurus|12|head'
'Stegosaurus|18|plate'
'Triceratops|16|horn'
'Tyranosauraus Rex|18|forearm'
'Djinn|7|lamp'
'Doppleganger|4|face'
'Black Dragon|7|*'
'Plaid Dragon|7|sporrin'
'Blue Dragon|9|*'
'Beige Dragon|9|*'
'Brass Dragon|7|pole'
'Tin Dragon|8|*'
'Bronze Dragon|9|medal'
'Chromatic Dragon|16|mineral water'
'Copper Dragon|8|loafer'
'Gold Dragon|8|filling'
'Green Dragon|8|*'
'Platinum Dragon|21|*'
'Red Dragon|10|cocktail'
'Silver Dragon|10|*'
'White Dragon|6|tooth'
'Dragon Turtle|13|shell'
'Dryad|2|acorn'
'Dwarf|1|drawers'
'Eel|2|sashimi'
'Efreet|10|cinder'
'Sand Elemental|8|glass'
'Bacon Elemental|10|bit'
'Porn Elemental|12|lube'
'Cheese Elemental|14|curd'
'Hair Elemental|16|follicle'
'Swamp Elf|1|lilypad'
'Brown Elf|1|tusk'
'Sea Elf|1|jerkin'
'Ettin|10|fur'
'Frog|0|leg'
'Violet Fungi|3|spore'
'Gargoyle|4|gravel'
'Gelatinous Cube|4|jam'
'Ghast|4|vomit'
'Ghost|10|*'
'Ghoul|2|muscle'
'Humidity Giant|12|drops'
'Beef Giant|11|steak'
'Quartz Giant|10|crystal'
'Porcelain Giant|9|fixture'
'Rice Giant|8|grain'
'Cloud Giant|12|condensation'
'Fire Giant|11|cigarettes'
'Frost Giant|10|snowman'
'Hill Giant|8|corpse'
'Stone Giant|9|hatchling'
'Storm Giant|15|barometer'
'Mini Giant|4|pompadour'
'Gnoll|2|collar'
'Gnome|1|hat'
'Goblin|1|ear'
'Grid Bug|1|carapace'
'Jellyrock|9|seedling'
'Beer Golem|15|foam'
'Oxygen Golem|17|platelet'
'Cardboard Golem|14|recycling'
'Rubber Golem|16|ball'
'Leather Golem|15|fob'
'Gorgon|8|testicle'
'Gray Ooze|3|gravy'
'Green Slime|2|sample'
'Griffon|7|nest'
'Banshee|7|larynx'
'Harpy|3|mascara'
'Hell Hound|5|tongue'
'Hippocampus|4|mane'
'Hippogriff|3|egg'
'Hobgoblin|1|patella'
'Homonculus|2|fluid'
'Hydra|8|gyrum'
'Imp|2|tail'
'Invisible Stalker|8|*'
'Iron Peasant|3|chaff'
'Jumpskin|3|shin'
'Kobold|1|penis'
'Leprechaun|1|wallet'
'Leucrotta|6|hoof'
'Lich|11|crown'
'Lizard Man|2|tail'
'Lurker|10|sac'
'Manticore|6|spike'
'Mastodon|12|tusk'
'Medusa|6|eye'
'Multicell|2|dendrite'
'Pirate|1|booty'
'Berserker|1|shirt'
'Caveman|2|club'
'Dervish|1|robe'
'Merman|1|trident'
'Mermaid|1|gills'
'Mimic|9|hinge'
'Mind Flayer|8|tentacle'
'Minotaur|6|map'
'Yellow Mold|1|spore'
'Morkoth|7|teeth'
'Mummy|6|gauze'
'Naga|9|rattle'
'Nebbish|1|belly'
'Neo-Otyugh|11|organ '
'Nixie|1|webbing'
'Nymph|3|hanky'
'Ochre Jelly|6|nucleus'
'Octopus|2|beak'
'Ogre|4|talon'
'Ogre Mage|5|apparel'
'Orc|1|snout'
'Otyugh|7|organ'
'Owlbear|5|feather'
'Pegasus|4|aileron'
'Peryton|4|antler'
'Piercer|3|tip'
'Pixie|1|dust'
'Man-o-war|3|tentacle'
'Purple Worm|15|dung'
'Quasit|3|tail'
'Rakshasa|7|pajamas'
'Rat|0|tail'
'Remorhaz|11|protrusion'
'Roc|18|wing'
'Roper|11|twine'
'Rot Grub|1|eggsac'
'Rust Monster|5|shavings'
'Satyr|5|hoof'
'Sea Hag|3|wart'
'Silkie|3|fur'
'Shadow|3|silhouette'
'Shambling Mound|10|mulch'
'Shedu|9|hoof'
'Shrieker|3|stalk'
'Skeleton|1|clavicle'
'Spectre|7|vestige'
'Sphinx|10|paw'
'Spider|0|web'
'Sprite|1|can'
'Stirge|1|proboscis'
'Stun Bear|5|tooth'
'Stun Worm|2|trode'
'Su-monster|5|tail'
'Sylph|3|thigh'
'Titan|20|sandal'
'Trapper|12|shag'
'Treant|10|acorn'
'Triton|3|scale'
'Troglodyte|2|tail'
'Troll|6|hide'
'Umber Hulk|8|claw'
'Unicorn|4|blood'
'Vampire|8|pancreas'
'Wight|4|lung'
'Will-o-the-Wisp|9|wisp'
'Wraith|5|finger'
'Wyvern|7|wing'
'Xorn|7|jaw'
'Yeti|4|fur'
'Zombie|2|forehead'
'Wasp|0|stinger'
'Rat|1|tail'
'Bunny|0|ear'
'Moth|0|dust'
'Beagle|0|collar'
'Midge|0|corpse'
'Ostrich|1|beak'
'Billy Goat|1|beard'
'Bat|1|wing'
'Koala|2|heart'
'Wolf|2|paw'
'Whippet|2|collar'
'Uruk|2|boot')
TabOrder = 10
WordWrap = False
end
object MonMods: TMemo
Left = 232
Top = 360
Width = 221
Height = 61
Lines.Strings = (
'-4 f'#339'tal *'
'-4 dying *'
'-3 crippled *'
'-3 baby *'
'-2 adolescent'
'-2 very sick *'
'-1 lesser *'
'-1 undernourished *'
'+1 greater *'
'+1 * Elder'
'+2 war *'
'+2 Battle-*'
'+3 Were-*'
'+3 undead *'
'+4 giant *'
'+4 * Rex')
TabOrder = 11
WordWrap = False
end
object OffenseBad: TMemo
Left = 316
Top = 20
Width = 141
Height = 89
Lines.Strings = (
'Dull|-2'
'Tarnished|-1'
'Rusty|-3'
'Padded|-5'
'Bent|-4'
'Mini|-4'
'Rubber|-6'
'Nerf|-7'
'Unbalanced|-2')
TabOrder = 12
WordWrap = False
end
object DefenseBad: TMemo
Left = 396
Top = 244
Width = 141
Height = 89
Lines.Strings = (
'Holey|-1'
'Patched|-1'
'Threadbare|-2'
'Faded|-1'
'Rusty|-3'
'Motheaten|-3'
'Mildewed|-2'
'Torn|-3'
'Dented|-3'
'Cursed|-5'
'Plastic|-4'
'Cracked|-4'
'Warped|-3'
'Corroded|-3')
TabOrder = 13
WordWrap = False
end
end
-53
View File
@@ -1,53 +0,0 @@
unit Config;
{ copyright (c)2002 Eric Fredricksen all rights reserved }
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TK = class(TForm)
Spells: TMemo;
Label1: TLabel;
OffenseAttrib: TMemo;
Label2: TLabel;
DefenseAttrib: TMemo;
Label3: TLabel;
Shields: TMemo;
Label4: TLabel;
Armors: TMemo;
Label5: TLabel;
Weapons: TMemo;
Label6: TLabel;
Specials: TMemo;
Label7: TLabel;
ItemAttrib: TMemo;
Label8: TLabel;
ItemOfs: TMemo;
Label9: TLabel;
BoringItems: TMemo;
Label10: TLabel;
Monsters: TMemo;
MonMods: TMemo;
Label11: TLabel;
Label12: TLabel;
OffenseBad: TMemo;
Label13: TLabel;
DefenseBad: TMemo;
Label14: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
K: TK;
implementation
{$R *.dfm}
end.
File diff suppressed because it is too large Load Diff
-51
View File
@@ -1,51 +0,0 @@
unit Front;
{ copyright (c)2002 Eric Fredricksen all rights reserved }
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TFrontForm = class(TForm)
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
Button4: TButton;
Label2: TLabel;
Button3: TButton;
Panel2: TPanel;
Logo: TImage;
Label3: TLabel;
HomeLink: TLabel;
Label1: TLabel;
procedure HomeLinkClick(Sender: TObject);
procedure LogoClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrontForm: TFrontForm;
implementation
uses ShellAPI, Main, Info;
{$R *.dfm}
procedure TFrontForm.HomeLinkClick(Sender: TObject);
begin
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', nil, '', SW_SHOW);
end;
procedure TFrontForm.LogoClick(Sender: TObject);
begin
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', nil, '', SW_SHOW);
end;
end.
-448
View File
@@ -1,448 +0,0 @@
{*************************************************************}
{ HTTPGet component for Delphi 32 }
{ Version: 1.94 }
{ E-Mail: info@utilmind.com }
{ WWW: http://www.utilmind.com }
{ Created: October 19, 1999 }
{ Modified: June 6, 2000 }
{ Legal: Copyright (c) 1999-2000, UtilMind Solutions }
{*************************************************************}
{ PROPERTIES: }
{ Agent: String - User Agent }
{ }
{* BinaryData: Boolean - This setting specifies which type }
{* of data will taken from the web. }
{* If you set this property TRUE then }
{* component will determinee the size }
{* of files *before* getting them from }
{* the web. }
{* If this property is FALSE then as we}
{* do not knows the file size the }
{* OnProgress event will doesn't work. }
{* Also please remember that is you set}
{* this property as TRUE you will not }
{* capable to get from the web ASCII }
{* data and ofter got OnError event. }
{ }
{ FileName: String - Path to local file to store the data }
{ taken from the web }
{ Password, UserName - set this properties if you trying to }
{ get data from password protected }
{ directories. }
{ Referer: String - Additional data about referer document }
{ URL: String - The url to file or document }
{ UseCache: Boolean - Get file from the Internet Explorer's }
{ cache if requested file is cached. }
{*************************************************************}
{ METHODS: }
{ GetFile - Get the file from the web specified in the URL }
{ property and store it to the file specified in }
{ the FileName property }
{ GetString - Get the data from web and return it as usual }
{ String. You can receive this string hooking }
{ the OnDoneString event. }
{ Abort - Stop the current session }
{*************************************************************}
{ EVENTS: }
{ OnDoneFile - Occurs when the file is downloaded }
{ OnDoneString - Occurs when the string is received }
{ OnError - Occurs when error happend }
{ OnProgress - Occurs at the receiving of the BINARY DATA }
{*************************************************************}
{ Please see demo program for more information. }
{*************************************************************}
{ IMPORTANT NOTE: }
{ This software is provided 'as-is', without any express or }
{ implied warranty. In no event will the author be held }
{ liable for any damages arising from the use of this }
{ software. }
{ Permission is granted to anyone to use this software for }
{ any purpose, including commercial applications, and to }
{ alter it and redistribute it freely, subject to the }
{ following restrictions: }
{ 1. The origin of this software must not be misrepresented, }
{ you must not claim that you wrote the original software. }
{ If you use this software in a product, an acknowledgment }
{ in the product documentation would be appreciated but is }
{ not required. }
{ 2. Altered source versions must be plainly marked as such, }
{ and must not be misrepresented as being the original }
{ software. }
{ 3. This notice may not be removed or altered from any }
{ source distribution. }
{*************************************************************}
unit HTTPGet;
interface
uses
Windows, Messages, SysUtils, Classes, WinInet;
type
TOnProgressEvent = procedure(Sender: TObject; TotalSize, Readed: Integer) of object;
TOnDoneFileEvent = procedure(Sender: TObject; FileName: String; FileSize: Integer) of object;
TOnDoneStringEvent = procedure(Sender: TObject; Result: String) of object;
THTTPGetThread = class(TThread)
private
FTAcceptTypes,
FTAgent,
FTURL,
FTFileName,
FTStringResult,
FTUserName,
FTPassword,
FTPostQuery,
FTReferer: String;
FTBinaryData,
FTUseCache: Boolean;
FTResult: Boolean;
FTFileSize: Integer;
FTToFile: Boolean;
BytesToRead, BytesReaded: DWord;
FTProgress: TOnProgressEvent;
procedure UpdateProgress;
protected
procedure Execute; override;
public
constructor Create(aAcceptTypes, aAgent, aURL, aFileName, aUserName, aPassword, aPostQuery, aReferer: String;
aBinaryData, aUseCache: Boolean; aProgress: TOnProgressEvent; aToFile: Boolean);
end;
THTTPGet = class(TComponent)
private
FAcceptTypes: String;
FAgent: String;
FBinaryData: Boolean;
FURL: String;
FUseCache: Boolean;
FFileName: String;
FUserName: String;
FPassword: String;
FPostQuery: String;
FReferer: String;
FWaitThread: Boolean;
FThread: THTTPGetThread;
FError: TNotifyEvent;
FResult: Boolean;
FProgress: TOnProgressEvent;
FDoneFile: TOnDoneFileEvent;
FDoneString: TOnDoneStringEvent;
procedure ThreadDone(Sender: TObject);
public
constructor Create(aOwner: TComponent); override;
destructor Destroy; override;
procedure GetFile;
procedure GetString;
procedure Abort;
published
property AcceptTypes: String read FAcceptTypes write FAcceptTypes;
property Agent: String read FAgent write FAgent;
property BinaryData: Boolean read FBinaryData write FBinaryData;
property URL: String read FURL write FURL;
property UseCache: Boolean read FUseCache write FUseCache;
property FileName: String read FFileName write FFileName;
property UserName: String read FUserName write FUserName;
property Password: String read FPassword write FPassword;
property PostQuery: String read FPostQuery write FPostQuery;
property Referer: String read FReferer write FReferer;
property WaitThread: Boolean read FWaitThread write FWaitThread;
property OnProgress: TOnProgressEvent read FProgress write FProgress;
property OnDoneFile: TOnDoneFileEvent read FDoneFile write FDoneFile;
property OnDoneString: TOnDoneStringEvent read FDoneString write FDoneString;
property OnError: TNotifyEvent read FError write FError;
end;
procedure Register;
implementation
// THTTPGetThread
constructor THTTPGetThread.Create(aAcceptTypes, aAgent, aURL, aFileName, aUserName, aPassword, aPostQuery, aReferer: String;
aBinaryData, aUseCache: Boolean; aProgress: TOnProgressEvent; aToFile: Boolean);
begin
FreeOnTerminate := True;
inherited Create(True);
FTAcceptTypes := aAcceptTypes;
FTAgent := aAgent;
FTURL := aURL;
FTFileName := aFileName;
FTUserName := aUserName;
FTPassword := aPassword;
FTPostQuery := aPostQuery;
FTReferer := aReferer;
FTProgress := aProgress;
FTBinaryData := aBinaryData;
FTUseCache := aUseCache;
FTToFile := aToFile;
Resume;
end;
procedure THTTPGetThread.UpdateProgress;
begin
FTProgress(Self, FTFileSize, BytesReaded);
end;
procedure THTTPGetThread.Execute;
var
hSession, hConnect, hRequest: hInternet;
HostName, FileName: String;
f: File;
Buf: Pointer;
dwBufLen, dwIndex: DWord;
Data: Array[0..$400] of Char;
TempStr: String;
RequestMethod: PChar;
InternetFlag: DWord;
AcceptType: LPStr;
procedure ParseURL(URL: String; var HostName, FileName: String);
procedure ReplaceChar(c1, c2: Char; var St: String);
var
p: Integer;
begin
while True do
begin
p := Pos(c1, St);
if p = 0 then Break
else St[p] := c2;
end;
end;
var
i: Integer;
begin
if Pos('http://', LowerCase(URL)) <> 0 then
System.Delete(URL, 1, 7);
i := Pos('/', URL);
HostName := Copy(URL, 1, i);
FileName := Copy(URL, i, Length(URL) - i + 1);
if (Length(HostName) > 0) and (HostName[Length(HostName)] = '/') then
SetLength(HostName, Length(HostName) - 1);
end;
procedure CloseHandles;
begin
InternetCloseHandle(hRequest);
InternetCloseHandle(hConnect);
InternetCloseHandle(hSession);
end;
begin
try
ParseURL(FTURL, HostName, FileName);
if Terminated then
begin
FTResult := False;
Exit;
end;
if FTAgent <> '' then
hSession := InternetOpen(PChar(FTAgent),
INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0)
else
hSession := InternetOpen(nil,
INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
hConnect := InternetConnect(hSession, PChar(HostName),
INTERNET_DEFAULT_HTTP_PORT, PChar(FTUserName), PChar(FTPassword), INTERNET_SERVICE_HTTP, 0, 0);
if FTPostQuery = '' then RequestMethod := 'GET'
else RequestMethod := 'POST';
if FTUseCache then InternetFlag := 0
else InternetFlag := INTERNET_FLAG_RELOAD;
AcceptType := PChar('Accept: ' + FTAcceptTypes);
hRequest := HttpOpenRequest(hConnect, RequestMethod, PChar(FileName), 'HTTP/1.0',
PChar(FTReferer), @AcceptType, InternetFlag, 0);
if FTPostQuery = '' then
HttpSendRequest(hRequest, nil, 0, nil, 0)
else
HttpSendRequest(hRequest, 'Content-Type: application/x-www-form-urlencoded', 47,
PChar(FTPostQuery), Length(FTPostQuery));
if Terminated then
begin
CloseHandles;
FTResult := False;
Exit;
end;
dwIndex := 0;
dwBufLen := 1024;
GetMem(Buf, dwBufLen);
FTResult := HttpQueryInfo(hRequest, HTTP_QUERY_CONTENT_LENGTH,
Buf, dwBufLen, dwIndex);
if Terminated then
begin
FreeMem(Buf);
CloseHandles;
FTResult := False;
Exit;
end;
if FTResult or not FTBinaryData then
begin
if FTResult then
FTFileSize := StrToInt(StrPas(Buf));
BytesReaded := 0;
if FTToFile then
begin
AssignFile(f, FTFileName);
Rewrite(f, 1);
end
else FTStringResult := '';
while True do
begin
if Terminated then
begin
if FTToFile then CloseFile(f);
FreeMem(Buf);
CloseHandles;
FTResult := False;
Exit;
end;
if not InternetReadFile(hRequest, @Data, SizeOf(Data), BytesToRead) then Break
else
if BytesToRead = 0 then Break
else
begin
if FTToFile then
BlockWrite(f, Data, BytesToRead)
else
begin
TempStr := Data;
SetLength(TempStr, BytesToRead);
FTStringResult := FTStringResult + TempStr;
end;
inc(BytesReaded, BytesToRead);
if Assigned(FTProgress) then
Synchronize(UpdateProgress);
end;
end;
if FTToFile then
FTResult := FTFileSize = Integer(BytesReaded)
else
begin
SetLength(FTStringResult, BytesReaded);
FTResult := BytesReaded <> 0;
end;
if FTToFile then CloseFile(f);
end;
FreeMem(Buf);
CloseHandles;
except
end;
end;
// HTTPGet
constructor THTTPGet.Create(aOwner: TComponent);
begin
inherited Create(aOwner);
FAcceptTypes := '*/*';
FAgent := 'UtilMind HTTPGet';
end;
destructor THTTPGet.Destroy;
begin
Abort;
inherited Destroy;
end;
procedure THTTPGet.GetFile;
var
Msg: TMsg;
begin
if not Assigned(FThread) then
begin
FThread := THTTPGetThread.Create(FAcceptTypes, FAgent, FURL, FFileName, FUserName, FPassword, FPostQuery, FReferer,
FBinaryData, FUseCache, FProgress, True);
FThread.OnTerminate := ThreadDone;
if FWaitThread then
while Assigned(FThread) do
while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end
end;
procedure THTTPGet.GetString;
var
Msg: TMsg;
begin
if not Assigned(FThread) then
begin
FThread := THTTPGetThread.Create(FAcceptTypes, FAgent, FURL, FFileName, FUserName, FPassword, FPostQuery, FReferer,
FBinaryData, FUseCache, FProgress, False);
FThread.OnTerminate := ThreadDone;
if FWaitThread then
while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end
end;
procedure THTTPGet.Abort;
begin
if Assigned(FThread) then
begin
FThread.Terminate;
FThread.FTResult := False;
end;
end;
procedure THTTPGet.ThreadDone(Sender: TObject);
begin
FResult := FThread.FTResult;
if FResult then
if FThread.FTToFile then
if Assigned(FDoneFile) then FDoneFile(Self, FThread.FTFileName, FThread.FTFileSize) else
else
if Assigned(FDoneString) then FDoneString(Self, FThread.FTStringResult) else
else
if Assigned(FError) then FError(Self);
FThread := nil;
end;
procedure Register;
begin
RegisterComponents('UtilMind', [THTTPGet]);
end;
end.
-101
View File
@@ -1,101 +0,0 @@
object Form4: TForm4
Left = 192
Top = 107
Width = 696
Height = 480
Caption = 'Progress Quest VI'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000000000000A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
CC00003300000033330000336600003399000033CC000033FF00006600000066
330000666600006699000066CC000066FF000099000000993300009966000099
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
CC003300FF00333300003333330033336600333399003333CC003333FF003366
00003366330033666600336699003366CC003366FF0033990000339933003399
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
330066006600660099006600CC006600FF006633000066333300663366006633
99006633CC006633FF00666600006666330066666600666699006666CC006699
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
CC009999000099339900990099009900CC009900000099333300990066009933
CC009900FF00996600009966330099336600996699009966CC009933FF009999
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF005852
5151515151515258585858585858585858585858585858585852515151515852
51514A4A4A515152585858585858585858585858585858585251514B4A4B5852
514B4A4A4A4B51515258585858585858585858585858585251514B4A4A4A5852
150F4A4A4A4A4B5151515152525251525252525252525151514A0F154A4B580B
0E0E0B4A4A4A4A4A5151515151515151515151515151514B4B0B0E0E0B512311
15220E514A4A4A4A4A4A4A4B4A4A4A4A4A4A4A4A4A4A4A4A4A0F22143D234313
22431151514A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A11432213435822
23296710294B4A4A44442244154422441544224444444A221012292322585858
58514443151D4B4A442215221522152215221522154B0E151544515252585858
5879294A43140D4A22150D0E2243100E1D0D2215220D14434A03525258585858
585852514A224A430E0E1443220D111543140E0E4344224A4A51515258585858
585858514B1514220E2243150D444444444322222214154B4B4B515258585858
585858585174151D4A434A4A15104422234A434A1D15742A4A4B515258585858
585858585222444B457422224B44224B222274454B4422524A4B515258585858
58585858510A4B4C3F4C44EA4A22224A6D444C3F4C4B0A4A4A51515258585858
585858580D15294B4523ECC8C44A4AE946EC23454B29150D4A51515858585858
58585858444A4A234AAEC8FCFCA7E9F9F946AE44234A4A435151525858585858
58585858232244224AEFA7FCFC62F9F9F946EF4A224422235151525858585858
585858584B434A110C4A8DA862F9F9F9698D4A0C114A43295151525858585858
5858585852222210514A8D46F9F9F962A78D4A51104322524B51525858585858
58585858524B0C034AEB46F9F9F962FCFCA7F84A030C4B4A4A51515258585858
5858585251514B4AED46F9F9F9E3A8FCFCFCA7ED4A4B4A4A4A4B515152585858
58585851514B4AED46F9F9F9E3F7F7E6FCFCFCA7ED4A4A4A4A4A4B5152585858
585852514B4AEB46F9F9F9E3ED525892E6FCFCFCA7EB4A4A4A4A4A4B51525858
585852514A6D46F9F9F9E3ED5858585892E6FCFCFCA76D4A4A4A4A4A51515858
5858514B14B5F047F9E3F7585858585858B5E6FCC8DDB5144A4A4A4A51515858
585852AE09F3F3BCE3B55858585858585858B5D0DDF3F309AE4A4B4B51515858
5858BCF4F5F4F4F4075858585858585858585807F4F4F4F5DEBC515151525858
58991BF5F5F2DDB6585858585858585858585858B6DDF3F5F51B995152585858
5892B51909B592585858585858585858585858585892B509DDB5925858585858
58720909ECEB58585858585858585858585858585858F8EC0909725858585858
58F78DAEED5858585858585858585858585858585858581CAE8D925858580000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000}
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object WebBrowser1: TWebBrowser
Left = 0
Top = 0
Width = 688
Height = 453
Align = alClient
TabOrder = 0
ControlData = {
4C0000001B470000D22E00000000000000000000000000000000000000000000
000000004C000000000000000000000001000000E0D057007335CF11AE690800
2B2E126208000000000000004C0000000114020000000000C000000000000046
8000000000000000000000000000000000000000000000000000000000000000
00000000000000000100000000000000000000000000000000000000}
end
end
-31
View File
@@ -1,31 +0,0 @@
unit Info;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw;
type
TForm4 = class(TForm)
WebBrowser1: TWebBrowser;
private
{ Private declarations }
public
procedure Go(url: String);
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Go(url: String);
begin
WebBrowser1.Navigate(url);
Show;
end;
end.
-166
View File
@@ -1,166 +0,0 @@
object LoginForm: TLoginForm
Left = 314
Top = 162
Width = 265
Height = 448
Caption = 'Progress Quest Login'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
PixelsPerInch = 96
TextHeight = 13
object GroupBox1: TGroupBox
Left = 12
Top = 176
Width = 237
Height = 69
Caption = 'New Users'
TabOrder = 0
object Label1: TLabel
Left = 2
Top = 15
Width = 233
Height = 18
Align = alTop
AutoSize = False
Caption = ' To sign up for a new account, visit'
Layout = tlBottom
end
object Label2: TLabel
Left = 2
Top = 33
Width = 233
Height = 25
Cursor = crHandPoint
Align = alTop
Alignment = taCenter
AutoSize = False
Caption = 'http://progressquest.com/user.php'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clActiveCaption
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold, fsUnderline]
ParentColor = False
ParentFont = False
Layout = tlCenter
OnClick = Label2Click
end
end
object Login: TButton
Left = 88
Top = 388
Width = 75
Height = 25
Caption = 'Login'
Default = True
Enabled = False
TabOrder = 1
OnClick = LoginClick
end
object Button1: TButton
Left = 172
Top = 388
Width = 75
Height = 25
Caption = 'Cancel'
ModalResult = 2
TabOrder = 2
end
object GroupBox2: TGroupBox
Left = 12
Top = 256
Width = 237
Height = 121
Caption = 'Proxy Settings'
TabOrder = 3
object Label3: TLabel
Left = 12
Top = 20
Width = 213
Height = 45
AutoSize = False
Caption =
'Most people can leave this blank, but if you use a proxy to conn' +
'ect to the Web, or wish to use a proxy to cheat, enter it here.'
WordWrap = True
end
object LabeledEdit1: TLabeledEdit
Left = 12
Top = 84
Width = 149
Height = 21
EditLabel.Width = 31
EditLabel.Height = 13
EditLabel.Caption = 'Server'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 0
end
object LabeledEdit2: TLabeledEdit
Left = 164
Top = 84
Width = 57
Height = 21
EditLabel.Width = 19
EditLabel.Height = 13
EditLabel.Caption = 'Port'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 1
end
end
object GroupBox3: TGroupBox
Left = 12
Top = 12
Width = 237
Height = 157
Caption = 'Account Info'
TabOrder = 4
object Label4: TLabel
Left = 8
Top = 20
Width = 221
Height = 45
AutoSize = False
Caption =
'Some realms are open to the public riffraff, but others may requ' +
'ire a valid account. You can enter default account information h' +
'ere.'
WordWrap = True
end
object Account: TLabeledEdit
Left = 8
Top = 84
Width = 221
Height = 21
EditLabel.Width = 40
EditLabel.Height = 13
EditLabel.Caption = 'Account'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 0
OnChange = AccountChange
end
object Password: TLabeledEdit
Left = 8
Top = 124
Width = 221
Height = 21
EditLabel.Width = 46
EditLabel.Height = 13
EditLabel.Caption = 'Password'
LabelPosition = lpAbove
LabelSpacing = 3
PasswordChar = '*'
TabOrder = 1
OnChange = AccountChange
end
end
end
-60
View File
@@ -1,60 +0,0 @@
unit Login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Psock, NMHttp;
type
TLoginForm = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Login: TButton;
Button1: TButton;
GroupBox2: TGroupBox;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
Label3: TLabel;
GroupBox3: TGroupBox;
Account: TLabeledEdit;
Password: TLabeledEdit;
Label4: TLabel;
procedure Label2Click(Sender: TObject);
procedure AccountChange(Sender: TObject);
procedure LoginClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
LoginForm: TLoginForm;
implementation
uses ShellAPI, Main, NewGuy, SelServ;
{$R *.dfm}
procedure TLoginForm.Label2Click(Sender: TObject);
begin
ShellExecute(GetDesktopWindow(), 'open', PChar(TLabel(Sender).Caption), nil, '', SW_SHOW);
end;
procedure TLoginForm.AccountChange(Sender: TObject);
begin
Login.Enabled := (Account.Text <> '') and (Password.Text <> '');
end;
procedure TLoginForm.LoginClick(Sender: TObject);
begin
MainForm.SetLogin(Account.Text);
MainForm.SetPassword(Password.Text);
if ServerSelectForm.Go then
ModalResult := mrOk;
end;
end.
-656
View File
@@ -1,656 +0,0 @@
object MainForm: TMainForm
Left = 226
Top = 145
Width = 682
Height = 569
HorzScrollBar.Visible = False
VertScrollBar.Visible = False
Caption = 'Progress Quest'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000000000000A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
CC00003300000033330000336600003399000033CC000033FF00006600000066
330000666600006699000066CC000066FF000099000000993300009966000099
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
CC003300FF00333300003333330033336600333399003333CC003333FF003366
00003366330033666600336699003366CC003366FF0033990000339933003399
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
330066006600660099006600CC006600FF006633000066333300663366006633
99006633CC006633FF00666600006666330066666600666699006666CC006699
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
CC009999000099339900990099009900CC009900000099333300990066009933
CC009900FF00996600009966330099336600996699009966CC009933FF009999
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
KeyPreview = True
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnCreate = FormCreate
OnKeyDown = FormKeyDown
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 0
Top = 0
Width = 200
Height = 507
Align = alLeft
TabOrder = 0
object Label1: TLabel
Left = 1
Top = 1
Width = 198
Height = 13
Align = alTop
Caption = 'Character Sheet'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label6: TLabel
Left = 1
Top = 229
Width = 198
Height = 13
Align = alTop
Caption = 'Experience'
end
object Label4: TLabel
Left = 1
Top = 258
Width = 198
Height = 13
Align = alTop
Caption = 'Spell Book'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Traits: TListView
Left = 1
Top = 14
Width = 198
Height = 79
Align = alTop
Columns = <
item
Caption = 'Trait'
Width = 60
end
item
AutoSize = True
Caption = 'Value'
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
Items.Data = {
6E0000000400000000000000FFFFFFFFFFFFFFFF0000000000000000044E616D
6500000000FFFFFFFFFFFFFFFF0000000000000000045261636500000000FFFF
FFFFFFFFFFFF000000000000000005436C61737300000000FFFFFFFFFFFFFFFF
0000000000000000054C6576656C}
MultiSelect = True
ReadOnly = True
RowSelect = True
TabOrder = 1
ViewStyle = vsReport
end
object Stats: TListView
Left = 1
Top = 93
Width = 198
Height = 136
Align = alTop
Columns = <
item
Caption = 'Stat'
Width = 60
end
item
AutoSize = True
Caption = 'Value'
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
Items.Data = {
CE0000000800000000000000FFFFFFFFFFFFFFFF000000000000000003535452
00000000FFFFFFFFFFFFFFFF000000000000000003434F4E00000000FFFFFFFF
FFFFFFFF00000000000000000344455800000000FFFFFFFFFFFFFFFF00000000
0000000003494E5400000000FFFFFFFFFFFFFFFF000000000000000003574953
00000000FFFFFFFFFFFFFFFF00000000000000000343484100000000FFFFFFFF
FFFFFFFF0000000000000000064850204D617800000000FFFFFFFFFFFFFFFF00
00000000000000064D50204D6178}
MultiSelect = True
ReadOnly = True
RowSelect = True
TabOrder = 0
ViewStyle = vsReport
end
object ExpBar: TProgressBar
Left = 1
Top = 242
Width = 198
Height = 16
Align = alTop
Min = 0
Max = 100
ParentShowHint = False
Position = 50
Smooth = True
ShowHint = True
TabOrder = 2
end
object Spells: TListView
Left = 1
Top = 271
Width = 198
Height = 203
Align = alClient
Columns = <
item
AutoSize = True
Caption = 'Spell'
end
item
Caption = 'Level'
Width = 60
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
MultiSelect = True
ReadOnly = True
RowSelect = True
TabOrder = 3
ViewStyle = vsReport
end
object Cheats: TPanel
Left = 1
Top = 474
Width = 198
Height = 32
Align = alBottom
TabOrder = 4
Visible = False
object CashIn: TButton
Left = 32
Top = 4
Width = 25
Height = 25
Caption = '$'
TabOrder = 0
OnClick = CashInClick
end
object Button1: TButton
Left = 4
Top = 4
Width = 25
Height = 25
Caption = 'L+1'
TabOrder = 1
OnClick = Button1Click
end
object FinishQuest: TButton
Left = 92
Top = 4
Width = 27
Height = 25
Caption = 'Q!'
TabOrder = 2
OnClick = FinishQuestClick
end
object Button3: TButton
Left = 124
Top = 4
Width = 27
Height = 25
Caption = 'X!'
TabOrder = 3
OnClick = SpeedButton1Click
end
object CheatPlot: TButton
Left = 60
Top = 3
Width = 27
Height = 25
Caption = 'P!'
TabOrder = 4
OnClick = CheatPlotClick
end
end
end
object Panel3: TPanel
Left = 474
Top = 0
Width = 200
Height = 507
Align = alRight
TabOrder = 1
object Label3: TLabel
Left = 1
Top = 177
Width = 198
Height = 13
Align = alTop
Caption = 'Quests'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label2: TLabel
Left = 1
Top = 1
Width = 198
Height = 13
Align = alTop
Caption = 'Plot Development'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object QuestBar: TProgressBar
Left = 1
Top = 490
Width = 198
Height = 16
Align = alBottom
Min = 0
Max = 0
ParentShowHint = False
Smooth = True
ShowHint = True
TabOrder = 0
end
object Plots: TListView
Left = 1
Top = 14
Width = 198
Height = 147
Align = alTop
Columns = <
item
AutoSize = True
Caption = 'Act'
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
IconOptions.Arrangement = iaLeft
MultiSelect = True
ReadOnly = True
RowSelect = True
ShowColumnHeaders = False
StateImages = ImageList1
TabOrder = 1
ViewStyle = vsReport
end
object PlotBar: TProgressBar
Left = 1
Top = 161
Width = 198
Height = 16
Align = alTop
Min = 0
Max = 0
ParentShowHint = False
Smooth = True
ShowHint = True
TabOrder = 2
end
object Quests: TListView
Left = 1
Top = 190
Width = 198
Height = 300
Align = alClient
Columns = <
item
AutoSize = True
Caption = 'Quest'
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
IconOptions.Arrangement = iaLeft
MultiSelect = True
ReadOnly = True
RowSelect = True
ShowColumnHeaders = False
StateImages = ImageList1
TabOrder = 3
ViewStyle = vsReport
end
end
object Panel2: TPanel
Left = 200
Top = 0
Width = 274
Height = 507
Align = alClient
TabOrder = 2
object InventoryLabelAlsoGameStyle: TLabel
Left = 1
Top = 176
Width = 272
Height = 13
Align = alTop
Caption = 'Inventory'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label7: TLabel
Left = 1
Top = 477
Width = 272
Height = 13
Align = alBottom
Caption = 'Encumbrance'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object Label8: TLabel
Left = 1
Top = 1
Width = 272
Height = 13
Align = alTop
Caption = 'Equipment'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Inventory: TListView
Left = 1
Top = 189
Width = 272
Height = 288
Align = alClient
Columns = <
item
AutoSize = True
Caption = 'Item'
end
item
Alignment = taRightJustify
Caption = 'Qty'
Width = 69
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
MultiSelect = True
ReadOnly = True
RowSelect = True
TabOrder = 0
ViewStyle = vsReport
end
object EncumBar: TProgressBar
Left = 1
Top = 490
Width = 272
Height = 16
Align = alBottom
Min = 0
Max = 100
ParentShowHint = False
Position = 50
Smooth = True
ShowHint = True
TabOrder = 1
end
object Equips: TListView
Left = 1
Top = 14
Width = 272
Height = 162
Align = alTop
Columns = <
item
Caption = 'Position'
Width = 60
end
item
AutoSize = True
Caption = 'Equipped'
end>
ColumnClick = False
FlatScrollBars = True
HideSelection = False
Items.Data = {
410100000B00000000000000FFFFFFFFFFFFFFFF000000000000000006576561
706F6E00000000FFFFFFFFFFFFFFFF000000000000000006536869656C640000
0000FFFFFFFFFFFFFFFF00000000000000000448656C6D00000000FFFFFFFFFF
FFFFFF0000000000000000074861756265726B00000000FFFFFFFFFFFFFFFF00
000000000000000A4272617373616972747300000000FFFFFFFFFFFFFFFF0000
0000000000000956616D62726163657300000000FFFFFFFFFFFFFFFF00000000
00000000094761756E746C65747300000000FFFFFFFFFFFFFFFF000000000000
00000847616D6265736F6E00000000FFFFFFFFFFFFFFFF000000000000000007
4375697373657300000000FFFFFFFFFFFFFFFF00000000000000000747726561
76657300000000FFFFFFFFFFFFFFFF000000000000000009536F6C6C65726574
73}
MultiSelect = True
ReadOnly = True
RowSelect = True
ShowColumnHeaders = False
TabOrder = 2
ViewStyle = vsReport
end
object vars: TPanel
Left = 84
Top = 32
Width = 177
Height = 129
Caption = 'vars'
TabOrder = 3
Visible = False
object fTask: TLabel
Left = 20
Top = 16
Width = 27
Height = 13
AutoSize = False
Caption = 'fTask'
Color = clMoneyGreen
ParentColor = False
end
object fQuest: TLabel
Left = 24
Top = 36
Width = 31
Height = 13
AutoSize = False
Caption = 'fQuest'
Color = clSkyBlue
ParentColor = False
end
object fQueue: TListBox
Left = 12
Top = 72
Width = 49
Height = 45
ItemHeight = 13
TabOrder = 0
end
end
end
object Panel4: TPanel
Left = 0
Top = 507
Width = 674
Height = 35
Align = alBottom
Caption = 'Panel4'
TabOrder = 3
object Kill: TStatusBar
Left = 1
Top = -1
Width = 672
Height = 19
Panels = <
item
Width = 50
end>
SimplePanel = True
SimpleText = 'Welcome to Progress Quest!'
end
object TaskBar: TProgressBar
Left = 1
Top = 18
Width = 672
Height = 16
Align = alBottom
Min = 0
Max = 100
Position = 50
Smooth = True
Step = 1
TabOrder = 1
end
end
object Timer1: TTimer
Enabled = False
Interval = 100
OnTimer = Timer1Timer
Left = 40
Top = 120
end
object ImageList1: TImageList
Height = 12
Width = 12
Left = 92
Top = 52
Bitmap = {
494C01010200040004000C000C00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000300000000C00000001001000000000008004
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000424D3E000000000000003E000000
28000000300000000C0000000100010000000000600000000000000000000000
000000000000000000000000FFFFFF0000100100000000007FD7FD0000000000
7FD77D00000000007FD63D00000000007FD41D00000000007FD48D0000000000
7FD5C500000000007FD7E500000000007FD7F500000000007FD7FD0000000000
0010010000000000FFFFFF000000000000000000000000000000000000000000
000000000000}
end
end
File diff suppressed because it is too large Load Diff
-395
View File
@@ -1,395 +0,0 @@
object NewGuyForm: TNewGuyForm
Left = 323
Top = 164
BorderIcons = []
BorderStyle = bsDialog
Caption = 'Progress Quest - New Character'
ClientHeight = 458
ClientWidth = 509
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000000000000A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
CC00003300000033330000336600003399000033CC000033FF00006600000066
330000666600006699000066CC000066FF000099000000993300009966000099
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
CC003300FF00333300003333330033336600333399003333CC003333FF003366
00003366330033666600336699003366CC003366FF0033990000339933003399
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
330066006600660099006600CC006600FF006633000066333300663366006633
99006633CC006633FF00666600006666330066666600666699006666CC006699
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
CC009999000099339900990099009900CC009900000099333300990066009933
CC009900FF00996600009966330099336600996699009966CC009933FF009999
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
OldCreateOrder = False
Position = poScreenCenter
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Race: TRadioGroup
Left = 8
Top = 48
Width = 185
Height = 401
Caption = 'Race'
Items.Strings = (
'Half Orc'
'Half Man'
'Half Halfling'
'Double Hobbit'
'Low Elf'
'Dung Elf'
'Talking Pony'
'Greater Gnome'
'Gyrognome'
'Lesser Dwarf'
'Crested Dwarf'
'Eel Man'
'Panda Man'
'Trans-Kobold'
'Enchanted Motorcycle'
'Will o'#39' the Wisp'
'Battle-Finch'
'Double Wookiee'
'Skraeling'
'Demicanadian'
'Land Squid')
TabOrder = 0
end
object Klass: TRadioGroup
Left = 200
Top = 48
Width = 185
Height = 365
Caption = 'Class'
Items.Strings = (
'Ur-Paladin'
'Voodoo Princess'
'Robot Monk'
'Mu-Fu Monk'
'Mage Illusioner'
'Shiv-Knight'
'Inner Mason'
'Fighter/Organist'
'Puma Burgular'
'Runeloremaster'
'Tongueblade'
'Hunter Strangler'
'Battle-Felon'
'Tickle-Mimic'
'Slow Poisoner'
'Bastard Lunatic'
'Lowling'
'Birdrider')
TabOrder = 1
end
object GroupBox1: TGroupBox
Left = 392
Top = 48
Width = 109
Height = 365
Caption = 'Stats'
TabOrder = 2
object Label3: TLabel
Left = 22
Top = 60
Width = 23
Height = 13
Caption = 'CON'
end
object Label7: TLabel
Left = 22
Top = 156
Width = 22
Height = 13
Caption = 'CHA'
end
object Label6: TLabel
Left = 22
Top = 132
Width = 21
Height = 13
Caption = 'WIS'
end
object Label5: TLabel
Left = 22
Top = 108
Width = 18
Height = 13
Caption = 'INT'
end
object Label4: TLabel
Left = 22
Top = 84
Width = 22
Height = 13
Caption = 'DEX'
end
object Label2: TLabel
Left = 22
Top = 36
Width = 22
Height = 13
Caption = 'STR'
end
object Label8: TLabel
Left = 22
Top = 204
Width = 24
Height = 13
Caption = 'Total'
end
object CHA: TPanel
Left = 52
Top = 152
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 0
end
object WIS: TPanel
Left = 52
Top = 128
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 1
end
object INT: TPanel
Left = 52
Top = 104
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 2
end
object DEX: TPanel
Left = 52
Top = 80
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 3
end
object CON: TPanel
Left = 52
Top = 56
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 4
end
object STR: TPanel
Left = 52
Top = 32
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 5
end
object Reroll: TButton
Left = 18
Top = 284
Width = 75
Height = 25
Caption = 'Roll'
TabOrder = 6
OnClick = RerollClick
end
object Total: TPanel
Left = 52
Top = 200
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
Color = clWhite
TabOrder = 7
end
object Unroll: TButton
Left = 18
Top = 316
Width = 75
Height = 25
Caption = 'Unroll'
Enabled = False
TabOrder = 8
OnClick = UnrollClick
end
end
object Sold: TButton
Left = 342
Top = 424
Width = 75
Height = 25
Caption = 'Sold!'
Default = True
TabOrder = 3
OnClick = SoldClick
end
object Name: TLabeledEdit
Left = 8
Top = 20
Width = 185
Height = 21
EditLabel.Width = 28
EditLabel.Height = 13
EditLabel.Caption = 'Name'
LabelPosition = lpAbove
LabelSpacing = 3
MaxLength = 30
TabOrder = 4
Text = 'Grumdrig'
end
object OldRolls: TListBox
Left = 396
Top = 228
Width = 21
Height = 13
ItemHeight = 13
TabOrder = 5
Visible = False
end
object Button2: TButton
Left = 426
Top = 424
Width = 75
Height = 25
Caption = 'Cancel'
ModalResult = 2
TabOrder = 6
end
object Account: TLabeledEdit
Left = 200
Top = 20
Width = 185
Height = 21
EditLabel.Width = 40
EditLabel.Height = 13
EditLabel.Caption = 'Account'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 7
Visible = False
end
object Password: TLabeledEdit
Left = 392
Top = 20
Width = 109
Height = 21
EditLabel.Width = 46
EditLabel.Height = 13
EditLabel.Caption = 'Password'
LabelPosition = lpAbove
LabelSpacing = 3
PasswordChar = '*'
TabOrder = 8
Visible = False
end
object Server: TNMHTTP
Port = 0
ReportLevel = 0
Body = 'Default.htm'
Header = 'Head.txt'
HeaderInfo.Referer = 'PQ6.1'
InputFileMode = False
OutputFileMode = False
OnAboutToSend = ServerAboutToSend
OnSuccess = ServerSuccess
OnFailure = ServerFailure
ProxyPort = 0
Left = 332
Top = 312
end
object PoorCodeDesign: TNMURL
Left = 336
Top = 268
end
object ApplicationEvents1: TApplicationEvents
OnMinimize = ApplicationEvents1Minimize
Left = 332
Top = 208
end
object GuildGet: TNMHTTP
Port = 0
ReportLevel = 0
Body = 'Default.htm'
Header = 'Head.txt'
HeaderInfo.Referer = 'PQ6.1'
InputFileMode = False
OutputFileMode = False
OnAboutToSend = ServerAboutToSend
OnSuccess = GuildGetSuccess
ProxyPort = 0
Left = 332
Top = 340
end
end
-241
View File
@@ -1,241 +0,0 @@
unit NewGuy;
{ copyright (c)2002 Eric Fredricksen all rights reserved }
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Psock, NMHttp, NMURL, AppEvnts;
type
TNewGuyForm = class(TForm)
Race: TRadioGroup;
Klass: TRadioGroup;
Label2: TLabel;
STR: TPanel;
Label3: TLabel;
CON: TPanel;
Label4: TLabel;
DEX: TPanel;
Label5: TLabel;
INT: TPanel;
Label6: TLabel;
WIS: TPanel;
Label7: TLabel;
CHA: TPanel;
Reroll: TButton;
GroupBox1: TGroupBox;
Label8: TLabel;
Total: TPanel;
Sold: TButton;
Unroll: TButton;
Name: TLabeledEdit;
OldRolls: TListBox;
Button2: TButton;
Server: TNMHTTP;
PoorCodeDesign: TNMURL;
Account: TLabeledEdit;
Password: TLabeledEdit;
ApplicationEvents1: TApplicationEvents;
GuildGet: TNMHTTP;
procedure RerollClick(Sender: TObject);
procedure UnrollClick(Sender: TObject);
procedure ServerSuccess(Cmd: CmdType);
procedure SoldClick(Sender: TObject);
procedure ServerFailure(Cmd: CmdType);
procedure FormShow(Sender: TObject);
procedure ServerAboutToSend(Sender: TObject);
procedure ApplicationEvents1Minimize(Sender: TObject);
procedure GuildGetSuccess(Cmd: CmdType);
private
procedure RollEm;
function GetAccount: String;
function GetPassword: String;
public
procedure BragSuccess(Cmd: CmdType);
function Go: Boolean;
end;
var
NewGuyForm: TNewGuyForm;
function UrlEncode(s: string): string;
implementation
uses Main, SelServ;
{$R *.dfm}
function UrlEncode(s: string): string;
begin
NewGuyForm.PoorCodeDesign.InputString := s;
Result := NewGuyForm.PoorCodeDesign.Encode;
end;
procedure Roll(stat: TPanel);
begin
stat.Tag := 3 + Random(6) + Random(6) + Random(6);
stat.Caption := IntToStr(stat.Tag);
end;
function Choose(n, k: Integer): Real;
var
d, i: Longint;
begin
Result := n;
d := 1;
for i := 2 to k do begin
Result := Result * (1+n-i);
d := d * i;
end;
Result := Result / d;
end;
procedure TNewGuyForm.RollEm;
begin
ReRoll.Tag := RandSeed;
Roll(STR);
Roll(CON);
Roll(DEX);
Roll(INT);
Roll(WIS);
Roll(CHA);
Total.tag := STR.Tag + Con.Tag + DEX.Tag + Int.Tag + Wis.Tag + CHA.Tag;
Total.Caption := IntToStr(Total.Tag);
if Total.Tag >= (63+18) then Total.Color := clRed
else if Total.Tag > (4 * 18) then Total.Color := clYellow
else if Total.Tag <= (63-18) then Total.Color := clGray
else if Total.Tag < (3 * 18) then Total.Color := clSilver
else Total.Color := clWhite;
end;
procedure TNewGuyForm.RerollClick(Sender: TObject);
begin
OldRolls.Items.Insert(0, IntToStr(ReRoll.Tag));
Unroll.Enabled := true;
RollEm;
end;
function TNewGuyForm.Go: Boolean;
begin
Tag := 1;
Result := mrOk = ShowModal;
end;
procedure TNewGuyForm.FormShow(Sender: TObject);
begin
if Tag > 0 then begin
Tag := 0;
Caption := 'Progress Quest - New Character';
if MainForm.GetHostName <> '' then
Caption := Caption + ' [' + MainForm.GetHostName + ']';
Randomize;
RollEm;
with Race do
ItemIndex := Random(Items.Count);
with Klass do
ItemIndex := Random(Items.Count);
Name.SetFocus;
end;
end;
procedure TNewGuyForm.UnrollClick(Sender: TObject);
begin
RandSeed := StrToInt(OldRolls.Items[0]);
OldRolls.Items.Delete(0);
Unroll.Enabled := OldRolls.Items.Count > 0;
RollEm;
end;
procedure TNewGuyForm.ServerSuccess(Cmd: CmdType);
begin
if (LowerCase(Split(Server.Body,0)) = 'ok') then begin
MainForm.SetPasskey(Split(Server.Body,1));
MainForm.SetLogin(GetAccount);
MainForm.SetPassword(GetPassword);
Server.OnSuccess := nil;
Server.OnFailure := nil;
ModalResult := mrOk;
end else begin
ShowMessage(Server.Body);
end;
end;
procedure TNewGuyForm.BragSuccess(Cmd: CmdType);
begin
if (LowerCase(Split(Server.Body,0)) = 'report') then
ShowMessage(Split(Server.Body,1));
end;
function TNewGuyForm.GetAccount: String;
begin
Result := '';
if Account.Visible then Result := Account.Text;
end;
function TNewGuyForm.GetPassword: String;
begin
Result := '';
if Password.Visible then Result := Password.Text;
end;
procedure TNewGuyForm.SoldClick(Sender: TObject);
var url, args: String;
begin
if MainForm.GetHostAddr = ''
then ModalResult := mrOk
else begin
try
Screen.Cursor := crHourglass;
try
Server.HeaderInfo.UserId := GetAccount;
Server.HeaderInfo.Password := GetPassword;
args := 'cmd=create' +
'&name=' + UrlEncode(Name.Text) +
'&realm=' + UrlEncode(MainForm.GetHostName) +
RevString;
if (MainForm.Label8.Tag and 16) = 0
then url := MainForm.GetHostAddr
else url := 'http://www.progressquest.com/create.php?';
Server.Get(url + args);
except
on ESockError do begin
ShowMessage('Error connecting to server');
Server.Abort;
end;
end;
finally
Screen.Cursor := crDefault;
end;
end;
end;
procedure TNewGuyForm.ServerFailure(Cmd: CmdType);
begin
ShowMessage('Connection to server ' + MainForm.GetHostName + ' failed');
end;
procedure TNewGuyForm.ServerAboutToSend(Sender: TObject);
begin
Server.SendHeader.Values['Content-Type'] := 'text/plain';
Server.SendHeader.Values['Motto'] := MainForm.GetMotto;
Server.SendHeader.Values['Guild'] := MainForm.GetGuild;
end;
procedure TNewGuyForm.ApplicationEvents1Minimize(Sender: TObject);
begin
MainForm.MinimizeIt;
end;
procedure TNewGuyForm.GuildGetSuccess(Cmd: CmdType);
var s,b: string;
begin
b := GuildGet.Body;
s := Take(b);
if s <> '' then ShowMessage(s);
s := Take(b);
if s <> '' then Navigate(s);
end;
end.
-231
View File
@@ -1,231 +0,0 @@
object ServerSelectForm: TServerSelectForm
Left = 279
Top = 201
Width = 490
Height = 381
Caption = 'Progress Quest - Select Realm'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000000000000A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
CC00003300000033330000336600003399000033CC000033FF00006600000066
330000666600006699000066CC000066FF000099000000993300009966000099
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
CC003300FF00333300003333330033336600333399003333CC003333FF003366
00003366330033666600336699003366CC003366FF0033990000339933003399
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
330066006600660099006600CC006600FF006633000066333300663366006633
99006633CC006633FF00666600006666330066666600666699006666CC006699
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
CC009999000099339900990099009900CC009900000099333300990066009933
CC009900FF00996600009966330099336600996699009966CC009933FF009999
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
OldCreateOrder = False
Position = poScreenCenter
DesignSize = (
482
354)
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 8
Top = 8
Width = 31
Height = 13
Caption = 'Server'
end
object Label2: TLabel
Left = 172
Top = 8
Width = 53
Height = 13
Caption = 'Description'
end
object Servers: TListBox
Left = 8
Top = 24
Width = 157
Height = 277
Anchors = [akLeft, akTop, akBottom]
ItemHeight = 13
TabOrder = 0
OnClick = ServersClick
OnDblClick = ServersDblClick
end
object Panel1: TPanel
Left = 172
Top = 24
Width = 302
Height = 277
Anchors = [akLeft, akTop, akRight, akBottom]
BevelOuter = bvLowered
BorderWidth = 4
Caption = 'Panel1'
TabOrder = 1
object Desc: TRichEdit
Left = 5
Top = 5
Width = 292
Height = 267
Align = alClient
BevelEdges = []
BevelInner = bvNone
BevelOuter = bvNone
BevelKind = bkTile
BorderStyle = bsNone
Color = clBtnFace
Ctl3D = True
ParentCtl3D = False
ReadOnly = True
TabOrder = 0
WantTabs = True
WantReturns = False
end
end
object Select: TButton
Left = 313
Top = 320
Width = 75
Height = 25
Anchors = [akRight, akBottom]
Caption = '&Select'
Default = True
Enabled = False
TabOrder = 2
OnClick = SelectClick
end
object Button2: TButton
Left = 397
Top = 320
Width = 75
Height = 25
Anchors = [akRight, akBottom]
Caption = '&Cancel'
ModalResult = 2
TabOrder = 3
end
object Descs: TListBox
Left = 24
Top = 100
Width = 121
Height = 33
ItemHeight = 13
TabOrder = 4
Visible = False
end
object Hosts: TListBox
Left = 24
Top = 144
Width = 121
Height = 33
ItemHeight = 13
TabOrder = 5
Visible = False
end
object Options: TListBox
Left = 24
Top = 56
Width = 121
Height = 33
ItemHeight = 13
TabOrder = 6
Visible = False
end
object AccessCode: TLabeledEdit
Left = 8
Top = 320
Width = 157
Height = 21
Anchors = [akLeft, akBottom]
EditLabel.Width = 63
EditLabel.Height = 13
EditLabel.Caption = 'Access Code'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 7
Visible = False
OnChange = AccessCodeChange
end
object ServerLoader: TNMHTTP
Port = 0
ReportLevel = 0
Body = 'Default.htm'
Header = 'Head.txt'
HeaderInfo.Cookie = 'yumyum'
HeaderInfo.Password = 'chickens'
InputFileMode = False
OutputFileMode = False
OnSuccess = ServerLoaderSuccess
ProxyPort = 0
Left = 220
Top = 152
end
object Timer1: TTimer
Enabled = False
Interval = 10
OnTimer = Timer1Timer
Left = 116
Top = 4
end
end
-183
View File
@@ -1,183 +0,0 @@
unit SelServ;
{ copyright (c)2002 Eric Fredricksen all rights reserved }
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls, Psock, NMHttp;
type
TServerSelectForm = class(TForm)
Servers: TListBox;
Label1: TLabel;
Label2: TLabel;
Panel1: TPanel;
Desc: TRichEdit;
Select: TButton;
Button2: TButton;
ServerLoader: TNMHTTP;
Descs: TListBox;
Timer1: TTimer;
Hosts: TListBox;
Options: TListBox;
AccessCode: TLabeledEdit;
procedure ServerLoaderSuccess(Cmd: CmdType);
procedure ServersClick(Sender: TObject);
procedure SelectClick(Sender: TObject);
procedure AccessCodeChange(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ServersDblClick(Sender: TObject);
private
procedure Fetch(path: String);
function CurrentOpts: Integer;
public
function Go: Boolean;
end;
var
ServerSelectForm: TServerSelectForm;
function Take(var s: String): String;
implementation
uses NewGuy, Login, Main;
{$R *.dfm}
function Take(var s: String): String;
begin
if Pos('|',s) > 0 then begin
Result := Trim(Copy(s,1,Pos('|',s)-1));
s := Copy(s,Pos('|',s)+1,100000);
end else begin
Result := Trim(s);
s := '';
end;
end;
procedure TServerSelectForm.ServerLoaderSuccess(Cmd: CmdType);
var
s, def: String;
ndef: Integer;
begin
s := ServerLoader.Body;
if (LowerCase(Take(s)) = 'ok') then begin
def := Take(s);
ndef := 0;
repeat
Servers.Items.Add(Take(s));
if Servers.Items[Servers.Count-1] = def then
ndef := Servers.Count-1;
Options.Items.Add(Take(s));
Hosts.Items.Add(Take(s));
Descs.Items.Add(Take(s));
until s = '';
Servers.ItemIndex := ndef;
ServersClick(Self);
// Select.Enabled := true;
end else begin
ShowMessage(ServerLoader.Body);
ModalResult := mrCancel;
end;
end;
procedure TServerSelectForm.ServersClick(Sender: TObject);
begin
Desc.Lines.Text := Descs.Items[Servers.ItemIndex];
AccessCode.Visible := (CurrentOpts and 8) > 0;
AccessCodeChange(Sender);
end;
function TServerSelectForm.CurrentOpts: Integer;
begin
Result := StrToIntDef(Options.Items[Servers.ItemIndex],0);
end;
procedure TServerSelectForm.Fetch(path: String);
begin
Select.Enabled := false;
Servers.Items.Clear;
Descs.Items.Clear;
Options.Items.Clear;
Hosts.Items.Clear;
Caption := 'Progress Quest - Select Realm';
if path <> '' then
Caption := Caption + ' [' + path + ']';
Desc.Text := 'Fetching realm list from server...';
try
Screen.Cursor := crHourglass;
try
if AccessCode.Visible
then ServerLoader.HeaderInfo.Password := AccessCode.Text
else ServerLoader.HeaderInfo.Password := '';
ServerLoader.Get('http://www.progressquest.com/list.php?' + RevString + '&p=' + path +'&ac=' + UrlEncode(ServerLoader.HeaderInfo.Password));
except
on ESockError do begin
ShowMessage('Error connecting to server');
ServerLoader.Abort;
ModalResult := mrCancel;
end;
end;
finally
Screen.Cursor := crDefault;
end;
end;
function TServerSelectForm.Go: Boolean;
begin
Timer1.Enabled := true;
Result := //(Servers.Count > 0) and
(mrOk = ShowModal);
end;
function ServerURL(user, pass, host, uri: String): String;
begin
if Pos(uri, '?') > 0 then uri := uri + '&' else uri := uri + '?';
uri := uri + 'rev=3';
Result := 'http://' + user + ':' + pass + '@' + host + uri;
end;
procedure TServerSelectForm.AccessCodeChange(Sender: TObject);
begin
Select.Enabled :=
(CurrentOpts and 32 = 0) and
(Servers.Count > 0) and (
(not AccessCode.Visible) or
(AccessCode.Text <> ''));
end;
procedure TServerSelectForm.SelectClick(Sender: TObject);
begin
// 1: account required to create char
// 2: password required to create char
// 4: is a dir
// 8: password required to select
// 16: use progressquest.com for creates!
// 32: disable it!
if (CurrentOpts and 4) > 0 then begin
Fetch(Hosts.Items[Servers.ItemIndex]);
end else begin
MainForm.SetHostAddr(Hosts.Items[Servers.ItemIndex]);
MainForm.SetHostName(Servers.Items[Servers.ItemIndex]);
MainForm.Label8.Tag := CurrentOpts;
NewGuyForm.Account.Visible := (CurrentOpts and 1) > 0;
NewGuyForm.Password.Visible := (CurrentOpts and 2) > 0;
if MainForm.RollCharacter then
ModalResult := mrOk;
end;
end;
procedure TServerSelectForm.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
Fetch('');
end;
procedure TServerSelectForm.ServersDblClick(Sender: TObject);
begin
if Select.Enabled then SelectClick(Self);
end;
end.
-24
View File
@@ -1,24 +0,0 @@
program pq;
uses
Forms,
Config in 'Config.pas' {K},
Front in 'Front.pas' {FrontForm},
Main in 'Main.pas' {MainForm},
NewGuy in 'NewGuy.pas' {NewGuyForm},
SelServ in 'SelServ.pas' {ServerSelectForm};
{$E exe}
{$R *.res}
begin
Application.Initialize;
Application.Title := 'Progress Quest';
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TK, K);
Application.CreateForm(TFrontForm, FrontForm);
Application.CreateForm(TNewGuyForm, NewGuyForm);
Application.CreateForm(TServerSelectForm, ServerSelectForm);
Application.Run;
end.
-2
View File
@@ -1,2 +0,0 @@
6 23 DISCARDABLE "pq.html"
BIN
View File
Binary file not shown.
+2 -2
View File
@@ -1,5 +1,5 @@
Progress Quest Progress Quest version 6.2
Copyright (c) 2002 Eric Fredricksen Copyright (c) 2003 Eric Fredricksen
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
Binary file not shown.
+4 -4
View File
@@ -1,7 +1,7 @@
-$A8 -$A8
-$B- -$B-
-$C- -$C+
-$D- -$D+
-$E- -$E-
-$F- -$F-
-$G+ -$G+
@@ -9,7 +9,7 @@
-$I+ -$I+
-$J- -$J-
-$K- -$K-
-$L- -$L+
-$M- -$M-
-$N+ -$N+
-$O+ -$O+
@@ -22,7 +22,7 @@
-$V+ -$V+
-$W- -$W-
-$X+ -$X+
-$Y- -$YD
-$Z1 -$Z1
-cg -cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+15 -18
View File
@@ -3,8 +3,8 @@ Version=6.0
[Compiler] [Compiler]
A=8 A=8
B=0 B=0
C=0 C=1
D=0 D=1
E=0 E=0
F=0 F=0
G=1 G=1
@@ -12,7 +12,7 @@ H=1
I=1 I=1
J=0 J=0
K=0 K=0
L=0 L=1
M=0 M=0
N=1 N=1
O=1 O=1
@@ -25,7 +25,7 @@ U=0
V=1 V=1
W=0 W=0
X=1 X=1
Y=0 Y=1
Z=1 Z=1
ShowHints=1 ShowHints=1
ShowWarnings=1 ShowWarnings=1
@@ -39,19 +39,19 @@ RemoteSymbols=0
MinStackSize=16384 MinStackSize=16384
MaxStackSize=1048576 MaxStackSize=1048576
ImageBase=4194304 ImageBase=4194304
ExeDescription=http://progressquest.com/ ExeDescription=
[Directories] [Directories]
OutputDir= OutputDir=
UnitOutputDir= UnitOutputDir=
PackageDLLOutputDir= PackageDLLOutputDir=
PackageDCPOutputDir= PackageDCPOutputDir=
SearchPath= SearchPath=
Packages=vcl;rtl;vclx;VclSmp;vclshlctrls;dbrtl;adortl;vcldb;qrpt;bdertl;vcldbx;dsnap;cds;bdecds;teeui;teedb;tee;teeqr;ibxpress;visualclx;visualdbclx;vclie;xmlrtl;inet;inetdbbde;inetdbxpress;inetdb;nmfast;dbexpress;dbxcds;indy;dclOffice2k Packages=vcl;rtl;vclx;vclshlctrls;visualclx;vclie;xmlrtl;inet;inetdbbde;inetdbxpress;nmfast;indy;VclSmp;dbrtl;adortl;vcldb;qrpt;bdertl;vcldbx;dsnap;cds;bdecds;teeui;teedb;tee;teeqr;ibxpress;visualdbclx;dbexpress;dbxcds;dclOffice2k;inetdb
Conditionals= Conditionals=
DebugSourceDirs= DebugSourceDirs=
UsePackages=0 UsePackages=0
[Parameters] [Parameters]
RunParams= RunParams=-export "Cokie [oobag].pq"
HostApplication= HostApplication=
Launcher= Launcher=
UseLauncher=0 UseLauncher=0
@@ -61,10 +61,10 @@ ActiveLang=
ProjectLang= ProjectLang=
RootDir= RootDir=
[Version Info] [Version Info]
IncludeVerInfo=0 IncludeVerInfo=1
AutoIncBuild=0 AutoIncBuild=0
MajorVer=1 MajorVer=6
MinorVer=0 MinorVer=2
Release=0 Release=0
Build=0 Build=0
Debug=0 Debug=0
@@ -75,16 +75,13 @@ DLL=0
Locale=1033 Locale=1033
CodePage=1252 CodePage=1252
[Version Info Keys] [Version Info Keys]
CompanyName= CompanyName=Grumdrig
FileDescription= FileDescription=
FileVersion=1.0.0.0 FileVersion=6.2.0.0
InternalName= InternalName=
LegalCopyright= LegalCopyright=
LegalTrademarks= LegalTrademarks=
OriginalFilename= OriginalFilename=pq.exe
ProductName= ProductName=Progress Quest
ProductVersion=1.0.0.0 ProductVersion=6.2
Comments= Comments=
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+2 -1
View File
@@ -6,7 +6,8 @@ uses
Front in 'Front.pas' {FrontForm}, Front in 'Front.pas' {FrontForm},
Main in 'Main.pas' {MainForm}, Main in 'Main.pas' {MainForm},
NewGuy in 'NewGuy.pas' {NewGuyForm}, NewGuy in 'NewGuy.pas' {NewGuyForm},
SelServ in 'SelServ.pas' {ServerSelectForm}; SelServ in 'SelServ.pas' {ServerSelectForm},
Web in 'Web.pas';
{$E exe} {$E exe}
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
Binary file not shown.
View File
Binary file not shown.
+9
View File
@@ -0,0 +1,9 @@
[2003-04-12 11:34:34] Gained a swamp elf lilypad
[2003-04-12 11:34:34] Executing a fetal Anhkheg...
[2003-04-12 11:37:14] Loaded game: C:\proj\pq6.2\Chillmitts [Oobag].pq
[2003-04-12 11:37:15] Saving game: C:\proj\pq6.2\Chillmitts [Oobag].pq
[2003-04-12 11:51:16] Loaded game: C:\proj\pq6.2\Chillmitts [Oobag].pq
[2003-04-12 11:51:30] Gained an anhkheg chitin
[2003-04-12 11:51:30] Executing a fetal Anhkheg...
[2003-04-12 11:51:36] Gained an anhkheg chitin
[2003-04-12 11:51:36] Executing a fetal Anhkheg...
Binary file not shown.
+45
View File
@@ -0,0 +1,45 @@
Chillmitts [Oobag]
Gyrognome Puma Burgular
Level 2 (exp. 345/1279)
Plot stage: Act I (5 hours remaining)
Quest: Exterminate the Gargoyles (40% complete)
Stats:
STR 11
CON 10
DEX 6
INT 8
WIS 5 HP Max 9
CHA 16 MP Max 11
Equipment:
Shield Pie Plate
Helm -2 Holey Threadbare Chamois
Hauberk -2 Burlap
Vambraces Macrame
Gauntlets Mildewed Motheaten Chamois
Gambeson Macrame
Greaves -4 Faded Chamois
Spell Book:
Slime Finger II
Sadness I
Seasick I
Inventory (19/21 cubits):
89 gold pieces
a peryton antler
a lizard man tail
a pirate booty
a gray ooze gravy
a hobgoblin patella
a violet fungi spore
2 billy goat beards
an eel sashimi
6 yellow mold spores
2 nixie webbings
the Fearsome Laurel of Prurience
-- 4/12/2003 1:19:29 PM
-- Progress Quest 6.2 - http://progressquest.com/
+266
View File
@@ -0,0 +1,266 @@
[2003-04-12 11:41:57] Loaded game: C:\proj\pq6.2\Cokie [Oobag].pq
[2003-04-12 11:42:02] Gained a manes tooth
[2003-04-12 11:42:02] Executing a Manes...
[2003-04-12 11:42:09] Gained a manes tooth
[2003-04-12 11:42:09] Executing a Battle-Manes...
[2003-04-12 11:42:22] Quest completed: Deliver this bucket
[2003-04-12 11:42:22] Commencing quest: Placate the Boogies
[2003-04-12 11:42:22] Saving game: C:\proj\pq6.2\Cokie [Oobag].pq
[2003-04-12 11:42:22] Gained a manes tooth
[2003-04-12 11:42:22] Executing a Nixie...
[2003-04-12 11:42:28] Gained a nixie webbing
[2003-04-12 11:42:28] Executing a Goblin...
[2003-04-12 11:42:34] Gained a goblin ear
[2003-04-12 11:42:34] Heading to market to sell loot...
[2003-04-12 11:42:38] Selling a gnoll collar...
[2003-04-12 11:42:40] Got paid a gold piece
[2003-04-12 11:42:40] Selling a pirate booty...
[2003-04-12 11:42:41] Got paid a gold piece
[2003-04-12 11:42:41] Selling a quasit tail...
[2003-04-12 11:42:42] Got paid a gold piece
[2003-04-12 11:42:42] Selling a girl scout cookie...
[2003-04-12 11:42:43] Got paid a gold piece
[2003-04-12 11:42:43] Selling a multicell dendrite...
[2003-04-12 11:42:44] Got paid a gold piece
[2003-04-12 11:42:44] Selling a nebbish belly...
[2003-04-12 11:42:46] Got paid a gold piece
[2003-04-12 11:42:46] Selling a troglodyte tail...
[2003-04-12 11:42:47] Got paid a gold piece
[2003-04-12 11:42:47] Selling a merman trident...
[2003-04-12 11:42:48] Got paid a gold piece
[2003-04-12 11:42:48] Selling a yellow mold spore...
[2003-04-12 11:42:49] Got paid a gold piece
[2003-04-12 11:42:49] Selling a hippogriff egg...
[2003-04-12 11:42:50] Got paid a gold piece
[2003-04-12 11:42:50] Selling a koala heart...
[2003-04-12 11:42:52] Got paid a gold piece
[2003-04-12 11:42:52] Selling 7 manes tooths...
[2003-04-12 11:42:53] Got paid 7 gold pieces
[2003-04-12 11:42:53] Selling a nixie webbing...
[2003-04-12 11:42:54] Got paid a gold piece
[2003-04-12 11:42:54] Selling a goblin ear...
[2003-04-12 11:42:55] Got paid a gold piece
[2003-04-12 11:42:55] Heading to the killing fields...
[2003-04-12 11:42:59] Executing an undernourished Triton...
[2003-04-12 11:43:12] Gained a triton scale
[2003-04-12 11:43:12] Executing a passing Battle-Finch Hunter Strangler...
[2003-04-12 11:43:24] Gained a Fearsome Sceptre of Loyalty
[2003-04-12 11:43:24] Executing an Uruk...
[2003-04-12 11:43:36] Gained an uruk boot
[2003-04-12 11:43:36] Executing a Battle-Dwarf...
[2003-04-12 11:43:49] Gained a dwarf drawers
[2003-04-12 11:43:49] Executing a Pixie...
[2003-04-12 11:43:55] Gained a pixie dust
[2003-04-12 11:43:55] Executing a Nebbish...
[2003-04-12 11:44:01] Gained a nebbish belly
[2003-04-12 11:44:01] Executing a Battle-Beagle...
[2003-04-12 11:44:07] Gained a beagle collar
[2003-04-12 11:44:07] Executing a Manes...
[2003-04-12 11:44:13] Gained a manes tooth
[2003-04-12 11:44:13] Executing a Sea Elf...
[2003-04-12 11:44:20] Gained a Level
[2003-04-12 11:44:20] Gained 7 HP Maxes
[2003-04-12 11:44:20] Gained 8 MP Maxes
[2003-04-12 11:44:20] Gained a STR
[2003-04-12 11:44:20] Gained a STR
[2003-04-12 11:44:20] Saving game: C:\proj\pq6.2\Cokie [Oobag].pq
[2003-04-12 11:44:22] Gained a sea elf jerkin
[2003-04-12 11:44:22] Executing a crippled preadolescent Umber Hulk...
[2003-04-12 11:44:28] Gained an umber hulk claw
[2003-04-12 11:44:28] Executing a cursed Orc...
[2003-04-12 11:44:37] Quest completed: Placate the Boogies
[2003-04-12 11:44:37] Commencing quest: Placate the Nymphs
[2003-04-12 11:44:37] Saving game: C:\proj\pq6.2\Cokie [Oobag].pq
[2003-04-12 11:44:37] Gained an orc snout
[2003-04-12 11:44:37] Executing a Wolf...
[2003-04-12 11:44:43] Gained a wolf paw
[2003-04-12 11:44:43] Executing a greater Nixie...
[2003-04-12 11:44:50] Gained a nixie webbing
[2003-04-12 11:44:50] Executing a Grid Bug...
[2003-04-12 11:44:53] Gained a grid bug carapace
[2003-04-12 11:44:53] Executing a Troglodyte...
[2003-04-12 11:44:59] Gained a troglodyte tail
[2003-04-12 11:44:59] Executing an Uruk...
[2003-04-12 11:45:06] Gained an uruk boot
[2003-04-12 11:45:06] Executing an underage Piercer...
[2003-04-12 11:45:12] Gained a piercer tip
[2003-04-12 11:45:12] Executing a Brown Elf...
[2003-04-12 11:45:15] Gained a brown elf tusk
[2003-04-12 11:45:15] Executing a greater Swamp Elf...
[2003-04-12 11:45:21] Gained a swamp elf lilypad
[2003-04-12 11:45:21] Executing a crippled Medusa...
[2003-04-12 11:45:31] Gained a medusa eye
[2003-04-12 11:45:31] Executing an undernourished Nymph...
[2003-04-12 11:45:38] Gained a nymph hanky
[2003-04-12 11:45:38] Executing a Stun Worm...
[2003-04-12 11:45:44] Gained a stun worm trode
[2003-04-12 11:45:44] Heading to market to sell loot...
[2003-04-12 11:45:48] Selling a triton scale...
[2003-04-12 11:45:49] Got paid 2 gold pieces
[2003-04-12 11:45:49] Selling a Fearsome Sceptre of Loyalty...
[2003-04-12 11:45:50] Got paid 2 gold pieces
[2003-04-12 11:45:50] Selling 2 uruk boots...
[2003-04-12 11:45:52] Got paid 4 gold pieces
[2003-04-12 11:45:52] Selling a dwarf drawers...
[2003-04-12 11:45:53] Got paid 2 gold pieces
[2003-04-12 11:45:53] Selling a pixie dust...
[2003-04-12 11:45:54] Got paid 2 gold pieces
[2003-04-12 11:45:54] Selling a nebbish belly...
[2003-04-12 11:45:55] Got paid 2 gold pieces
[2003-04-12 11:45:55] Selling a beagle collar...
[2003-04-12 11:45:57] Got paid 2 gold pieces
[2003-04-12 11:45:57] Selling a manes tooth...
[2003-04-12 11:45:58] Got paid 2 gold pieces
[2003-04-12 11:45:58] Selling a sea elf jerkin...
[2003-04-12 11:45:59] Got paid 2 gold pieces
[2003-04-12 11:45:59] Selling an umber hulk claw...
[2003-04-12 11:46:00] Got paid 2 gold pieces
[2003-04-12 11:46:00] Selling an orc snout...
[2003-04-12 11:46:01] Got paid 2 gold pieces
[2003-04-12 11:46:01] Selling a wolf paw...
[2003-04-12 11:46:03] Got paid 2 gold pieces
[2003-04-12 11:46:03] Selling a nixie webbing...
[2003-04-12 11:46:04] Got paid 2 gold pieces
[2003-04-12 11:46:04] Selling a grid bug carapace...
[2003-04-12 11:46:05] Got paid 2 gold pieces
[2003-04-12 11:46:05] Selling a troglodyte tail...
[2003-04-12 11:46:06] Got paid 2 gold pieces
[2003-04-12 11:46:06] Selling a piercer tip...
[2003-04-12 11:46:07] Got paid 2 gold pieces
[2003-04-12 11:46:07] Selling a brown elf tusk...
[2003-04-12 11:46:09] Got paid 2 gold pieces
[2003-04-12 11:46:09] Selling a swamp elf lilypad...
[2003-04-12 11:46:10] Got paid 2 gold pieces
[2003-04-12 11:46:10] Selling a medusa eye...
[2003-04-12 11:46:11] Got paid 2 gold pieces
[2003-04-12 11:46:11] Selling a nymph hanky...
[2003-04-12 11:46:12] Got paid 2 gold pieces
[2003-04-12 11:46:12] Selling a stun worm trode...
[2003-04-12 11:46:13] Got paid 2 gold pieces
[2003-04-12 11:46:13] Negotiating purchase of better equipment...
[2003-04-12 11:46:19] Spent 60 gold pieces
[2003-04-12 11:46:19] Heading to the killing fields...
[2003-04-12 11:46:23] Executing a greater Rot Grub...
[2003-04-12 11:46:29] Gained a rot grub eggsac
[2003-04-12 11:46:29] Executing a sick Quasit...
[2003-04-12 11:46:32] Gained a quasit tail
[2003-04-12 11:46:33] Executing an underage Sea Hag...
[2003-04-12 11:46:39] Gained a sea hag wart
[2003-04-12 11:46:39] Executing a greater Bunny...
[2003-04-12 11:46:42] Gained a bunny ear
[2003-04-12 11:46:42] Executing a greater Uruk...
[2003-04-12 11:46:51] Gained an uruk boot
[2003-04-12 11:46:51] Executing a comatose Catoblepas...
[2003-04-12 11:46:58] Gained a catoblepas neck
[2003-04-12 11:46:58] Executing a Piercer...
[2003-04-12 11:47:07] Gained a piercer tip
[2003-04-12 11:47:07] Executing a greater Wolf...
[2003-04-12 11:47:17] Quest completed: Placate the Nymphs
[2003-04-12 11:47:17] Gained an INT
[2003-04-12 11:47:17] Commencing quest: Deliver this trinket
[2003-04-12 11:47:17] Saving game: C:\proj\pq6.2\Cokie [Oobag].pq
[2003-04-12 11:47:17] Gained a wolf paw
[2003-04-12 11:47:17] Executing a Cub Scout...
[2003-04-12 11:47:20] Gained a cub scout neckercheif
[2003-04-12 11:47:20] Executing a Sylph...
[2003-04-12 11:47:29] Gained a sylph thigh
[2003-04-12 11:47:29] Executing a Bat...
[2003-04-12 11:47:32] Gained a bat wing
[2003-04-12 11:47:32] Executing an underage Homonculus...
[2003-04-12 11:47:36] Gained a homonculus fluid
[2003-04-12 11:47:36] Executing a Gnoll...
[2003-04-12 11:47:42] Gained a gnoll collar
[2003-04-12 11:47:42] Executing an Eel...
[2003-04-12 11:47:48] Gained an eel sashimi
[2003-04-12 11:47:48] Executing a Girl Scout...
[2003-04-12 11:47:54] Gained a girl scout cookie
[2003-04-12 11:47:54] Executing a greater Merman...
[2003-04-12 11:48:01] Gained a merman trident
[2003-04-12 11:48:01] Executing a Battle-Orc...
[2003-04-12 11:48:07] Gained an orc snout
[2003-04-12 11:48:07] Executing a Yellow Mold...
[2003-04-12 11:48:10] Gained a yellow mold spore
[2003-04-12 11:48:10] Executing a cursed Goblin...
[2003-04-12 11:48:19] Gained a goblin ear
[2003-04-12 11:48:19] Executing a Piercer...
[2003-04-12 11:48:29] Gained a piercer tip
[2003-04-12 11:48:29] Executing a Jumpskin...
[2003-04-12 11:48:38] Gained a jumpskin shin
[2003-04-12 11:48:38] Executing a greater Grid Bug...
[2003-04-12 11:48:44] Gained a grid bug carapace
[2003-04-12 11:48:44] Heading to market to sell loot...
[2003-04-12 11:48:48] Selling a rot grub eggsac...
[2003-04-12 11:48:50] Got paid 2 gold pieces
[2003-04-12 11:48:50] Selling a quasit tail...
[2003-04-12 11:48:51] Got paid 2 gold pieces
[2003-04-12 11:48:51] Selling a sea hag wart...
[2003-04-12 11:48:52] Got paid 2 gold pieces
[2003-04-12 11:48:52] Selling a bunny ear...
[2003-04-12 11:48:53] Got paid 2 gold pieces
[2003-04-12 11:48:53] Selling an uruk boot...
[2003-04-12 11:48:54] Got paid 2 gold pieces
[2003-04-12 11:48:54] Selling a catoblepas neck...
[2003-04-12 11:48:56] Got paid 2 gold pieces
[2003-04-12 11:48:56] Selling 2 piercer tips...
[2003-04-12 11:48:57] Got paid 4 gold pieces
[2003-04-12 11:48:57] Selling a wolf paw...
[2003-04-12 11:48:58] Got paid 2 gold pieces
[2003-04-12 11:48:58] Selling a cub scout neckercheif...
[2003-04-12 11:48:59] Got paid 2 gold pieces
[2003-04-12 11:48:59] Selling a sylph thigh...
[2003-04-12 11:49:00] Got paid 2 gold pieces
[2003-04-12 11:49:00] Selling a bat wing...
[2003-04-12 11:49:02] Got paid 2 gold pieces
[2003-04-12 11:49:02] Selling a homonculus fluid...
[2003-04-12 11:49:03] Got paid 2 gold pieces
[2003-04-12 11:49:03] Selling a gnoll collar...
[2003-04-12 11:49:04] Got paid 2 gold pieces
[2003-04-12 11:49:04] Selling an eel sashimi...
[2003-04-12 11:49:05] Got paid 2 gold pieces
[2003-04-12 11:49:05] Selling a girl scout cookie...
[2003-04-12 11:49:06] Got paid 2 gold pieces
[2003-04-12 11:49:06] Selling a merman trident...
[2003-04-12 11:49:08] Got paid 2 gold pieces
[2003-04-12 11:49:08] Selling an orc snout...
[2003-04-12 11:49:09] Got paid 2 gold pieces
[2003-04-12 11:49:09] Selling a yellow mold spore...
[2003-04-12 11:49:10] Got paid 2 gold pieces
[2003-04-12 11:49:10] Selling a goblin ear...
[2003-04-12 11:49:11] Got paid 2 gold pieces
[2003-04-12 11:49:11] Selling a jumpskin shin...
[2003-04-12 11:49:12] Got paid 2 gold pieces
[2003-04-12 11:49:12] Selling a grid bug carapace...
[2003-04-12 11:49:14] Got paid 2 gold pieces
[2003-04-12 11:49:14] Heading to the killing fields...
[2003-04-12 11:49:18] Executing a greater Leprechaun...
[2003-04-12 11:49:24] Gained a leprechaun wallet
[2003-04-12 11:49:24] Executing a cursed Crayfish...
[2003-04-12 11:49:30] Gained a crayfish antenna
[2003-04-12 11:49:30] Executing an Iron Peasant...
[2003-04-12 11:49:40] Gained an iron peasant chaff
[2003-04-12 11:49:40] Executing an undernourished Green Slime...
[2003-04-12 11:49:43] Gained a green slime sample
[2003-04-12 11:49:43] Executing an Uruk...
[2003-04-12 11:49:49] Gained an uruk boot
[2003-04-12 11:49:49] Executing an underage Violet Fungi...
[2003-04-12 11:49:55] Gained a violet fungi spore
[2003-04-12 11:49:55] Executing a Camel...
[2003-04-12 11:50:01] Gained a camel hump
[2003-04-12 11:50:01] Executing a greater Rat...
[2003-04-12 11:50:23] Loaded game: C:\proj\pq6.2\Cokie [Oobag].pq
[2003-04-12 11:50:23] Gained a wolf paw
[2003-04-12 11:50:23] Executing a Yellow Mold...
[2003-04-12 11:50:27] Gained a yellow mold spore
[2003-04-12 11:50:27] Executing a massive Nixie...
[2003-04-12 11:50:30] Saving game: C:\proj\pq6.2\Cokie [Oobag].pq
[2003-04-12 11:52:42] Loaded game: C:\proj\pq6.2\Cokie [Oobag].pq
[2003-04-12 11:53:40] Loaded game: C:\proj\pq6.2\Cokie [Oobag].pq
[2003-04-12 11:53:46] Gained a nixie webbing
[2003-04-12 11:53:46] Executing a Yellow Mold...
[2003-04-12 11:53:49] Gained a yellow mold spore
[2003-04-12 11:53:49] Executing a massive Nixie...
[2003-04-12 11:53:59] Gained a nixie webbing
[2003-04-12 11:53:59] Executing a Goblin...
[2003-04-12 11:54:02] Gained a goblin ear
[2003-04-12 11:54:02] Executing a Battle-Leprechaun...
[2003-04-12 11:54:06] Saving game: C:\proj\pq6.2\Cokie [Oobag].pq
Binary file not shown.
+44
View File
@@ -0,0 +1,44 @@
Cookie [Oobag]
Half Halfling Puma Burgular
Level 2 (exp. 180/1279)
Plot stage: Act I (5 hours remaining)
Quest: Deliver this trinket (38% complete)
Stats:
STR 12
CON 9
DEX 6
INT 13
WIS 12 HP Max 11
CHA 11 MP Max 12
Equipment:
Shield +1 Pie Plate
Helm Lace
Hauberk -2 Warped Dented Bearskin
Brassairts +1 Lace
Gauntlets Lace
Gambeson Lace
Greaves -1 Macrame
Spell Book:
Hastiness II
Slime Finger I
Inventory (17/22 cubits):
15 gold pieces
a quasit tail
a sea hag wart
a bunny ear
an uruk boot
a catoblepas neck
a piercer tip
a wolf paw
5 yellow mold spores
2 nixie webbings
a goblin ear
a leprechaun wallet
-- 4/12/2003 1:21:40 PM
-- Progress Quest 6.2 - http://progressquest.com/
Binary file not shown.
BIN
View File
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More