mirror of
https://bitbucket.org/grumdrig/pq.git
synced 2026-09-29 00:33:59 -06:00
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:
BIN
Binary file not shown.
+61
-8
@@ -134,11 +134,14 @@ object K: TK
|
||||
'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'
|
||||
@@ -174,6 +177,7 @@ object K: TK
|
||||
'Steely|+2'
|
||||
'Vicious|+3'
|
||||
'Venomed|+4'
|
||||
'Stabbity|+4'
|
||||
'Dancing|+5'
|
||||
'Invisible|+6'
|
||||
'Vorpal|+7')
|
||||
@@ -209,12 +213,16 @@ object K: TK
|
||||
'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
|
||||
@@ -233,6 +241,7 @@ object K: TK
|
||||
'Chamois|6'
|
||||
'Pleathers|7'
|
||||
'Leathers|8'
|
||||
'Bearskin|9'
|
||||
'Ringmail|10'
|
||||
'Scale Mail|12'
|
||||
'Chainmail|14'
|
||||
@@ -256,23 +265,39 @@ object K: TK
|
||||
'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'
|
||||
'Zip Gun|6'
|
||||
'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'
|
||||
'Bandyclef|15')
|
||||
TabOrder = 5
|
||||
WordWrap = False
|
||||
@@ -311,7 +336,13 @@ object K: TK
|
||||
'Ankh'
|
||||
'Talisman'
|
||||
'Orb'
|
||||
'Gammel')
|
||||
'Gammel'
|
||||
'Ornament'
|
||||
'Brocade'
|
||||
'Galoon'
|
||||
'Bijou'
|
||||
'Spangle'
|
||||
'Gimcrack')
|
||||
TabOrder = 6
|
||||
WordWrap = False
|
||||
end
|
||||
@@ -345,7 +376,15 @@ object K: TK
|
||||
'Austere'
|
||||
'Ostentatious'
|
||||
'One True'
|
||||
'Proverbial')
|
||||
'Proverbial'
|
||||
'Fearsome '
|
||||
'Deadly'
|
||||
'Benevolent'
|
||||
'Unearthly'
|
||||
'Magnificent'
|
||||
'Iron'
|
||||
'Ormolu'
|
||||
'Puissant')
|
||||
TabOrder = 7
|
||||
WordWrap = False
|
||||
end
|
||||
@@ -404,7 +443,8 @@ object K: TK
|
||||
'Ra'
|
||||
'the Bone'
|
||||
'Diamonique'
|
||||
'Electrum')
|
||||
'Electrum'
|
||||
'Hydragyrum')
|
||||
TabOrder = 8
|
||||
WordWrap = False
|
||||
end
|
||||
@@ -446,11 +486,14 @@ object K: TK
|
||||
'hoe'
|
||||
'bandage'
|
||||
'trowel'
|
||||
'towel'
|
||||
'planter box'
|
||||
'anvil'
|
||||
'axle'
|
||||
'tuppence'
|
||||
'casket')
|
||||
'casket'
|
||||
'nosegay'
|
||||
'trinket')
|
||||
TabOrder = 9
|
||||
WordWrap = False
|
||||
end
|
||||
@@ -566,11 +609,14 @@ object K: TK
|
||||
'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'
|
||||
@@ -585,9 +631,11 @@ object K: TK
|
||||
'Hippogriff|3|egg'
|
||||
'Hobgoblin|1|patella'
|
||||
'Homonculus|2|fluid'
|
||||
'Hydra|8|liver'
|
||||
'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'
|
||||
@@ -597,6 +645,7 @@ object K: TK
|
||||
'Manticore|6|spike'
|
||||
'Mastodon|12|tusk'
|
||||
'Medusa|6|eye'
|
||||
'Multicell|2|dendrite'
|
||||
'Pirate|1|booty'
|
||||
'Berserker|1|shirt'
|
||||
'Caveman|2|club'
|
||||
@@ -610,6 +659,7 @@ object K: TK
|
||||
'Morkoth|7|teeth'
|
||||
'Mummy|6|gauze'
|
||||
'Naga|9|rattle'
|
||||
'Nebbish|1|belly'
|
||||
'Neo-Otyugh|11|organ '
|
||||
'Nixie|1|webbing'
|
||||
'Nymph|3|hanky'
|
||||
@@ -636,6 +686,7 @@ object K: TK
|
||||
'Rust Monster|5|shavings'
|
||||
'Satyr|5|hoof'
|
||||
'Sea Hag|3|wart'
|
||||
'Silkie|3|fur'
|
||||
'Shadow|3|silhouette'
|
||||
'Shambling Mound|10|mulch'
|
||||
'Shedu|9|hoof'
|
||||
@@ -646,6 +697,8 @@ object K: TK
|
||||
'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'
|
||||
@@ -660,7 +713,7 @@ object K: TK
|
||||
'Wight|4|lung'
|
||||
'Will-o-the-Wisp|9|wisp'
|
||||
'Wraith|5|finger'
|
||||
'Wyvern|7|poison'
|
||||
'Wyvern|7|wing'
|
||||
'Xorn|7|jaw'
|
||||
'Yeti|4|fur'
|
||||
'Zombie|2|forehead'
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
unit Config;
|
||||
{ copyright (c)2002 Eric Fredricksen all rights reserved }
|
||||
|
||||
interface
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
unit Front;
|
||||
{ copyright (c)2002 Eric Fredricksen all rights reserved }
|
||||
|
||||
interface
|
||||
|
||||
@@ -7,17 +8,19 @@ uses
|
||||
Dialogs, StdCtrls, ExtCtrls;
|
||||
|
||||
type
|
||||
TForm3 = class(TForm)
|
||||
TFrontForm = class(TForm)
|
||||
Panel1: TPanel;
|
||||
Logo: TImage;
|
||||
Button1: TButton;
|
||||
Button2: TButton;
|
||||
Label1: TLabel;
|
||||
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
|
||||
@@ -27,7 +30,7 @@ type
|
||||
end;
|
||||
|
||||
var
|
||||
Form3: TForm3;
|
||||
FrontForm: TFrontForm;
|
||||
|
||||
implementation
|
||||
|
||||
@@ -35,14 +38,14 @@ uses ShellAPI, Main, Info;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
procedure TForm3.HomeLinkClick(Sender: TObject);
|
||||
procedure TFrontForm.HomeLinkClick(Sender: TObject);
|
||||
begin
|
||||
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/pq.html', 0, '', SW_SHOW);
|
||||
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', nil, '', SW_SHOW);
|
||||
end;
|
||||
|
||||
procedure TForm3.LogoClick(Sender: TObject);
|
||||
procedure TFrontForm.LogoClick(Sender: TObject);
|
||||
begin
|
||||
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', 0, '', SW_SHOW);
|
||||
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', nil, '', SW_SHOW);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
+448
@@ -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
Binary file not shown.
@@ -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
|
||||
@@ -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.
|
||||
@@ -1,11 +1,10 @@
|
||||
object Form1: TForm1
|
||||
Left = 163
|
||||
Top = 116
|
||||
object MainForm: TMainForm
|
||||
Left = 226
|
||||
Top = 145
|
||||
Width = 682
|
||||
Height = 569
|
||||
HorzScrollBar.Visible = False
|
||||
VertScrollBar.Visible = False
|
||||
BorderIcons = [biSystemMenu, biMinimize]
|
||||
Caption = 'Progress Quest'
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
@@ -47,43 +46,43 @@ object Form1: TForm1
|
||||
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}
|
||||
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
|
||||
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
|
||||
0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
|
||||
15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
|
||||
2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
|
||||
23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
|
||||
0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
|
||||
0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
|
||||
0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
|
||||
0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
|
||||
0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
|
||||
0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
|
||||
0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
|
||||
0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
|
||||
0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
|
||||
0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
|
||||
0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
|
||||
0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
|
||||
FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
|
||||
FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
|
||||
003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
|
||||
C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
|
||||
KeyPreview = True
|
||||
OldCreateOrder = False
|
||||
Position = poScreenCenter
|
||||
@@ -153,12 +152,15 @@ object Form1: TForm1
|
||||
end>
|
||||
ColumnClick = False
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
Items.Data = {
|
||||
6E0000000400000000000000FFFFFFFFFFFFFFFF0000000000000000044E616D
|
||||
6500000000FFFFFFFFFFFFFFFF0000000000000000045261636500000000FFFF
|
||||
FFFFFFFFFFFF000000000000000005436C61737300000000FFFFFFFFFFFFFFFF
|
||||
0000000000000000054C6576656C}
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
TabOrder = 1
|
||||
ViewStyle = vsReport
|
||||
end
|
||||
@@ -179,6 +181,7 @@ object Form1: TForm1
|
||||
end>
|
||||
ColumnClick = False
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
Items.Data = {
|
||||
CE0000000800000000000000FFFFFFFFFFFFFFFF000000000000000003535452
|
||||
00000000FFFFFFFFFFFFFFFF000000000000000003434F4E00000000FFFFFFFF
|
||||
@@ -187,7 +190,9 @@ object Form1: TForm1
|
||||
00000000FFFFFFFFFFFFFFFF00000000000000000343484100000000FFFFFFFF
|
||||
FFFFFFFF0000000000000000064850204D617800000000FFFFFFFFFFFFFFFF00
|
||||
00000000000000064D50204D6178}
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
TabOrder = 0
|
||||
ViewStyle = vsReport
|
||||
end
|
||||
@@ -222,7 +227,10 @@ object Form1: TForm1
|
||||
end>
|
||||
ColumnClick = False
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
TabOrder = 3
|
||||
ViewStyle = vsReport
|
||||
end
|
||||
@@ -342,8 +350,11 @@ object Form1: TForm1
|
||||
end>
|
||||
ColumnClick = False
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
IconOptions.Arrangement = iaLeft
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
ShowColumnHeaders = False
|
||||
StateImages = ImageList1
|
||||
TabOrder = 1
|
||||
@@ -375,8 +386,11 @@ object Form1: TForm1
|
||||
end>
|
||||
ColumnClick = False
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
IconOptions.Arrangement = iaLeft
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
ShowColumnHeaders = False
|
||||
StateImages = ImageList1
|
||||
TabOrder = 3
|
||||
@@ -450,7 +464,10 @@ object Form1: TForm1
|
||||
end>
|
||||
ColumnClick = False
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
TabOrder = 0
|
||||
ViewStyle = vsReport
|
||||
end
|
||||
@@ -485,6 +502,7 @@ object Form1: TForm1
|
||||
end>
|
||||
ColumnClick = False
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
Items.Data = {
|
||||
410100000B00000000000000FFFFFFFFFFFFFFFF000000000000000006576561
|
||||
706F6E00000000FFFFFFFFFFFFFFFF000000000000000006536869656C640000
|
||||
@@ -497,15 +515,17 @@ object Form1: TForm1
|
||||
4375697373657300000000FFFFFFFFFFFFFFFF00000000000000000747726561
|
||||
76657300000000FFFFFFFFFFFFFFFF000000000000000009536F6C6C65726574
|
||||
73}
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
ShowColumnHeaders = False
|
||||
TabOrder = 2
|
||||
ViewStyle = vsReport
|
||||
end
|
||||
object vars: TPanel
|
||||
Left = 64
|
||||
Top = 40
|
||||
Width = 185
|
||||
Left = 84
|
||||
Top = 32
|
||||
Width = 177
|
||||
Height = 129
|
||||
Caption = 'vars'
|
||||
TabOrder = 3
|
||||
@@ -531,10 +551,10 @@ object Form1: TForm1
|
||||
ParentColor = False
|
||||
end
|
||||
object fQueue: TListBox
|
||||
Left = 16
|
||||
Top = 84
|
||||
Width = 121
|
||||
Height = 41
|
||||
Left = 12
|
||||
Top = 72
|
||||
Width = 49
|
||||
Height = 45
|
||||
ItemHeight = 13
|
||||
TabOrder = 0
|
||||
end
|
||||
|
||||
BIN
Binary file not shown.
+110
-109
@@ -1,10 +1,10 @@
|
||||
object Form2: TForm2
|
||||
Left = 264
|
||||
Top = 169
|
||||
object NewGuyForm: TNewGuyForm
|
||||
Left = 323
|
||||
Top = 164
|
||||
BorderIcons = []
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Progress Quest - New Character'
|
||||
ClientHeight = 457
|
||||
ClientHeight = 458
|
||||
ClientWidth = 509
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
@@ -46,43 +46,43 @@ object Form2: TForm2
|
||||
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}
|
||||
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
|
||||
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
|
||||
0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
|
||||
15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
|
||||
2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
|
||||
23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
|
||||
0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
|
||||
0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
|
||||
0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
|
||||
0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
|
||||
0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
|
||||
0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
|
||||
0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
|
||||
0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
|
||||
0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
|
||||
0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
|
||||
0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
|
||||
0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
|
||||
FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
|
||||
FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
|
||||
003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
|
||||
C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
|
||||
OldCreateOrder = False
|
||||
Position = poScreenCenter
|
||||
OnShow = FormShow
|
||||
@@ -90,7 +90,7 @@ object Form2: TForm2
|
||||
TextHeight = 13
|
||||
object Race: TRadioGroup
|
||||
Left = 8
|
||||
Top = 52
|
||||
Top = 48
|
||||
Width = 185
|
||||
Height = 401
|
||||
Caption = 'Race'
|
||||
@@ -114,14 +114,15 @@ object Form2: TForm2
|
||||
'Battle-Finch'
|
||||
'Double Wookiee'
|
||||
'Skraeling'
|
||||
'Demicanadian')
|
||||
'Demicanadian'
|
||||
'Land Squid')
|
||||
TabOrder = 0
|
||||
end
|
||||
object Klass: TRadioGroup
|
||||
Left = 200
|
||||
Top = 52
|
||||
Top = 48
|
||||
Width = 185
|
||||
Height = 345
|
||||
Height = 365
|
||||
Caption = 'Class'
|
||||
Items.Strings = (
|
||||
'Ur-Paladin'
|
||||
@@ -140,14 +141,15 @@ object Form2: TForm2
|
||||
'Tickle-Mimic'
|
||||
'Slow Poisoner'
|
||||
'Bastard Lunatic'
|
||||
'Lowling')
|
||||
'Lowling'
|
||||
'Birdrider')
|
||||
TabOrder = 1
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 392
|
||||
Top = 52
|
||||
Top = 48
|
||||
Width = 109
|
||||
Height = 345
|
||||
Height = 365
|
||||
Caption = 'Stats'
|
||||
TabOrder = 2
|
||||
object Label3: TLabel
|
||||
@@ -255,7 +257,7 @@ object Form2: TForm2
|
||||
end
|
||||
object Reroll: TButton
|
||||
Left = 18
|
||||
Top = 264
|
||||
Top = 284
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Roll'
|
||||
@@ -274,7 +276,7 @@ object Form2: TForm2
|
||||
end
|
||||
object Unroll: TButton
|
||||
Left = 18
|
||||
Top = 296
|
||||
Top = 316
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Unroll'
|
||||
@@ -284,8 +286,8 @@ object Form2: TForm2
|
||||
end
|
||||
end
|
||||
object Sold: TButton
|
||||
Left = 330
|
||||
Top = 416
|
||||
Left = 342
|
||||
Top = 424
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Sold!'
|
||||
@@ -293,48 +295,9 @@ object Form2: TForm2
|
||||
TabOrder = 3
|
||||
OnClick = SoldClick
|
||||
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
|
||||
Left = 8
|
||||
Top = 24
|
||||
Top = 20
|
||||
Width = 185
|
||||
Height = 21
|
||||
EditLabel.Width = 28
|
||||
@@ -342,53 +305,91 @@ object Form2: TForm2
|
||||
EditLabel.Caption = 'Name'
|
||||
LabelPosition = lpAbove
|
||||
LabelSpacing = 3
|
||||
TabOrder = 5
|
||||
MaxLength = 30
|
||||
TabOrder = 4
|
||||
Text = 'Grumdrig'
|
||||
end
|
||||
object OldRolls: TListBox
|
||||
Left = 396
|
||||
Top = 232
|
||||
Top = 228
|
||||
Width = 21
|
||||
Height = 13
|
||||
ItemHeight = 13
|
||||
TabOrder = 6
|
||||
TabOrder = 5
|
||||
Visible = False
|
||||
end
|
||||
object Button2: TButton
|
||||
Left = 414
|
||||
Top = 416
|
||||
Left = 426
|
||||
Top = 424
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Cancel'
|
||||
ModalResult = 2
|
||||
TabOrder = 7
|
||||
TabOrder = 6
|
||||
end
|
||||
object Online: TCheckBox
|
||||
Left = 204
|
||||
Top = 24
|
||||
Width = 97
|
||||
Height = 17
|
||||
Caption = 'Play online'
|
||||
Checked = True
|
||||
State = cbChecked
|
||||
object Account: TLabeledEdit
|
||||
Left = 200
|
||||
Top = 20
|
||||
Width = 185
|
||||
Height = 21
|
||||
EditLabel.Width = 40
|
||||
EditLabel.Height = 13
|
||||
EditLabel.Caption = 'Account'
|
||||
LabelPosition = lpAbove
|
||||
LabelSpacing = 3
|
||||
TabOrder = 7
|
||||
Visible = False
|
||||
end
|
||||
object Password: TLabeledEdit
|
||||
Left = 392
|
||||
Top = 20
|
||||
Width = 109
|
||||
Height = 21
|
||||
EditLabel.Width = 46
|
||||
EditLabel.Height = 13
|
||||
EditLabel.Caption = 'Password'
|
||||
LabelPosition = lpAbove
|
||||
LabelSpacing = 3
|
||||
PasswordChar = '*'
|
||||
TabOrder = 8
|
||||
Visible = False
|
||||
end
|
||||
object Server: TNMHTTP
|
||||
Port = 0
|
||||
ReportLevel = 0
|
||||
Body = 'Default.htm'
|
||||
Header = 'Head.txt'
|
||||
HeaderInfo.Cookie = 'yumyum'
|
||||
HeaderInfo.Password = 'chickens'
|
||||
HeaderInfo.Referer = 'PQ6.1'
|
||||
InputFileMode = False
|
||||
OutputFileMode = False
|
||||
OnAboutToSend = ServerAboutToSend
|
||||
OnSuccess = ServerSuccess
|
||||
OnFailure = ServerFailure
|
||||
ProxyPort = 0
|
||||
Left = 332
|
||||
Top = 312
|
||||
end
|
||||
object PoorCodeDesign: TNMURL
|
||||
Left = 336
|
||||
Top = 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
|
||||
|
||||
+102
-32
@@ -1,13 +1,14 @@
|
||||
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;
|
||||
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Psock, NMHttp, NMURL, AppEvnts;
|
||||
|
||||
type
|
||||
TForm2 = class(TForm)
|
||||
TNewGuyForm = class(TForm)
|
||||
Race: TRadioGroup;
|
||||
Klass: TRadioGroup;
|
||||
Label2: TLabel;
|
||||
@@ -28,42 +29,48 @@ type
|
||||
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;
|
||||
Account: TLabeledEdit;
|
||||
Password: TLabeledEdit;
|
||||
ApplicationEvents1: TApplicationEvents;
|
||||
GuildGet: TNMHTTP;
|
||||
procedure RerollClick(Sender: TObject);
|
||||
procedure FormShow(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 ReportSuccess(Cmd: CmdType);
|
||||
procedure BragSuccess(Cmd: CmdType);
|
||||
function Go: Boolean;
|
||||
end;
|
||||
|
||||
var
|
||||
Form2: TForm2;
|
||||
NewGuyForm: TNewGuyForm;
|
||||
|
||||
function UrlEncode(s: string): string;
|
||||
|
||||
implementation
|
||||
|
||||
uses Main;
|
||||
uses Main, SelServ;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
function UrlEncode(s: string): string;
|
||||
begin
|
||||
Form2.PoorCodeDesign.InputString := s;
|
||||
Result := Form2.PoorCodeDesign.Encode;
|
||||
NewGuyForm.PoorCodeDesign.InputString := s;
|
||||
Result := NewGuyForm.PoorCodeDesign.Encode;
|
||||
end;
|
||||
|
||||
procedure Roll(stat: TPanel);
|
||||
@@ -85,7 +92,7 @@ begin
|
||||
Result := Result / d;
|
||||
end;
|
||||
|
||||
procedure TForm2.RollEm;
|
||||
procedure TNewGuyForm.RollEm;
|
||||
begin
|
||||
ReRoll.Tag := RandSeed;
|
||||
Roll(STR);
|
||||
@@ -103,25 +110,37 @@ begin
|
||||
else Total.Color := clWhite;
|
||||
end;
|
||||
|
||||
procedure TForm2.RerollClick(Sender: TObject);
|
||||
procedure TNewGuyForm.RerollClick(Sender: TObject);
|
||||
begin
|
||||
OldRolls.Items.Insert(0, IntToStr(ReRoll.Tag));
|
||||
Unroll.Enabled := true;
|
||||
RollEm;
|
||||
end;
|
||||
|
||||
procedure TForm2.FormShow(Sender: TObject);
|
||||
function TNewGuyForm.Go: Boolean;
|
||||
begin
|
||||
Randomize;
|
||||
RollEm;
|
||||
with Race do
|
||||
ItemIndex := Random(Items.Count);
|
||||
with Klass do
|
||||
ItemIndex := Random(Items.Count);
|
||||
Name.SetFocus;
|
||||
Tag := 1;
|
||||
Result := mrOk = ShowModal;
|
||||
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
|
||||
RandSeed := StrToInt(OldRolls.Items[0]);
|
||||
OldRolls.Items.Delete(0);
|
||||
@@ -129,11 +148,12 @@ begin
|
||||
RollEm;
|
||||
end;
|
||||
|
||||
procedure TForm2.ServerSuccess(Cmd: CmdType);
|
||||
procedure TNewGuyForm.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);
|
||||
MainForm.SetPasskey(Split(Server.Body,1));
|
||||
MainForm.SetLogin(GetAccount);
|
||||
MainForm.SetPassword(GetPassword);
|
||||
Server.OnSuccess := nil;
|
||||
Server.OnFailure := nil;
|
||||
ModalResult := mrOk;
|
||||
@@ -142,20 +162,43 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm2.ReportSuccess(Cmd: CmdType);
|
||||
procedure TNewGuyForm.BragSuccess(Cmd: CmdType);
|
||||
begin
|
||||
ShowMessage(Server.Body);
|
||||
if (LowerCase(Split(Server.Body,0)) = 'report') then
|
||||
ShowMessage(Split(Server.Body,1));
|
||||
end;
|
||||
|
||||
procedure TForm2.SoldClick(Sender: TObject);
|
||||
function TNewGuyForm.GetAccount: String;
|
||||
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
|
||||
else begin
|
||||
try
|
||||
Screen.Cursor := crHourglass;
|
||||
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
|
||||
on ESockError do begin
|
||||
ShowMessage('Error connecting to server');
|
||||
@@ -168,4 +211,31 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TNewGuyForm.ServerFailure(Cmd: CmdType);
|
||||
begin
|
||||
ShowMessage('Connection to server ' + MainForm.GetHostName + ' failed');
|
||||
end;
|
||||
|
||||
procedure TNewGuyForm.ServerAboutToSend(Sender: TObject);
|
||||
begin
|
||||
Server.SendHeader.Values['Content-Type'] := 'text/plain';
|
||||
Server.SendHeader.Values['Motto'] := MainForm.GetMotto;
|
||||
Server.SendHeader.Values['Guild'] := MainForm.GetGuild;
|
||||
end;
|
||||
|
||||
procedure TNewGuyForm.ApplicationEvents1Minimize(Sender: TObject);
|
||||
begin
|
||||
MainForm.MinimizeIt;
|
||||
end;
|
||||
|
||||
procedure TNewGuyForm.GuildGetSuccess(Cmd: CmdType);
|
||||
var s,b: string;
|
||||
begin
|
||||
b := GuildGet.Body;
|
||||
s := Take(b);
|
||||
if s <> '' then ShowMessage(s);
|
||||
s := Take(b);
|
||||
if s <> '' then Navigate(s);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
BIN
Binary file not shown.
+231
@@ -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
@@ -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
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-682
@@ -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.
|
||||
Binary file not shown.
Binary file not shown.
-1781
File diff suppressed because it is too large
Load Diff
@@ -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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
@@ -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>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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"
|
||||
@@ -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=
|
||||
@@ -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.
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 9.1 KiB |
@@ -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>
|
||||
Binary file not shown.
-140
@@ -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>← Regress</a>
|
||||
</body></html>
|
||||
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 262 B |
Binary file not shown.
Binary file not shown.
@@ -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.
|
||||
@@ -27,19 +27,19 @@ exhibit a discreet
|
||||
and seemingly inexplicable interest in the boy. Strange indeed, as he would not reach
|
||||
his krouchensterm for another harvest or more.
|
||||
And when Grumdrig's resiliant compatriot Paedri
|
||||
appears at 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...
|
||||
|
||||
<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,
|
||||
or almost any computer role-playing game,
|
||||
or who have at any time installed or upgraded their operating system, will find themselves
|
||||
incredibly comfortable with <b>Progress Quest</b>'s very familiar gameplay.
|
||||
<b>Progress Quest</b> follows reverently in the footsteps of recent smash hit
|
||||
online worlds, but is careful to streamline the more tedious aspects of those
|
||||
offerings. Players will still have the satisfaction of building 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,
|
||||
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
|
||||
@@ -47,9 +47,12 @@ and other frustrations common to that older generation of RPG's.
|
||||
|
||||
<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
|
||||
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
|
||||
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
|
||||
clicked too hastily.</i>
|
||||
<p>
|
||||
If "Play online" is checked, your character will share adventures with other <b>Progress
|
||||
Quest</b> characters in an online virtual world. Online play is reccommended only for
|
||||
users with always-on internet connectivity, though sophisiticated algorithms
|
||||
If you choose to play an online game, your character will share adventures with other <b>Progress
|
||||
Quest</b> characters in an online virtual world. Online play requires
|
||||
internet connectivity, though sophisiticated algorithms
|
||||
keep the bandwidth usage to a minimum. You can compare your character against
|
||||
the top <b>Progress Quest</b> players by visiting
|
||||
<a href=http://progressquest.com/hi.php>http://progressquest.com/hi.php</a>.
|
||||
<a href=http://progressquest.com/realms.php>http://progressquest.com/realms.php</a>
|
||||
(or hit <Ctrl>-<B> from within the game).
|
||||
<p>
|
||||
Finally, hit the <code>Sold!</code> button to begin the game. The game will start immediately and
|
||||
you can safely familiarize yourself with the game's single interface screen as the game progresses
|
||||
@@ -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.
|
||||
<p>
|
||||
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).
|
||||
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>
|
||||
<p>
|
||||
QUESTS: When a quest is complete, your character is rewarded with one of: a) a special, valuable, treasure item,
|
||||
b) an improved weapon
|
||||
or piece of armor, c) a boost in stats, or d) a new spell for his spellbook. The character is then assigned
|
||||
QUESTS: When a quest is complete, your character is rewarded with one of:
|
||||
a) a special, valuable, treasure item,
|
||||
b) an improved weapon or piece of armor,
|
||||
c) a boost in stats, or
|
||||
d) a new spell for his spellbook. The character is then assigned
|
||||
a follow-up quest, which he immediately begins to make progress on.
|
||||
<p>
|
||||
EXPERIENCE AND LEVELING UP: Experience represents your character's knowledge about the world
|
||||
@@ -99,7 +105,8 @@ accumulated for each successful murder.
|
||||
<p>
|
||||
SAVING YOUR PROGRESS: Your game is saved whenever you quit, as well as each time your character levels
|
||||
up or completes a quest. You can pick up where you left off by restarting <b>Progress Quest</b> and clicking the <code>Load Game</code>
|
||||
button.
|
||||
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>
|
||||
|
||||
Binary file not shown.
@@ -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
|
||||
@@ -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
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -1,33 +1,108 @@
|
||||
object Form1: TForm1
|
||||
Left = 219
|
||||
Top = 95
|
||||
Width = 561
|
||||
Height = 538
|
||||
BorderIcons = [biSystemMenu, biMinimize]
|
||||
Caption = 'Progress Quest VI'
|
||||
object MainForm: TMainForm
|
||||
Left = 226
|
||||
Top = 145
|
||||
Width = 682
|
||||
Height = 569
|
||||
HorzScrollBar.Visible = False
|
||||
VertScrollBar.Visible = False
|
||||
Caption = 'Progress Quest'
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
Icon.Data = {
|
||||
0000010001002020000000000000A80800001600000028000000200000004000
|
||||
0000010008000000000080040000000000000000000000000000000000000000
|
||||
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
|
||||
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
|
||||
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
|
||||
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
|
||||
CC00003300000033330000336600003399000033CC000033FF00006600000066
|
||||
330000666600006699000066CC000066FF000099000000993300009966000099
|
||||
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
|
||||
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
|
||||
CC003300FF00333300003333330033336600333399003333CC003333FF003366
|
||||
00003366330033666600336699003366CC003366FF0033990000339933003399
|
||||
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
|
||||
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
|
||||
330066006600660099006600CC006600FF006633000066333300663366006633
|
||||
99006633CC006633FF00666600006666330066666600666699006666CC006699
|
||||
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
|
||||
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
|
||||
CC009999000099339900990099009900CC009900000099333300990066009933
|
||||
CC009900FF00996600009966330099336600996699009966CC009933FF009999
|
||||
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
|
||||
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
|
||||
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
|
||||
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
|
||||
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
|
||||
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
|
||||
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
|
||||
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
|
||||
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
|
||||
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
|
||||
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
|
||||
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
|
||||
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
|
||||
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
|
||||
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
|
||||
0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
|
||||
15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
|
||||
2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
|
||||
23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
|
||||
0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
|
||||
0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
|
||||
0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
|
||||
0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
|
||||
0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
|
||||
0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
|
||||
0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
|
||||
0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
|
||||
0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
|
||||
0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
|
||||
0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
|
||||
0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
|
||||
FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
|
||||
FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
|
||||
003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
|
||||
C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
|
||||
KeyPreview = True
|
||||
OldCreateOrder = False
|
||||
Position = poScreenCenter
|
||||
OnClose = FormClose
|
||||
OnCreate = FormCreate
|
||||
OnKeyDown = FormKeyDown
|
||||
OnShow = FormShow
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object Panel1: TPanel
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 185
|
||||
Height = 476
|
||||
Width = 200
|
||||
Height = 507
|
||||
Align = alLeft
|
||||
TabOrder = 0
|
||||
object Label1: TLabel
|
||||
Left = 1
|
||||
Top = 1
|
||||
Width = 183
|
||||
Width = 198
|
||||
Height = 13
|
||||
Align = alTop
|
||||
Caption = 'Character Sheet'
|
||||
@@ -40,16 +115,30 @@ object Form1: TForm1
|
||||
end
|
||||
object Label6: TLabel
|
||||
Left = 1
|
||||
Top = 409
|
||||
Width = 183
|
||||
Top = 229
|
||||
Width = 198
|
||||
Height = 13
|
||||
Align = alTop
|
||||
Caption = 'Experience'
|
||||
end
|
||||
object Label4: TLabel
|
||||
Left = 1
|
||||
Top = 258
|
||||
Width = 198
|
||||
Height = 13
|
||||
Align = alTop
|
||||
Caption = 'Spell Book'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Traits: TListView
|
||||
Left = 1
|
||||
Top = 14
|
||||
Width = 183
|
||||
Width = 198
|
||||
Height = 79
|
||||
Align = alTop
|
||||
Columns = <
|
||||
@@ -62,50 +151,23 @@ object Form1: TForm1
|
||||
Caption = 'Value'
|
||||
end>
|
||||
ColumnClick = False
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
Items.Data = {
|
||||
6E0000000400000000000000FFFFFFFFFFFFFFFF0000000000000000044E616D
|
||||
6500000000FFFFFFFFFFFFFFFF0000000000000000045261636500000000FFFF
|
||||
FFFFFFFFFFFF000000000000000005436C61737300000000FFFFFFFFFFFFFFFF
|
||||
0000000000000000054C6576656C}
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
TabOrder = 2
|
||||
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}
|
||||
RowSelect = True
|
||||
TabOrder = 1
|
||||
ViewStyle = vsReport
|
||||
end
|
||||
object Stats: TListView
|
||||
Left = 1
|
||||
Top = 93
|
||||
Width = 183
|
||||
Width = 198
|
||||
Height = 136
|
||||
Align = alTop
|
||||
Columns = <
|
||||
@@ -118,6 +180,8 @@ object Form1: TForm1
|
||||
Caption = 'Value'
|
||||
end>
|
||||
ColumnClick = False
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
Items.Data = {
|
||||
CE0000000800000000000000FFFFFFFFFFFFFFFF000000000000000003535452
|
||||
00000000FFFFFFFFFFFFFFFF000000000000000003434F4E00000000FFFFFFFF
|
||||
@@ -126,60 +190,116 @@ object Form1: TForm1
|
||||
00000000FFFFFFFFFFFFFFFF00000000000000000343484100000000FFFFFFFF
|
||||
FFFFFFFF0000000000000000064850204D617800000000FFFFFFFFFFFFFFFF00
|
||||
00000000000000064D50204D6178}
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
TabOrder = 0
|
||||
ViewStyle = vsReport
|
||||
end
|
||||
object ExpBar: TProgressBar
|
||||
Left = 1
|
||||
Top = 422
|
||||
Width = 183
|
||||
Top = 242
|
||||
Width = 198
|
||||
Height = 16
|
||||
Align = alTop
|
||||
Min = 0
|
||||
Max = 100
|
||||
ParentShowHint = False
|
||||
Position = 50
|
||||
Smooth = True
|
||||
ShowHint = True
|
||||
TabOrder = 2
|
||||
end
|
||||
object Spells: TListView
|
||||
Left = 1
|
||||
Top = 271
|
||||
Width = 198
|
||||
Height = 203
|
||||
Align = alClient
|
||||
Columns = <
|
||||
item
|
||||
AutoSize = True
|
||||
Caption = 'Spell'
|
||||
end
|
||||
item
|
||||
Caption = 'Level'
|
||||
Width = 60
|
||||
end>
|
||||
ColumnClick = False
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
TabOrder = 3
|
||||
ViewStyle = vsReport
|
||||
end
|
||||
object GoButton: TButton
|
||||
Left = 52
|
||||
Top = 444
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Go'
|
||||
object Cheats: TPanel
|
||||
Left = 1
|
||||
Top = 474
|
||||
Width = 198
|
||||
Height = 32
|
||||
Align = alBottom
|
||||
TabOrder = 4
|
||||
OnClick = GoButtonClick
|
||||
end
|
||||
object Button1: TButton
|
||||
Left = 12
|
||||
Top = 444
|
||||
Width = 25
|
||||
Height = 25
|
||||
Caption = 'L+1'
|
||||
TabOrder = 5
|
||||
OnClick = Button1Click
|
||||
end
|
||||
object Button2: TButton
|
||||
Left = 148
|
||||
Top = 444
|
||||
Width = 27
|
||||
Height = 25
|
||||
Caption = 'Q!'
|
||||
TabOrder = 6
|
||||
OnClick = SpeedButton1Click
|
||||
Visible = False
|
||||
object CashIn: TButton
|
||||
Left = 32
|
||||
Top = 4
|
||||
Width = 25
|
||||
Height = 25
|
||||
Caption = '$'
|
||||
TabOrder = 0
|
||||
OnClick = CashInClick
|
||||
end
|
||||
object Button1: TButton
|
||||
Left = 4
|
||||
Top = 4
|
||||
Width = 25
|
||||
Height = 25
|
||||
Caption = 'L+1'
|
||||
TabOrder = 1
|
||||
OnClick = Button1Click
|
||||
end
|
||||
object FinishQuest: TButton
|
||||
Left = 92
|
||||
Top = 4
|
||||
Width = 27
|
||||
Height = 25
|
||||
Caption = 'Q!'
|
||||
TabOrder = 2
|
||||
OnClick = FinishQuestClick
|
||||
end
|
||||
object Button3: TButton
|
||||
Left = 124
|
||||
Top = 4
|
||||
Width = 27
|
||||
Height = 25
|
||||
Caption = 'X!'
|
||||
TabOrder = 3
|
||||
OnClick = SpeedButton1Click
|
||||
end
|
||||
object CheatPlot: TButton
|
||||
Left = 60
|
||||
Top = 3
|
||||
Width = 27
|
||||
Height = 25
|
||||
Caption = 'P!'
|
||||
TabOrder = 4
|
||||
OnClick = CheatPlotClick
|
||||
end
|
||||
end
|
||||
end
|
||||
object Panel3: TPanel
|
||||
Left = 370
|
||||
Left = 474
|
||||
Top = 0
|
||||
Width = 183
|
||||
Height = 476
|
||||
Align = alLeft
|
||||
Width = 200
|
||||
Height = 507
|
||||
Align = alRight
|
||||
TabOrder = 1
|
||||
object Label3: TLabel
|
||||
Left = 1
|
||||
Top = 201
|
||||
Width = 181
|
||||
Top = 177
|
||||
Width = 198
|
||||
Height = 13
|
||||
Align = alTop
|
||||
Caption = 'Quests'
|
||||
@@ -193,7 +313,7 @@ object Form1: TForm1
|
||||
object Label2: TLabel
|
||||
Left = 1
|
||||
Top = 1
|
||||
Width = 181
|
||||
Width = 198
|
||||
Height = 13
|
||||
Align = alTop
|
||||
Caption = 'Plot Development'
|
||||
@@ -206,20 +326,22 @@ object Form1: TForm1
|
||||
end
|
||||
object QuestBar: TProgressBar
|
||||
Left = 1
|
||||
Top = 459
|
||||
Width = 181
|
||||
Top = 490
|
||||
Width = 198
|
||||
Height = 16
|
||||
Align = alBottom
|
||||
Min = 0
|
||||
Max = 0
|
||||
ParentShowHint = False
|
||||
Smooth = True
|
||||
ShowHint = True
|
||||
TabOrder = 0
|
||||
end
|
||||
object Plots: TListView
|
||||
Left = 1
|
||||
Top = 14
|
||||
Width = 181
|
||||
Height = 171
|
||||
Width = 198
|
||||
Height = 147
|
||||
Align = alTop
|
||||
Columns = <
|
||||
item
|
||||
@@ -227,7 +349,12 @@ object Form1: TForm1
|
||||
Caption = 'Act'
|
||||
end>
|
||||
ColumnClick = False
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
IconOptions.Arrangement = iaLeft
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
ShowColumnHeaders = False
|
||||
StateImages = ImageList1
|
||||
TabOrder = 1
|
||||
@@ -235,20 +362,22 @@ object Form1: TForm1
|
||||
end
|
||||
object PlotBar: TProgressBar
|
||||
Left = 1
|
||||
Top = 185
|
||||
Width = 181
|
||||
Top = 161
|
||||
Width = 198
|
||||
Height = 16
|
||||
Align = alTop
|
||||
Min = 0
|
||||
Max = 0
|
||||
ParentShowHint = False
|
||||
Smooth = True
|
||||
ShowHint = True
|
||||
TabOrder = 2
|
||||
end
|
||||
object Quests: TListView
|
||||
Left = 1
|
||||
Top = 214
|
||||
Width = 181
|
||||
Height = 245
|
||||
Top = 190
|
||||
Width = 198
|
||||
Height = 300
|
||||
Align = alClient
|
||||
Columns = <
|
||||
item
|
||||
@@ -257,8 +386,11 @@ object Form1: TForm1
|
||||
end>
|
||||
ColumnClick = False
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
IconOptions.Arrangement = iaLeft
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
ShowColumnHeaders = False
|
||||
StateImages = ImageList1
|
||||
TabOrder = 3
|
||||
@@ -266,30 +398,16 @@ object Form1: TForm1
|
||||
end
|
||||
end
|
||||
object Panel2: TPanel
|
||||
Left = 185
|
||||
Left = 200
|
||||
Top = 0
|
||||
Width = 185
|
||||
Height = 476
|
||||
Align = alLeft
|
||||
Width = 274
|
||||
Height = 507
|
||||
Align = alClient
|
||||
TabOrder = 2
|
||||
object Label4: TLabel
|
||||
object InventoryLabelAlsoGameStyle: TLabel
|
||||
Left = 1
|
||||
Top = 291
|
||||
Width = 183
|
||||
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
|
||||
Top = 176
|
||||
Width = 272
|
||||
Height = 13
|
||||
Align = alTop
|
||||
Caption = 'Inventory'
|
||||
@@ -302,11 +420,11 @@ object Form1: TForm1
|
||||
end
|
||||
object Label7: TLabel
|
||||
Left = 1
|
||||
Top = 262
|
||||
Width = 183
|
||||
Top = 477
|
||||
Width = 272
|
||||
Height = 13
|
||||
Align = alBottom
|
||||
Caption = 'Encumberance'
|
||||
Caption = 'Encumbrance'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
@@ -314,30 +432,25 @@ object Form1: TForm1
|
||||
Font.Style = []
|
||||
ParentFont = False
|
||||
end
|
||||
object Spells: TListView
|
||||
object Label8: TLabel
|
||||
Left = 1
|
||||
Top = 304
|
||||
Width = 183
|
||||
Height = 171
|
||||
Align = alBottom
|
||||
Columns = <
|
||||
item
|
||||
AutoSize = True
|
||||
Caption = 'Spell'
|
||||
end
|
||||
item
|
||||
Caption = 'Level'
|
||||
Width = 40
|
||||
end>
|
||||
ColumnClick = False
|
||||
TabOrder = 0
|
||||
ViewStyle = vsReport
|
||||
Top = 1
|
||||
Width = 272
|
||||
Height = 13
|
||||
Align = alTop
|
||||
Caption = 'Equipment'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Inventory: TListView
|
||||
Left = 1
|
||||
Top = 14
|
||||
Width = 183
|
||||
Height = 248
|
||||
Top = 189
|
||||
Width = 272
|
||||
Height = 288
|
||||
Align = alClient
|
||||
Columns = <
|
||||
item
|
||||
@@ -345,30 +458,112 @@ object Form1: TForm1
|
||||
Caption = 'Item'
|
||||
end
|
||||
item
|
||||
Alignment = taRightJustify
|
||||
Caption = 'Qty'
|
||||
Width = 40
|
||||
Width = 69
|
||||
end>
|
||||
ColumnClick = False
|
||||
TabOrder = 1
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
TabOrder = 0
|
||||
ViewStyle = vsReport
|
||||
end
|
||||
object EncumBar: TProgressBar
|
||||
Left = 1
|
||||
Top = 275
|
||||
Width = 183
|
||||
Top = 490
|
||||
Width = 272
|
||||
Height = 16
|
||||
Align = alBottom
|
||||
Min = 0
|
||||
Max = 100
|
||||
ParentShowHint = False
|
||||
Position = 50
|
||||
Smooth = True
|
||||
ShowHint = True
|
||||
TabOrder = 1
|
||||
end
|
||||
object Equips: TListView
|
||||
Left = 1
|
||||
Top = 14
|
||||
Width = 272
|
||||
Height = 162
|
||||
Align = alTop
|
||||
Columns = <
|
||||
item
|
||||
Caption = 'Position'
|
||||
Width = 60
|
||||
end
|
||||
item
|
||||
AutoSize = True
|
||||
Caption = 'Equipped'
|
||||
end>
|
||||
ColumnClick = False
|
||||
FlatScrollBars = True
|
||||
HideSelection = False
|
||||
Items.Data = {
|
||||
410100000B00000000000000FFFFFFFFFFFFFFFF000000000000000006576561
|
||||
706F6E00000000FFFFFFFFFFFFFFFF000000000000000006536869656C640000
|
||||
0000FFFFFFFFFFFFFFFF00000000000000000448656C6D00000000FFFFFFFFFF
|
||||
FFFFFF0000000000000000074861756265726B00000000FFFFFFFFFFFFFFFF00
|
||||
000000000000000A4272617373616972747300000000FFFFFFFFFFFFFFFF0000
|
||||
0000000000000956616D62726163657300000000FFFFFFFFFFFFFFFF00000000
|
||||
00000000094761756E746C65747300000000FFFFFFFFFFFFFFFF000000000000
|
||||
00000847616D6265736F6E00000000FFFFFFFFFFFFFFFF000000000000000007
|
||||
4375697373657300000000FFFFFFFFFFFFFFFF00000000000000000747726561
|
||||
76657300000000FFFFFFFFFFFFFFFF000000000000000009536F6C6C65726574
|
||||
73}
|
||||
MultiSelect = True
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
ShowColumnHeaders = False
|
||||
TabOrder = 2
|
||||
ViewStyle = vsReport
|
||||
end
|
||||
object vars: TPanel
|
||||
Left = 84
|
||||
Top = 32
|
||||
Width = 177
|
||||
Height = 129
|
||||
Caption = 'vars'
|
||||
TabOrder = 3
|
||||
Visible = False
|
||||
object fTask: TLabel
|
||||
Left = 20
|
||||
Top = 16
|
||||
Width = 27
|
||||
Height = 13
|
||||
AutoSize = False
|
||||
Caption = 'fTask'
|
||||
Color = clMoneyGreen
|
||||
ParentColor = False
|
||||
end
|
||||
object fQuest: TLabel
|
||||
Left = 24
|
||||
Top = 36
|
||||
Width = 31
|
||||
Height = 13
|
||||
AutoSize = False
|
||||
Caption = 'fQuest'
|
||||
Color = clSkyBlue
|
||||
ParentColor = False
|
||||
end
|
||||
object fQueue: TListBox
|
||||
Left = 12
|
||||
Top = 72
|
||||
Width = 49
|
||||
Height = 45
|
||||
ItemHeight = 13
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
object Panel4: TPanel
|
||||
Left = 0
|
||||
Top = 476
|
||||
Width = 553
|
||||
Top = 507
|
||||
Width = 674
|
||||
Height = 35
|
||||
Align = alBottom
|
||||
Caption = 'Panel4'
|
||||
@@ -376,7 +571,7 @@ object Form1: TForm1
|
||||
object Kill: TStatusBar
|
||||
Left = 1
|
||||
Top = -1
|
||||
Width = 551
|
||||
Width = 672
|
||||
Height = 19
|
||||
Panels = <
|
||||
item
|
||||
@@ -385,10 +580,10 @@ object Form1: TForm1
|
||||
SimplePanel = True
|
||||
SimpleText = 'Welcome to Progress Quest!'
|
||||
end
|
||||
object KillBar: TProgressBar
|
||||
object TaskBar: TProgressBar
|
||||
Left = 1
|
||||
Top = 18
|
||||
Width = 551
|
||||
Width = 672
|
||||
Height = 16
|
||||
Align = alBottom
|
||||
Min = 0
|
||||
@@ -412,7 +607,7 @@ object Form1: TForm1
|
||||
Left = 92
|
||||
Top = 52
|
||||
Bitmap = {
|
||||
494C01010200040004000C000C00FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
|
||||
494C01010200040004000C000C00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
|
||||
0000000000003600000028000000300000000C00000001001000000000008004
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
@@ -455,6 +650,7 @@ object Form1: TForm1
|
||||
000000000000000000000000FFFFFF0000100100000000007FD7FD0000000000
|
||||
7FD77D00000000007FD63D00000000007FD41D00000000007FD48D0000000000
|
||||
7FD5C500000000007FD7E500000000007FD7F500000000007FD7FD0000000000
|
||||
0010010000000000FFFFFF0000000000}
|
||||
0010010000000000FFFFFF000000000000000000000000000000000000000000
|
||||
000000000000}
|
||||
end
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,10 +1,10 @@
|
||||
object Form2: TForm2
|
||||
Left = 264
|
||||
Top = 169
|
||||
object NewGuyForm: TNewGuyForm
|
||||
Left = 323
|
||||
Top = 164
|
||||
BorderIcons = []
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Progress Quest - New Character'
|
||||
ClientHeight = 457
|
||||
ClientHeight = 458
|
||||
ClientWidth = 509
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
@@ -46,43 +46,43 @@ object Form2: TForm2
|
||||
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}
|
||||
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A
|
||||
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C
|
||||
0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311
|
||||
15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313
|
||||
2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22
|
||||
23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A
|
||||
0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A
|
||||
0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A
|
||||
0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A
|
||||
0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A
|
||||
0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A
|
||||
0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A
|
||||
0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A
|
||||
0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A
|
||||
0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A
|
||||
0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A
|
||||
0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A
|
||||
0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A
|
||||
0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF
|
||||
FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF
|
||||
FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00
|
||||
003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03
|
||||
C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87}
|
||||
OldCreateOrder = False
|
||||
Position = poScreenCenter
|
||||
OnShow = FormShow
|
||||
@@ -90,9 +90,9 @@ object Form2: TForm2
|
||||
TextHeight = 13
|
||||
object Race: TRadioGroup
|
||||
Left = 8
|
||||
Top = 52
|
||||
Top = 48
|
||||
Width = 185
|
||||
Height = 397
|
||||
Height = 401
|
||||
Caption = 'Race'
|
||||
Items.Strings = (
|
||||
'Half Orc'
|
||||
@@ -108,20 +108,21 @@ object Form2: TForm2
|
||||
'Crested Dwarf'
|
||||
'Eel Man'
|
||||
'Panda Man'
|
||||
'Monster'
|
||||
'Trans-Kobold'
|
||||
'Enchanted Motorcycle'
|
||||
'Will o'#39' the Wisp'
|
||||
'Battle-Finch'
|
||||
'Double Wookie'
|
||||
'Double Wookiee'
|
||||
'Skraeling'
|
||||
'Demicanadian')
|
||||
'Demicanadian'
|
||||
'Land Squid')
|
||||
TabOrder = 0
|
||||
end
|
||||
object Klass: TRadioGroup
|
||||
Left = 200
|
||||
Top = 20
|
||||
Top = 48
|
||||
Width = 185
|
||||
Height = 345
|
||||
Height = 365
|
||||
Caption = 'Class'
|
||||
Items.Strings = (
|
||||
'Ur-Paladin'
|
||||
@@ -135,73 +136,74 @@ object Form2: TForm2
|
||||
'Puma Burgular'
|
||||
'Runeloremaster'
|
||||
'Tongueblade'
|
||||
'Hunter Stalker'
|
||||
'Hunter Strangler'
|
||||
'Battle-Felon'
|
||||
'Tickle-Mimic'
|
||||
'Slow Poisoner'
|
||||
'Bastard Lunatic'
|
||||
'Lowling')
|
||||
'Lowling'
|
||||
'Birdrider')
|
||||
TabOrder = 1
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 392
|
||||
Top = 20
|
||||
Top = 48
|
||||
Width = 109
|
||||
Height = 305
|
||||
Height = 365
|
||||
Caption = 'Stats'
|
||||
TabOrder = 2
|
||||
object Label3: TLabel
|
||||
Left = 22
|
||||
Top = 56
|
||||
Top = 60
|
||||
Width = 23
|
||||
Height = 13
|
||||
Caption = 'CON'
|
||||
end
|
||||
object Label7: TLabel
|
||||
Left = 22
|
||||
Top = 152
|
||||
Top = 156
|
||||
Width = 22
|
||||
Height = 13
|
||||
Caption = 'CHA'
|
||||
end
|
||||
object Label6: TLabel
|
||||
Left = 22
|
||||
Top = 128
|
||||
Top = 132
|
||||
Width = 21
|
||||
Height = 13
|
||||
Caption = 'WIS'
|
||||
end
|
||||
object Label5: TLabel
|
||||
Left = 22
|
||||
Top = 104
|
||||
Top = 108
|
||||
Width = 18
|
||||
Height = 13
|
||||
Caption = 'INT'
|
||||
end
|
||||
object Label4: TLabel
|
||||
Left = 22
|
||||
Top = 80
|
||||
Top = 84
|
||||
Width = 22
|
||||
Height = 13
|
||||
Caption = 'DEX'
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 22
|
||||
Top = 32
|
||||
Top = 36
|
||||
Width = 22
|
||||
Height = 13
|
||||
Caption = 'STR'
|
||||
end
|
||||
object Label8: TLabel
|
||||
Left = 22
|
||||
Top = 188
|
||||
Top = 204
|
||||
Width = 24
|
||||
Height = 13
|
||||
Caption = 'Total'
|
||||
end
|
||||
object CHA: TPanel
|
||||
Left = 52
|
||||
Top = 148
|
||||
Top = 152
|
||||
Width = 37
|
||||
Height = 21
|
||||
BevelOuter = bvLowered
|
||||
@@ -210,7 +212,7 @@ object Form2: TForm2
|
||||
end
|
||||
object WIS: TPanel
|
||||
Left = 52
|
||||
Top = 124
|
||||
Top = 128
|
||||
Width = 37
|
||||
Height = 21
|
||||
BevelOuter = bvLowered
|
||||
@@ -219,7 +221,7 @@ object Form2: TForm2
|
||||
end
|
||||
object INT: TPanel
|
||||
Left = 52
|
||||
Top = 100
|
||||
Top = 104
|
||||
Width = 37
|
||||
Height = 21
|
||||
BevelOuter = bvLowered
|
||||
@@ -228,7 +230,7 @@ object Form2: TForm2
|
||||
end
|
||||
object DEX: TPanel
|
||||
Left = 52
|
||||
Top = 76
|
||||
Top = 80
|
||||
Width = 37
|
||||
Height = 21
|
||||
BevelOuter = bvLowered
|
||||
@@ -237,7 +239,7 @@ object Form2: TForm2
|
||||
end
|
||||
object CON: TPanel
|
||||
Left = 52
|
||||
Top = 52
|
||||
Top = 56
|
||||
Width = 37
|
||||
Height = 21
|
||||
BevelOuter = bvLowered
|
||||
@@ -246,7 +248,7 @@ object Form2: TForm2
|
||||
end
|
||||
object STR: TPanel
|
||||
Left = 52
|
||||
Top = 28
|
||||
Top = 32
|
||||
Width = 37
|
||||
Height = 21
|
||||
BevelOuter = bvLowered
|
||||
@@ -255,7 +257,7 @@ object Form2: TForm2
|
||||
end
|
||||
object Reroll: TButton
|
||||
Left = 18
|
||||
Top = 232
|
||||
Top = 284
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Roll'
|
||||
@@ -264,7 +266,7 @@ object Form2: TForm2
|
||||
end
|
||||
object Total: TPanel
|
||||
Left = 52
|
||||
Top = 184
|
||||
Top = 200
|
||||
Width = 37
|
||||
Height = 21
|
||||
BevelOuter = bvLowered
|
||||
@@ -274,7 +276,7 @@ object Form2: TForm2
|
||||
end
|
||||
object Unroll: TButton
|
||||
Left = 18
|
||||
Top = 264
|
||||
Top = 316
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Unroll'
|
||||
@@ -284,8 +286,8 @@ object Form2: TForm2
|
||||
end
|
||||
end
|
||||
object Sold: TButton
|
||||
Left = 414
|
||||
Top = 412
|
||||
Left = 342
|
||||
Top = 424
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Sold!'
|
||||
@@ -293,47 +295,9 @@ object Form2: TForm2
|
||||
TabOrder = 3
|
||||
OnClick = SoldClick
|
||||
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
|
||||
Left = 8
|
||||
Top = 24
|
||||
Top = 20
|
||||
Width = 185
|
||||
Height = 21
|
||||
EditLabel.Width = 28
|
||||
@@ -341,53 +305,91 @@ object Form2: TForm2
|
||||
EditLabel.Caption = 'Name'
|
||||
LabelPosition = lpAbove
|
||||
LabelSpacing = 3
|
||||
TabOrder = 5
|
||||
MaxLength = 30
|
||||
TabOrder = 4
|
||||
Text = 'Grumdrig'
|
||||
end
|
||||
object OldRolls: TListBox
|
||||
Left = 396
|
||||
Top = 232
|
||||
Top = 228
|
||||
Width = 21
|
||||
Height = 13
|
||||
ItemHeight = 13
|
||||
TabOrder = 6
|
||||
TabOrder = 5
|
||||
Visible = False
|
||||
end
|
||||
object Button2: TButton
|
||||
Left = 414
|
||||
Top = 376
|
||||
Left = 426
|
||||
Top = 424
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Never mind.'
|
||||
Caption = 'Cancel'
|
||||
ModalResult = 2
|
||||
TabOrder = 7
|
||||
TabOrder = 6
|
||||
end
|
||||
object Online: TCheckBox
|
||||
Left = 400
|
||||
Top = 340
|
||||
Width = 97
|
||||
Height = 17
|
||||
Caption = 'Play online'
|
||||
Checked = True
|
||||
State = cbChecked
|
||||
object Account: TLabeledEdit
|
||||
Left = 200
|
||||
Top = 20
|
||||
Width = 185
|
||||
Height = 21
|
||||
EditLabel.Width = 40
|
||||
EditLabel.Height = 13
|
||||
EditLabel.Caption = 'Account'
|
||||
LabelPosition = lpAbove
|
||||
LabelSpacing = 3
|
||||
TabOrder = 7
|
||||
Visible = False
|
||||
end
|
||||
object Password: TLabeledEdit
|
||||
Left = 392
|
||||
Top = 20
|
||||
Width = 109
|
||||
Height = 21
|
||||
EditLabel.Width = 46
|
||||
EditLabel.Height = 13
|
||||
EditLabel.Caption = 'Password'
|
||||
LabelPosition = lpAbove
|
||||
LabelSpacing = 3
|
||||
PasswordChar = '*'
|
||||
TabOrder = 8
|
||||
Visible = False
|
||||
end
|
||||
object Server: TNMHTTP
|
||||
Port = 0
|
||||
ReportLevel = 0
|
||||
Body = 'Default.htm'
|
||||
Header = 'Head.txt'
|
||||
HeaderInfo.Cookie = 'yumyum'
|
||||
HeaderInfo.Password = 'chickens'
|
||||
HeaderInfo.Referer = 'PQ6.1'
|
||||
InputFileMode = False
|
||||
OutputFileMode = False
|
||||
OnAboutToSend = ServerAboutToSend
|
||||
OnSuccess = ServerSuccess
|
||||
OnFailure = ServerFailure
|
||||
ProxyPort = 0
|
||||
Left = 332
|
||||
Top = 312
|
||||
end
|
||||
object PoorCodeDesign: TNMURL
|
||||
Left = 336
|
||||
Top = 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
|
||||
@@ -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
Reference in New Issue
Block a user