mirror of
https://bitbucket.org/grumdrig/pq.git
synced 2026-09-28 16:23:59 -06:00
[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:
BIN
Binary file not shown.
+1
-1
@@ -377,7 +377,7 @@ object K: TK
|
||||
'Ostentatious'
|
||||
'One True'
|
||||
'Proverbial'
|
||||
'Fearsome '
|
||||
'Fearsome'
|
||||
'Deadly'
|
||||
'Benevolent'
|
||||
'Unearthly'
|
||||
|
||||
@@ -105,7 +105,7 @@ object FrontForm: TFrontForm
|
||||
Height = 13
|
||||
Align = alBottom
|
||||
Alignment = taCenter
|
||||
Caption = #169' 2002 Eric Fredricksen - v6.1'
|
||||
Caption = #169' 2002 Eric Fredricksen - v6.2'
|
||||
Color = clWhite
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 11382189
|
||||
|
||||
BIN
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
object MainForm: TMainForm
|
||||
Left = 226
|
||||
Top = 145
|
||||
Left = 281
|
||||
Top = 121
|
||||
Width = 682
|
||||
Height = 569
|
||||
HorzScrollBar.Visible = False
|
||||
@@ -551,8 +551,8 @@ object MainForm: TMainForm
|
||||
ParentColor = False
|
||||
end
|
||||
object fQueue: TListBox
|
||||
Left = 12
|
||||
Top = 72
|
||||
Left = 48
|
||||
Top = 76
|
||||
Width = 49
|
||||
Height = 45
|
||||
ItemHeight = 13
|
||||
|
||||
@@ -5,12 +5,12 @@ interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, ImgList, Menus, Psock,
|
||||
NMHttp, ShellAPI;
|
||||
Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, ImgList, Menus, ShellAPI;
|
||||
|
||||
const
|
||||
RevString = '&rev=3';
|
||||
RevString = '&rev=4';
|
||||
wmIconTray = WM_USER + Ord('t');
|
||||
kFileExt = '.pq';
|
||||
|
||||
type
|
||||
TMainForm = class(TForm)
|
||||
@@ -84,11 +84,23 @@ type
|
||||
procedure TriggerAutosizes;
|
||||
function GameSaveName: String;
|
||||
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 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
|
||||
FTrayIcon: TNotifyIconData;
|
||||
FReportSave: Boolean;
|
||||
FLogEvents: Boolean;
|
||||
FMakeBackups: Boolean;
|
||||
FMinToTray: Boolean;
|
||||
FExportSheets: Boolean;
|
||||
FSaveFileName: String;
|
||||
procedure MinimizeIt;
|
||||
procedure LoadGame(name: String);
|
||||
function SaveGame: Boolean;
|
||||
@@ -128,21 +140,65 @@ procedure Navigate(url: String);
|
||||
|
||||
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}
|
||||
{ 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;
|
||||
const
|
||||
kPQFileType = 'ProgressQuest.GameSave';
|
||||
var
|
||||
kOpenCommand: String;
|
||||
begin
|
||||
// HKCR/.pq (Default)="pqfile"
|
||||
// HKCR/pqfile (Default)="Progress Quest saved game"
|
||||
// HKCR/pqfile/shell (Default)="open"
|
||||
// HKCR/pqfile/shell/open/command (Default)='c:\blah\pq.exe "%1"'
|
||||
kOpenCommand := '"' + Application.ExeName + '" "%1"';
|
||||
RegWrite(HKEY_CLASSES_ROOT, kFileExt,'', kPQFileType);
|
||||
RegWrite(HKEY_CLASSES_ROOT, kPQFileType, '', 'Progresss Quest saved game');
|
||||
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;
|
||||
|
||||
procedure TMainForm.MinimizeIt;
|
||||
begin
|
||||
if not FMinToTray then Exit;
|
||||
with FTrayIcon do
|
||||
begin
|
||||
cbSize := SizeOf(FTrayIcon);
|
||||
@@ -151,7 +207,7 @@ begin
|
||||
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
|
||||
uCallbackMessage := wmIconTray;
|
||||
hIcon := Application.Icon.Handle;
|
||||
StrPCopy(szTip, Application.Title);
|
||||
StrPCopy(szTip, Caption);
|
||||
//a.szTip := 'Progress Quest';
|
||||
end;
|
||||
Application.Minimize;
|
||||
@@ -161,30 +217,24 @@ end;
|
||||
|
||||
procedure TMainForm.OnSysCommand(var Msg: TWMSysCommand);
|
||||
begin
|
||||
if (Msg.CmdType = SC_MINIMIZE) then
|
||||
if (Msg.CmdType = SC_MINIMIZE) and FMinToTray then
|
||||
MinimizeIt();
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TMainForm.RestoreIt;
|
||||
begin
|
||||
ShowWindow(Application.Handle, SW_SHOW);
|
||||
Application.Restore;
|
||||
Shell_NotifyIcon(NIM_DELETE, @MainForm.FTrayIcon);
|
||||
end;
|
||||
|
||||
procedure TMainForm.OnTrayMessage(var Msg: TMessage);
|
||||
var
|
||||
p : TPoint;
|
||||
//var p : TPoint;
|
||||
begin
|
||||
case Msg.lParam of
|
||||
WM_LBUTTONDOWN, WM_RBUTTONDOWN:
|
||||
begin
|
||||
ShowWindow(Application.Handle, SW_SHOW);
|
||||
Application.Restore;
|
||||
Shell_NotifyIcon(NIM_DELETE, @MainForm.FTrayIcon);
|
||||
end;
|
||||
{ WM_RBUTTONDOWN:
|
||||
begin
|
||||
//SetForegroundWindow(Handle);
|
||||
//GetCursorPos(p);
|
||||
//PopUpMenu1.Popup(p.x, p.y);
|
||||
//PostMessage(Handle, WM_NULL, 0, 0);
|
||||
end;
|
||||
}
|
||||
RestoreIt;
|
||||
end;
|
||||
end;
|
||||
|
||||
@@ -195,6 +245,8 @@ begin
|
||||
//Shell_NotifyIcon(NIM_ADD, @MainForm.FTrayIcon);
|
||||
end;
|
||||
MainForm.Timer1.Enabled := True;
|
||||
// BS location for this but
|
||||
MainForm.Caption := 'ProgressQuest - ' + ChangeFileExt(MainForm.GameSaveName, '');
|
||||
end;
|
||||
|
||||
function TMainForm.GetPasskey: Integer; begin Result := Traits.Tag; end;
|
||||
@@ -327,7 +379,7 @@ function Young(m: Integer; s: String): String;
|
||||
begin
|
||||
Result := IntToStr(m) + s; // in case I screw up
|
||||
case -m of
|
||||
-5,5: Result := 'fœtal ' + s;
|
||||
-5,5: Result := 'fetal ' + s;
|
||||
-4,4: Result := 'baby ' + s;
|
||||
-3,3: Result := 'preadolescent ' + s;
|
||||
-2,2: Result := 'teenage ' + s;
|
||||
@@ -708,12 +760,14 @@ var
|
||||
lev, level, l, i, montag: Integer;
|
||||
m: string;
|
||||
begin
|
||||
lev := 0; // Quell stupid compiler warning
|
||||
with QuestBar do begin
|
||||
Position := 0;
|
||||
Max := 50 + Random(100);
|
||||
end;
|
||||
with Quests do begin
|
||||
if Items.Count > 0 then begin
|
||||
Log('Quest completed: ' + Items[Items.Count-1].Caption);
|
||||
Items[Items.Count-1].StateIndex := 1;
|
||||
case Random(4) of
|
||||
0: WinSpell;
|
||||
@@ -770,6 +824,7 @@ begin
|
||||
fQuest.Caption := '';
|
||||
end;
|
||||
end;
|
||||
Log('Commencing quest: ' + Caption);
|
||||
StateIndex := 0;
|
||||
MakeVisible(false);
|
||||
end;
|
||||
@@ -849,9 +904,79 @@ begin
|
||||
Brag('a');
|
||||
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);
|
||||
begin
|
||||
Kill.SimpleText := caption + '...';
|
||||
Log(Kill.SimpleText);
|
||||
with TaskBar do begin
|
||||
Position := 0;
|
||||
Max := msec;
|
||||
@@ -859,8 +984,19 @@ begin
|
||||
end;
|
||||
|
||||
procedure TMainForm.Add(list: TListView; key: String; value: Integer);
|
||||
var line: String;
|
||||
begin
|
||||
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;
|
||||
|
||||
procedure TMainForm.AddR(list: TListView; key: String; value: Integer);
|
||||
@@ -982,7 +1118,7 @@ begin
|
||||
|
||||
Dequeue();
|
||||
end else with TaskBar do begin
|
||||
elapsed := timeGetTime - Timer1.Tag;
|
||||
elapsed := LongInt(timeGetTime) - LongInt(Timer1.Tag);
|
||||
if elapsed > 100 then elapsed := 100;
|
||||
if elapsed < 0 then elapsed := 0;
|
||||
Position := Position + elapsed;//Integer(Timer1.Interval);
|
||||
@@ -998,6 +1134,14 @@ begin
|
||||
TaskBar.Position := 0;
|
||||
ExpBar.Position := 0;
|
||||
Encumbar.Position := 0;
|
||||
|
||||
FReportSave := true;
|
||||
FLogEvents := false;
|
||||
FMakeBackups := false;
|
||||
FMinToTray := true;
|
||||
FExportSheets := false;
|
||||
|
||||
MakeFileAssociations;
|
||||
end;
|
||||
|
||||
procedure TMainForm.SpeedButton1Click(Sender: TObject);
|
||||
@@ -1056,15 +1200,35 @@ end;
|
||||
|
||||
procedure TMainForm.FormShow(Sender: TObject);
|
||||
var
|
||||
Done: Boolean;
|
||||
done, exportandexit: Boolean;
|
||||
i: Integer;
|
||||
begin
|
||||
if Timer1.Enabled then Exit;
|
||||
Done := false;
|
||||
if ParamCount >= 1 then begin
|
||||
LoadGame(ParamStr(1));
|
||||
NewGuyForm.Server.OnSuccess := nil;
|
||||
NewGuyForm.Server.OnFailure := nil;
|
||||
end else
|
||||
done := false;
|
||||
exportandexit := false;
|
||||
for i := 1 to ParamCount do begin
|
||||
if ParamStr(i) = '-log'
|
||||
then FLogEvents := true
|
||||
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
|
||||
SetHostName('');
|
||||
SetHostAddr('');
|
||||
@@ -1072,14 +1236,12 @@ begin
|
||||
SetPassword('');
|
||||
case FrontForm.ShowModal of
|
||||
mrOk: begin
|
||||
Done := RollCharacter;
|
||||
done := RollCharacter;
|
||||
end;
|
||||
mrRetry: begin
|
||||
// load
|
||||
if FrontForm.OpenDialog1.Execute then begin
|
||||
LoadGame(FrontForm.OpenDialog1.Filename);
|
||||
NewGuyForm.Server.OnSuccess := nil;
|
||||
NewGuyForm.Server.OnFailure := nil;
|
||||
Done := true;
|
||||
end;
|
||||
end;
|
||||
@@ -1134,10 +1296,13 @@ var
|
||||
m: TMemoryStream;
|
||||
i: Integer;
|
||||
begin
|
||||
Log('Saving game: ' + GameSaveName);
|
||||
Result := true;
|
||||
try
|
||||
DeleteFile(GameSaveName + '.bak');
|
||||
MoveFile(PChar(GameSaveName), PChar(GameSaveName + '.bak'));
|
||||
if FMakeBackups then begin
|
||||
DeleteFile(ChangeFileExt(GameSaveName, '.bak'));
|
||||
MoveFile(PChar(GameSaveName), PChar(ChangeFileExt(GameSaveName, '.bak')));
|
||||
end;
|
||||
f := TFileStream.Create(GameSaveName, fmCreate);
|
||||
except
|
||||
on EfCreateError do begin
|
||||
@@ -1164,6 +1329,7 @@ var
|
||||
m: TStream;
|
||||
i: Integer;
|
||||
begin
|
||||
FSaveFileName := name;
|
||||
m := TMemoryStream.Create;
|
||||
f := TFileStream.Create(name, fmOpenRead);
|
||||
try
|
||||
@@ -1187,6 +1353,7 @@ begin
|
||||
for i := 0 to ComponentCount-1 do
|
||||
m.ReadComponent(Components[i]);
|
||||
m.Free;
|
||||
Log('Loaded game: ' + name);
|
||||
StartTimer;
|
||||
TriggerAutosizes;
|
||||
end;
|
||||
@@ -1208,15 +1375,23 @@ begin
|
||||
Timer1.Enabled := false;
|
||||
Shell_NotifyIcon(NIM_DELETE, @FTrayIcon);
|
||||
if SaveGame then
|
||||
ShowMessage('Game saved as ' + GameSaveName);
|
||||
if FReportSave then
|
||||
ShowMessage('Game saved as ' + GameSaveName);
|
||||
end;
|
||||
FReportSave := true;
|
||||
Action := caFree;
|
||||
end;
|
||||
|
||||
function TMainForm.GameSaveName: String;
|
||||
begin
|
||||
Result := Get(Traits,'Name');
|
||||
if GetHostName <> '' then Result := Result + ' [' + GetHostName + ']';
|
||||
Result := Result + '.pq';
|
||||
if FSaveFileName = '' then begin
|
||||
FSaveFileName := Get(Traits,'Name');
|
||||
if GetHostName <> '' then
|
||||
FSaveFileName := FSaveFileName + ' [' + GetHostName + ']';
|
||||
FSaveFileName := FSaveFileName + kFileExt;
|
||||
FSaveFileName := ExpandFileName(PChar(FSaveFileName));
|
||||
end;
|
||||
Result := FSaveFileName;
|
||||
end;
|
||||
|
||||
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
|
||||
@@ -1266,11 +1441,13 @@ end;
|
||||
|
||||
procedure TMainForm.Brag(trigger: String);
|
||||
var
|
||||
url: string;
|
||||
url, body: string;
|
||||
best, i: Integer;
|
||||
const
|
||||
flat = 1;
|
||||
begin
|
||||
if FExportSheets then
|
||||
ExportCharSheet;
|
||||
if GetPasskey = 0 then Exit; // not a online game!
|
||||
url := 'cmd=b&t=' + trigger;
|
||||
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 + '&h=' + UrlEncode(GetHostName);
|
||||
url := url + RevString;
|
||||
//url := url + '&passkey=' + IntToStr((not GetI(Traits,'Level') * 9831) xor GetPasskey);
|
||||
url := url + '&p=' + IntToStr(LFSR(url, GetPasskey));
|
||||
url := url + '&m=' + UrlEncode(GetMotto);
|
||||
with NewGuyForm.Server do try
|
||||
Abort;
|
||||
HeaderInfo.UserId := GetLogin;
|
||||
HeaderInfo.Password := GetPassword;
|
||||
OnSuccess := NewGuyForm.BragSuccess;
|
||||
Get(GetHostAddr + url);
|
||||
url := AuthenticateUrl(GetHostAddr + url);
|
||||
try
|
||||
body := DownloadString(url);
|
||||
if (LowerCase(Split(body,0)) = 'report') then
|
||||
ShowMessage(Split(body,1));
|
||||
except
|
||||
on ESockError do begin
|
||||
on EWebError do begin
|
||||
// 'ats okay.
|
||||
Abort;
|
||||
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;
|
||||
var
|
||||
url: string;
|
||||
url, s,b: string;
|
||||
i: Integer;
|
||||
begin
|
||||
if GetPasskey = 0 then Exit; // not a online game!
|
||||
@@ -1323,19 +1505,40 @@ begin
|
||||
url := url + RevString;
|
||||
url := url + '&guild=' + UrlEncode(GetGuild);
|
||||
url := url + '&p=' + IntToStr(LFSR(url, GetPasskey));
|
||||
with NewGuyForm.GuildGet do try
|
||||
Abort;
|
||||
HeaderInfo.UserId := GetLogin;
|
||||
HeaderInfo.Password := GetPassword;
|
||||
Get(GetHostAddr + url);
|
||||
url := AuthenticateUrl(GetHostAddr + url);
|
||||
try
|
||||
b := DownloadString(url);
|
||||
s := Take(b);
|
||||
if s <> '' then ShowMessage(s);
|
||||
s := Take(b);
|
||||
if s <> '' then Navigate(s);
|
||||
except
|
||||
on ESockError do begin
|
||||
on EWebError do begin
|
||||
// 'ats okay.
|
||||
Abort;
|
||||
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
|
||||
RegisterClasses([TMainForm]);
|
||||
end.
|
||||
|
||||
BIN
Binary file not shown.
+2
-31
@@ -1,6 +1,6 @@
|
||||
object NewGuyForm: TNewGuyForm
|
||||
Left = 323
|
||||
Top = 164
|
||||
Left = 203
|
||||
Top = 146
|
||||
BorderIcons = []
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Progress Quest - New Character'
|
||||
@@ -354,21 +354,6 @@ object NewGuyForm: TNewGuyForm
|
||||
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
|
||||
@@ -378,18 +363,4 @@ object NewGuyForm: TNewGuyForm
|
||||
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
|
||||
|
||||
+17
-45
@@ -5,7 +5,7 @@ interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Psock, NMHttp, NMURL, AppEvnts;
|
||||
Dialogs, StdCtrls, ExtCtrls, ComCtrls, AppEvnts, NMURL;
|
||||
|
||||
type
|
||||
TNewGuyForm = class(TForm)
|
||||
@@ -32,27 +32,21 @@ type
|
||||
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;
|
||||
procedure ParseSoldResponse(body: String);
|
||||
public
|
||||
procedure BragSuccess(Cmd: CmdType);
|
||||
function Go: Boolean;
|
||||
end;
|
||||
|
||||
@@ -63,7 +57,7 @@ function UrlEncode(s: string): string;
|
||||
|
||||
implementation
|
||||
|
||||
uses Main, SelServ;
|
||||
uses Main, SelServ, StrUtils, Web;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
@@ -148,26 +142,18 @@ begin
|
||||
RollEm;
|
||||
end;
|
||||
|
||||
procedure TNewGuyForm.ServerSuccess(Cmd: CmdType);
|
||||
procedure TNewGuyForm.ParseSoldResponse(body: String);
|
||||
begin
|
||||
if (LowerCase(Split(Server.Body,0)) = 'ok') then begin
|
||||
MainForm.SetPasskey(Split(Server.Body,1));
|
||||
if (LowerCase(Split(body,0)) = 'ok') then begin
|
||||
MainForm.SetPasskey(Split(body,1));
|
||||
MainForm.SetLogin(GetAccount);
|
||||
MainForm.SetPassword(GetPassword);
|
||||
Server.OnSuccess := nil;
|
||||
Server.OnFailure := nil;
|
||||
ModalResult := mrOk;
|
||||
end else begin
|
||||
ShowMessage(Server.Body);
|
||||
ShowMessage(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 := '';
|
||||
@@ -189,20 +175,19 @@ begin
|
||||
try
|
||||
Screen.Cursor := crHourglass;
|
||||
try
|
||||
Server.HeaderInfo.UserId := GetAccount;
|
||||
Server.HeaderInfo.Password := GetPassword;
|
||||
if (MainForm.Label8.Tag and 16) = 0
|
||||
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' +
|
||||
'&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);
|
||||
ParseSoldResponse(DownloadString(url + args));
|
||||
except
|
||||
on ESockError do begin
|
||||
on EWebError do begin
|
||||
ShowMessage('Error connecting to server');
|
||||
Server.Abort;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
@@ -211,31 +196,18 @@ begin
|
||||
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.
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
ProgressQuest v6.1
|
||||
------------------
|
||||
This is an ex post facto rendering of pq6 in its various versions in
|
||||
svn, so that changes will be trackable thataway.
|
||||
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.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
|
||||
to trace the checkin history using svn.
|
||||
(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.)
|
||||
BIN
Binary file not shown.
+4
-18
@@ -1,6 +1,6 @@
|
||||
object ServerSelectForm: TServerSelectForm
|
||||
Left = 279
|
||||
Top = 201
|
||||
Left = 292
|
||||
Top = 57
|
||||
Width = 490
|
||||
Height = 381
|
||||
Caption = 'Progress Quest - Select Realm'
|
||||
@@ -207,25 +207,11 @@ object ServerSelectForm: TServerSelectForm
|
||||
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
|
||||
Left = 224
|
||||
Top = 76
|
||||
end
|
||||
end
|
||||
|
||||
+16
-15
@@ -4,8 +4,8 @@ unit SelServ;
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls, ComCtrls, ExtCtrls, Psock, NMHttp;
|
||||
Windows, Messages, SysUtils, Forms, Dialogs, StdCtrls, ExtCtrls,
|
||||
ComCtrls, Controls, Classes;
|
||||
|
||||
type
|
||||
TServerSelectForm = class(TForm)
|
||||
@@ -16,13 +16,11 @@ type
|
||||
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);
|
||||
@@ -31,6 +29,7 @@ type
|
||||
private
|
||||
procedure Fetch(path: String);
|
||||
function CurrentOpts: Integer;
|
||||
procedure ParseServerList(body: String);
|
||||
public
|
||||
function Go: Boolean;
|
||||
end;
|
||||
@@ -42,7 +41,7 @@ function Take(var s: String): String;
|
||||
|
||||
implementation
|
||||
|
||||
uses NewGuy, Login, Main;
|
||||
uses NewGuy, Login, Main, Web;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
@@ -57,12 +56,12 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TServerSelectForm.ServerLoaderSuccess(Cmd: CmdType);
|
||||
procedure TServerSelectForm.ParseServerList(body: String);
|
||||
var
|
||||
s, def: String;
|
||||
ndef: Integer;
|
||||
begin
|
||||
s := ServerLoader.Body;
|
||||
s := body;
|
||||
if (LowerCase(Take(s)) = 'ok') then begin
|
||||
def := Take(s);
|
||||
ndef := 0;
|
||||
@@ -78,7 +77,7 @@ begin
|
||||
ServersClick(Self);
|
||||
// Select.Enabled := true;
|
||||
end else begin
|
||||
ShowMessage(ServerLoader.Body);
|
||||
ShowMessage(body);
|
||||
ModalResult := mrCancel;
|
||||
end;
|
||||
end;
|
||||
@@ -96,6 +95,8 @@ begin
|
||||
end;
|
||||
|
||||
procedure TServerSelectForm.Fetch(path: String);
|
||||
var
|
||||
url, reply: String;
|
||||
begin
|
||||
Select.Enabled := false;
|
||||
Servers.Items.Clear;
|
||||
@@ -106,17 +107,17 @@ begin
|
||||
if path <> '' then
|
||||
Caption := Caption + ' [' + path + ']';
|
||||
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
|
||||
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));
|
||||
reply := DownloadString(url);
|
||||
ParseServerList(reply);
|
||||
except
|
||||
on ESockError do begin
|
||||
ShowMessage('Error connecting to server');
|
||||
ServerLoader.Abort;
|
||||
on EWebError do begin
|
||||
ShowMessage('Error connecting to Progress Quest server');
|
||||
ModalResult := mrCancel;
|
||||
end;
|
||||
end;
|
||||
|
||||
@@ -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
Binary file not shown.
@@ -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
|
||||
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.
@@ -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 <Ctrl>-<B> 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 <Alt>-<F4>
|
||||
(hold down the <Alt> key while hitting <F4>), 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>©:Copyright 2002
|
||||
<a href=mailto:grumdrig@progressquest.com>grumdrig@progressquest.com</a>
|
||||
Binary file not shown.
@@ -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
|
||||
@@ -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
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -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
@@ -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
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -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.
@@ -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>
|
||||
@@ -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.
|
||||
@@ -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 <Ctrl>-<B> 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 <Alt>-<F4>
|
||||
(hold down the <Alt> key while hitting <F4>), 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>©:Copyright 2002
|
||||
<a href=mailto:grumdrig@progressquest.com>grumdrig@progressquest.com</a>
|
||||
Binary file not shown.
@@ -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
|
||||
@@ -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
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -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
@@ -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
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -1,5 +1,5 @@
|
||||
Progress Quest
|
||||
Copyright (c) 2002 Eric Fredricksen
|
||||
Progress Quest version 6.2
|
||||
Copyright (c) 2003 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
|
||||
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
-$A8
|
||||
-$B-
|
||||
-$C-
|
||||
-$D-
|
||||
-$C+
|
||||
-$D+
|
||||
-$E-
|
||||
-$F-
|
||||
-$G+
|
||||
@@ -9,7 +9,7 @@
|
||||
-$I+
|
||||
-$J-
|
||||
-$K-
|
||||
-$L-
|
||||
-$L+
|
||||
-$M-
|
||||
-$N+
|
||||
-$O+
|
||||
@@ -22,7 +22,7 @@
|
||||
-$V+
|
||||
-$W-
|
||||
-$X+
|
||||
-$Y-
|
||||
-$YD
|
||||
-$Z1
|
||||
-cg
|
||||
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||
|
||||
@@ -3,8 +3,8 @@ Version=6.0
|
||||
[Compiler]
|
||||
A=8
|
||||
B=0
|
||||
C=0
|
||||
D=0
|
||||
C=1
|
||||
D=1
|
||||
E=0
|
||||
F=0
|
||||
G=1
|
||||
@@ -12,7 +12,7 @@ H=1
|
||||
I=1
|
||||
J=0
|
||||
K=0
|
||||
L=0
|
||||
L=1
|
||||
M=0
|
||||
N=1
|
||||
O=1
|
||||
@@ -25,7 +25,7 @@ U=0
|
||||
V=1
|
||||
W=0
|
||||
X=1
|
||||
Y=0
|
||||
Y=1
|
||||
Z=1
|
||||
ShowHints=1
|
||||
ShowWarnings=1
|
||||
@@ -39,19 +39,19 @@ RemoteSymbols=0
|
||||
MinStackSize=16384
|
||||
MaxStackSize=1048576
|
||||
ImageBase=4194304
|
||||
ExeDescription=http://progressquest.com/
|
||||
ExeDescription=
|
||||
[Directories]
|
||||
OutputDir=
|
||||
UnitOutputDir=
|
||||
PackageDLLOutputDir=
|
||||
PackageDCPOutputDir=
|
||||
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=
|
||||
DebugSourceDirs=
|
||||
UsePackages=0
|
||||
[Parameters]
|
||||
RunParams=
|
||||
RunParams=-export "Cokie [oobag].pq"
|
||||
HostApplication=
|
||||
Launcher=
|
||||
UseLauncher=0
|
||||
@@ -61,10 +61,10 @@ ActiveLang=
|
||||
ProjectLang=
|
||||
RootDir=
|
||||
[Version Info]
|
||||
IncludeVerInfo=0
|
||||
IncludeVerInfo=1
|
||||
AutoIncBuild=0
|
||||
MajorVer=1
|
||||
MinorVer=0
|
||||
MajorVer=6
|
||||
MinorVer=2
|
||||
Release=0
|
||||
Build=0
|
||||
Debug=0
|
||||
@@ -75,16 +75,13 @@ DLL=0
|
||||
Locale=1033
|
||||
CodePage=1252
|
||||
[Version Info Keys]
|
||||
CompanyName=
|
||||
CompanyName=Grumdrig
|
||||
FileDescription=
|
||||
FileVersion=1.0.0.0
|
||||
FileVersion=6.2.0.0
|
||||
InternalName=
|
||||
LegalCopyright=
|
||||
LegalTrademarks=
|
||||
OriginalFilename=
|
||||
ProductName=
|
||||
ProductVersion=1.0.0.0
|
||||
OriginalFilename=pq.exe
|
||||
ProductName=Progress Quest
|
||||
ProductVersion=6.2
|
||||
Comments=
|
||||
[HistoryLists\hlUnitAliases]
|
||||
Count=1
|
||||
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||
|
||||
@@ -6,7 +6,8 @@ uses
|
||||
Front in 'Front.pas' {FrontForm},
|
||||
Main in 'Main.pas' {MainForm},
|
||||
NewGuy in 'NewGuy.pas' {NewGuyForm},
|
||||
SelServ in 'SelServ.pas' {ServerSelectForm};
|
||||
SelServ in 'SelServ.pas' {ServerSelectForm},
|
||||
Web in 'Web.pas';
|
||||
|
||||
{$E exe}
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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.
@@ -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/
|
||||
@@ -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.
@@ -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.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user