Part II: This is an ex post facto rendering of pq6 in its various versions in

svn, so that changes will be trackable thataway

This is version 6.1 as found in the old sources. Used whathappened.py
to update it.
This commit is contained in:
Eric Fredricksen
2006-12-24 19:50:11 +00:00
parent d3bba84017
commit a1fa177943
274 changed files with 24357 additions and 8273 deletions
BIN
View File
Binary file not shown.
+61 -8
View File
@@ -134,11 +134,14 @@ object K: TK
'Clever Fellow' 'Clever Fellow'
'Lockjaw' 'Lockjaw'
'Hydrophobia' 'Hydrophobia'
'Big Sister'
'Cone of Paste'
'Mulligan' 'Mulligan'
'Nestor'#39's Bright Idea' 'Nestor'#39's Bright Idea'
'Holy Batpole' 'Holy Batpole'
'Tumor (Benign)' 'Tumor (Benign)'
'Braingate' 'Braingate'
'Nonplus'
'Animate Nightstand' 'Animate Nightstand'
'Eye of the Troglodyte' 'Eye of the Troglodyte'
'Curse Name' 'Curse Name'
@@ -174,6 +177,7 @@ object K: TK
'Steely|+2' 'Steely|+2'
'Vicious|+3' 'Vicious|+3'
'Venomed|+4' 'Venomed|+4'
'Stabbity|+4'
'Dancing|+5' 'Dancing|+5'
'Invisible|+6' 'Invisible|+6'
'Vorpal|+7') 'Vorpal|+7')
@@ -209,12 +213,16 @@ object K: TK
'Garbage Can Lid|2' 'Garbage Can Lid|2'
'Buckler|3' 'Buckler|3'
'Plexiglass|4' 'Plexiglass|4'
'Fender|4'
'Round Shield|5' 'Round Shield|5'
'Carapace|5'
'Scutum|6' 'Scutum|6'
'Propugner|6'
'Kite Shield|7' 'Kite Shield|7'
'Pavise|8' 'Pavise|8'
'Tower Shield|9' 'Tower Shield|9'
'Baroque Shield|11' 'Baroque Shield|11'
'Aegis|12'
'Magnetic Field|18') 'Magnetic Field|18')
TabOrder = 3 TabOrder = 3
WordWrap = False WordWrap = False
@@ -233,6 +241,7 @@ object K: TK
'Chamois|6' 'Chamois|6'
'Pleathers|7' 'Pleathers|7'
'Leathers|8' 'Leathers|8'
'Bearskin|9'
'Ringmail|10' 'Ringmail|10'
'Scale Mail|12' 'Scale Mail|12'
'Chainmail|14' 'Chainmail|14'
@@ -256,23 +265,39 @@ object K: TK
'Stick|0' 'Stick|0'
'Broken Bottle|1' 'Broken Bottle|1'
'Shiv|1' 'Shiv|1'
'Sprig|1'
'Oxgoad|1'
'Eelspear|2'
'Bowie Knife|2' 'Bowie Knife|2'
'Claw Hammer|2' 'Claw Hammer|2'
'Handpeen|2'
'Andiron|3' 'Andiron|3'
'Hatchet|3' 'Hatchet|3'
'Tomahawk|3'
'Hackbarm|3'
'Crowbar|4' 'Crowbar|4'
'Mace|4' 'Mace|4'
'Battleadze|4'
'Leafmace|5'
'Shortsword|5' 'Shortsword|5'
'Longiron|5' 'Longiron|5'
'Zip Gun|6' 'Poachard|5'
'Baselard|5'
'Whinyard|6'
'Blunderbuss|6'
'Longsword|6' 'Longsword|6'
'Crankbow|6'
'Blibo|7'
'Broadsword|7' 'Broadsword|7'
'Morning Star|8' 'Morning Star|8'
'Pole-adze|8'
'Spontoon|8'
'Bastard Sword|9' 'Bastard Sword|9'
'Peen-arm|9'
'Culverin|10'
'Lance|10' 'Lance|10'
'Halberd|11' 'Halberd|11'
'Poleax|12' 'Poleax|12'
'Bandyclef|15'
'Bandyclef|15') 'Bandyclef|15')
TabOrder = 5 TabOrder = 5
WordWrap = False WordWrap = False
@@ -311,7 +336,13 @@ object K: TK
'Ankh' 'Ankh'
'Talisman' 'Talisman'
'Orb' 'Orb'
'Gammel') 'Gammel'
'Ornament'
'Brocade'
'Galoon'
'Bijou'
'Spangle'
'Gimcrack')
TabOrder = 6 TabOrder = 6
WordWrap = False WordWrap = False
end end
@@ -345,7 +376,15 @@ object K: TK
'Austere' 'Austere'
'Ostentatious' 'Ostentatious'
'One True' 'One True'
'Proverbial') 'Proverbial'
'Fearsome '
'Deadly'
'Benevolent'
'Unearthly'
'Magnificent'
'Iron'
'Ormolu'
'Puissant')
TabOrder = 7 TabOrder = 7
WordWrap = False WordWrap = False
end end
@@ -404,7 +443,8 @@ object K: TK
'Ra' 'Ra'
'the Bone' 'the Bone'
'Diamonique' 'Diamonique'
'Electrum') 'Electrum'
'Hydragyrum')
TabOrder = 8 TabOrder = 8
WordWrap = False WordWrap = False
end end
@@ -446,11 +486,14 @@ object K: TK
'hoe' 'hoe'
'bandage' 'bandage'
'trowel' 'trowel'
'towel'
'planter box' 'planter box'
'anvil' 'anvil'
'axle' 'axle'
'tuppence' 'tuppence'
'casket') 'casket'
'nosegay'
'trinket')
TabOrder = 9 TabOrder = 9
WordWrap = False WordWrap = False
end end
@@ -566,11 +609,14 @@ object K: TK
'Hill Giant|8|corpse' 'Hill Giant|8|corpse'
'Stone Giant|9|hatchling' 'Stone Giant|9|hatchling'
'Storm Giant|15|barometer' 'Storm Giant|15|barometer'
'Mini Giant|4|pompadour'
'Gnoll|2|collar' 'Gnoll|2|collar'
'Gnome|1|hat' 'Gnome|1|hat'
'Goblin|1|ear' 'Goblin|1|ear'
'Grid Bug|1|carapace'
'Jellyrock|9|seedling' 'Jellyrock|9|seedling'
'Beer Golem|15|foam' 'Beer Golem|15|foam'
'Oxygen Golem|17|platelet'
'Cardboard Golem|14|recycling' 'Cardboard Golem|14|recycling'
'Rubber Golem|16|ball' 'Rubber Golem|16|ball'
'Leather Golem|15|fob' 'Leather Golem|15|fob'
@@ -585,9 +631,11 @@ object K: TK
'Hippogriff|3|egg' 'Hippogriff|3|egg'
'Hobgoblin|1|patella' 'Hobgoblin|1|patella'
'Homonculus|2|fluid' 'Homonculus|2|fluid'
'Hydra|8|liver' 'Hydra|8|gyrum'
'Imp|2|tail' 'Imp|2|tail'
'Invisible Stalker|8|*' 'Invisible Stalker|8|*'
'Iron Peasant|3|chaff'
'Jumpskin|3|shin'
'Kobold|1|penis' 'Kobold|1|penis'
'Leprechaun|1|wallet' 'Leprechaun|1|wallet'
'Leucrotta|6|hoof' 'Leucrotta|6|hoof'
@@ -597,6 +645,7 @@ object K: TK
'Manticore|6|spike' 'Manticore|6|spike'
'Mastodon|12|tusk' 'Mastodon|12|tusk'
'Medusa|6|eye' 'Medusa|6|eye'
'Multicell|2|dendrite'
'Pirate|1|booty' 'Pirate|1|booty'
'Berserker|1|shirt' 'Berserker|1|shirt'
'Caveman|2|club' 'Caveman|2|club'
@@ -610,6 +659,7 @@ object K: TK
'Morkoth|7|teeth' 'Morkoth|7|teeth'
'Mummy|6|gauze' 'Mummy|6|gauze'
'Naga|9|rattle' 'Naga|9|rattle'
'Nebbish|1|belly'
'Neo-Otyugh|11|organ ' 'Neo-Otyugh|11|organ '
'Nixie|1|webbing' 'Nixie|1|webbing'
'Nymph|3|hanky' 'Nymph|3|hanky'
@@ -636,6 +686,7 @@ object K: TK
'Rust Monster|5|shavings' 'Rust Monster|5|shavings'
'Satyr|5|hoof' 'Satyr|5|hoof'
'Sea Hag|3|wart' 'Sea Hag|3|wart'
'Silkie|3|fur'
'Shadow|3|silhouette' 'Shadow|3|silhouette'
'Shambling Mound|10|mulch' 'Shambling Mound|10|mulch'
'Shedu|9|hoof' 'Shedu|9|hoof'
@@ -646,6 +697,8 @@ object K: TK
'Spider|0|web' 'Spider|0|web'
'Sprite|1|can' 'Sprite|1|can'
'Stirge|1|proboscis' 'Stirge|1|proboscis'
'Stun Bear|5|tooth'
'Stun Worm|2|trode'
'Su-monster|5|tail' 'Su-monster|5|tail'
'Sylph|3|thigh' 'Sylph|3|thigh'
'Titan|20|sandal' 'Titan|20|sandal'
@@ -660,7 +713,7 @@ object K: TK
'Wight|4|lung' 'Wight|4|lung'
'Will-o-the-Wisp|9|wisp' 'Will-o-the-Wisp|9|wisp'
'Wraith|5|finger' 'Wraith|5|finger'
'Wyvern|7|poison' 'Wyvern|7|wing'
'Xorn|7|jaw' 'Xorn|7|jaw'
'Yeti|4|fur' 'Yeti|4|fur'
'Zombie|2|forehead' 'Zombie|2|forehead'
+1
View File
@@ -1,4 +1,5 @@
unit Config; unit Config;
{ copyright (c)2002 Eric Fredricksen all rights reserved }
interface interface
BIN
View File
Binary file not shown.
+4404 -1561
View File
File diff suppressed because it is too large Load Diff
+11 -8
View File
@@ -1,4 +1,5 @@
unit Front; unit Front;
{ copyright (c)2002 Eric Fredricksen all rights reserved }
interface interface
@@ -7,17 +8,19 @@ uses
Dialogs, StdCtrls, ExtCtrls; Dialogs, StdCtrls, ExtCtrls;
type type
TForm3 = class(TForm) TFrontForm = class(TForm)
Panel1: TPanel; Panel1: TPanel;
Logo: TImage;
Button1: TButton; Button1: TButton;
Button2: TButton; Button2: TButton;
Label1: TLabel;
OpenDialog1: TOpenDialog; OpenDialog1: TOpenDialog;
Button4: TButton; Button4: TButton;
Label2: TLabel; Label2: TLabel;
Button3: TButton;
Panel2: TPanel;
Logo: TImage;
Label3: TLabel; Label3: TLabel;
HomeLink: TLabel; HomeLink: TLabel;
Label1: TLabel;
procedure HomeLinkClick(Sender: TObject); procedure HomeLinkClick(Sender: TObject);
procedure LogoClick(Sender: TObject); procedure LogoClick(Sender: TObject);
private private
@@ -27,7 +30,7 @@ type
end; end;
var var
Form3: TForm3; FrontForm: TFrontForm;
implementation implementation
@@ -35,14 +38,14 @@ uses ShellAPI, Main, Info;
{$R *.dfm} {$R *.dfm}
procedure TForm3.HomeLinkClick(Sender: TObject); procedure TFrontForm.HomeLinkClick(Sender: TObject);
begin begin
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/pq.html', 0, '', SW_SHOW); ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', nil, '', SW_SHOW);
end; end;
procedure TForm3.LogoClick(Sender: TObject); procedure TFrontForm.LogoClick(Sender: TObject);
begin begin
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', 0, '', SW_SHOW); ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', nil, '', SW_SHOW);
end; end;
end. end.
+448
View File
@@ -0,0 +1,448 @@
{*************************************************************}
{ 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.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
View File
+166
View File
@@ -0,0 +1,166 @@
object LoginForm: TLoginForm
Left = 314
Top = 162
Width = 265
Height = 448
Caption = 'Progress Quest Login'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
PixelsPerInch = 96
TextHeight = 13
object GroupBox1: TGroupBox
Left = 12
Top = 176
Width = 237
Height = 69
Caption = 'New Users'
TabOrder = 0
object Label1: TLabel
Left = 2
Top = 15
Width = 233
Height = 18
Align = alTop
AutoSize = False
Caption = ' To sign up for a new account, visit'
Layout = tlBottom
end
object Label2: TLabel
Left = 2
Top = 33
Width = 233
Height = 25
Cursor = crHandPoint
Align = alTop
Alignment = taCenter
AutoSize = False
Caption = 'http://progressquest.com/user.php'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clActiveCaption
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold, fsUnderline]
ParentColor = False
ParentFont = False
Layout = tlCenter
OnClick = Label2Click
end
end
object Login: TButton
Left = 88
Top = 388
Width = 75
Height = 25
Caption = 'Login'
Default = True
Enabled = False
TabOrder = 1
OnClick = LoginClick
end
object Button1: TButton
Left = 172
Top = 388
Width = 75
Height = 25
Caption = 'Cancel'
ModalResult = 2
TabOrder = 2
end
object GroupBox2: TGroupBox
Left = 12
Top = 256
Width = 237
Height = 121
Caption = 'Proxy Settings'
TabOrder = 3
object Label3: TLabel
Left = 12
Top = 20
Width = 213
Height = 45
AutoSize = False
Caption =
'Most people can leave this blank, but if you use a proxy to conn' +
'ect to the Web, or wish to use a proxy to cheat, enter it here.'
WordWrap = True
end
object LabeledEdit1: TLabeledEdit
Left = 12
Top = 84
Width = 149
Height = 21
EditLabel.Width = 31
EditLabel.Height = 13
EditLabel.Caption = 'Server'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 0
end
object LabeledEdit2: TLabeledEdit
Left = 164
Top = 84
Width = 57
Height = 21
EditLabel.Width = 19
EditLabel.Height = 13
EditLabel.Caption = 'Port'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 1
end
end
object GroupBox3: TGroupBox
Left = 12
Top = 12
Width = 237
Height = 157
Caption = 'Account Info'
TabOrder = 4
object Label4: TLabel
Left = 8
Top = 20
Width = 221
Height = 45
AutoSize = False
Caption =
'Some realms are open to the public riffraff, but others may requ' +
'ire a valid account. You can enter default account information h' +
'ere.'
WordWrap = True
end
object Account: TLabeledEdit
Left = 8
Top = 84
Width = 221
Height = 21
EditLabel.Width = 40
EditLabel.Height = 13
EditLabel.Caption = 'Account'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 0
OnChange = AccountChange
end
object Password: TLabeledEdit
Left = 8
Top = 124
Width = 221
Height = 21
EditLabel.Width = 46
EditLabel.Height = 13
EditLabel.Caption = 'Password'
LabelPosition = lpAbove
LabelSpacing = 3
PasswordChar = '*'
TabOrder = 1
OnChange = AccountChange
end
end
end
+60
View File
@@ -0,0 +1,60 @@
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.
BIN
View File
Binary file not shown.
+68 -48
View File
@@ -1,11 +1,10 @@
object Form1: TForm1 object MainForm: TMainForm
Left = 163 Left = 226
Top = 116 Top = 145
Width = 682 Width = 682
Height = 569 Height = 569
HorzScrollBar.Visible = False HorzScrollBar.Visible = False
VertScrollBar.Visible = False VertScrollBar.Visible = False
BorderIcons = [biSystemMenu, biMinimize]
Caption = 'Progress Quest' Caption = 'Progress Quest'
Color = clBtnFace Color = clBtnFace
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
@@ -47,43 +46,43 @@ object Form1: TForm1
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF 6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7 66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080 D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF005852 80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
5151515151515258585858585858585858585858585858585852515151515852 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
51514A4A4A515152585858585858585858585858585858585251514B4A4B5852 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
514B4A4A4A4B51515258585858585858585858585858585251514B4A4A4A5852 0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
150F4A4A4A4A4B5151515152525251525252525252525151514A0F154A4B580B 150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
0E0E0B4A4A4A4A4A5151515151515151515151515151514B4B0B0E0E0B512311 0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
15220E514A4A4A4A4A4A4A4B4A4A4A4A4A4A4A4A4A4A4A4A4A0F22143D234313 15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
22431151514A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A11432213435822 2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
23296710294B4A4A44442244154422441544224444444A221012292322585858 23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
58514443151D4B4A442215221522152215221522154B0E151544515252585858 0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
5879294A43140D4A22150D0E2243100E1D0D2215220D14434A03525258585858 0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
585852514A224A430E0E1443220D111543140E0E4344224A4A51515258585858 0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
585858514B1514220E2243150D444444444322222214154B4B4B515258585858 0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
585858585174151D4A434A4A15104422234A434A1D15742A4A4B515258585858 0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
585858585222444B457422224B44224B222274454B4422524A4B515258585858 0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
58585858510A4B4C3F4C44EA4A22224A6D444C3F4C4B0A4A4A51515258585858 0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
585858580D15294B4523ECC8C44A4AE946EC23454B29150D4A51515858585858 0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
58585858444A4A234AAEC8FCFCA7E9F9F946AE44234A4A435151525858585858 0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
58585858232244224AEFA7FCFC62F9F9F946EF4A224422235151525858585858 0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
585858584B434A110C4A8DA862F9F9F9698D4A0C114A43295151525858585858 0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
5858585852222210514A8D46F9F9F962A78D4A51104322524B51525858585858 0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
58585858524B0C034AEB46F9F9F962FCFCA7F84A030C4B4A4A51515258585858 0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
5858585251514B4AED46F9F9F9E3A8FCFCFCA7ED4A4B4A4A4A4B515152585858 0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
58585851514B4AED46F9F9F9E3F7F7E6FCFCFCA7ED4A4A4A4A4A4B5152585858 0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
585852514B4AEB46F9F9F9E3ED525892E6FCFCFCA7EB4A4A4A4A4A4B51525858 0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
585852514A6D46F9F9F9E3ED5858585892E6FCFCFCA76D4A4A4A4A4A51515858 0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
5858514B14B5F047F9E3F7585858585858B5E6FCC8DDB5144A4A4A4A51515858 0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
585852AE09F3F3BCE3B55858585858585858B5D0DDF3F309AE4A4B4B51515858 0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
5858BCF4F5F4F4F4075858585858585858585807F4F4F4F5DEBC515151525858 0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
58991BF5F5F2DDB6585858585858585858585858B6DDF3F5F51B995152585858 0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
5892B51909B592585858585858585858585858585892B509DDB5925858585858 0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
58720909ECEB58585858585858585858585858585858F8EC0909725858585858 0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
58F78DAEED5858585858585858585858585858585858581CAE8D925858580000 0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
0000000000000000000000000000000000000000000000000000000000000000 FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
0000000000000000000000000000000000000000000000000000000000000000 FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
0000000000000000000000000000000000000000000000000000000000000000 003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
000000000000000000000000000000000000000000000000000000000000} C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
KeyPreview = True KeyPreview = True
OldCreateOrder = False OldCreateOrder = False
Position = poScreenCenter Position = poScreenCenter
@@ -153,12 +152,15 @@ object Form1: TForm1
end> end>
ColumnClick = False ColumnClick = False
FlatScrollBars = True FlatScrollBars = True
HideSelection = False
Items.Data = { Items.Data = {
6E0000000400000000000000FFFFFFFFFFFFFFFF0000000000000000044E616D 6E0000000400000000000000FFFFFFFFFFFFFFFF0000000000000000044E616D
6500000000FFFFFFFFFFFFFFFF0000000000000000045261636500000000FFFF 6500000000FFFFFFFFFFFFFFFF0000000000000000045261636500000000FFFF
FFFFFFFFFFFF000000000000000005436C61737300000000FFFFFFFFFFFFFFFF FFFFFFFFFFFF000000000000000005436C61737300000000FFFFFFFFFFFFFFFF
0000000000000000054C6576656C} 0000000000000000054C6576656C}
MultiSelect = True
ReadOnly = True ReadOnly = True
RowSelect = True
TabOrder = 1 TabOrder = 1
ViewStyle = vsReport ViewStyle = vsReport
end end
@@ -179,6 +181,7 @@ object Form1: TForm1
end> end>
ColumnClick = False ColumnClick = False
FlatScrollBars = True FlatScrollBars = True
HideSelection = False
Items.Data = { Items.Data = {
CE0000000800000000000000FFFFFFFFFFFFFFFF000000000000000003535452 CE0000000800000000000000FFFFFFFFFFFFFFFF000000000000000003535452
00000000FFFFFFFFFFFFFFFF000000000000000003434F4E00000000FFFFFFFF 00000000FFFFFFFFFFFFFFFF000000000000000003434F4E00000000FFFFFFFF
@@ -187,7 +190,9 @@ object Form1: TForm1
00000000FFFFFFFFFFFFFFFF00000000000000000343484100000000FFFFFFFF 00000000FFFFFFFFFFFFFFFF00000000000000000343484100000000FFFFFFFF
FFFFFFFF0000000000000000064850204D617800000000FFFFFFFFFFFFFFFF00 FFFFFFFF0000000000000000064850204D617800000000FFFFFFFFFFFFFFFF00
00000000000000064D50204D6178} 00000000000000064D50204D6178}
MultiSelect = True
ReadOnly = True ReadOnly = True
RowSelect = True
TabOrder = 0 TabOrder = 0
ViewStyle = vsReport ViewStyle = vsReport
end end
@@ -222,7 +227,10 @@ object Form1: TForm1
end> end>
ColumnClick = False ColumnClick = False
FlatScrollBars = True FlatScrollBars = True
HideSelection = False
MultiSelect = True
ReadOnly = True ReadOnly = True
RowSelect = True
TabOrder = 3 TabOrder = 3
ViewStyle = vsReport ViewStyle = vsReport
end end
@@ -342,8 +350,11 @@ object Form1: TForm1
end> end>
ColumnClick = False ColumnClick = False
FlatScrollBars = True FlatScrollBars = True
HideSelection = False
IconOptions.Arrangement = iaLeft IconOptions.Arrangement = iaLeft
MultiSelect = True
ReadOnly = True ReadOnly = True
RowSelect = True
ShowColumnHeaders = False ShowColumnHeaders = False
StateImages = ImageList1 StateImages = ImageList1
TabOrder = 1 TabOrder = 1
@@ -375,8 +386,11 @@ object Form1: TForm1
end> end>
ColumnClick = False ColumnClick = False
FlatScrollBars = True FlatScrollBars = True
HideSelection = False
IconOptions.Arrangement = iaLeft IconOptions.Arrangement = iaLeft
MultiSelect = True
ReadOnly = True ReadOnly = True
RowSelect = True
ShowColumnHeaders = False ShowColumnHeaders = False
StateImages = ImageList1 StateImages = ImageList1
TabOrder = 3 TabOrder = 3
@@ -450,7 +464,10 @@ object Form1: TForm1
end> end>
ColumnClick = False ColumnClick = False
FlatScrollBars = True FlatScrollBars = True
HideSelection = False
MultiSelect = True
ReadOnly = True ReadOnly = True
RowSelect = True
TabOrder = 0 TabOrder = 0
ViewStyle = vsReport ViewStyle = vsReport
end end
@@ -485,6 +502,7 @@ object Form1: TForm1
end> end>
ColumnClick = False ColumnClick = False
FlatScrollBars = True FlatScrollBars = True
HideSelection = False
Items.Data = { Items.Data = {
410100000B00000000000000FFFFFFFFFFFFFFFF000000000000000006576561 410100000B00000000000000FFFFFFFFFFFFFFFF000000000000000006576561
706F6E00000000FFFFFFFFFFFFFFFF000000000000000006536869656C640000 706F6E00000000FFFFFFFFFFFFFFFF000000000000000006536869656C640000
@@ -497,15 +515,17 @@ object Form1: TForm1
4375697373657300000000FFFFFFFFFFFFFFFF00000000000000000747726561 4375697373657300000000FFFFFFFFFFFFFFFF00000000000000000747726561
76657300000000FFFFFFFFFFFFFFFF000000000000000009536F6C6C65726574 76657300000000FFFFFFFFFFFFFFFF000000000000000009536F6C6C65726574
73} 73}
MultiSelect = True
ReadOnly = True ReadOnly = True
RowSelect = True
ShowColumnHeaders = False ShowColumnHeaders = False
TabOrder = 2 TabOrder = 2
ViewStyle = vsReport ViewStyle = vsReport
end end
object vars: TPanel object vars: TPanel
Left = 64 Left = 84
Top = 40 Top = 32
Width = 185 Width = 177
Height = 129 Height = 129
Caption = 'vars' Caption = 'vars'
TabOrder = 3 TabOrder = 3
@@ -531,10 +551,10 @@ object Form1: TForm1
ParentColor = False ParentColor = False
end end
object fQueue: TListBox object fQueue: TListBox
Left = 16 Left = 12
Top = 84 Top = 72
Width = 121 Width = 49
Height = 41 Height = 45
ItemHeight = 13 ItemHeight = 13
TabOrder = 0 TabOrder = 0
end end
+373 -222
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+110 -109
View File
@@ -1,10 +1,10 @@
object Form2: TForm2 object NewGuyForm: TNewGuyForm
Left = 264 Left = 323
Top = 169 Top = 164
BorderIcons = [] BorderIcons = []
BorderStyle = bsDialog BorderStyle = bsDialog
Caption = 'Progress Quest - New Character' Caption = 'Progress Quest - New Character'
ClientHeight = 457 ClientHeight = 458
ClientWidth = 509 ClientWidth = 509
Color = clBtnFace Color = clBtnFace
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
@@ -46,43 +46,43 @@ object Form2: TForm2
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF 6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7 66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080 D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF005852 80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
5151515151515258585858585858585858585858585858585852515151515852 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
51514A4A4A515152585858585858585858585858585858585251514B4A4B5852 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
514B4A4A4A4B51515258585858585858585858585858585251514B4A4A4A5852 0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
150F4A4A4A4A4B5151515152525251525252525252525151514A0F154A4B580B 150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
0E0E0B4A4A4A4A4A5151515151515151515151515151514B4B0B0E0E0B512311 0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
15220E514A4A4A4A4A4A4A4B4A4A4A4A4A4A4A4A4A4A4A4A4A0F22143D234313 15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
22431151514A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A11432213435822 2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
23296710294B4A4A44442244154422441544224444444A221012292322585858 23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
58514443151D4B4A442215221522152215221522154B0E151544515252585858 0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
5879294A43140D4A22150D0E2243100E1D0D2215220D14434A03525258585858 0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
585852514A224A430E0E1443220D111543140E0E4344224A4A51515258585858 0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
585858514B1514220E2243150D444444444322222214154B4B4B515258585858 0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
585858585174151D4A434A4A15104422234A434A1D15742A4A4B515258585858 0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
585858585222444B457422224B44224B222274454B4422524A4B515258585858 0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
58585858510A4B4C3F4C44EA4A22224A6D444C3F4C4B0A4A4A51515258585858 0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
585858580D15294B4523ECC8C44A4AE946EC23454B29150D4A51515858585858 0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
58585858444A4A234AAEC8FCFCA7E9F9F946AE44234A4A435151525858585858 0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
58585858232244224AEFA7FCFC62F9F9F946EF4A224422235151525858585858 0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
585858584B434A110C4A8DA862F9F9F9698D4A0C114A43295151525858585858 0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
5858585852222210514A8D46F9F9F962A78D4A51104322524B51525858585858 0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
58585858524B0C034AEB46F9F9F962FCFCA7F84A030C4B4A4A51515258585858 0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
5858585251514B4AED46F9F9F9E3A8FCFCFCA7ED4A4B4A4A4A4B515152585858 0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
58585851514B4AED46F9F9F9E3F7F7E6FCFCFCA7ED4A4A4A4A4A4B5152585858 0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
585852514B4AEB46F9F9F9E3ED525892E6FCFCFCA7EB4A4A4A4A4A4B51525858 0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
585852514A6D46F9F9F9E3ED5858585892E6FCFCFCA76D4A4A4A4A4A51515858 0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
5858514B14B5F047F9E3F7585858585858B5E6FCC8DDB5144A4A4A4A51515858 0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
585852AE09F3F3BCE3B55858585858585858B5D0DDF3F309AE4A4B4B51515858 0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
5858BCF4F5F4F4F4075858585858585858585807F4F4F4F5DEBC515151525858 0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
58991BF5F5F2DDB6585858585858585858585858B6DDF3F5F51B995152585858 0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
5892B51909B592585858585858585858585858585892B509DDB5925858585858 0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
58720909ECEB58585858585858585858585858585858F8EC0909725858585858 0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
58F78DAEED5858585858585858585858585858585858581CAE8D925858580000 0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
0000000000000000000000000000000000000000000000000000000000000000 FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
0000000000000000000000000000000000000000000000000000000000000000 FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
0000000000000000000000000000000000000000000000000000000000000000 003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
000000000000000000000000000000000000000000000000000000000000} C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
OldCreateOrder = False OldCreateOrder = False
Position = poScreenCenter Position = poScreenCenter
OnShow = FormShow OnShow = FormShow
@@ -90,7 +90,7 @@ object Form2: TForm2
TextHeight = 13 TextHeight = 13
object Race: TRadioGroup object Race: TRadioGroup
Left = 8 Left = 8
Top = 52 Top = 48
Width = 185 Width = 185
Height = 401 Height = 401
Caption = 'Race' Caption = 'Race'
@@ -114,14 +114,15 @@ object Form2: TForm2
'Battle-Finch' 'Battle-Finch'
'Double Wookiee' 'Double Wookiee'
'Skraeling' 'Skraeling'
'Demicanadian') 'Demicanadian'
'Land Squid')
TabOrder = 0 TabOrder = 0
end end
object Klass: TRadioGroup object Klass: TRadioGroup
Left = 200 Left = 200
Top = 52 Top = 48
Width = 185 Width = 185
Height = 345 Height = 365
Caption = 'Class' Caption = 'Class'
Items.Strings = ( Items.Strings = (
'Ur-Paladin' 'Ur-Paladin'
@@ -140,14 +141,15 @@ object Form2: TForm2
'Tickle-Mimic' 'Tickle-Mimic'
'Slow Poisoner' 'Slow Poisoner'
'Bastard Lunatic' 'Bastard Lunatic'
'Lowling') 'Lowling'
'Birdrider')
TabOrder = 1 TabOrder = 1
end end
object GroupBox1: TGroupBox object GroupBox1: TGroupBox
Left = 392 Left = 392
Top = 52 Top = 48
Width = 109 Width = 109
Height = 345 Height = 365
Caption = 'Stats' Caption = 'Stats'
TabOrder = 2 TabOrder = 2
object Label3: TLabel object Label3: TLabel
@@ -255,7 +257,7 @@ object Form2: TForm2
end end
object Reroll: TButton object Reroll: TButton
Left = 18 Left = 18
Top = 264 Top = 284
Width = 75 Width = 75
Height = 25 Height = 25
Caption = 'Roll' Caption = 'Roll'
@@ -274,7 +276,7 @@ object Form2: TForm2
end end
object Unroll: TButton object Unroll: TButton
Left = 18 Left = 18
Top = 296 Top = 316
Width = 75 Width = 75
Height = 25 Height = 25
Caption = 'Unroll' Caption = 'Unroll'
@@ -284,8 +286,8 @@ object Form2: TForm2
end end
end end
object Sold: TButton object Sold: TButton
Left = 330 Left = 342
Top = 416 Top = 424
Width = 75 Width = 75
Height = 25 Height = 25
Caption = 'Sold!' Caption = 'Sold!'
@@ -293,48 +295,9 @@ object Form2: TForm2
TabOrder = 3 TabOrder = 3
OnClick = SoldClick OnClick = SoldClick
end end
object GroupBox2: TGroupBox
Left = 424
Top = 4
Width = 185
Height = 77
Caption = 'Game Style'
TabOrder = 4
Visible = False
object Label9: TLabel
Left = 20
Top = 56
Width = 30
Height = 13
Caption = 'Action'
end
object Label10: TLabel
Left = 120
Top = 56
Width = 39
Height = 13
Caption = 'Strategy'
end
object GameStyle: TTrackBar
Left = 24
Top = 24
Width = 126
Height = 33
Max = 5
Min = 1
Orientation = trHorizontal
Frequency = 1
Position = 3
SelEnd = 0
SelStart = 0
TabOrder = 0
TickMarks = tmBottomRight
TickStyle = tsAuto
end
end
object Name: TLabeledEdit object Name: TLabeledEdit
Left = 8 Left = 8
Top = 24 Top = 20
Width = 185 Width = 185
Height = 21 Height = 21
EditLabel.Width = 28 EditLabel.Width = 28
@@ -342,53 +305,91 @@ object Form2: TForm2
EditLabel.Caption = 'Name' EditLabel.Caption = 'Name'
LabelPosition = lpAbove LabelPosition = lpAbove
LabelSpacing = 3 LabelSpacing = 3
TabOrder = 5 MaxLength = 30
TabOrder = 4
Text = 'Grumdrig' Text = 'Grumdrig'
end end
object OldRolls: TListBox object OldRolls: TListBox
Left = 396 Left = 396
Top = 232 Top = 228
Width = 21 Width = 21
Height = 13 Height = 13
ItemHeight = 13 ItemHeight = 13
TabOrder = 6 TabOrder = 5
Visible = False Visible = False
end end
object Button2: TButton object Button2: TButton
Left = 414 Left = 426
Top = 416 Top = 424
Width = 75 Width = 75
Height = 25 Height = 25
Caption = 'Cancel' Caption = 'Cancel'
ModalResult = 2 ModalResult = 2
TabOrder = 7 TabOrder = 6
end end
object Online: TCheckBox object Account: TLabeledEdit
Left = 204 Left = 200
Top = 24 Top = 20
Width = 97 Width = 185
Height = 17 Height = 21
Caption = 'Play online' EditLabel.Width = 40
Checked = True EditLabel.Height = 13
State = cbChecked 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 TabOrder = 8
Visible = False
end end
object Server: TNMHTTP object Server: TNMHTTP
Port = 0 Port = 0
ReportLevel = 0 ReportLevel = 0
Body = 'Default.htm' Body = 'Default.htm'
Header = 'Head.txt' Header = 'Head.txt'
HeaderInfo.Cookie = 'yumyum' HeaderInfo.Referer = 'PQ6.1'
HeaderInfo.Password = 'chickens'
InputFileMode = False InputFileMode = False
OutputFileMode = False OutputFileMode = False
OnAboutToSend = ServerAboutToSend
OnSuccess = ServerSuccess OnSuccess = ServerSuccess
OnFailure = ServerFailure
ProxyPort = 0 ProxyPort = 0
Left = 332 Left = 332
Top = 312 Top = 312
end end
object PoorCodeDesign: TNMURL object PoorCodeDesign: TNMURL
Left = 336 Left = 336
Top = 272 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
end end
+102 -32
View File
@@ -1,13 +1,14 @@
unit NewGuy; unit NewGuy;
{ copyright (c)2002 Eric Fredricksen all rights reserved }
interface interface
uses uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Psock, NMHttp, NMURL; Dialogs, StdCtrls, ExtCtrls, ComCtrls, Psock, NMHttp, NMURL, AppEvnts;
type type
TForm2 = class(TForm) TNewGuyForm = class(TForm)
Race: TRadioGroup; Race: TRadioGroup;
Klass: TRadioGroup; Klass: TRadioGroup;
Label2: TLabel; Label2: TLabel;
@@ -28,42 +29,48 @@ type
Total: TPanel; Total: TPanel;
Sold: TButton; Sold: TButton;
Unroll: TButton; Unroll: TButton;
GroupBox2: TGroupBox;
GameStyle: TTrackBar;
Label9: TLabel;
Label10: TLabel;
Name: TLabeledEdit; Name: TLabeledEdit;
OldRolls: TListBox; OldRolls: TListBox;
Button2: TButton; Button2: TButton;
Server: TNMHTTP; Server: TNMHTTP;
Online: TCheckBox;
PoorCodeDesign: TNMURL; PoorCodeDesign: TNMURL;
Account: TLabeledEdit;
Password: TLabeledEdit;
ApplicationEvents1: TApplicationEvents;
GuildGet: TNMHTTP;
procedure RerollClick(Sender: TObject); procedure RerollClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure UnrollClick(Sender: TObject); procedure UnrollClick(Sender: TObject);
procedure ServerSuccess(Cmd: CmdType); procedure ServerSuccess(Cmd: CmdType);
procedure SoldClick(Sender: TObject); 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 private
procedure RollEm; procedure RollEm;
function GetAccount: String;
function GetPassword: String;
public public
procedure ReportSuccess(Cmd: CmdType); procedure BragSuccess(Cmd: CmdType);
function Go: Boolean;
end; end;
var var
Form2: TForm2; NewGuyForm: TNewGuyForm;
function UrlEncode(s: string): string; function UrlEncode(s: string): string;
implementation implementation
uses Main; uses Main, SelServ;
{$R *.dfm} {$R *.dfm}
function UrlEncode(s: string): string; function UrlEncode(s: string): string;
begin begin
Form2.PoorCodeDesign.InputString := s; NewGuyForm.PoorCodeDesign.InputString := s;
Result := Form2.PoorCodeDesign.Encode; Result := NewGuyForm.PoorCodeDesign.Encode;
end; end;
procedure Roll(stat: TPanel); procedure Roll(stat: TPanel);
@@ -85,7 +92,7 @@ begin
Result := Result / d; Result := Result / d;
end; end;
procedure TForm2.RollEm; procedure TNewGuyForm.RollEm;
begin begin
ReRoll.Tag := RandSeed; ReRoll.Tag := RandSeed;
Roll(STR); Roll(STR);
@@ -103,25 +110,37 @@ begin
else Total.Color := clWhite; else Total.Color := clWhite;
end; end;
procedure TForm2.RerollClick(Sender: TObject); procedure TNewGuyForm.RerollClick(Sender: TObject);
begin begin
OldRolls.Items.Insert(0, IntToStr(ReRoll.Tag)); OldRolls.Items.Insert(0, IntToStr(ReRoll.Tag));
Unroll.Enabled := true; Unroll.Enabled := true;
RollEm; RollEm;
end; end;
procedure TForm2.FormShow(Sender: TObject); function TNewGuyForm.Go: Boolean;
begin begin
Randomize; Tag := 1;
RollEm; Result := mrOk = ShowModal;
with Race do
ItemIndex := Random(Items.Count);
with Klass do
ItemIndex := Random(Items.Count);
Name.SetFocus;
end; end;
procedure TForm2.UnrollClick(Sender: TObject); 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 begin
RandSeed := StrToInt(OldRolls.Items[0]); RandSeed := StrToInt(OldRolls.Items[0]);
OldRolls.Items.Delete(0); OldRolls.Items.Delete(0);
@@ -129,11 +148,12 @@ begin
RollEm; RollEm;
end; end;
procedure TForm2.ServerSuccess(Cmd: CmdType); procedure TNewGuyForm.ServerSuccess(Cmd: CmdType);
begin begin
if (LowerCase(Split(Server.Body,0)) = 'ok') then begin if (LowerCase(Split(Server.Body,0)) = 'ok') then begin
Form1.Traits.Hint := Split(Server.Body,1); MainForm.SetPasskey(Split(Server.Body,1));
Form1.Traits.Tag := StrToInt(Form1.Traits.Hint); MainForm.SetLogin(GetAccount);
MainForm.SetPassword(GetPassword);
Server.OnSuccess := nil; Server.OnSuccess := nil;
Server.OnFailure := nil; Server.OnFailure := nil;
ModalResult := mrOk; ModalResult := mrOk;
@@ -142,20 +162,43 @@ begin
end; end;
end; end;
procedure TForm2.ReportSuccess(Cmd: CmdType); procedure TNewGuyForm.BragSuccess(Cmd: CmdType);
begin begin
ShowMessage(Server.Body); if (LowerCase(Split(Server.Body,0)) = 'report') then
ShowMessage(Split(Server.Body,1));
end; end;
procedure TForm2.SoldClick(Sender: TObject); function TNewGuyForm.GetAccount: String;
begin begin
if not Online.Checked 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 then ModalResult := mrOk
else begin else begin
try try
Screen.Cursor := crHourglass; Screen.Cursor := crHourglass;
try try
Server.Get('http://www.progressquest.com/hi.php?cmd=create&name=' + UrlEncode(Name.Text) + RevString); 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 except
on ESockError do begin on ESockError do begin
ShowMessage('Error connecting to server'); ShowMessage('Error connecting to server');
@@ -168,4 +211,31 @@ begin
end; 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. end.
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

BIN
View File
Binary file not shown.
View File
+231
View File
@@ -0,0 +1,231 @@
object ServerSelectForm: TServerSelectForm
Left = 279
Top = 201
Width = 490
Height = 381
Caption = 'Progress Quest - Select Realm'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000000000000A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
CC00003300000033330000336600003399000033CC000033FF00006600000066
330000666600006699000066CC000066FF000099000000993300009966000099
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
CC003300FF00333300003333330033336600333399003333CC003333FF003366
00003366330033666600336699003366CC003366FF0033990000339933003399
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
330066006600660099006600CC006600FF006633000066333300663366006633
99006633CC006633FF00666600006666330066666600666699006666CC006699
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
CC009999000099339900990099009900CC009900000099333300990066009933
CC009900FF00996600009966330099336600996699009966CC009933FF009999
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
OldCreateOrder = False
Position = poScreenCenter
DesignSize = (
482
354)
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 8
Top = 8
Width = 31
Height = 13
Caption = 'Server'
end
object Label2: TLabel
Left = 172
Top = 8
Width = 53
Height = 13
Caption = 'Description'
end
object Servers: TListBox
Left = 8
Top = 24
Width = 157
Height = 277
Anchors = [akLeft, akTop, akBottom]
ItemHeight = 13
TabOrder = 0
OnClick = ServersClick
OnDblClick = ServersDblClick
end
object Panel1: TPanel
Left = 172
Top = 24
Width = 302
Height = 277
Anchors = [akLeft, akTop, akRight, akBottom]
BevelOuter = bvLowered
BorderWidth = 4
Caption = 'Panel1'
TabOrder = 1
object Desc: TRichEdit
Left = 5
Top = 5
Width = 292
Height = 267
Align = alClient
BevelEdges = []
BevelInner = bvNone
BevelOuter = bvNone
BevelKind = bkTile
BorderStyle = bsNone
Color = clBtnFace
Ctl3D = True
ParentCtl3D = False
ReadOnly = True
TabOrder = 0
WantTabs = True
WantReturns = False
end
end
object Select: TButton
Left = 313
Top = 320
Width = 75
Height = 25
Anchors = [akRight, akBottom]
Caption = '&Select'
Default = True
Enabled = False
TabOrder = 2
OnClick = SelectClick
end
object Button2: TButton
Left = 397
Top = 320
Width = 75
Height = 25
Anchors = [akRight, akBottom]
Caption = '&Cancel'
ModalResult = 2
TabOrder = 3
end
object Descs: TListBox
Left = 24
Top = 100
Width = 121
Height = 33
ItemHeight = 13
TabOrder = 4
Visible = False
end
object Hosts: TListBox
Left = 24
Top = 144
Width = 121
Height = 33
ItemHeight = 13
TabOrder = 5
Visible = False
end
object Options: TListBox
Left = 24
Top = 56
Width = 121
Height = 33
ItemHeight = 13
TabOrder = 6
Visible = False
end
object AccessCode: TLabeledEdit
Left = 8
Top = 320
Width = 157
Height = 21
Anchors = [akLeft, akBottom]
EditLabel.Width = 63
EditLabel.Height = 13
EditLabel.Caption = 'Access Code'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 7
Visible = False
OnChange = AccessCodeChange
end
object ServerLoader: TNMHTTP
Port = 0
ReportLevel = 0
Body = 'Default.htm'
Header = 'Head.txt'
HeaderInfo.Cookie = 'yumyum'
HeaderInfo.Password = 'chickens'
InputFileMode = False
OutputFileMode = False
OnSuccess = ServerLoaderSuccess
ProxyPort = 0
Left = 220
Top = 152
end
object Timer1: TTimer
Enabled = False
Interval = 10
OnTimer = Timer1Timer
Left = 116
Top = 4
end
end
+183
View File
@@ -0,0 +1,183 @@
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.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
File diff suppressed because it is too large Load Diff
-167
View File
@@ -1,167 +0,0 @@
unit NewGuy;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Psock, NMHttp, NMURL;
type
TForm2 = 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;
GroupBox2: TGroupBox;
GameStyle: TTrackBar;
Label9: TLabel;
Label10: TLabel;
Name: TLabeledEdit;
OldRolls: TListBox;
Button2: TButton;
Server: TNMHTTP;
Online: TCheckBox;
PoorCodeDesign: TNMURL;
procedure RerollClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure UnrollClick(Sender: TObject);
procedure ServerSuccess(Cmd: CmdType);
procedure SoldClick(Sender: TObject);
private
procedure RollEm;
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
function UrlEncode(s: string): string;
implementation
uses Main;
{$R *.dfm}
function UrlEncode(s: string): string;
begin
Form2.PoorCodeDesign.InputString := s;
Result := Form2.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 TForm2.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 TForm2.RerollClick(Sender: TObject);
begin
OldRolls.Items.Insert(0, IntToStr(ReRoll.Tag));
Unroll.Enabled := true;
RollEm;
end;
procedure TForm2.FormShow(Sender: TObject);
begin
Randomize;
RollEm;
with Race do
ItemIndex := Random(Items.Count);
with Klass do
ItemIndex := Random(Items.Count);
Name.SetFocus;
end;
procedure TForm2.UnrollClick(Sender: TObject);
begin
RandSeed := StrToInt(OldRolls.Items[0]);
OldRolls.Items.Delete(0);
Unroll.Enabled := OldRolls.Items.Count > 0;
RollEm;
end;
procedure TForm2.ServerSuccess(Cmd: CmdType);
begin
if (LowerCase(Split(Server.Body,0)) = 'ok') then begin
Form1.Traits.Hint := Split(Server.Body,1);
Form1.Traits.Tag := StrToInt(Form1.Traits.Hint);
Server.OnSuccess := nil;
Server.OnFailure := nil;
ModalResult := mrOk;
end else begin
ShowMessage(Split(Server.Body,1));
end;
end;
procedure TForm2.SoldClick(Sender: TObject);
begin
if not Online.Checked
then ModalResult := mrOk
else begin
try
Screen.Cursor := crHourglass;
try
Server.Get('http://progressquest.name2host.com/hi.php?cmd=create&name=' + UrlEncode(Name.Text));
except
on ESockError do begin
ShowMessage('Error connecting to server');
Server.Abort;
end;
end;
finally
Screen.Cursor := crDefault;
end;
end;
end;
end.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
-682
View File
@@ -1,682 +0,0 @@
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, ImgList;
type
TForm1 = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Traits: TListView;
Equips: TListView;
Panel3: TPanel;
Label3: TLabel;
QuestBar: TProgressBar;
Stats: TListView;
Label2: TLabel;
PlotBar: TProgressBar;
Plots: TListView;
Quests: TListView;
Panel2: TPanel;
Label4: TLabel;
Spells: TListView;
Label5: TLabel;
Inventory: TListView;
Panel4: TPanel;
Kill: TStatusBar;
Label6: TLabel;
ExpBar: TProgressBar;
KillBar: TProgressBar;
Timer1: TTimer;
GoButton: TButton;
EncumBar: TProgressBar;
Label7: TLabel;
Button1: TButton;
ImageList1: TImageList;
Button2: TButton;
procedure GoButtonClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
procedure Task(caption: String; msec: Integer);
procedure Dequeue;
procedure Q(s: string);
function TaskDone: Boolean;
procedure CompleteQuest;
procedure M(level: Integer; name, spoor: String);
procedure CompleteAct;
procedure RollCharacter;
procedure S(name: String);
procedure WinEquip;
procedure WinSpell;
procedure WinStat;
procedure WinItem;
procedure Aa(var list: TStrings; item: String);
public
procedure Put(list: TListView; key: String; value: String); overload;
procedure Put(list: TListView; pos: Integer; value: String); overload;
procedure Put(list: TListView; key: String; value: Integer); overload;
procedure Add(list: TListView; key: String; value: Integer); overload;
function Get(list: TListView; key: String): String; overload;
function Get(list: TListView; index: Integer): String; overload;
function GetI(list: TListView; key: String): Integer; overload;
function GetI(list: TListView; index: Integer): Integer; overload;
function Sum(list: TListView): Integer;
end;
var
Form1: TForm1;
implementation
uses Unit2, Math;
{$R *.dfm}
const
MonsterMax = 16;
var
fMonsters: array[1..MonsterMax] of TStrings;
fWeapons, fOffenseAttrib, fArmors, fDefenseAttrib, fShields, fSpellList: TStrings;
fTask: String;
fQuest: String;
fQueue: TStrings;
procedure TForm1.Q(s: string);
begin
if fQueue = nil then fQueue := TStringList.Create;
fQueue.Add(s);
Dequeue;
end;
function TForm1.TaskDone: Boolean;
begin
with KillBar do
Result := Position >= Max;
end;
function Odds(chance, outof: Integer): Boolean;
begin
Result := Random(outof) < chance;
end;
function RandSign(): Integer;
begin
Result := Random(2) * 2 - 1;
end;
function Pick(s: TStrings): String;
begin
Result := s[Random(s.Count)];
end;
function PickLow(s: TStrings): String;
begin
Result := s[Min(Random(s.Count),Random(s.Count))];
end;
function Ends(s,e: String): Boolean;
begin
Result := Copy(s,1+Length(s)-Length(e),Length(e)) = e;
end;
function Plural(s: String): String;
begin
if Ends(s,'y')
then Result := Copy(s,1,Length(s)-1) + 'ies'
else if Ends(s,'ch')
then Result := s + 'es'
else if Ends(s,'f')
then Result := Copy(s,1,Length(s)-1) + 'ves'
else Result := s + 's';
end;
function Split(s: String; field: Integer): String;
var
p: Integer;
begin
while field > 0 do begin
p := Pos('|',s);
s := Copy(s,p+1,10000);
Dec(field);
end;
if Pos('|',s) > 0
then Result := Copy(s,1,Pos('|',s)-1)
else Result := s;
end;
function MonsterTask(var level: Integer): String;
var
qty, lev, i: Integer;
begin
lev := level;
for i := 1 to level do begin
if Odds(2,3) then
Inc(lev, RandSign());
if Odds(2,5) then
Inc(level, RandSign());
end;
if lev < 1 then lev := 1;
if lev > MonsterMax then lev := MonsterMax;
if level < 1 then level := 1;
fTask := Pick(fMonsters[lev]);
Result := Split(fTask,0);
fTask := 'kill|' + fTask;
qty := 1;
case level-lev of
-3: Result := 'Fœtal ' + Result;
-2: Result := 'Very Sick ' + Result;
-1: Result := 'Lesser ' + Result;
0: ; // that's fine
1: Result := 'Greater ' + Result;
2: Result := 'War ' + Result;
3: Result := 'Über ' + Result;
else
if lev = 2 * level
then Result := 'Half ' + Result
else if lev * 2 = level
then Result := 'Double ' + Result
else begin
if lev > level then begin
lev := lev div 2;
Result := 'Leper ' + Result;
end;
qty := (level + (lev div 2)) div 2;
if qty < 1 then qty := 1;
level := level * qty;
end;
end;
if qty = 1 then begin
if Pos(Result[1], 'AEIOUaeiou') > 0
then Result := 'an ' + Result
else Result := 'a ' + Result;
end else begin
Result := IntToStr(qty) + ' ' + Plural(Result);
end;
end;
procedure TForm1.Dequeue;
var
s, a: String;
n, l: Integer;
begin
while TaskDone do begin
if Split(fTask,0) = 'kill' then begin
if Split(fTask,3) <> '' then
Add(Inventory,Split(fTask,1) + ' ' + Split(fTask,3),1);
end else if fTask = 'sell' then with Inventory do begin
while Items.Count > 1 do begin
Tag := GetI(Inventory,Items.Count-1);
Items.Delete(Items.Count-1);
Add(Inventory,'Gold',Tag);
end;
end;
fTask := '';
if (fQueue.Count > 0) then begin
a := Split(fQueue[0],0);
n := StrToInt(Split(fQueue[0],1));
s := Split(fQueue[0],2);
if a = 'task' then begin
Task(s, n * 1000);
fQueue.Delete(0);
end else begin
raise Exception.Create('bah!');
end;
end else with Encumbar do if Position >= Max then begin
Task('Heading to market to sell loot',4 * 1000);
fTask := 'sell';
end else begin
n := GetI(Traits,'Level');
l := n;
s := MonsterTask(n);
n := (2 * Form2.GameStyle.Position * n * 1000) div l;
Task('Executing ' + s, n);
end;
end;
end;
function IndexOf(list: TListView; key: String): Integer;
var
i: Integer;
begin
for i := 0 to list.Items.Count-1 do if list.Items.Item[i].Caption = key then begin
Result := i;
Exit;
end;
with list.Items.Add do begin
Result := Index;
Caption := key;
end;
end;
procedure TForm1.Put(list: TListView; key, value: String);
begin
Put(list, IndexOf(list,key), value);
end;
procedure TForm1.Put(list: TListView; key: String; value: Integer);
begin
Put(list,key,IntToStr(value));
if key = 'CON' then
Encumbar.Max := value;
if list = Inventory then
Encumbar.Position := Sum(Inventory) - GetI(Inventory,'Gold');
end;
procedure TForm1.Put(list: TListView; pos: Integer; value: String);
begin
with list.Items.Item[pos] do begin
if SubItems.Count < 1
then SubItems.Add(value)
else SubItems[0] := value;
end;
end;
procedure TForm1.GoButtonClick(Sender: TObject);
begin
with ExpBar do begin
Position := 0;
Max := 20 * 60; // 20 minutes for level 1...
end;
Task('Loading...',1000);
Q('task|10|Experiencing an enigmatic and foreboding night vision');
Q('task|6|Much is revealed about that wise old bastard you''d underestimated');
Q('task|6|A shocking series of events leaves you alone and bewildered, but resolute');
Q('task|4|Drawing upon an unexpected reserve of determination, you set out on a long and dangerous journey');
Q('task|1|Loading...');
PlotBar.Max := 27;
with Plots.Items.Add do begin
Caption := 'Prologue';
StateIndex := 0;
end;
Timer1.Enabled := True;
end;
procedure TForm1.WinSpell;
begin
Add(Spells,PickLow(fSpellList),1);
end;
procedure TForm1.WinEquip;
var
pos, qual, plus, attrib, attribmax: Integer;
name: String;
stuff, better: TStrings;
begin
qual := Max(Random(GetI(Traits,'Level')),Random(1+GetI(Traits,'Level')));
pos := Random(Equips.Items.Count);
case pos of
0: begin stuff := fWeapons; better := fOffenseAttrib; end;
1: begin stuff := fShields; better := fDefenseAttrib; end;
else begin stuff := fArmors; better := fDefenseAttrib; end;
end;
if qual > stuff.Count - 1 then
qual := stuff.Count - 1;
name := stuff[qual];
plus := GetI(Traits,'Level') - qual;
attribmax := Min(plus, better.Count);
while (plus > 0) and (attribmax >= 0) and Odds(1,2) do begin
attrib := Random(attribmax+1);
name := better[attrib] + ' ' + name;
Dec(plus, attrib);
attribmax := Max(plus, attrib - 1);
end;
if plus <> 0 then name := IntToStr(plus) + ' ' + name;
if plus > 0 then name := '+' + name;
Put(Equips, pos, name);
end;
procedure TForm1.WinStat;
begin
Add(Stats, Stats.Items[Random(Stats.Items.Count)].Caption, 1);
end;
procedure TForm1.WinItem;
begin
Add(Inventory, 'Special Item', 1);
end;
procedure TForm1.CompleteQuest;
var
lev, i: Integer;
begin
with QuestBar do begin
Position := 0;
Max := 50 + Random(100);
end;
with Quests do begin
if Items.Count > 0 then begin
Items[Items.Count-1].StateIndex := 1;
case Random(4) of
0: WinSpell;
1: WinEquip;
2: WinStat;
3: WinItem;
end;
end;
lev := GetI(Traits,'Level');
for i := lev downto 1 do
if Odds(1,3) then
Inc(lev,RandSign());
if lev > MonsterMax then lev := MonsterMax - Random(2);
if lev < 1 then lev := 1;
with Items.Add do begin
fQuest := Pick(fMonsters[lev]);
Caption := 'Exterminate ' + Plural(Split(fQuest,0));
StateIndex := 0;
MakeVisible(false);
end;
Width := Width - 1; // trigger a column resize
end;
end;
function Rome(var n: Integer; dn: Integer; var s: String; ds: String): Boolean;
begin
Result := (n >= dn);
if Result then begin
n := n - dn;
s := s + ds;
end;
end;
function IntToRoman(n: Integer): String;
begin
while Rome(n, 1000, Result, 'M') do ;
Rome(n, 900, Result, 'CM');
Rome(n, 500, Result, 'D');
Rome(n, 400, Result, 'CD');
while Rome(n, 100, Result, 'C') do ;
Rome(n, 90, Result, 'XC');
Rome(n, 50, Result, 'L');
Rome(n, 40, Result, 'XL');
while Rome(n, 10, Result, 'X') do ;
Rome(n, 9, Result, 'IX');
Rome(n, 5, Result, 'V');
Rome(n, 4, Result, 'IV');
while Rome(n, 1, Result, 'I') do ;
end;
procedure TForm1.CompleteAct;
begin
PlotBar.Position := 0;
with Plots do begin
Items[Items.Count-1].StateIndex := 1;
PlotBar.Max := 60 * 60 * (10 + 5 * Items.Count); // 10 hrs + 5/act
Items.Add.Caption := 'Act ' + IntToRoman(Items.Count);
end;
end;
procedure TForm1.Task(caption: String; msec: Integer);
begin
Kill.SimpleText := caption + '...';
with KillBar do begin
Position := 0;
Max := msec;
end;
end;
procedure TForm1.Add(list: TListView; key: String; value: Integer);
begin
Put(list, key, value + GetI(list,key));
end;
function TForm1.Get(list: TListView; key: String): String;
begin
Result := Get(list, IndexOf(list,key));
end;
function TForm1.Get(list: TListView; index: Integer): String;
begin
with list.Items.Item[index] do begin
if SubItems.Count < 1
then Result := ''
else Result := SubItems[0];
end;
end;
function TForm1.GetI(list: TListView; key: String): Integer;
begin
Result := StrToIntDef(Get(list,key),0);
end;
function TForm1.GetI(list: TListView; index: Integer): Integer;
begin
Result := StrToIntDef(Get(list,index),0);
end;
function TForm1.Sum(list: TListView): Integer;
var
i: Integer;
begin
Result := 0;
for i := 0 to list.Items.Count - 1 do
Inc(Result, GetI(list,i));
end;
procedure PutLast(list: TListView; value: String);
begin
if list.Items.Count > 0 then
with list.Items.Item[list.Items.Count-1] do begin
if SubItems.Count < 1
then SubItems.Add(value)
else SubItems[0] := value;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
with KillBar do begin
if Position >= Max then begin
if Kill.SimpleText = 'Loading...' then Max := 0;
with ExpBar do if Position >= Max then begin
Position := 0;
Max := (Max * 3) div 2;
Add(Traits,'Level',1);
end else
Position := Position + KillBar.Max div 1000;
if Plots.Items.Count > 1 then
with QuestBar do if Position >= Max then begin
CompleteQuest;
end else if Quests.Items.Count > 0 then
Position := Position + KillBar.Max div 1000;
with PlotBar do if Position >= Max
then CompleteAct
else Position := Position + KillBar.Max div 1000;
Dequeue();
end else with KillBar do
Position := Position + Integer(Timer1.Interval);
end;
end;
procedure TForm1.M(level: Integer; name, spoor: String);
begin
fMonsters[level].Add(name + '|' + IntToStr(level) + '|' + spoor);
end;
procedure TForm1.S(name: String);
begin
fSpellList.Add(name);
end;
procedure TForm1.Aa(var list: TStrings; item: String);
begin
if list = nil then
list := TStringList.Create;
list.Add(item);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
QuestBar.Position := 0;
PlotBar.Position := 0;
KillBar.Position := 0;
ExpBar.Position := 0;
Encumbar.Position := 0;
fSpellList := TStringList.Create;
for i := 1 to MonsterMax do
fMonsters[i] := TStringList.Create;
M(1,'Wasp','Stinger');
M(1,'Rat','Whiskers');
M(1,'Bunny','Ear');
M(1,'Moth','Dust');
M(1,'Beagle','Collar');
M(1,'Midge','');
M(2,'Ostrich','Beak');
M(2,'Billy Goat','Beard');
M(2,'Bat','Wing');
M(2,'Koala','Heart');
M(3,'Wolf','Paw');
M(3,'Gnome','Skull');
M(3,'Kobold','Penis');
M(3,'Whippet','Collar');
M(4,'Orc','Shoe');
M(5,'Uruk','Boot');
M(6,'Tiger','Stripe');
M(7,'Lich','Mascara');
M(8,'Mummy','Chapeu');
M(9,'Vampire','Pancreas');
M(10,'Slime','Slime');
M(11,'Giant','Pants');
M(12,'Bugbear','Fang');
M(13,'Owlbear','Tuft');
M(14,'Basilisk','Gallstone');
M(15,'Cockatrice','Cock');
M(16,'Dragon','Scale');
S('Slime Finger');
S('Rabbit Punch');
S('Hastiness');
S('Good Mood');
S('Sadness');
S('Seasick');
S('Magnetic Orb');
S('Invisible Hands');
S('Revolting Cloud');
S('Aqueous Humor');
S('Spectral Miasma');
S('Zymarx''s Wild Illusion');
S('Clever Fellow I');
S('Clever Fellow II');
S('Nestor''s Sweeping Concept');
S('Holy Batpole');
S('Braingate');
S('Eye of the Troglodyte');
S('Curse Name');
S('Vitreous Humor');
S('Roger''s Grand Illusion');
S('Clomdor''s Plastic Window');
S('Covet');
S('Astral Miasma');
S('Spectral Clamshell');
S('Acrid Hands');
S('Animate Tunic');
S('Ursine Armor');
S('Holy Roller');
S('Curse Family');
S('Infinite Confusion');
Aa(fShields, 'Pie Plate');
Aa(fShields, 'Buckler');
Aa(fShields, 'Tower Shield');
Aa(fArmors, 'Lace');
Aa(fArmors, 'Macrame');
Aa(fArmors, 'Burlap');
Aa(fArmors, 'Canvas');
Aa(fArmors, 'Flannel');
Aa(fArmors, 'Chamois');
Aa(fArmors, 'Pleathers');
Aa(fArmors, 'Leathers');
Aa(fArmors, 'Chainmail');
Aa(fArmors, 'Platemail');
Aa(fWeapons, 'Stick');
Aa(fWeapons, 'Broken Bottle');
Aa(fWeapons, 'Shiv');
Aa(fWeapons, 'Bowie Knife');
Aa(fWeapons, 'Claw Hammer');
Aa(fWeapons, 'Andiron');
Aa(fWeapons, 'Hatchet');
Aa(fWeapons, 'Crowbar');
Aa(fWeapons, 'Longiron');
Aa(fWeapons, 'Zip Gun');
Aa(fWeapons, 'Broadsword');
Aa(fWeapons, 'Longsword');
Aa(fWeapons, 'Poleax');
Aa(fWeapons, 'Bandyclef');
Aa(fDefenseAttrib, 'Studded');
Aa(fDefenseAttrib, 'Banded');
Aa(fDefenseAttrib, 'Gilded');
Aa(fDefenseAttrib, 'Festooned');
Aa(fDefenseAttrib, 'Holy');
Aa(fDefenseAttrib, 'Cambric');
Aa(fDefenseAttrib, 'Fine');
Aa(fDefenseAttrib, 'Impressive');
Aa(fOffenseAttrib, 'Polished');
Aa(fOffenseAttrib, 'Pronged');
Aa(fOffenseAttrib, 'Steely');
Aa(fOffenseAttrib, 'Bloodied');
Aa(fOffenseAttrib, 'Dancing');
Aa(fOffenseAttrib, 'Invisible');
Aa(fOffenseAttrib, 'Vorpal');
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
KillBar.Position := KillBar.Max;
end;
procedure TForm1.RollCharacter;
begin
if mrOk = Form2.ShowModal then ;
with Form2 do begin
Put(Traits,'Name',Name.Text);
Put(Traits,'Race',Race.Items[Race.ItemIndex]);
Put(Traits,'Class',Klass.Items[Klass.ItemIndex]);
Put(Traits,'Level',1);
Put(Stats,'STR',STR.Tag);
Put(Stats,'CON',CON.Tag);
Put(Stats,'DEX',DEX.Tag);
Put(Stats,'INT',INT.Tag);
Put(Stats,'WIS',WIS.Tag);
Put(Stats,'CHA',CHA.Tag);
Put(Stats,'HP Max',Random(8) + CON.Tag div 6);
Put(Stats,'MP Max',Random(8) + INT.Tag div 6);
Put(Equips,'Weapon','Sharp Stick');
Put(Inventory,'Gold',0);
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
RollCharacter;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Add(Traits,'Level',1);
end;
end.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
-1781
View File
File diff suppressed because it is too large Load Diff
-40
View File
@@ -1,40 +0,0 @@
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm3 = class(TForm)
Panel1: TPanel;
Image1: TImage;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
OpenDialog1: TOpenDialog;
Button4: TButton;
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses ShellAPI, Main;
{$R *.dfm}
procedure TForm3.Button3Click(Sender: TObject);
begin
ShellExecute(Form1.Handle, 0, PChar('res://' + Application.ExeName + '/6'), 0, 0, SW_SHOWNORMAL);
end;
end.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
-25
View File
@@ -1,25 +0,0 @@
<?
if (isset($message)) {
mail("lesterbarion@yahoo.com",
"Ask!",
$message,
"From: asked@bigretard.com") or die("bad");
header("Location: ask.php?sent=1");
exit();
}
?>
<html>
<body>
<? if ($sent): ?>
Your message was sent, it seems.
<? endif; ?>
<form>
Q: <textarea name=message rows=5 cols=60></textarea>
<p>
<input type=submit value=Send>
</body>
</html>
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
-35
View File
@@ -1,35 +0,0 @@
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-LE"c:\appl\delphi6\Projects\Bpl"
-LN"c:\appl\delphi6\Projects\Bpl"
-87
View File
@@ -1,87 +0,0 @@
[FileVersion]
Version=6.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
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
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
-27
View File
@@ -1,27 +0,0 @@
program pq6;
uses
Forms,
Classes,
Main in 'Main.pas' {Form1},
NewGuy in 'NewGuy.pas' {Form2},
Config in 'Config.pas' {K},
Front in 'Front.pas' {Form3};
{$R *.res}
begin
Application.Initialize;
Application.Title := 'Progress Quest VI';
if ParamCount > 0 then begin
Form1.LoadGame(ParamStr(1));
end else begin
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
end;
Application.CreateForm(TK, K);
Application.Run;
end.
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

-20
View File
@@ -1,20 +0,0 @@
<html>
<body bgcolor=#ffffff>
<center>
<img src=pq.gif>
<font color=#404000>
<br>
<i>quamvis progressio</i>
<p>
<table border=0 width=100%><tr>
<td width=33% align=center>
<a href=pq6help.html>Information</a>
<td width=33% align=center>
<a href=pq6.zip>Download</a>
<td width=33% align=center>
<a href=mailto:efredricksen@yahoo.com>Comment</a>
</table>
</center>
<p>
BIN
View File
Binary file not shown.
-140
View File
@@ -1,140 +0,0 @@
<?
mysql_connect('localhost','eric','placenta') or die("Unable to connect");
mysql_select_db("eric")
or die("Unable to select db");
mysql_query("
CREATE TABLE IF NOT EXISTS pq6hi (
name char(30) NOT NULL,
passkey int(11) NOT NULL,
race char(30) default NULL,
class char(30) default NULL,
level int(11) default NULL,
plot char(30) default NULL,
item char(50) default NULL,
spell char(30) default NULL,
stat char(10) default NULL,
motto char(50) default NULL,
stamp timestamp default NULL )
")
or die(mysql_error());
if ($cmd == 'blah') {
//$result = mysql_query("UPDATE pq6hi SET plot='Backward ass', item='Nothing', spell='Nada'") or die(mysql_error());
exit();
}
if ($cmd == 'create') {
header('content-type: text/plain');
srand((double)microtime()*1000000);
$passkey = rand();
$name = mysql_escape_string($name);
$result = mysql_query("SELECT * FROM pq6hi WHERE name='$name' and level >= 1") or die(mysql_error());
if (mysql_num_rows($result) > 0) {
echo("taken|The character name you have selected is not available. Please choose a different name.");
} else {
mysql_query("DELETE FROM pq6hi WHERE name='$name'") or die(mysql_error());
mysql_query("INSERT INTO pq6hi(name,passkey) VALUES ('$name',$passkey)") or die(mysql_error());
echo("ok|$passkey");
}
exit();
}
else if ($cmd == 'brag') {
$name = mysql_escape_string($name);
$class = mysql_escape_string($class);
$race = mysql_escape_string($race);
$level = intval($level);
$plot = mysql_escape_string($plot);
$item = mysql_escape_string($item);
$spell = mysql_escape_string($spell);
$stat = mysql_escape_string($stat);
$motto = mysql_escape_string($motto);
$result = mysql_query("SELECT passkey FROM pq6hi WHERE name='$name'") or die(mysql_error());
$key = mysql_result($result,0,0);
if ($passkey == (~$level * 9831) ^ $key) {
mysql_query("UPDATE pq6hi SET class='$class', race='$race', level='$level', item='$item', spell='$spell', stat='$stat', plot='$plot', motto='$motto' WHERE name='$name'");
echo("ok");
} else {
echo("forbidden");
}
exit();
}
else if (isset($query) && $passwd == 'livers') {
$query = stripslashes($query);
$query2 = htmlspecialchars($query);
echo("<h3>$query2</h3>");
$result = mysql_query($query) or die(mysql_error());
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n";
}
print "</table>\n";
}
if (isset($cmd)) {
echo("'$cmd'?");
exit();
}
$result = mysql_query('SELECT name,race,class,level,plot,item,spell,stat,motto FROM pq6hi WHERE level >= 1 ORDER BY -level LIMIT 100');
?>
<html>
<head>
<title>Progress Quest Hall of Fame</title>
<script>
function okp(){
if(event.ctrlKey && event.keyCode == 13)
alert('From within the *game*, Einstein.');
}
</script>
</head>
<body bgcolor=#ffffff onKeyPress="okp()">
<center>
<img src=pq.gif>
<font color=#404000>
<br>
<i>quamvis progressio</i>
<p>
<h1>Hall of Fame</h1>
<style>
th { padding: 3px; border-style: solid; background-color: #ddddff; color: black; font: 8pt verdana; text-align: left; }
td { padding: 3px; border-style: solid; color: black; font: 8pt verdana; }
</style>
<table border=1>
<?
if ($admin == 'chickens') {
echo("<form><input type=text name=query size=80><input type=hidden name=passwd value=livers><input type=submit value=SQL></form>");
exit();
}
?>
<tr><th align=right>Rank<th>Name<th>Race<th>Class<th align=right>Level<th>Prime Stat<th>Plot Stage<th>Most Prized Item<th>Specialty<th>Motto (Ctrl-M)</tr>
<?
$n = 1;
while ($row = mysql_fetch_row ($result)) {
$name = htmlspecialchars($row[0]);
$race = htmlspecialchars($row[1]);
$class = htmlspecialchars($row[2]);
$level = $row[3];
$plot = htmlspecialchars($row[4]);
$item = htmlspecialchars($row[5]);
$spell = htmlspecialchars($row[6]);
$stat = htmlspecialchars($row[7]);
$motto = htmlspecialchars($row[8]);
echo("<tr><td align=right>$n.<td>$name<td>$race<td>$class<td align=right>$level<td>$stat<td>$plot<td>$item<td>$spell<td>$motto</tr>");
$n = $n + 1;
}
?>
</table>
<?
//mysql_close($db);
?>
<p align=left>
<a href=/pq6.html>&larr; Regress</a>
</body></html>
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 B

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

Binary file not shown.
Binary file not shown.
+20
View File
@@ -0,0 +1,20 @@
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.
+22 -15
View File
@@ -27,19 +27,19 @@ exhibit a discreet
and seemingly inexplicable interest in the boy. Strange indeed, as he would not reach and seemingly inexplicable interest in the boy. Strange indeed, as he would not reach
his krouchensterm for another harvest or more. his krouchensterm for another harvest or more.
And when Grumdrig's resiliant compatriot Paedri And when Grumdrig's resiliant compatriot Paedri
appears at Drumdrig's lochnotat with a Scrolstamp from the old Speldrig, appears at Grumdrig's lochnotat with a Scrolstamp from the old Speldrig,
a woozy foreboding feeling rises from his young gut... a woozy foreboding feeling rises from his young gut...
<h3> Introduction </h3> <h3> Introduction </h3>
<b>Progress Quest</b> is next generation computer role-playing game. <b>Progress Quest</b> is a next generation computer role-playing game.
Gamers who have played modern online role-playing games, Gamers who have played modern online role-playing games,
or almost any computer role-playing game, or almost any computer role-playing game,
or who have at any time installed or upgraded their operating system, will find themselves 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. incredibly comfortable with <b>Progress Quest</b>'s very familiar gameplay.
<b>Progress Quest</b> follows reverently in the footsteps of recent smash hit <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 online worlds, but is careful to streamline the more tedious aspects of those
offerings. Players will still have the satisfaction of building thier character 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, 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 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 without need of so much as a lunch break. Yet, gone are the tedious micromanagement
@@ -47,9 +47,12 @@ and other frustrations common to that older generation of RPG's.
<h3> User manual </h3> <h3> User manual </h3>
Even inexpereinced gamers will find <b>Progress Quest</b> Even inexperienced gamers will find <b>Progress Quest</b>
remarkably intutive and simple to play. Start the program remarkably intutive and simple to play. Start the program
and click the <code>New Game</code> button. You will presented with the character creation screen. 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 Select a name, race and class for the new character. Then, use the <code>Roll</code> button
until you are statisfied with the stats until you are statisfied with the stats
@@ -57,12 +60,13 @@ for your character. <i>Tip: You can use the <code>Unroll</code> button (a featur
to go back to any previous roll if you find that you've to go back to any previous roll if you find that you've
clicked too hastily.</i> clicked too hastily.</i>
<p> <p>
If "Play online" is checked, your character will share adventures with other <b>Progress 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 is reccommended only for Quest</b> characters in an online virtual world. Online play requires
users with always-on internet connectivity, though sophisiticated algorithms internet connectivity, though sophisiticated algorithms
keep the bandwidth usage to a minimum. You can compare your character against keep the bandwidth usage to a minimum. You can compare your character against
the top <b>Progress Quest</b> players by visiting the top <b>Progress Quest</b> players by visiting
<a href=http://progressquest.com/hi.php>http://progressquest.com/hi.php</a>. <a href=http://progressquest.com/realms.php>http://progressquest.com/realms.php</a>
(or hit &lt;Ctrl&gt;-&lt;B&gt; from within the game).
<p> <p>
Finally, hit the <code>Sold!</code> button to begin the game. The game will start immediately and 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 you can safely familiarize yourself with the game's single interface screen as the game progresses
@@ -75,15 +79,17 @@ your character with an endless series of victims, as well as exciting quests whi
log full to the brim at all times. log full to the brim at all times.
<p> <p>
TREASURE: Each slain creature yields a trophy, which can be sold in any town. TREASURE: Each slain creature yields a trophy, which can be sold in any town.
When the encumberance bar reaches maximum, your character automatically returns to the nearest 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). 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. 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 encumberance bar fills up <i>Tip: The amount your character can carry before his encumbrance bar fills up
increases as his STR stat improves.</i> increases as his STR stat improves.</i>
<p> <p>
QUESTS: When a quest is complete, your character is rewarded with one of: a) a special, valuable, treasure item, QUESTS: When a quest is complete, your character is rewarded with one of:
b) an improved weapon a) a special, valuable, treasure item,
or piece of armor, c) a boost in stats, or d) a new spell for his spellbook. The character is then assigned 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. a follow-up quest, which he immediately begins to make progress on.
<p> <p>
EXPERIENCE AND LEVELING UP: Experience represents your character's knowledge about the world EXPERIENCE AND LEVELING UP: Experience represents your character's knowledge about the world
@@ -99,7 +105,8 @@ accumulated for each successful murder.
<p> <p>
SAVING YOUR PROGRESS: Your game is saved whenever you quit, as well as each time your character levels 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> 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. 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> <h3> Game controls </h3>
BIN
View File
Binary file not shown.
+802
View File
@@ -0,0 +1,802 @@
object K: TK
Left = 335
Top = 119
Width = 572
Height = 567
Caption = 'K'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 8
Top = 116
Width = 28
Height = 13
Caption = 'Spells'
end
object Label2: TLabel
Left = 168
Top = 4
Width = 64
Height = 13
Caption = 'Offense Attrib'
end
object Label3: TLabel
Left = 280
Top = 228
Width = 70
Height = 13
Caption = 'Defense Atrtrib'
end
object Label4: TLabel
Left = 140
Top = 228
Width = 34
Height = 13
Caption = 'Shields'
end
object Label5: TLabel
Left = 8
Top = 228
Width = 27
Height = 13
Caption = 'Armor'
end
object Label6: TLabel
Left = 8
Top = 4
Width = 41
Height = 13
Caption = 'Weapon'
end
object Label7: TLabel
Left = 164
Top = 428
Width = 40
Height = 13
Caption = 'Speicals'
end
object Label8: TLabel
Left = 8
Top = 428
Width = 47
Height = 13
Caption = 'Item Attrib'
end
object Label9: TLabel
Left = 320
Top = 428
Width = 34
Height = 13
Caption = 'Item Of'
end
object Label10: TLabel
Left = 172
Top = 116
Width = 58
Height = 13
Caption = 'Boring Items'
end
object Label11: TLabel
Left = 12
Top = 344
Width = 125
Height = 13
Caption = 'Monsters (name level item)'
end
object Label12: TLabel
Left = 236
Top = 344
Width = 162
Height = 13
Caption = 'Monster mods (adjustment pattern)'
end
object Label13: TLabel
Left = 324
Top = 8
Width = 56
Height = 13
Caption = 'OffenseBad'
end
object Label14: TLabel
Left = 404
Top = 232
Width = 59
Height = 13
Caption = 'DefenseBad'
end
object Spells: TMemo
Left = 8
Top = 132
Width = 153
Height = 89
Lines.Strings = (
'Slime Finger'
'Rabbit Punch'
'Hastiness'
'Good Move'
'Sadness'
'Seasick'
'Gyp'
'Innoculate'
'Cone of Annoyance'
'Magnetic Orb'
'Invisible Hands'
'Revolting Cloud'
'Aqueous Humor'
'Spectral Miasma'
'Clever Fellow'
'Lockjaw'
'Hydrophobia'
'Big Sister'
'Cone of Paste'
'Mulligan'
'Nestor'#39's Bright Idea'
'Holy Batpole'
'Tumor (Benign)'
'Braingate'
'Nonplus'
'Animate Nightstand'
'Eye of the Troglodyte'
'Curse Name'
'Dropsy'
'Vitreous Humor'
'Roger'#39's Grand Illusion'
'Covet'
'Astral Miasma'
'Spectral Oyster'
'Acrid Hands'
'Angioplasty'
'Grognor'#39's Big Day Off'
'Tumor (Malignant)'
'Animate Tunic'
'Ursine Armor'
'Holy Roller'
'Tonsilectomy'
'Curse Family'
'Infinite Confusion')
TabOrder = 0
WordWrap = False
end
object OffenseAttrib: TMemo
Left = 168
Top = 20
Width = 141
Height = 89
Lines.Strings = (
'Polished|+1'
'Serrated|+1'
'Heavy|+1'
'Pronged|+2'
'Steely|+2'
'Vicious|+3'
'Venomed|+4'
'Stabbity|+4'
'Dancing|+5'
'Invisible|+6'
'Vorpal|+7')
TabOrder = 1
WordWrap = False
end
object DefenseAttrib: TMemo
Left = 280
Top = 244
Width = 113
Height = 89
Lines.Strings = (
'Studded|+1'
'Banded|+2'
'Gilded|+2'
'Festooned|+3'
'Holy|+4'
'Cambric|+1'
'Fine|+4'
'Impressive|+5'
'Custom|+3')
TabOrder = 2
WordWrap = False
end
object Shields: TMemo
Left = 140
Top = 244
Width = 133
Height = 89
Lines.Strings = (
'Parasol|0'
'Pie Plate|1'
'Garbage Can Lid|2'
'Buckler|3'
'Plexiglass|4'
'Fender|4'
'Round Shield|5'
'Carapace|5'
'Scutum|6'
'Propugner|6'
'Kite Shield|7'
'Pavise|8'
'Tower Shield|9'
'Baroque Shield|11'
'Aegis|12'
'Magnetic Field|18')
TabOrder = 3
WordWrap = False
end
object Armors: TMemo
Left = 8
Top = 244
Width = 129
Height = 89
Lines.Strings = (
'Lace|1'
'Macrame|2'
'Burlap|3'
'Canvas|4'
'Flannel|5'
'Chamois|6'
'Pleathers|7'
'Leathers|8'
'Bearskin|9'
'Ringmail|10'
'Scale Mail|12'
'Chainmail|14'
'Splint Mail|15'
'Platemail|16'
'ABS|17'
'Kevlar|18'
'Titanium|19'
'Mithril Mail|20'
'Diamond Mail|25'
'Plasma|30')
TabOrder = 4
WordWrap = False
end
object Weapons: TMemo
Left = 8
Top = 20
Width = 153
Height = 89
Lines.Strings = (
'Stick|0'
'Broken Bottle|1'
'Shiv|1'
'Sprig|1'
'Oxgoad|1'
'Eelspear|2'
'Bowie Knife|2'
'Claw Hammer|2'
'Handpeen|2'
'Andiron|3'
'Hatchet|3'
'Tomahawk|3'
'Hackbarm|3'
'Crowbar|4'
'Mace|4'
'Battleadze|4'
'Leafmace|5'
'Shortsword|5'
'Longiron|5'
'Poachard|5'
'Baselard|5'
'Whinyard|6'
'Blunderbuss|6'
'Longsword|6'
'Crankbow|6'
'Blibo|7'
'Broadsword|7'
'Morning Star|8'
'Pole-adze|8'
'Spontoon|8'
'Bastard Sword|9'
'Peen-arm|9'
'Culverin|10'
'Lance|10'
'Halberd|11'
'Poleax|12'
'Bandyclef|15')
TabOrder = 5
WordWrap = False
end
object Specials: TMemo
Left = 164
Top = 444
Width = 149
Height = 89
Lines.Strings = (
'Diadem'
'Festoon'
'Gemstone'
'Phial'
'Tiara'
'Scabbard'
'Arrow'
'Lens'
'Lamp'
'Hymnal'
'Fleece'
'Laurel'
'Brooch'
'Gimlet'
'Cobble'
'Albatross'
'Brazier'
'Bandolier'
'Tome'
'Garnet'
'Amethyst'
'Candelabra'
'Corset'
'Sphere'
'Sceptre'
'Ankh'
'Talisman'
'Orb'
'Gammel'
'Ornament'
'Brocade'
'Galoon'
'Bijou'
'Spangle'
'Gimcrack')
TabOrder = 6
WordWrap = False
end
object ItemAttrib: TMemo
Left = 8
Top = 444
Width = 149
Height = 89
Lines.Strings = (
'Golden'
'Gilded'
'Spectral'
'Astral'
'Garlanded'
'Precious'
'Crafted'
'Dual'
'Filigreed'
'Cruciate'
'Arcane'
'Blessed'
'Reverential'
'Lucky'
'Enchanted'
'Gleaming'
'Grandiose'
'Sacred'
'Legendary'
'Mythic'
'Crystalline'
'Austere'
'Ostentatious'
'One True'
'Proverbial'
'Fearsome '
'Deadly'
'Benevolent'
'Unearthly'
'Magnificent'
'Iron'
'Ormolu'
'Puissant')
TabOrder = 7
WordWrap = False
end
object ItemOfs: TMemo
Left = 320
Top = 444
Width = 149
Height = 89
Lines.Strings = (
'Foreboding'
'Foreshadowing'
'Nervousness'
'Happiness'
'Torpor'
'Danger'
'Craft'
'Silence'
'Invisibility'
'Rapidity'
'Pleasure'
'Practicality'
'Hurting'
'Joy'
'Petulance'
'Intrusion'
'Chaos'
'Suffering'
'Extroversion'
'Frenzy'
'Solitude'
'Punctuality'
'Efficiency'
'Comfort'
'Patience'
'Internment'
'Incarceration'
'Misapprehension'
'Loyalty'
'Envy'
'Acrimony'
'Worry'
'Fear'
'Awe'
'Guile'
'Prurience'
'Fortune'
'Perspicacity'
'Domination'
'Submission'
'Fealty'
'Hunger'
'Despair'
'Cruelty'
'Grob'
'Dignard'
'Ra'
'the Bone'
'Diamonique'
'Electrum'
'Hydragyrum')
TabOrder = 8
WordWrap = False
end
object BoringItems: TMemo
Left = 168
Top = 132
Width = 149
Height = 89
Lines.Strings = (
'nail'
'lunchpail'
'sock'
'I.O.U.'
'cookie'
'pint'
'toothpick'
'writ'
'newspaper'
'letter'
'plank'
'hat'
'egg'
'coin'
'needle'
'bucket'
'ladder'
'chicken'
'twig'
'dirtclod'
'counterpane'
'vest'
'teratoma'
'bunny'
'rock'
'pole'
'carrot'
'canoe'
'inkwell'
'hoe'
'bandage'
'trowel'
'towel'
'planter box'
'anvil'
'axle'
'tuppence'
'casket'
'nosegay'
'trinket')
TabOrder = 9
WordWrap = False
end
object Monsters: TMemo
Left = 8
Top = 360
Width = 221
Height = 61
Lines.Strings = (
'Anhkheg|6|chitin'
'Ant|0|antenna'
'Ape|4|ass'
'Baluchitherium|14|ear'
'Beholder|10|eyestalk'
'Black Pudding|10|saliva'
'Blink Dog|4|eyelid'
'Cub Scout|1|neckercheif'
'Girl Scout|2|cookie'
'Boy Scout|3|merit badge'
'Eagle Scout|4|merit badge'
'Bugbear|3|skin'
'Bugboar|3|tusk'
'Boogie|3|slime'
'Camel|2|hump'
'Carrion Crawler|3|egg'
'Catoblepas|6|neck'
'Centaur|4|rib'
'Centipede|0|leg'
'Cockatrice|5|wattle'
'Couatl|9|wing'
'Crayfish|0|antenna'
'Demogorgon|53|tentacle'
'Jubilex|17|gel'
'Manes|1|tooth'
'Orcus|27|wand'
'Succubus|6|bra'
'Vrock|8|neck'
'Hezrou|9|leg'
'Glabrezu|10|collar'
'Nalfeshnee|11|tusk'
'Marilith|7|arm'
'Balor|8|whip'
'Yeenoghu|25|flail'
'Asmodeus|52|leathers'
'Baalzebul|43|pants'
'Barbed Devil|8|flame'
'Bone Devil|9|hook'
'Dispater|30|matches'
'Erinyes|6|thong'
'Geryon|30|cornucopia'
'Malebranche|5|fork'
'Ice Devil|11|snow'
'Lemure|3|blob'
'Pit Fiend|13|seed'
'Anklyosaurus|9|tail'
'Brontosaurus|30|brain'
'Diplodocus|24|fin'
'Elasmosaurus|15|neck'
'Gorgosaurus|13|arm'
'Iguanadon|6|thumb'
'Megalosaurus|12|jaw'
'Monoclonius|8|horn'
'Pentasaurus|12|head'
'Stegosaurus|18|plate'
'Triceratops|16|horn'
'Tyranosauraus Rex|18|forearm'
'Djinn|7|lamp'
'Doppleganger|4|face'
'Black Dragon|7|*'
'Plaid Dragon|7|sporrin'
'Blue Dragon|9|*'
'Beige Dragon|9|*'
'Brass Dragon|7|pole'
'Tin Dragon|8|*'
'Bronze Dragon|9|medal'
'Chromatic Dragon|16|mineral water'
'Copper Dragon|8|loafer'
'Gold Dragon|8|filling'
'Green Dragon|8|*'
'Platinum Dragon|21|*'
'Red Dragon|10|cocktail'
'Silver Dragon|10|*'
'White Dragon|6|tooth'
'Dragon Turtle|13|shell'
'Dryad|2|acorn'
'Dwarf|1|drawers'
'Eel|2|sashimi'
'Efreet|10|cinder'
'Sand Elemental|8|glass'
'Bacon Elemental|10|bit'
'Porn Elemental|12|lube'
'Cheese Elemental|14|curd'
'Hair Elemental|16|follicle'
'Swamp Elf|1|lilypad'
'Brown Elf|1|tusk'
'Sea Elf|1|jerkin'
'Ettin|10|fur'
'Frog|0|leg'
'Violet Fungi|3|spore'
'Gargoyle|4|gravel'
'Gelatinous Cube|4|jam'
'Ghast|4|vomit'
'Ghost|10|*'
'Ghoul|2|muscle'
'Humidity Giant|12|drops'
'Beef Giant|11|steak'
'Quartz Giant|10|crystal'
'Porcelain Giant|9|fixture'
'Rice Giant|8|grain'
'Cloud Giant|12|condensation'
'Fire Giant|11|cigarettes'
'Frost Giant|10|snowman'
'Hill Giant|8|corpse'
'Stone Giant|9|hatchling'
'Storm Giant|15|barometer'
'Mini Giant|4|pompadour'
'Gnoll|2|collar'
'Gnome|1|hat'
'Goblin|1|ear'
'Grid Bug|1|carapace'
'Jellyrock|9|seedling'
'Beer Golem|15|foam'
'Oxygen Golem|17|platelet'
'Cardboard Golem|14|recycling'
'Rubber Golem|16|ball'
'Leather Golem|15|fob'
'Gorgon|8|testicle'
'Gray Ooze|3|gravy'
'Green Slime|2|sample'
'Griffon|7|nest'
'Banshee|7|larynx'
'Harpy|3|mascara'
'Hell Hound|5|tongue'
'Hippocampus|4|mane'
'Hippogriff|3|egg'
'Hobgoblin|1|patella'
'Homonculus|2|fluid'
'Hydra|8|gyrum'
'Imp|2|tail'
'Invisible Stalker|8|*'
'Iron Peasant|3|chaff'
'Jumpskin|3|shin'
'Kobold|1|penis'
'Leprechaun|1|wallet'
'Leucrotta|6|hoof'
'Lich|11|crown'
'Lizard Man|2|tail'
'Lurker|10|sac'
'Manticore|6|spike'
'Mastodon|12|tusk'
'Medusa|6|eye'
'Multicell|2|dendrite'
'Pirate|1|booty'
'Berserker|1|shirt'
'Caveman|2|club'
'Dervish|1|robe'
'Merman|1|trident'
'Mermaid|1|gills'
'Mimic|9|hinge'
'Mind Flayer|8|tentacle'
'Minotaur|6|map'
'Yellow Mold|1|spore'
'Morkoth|7|teeth'
'Mummy|6|gauze'
'Naga|9|rattle'
'Nebbish|1|belly'
'Neo-Otyugh|11|organ '
'Nixie|1|webbing'
'Nymph|3|hanky'
'Ochre Jelly|6|nucleus'
'Octopus|2|beak'
'Ogre|4|talon'
'Ogre Mage|5|apparel'
'Orc|1|snout'
'Otyugh|7|organ'
'Owlbear|5|feather'
'Pegasus|4|aileron'
'Peryton|4|antler'
'Piercer|3|tip'
'Pixie|1|dust'
'Man-o-war|3|tentacle'
'Purple Worm|15|dung'
'Quasit|3|tail'
'Rakshasa|7|pajamas'
'Rat|0|tail'
'Remorhaz|11|protrusion'
'Roc|18|wing'
'Roper|11|twine'
'Rot Grub|1|eggsac'
'Rust Monster|5|shavings'
'Satyr|5|hoof'
'Sea Hag|3|wart'
'Silkie|3|fur'
'Shadow|3|silhouette'
'Shambling Mound|10|mulch'
'Shedu|9|hoof'
'Shrieker|3|stalk'
'Skeleton|1|clavicle'
'Spectre|7|vestige'
'Sphinx|10|paw'
'Spider|0|web'
'Sprite|1|can'
'Stirge|1|proboscis'
'Stun Bear|5|tooth'
'Stun Worm|2|trode'
'Su-monster|5|tail'
'Sylph|3|thigh'
'Titan|20|sandal'
'Trapper|12|shag'
'Treant|10|acorn'
'Triton|3|scale'
'Troglodyte|2|tail'
'Troll|6|hide'
'Umber Hulk|8|claw'
'Unicorn|4|blood'
'Vampire|8|pancreas'
'Wight|4|lung'
'Will-o-the-Wisp|9|wisp'
'Wraith|5|finger'
'Wyvern|7|wing'
'Xorn|7|jaw'
'Yeti|4|fur'
'Zombie|2|forehead'
'Wasp|0|stinger'
'Rat|1|tail'
'Bunny|0|ear'
'Moth|0|dust'
'Beagle|0|collar'
'Midge|0|corpse'
'Ostrich|1|beak'
'Billy Goat|1|beard'
'Bat|1|wing'
'Koala|2|heart'
'Wolf|2|paw'
'Whippet|2|collar'
'Uruk|2|boot')
TabOrder = 10
WordWrap = False
end
object MonMods: TMemo
Left = 232
Top = 360
Width = 221
Height = 61
Lines.Strings = (
'-4 f'#339'tal *'
'-4 dying *'
'-3 crippled *'
'-3 baby *'
'-2 adolescent'
'-2 very sick *'
'-1 lesser *'
'-1 undernourished *'
'+1 greater *'
'+1 * Elder'
'+2 war *'
'+2 Battle-*'
'+3 Were-*'
'+3 undead *'
'+4 giant *'
'+4 * Rex')
TabOrder = 11
WordWrap = False
end
object OffenseBad: TMemo
Left = 316
Top = 20
Width = 141
Height = 89
Lines.Strings = (
'Dull|-2'
'Tarnished|-1'
'Rusty|-3'
'Padded|-5'
'Bent|-4'
'Mini|-4'
'Rubber|-6'
'Nerf|-7'
'Unbalanced|-2')
TabOrder = 12
WordWrap = False
end
object DefenseBad: TMemo
Left = 396
Top = 244
Width = 141
Height = 89
Lines.Strings = (
'Holey|-1'
'Patched|-1'
'Threadbare|-2'
'Faded|-1'
'Rusty|-3'
'Motheaten|-3'
'Mildewed|-2'
'Torn|-3'
'Dented|-3'
'Cursed|-5'
'Plastic|-4'
'Cracked|-4'
'Warped|-3'
'Corroded|-3')
TabOrder = 13
WordWrap = False
end
end
+53
View File
@@ -0,0 +1,53 @@
unit Config;
{ copyright (c)2002 Eric Fredricksen all rights reserved }
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TK = class(TForm)
Spells: TMemo;
Label1: TLabel;
OffenseAttrib: TMemo;
Label2: TLabel;
DefenseAttrib: TMemo;
Label3: TLabel;
Shields: TMemo;
Label4: TLabel;
Armors: TMemo;
Label5: TLabel;
Weapons: TMemo;
Label6: TLabel;
Specials: TMemo;
Label7: TLabel;
ItemAttrib: TMemo;
Label8: TLabel;
ItemOfs: TMemo;
Label9: TLabel;
BoringItems: TMemo;
Label10: TLabel;
Monsters: TMemo;
MonMods: TMemo;
Label11: TLabel;
Label12: TLabel;
OffenseBad: TMemo;
Label13: TLabel;
DefenseBad: TMemo;
Label14: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
K: TK;
implementation
{$R *.dfm}
end.
File diff suppressed because it is too large Load Diff
+51
View File
@@ -0,0 +1,51 @@
unit Front;
{ copyright (c)2002 Eric Fredricksen all rights reserved }
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TFrontForm = class(TForm)
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
Button4: TButton;
Label2: TLabel;
Button3: TButton;
Panel2: TPanel;
Logo: TImage;
Label3: TLabel;
HomeLink: TLabel;
Label1: TLabel;
procedure HomeLinkClick(Sender: TObject);
procedure LogoClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrontForm: TFrontForm;
implementation
uses ShellAPI, Main, Info;
{$R *.dfm}
procedure TFrontForm.HomeLinkClick(Sender: TObject);
begin
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', nil, '', SW_SHOW);
end;
procedure TFrontForm.LogoClick(Sender: TObject);
begin
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', nil, '', SW_SHOW);
end;
end.
+448
View File
@@ -0,0 +1,448 @@
{*************************************************************}
{ HTTPGet component for Delphi 32 }
{ Version: 1.94 }
{ E-Mail: info@utilmind.com }
{ WWW: http://www.utilmind.com }
{ Created: October 19, 1999 }
{ Modified: June 6, 2000 }
{ Legal: Copyright (c) 1999-2000, UtilMind Solutions }
{*************************************************************}
{ PROPERTIES: }
{ Agent: String - User Agent }
{ }
{* BinaryData: Boolean - This setting specifies which type }
{* of data will taken from the web. }
{* If you set this property TRUE then }
{* component will determinee the size }
{* of files *before* getting them from }
{* the web. }
{* If this property is FALSE then as we}
{* do not knows the file size the }
{* OnProgress event will doesn't work. }
{* Also please remember that is you set}
{* this property as TRUE you will not }
{* capable to get from the web ASCII }
{* data and ofter got OnError event. }
{ }
{ FileName: String - Path to local file to store the data }
{ taken from the web }
{ Password, UserName - set this properties if you trying to }
{ get data from password protected }
{ directories. }
{ Referer: String - Additional data about referer document }
{ URL: String - The url to file or document }
{ UseCache: Boolean - Get file from the Internet Explorer's }
{ cache if requested file is cached. }
{*************************************************************}
{ METHODS: }
{ GetFile - Get the file from the web specified in the URL }
{ property and store it to the file specified in }
{ the FileName property }
{ GetString - Get the data from web and return it as usual }
{ String. You can receive this string hooking }
{ the OnDoneString event. }
{ Abort - Stop the current session }
{*************************************************************}
{ EVENTS: }
{ OnDoneFile - Occurs when the file is downloaded }
{ OnDoneString - Occurs when the string is received }
{ OnError - Occurs when error happend }
{ OnProgress - Occurs at the receiving of the BINARY DATA }
{*************************************************************}
{ Please see demo program for more information. }
{*************************************************************}
{ IMPORTANT NOTE: }
{ This software is provided 'as-is', without any express or }
{ implied warranty. In no event will the author be held }
{ liable for any damages arising from the use of this }
{ software. }
{ Permission is granted to anyone to use this software for }
{ any purpose, including commercial applications, and to }
{ alter it and redistribute it freely, subject to the }
{ following restrictions: }
{ 1. The origin of this software must not be misrepresented, }
{ you must not claim that you wrote the original software. }
{ If you use this software in a product, an acknowledgment }
{ in the product documentation would be appreciated but is }
{ not required. }
{ 2. Altered source versions must be plainly marked as such, }
{ and must not be misrepresented as being the original }
{ software. }
{ 3. This notice may not be removed or altered from any }
{ source distribution. }
{*************************************************************}
unit HTTPGet;
interface
uses
Windows, Messages, SysUtils, Classes, WinInet;
type
TOnProgressEvent = procedure(Sender: TObject; TotalSize, Readed: Integer) of object;
TOnDoneFileEvent = procedure(Sender: TObject; FileName: String; FileSize: Integer) of object;
TOnDoneStringEvent = procedure(Sender: TObject; Result: String) of object;
THTTPGetThread = class(TThread)
private
FTAcceptTypes,
FTAgent,
FTURL,
FTFileName,
FTStringResult,
FTUserName,
FTPassword,
FTPostQuery,
FTReferer: String;
FTBinaryData,
FTUseCache: Boolean;
FTResult: Boolean;
FTFileSize: Integer;
FTToFile: Boolean;
BytesToRead, BytesReaded: DWord;
FTProgress: TOnProgressEvent;
procedure UpdateProgress;
protected
procedure Execute; override;
public
constructor Create(aAcceptTypes, aAgent, aURL, aFileName, aUserName, aPassword, aPostQuery, aReferer: String;
aBinaryData, aUseCache: Boolean; aProgress: TOnProgressEvent; aToFile: Boolean);
end;
THTTPGet = class(TComponent)
private
FAcceptTypes: String;
FAgent: String;
FBinaryData: Boolean;
FURL: String;
FUseCache: Boolean;
FFileName: String;
FUserName: String;
FPassword: String;
FPostQuery: String;
FReferer: String;
FWaitThread: Boolean;
FThread: THTTPGetThread;
FError: TNotifyEvent;
FResult: Boolean;
FProgress: TOnProgressEvent;
FDoneFile: TOnDoneFileEvent;
FDoneString: TOnDoneStringEvent;
procedure ThreadDone(Sender: TObject);
public
constructor Create(aOwner: TComponent); override;
destructor Destroy; override;
procedure GetFile;
procedure GetString;
procedure Abort;
published
property AcceptTypes: String read FAcceptTypes write FAcceptTypes;
property Agent: String read FAgent write FAgent;
property BinaryData: Boolean read FBinaryData write FBinaryData;
property URL: String read FURL write FURL;
property UseCache: Boolean read FUseCache write FUseCache;
property FileName: String read FFileName write FFileName;
property UserName: String read FUserName write FUserName;
property Password: String read FPassword write FPassword;
property PostQuery: String read FPostQuery write FPostQuery;
property Referer: String read FReferer write FReferer;
property WaitThread: Boolean read FWaitThread write FWaitThread;
property OnProgress: TOnProgressEvent read FProgress write FProgress;
property OnDoneFile: TOnDoneFileEvent read FDoneFile write FDoneFile;
property OnDoneString: TOnDoneStringEvent read FDoneString write FDoneString;
property OnError: TNotifyEvent read FError write FError;
end;
procedure Register;
implementation
// THTTPGetThread
constructor THTTPGetThread.Create(aAcceptTypes, aAgent, aURL, aFileName, aUserName, aPassword, aPostQuery, aReferer: String;
aBinaryData, aUseCache: Boolean; aProgress: TOnProgressEvent; aToFile: Boolean);
begin
FreeOnTerminate := True;
inherited Create(True);
FTAcceptTypes := aAcceptTypes;
FTAgent := aAgent;
FTURL := aURL;
FTFileName := aFileName;
FTUserName := aUserName;
FTPassword := aPassword;
FTPostQuery := aPostQuery;
FTReferer := aReferer;
FTProgress := aProgress;
FTBinaryData := aBinaryData;
FTUseCache := aUseCache;
FTToFile := aToFile;
Resume;
end;
procedure THTTPGetThread.UpdateProgress;
begin
FTProgress(Self, FTFileSize, BytesReaded);
end;
procedure THTTPGetThread.Execute;
var
hSession, hConnect, hRequest: hInternet;
HostName, FileName: String;
f: File;
Buf: Pointer;
dwBufLen, dwIndex: DWord;
Data: Array[0..$400] of Char;
TempStr: String;
RequestMethod: PChar;
InternetFlag: DWord;
AcceptType: LPStr;
procedure ParseURL(URL: String; var HostName, FileName: String);
procedure ReplaceChar(c1, c2: Char; var St: String);
var
p: Integer;
begin
while True do
begin
p := Pos(c1, St);
if p = 0 then Break
else St[p] := c2;
end;
end;
var
i: Integer;
begin
if Pos('http://', LowerCase(URL)) <> 0 then
System.Delete(URL, 1, 7);
i := Pos('/', URL);
HostName := Copy(URL, 1, i);
FileName := Copy(URL, i, Length(URL) - i + 1);
if (Length(HostName) > 0) and (HostName[Length(HostName)] = '/') then
SetLength(HostName, Length(HostName) - 1);
end;
procedure CloseHandles;
begin
InternetCloseHandle(hRequest);
InternetCloseHandle(hConnect);
InternetCloseHandle(hSession);
end;
begin
try
ParseURL(FTURL, HostName, FileName);
if Terminated then
begin
FTResult := False;
Exit;
end;
if FTAgent <> '' then
hSession := InternetOpen(PChar(FTAgent),
INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0)
else
hSession := InternetOpen(nil,
INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
hConnect := InternetConnect(hSession, PChar(HostName),
INTERNET_DEFAULT_HTTP_PORT, PChar(FTUserName), PChar(FTPassword), INTERNET_SERVICE_HTTP, 0, 0);
if FTPostQuery = '' then RequestMethod := 'GET'
else RequestMethod := 'POST';
if FTUseCache then InternetFlag := 0
else InternetFlag := INTERNET_FLAG_RELOAD;
AcceptType := PChar('Accept: ' + FTAcceptTypes);
hRequest := HttpOpenRequest(hConnect, RequestMethod, PChar(FileName), 'HTTP/1.0',
PChar(FTReferer), @AcceptType, InternetFlag, 0);
if FTPostQuery = '' then
HttpSendRequest(hRequest, nil, 0, nil, 0)
else
HttpSendRequest(hRequest, 'Content-Type: application/x-www-form-urlencoded', 47,
PChar(FTPostQuery), Length(FTPostQuery));
if Terminated then
begin
CloseHandles;
FTResult := False;
Exit;
end;
dwIndex := 0;
dwBufLen := 1024;
GetMem(Buf, dwBufLen);
FTResult := HttpQueryInfo(hRequest, HTTP_QUERY_CONTENT_LENGTH,
Buf, dwBufLen, dwIndex);
if Terminated then
begin
FreeMem(Buf);
CloseHandles;
FTResult := False;
Exit;
end;
if FTResult or not FTBinaryData then
begin
if FTResult then
FTFileSize := StrToInt(StrPas(Buf));
BytesReaded := 0;
if FTToFile then
begin
AssignFile(f, FTFileName);
Rewrite(f, 1);
end
else FTStringResult := '';
while True do
begin
if Terminated then
begin
if FTToFile then CloseFile(f);
FreeMem(Buf);
CloseHandles;
FTResult := False;
Exit;
end;
if not InternetReadFile(hRequest, @Data, SizeOf(Data), BytesToRead) then Break
else
if BytesToRead = 0 then Break
else
begin
if FTToFile then
BlockWrite(f, Data, BytesToRead)
else
begin
TempStr := Data;
SetLength(TempStr, BytesToRead);
FTStringResult := FTStringResult + TempStr;
end;
inc(BytesReaded, BytesToRead);
if Assigned(FTProgress) then
Synchronize(UpdateProgress);
end;
end;
if FTToFile then
FTResult := FTFileSize = Integer(BytesReaded)
else
begin
SetLength(FTStringResult, BytesReaded);
FTResult := BytesReaded <> 0;
end;
if FTToFile then CloseFile(f);
end;
FreeMem(Buf);
CloseHandles;
except
end;
end;
// HTTPGet
constructor THTTPGet.Create(aOwner: TComponent);
begin
inherited Create(aOwner);
FAcceptTypes := '*/*';
FAgent := 'UtilMind HTTPGet';
end;
destructor THTTPGet.Destroy;
begin
Abort;
inherited Destroy;
end;
procedure THTTPGet.GetFile;
var
Msg: TMsg;
begin
if not Assigned(FThread) then
begin
FThread := THTTPGetThread.Create(FAcceptTypes, FAgent, FURL, FFileName, FUserName, FPassword, FPostQuery, FReferer,
FBinaryData, FUseCache, FProgress, True);
FThread.OnTerminate := ThreadDone;
if FWaitThread then
while Assigned(FThread) do
while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end
end;
procedure THTTPGet.GetString;
var
Msg: TMsg;
begin
if not Assigned(FThread) then
begin
FThread := THTTPGetThread.Create(FAcceptTypes, FAgent, FURL, FFileName, FUserName, FPassword, FPostQuery, FReferer,
FBinaryData, FUseCache, FProgress, False);
FThread.OnTerminate := ThreadDone;
if FWaitThread then
while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end
end;
procedure THTTPGet.Abort;
begin
if Assigned(FThread) then
begin
FThread.Terminate;
FThread.FTResult := False;
end;
end;
procedure THTTPGet.ThreadDone(Sender: TObject);
begin
FResult := FThread.FTResult;
if FResult then
if FThread.FTToFile then
if Assigned(FDoneFile) then FDoneFile(Self, FThread.FTFileName, FThread.FTFileSize) else
else
if Assigned(FDoneString) then FDoneString(Self, FThread.FTStringResult) else
else
if Assigned(FError) then FError(Self);
FThread := nil;
end;
procedure Register;
begin
RegisterComponents('UtilMind', [THTTPGet]);
end;
end.
+101
View File
@@ -0,0 +1,101 @@
object Form4: TForm4
Left = 192
Top = 107
Width = 696
Height = 480
Caption = 'Progress Quest VI'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000000000000A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
CC00003300000033330000336600003399000033CC000033FF00006600000066
330000666600006699000066CC000066FF000099000000993300009966000099
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
CC003300FF00333300003333330033336600333399003333CC003333FF003366
00003366330033666600336699003366CC003366FF0033990000339933003399
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
330066006600660099006600CC006600FF006633000066333300663366006633
99006633CC006633FF00666600006666330066666600666699006666CC006699
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
CC009999000099339900990099009900CC009900000099333300990066009933
CC009900FF00996600009966330099336600996699009966CC009933FF009999
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF005852
5151515151515258585858585858585858585858585858585852515151515852
51514A4A4A515152585858585858585858585858585858585251514B4A4B5852
514B4A4A4A4B51515258585858585858585858585858585251514B4A4A4A5852
150F4A4A4A4A4B5151515152525251525252525252525151514A0F154A4B580B
0E0E0B4A4A4A4A4A5151515151515151515151515151514B4B0B0E0E0B512311
15220E514A4A4A4A4A4A4A4B4A4A4A4A4A4A4A4A4A4A4A4A4A0F22143D234313
22431151514A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A11432213435822
23296710294B4A4A44442244154422441544224444444A221012292322585858
58514443151D4B4A442215221522152215221522154B0E151544515252585858
5879294A43140D4A22150D0E2243100E1D0D2215220D14434A03525258585858
585852514A224A430E0E1443220D111543140E0E4344224A4A51515258585858
585858514B1514220E2243150D444444444322222214154B4B4B515258585858
585858585174151D4A434A4A15104422234A434A1D15742A4A4B515258585858
585858585222444B457422224B44224B222274454B4422524A4B515258585858
58585858510A4B4C3F4C44EA4A22224A6D444C3F4C4B0A4A4A51515258585858
585858580D15294B4523ECC8C44A4AE946EC23454B29150D4A51515858585858
58585858444A4A234AAEC8FCFCA7E9F9F946AE44234A4A435151525858585858
58585858232244224AEFA7FCFC62F9F9F946EF4A224422235151525858585858
585858584B434A110C4A8DA862F9F9F9698D4A0C114A43295151525858585858
5858585852222210514A8D46F9F9F962A78D4A51104322524B51525858585858
58585858524B0C034AEB46F9F9F962FCFCA7F84A030C4B4A4A51515258585858
5858585251514B4AED46F9F9F9E3A8FCFCFCA7ED4A4B4A4A4A4B515152585858
58585851514B4AED46F9F9F9E3F7F7E6FCFCFCA7ED4A4A4A4A4A4B5152585858
585852514B4AEB46F9F9F9E3ED525892E6FCFCFCA7EB4A4A4A4A4A4B51525858
585852514A6D46F9F9F9E3ED5858585892E6FCFCFCA76D4A4A4A4A4A51515858
5858514B14B5F047F9E3F7585858585858B5E6FCC8DDB5144A4A4A4A51515858
585852AE09F3F3BCE3B55858585858585858B5D0DDF3F309AE4A4B4B51515858
5858BCF4F5F4F4F4075858585858585858585807F4F4F4F5DEBC515151525858
58991BF5F5F2DDB6585858585858585858585858B6DDF3F5F51B995152585858
5892B51909B592585858585858585858585858585892B509DDB5925858585858
58720909ECEB58585858585858585858585858585858F8EC0909725858585858
58F78DAEED5858585858585858585858585858585858581CAE8D925858580000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000}
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object WebBrowser1: TWebBrowser
Left = 0
Top = 0
Width = 688
Height = 453
Align = alClient
TabOrder = 0
ControlData = {
4C0000001B470000D22E00000000000000000000000000000000000000000000
000000004C000000000000000000000001000000E0D057007335CF11AE690800
2B2E126208000000000000004C0000000114020000000000C000000000000046
8000000000000000000000000000000000000000000000000000000000000000
00000000000000000100000000000000000000000000000000000000}
end
end
+31
View File
@@ -0,0 +1,31 @@
unit Info;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw;
type
TForm4 = class(TForm)
WebBrowser1: TWebBrowser;
private
{ Private declarations }
public
procedure Go(url: String);
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Go(url: String);
begin
WebBrowser1.Navigate(url);
Show;
end;
end.
+166
View File
@@ -0,0 +1,166 @@
object LoginForm: TLoginForm
Left = 314
Top = 162
Width = 265
Height = 448
Caption = 'Progress Quest Login'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
PixelsPerInch = 96
TextHeight = 13
object GroupBox1: TGroupBox
Left = 12
Top = 176
Width = 237
Height = 69
Caption = 'New Users'
TabOrder = 0
object Label1: TLabel
Left = 2
Top = 15
Width = 233
Height = 18
Align = alTop
AutoSize = False
Caption = ' To sign up for a new account, visit'
Layout = tlBottom
end
object Label2: TLabel
Left = 2
Top = 33
Width = 233
Height = 25
Cursor = crHandPoint
Align = alTop
Alignment = taCenter
AutoSize = False
Caption = 'http://progressquest.com/user.php'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clActiveCaption
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold, fsUnderline]
ParentColor = False
ParentFont = False
Layout = tlCenter
OnClick = Label2Click
end
end
object Login: TButton
Left = 88
Top = 388
Width = 75
Height = 25
Caption = 'Login'
Default = True
Enabled = False
TabOrder = 1
OnClick = LoginClick
end
object Button1: TButton
Left = 172
Top = 388
Width = 75
Height = 25
Caption = 'Cancel'
ModalResult = 2
TabOrder = 2
end
object GroupBox2: TGroupBox
Left = 12
Top = 256
Width = 237
Height = 121
Caption = 'Proxy Settings'
TabOrder = 3
object Label3: TLabel
Left = 12
Top = 20
Width = 213
Height = 45
AutoSize = False
Caption =
'Most people can leave this blank, but if you use a proxy to conn' +
'ect to the Web, or wish to use a proxy to cheat, enter it here.'
WordWrap = True
end
object LabeledEdit1: TLabeledEdit
Left = 12
Top = 84
Width = 149
Height = 21
EditLabel.Width = 31
EditLabel.Height = 13
EditLabel.Caption = 'Server'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 0
end
object LabeledEdit2: TLabeledEdit
Left = 164
Top = 84
Width = 57
Height = 21
EditLabel.Width = 19
EditLabel.Height = 13
EditLabel.Caption = 'Port'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 1
end
end
object GroupBox3: TGroupBox
Left = 12
Top = 12
Width = 237
Height = 157
Caption = 'Account Info'
TabOrder = 4
object Label4: TLabel
Left = 8
Top = 20
Width = 221
Height = 45
AutoSize = False
Caption =
'Some realms are open to the public riffraff, but others may requ' +
'ire a valid account. You can enter default account information h' +
'ere.'
WordWrap = True
end
object Account: TLabeledEdit
Left = 8
Top = 84
Width = 221
Height = 21
EditLabel.Width = 40
EditLabel.Height = 13
EditLabel.Caption = 'Account'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 0
OnChange = AccountChange
end
object Password: TLabeledEdit
Left = 8
Top = 124
Width = 221
Height = 21
EditLabel.Width = 46
EditLabel.Height = 13
EditLabel.Caption = 'Password'
LabelPosition = lpAbove
LabelSpacing = 3
PasswordChar = '*'
TabOrder = 1
OnChange = AccountChange
end
end
end
+60
View File
@@ -0,0 +1,60 @@
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.
+339 -143
View File
@@ -1,33 +1,108 @@
object Form1: TForm1 object MainForm: TMainForm
Left = 219 Left = 226
Top = 95 Top = 145
Width = 561 Width = 682
Height = 538 Height = 569
BorderIcons = [biSystemMenu, biMinimize] HorzScrollBar.Visible = False
Caption = 'Progress Quest VI' VertScrollBar.Visible = False
Caption = 'Progress Quest'
Color = clBtnFace Color = clBtnFace
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText Font.Color = clWindowText
Font.Height = -11 Font.Height = -11
Font.Name = 'MS Sans Serif' Font.Name = 'MS Sans Serif'
Font.Style = [] 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 OldCreateOrder = False
Position = poScreenCenter Position = poScreenCenter
OnClose = FormClose
OnCreate = FormCreate OnCreate = FormCreate
OnKeyDown = FormKeyDown
OnShow = FormShow OnShow = FormShow
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
object Panel1: TPanel object Panel1: TPanel
Left = 0 Left = 0
Top = 0 Top = 0
Width = 185 Width = 200
Height = 476 Height = 507
Align = alLeft Align = alLeft
TabOrder = 0 TabOrder = 0
object Label1: TLabel object Label1: TLabel
Left = 1 Left = 1
Top = 1 Top = 1
Width = 183 Width = 198
Height = 13 Height = 13
Align = alTop Align = alTop
Caption = 'Character Sheet' Caption = 'Character Sheet'
@@ -40,16 +115,30 @@ object Form1: TForm1
end end
object Label6: TLabel object Label6: TLabel
Left = 1 Left = 1
Top = 409 Top = 229
Width = 183 Width = 198
Height = 13 Height = 13
Align = alTop Align = alTop
Caption = 'Experience' Caption = 'Experience'
end 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 object Traits: TListView
Left = 1 Left = 1
Top = 14 Top = 14
Width = 183 Width = 198
Height = 79 Height = 79
Align = alTop Align = alTop
Columns = < Columns = <
@@ -62,50 +151,23 @@ object Form1: TForm1
Caption = 'Value' Caption = 'Value'
end> end>
ColumnClick = False ColumnClick = False
FlatScrollBars = True
HideSelection = False
Items.Data = { Items.Data = {
6E0000000400000000000000FFFFFFFFFFFFFFFF0000000000000000044E616D 6E0000000400000000000000FFFFFFFFFFFFFFFF0000000000000000044E616D
6500000000FFFFFFFFFFFFFFFF0000000000000000045261636500000000FFFF 6500000000FFFFFFFFFFFFFFFF0000000000000000045261636500000000FFFF
FFFFFFFFFFFF000000000000000005436C61737300000000FFFFFFFFFFFFFFFF FFFFFFFFFFFF000000000000000005436C61737300000000FFFFFFFFFFFFFFFF
0000000000000000054C6576656C} 0000000000000000054C6576656C}
MultiSelect = True
ReadOnly = True ReadOnly = True
TabOrder = 2 RowSelect = True
ViewStyle = vsReport
end
object Equips: TListView
Left = 1
Top = 229
Width = 183
Height = 180
Align = alTop
Columns = <
item
Caption = 'Position'
Width = 60
end
item
AutoSize = True
Caption = 'Equipped'
end>
ColumnClick = False
Items.Data = {
410100000B00000000000000FFFFFFFFFFFFFFFF000000000000000006576561
706F6E00000000FFFFFFFFFFFFFFFF000000000000000006536865696C640000
0000FFFFFFFFFFFFFFFF00000000000000000448656C6D00000000FFFFFFFFFF
FFFFFF0000000000000000074861756265726B00000000FFFFFFFFFFFFFFFF00
000000000000000A4272617373616972747300000000FFFFFFFFFFFFFFFF0000
0000000000000956616D62726163657300000000FFFFFFFFFFFFFFFF00000000
00000000094761756E746C65747300000000FFFFFFFFFFFFFFFF000000000000
00000847616D6265736F6E00000000FFFFFFFFFFFFFFFF000000000000000007
4375697373657300000000FFFFFFFFFFFFFFFF00000000000000000747726561
76657300000000FFFFFFFFFFFFFFFF000000000000000009536F6C6C65726574
73}
TabOrder = 1 TabOrder = 1
ViewStyle = vsReport ViewStyle = vsReport
end end
object Stats: TListView object Stats: TListView
Left = 1 Left = 1
Top = 93 Top = 93
Width = 183 Width = 198
Height = 136 Height = 136
Align = alTop Align = alTop
Columns = < Columns = <
@@ -118,6 +180,8 @@ object Form1: TForm1
Caption = 'Value' Caption = 'Value'
end> end>
ColumnClick = False ColumnClick = False
FlatScrollBars = True
HideSelection = False
Items.Data = { Items.Data = {
CE0000000800000000000000FFFFFFFFFFFFFFFF000000000000000003535452 CE0000000800000000000000FFFFFFFFFFFFFFFF000000000000000003535452
00000000FFFFFFFFFFFFFFFF000000000000000003434F4E00000000FFFFFFFF 00000000FFFFFFFFFFFFFFFF000000000000000003434F4E00000000FFFFFFFF
@@ -126,60 +190,116 @@ object Form1: TForm1
00000000FFFFFFFFFFFFFFFF00000000000000000343484100000000FFFFFFFF 00000000FFFFFFFFFFFFFFFF00000000000000000343484100000000FFFFFFFF
FFFFFFFF0000000000000000064850204D617800000000FFFFFFFFFFFFFFFF00 FFFFFFFF0000000000000000064850204D617800000000FFFFFFFFFFFFFFFF00
00000000000000064D50204D6178} 00000000000000064D50204D6178}
MultiSelect = True
ReadOnly = True
RowSelect = True
TabOrder = 0 TabOrder = 0
ViewStyle = vsReport ViewStyle = vsReport
end end
object ExpBar: TProgressBar object ExpBar: TProgressBar
Left = 1 Left = 1
Top = 422 Top = 242
Width = 183 Width = 198
Height = 16 Height = 16
Align = alTop Align = alTop
Min = 0 Min = 0
Max = 100 Max = 100
ParentShowHint = False
Position = 50 Position = 50
Smooth = True 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 TabOrder = 3
ViewStyle = vsReport
end end
object GoButton: TButton object Cheats: TPanel
Left = 52 Left = 1
Top = 444 Top = 474
Width = 75 Width = 198
Height = 25 Height = 32
Caption = 'Go' Align = alBottom
TabOrder = 4 TabOrder = 4
OnClick = GoButtonClick Visible = False
end object CashIn: TButton
object Button1: TButton Left = 32
Left = 12 Top = 4
Top = 444 Width = 25
Width = 25 Height = 25
Height = 25 Caption = '$'
Caption = 'L+1' TabOrder = 0
TabOrder = 5 OnClick = CashInClick
OnClick = Button1Click end
end object Button1: TButton
object Button2: TButton Left = 4
Left = 148 Top = 4
Top = 444 Width = 25
Width = 27 Height = 25
Height = 25 Caption = 'L+1'
Caption = 'Q!' TabOrder = 1
TabOrder = 6 OnClick = Button1Click
OnClick = SpeedButton1Click 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
end end
object Panel3: TPanel object Panel3: TPanel
Left = 370 Left = 474
Top = 0 Top = 0
Width = 183 Width = 200
Height = 476 Height = 507
Align = alLeft Align = alRight
TabOrder = 1 TabOrder = 1
object Label3: TLabel object Label3: TLabel
Left = 1 Left = 1
Top = 201 Top = 177
Width = 181 Width = 198
Height = 13 Height = 13
Align = alTop Align = alTop
Caption = 'Quests' Caption = 'Quests'
@@ -193,7 +313,7 @@ object Form1: TForm1
object Label2: TLabel object Label2: TLabel
Left = 1 Left = 1
Top = 1 Top = 1
Width = 181 Width = 198
Height = 13 Height = 13
Align = alTop Align = alTop
Caption = 'Plot Development' Caption = 'Plot Development'
@@ -206,20 +326,22 @@ object Form1: TForm1
end end
object QuestBar: TProgressBar object QuestBar: TProgressBar
Left = 1 Left = 1
Top = 459 Top = 490
Width = 181 Width = 198
Height = 16 Height = 16
Align = alBottom Align = alBottom
Min = 0 Min = 0
Max = 0 Max = 0
ParentShowHint = False
Smooth = True Smooth = True
ShowHint = True
TabOrder = 0 TabOrder = 0
end end
object Plots: TListView object Plots: TListView
Left = 1 Left = 1
Top = 14 Top = 14
Width = 181 Width = 198
Height = 171 Height = 147
Align = alTop Align = alTop
Columns = < Columns = <
item item
@@ -227,7 +349,12 @@ object Form1: TForm1
Caption = 'Act' Caption = 'Act'
end> end>
ColumnClick = False ColumnClick = False
FlatScrollBars = True
HideSelection = False
IconOptions.Arrangement = iaLeft IconOptions.Arrangement = iaLeft
MultiSelect = True
ReadOnly = True
RowSelect = True
ShowColumnHeaders = False ShowColumnHeaders = False
StateImages = ImageList1 StateImages = ImageList1
TabOrder = 1 TabOrder = 1
@@ -235,20 +362,22 @@ object Form1: TForm1
end end
object PlotBar: TProgressBar object PlotBar: TProgressBar
Left = 1 Left = 1
Top = 185 Top = 161
Width = 181 Width = 198
Height = 16 Height = 16
Align = alTop Align = alTop
Min = 0 Min = 0
Max = 0 Max = 0
ParentShowHint = False
Smooth = True Smooth = True
ShowHint = True
TabOrder = 2 TabOrder = 2
end end
object Quests: TListView object Quests: TListView
Left = 1 Left = 1
Top = 214 Top = 190
Width = 181 Width = 198
Height = 245 Height = 300
Align = alClient Align = alClient
Columns = < Columns = <
item item
@@ -257,8 +386,11 @@ object Form1: TForm1
end> end>
ColumnClick = False ColumnClick = False
FlatScrollBars = True FlatScrollBars = True
HideSelection = False
IconOptions.Arrangement = iaLeft IconOptions.Arrangement = iaLeft
MultiSelect = True
ReadOnly = True ReadOnly = True
RowSelect = True
ShowColumnHeaders = False ShowColumnHeaders = False
StateImages = ImageList1 StateImages = ImageList1
TabOrder = 3 TabOrder = 3
@@ -266,30 +398,16 @@ object Form1: TForm1
end end
end end
object Panel2: TPanel object Panel2: TPanel
Left = 185 Left = 200
Top = 0 Top = 0
Width = 185 Width = 274
Height = 476 Height = 507
Align = alLeft Align = alClient
TabOrder = 2 TabOrder = 2
object Label4: TLabel object InventoryLabelAlsoGameStyle: TLabel
Left = 1 Left = 1
Top = 291 Top = 176
Width = 183 Width = 272
Height = 13
Align = alBottom
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 Label5: TLabel
Left = 1
Top = 1
Width = 183
Height = 13 Height = 13
Align = alTop Align = alTop
Caption = 'Inventory' Caption = 'Inventory'
@@ -302,11 +420,11 @@ object Form1: TForm1
end end
object Label7: TLabel object Label7: TLabel
Left = 1 Left = 1
Top = 262 Top = 477
Width = 183 Width = 272
Height = 13 Height = 13
Align = alBottom Align = alBottom
Caption = 'Encumberance' Caption = 'Encumbrance'
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText Font.Color = clWindowText
Font.Height = -11 Font.Height = -11
@@ -314,30 +432,25 @@ object Form1: TForm1
Font.Style = [] Font.Style = []
ParentFont = False ParentFont = False
end end
object Spells: TListView object Label8: TLabel
Left = 1 Left = 1
Top = 304 Top = 1
Width = 183 Width = 272
Height = 171 Height = 13
Align = alBottom Align = alTop
Columns = < Caption = 'Equipment'
item Font.Charset = DEFAULT_CHARSET
AutoSize = True Font.Color = clWindowText
Caption = 'Spell' Font.Height = -11
end Font.Name = 'MS Sans Serif'
item Font.Style = [fsBold]
Caption = 'Level' ParentFont = False
Width = 40
end>
ColumnClick = False
TabOrder = 0
ViewStyle = vsReport
end end
object Inventory: TListView object Inventory: TListView
Left = 1 Left = 1
Top = 14 Top = 189
Width = 183 Width = 272
Height = 248 Height = 288
Align = alClient Align = alClient
Columns = < Columns = <
item item
@@ -345,30 +458,112 @@ object Form1: TForm1
Caption = 'Item' Caption = 'Item'
end end
item item
Alignment = taRightJustify
Caption = 'Qty' Caption = 'Qty'
Width = 40 Width = 69
end> end>
ColumnClick = False ColumnClick = False
TabOrder = 1 FlatScrollBars = True
HideSelection = False
MultiSelect = True
ReadOnly = True
RowSelect = True
TabOrder = 0
ViewStyle = vsReport ViewStyle = vsReport
end end
object EncumBar: TProgressBar object EncumBar: TProgressBar
Left = 1 Left = 1
Top = 275 Top = 490
Width = 183 Width = 272
Height = 16 Height = 16
Align = alBottom Align = alBottom
Min = 0 Min = 0
Max = 100 Max = 100
ParentShowHint = False
Position = 50 Position = 50
Smooth = True 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 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
end end
object Panel4: TPanel object Panel4: TPanel
Left = 0 Left = 0
Top = 476 Top = 507
Width = 553 Width = 674
Height = 35 Height = 35
Align = alBottom Align = alBottom
Caption = 'Panel4' Caption = 'Panel4'
@@ -376,7 +571,7 @@ object Form1: TForm1
object Kill: TStatusBar object Kill: TStatusBar
Left = 1 Left = 1
Top = -1 Top = -1
Width = 551 Width = 672
Height = 19 Height = 19
Panels = < Panels = <
item item
@@ -385,10 +580,10 @@ object Form1: TForm1
SimplePanel = True SimplePanel = True
SimpleText = 'Welcome to Progress Quest!' SimpleText = 'Welcome to Progress Quest!'
end end
object KillBar: TProgressBar object TaskBar: TProgressBar
Left = 1 Left = 1
Top = 18 Top = 18
Width = 551 Width = 672
Height = 16 Height = 16
Align = alBottom Align = alBottom
Min = 0 Min = 0
@@ -412,7 +607,7 @@ object Form1: TForm1
Left = 92 Left = 92
Top = 52 Top = 52
Bitmap = { Bitmap = {
494C01010200040004000C000C00FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 494C01010200040004000C000C00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000300000000C00000001001000000000008004 0000000000003600000028000000300000000C00000001001000000000008004
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
@@ -455,6 +650,7 @@ object Form1: TForm1
000000000000000000000000FFFFFF0000100100000000007FD7FD0000000000 000000000000000000000000FFFFFF0000100100000000007FD7FD0000000000
7FD77D00000000007FD63D00000000007FD41D00000000007FD48D0000000000 7FD77D00000000007FD63D00000000007FD41D00000000007FD48D0000000000
7FD5C500000000007FD7E500000000007FD7F500000000007FD7FD0000000000 7FD5C500000000007FD7E500000000007FD7F500000000007FD7FD0000000000
0010010000000000FFFFFF0000000000} 0010010000000000FFFFFF000000000000000000000000000000000000000000
000000000000}
end end
end end
File diff suppressed because it is too large Load Diff
@@ -1,10 +1,10 @@
object Form2: TForm2 object NewGuyForm: TNewGuyForm
Left = 264 Left = 323
Top = 169 Top = 164
BorderIcons = [] BorderIcons = []
BorderStyle = bsDialog BorderStyle = bsDialog
Caption = 'Progress Quest - New Character' Caption = 'Progress Quest - New Character'
ClientHeight = 457 ClientHeight = 458
ClientWidth = 509 ClientWidth = 509
Color = clBtnFace Color = clBtnFace
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
@@ -46,43 +46,43 @@ object Form2: TForm2
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF 6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7 66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080 D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF005852 80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
5151515151515258585858585858585858585858585858585852515151515852 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
51514A4A4A515152585858585858585858585858585858585251514B4A4B5852 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
514B4A4A4A4B51515258585858585858585858585858585251514B4A4A4A5852 0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
150F4A4A4A4A4B5151515152525251525252525252525151514A0F154A4B580B 150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
0E0E0B4A4A4A4A4A5151515151515151515151515151514B4B0B0E0E0B512311 0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
15220E514A4A4A4A4A4A4A4B4A4A4A4A4A4A4A4A4A4A4A4A4A0F22143D234313 15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
22431151514A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A11432213435822 2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
23296710294B4A4A44442244154422441544224444444A221012292322585858 23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
58514443151D4B4A442215221522152215221522154B0E151544515252585858 0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
5879294A43140D4A22150D0E2243100E1D0D2215220D14434A03525258585858 0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
585852514A224A430E0E1443220D111543140E0E4344224A4A51515258585858 0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
585858514B1514220E2243150D444444444322222214154B4B4B515258585858 0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
585858585174151D4A434A4A15104422234A434A1D15742A4A4B515258585858 0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
585858585222444B457422224B44224B222274454B4422524A4B515258585858 0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
58585858510A4B4C3F4C44EA4A22224A6D444C3F4C4B0A4A4A51515258585858 0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
585858580D15294B4523ECC8C44A4AE946EC23454B29150D4A51515858585858 0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
58585858444A4A234AAEC8FCFCA7E9F9F946AE44234A4A435151525858585858 0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
58585858232244224AEFA7FCFC62F9F9F946EF4A224422235151525858585858 0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
585858584B434A110C4A8DA862F9F9F9698D4A0C114A43295151525858585858 0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
5858585852222210514A8D46F9F9F962A78D4A51104322524B51525858585858 0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
58585858524B0C034AEB46F9F9F962FCFCA7F84A030C4B4A4A51515258585858 0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
5858585251514B4AED46F9F9F9E3A8FCFCFCA7ED4A4B4A4A4A4B515152585858 0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
58585851514B4AED46F9F9F9E3F7F7E6FCFCFCA7ED4A4A4A4A4A4B5152585858 0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
585852514B4AEB46F9F9F9E3ED525892E6FCFCFCA7EB4A4A4A4A4A4B51525858 0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
585852514A6D46F9F9F9E3ED5858585892E6FCFCFCA76D4A4A4A4A4A51515858 0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
5858514B14B5F047F9E3F7585858585858B5E6FCC8DDB5144A4A4A4A51515858 0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
585852AE09F3F3BCE3B55858585858585858B5D0DDF3F309AE4A4B4B51515858 0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
5858BCF4F5F4F4F4075858585858585858585807F4F4F4F5DEBC515151525858 0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
58991BF5F5F2DDB6585858585858585858585858B6DDF3F5F51B995152585858 0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
5892B51909B592585858585858585858585858585892B509DDB5925858585858 0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
58720909ECEB58585858585858585858585858585858F8EC0909725858585858 0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
58F78DAEED5858585858585858585858585858585858581CAE8D925858580000 0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
0000000000000000000000000000000000000000000000000000000000000000 FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
0000000000000000000000000000000000000000000000000000000000000000 FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
0000000000000000000000000000000000000000000000000000000000000000 003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
000000000000000000000000000000000000000000000000000000000000} C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
OldCreateOrder = False OldCreateOrder = False
Position = poScreenCenter Position = poScreenCenter
OnShow = FormShow OnShow = FormShow
@@ -90,9 +90,9 @@ object Form2: TForm2
TextHeight = 13 TextHeight = 13
object Race: TRadioGroup object Race: TRadioGroup
Left = 8 Left = 8
Top = 52 Top = 48
Width = 185 Width = 185
Height = 397 Height = 401
Caption = 'Race' Caption = 'Race'
Items.Strings = ( Items.Strings = (
'Half Orc' 'Half Orc'
@@ -108,20 +108,21 @@ object Form2: TForm2
'Crested Dwarf' 'Crested Dwarf'
'Eel Man' 'Eel Man'
'Panda Man' 'Panda Man'
'Monster' 'Trans-Kobold'
'Enchanted Motorcycle' 'Enchanted Motorcycle'
'Will o'#39' the Wisp' 'Will o'#39' the Wisp'
'Battle-Finch' 'Battle-Finch'
'Double Wookie' 'Double Wookiee'
'Skraeling' 'Skraeling'
'Demicanadian') 'Demicanadian'
'Land Squid')
TabOrder = 0 TabOrder = 0
end end
object Klass: TRadioGroup object Klass: TRadioGroup
Left = 200 Left = 200
Top = 20 Top = 48
Width = 185 Width = 185
Height = 345 Height = 365
Caption = 'Class' Caption = 'Class'
Items.Strings = ( Items.Strings = (
'Ur-Paladin' 'Ur-Paladin'
@@ -135,73 +136,74 @@ object Form2: TForm2
'Puma Burgular' 'Puma Burgular'
'Runeloremaster' 'Runeloremaster'
'Tongueblade' 'Tongueblade'
'Hunter Stalker' 'Hunter Strangler'
'Battle-Felon' 'Battle-Felon'
'Tickle-Mimic' 'Tickle-Mimic'
'Slow Poisoner' 'Slow Poisoner'
'Bastard Lunatic' 'Bastard Lunatic'
'Lowling') 'Lowling'
'Birdrider')
TabOrder = 1 TabOrder = 1
end end
object GroupBox1: TGroupBox object GroupBox1: TGroupBox
Left = 392 Left = 392
Top = 20 Top = 48
Width = 109 Width = 109
Height = 305 Height = 365
Caption = 'Stats' Caption = 'Stats'
TabOrder = 2 TabOrder = 2
object Label3: TLabel object Label3: TLabel
Left = 22 Left = 22
Top = 56 Top = 60
Width = 23 Width = 23
Height = 13 Height = 13
Caption = 'CON' Caption = 'CON'
end end
object Label7: TLabel object Label7: TLabel
Left = 22 Left = 22
Top = 152 Top = 156
Width = 22 Width = 22
Height = 13 Height = 13
Caption = 'CHA' Caption = 'CHA'
end end
object Label6: TLabel object Label6: TLabel
Left = 22 Left = 22
Top = 128 Top = 132
Width = 21 Width = 21
Height = 13 Height = 13
Caption = 'WIS' Caption = 'WIS'
end end
object Label5: TLabel object Label5: TLabel
Left = 22 Left = 22
Top = 104 Top = 108
Width = 18 Width = 18
Height = 13 Height = 13
Caption = 'INT' Caption = 'INT'
end end
object Label4: TLabel object Label4: TLabel
Left = 22 Left = 22
Top = 80 Top = 84
Width = 22 Width = 22
Height = 13 Height = 13
Caption = 'DEX' Caption = 'DEX'
end end
object Label2: TLabel object Label2: TLabel
Left = 22 Left = 22
Top = 32 Top = 36
Width = 22 Width = 22
Height = 13 Height = 13
Caption = 'STR' Caption = 'STR'
end end
object Label8: TLabel object Label8: TLabel
Left = 22 Left = 22
Top = 188 Top = 204
Width = 24 Width = 24
Height = 13 Height = 13
Caption = 'Total' Caption = 'Total'
end end
object CHA: TPanel object CHA: TPanel
Left = 52 Left = 52
Top = 148 Top = 152
Width = 37 Width = 37
Height = 21 Height = 21
BevelOuter = bvLowered BevelOuter = bvLowered
@@ -210,7 +212,7 @@ object Form2: TForm2
end end
object WIS: TPanel object WIS: TPanel
Left = 52 Left = 52
Top = 124 Top = 128
Width = 37 Width = 37
Height = 21 Height = 21
BevelOuter = bvLowered BevelOuter = bvLowered
@@ -219,7 +221,7 @@ object Form2: TForm2
end end
object INT: TPanel object INT: TPanel
Left = 52 Left = 52
Top = 100 Top = 104
Width = 37 Width = 37
Height = 21 Height = 21
BevelOuter = bvLowered BevelOuter = bvLowered
@@ -228,7 +230,7 @@ object Form2: TForm2
end end
object DEX: TPanel object DEX: TPanel
Left = 52 Left = 52
Top = 76 Top = 80
Width = 37 Width = 37
Height = 21 Height = 21
BevelOuter = bvLowered BevelOuter = bvLowered
@@ -237,7 +239,7 @@ object Form2: TForm2
end end
object CON: TPanel object CON: TPanel
Left = 52 Left = 52
Top = 52 Top = 56
Width = 37 Width = 37
Height = 21 Height = 21
BevelOuter = bvLowered BevelOuter = bvLowered
@@ -246,7 +248,7 @@ object Form2: TForm2
end end
object STR: TPanel object STR: TPanel
Left = 52 Left = 52
Top = 28 Top = 32
Width = 37 Width = 37
Height = 21 Height = 21
BevelOuter = bvLowered BevelOuter = bvLowered
@@ -255,7 +257,7 @@ object Form2: TForm2
end end
object Reroll: TButton object Reroll: TButton
Left = 18 Left = 18
Top = 232 Top = 284
Width = 75 Width = 75
Height = 25 Height = 25
Caption = 'Roll' Caption = 'Roll'
@@ -264,7 +266,7 @@ object Form2: TForm2
end end
object Total: TPanel object Total: TPanel
Left = 52 Left = 52
Top = 184 Top = 200
Width = 37 Width = 37
Height = 21 Height = 21
BevelOuter = bvLowered BevelOuter = bvLowered
@@ -274,7 +276,7 @@ object Form2: TForm2
end end
object Unroll: TButton object Unroll: TButton
Left = 18 Left = 18
Top = 264 Top = 316
Width = 75 Width = 75
Height = 25 Height = 25
Caption = 'Unroll' Caption = 'Unroll'
@@ -284,8 +286,8 @@ object Form2: TForm2
end end
end end
object Sold: TButton object Sold: TButton
Left = 414 Left = 342
Top = 412 Top = 424
Width = 75 Width = 75
Height = 25 Height = 25
Caption = 'Sold!' Caption = 'Sold!'
@@ -293,47 +295,9 @@ object Form2: TForm2
TabOrder = 3 TabOrder = 3
OnClick = SoldClick OnClick = SoldClick
end end
object GroupBox2: TGroupBox
Left = 200
Top = 372
Width = 185
Height = 77
Caption = 'Game Style'
TabOrder = 4
object Label9: TLabel
Left = 20
Top = 56
Width = 30
Height = 13
Caption = 'Action'
end
object Label10: TLabel
Left = 120
Top = 56
Width = 39
Height = 13
Caption = 'Strategy'
end
object GameStyle: TTrackBar
Left = 24
Top = 24
Width = 126
Height = 33
Max = 5
Min = 1
Orientation = trHorizontal
Frequency = 1
Position = 3
SelEnd = 0
SelStart = 0
TabOrder = 0
TickMarks = tmBottomRight
TickStyle = tsAuto
end
end
object Name: TLabeledEdit object Name: TLabeledEdit
Left = 8 Left = 8
Top = 24 Top = 20
Width = 185 Width = 185
Height = 21 Height = 21
EditLabel.Width = 28 EditLabel.Width = 28
@@ -341,53 +305,91 @@ object Form2: TForm2
EditLabel.Caption = 'Name' EditLabel.Caption = 'Name'
LabelPosition = lpAbove LabelPosition = lpAbove
LabelSpacing = 3 LabelSpacing = 3
TabOrder = 5 MaxLength = 30
TabOrder = 4
Text = 'Grumdrig' Text = 'Grumdrig'
end end
object OldRolls: TListBox object OldRolls: TListBox
Left = 396 Left = 396
Top = 232 Top = 228
Width = 21 Width = 21
Height = 13 Height = 13
ItemHeight = 13 ItemHeight = 13
TabOrder = 6 TabOrder = 5
Visible = False Visible = False
end end
object Button2: TButton object Button2: TButton
Left = 414 Left = 426
Top = 376 Top = 424
Width = 75 Width = 75
Height = 25 Height = 25
Caption = 'Never mind.' Caption = 'Cancel'
ModalResult = 2 ModalResult = 2
TabOrder = 7 TabOrder = 6
end end
object Online: TCheckBox object Account: TLabeledEdit
Left = 400 Left = 200
Top = 340 Top = 20
Width = 97 Width = 185
Height = 17 Height = 21
Caption = 'Play online' EditLabel.Width = 40
Checked = True EditLabel.Height = 13
State = cbChecked 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 TabOrder = 8
Visible = False
end end
object Server: TNMHTTP object Server: TNMHTTP
Port = 0 Port = 0
ReportLevel = 0 ReportLevel = 0
Body = 'Default.htm' Body = 'Default.htm'
Header = 'Head.txt' Header = 'Head.txt'
HeaderInfo.Cookie = 'yumyum' HeaderInfo.Referer = 'PQ6.1'
HeaderInfo.Password = 'chickens'
InputFileMode = False InputFileMode = False
OutputFileMode = False OutputFileMode = False
OnAboutToSend = ServerAboutToSend
OnSuccess = ServerSuccess OnSuccess = ServerSuccess
OnFailure = ServerFailure
ProxyPort = 0 ProxyPort = 0
Left = 332 Left = 332
Top = 312 Top = 312
end end
object PoorCodeDesign: TNMURL object PoorCodeDesign: TNMURL
Left = 336 Left = 336
Top = 272 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
end end
+241
View File
@@ -0,0 +1,241 @@
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.

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