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

svn, so that changes will be trackable thataway.

As checked in, right here, this is PQ 6.0
This commit is contained in:
Eric Fredricksen
2006-12-24 16:42:50 +00:00
commit d3bba84017
184 changed files with 12251 additions and 0 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+749
View File
@@ -0,0 +1,749 @@
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'
'Mulligan'
'Nestor'#39's Bright Idea'
'Holy Batpole'
'Tumor (Benign)'
'Braingate'
'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'
'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'
'Round Shield|5'
'Scutum|6'
'Kite Shield|7'
'Pavise|8'
'Tower Shield|9'
'Baroque Shield|11'
'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'
'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'
'Bowie Knife|2'
'Claw Hammer|2'
'Andiron|3'
'Hatchet|3'
'Crowbar|4'
'Mace|4'
'Shortsword|5'
'Longiron|5'
'Zip Gun|6'
'Longsword|6'
'Broadsword|7'
'Morning Star|8'
'Bastard Sword|9'
'Lance|10'
'Halberd|11'
'Poleax|12'
'Bandyclef|15'
'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')
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')
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')
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'
'planter box'
'anvil'
'axle'
'tuppence'
'casket')
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'
'Gnoll|2|collar'
'Gnome|1|hat'
'Goblin|1|ear'
'Jellyrock|9|seedling'
'Beer Golem|15|foam'
'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|liver'
'Imp|2|tail'
'Invisible Stalker|8|*'
'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'
'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'
'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'
'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'
'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|poison'
'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
+52
View File
@@ -0,0 +1,52 @@
unit Config;
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.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+1664
View File
File diff suppressed because it is too large Load Diff
+48
View File
@@ -0,0 +1,48 @@
unit Front;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm3 = class(TForm)
Panel1: TPanel;
Logo: TImage;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
OpenDialog1: TOpenDialog;
Button4: TButton;
Label2: TLabel;
Label3: TLabel;
HomeLink: TLabel;
procedure HomeLinkClick(Sender: TObject);
procedure LogoClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses ShellAPI, Main, Info;
{$R *.dfm}
procedure TForm3.HomeLinkClick(Sender: TObject);
begin
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/pq.html', 0, '', SW_SHOW);
end;
procedure TForm3.LogoClick(Sender: TObject);
begin
ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', 0, '', SW_SHOW);
end;
end.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+101
View File
@@ -0,0 +1,101 @@
object Form4: TForm4
Left = 192
Top = 107
Width = 696
Height = 480
Caption = 'Progress Quest VI'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000000000000A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
CC00003300000033330000336600003399000033CC000033FF00006600000066
330000666600006699000066CC000066FF000099000000993300009966000099
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
CC003300FF00333300003333330033336600333399003333CC003333FF003366
00003366330033666600336699003366CC003366FF0033990000339933003399
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
330066006600660099006600CC006600FF006633000066333300663366006633
99006633CC006633FF00666600006666330066666600666699006666CC006699
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
CC009999000099339900990099009900CC009900000099333300990066009933
CC009900FF00996600009966330099336600996699009966CC009933FF009999
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF005852
5151515151515258585858585858585858585858585858585852515151515852
51514A4A4A515152585858585858585858585858585858585251514B4A4B5852
514B4A4A4A4B51515258585858585858585858585858585251514B4A4A4A5852
150F4A4A4A4A4B5151515152525251525252525252525151514A0F154A4B580B
0E0E0B4A4A4A4A4A5151515151515151515151515151514B4B0B0E0E0B512311
15220E514A4A4A4A4A4A4A4B4A4A4A4A4A4A4A4A4A4A4A4A4A0F22143D234313
22431151514A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A11432213435822
23296710294B4A4A44442244154422441544224444444A221012292322585858
58514443151D4B4A442215221522152215221522154B0E151544515252585858
5879294A43140D4A22150D0E2243100E1D0D2215220D14434A03525258585858
585852514A224A430E0E1443220D111543140E0E4344224A4A51515258585858
585858514B1514220E2243150D444444444322222214154B4B4B515258585858
585858585174151D4A434A4A15104422234A434A1D15742A4A4B515258585858
585858585222444B457422224B44224B222274454B4422524A4B515258585858
58585858510A4B4C3F4C44EA4A22224A6D444C3F4C4B0A4A4A51515258585858
585858580D15294B4523ECC8C44A4AE946EC23454B29150D4A51515858585858
58585858444A4A234AAEC8FCFCA7E9F9F946AE44234A4A435151525858585858
58585858232244224AEFA7FCFC62F9F9F946EF4A224422235151525858585858
585858584B434A110C4A8DA862F9F9F9698D4A0C114A43295151525858585858
5858585852222210514A8D46F9F9F962A78D4A51104322524B51525858585858
58585858524B0C034AEB46F9F9F962FCFCA7F84A030C4B4A4A51515258585858
5858585251514B4AED46F9F9F9E3A8FCFCFCA7ED4A4B4A4A4A4B515152585858
58585851514B4AED46F9F9F9E3F7F7E6FCFCFCA7ED4A4A4A4A4A4B5152585858
585852514B4AEB46F9F9F9E3ED525892E6FCFCFCA7EB4A4A4A4A4A4B51525858
585852514A6D46F9F9F9E3ED5858585892E6FCFCFCA76D4A4A4A4A4A51515858
5858514B14B5F047F9E3F7585858585858B5E6FCC8DDB5144A4A4A4A51515858
585852AE09F3F3BCE3B55858585858585858B5D0DDF3F309AE4A4B4B51515858
5858BCF4F5F4F4F4075858585858585858585807F4F4F4F5DEBC515151525858
58991BF5F5F2DDB6585858585858585858585858B6DDF3F5F51B995152585858
5892B51909B592585858585858585858585858585892B509DDB5925858585858
58720909ECEB58585858585858585858585858585858F8EC0909725858585858
58F78DAEED5858585858585858585858585858585858581CAE8D925858580000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000}
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object WebBrowser1: TWebBrowser
Left = 0
Top = 0
Width = 688
Height = 453
Align = alClient
TabOrder = 0
ControlData = {
4C0000001B470000D22E00000000000000000000000000000000000000000000
000000004C000000000000000000000001000000E0D057007335CF11AE690800
2B2E126208000000000000004C0000000114020000000000C000000000000046
8000000000000000000000000000000000000000000000000000000000000000
00000000000000000100000000000000000000000000000000000000}
end
end
+31
View File
@@ -0,0 +1,31 @@
unit Info;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw;
type
TForm4 = class(TForm)
WebBrowser1: TWebBrowser;
private
{ Private declarations }
public
procedure Go(url: String);
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Go(url: String);
begin
WebBrowser1.Navigate(url);
Show;
end;
end.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+636
View File
@@ -0,0 +1,636 @@
object Form1: TForm1
Left = 163
Top = 116
Width = 682
Height = 569
HorzScrollBar.Visible = False
VertScrollBar.Visible = False
BorderIcons = [biSystemMenu, biMinimize]
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
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}
KeyPreview = True
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnCreate = FormCreate
OnKeyDown = FormKeyDown
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 0
Top = 0
Width = 200
Height = 507
Align = alLeft
TabOrder = 0
object Label1: TLabel
Left = 1
Top = 1
Width = 198
Height = 13
Align = alTop
Caption = 'Character Sheet'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label6: TLabel
Left = 1
Top = 229
Width = 198
Height = 13
Align = alTop
Caption = 'Experience'
end
object Label4: TLabel
Left = 1
Top = 258
Width = 198
Height = 13
Align = alTop
Caption = 'Spell Book'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Traits: TListView
Left = 1
Top = 14
Width = 198
Height = 79
Align = alTop
Columns = <
item
Caption = 'Trait'
Width = 60
end
item
AutoSize = True
Caption = 'Value'
end>
ColumnClick = False
FlatScrollBars = True
Items.Data = {
6E0000000400000000000000FFFFFFFFFFFFFFFF0000000000000000044E616D
6500000000FFFFFFFFFFFFFFFF0000000000000000045261636500000000FFFF
FFFFFFFFFFFF000000000000000005436C61737300000000FFFFFFFFFFFFFFFF
0000000000000000054C6576656C}
ReadOnly = True
TabOrder = 1
ViewStyle = vsReport
end
object Stats: TListView
Left = 1
Top = 93
Width = 198
Height = 136
Align = alTop
Columns = <
item
Caption = 'Stat'
Width = 60
end
item
AutoSize = True
Caption = 'Value'
end>
ColumnClick = False
FlatScrollBars = True
Items.Data = {
CE0000000800000000000000FFFFFFFFFFFFFFFF000000000000000003535452
00000000FFFFFFFFFFFFFFFF000000000000000003434F4E00000000FFFFFFFF
FFFFFFFF00000000000000000344455800000000FFFFFFFFFFFFFFFF00000000
0000000003494E5400000000FFFFFFFFFFFFFFFF000000000000000003574953
00000000FFFFFFFFFFFFFFFF00000000000000000343484100000000FFFFFFFF
FFFFFFFF0000000000000000064850204D617800000000FFFFFFFFFFFFFFFF00
00000000000000064D50204D6178}
ReadOnly = True
TabOrder = 0
ViewStyle = vsReport
end
object ExpBar: TProgressBar
Left = 1
Top = 242
Width = 198
Height = 16
Align = alTop
Min = 0
Max = 100
ParentShowHint = False
Position = 50
Smooth = True
ShowHint = True
TabOrder = 2
end
object Spells: TListView
Left = 1
Top = 271
Width = 198
Height = 203
Align = alClient
Columns = <
item
AutoSize = True
Caption = 'Spell'
end
item
Caption = 'Level'
Width = 60
end>
ColumnClick = False
FlatScrollBars = True
ReadOnly = True
TabOrder = 3
ViewStyle = vsReport
end
object Cheats: TPanel
Left = 1
Top = 474
Width = 198
Height = 32
Align = alBottom
TabOrder = 4
Visible = False
object CashIn: TButton
Left = 32
Top = 4
Width = 25
Height = 25
Caption = '$'
TabOrder = 0
OnClick = CashInClick
end
object Button1: TButton
Left = 4
Top = 4
Width = 25
Height = 25
Caption = 'L+1'
TabOrder = 1
OnClick = Button1Click
end
object FinishQuest: TButton
Left = 92
Top = 4
Width = 27
Height = 25
Caption = 'Q!'
TabOrder = 2
OnClick = FinishQuestClick
end
object Button3: TButton
Left = 124
Top = 4
Width = 27
Height = 25
Caption = 'X!'
TabOrder = 3
OnClick = SpeedButton1Click
end
object CheatPlot: TButton
Left = 60
Top = 3
Width = 27
Height = 25
Caption = 'P!'
TabOrder = 4
OnClick = CheatPlotClick
end
end
end
object Panel3: TPanel
Left = 474
Top = 0
Width = 200
Height = 507
Align = alRight
TabOrder = 1
object Label3: TLabel
Left = 1
Top = 177
Width = 198
Height = 13
Align = alTop
Caption = 'Quests'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label2: TLabel
Left = 1
Top = 1
Width = 198
Height = 13
Align = alTop
Caption = 'Plot Development'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object QuestBar: TProgressBar
Left = 1
Top = 490
Width = 198
Height = 16
Align = alBottom
Min = 0
Max = 0
ParentShowHint = False
Smooth = True
ShowHint = True
TabOrder = 0
end
object Plots: TListView
Left = 1
Top = 14
Width = 198
Height = 147
Align = alTop
Columns = <
item
AutoSize = True
Caption = 'Act'
end>
ColumnClick = False
FlatScrollBars = True
IconOptions.Arrangement = iaLeft
ReadOnly = True
ShowColumnHeaders = False
StateImages = ImageList1
TabOrder = 1
ViewStyle = vsReport
end
object PlotBar: TProgressBar
Left = 1
Top = 161
Width = 198
Height = 16
Align = alTop
Min = 0
Max = 0
ParentShowHint = False
Smooth = True
ShowHint = True
TabOrder = 2
end
object Quests: TListView
Left = 1
Top = 190
Width = 198
Height = 300
Align = alClient
Columns = <
item
AutoSize = True
Caption = 'Quest'
end>
ColumnClick = False
FlatScrollBars = True
IconOptions.Arrangement = iaLeft
ReadOnly = True
ShowColumnHeaders = False
StateImages = ImageList1
TabOrder = 3
ViewStyle = vsReport
end
end
object Panel2: TPanel
Left = 200
Top = 0
Width = 274
Height = 507
Align = alClient
TabOrder = 2
object InventoryLabelAlsoGameStyle: TLabel
Left = 1
Top = 176
Width = 272
Height = 13
Align = alTop
Caption = 'Inventory'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label7: TLabel
Left = 1
Top = 477
Width = 272
Height = 13
Align = alBottom
Caption = 'Encumbrance'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object Label8: TLabel
Left = 1
Top = 1
Width = 272
Height = 13
Align = alTop
Caption = 'Equipment'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Inventory: TListView
Left = 1
Top = 189
Width = 272
Height = 288
Align = alClient
Columns = <
item
AutoSize = True
Caption = 'Item'
end
item
Alignment = taRightJustify
Caption = 'Qty'
Width = 69
end>
ColumnClick = False
FlatScrollBars = True
ReadOnly = True
TabOrder = 0
ViewStyle = vsReport
end
object EncumBar: TProgressBar
Left = 1
Top = 490
Width = 272
Height = 16
Align = alBottom
Min = 0
Max = 100
ParentShowHint = False
Position = 50
Smooth = True
ShowHint = True
TabOrder = 1
end
object Equips: TListView
Left = 1
Top = 14
Width = 272
Height = 162
Align = alTop
Columns = <
item
Caption = 'Position'
Width = 60
end
item
AutoSize = True
Caption = 'Equipped'
end>
ColumnClick = False
FlatScrollBars = True
Items.Data = {
410100000B00000000000000FFFFFFFFFFFFFFFF000000000000000006576561
706F6E00000000FFFFFFFFFFFFFFFF000000000000000006536869656C640000
0000FFFFFFFFFFFFFFFF00000000000000000448656C6D00000000FFFFFFFFFF
FFFFFF0000000000000000074861756265726B00000000FFFFFFFFFFFFFFFF00
000000000000000A4272617373616972747300000000FFFFFFFFFFFFFFFF0000
0000000000000956616D62726163657300000000FFFFFFFFFFFFFFFF00000000
00000000094761756E746C65747300000000FFFFFFFFFFFFFFFF000000000000
00000847616D6265736F6E00000000FFFFFFFFFFFFFFFF000000000000000007
4375697373657300000000FFFFFFFFFFFFFFFF00000000000000000747726561
76657300000000FFFFFFFFFFFFFFFF000000000000000009536F6C6C65726574
73}
ReadOnly = True
ShowColumnHeaders = False
TabOrder = 2
ViewStyle = vsReport
end
object vars: TPanel
Left = 64
Top = 40
Width = 185
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 = 16
Top = 84
Width = 121
Height = 41
ItemHeight = 13
TabOrder = 0
end
end
end
object Panel4: TPanel
Left = 0
Top = 507
Width = 674
Height = 35
Align = alBottom
Caption = 'Panel4'
TabOrder = 3
object Kill: TStatusBar
Left = 1
Top = -1
Width = 672
Height = 19
Panels = <
item
Width = 50
end>
SimplePanel = True
SimpleText = 'Welcome to Progress Quest!'
end
object TaskBar: TProgressBar
Left = 1
Top = 18
Width = 672
Height = 16
Align = alBottom
Min = 0
Max = 100
Position = 50
Smooth = True
Step = 1
TabOrder = 1
end
end
object Timer1: TTimer
Enabled = False
Interval = 100
OnTimer = Timer1Timer
Left = 40
Top = 120
end
object ImageList1: TImageList
Height = 12
Width = 12
Left = 92
Top = 52
Bitmap = {
494C01010200040004000C000C00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000300000000C00000001001000000000008004
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000424D3E000000000000003E000000
28000000300000000C0000000100010000000000600000000000000000000000
000000000000000000000000FFFFFF0000100100000000007FD7FD0000000000
7FD77D00000000007FD63D00000000007FD41D00000000007FD48D0000000000
7FD5C500000000007FD7E500000000007FD7F500000000007FD7FD0000000000
0010010000000000FFFFFF000000000000000000000000000000000000000000
000000000000}
end
end
+1193
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+394
View File
@@ -0,0 +1,394 @@
object Form2: TForm2
Left = 264
Top = 169
BorderIcons = []
BorderStyle = bsDialog
Caption = 'Progress Quest - New Character'
ClientHeight = 457
ClientWidth = 509
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000000000000A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
CC00003300000033330000336600003399000033CC000033FF00006600000066
330000666600006699000066CC000066FF000099000000993300009966000099
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
CC003300FF00333300003333330033336600333399003333CC003333FF003366
00003366330033666600336699003366CC003366FF0033990000339933003399
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
330066006600660099006600CC006600FF006633000066333300663366006633
99006633CC006633FF00666600006666330066666600666699006666CC006699
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
CC009999000099339900990099009900CC009900000099333300990066009933
CC009900FF00996600009966330099336600996699009966CC009933FF009999
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
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
Position = poScreenCenter
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Race: TRadioGroup
Left = 8
Top = 52
Width = 185
Height = 401
Caption = 'Race'
Items.Strings = (
'Half Orc'
'Half Man'
'Half Halfling'
'Double Hobbit'
'Low Elf'
'Dung Elf'
'Talking Pony'
'Greater Gnome'
'Gyrognome'
'Lesser Dwarf'
'Crested Dwarf'
'Eel Man'
'Panda Man'
'Trans-Kobold'
'Enchanted Motorcycle'
'Will o'#39' the Wisp'
'Battle-Finch'
'Double Wookiee'
'Skraeling'
'Demicanadian')
TabOrder = 0
end
object Klass: TRadioGroup
Left = 200
Top = 52
Width = 185
Height = 345
Caption = 'Class'
Items.Strings = (
'Ur-Paladin'
'Voodoo Princess'
'Robot Monk'
'Mu-Fu Monk'
'Mage Illusioner'
'Shiv-Knight'
'Inner Mason'
'Fighter/Organist'
'Puma Burgular'
'Runeloremaster'
'Tongueblade'
'Hunter Strangler'
'Battle-Felon'
'Tickle-Mimic'
'Slow Poisoner'
'Bastard Lunatic'
'Lowling')
TabOrder = 1
end
object GroupBox1: TGroupBox
Left = 392
Top = 52
Width = 109
Height = 345
Caption = 'Stats'
TabOrder = 2
object Label3: TLabel
Left = 22
Top = 60
Width = 23
Height = 13
Caption = 'CON'
end
object Label7: TLabel
Left = 22
Top = 156
Width = 22
Height = 13
Caption = 'CHA'
end
object Label6: TLabel
Left = 22
Top = 132
Width = 21
Height = 13
Caption = 'WIS'
end
object Label5: TLabel
Left = 22
Top = 108
Width = 18
Height = 13
Caption = 'INT'
end
object Label4: TLabel
Left = 22
Top = 84
Width = 22
Height = 13
Caption = 'DEX'
end
object Label2: TLabel
Left = 22
Top = 36
Width = 22
Height = 13
Caption = 'STR'
end
object Label8: TLabel
Left = 22
Top = 204
Width = 24
Height = 13
Caption = 'Total'
end
object CHA: TPanel
Left = 52
Top = 152
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 0
end
object WIS: TPanel
Left = 52
Top = 128
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 1
end
object INT: TPanel
Left = 52
Top = 104
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 2
end
object DEX: TPanel
Left = 52
Top = 80
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 3
end
object CON: TPanel
Left = 52
Top = 56
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 4
end
object STR: TPanel
Left = 52
Top = 32
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 5
end
object Reroll: TButton
Left = 18
Top = 264
Width = 75
Height = 25
Caption = 'Roll'
TabOrder = 6
OnClick = RerollClick
end
object Total: TPanel
Left = 52
Top = 200
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
Color = clWhite
TabOrder = 7
end
object Unroll: TButton
Left = 18
Top = 296
Width = 75
Height = 25
Caption = 'Unroll'
Enabled = False
TabOrder = 8
OnClick = UnrollClick
end
end
object Sold: TButton
Left = 330
Top = 416
Width = 75
Height = 25
Caption = 'Sold!'
Default = True
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
Width = 185
Height = 21
EditLabel.Width = 28
EditLabel.Height = 13
EditLabel.Caption = 'Name'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 5
Text = 'Grumdrig'
end
object OldRolls: TListBox
Left = 396
Top = 232
Width = 21
Height = 13
ItemHeight = 13
TabOrder = 6
Visible = False
end
object Button2: TButton
Left = 414
Top = 416
Width = 75
Height = 25
Caption = 'Cancel'
ModalResult = 2
TabOrder = 7
end
object Online: TCheckBox
Left = 204
Top = 24
Width = 97
Height = 17
Caption = 'Play online'
Checked = True
State = cbChecked
TabOrder = 8
end
object Server: TNMHTTP
Port = 0
ReportLevel = 0
Body = 'Default.htm'
Header = 'Head.txt'
HeaderInfo.Cookie = 'yumyum'
HeaderInfo.Password = 'chickens'
InputFileMode = False
OutputFileMode = False
OnSuccess = ServerSuccess
ProxyPort = 0
Left = 332
Top = 312
end
object PoorCodeDesign: TNMURL
Left = 336
Top = 272
end
end
+171
View File
@@ -0,0 +1,171 @@
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;
public
procedure ReportSuccess(Cmd: CmdType);
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(Server.Body);
end;
end;
procedure TForm2.ReportSuccess(Cmd: CmdType);
begin
ShowMessage(Server.Body);
end;
procedure TForm2.SoldClick(Sender: TObject);
begin
if not Online.Checked
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);
except
on ESockError do begin
ShowMessage('Error connecting to server');
Server.Abort;
end;
end;
finally
Screen.Cursor := crDefault;
end;
end;
end;
end.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Executable
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
File diff suppressed because it is too large Load Diff
+393
View File
@@ -0,0 +1,393 @@
object Form2: TForm2
Left = 264
Top = 169
BorderIcons = []
BorderStyle = bsDialog
Caption = 'Progress Quest - New Character'
ClientHeight = 457
ClientWidth = 509
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000000000000A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
CC00003300000033330000336600003399000033CC000033FF00006600000066
330000666600006699000066CC000066FF000099000000993300009966000099
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
CC003300FF00333300003333330033336600333399003333CC003333FF003366
00003366330033666600336699003366CC003366FF0033990000339933003399
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
330066006600660099006600CC006600FF006633000066333300663366006633
99006633CC006633FF00666600006666330066666600666699006666CC006699
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
CC009999000099339900990099009900CC009900000099333300990066009933
CC009900FF00996600009966330099336600996699009966CC009933FF009999
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
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
Position = poScreenCenter
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Race: TRadioGroup
Left = 8
Top = 52
Width = 185
Height = 397
Caption = 'Race'
Items.Strings = (
'Half Orc'
'Half Man'
'Half Halfling'
'Double Hobbit'
'Low Elf'
'Dung Elf'
'Talking Pony'
'Greater Gnome'
'Gyrognome'
'Lesser Dwarf'
'Crested Dwarf'
'Eel Man'
'Panda Man'
'Monster'
'Enchanted Motorcycle'
'Will o'#39' the Wisp'
'Battle-Finch'
'Double Wookie'
'Skraeling'
'Demicanadian')
TabOrder = 0
end
object Klass: TRadioGroup
Left = 200
Top = 20
Width = 185
Height = 345
Caption = 'Class'
Items.Strings = (
'Ur-Paladin'
'Voodoo Princess'
'Robot Monk'
'Mu-Fu Monk'
'Mage Illusioner'
'Shiv-Knight'
'Inner Mason'
'Fighter/Organist'
'Puma Burgular'
'Runeloremaster'
'Tongueblade'
'Hunter Stalker'
'Battle-Felon'
'Tickle-Mimic'
'Slow Poisoner'
'Bastard Lunatic'
'Lowling')
TabOrder = 1
end
object GroupBox1: TGroupBox
Left = 392
Top = 20
Width = 109
Height = 305
Caption = 'Stats'
TabOrder = 2
object Label3: TLabel
Left = 22
Top = 56
Width = 23
Height = 13
Caption = 'CON'
end
object Label7: TLabel
Left = 22
Top = 152
Width = 22
Height = 13
Caption = 'CHA'
end
object Label6: TLabel
Left = 22
Top = 128
Width = 21
Height = 13
Caption = 'WIS'
end
object Label5: TLabel
Left = 22
Top = 104
Width = 18
Height = 13
Caption = 'INT'
end
object Label4: TLabel
Left = 22
Top = 80
Width = 22
Height = 13
Caption = 'DEX'
end
object Label2: TLabel
Left = 22
Top = 32
Width = 22
Height = 13
Caption = 'STR'
end
object Label8: TLabel
Left = 22
Top = 188
Width = 24
Height = 13
Caption = 'Total'
end
object CHA: TPanel
Left = 52
Top = 148
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 0
end
object WIS: TPanel
Left = 52
Top = 124
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 1
end
object INT: TPanel
Left = 52
Top = 100
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 2
end
object DEX: TPanel
Left = 52
Top = 76
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 3
end
object CON: TPanel
Left = 52
Top = 52
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 4
end
object STR: TPanel
Left = 52
Top = 28
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
TabOrder = 5
end
object Reroll: TButton
Left = 18
Top = 232
Width = 75
Height = 25
Caption = 'Roll'
TabOrder = 6
OnClick = RerollClick
end
object Total: TPanel
Left = 52
Top = 184
Width = 37
Height = 21
BevelOuter = bvLowered
Caption = '18'
Color = clWhite
TabOrder = 7
end
object Unroll: TButton
Left = 18
Top = 264
Width = 75
Height = 25
Caption = 'Unroll'
Enabled = False
TabOrder = 8
OnClick = UnrollClick
end
end
object Sold: TButton
Left = 414
Top = 412
Width = 75
Height = 25
Caption = 'Sold!'
Default = True
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
Width = 185
Height = 21
EditLabel.Width = 28
EditLabel.Height = 13
EditLabel.Caption = 'Name'
LabelPosition = lpAbove
LabelSpacing = 3
TabOrder = 5
Text = 'Grumdrig'
end
object OldRolls: TListBox
Left = 396
Top = 232
Width = 21
Height = 13
ItemHeight = 13
TabOrder = 6
Visible = False
end
object Button2: TButton
Left = 414
Top = 376
Width = 75
Height = 25
Caption = 'Never mind.'
ModalResult = 2
TabOrder = 7
end
object Online: TCheckBox
Left = 400
Top = 340
Width = 97
Height = 17
Caption = 'Play online'
Checked = True
State = cbChecked
TabOrder = 8
end
object Server: TNMHTTP
Port = 0
ReportLevel = 0
Body = 'Default.htm'
Header = 'Head.txt'
HeaderInfo.Cookie = 'yumyum'
HeaderInfo.Password = 'chickens'
InputFileMode = False
OutputFileMode = False
OnSuccess = ServerSuccess
ProxyPort = 0
Left = 332
Top = 312
end
object PoorCodeDesign: TNMURL
Left = 336
Top = 272
end
end
+167
View File
@@ -0,0 +1,167 @@
unit NewGuy;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Psock, NMHttp, NMURL;
type
TForm2 = class(TForm)
Race: TRadioGroup;
Klass: TRadioGroup;
Label2: TLabel;
STR: TPanel;
Label3: TLabel;
CON: TPanel;
Label4: TLabel;
DEX: TPanel;
Label5: TLabel;
INT: TPanel;
Label6: TLabel;
WIS: TPanel;
Label7: TLabel;
CHA: TPanel;
Reroll: TButton;
GroupBox1: TGroupBox;
Label8: TLabel;
Total: TPanel;
Sold: TButton;
Unroll: TButton;
GroupBox2: TGroupBox;
GameStyle: TTrackBar;
Label9: TLabel;
Label10: TLabel;
Name: TLabeledEdit;
OldRolls: TListBox;
Button2: TButton;
Server: TNMHTTP;
Online: TCheckBox;
PoorCodeDesign: TNMURL;
procedure RerollClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure UnrollClick(Sender: TObject);
procedure ServerSuccess(Cmd: CmdType);
procedure SoldClick(Sender: TObject);
private
procedure RollEm;
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
function UrlEncode(s: string): string;
implementation
uses Main;
{$R *.dfm}
function UrlEncode(s: string): string;
begin
Form2.PoorCodeDesign.InputString := s;
Result := Form2.PoorCodeDesign.Encode;
end;
procedure Roll(stat: TPanel);
begin
stat.Tag := 3 + Random(6) + Random(6) + Random(6);
stat.Caption := IntToStr(stat.Tag);
end;
function Choose(n, k: Integer): Real;
var
d, i: Longint;
begin
Result := n;
d := 1;
for i := 2 to k do begin
Result := Result * (1+n-i);
d := d * i;
end;
Result := Result / d;
end;
procedure TForm2.RollEm;
begin
ReRoll.Tag := RandSeed;
Roll(STR);
Roll(CON);
Roll(DEX);
Roll(INT);
Roll(WIS);
Roll(CHA);
Total.tag := STR.Tag + Con.Tag + DEX.Tag + Int.Tag + Wis.Tag + CHA.Tag;
Total.Caption := IntToStr(Total.Tag);
if Total.Tag >= (63+18) then Total.Color := clRed
else if Total.Tag > (4 * 18) then Total.Color := clYellow
else if Total.Tag <= (63-18) then Total.Color := clGray
else if Total.Tag < (3 * 18) then Total.Color := clSilver
else Total.Color := clWhite;
end;
procedure TForm2.RerollClick(Sender: TObject);
begin
OldRolls.Items.Insert(0, IntToStr(ReRoll.Tag));
Unroll.Enabled := true;
RollEm;
end;
procedure TForm2.FormShow(Sender: TObject);
begin
Randomize;
RollEm;
with Race do
ItemIndex := Random(Items.Count);
with Klass do
ItemIndex := Random(Items.Count);
Name.SetFocus;
end;
procedure TForm2.UnrollClick(Sender: TObject);
begin
RandSeed := StrToInt(OldRolls.Items[0]);
OldRolls.Items.Delete(0);
Unroll.Enabled := OldRolls.Items.Count > 0;
RollEm;
end;
procedure TForm2.ServerSuccess(Cmd: CmdType);
begin
if (LowerCase(Split(Server.Body,0)) = 'ok') then begin
Form1.Traits.Hint := Split(Server.Body,1);
Form1.Traits.Tag := StrToInt(Form1.Traits.Hint);
Server.OnSuccess := nil;
Server.OnFailure := nil;
ModalResult := mrOk;
end else begin
ShowMessage(Split(Server.Body,1));
end;
end;
procedure TForm2.SoldClick(Sender: TObject);
begin
if not Online.Checked
then ModalResult := mrOk
else begin
try
Screen.Cursor := crHourglass;
try
Server.Get('http://progressquest.name2host.com/hi.php?cmd=create&name=' + UrlEncode(Name.Text));
except
on ESockError do begin
ShowMessage('Error connecting to server');
Server.Abort;
end;
end;
finally
Screen.Cursor := crDefault;
end;
end;
end;
end.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+460
View File
@@ -0,0 +1,460 @@
object Form1: TForm1
Left = 219
Top = 95
Width = 561
Height = 538
BorderIcons = [biSystemMenu, biMinimize]
Caption = 'Progress Quest VI'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnCreate = FormCreate
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 0
Top = 0
Width = 185
Height = 476
Align = alLeft
TabOrder = 0
object Label1: TLabel
Left = 1
Top = 1
Width = 183
Height = 13
Align = alTop
Caption = 'Character Sheet'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label6: TLabel
Left = 1
Top = 409
Width = 183
Height = 13
Align = alTop
Caption = 'Experience'
end
object Traits: TListView
Left = 1
Top = 14
Width = 183
Height = 79
Align = alTop
Columns = <
item
Caption = 'Trait'
Width = 60
end
item
AutoSize = True
Caption = 'Value'
end>
ColumnClick = False
Items.Data = {
6E0000000400000000000000FFFFFFFFFFFFFFFF0000000000000000044E616D
6500000000FFFFFFFFFFFFFFFF0000000000000000045261636500000000FFFF
FFFFFFFFFFFF000000000000000005436C61737300000000FFFFFFFFFFFFFFFF
0000000000000000054C6576656C}
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}
TabOrder = 1
ViewStyle = vsReport
end
object Stats: TListView
Left = 1
Top = 93
Width = 183
Height = 136
Align = alTop
Columns = <
item
Caption = 'Stat'
Width = 60
end
item
AutoSize = True
Caption = 'Value'
end>
ColumnClick = False
Items.Data = {
CE0000000800000000000000FFFFFFFFFFFFFFFF000000000000000003535452
00000000FFFFFFFFFFFFFFFF000000000000000003434F4E00000000FFFFFFFF
FFFFFFFF00000000000000000344455800000000FFFFFFFFFFFFFFFF00000000
0000000003494E5400000000FFFFFFFFFFFFFFFF000000000000000003574953
00000000FFFFFFFFFFFFFFFF00000000000000000343484100000000FFFFFFFF
FFFFFFFF0000000000000000064850204D617800000000FFFFFFFFFFFFFFFF00
00000000000000064D50204D6178}
TabOrder = 0
ViewStyle = vsReport
end
object ExpBar: TProgressBar
Left = 1
Top = 422
Width = 183
Height = 16
Align = alTop
Min = 0
Max = 100
Position = 50
Smooth = True
TabOrder = 3
end
object GoButton: TButton
Left = 52
Top = 444
Width = 75
Height = 25
Caption = 'Go'
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
end
end
object Panel3: TPanel
Left = 370
Top = 0
Width = 183
Height = 476
Align = alLeft
TabOrder = 1
object Label3: TLabel
Left = 1
Top = 201
Width = 181
Height = 13
Align = alTop
Caption = 'Quests'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label2: TLabel
Left = 1
Top = 1
Width = 181
Height = 13
Align = alTop
Caption = 'Plot Development'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object QuestBar: TProgressBar
Left = 1
Top = 459
Width = 181
Height = 16
Align = alBottom
Min = 0
Max = 0
Smooth = True
TabOrder = 0
end
object Plots: TListView
Left = 1
Top = 14
Width = 181
Height = 171
Align = alTop
Columns = <
item
AutoSize = True
Caption = 'Act'
end>
ColumnClick = False
IconOptions.Arrangement = iaLeft
ShowColumnHeaders = False
StateImages = ImageList1
TabOrder = 1
ViewStyle = vsReport
end
object PlotBar: TProgressBar
Left = 1
Top = 185
Width = 181
Height = 16
Align = alTop
Min = 0
Max = 0
Smooth = True
TabOrder = 2
end
object Quests: TListView
Left = 1
Top = 214
Width = 181
Height = 245
Align = alClient
Columns = <
item
AutoSize = True
Caption = 'Quest'
end>
ColumnClick = False
FlatScrollBars = True
IconOptions.Arrangement = iaLeft
ReadOnly = True
ShowColumnHeaders = False
StateImages = ImageList1
TabOrder = 3
ViewStyle = vsReport
end
end
object Panel2: TPanel
Left = 185
Top = 0
Width = 185
Height = 476
Align = alLeft
TabOrder = 2
object Label4: 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
Height = 13
Align = alTop
Caption = 'Inventory'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Label7: TLabel
Left = 1
Top = 262
Width = 183
Height = 13
Align = alBottom
Caption = 'Encumberance'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object Spells: TListView
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
end
object Inventory: TListView
Left = 1
Top = 14
Width = 183
Height = 248
Align = alClient
Columns = <
item
AutoSize = True
Caption = 'Item'
end
item
Caption = 'Qty'
Width = 40
end>
ColumnClick = False
TabOrder = 1
ViewStyle = vsReport
end
object EncumBar: TProgressBar
Left = 1
Top = 275
Width = 183
Height = 16
Align = alBottom
Min = 0
Max = 100
Position = 50
Smooth = True
TabOrder = 2
end
end
object Panel4: TPanel
Left = 0
Top = 476
Width = 553
Height = 35
Align = alBottom
Caption = 'Panel4'
TabOrder = 3
object Kill: TStatusBar
Left = 1
Top = -1
Width = 551
Height = 19
Panels = <
item
Width = 50
end>
SimplePanel = True
SimpleText = 'Welcome to Progress Quest!'
end
object KillBar: TProgressBar
Left = 1
Top = 18
Width = 551
Height = 16
Align = alBottom
Min = 0
Max = 100
Position = 50
Smooth = True
Step = 1
TabOrder = 1
end
end
object Timer1: TTimer
Enabled = False
Interval = 100
OnTimer = Timer1Timer
Left = 40
Top = 120
end
object ImageList1: TImageList
Height = 12
Width = 12
Left = 92
Top = 52
Bitmap = {
494C01010200040004000C000C00FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000300000000C00000001001000000000008004
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000424D3E000000000000003E000000
28000000300000000C0000000100010000000000600000000000000000000000
000000000000000000000000FFFFFF0000100100000000007FD7FD0000000000
7FD77D00000000007FD63D00000000007FD41D00000000007FD48D0000000000
7FD5C500000000007FD7E500000000007FD7F500000000007FD7FD0000000000
0010010000000000FFFFFF0000000000}
end
end
+682
View File
@@ -0,0 +1,682 @@
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, ImgList;
type
TForm1 = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Traits: TListView;
Equips: TListView;
Panel3: TPanel;
Label3: TLabel;
QuestBar: TProgressBar;
Stats: TListView;
Label2: TLabel;
PlotBar: TProgressBar;
Plots: TListView;
Quests: TListView;
Panel2: TPanel;
Label4: TLabel;
Spells: TListView;
Label5: TLabel;
Inventory: TListView;
Panel4: TPanel;
Kill: TStatusBar;
Label6: TLabel;
ExpBar: TProgressBar;
KillBar: TProgressBar;
Timer1: TTimer;
GoButton: TButton;
EncumBar: TProgressBar;
Label7: TLabel;
Button1: TButton;
ImageList1: TImageList;
Button2: TButton;
procedure GoButtonClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
procedure Task(caption: String; msec: Integer);
procedure Dequeue;
procedure Q(s: string);
function TaskDone: Boolean;
procedure CompleteQuest;
procedure M(level: Integer; name, spoor: String);
procedure CompleteAct;
procedure RollCharacter;
procedure S(name: String);
procedure WinEquip;
procedure WinSpell;
procedure WinStat;
procedure WinItem;
procedure Aa(var list: TStrings; item: String);
public
procedure Put(list: TListView; key: String; value: String); overload;
procedure Put(list: TListView; pos: Integer; value: String); overload;
procedure Put(list: TListView; key: String; value: Integer); overload;
procedure Add(list: TListView; key: String; value: Integer); overload;
function Get(list: TListView; key: String): String; overload;
function Get(list: TListView; index: Integer): String; overload;
function GetI(list: TListView; key: String): Integer; overload;
function GetI(list: TListView; index: Integer): Integer; overload;
function Sum(list: TListView): Integer;
end;
var
Form1: TForm1;
implementation
uses Unit2, Math;
{$R *.dfm}
const
MonsterMax = 16;
var
fMonsters: array[1..MonsterMax] of TStrings;
fWeapons, fOffenseAttrib, fArmors, fDefenseAttrib, fShields, fSpellList: TStrings;
fTask: String;
fQuest: String;
fQueue: TStrings;
procedure TForm1.Q(s: string);
begin
if fQueue = nil then fQueue := TStringList.Create;
fQueue.Add(s);
Dequeue;
end;
function TForm1.TaskDone: Boolean;
begin
with KillBar do
Result := Position >= Max;
end;
function Odds(chance, outof: Integer): Boolean;
begin
Result := Random(outof) < chance;
end;
function RandSign(): Integer;
begin
Result := Random(2) * 2 - 1;
end;
function Pick(s: TStrings): String;
begin
Result := s[Random(s.Count)];
end;
function PickLow(s: TStrings): String;
begin
Result := s[Min(Random(s.Count),Random(s.Count))];
end;
function Ends(s,e: String): Boolean;
begin
Result := Copy(s,1+Length(s)-Length(e),Length(e)) = e;
end;
function Plural(s: String): String;
begin
if Ends(s,'y')
then Result := Copy(s,1,Length(s)-1) + 'ies'
else if Ends(s,'ch')
then Result := s + 'es'
else if Ends(s,'f')
then Result := Copy(s,1,Length(s)-1) + 'ves'
else Result := s + 's';
end;
function Split(s: String; field: Integer): String;
var
p: Integer;
begin
while field > 0 do begin
p := Pos('|',s);
s := Copy(s,p+1,10000);
Dec(field);
end;
if Pos('|',s) > 0
then Result := Copy(s,1,Pos('|',s)-1)
else Result := s;
end;
function MonsterTask(var level: Integer): String;
var
qty, lev, i: Integer;
begin
lev := level;
for i := 1 to level do begin
if Odds(2,3) then
Inc(lev, RandSign());
if Odds(2,5) then
Inc(level, RandSign());
end;
if lev < 1 then lev := 1;
if lev > MonsterMax then lev := MonsterMax;
if level < 1 then level := 1;
fTask := Pick(fMonsters[lev]);
Result := Split(fTask,0);
fTask := 'kill|' + fTask;
qty := 1;
case level-lev of
-3: Result := 'Fœtal ' + Result;
-2: Result := 'Very Sick ' + Result;
-1: Result := 'Lesser ' + Result;
0: ; // that's fine
1: Result := 'Greater ' + Result;
2: Result := 'War ' + Result;
3: Result := 'Über ' + Result;
else
if lev = 2 * level
then Result := 'Half ' + Result
else if lev * 2 = level
then Result := 'Double ' + Result
else begin
if lev > level then begin
lev := lev div 2;
Result := 'Leper ' + Result;
end;
qty := (level + (lev div 2)) div 2;
if qty < 1 then qty := 1;
level := level * qty;
end;
end;
if qty = 1 then begin
if Pos(Result[1], 'AEIOUaeiou') > 0
then Result := 'an ' + Result
else Result := 'a ' + Result;
end else begin
Result := IntToStr(qty) + ' ' + Plural(Result);
end;
end;
procedure TForm1.Dequeue;
var
s, a: String;
n, l: Integer;
begin
while TaskDone do begin
if Split(fTask,0) = 'kill' then begin
if Split(fTask,3) <> '' then
Add(Inventory,Split(fTask,1) + ' ' + Split(fTask,3),1);
end else if fTask = 'sell' then with Inventory do begin
while Items.Count > 1 do begin
Tag := GetI(Inventory,Items.Count-1);
Items.Delete(Items.Count-1);
Add(Inventory,'Gold',Tag);
end;
end;
fTask := '';
if (fQueue.Count > 0) then begin
a := Split(fQueue[0],0);
n := StrToInt(Split(fQueue[0],1));
s := Split(fQueue[0],2);
if a = 'task' then begin
Task(s, n * 1000);
fQueue.Delete(0);
end else begin
raise Exception.Create('bah!');
end;
end else with Encumbar do if Position >= Max then begin
Task('Heading to market to sell loot',4 * 1000);
fTask := 'sell';
end else begin
n := GetI(Traits,'Level');
l := n;
s := MonsterTask(n);
n := (2 * Form2.GameStyle.Position * n * 1000) div l;
Task('Executing ' + s, n);
end;
end;
end;
function IndexOf(list: TListView; key: String): Integer;
var
i: Integer;
begin
for i := 0 to list.Items.Count-1 do if list.Items.Item[i].Caption = key then begin
Result := i;
Exit;
end;
with list.Items.Add do begin
Result := Index;
Caption := key;
end;
end;
procedure TForm1.Put(list: TListView; key, value: String);
begin
Put(list, IndexOf(list,key), value);
end;
procedure TForm1.Put(list: TListView; key: String; value: Integer);
begin
Put(list,key,IntToStr(value));
if key = 'CON' then
Encumbar.Max := value;
if list = Inventory then
Encumbar.Position := Sum(Inventory) - GetI(Inventory,'Gold');
end;
procedure TForm1.Put(list: TListView; pos: Integer; value: String);
begin
with list.Items.Item[pos] do begin
if SubItems.Count < 1
then SubItems.Add(value)
else SubItems[0] := value;
end;
end;
procedure TForm1.GoButtonClick(Sender: TObject);
begin
with ExpBar do begin
Position := 0;
Max := 20 * 60; // 20 minutes for level 1...
end;
Task('Loading...',1000);
Q('task|10|Experiencing an enigmatic and foreboding night vision');
Q('task|6|Much is revealed about that wise old bastard you''d underestimated');
Q('task|6|A shocking series of events leaves you alone and bewildered, but resolute');
Q('task|4|Drawing upon an unexpected reserve of determination, you set out on a long and dangerous journey');
Q('task|1|Loading...');
PlotBar.Max := 27;
with Plots.Items.Add do begin
Caption := 'Prologue';
StateIndex := 0;
end;
Timer1.Enabled := True;
end;
procedure TForm1.WinSpell;
begin
Add(Spells,PickLow(fSpellList),1);
end;
procedure TForm1.WinEquip;
var
pos, qual, plus, attrib, attribmax: Integer;
name: String;
stuff, better: TStrings;
begin
qual := Max(Random(GetI(Traits,'Level')),Random(1+GetI(Traits,'Level')));
pos := Random(Equips.Items.Count);
case pos of
0: begin stuff := fWeapons; better := fOffenseAttrib; end;
1: begin stuff := fShields; better := fDefenseAttrib; end;
else begin stuff := fArmors; better := fDefenseAttrib; end;
end;
if qual > stuff.Count - 1 then
qual := stuff.Count - 1;
name := stuff[qual];
plus := GetI(Traits,'Level') - qual;
attribmax := Min(plus, better.Count);
while (plus > 0) and (attribmax >= 0) and Odds(1,2) do begin
attrib := Random(attribmax+1);
name := better[attrib] + ' ' + name;
Dec(plus, attrib);
attribmax := Max(plus, attrib - 1);
end;
if plus <> 0 then name := IntToStr(plus) + ' ' + name;
if plus > 0 then name := '+' + name;
Put(Equips, pos, name);
end;
procedure TForm1.WinStat;
begin
Add(Stats, Stats.Items[Random(Stats.Items.Count)].Caption, 1);
end;
procedure TForm1.WinItem;
begin
Add(Inventory, 'Special Item', 1);
end;
procedure TForm1.CompleteQuest;
var
lev, i: Integer;
begin
with QuestBar do begin
Position := 0;
Max := 50 + Random(100);
end;
with Quests do begin
if Items.Count > 0 then begin
Items[Items.Count-1].StateIndex := 1;
case Random(4) of
0: WinSpell;
1: WinEquip;
2: WinStat;
3: WinItem;
end;
end;
lev := GetI(Traits,'Level');
for i := lev downto 1 do
if Odds(1,3) then
Inc(lev,RandSign());
if lev > MonsterMax then lev := MonsterMax - Random(2);
if lev < 1 then lev := 1;
with Items.Add do begin
fQuest := Pick(fMonsters[lev]);
Caption := 'Exterminate ' + Plural(Split(fQuest,0));
StateIndex := 0;
MakeVisible(false);
end;
Width := Width - 1; // trigger a column resize
end;
end;
function Rome(var n: Integer; dn: Integer; var s: String; ds: String): Boolean;
begin
Result := (n >= dn);
if Result then begin
n := n - dn;
s := s + ds;
end;
end;
function IntToRoman(n: Integer): String;
begin
while Rome(n, 1000, Result, 'M') do ;
Rome(n, 900, Result, 'CM');
Rome(n, 500, Result, 'D');
Rome(n, 400, Result, 'CD');
while Rome(n, 100, Result, 'C') do ;
Rome(n, 90, Result, 'XC');
Rome(n, 50, Result, 'L');
Rome(n, 40, Result, 'XL');
while Rome(n, 10, Result, 'X') do ;
Rome(n, 9, Result, 'IX');
Rome(n, 5, Result, 'V');
Rome(n, 4, Result, 'IV');
while Rome(n, 1, Result, 'I') do ;
end;
procedure TForm1.CompleteAct;
begin
PlotBar.Position := 0;
with Plots do begin
Items[Items.Count-1].StateIndex := 1;
PlotBar.Max := 60 * 60 * (10 + 5 * Items.Count); // 10 hrs + 5/act
Items.Add.Caption := 'Act ' + IntToRoman(Items.Count);
end;
end;
procedure TForm1.Task(caption: String; msec: Integer);
begin
Kill.SimpleText := caption + '...';
with KillBar do begin
Position := 0;
Max := msec;
end;
end;
procedure TForm1.Add(list: TListView; key: String; value: Integer);
begin
Put(list, key, value + GetI(list,key));
end;
function TForm1.Get(list: TListView; key: String): String;
begin
Result := Get(list, IndexOf(list,key));
end;
function TForm1.Get(list: TListView; index: Integer): String;
begin
with list.Items.Item[index] do begin
if SubItems.Count < 1
then Result := ''
else Result := SubItems[0];
end;
end;
function TForm1.GetI(list: TListView; key: String): Integer;
begin
Result := StrToIntDef(Get(list,key),0);
end;
function TForm1.GetI(list: TListView; index: Integer): Integer;
begin
Result := StrToIntDef(Get(list,index),0);
end;
function TForm1.Sum(list: TListView): Integer;
var
i: Integer;
begin
Result := 0;
for i := 0 to list.Items.Count - 1 do
Inc(Result, GetI(list,i));
end;
procedure PutLast(list: TListView; value: String);
begin
if list.Items.Count > 0 then
with list.Items.Item[list.Items.Count-1] do begin
if SubItems.Count < 1
then SubItems.Add(value)
else SubItems[0] := value;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
with KillBar do begin
if Position >= Max then begin
if Kill.SimpleText = 'Loading...' then Max := 0;
with ExpBar do if Position >= Max then begin
Position := 0;
Max := (Max * 3) div 2;
Add(Traits,'Level',1);
end else
Position := Position + KillBar.Max div 1000;
if Plots.Items.Count > 1 then
with QuestBar do if Position >= Max then begin
CompleteQuest;
end else if Quests.Items.Count > 0 then
Position := Position + KillBar.Max div 1000;
with PlotBar do if Position >= Max
then CompleteAct
else Position := Position + KillBar.Max div 1000;
Dequeue();
end else with KillBar do
Position := Position + Integer(Timer1.Interval);
end;
end;
procedure TForm1.M(level: Integer; name, spoor: String);
begin
fMonsters[level].Add(name + '|' + IntToStr(level) + '|' + spoor);
end;
procedure TForm1.S(name: String);
begin
fSpellList.Add(name);
end;
procedure TForm1.Aa(var list: TStrings; item: String);
begin
if list = nil then
list := TStringList.Create;
list.Add(item);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
QuestBar.Position := 0;
PlotBar.Position := 0;
KillBar.Position := 0;
ExpBar.Position := 0;
Encumbar.Position := 0;
fSpellList := TStringList.Create;
for i := 1 to MonsterMax do
fMonsters[i] := TStringList.Create;
M(1,'Wasp','Stinger');
M(1,'Rat','Whiskers');
M(1,'Bunny','Ear');
M(1,'Moth','Dust');
M(1,'Beagle','Collar');
M(1,'Midge','');
M(2,'Ostrich','Beak');
M(2,'Billy Goat','Beard');
M(2,'Bat','Wing');
M(2,'Koala','Heart');
M(3,'Wolf','Paw');
M(3,'Gnome','Skull');
M(3,'Kobold','Penis');
M(3,'Whippet','Collar');
M(4,'Orc','Shoe');
M(5,'Uruk','Boot');
M(6,'Tiger','Stripe');
M(7,'Lich','Mascara');
M(8,'Mummy','Chapeu');
M(9,'Vampire','Pancreas');
M(10,'Slime','Slime');
M(11,'Giant','Pants');
M(12,'Bugbear','Fang');
M(13,'Owlbear','Tuft');
M(14,'Basilisk','Gallstone');
M(15,'Cockatrice','Cock');
M(16,'Dragon','Scale');
S('Slime Finger');
S('Rabbit Punch');
S('Hastiness');
S('Good Mood');
S('Sadness');
S('Seasick');
S('Magnetic Orb');
S('Invisible Hands');
S('Revolting Cloud');
S('Aqueous Humor');
S('Spectral Miasma');
S('Zymarx''s Wild Illusion');
S('Clever Fellow I');
S('Clever Fellow II');
S('Nestor''s Sweeping Concept');
S('Holy Batpole');
S('Braingate');
S('Eye of the Troglodyte');
S('Curse Name');
S('Vitreous Humor');
S('Roger''s Grand Illusion');
S('Clomdor''s Plastic Window');
S('Covet');
S('Astral Miasma');
S('Spectral Clamshell');
S('Acrid Hands');
S('Animate Tunic');
S('Ursine Armor');
S('Holy Roller');
S('Curse Family');
S('Infinite Confusion');
Aa(fShields, 'Pie Plate');
Aa(fShields, 'Buckler');
Aa(fShields, 'Tower Shield');
Aa(fArmors, 'Lace');
Aa(fArmors, 'Macrame');
Aa(fArmors, 'Burlap');
Aa(fArmors, 'Canvas');
Aa(fArmors, 'Flannel');
Aa(fArmors, 'Chamois');
Aa(fArmors, 'Pleathers');
Aa(fArmors, 'Leathers');
Aa(fArmors, 'Chainmail');
Aa(fArmors, 'Platemail');
Aa(fWeapons, 'Stick');
Aa(fWeapons, 'Broken Bottle');
Aa(fWeapons, 'Shiv');
Aa(fWeapons, 'Bowie Knife');
Aa(fWeapons, 'Claw Hammer');
Aa(fWeapons, 'Andiron');
Aa(fWeapons, 'Hatchet');
Aa(fWeapons, 'Crowbar');
Aa(fWeapons, 'Longiron');
Aa(fWeapons, 'Zip Gun');
Aa(fWeapons, 'Broadsword');
Aa(fWeapons, 'Longsword');
Aa(fWeapons, 'Poleax');
Aa(fWeapons, 'Bandyclef');
Aa(fDefenseAttrib, 'Studded');
Aa(fDefenseAttrib, 'Banded');
Aa(fDefenseAttrib, 'Gilded');
Aa(fDefenseAttrib, 'Festooned');
Aa(fDefenseAttrib, 'Holy');
Aa(fDefenseAttrib, 'Cambric');
Aa(fDefenseAttrib, 'Fine');
Aa(fDefenseAttrib, 'Impressive');
Aa(fOffenseAttrib, 'Polished');
Aa(fOffenseAttrib, 'Pronged');
Aa(fOffenseAttrib, 'Steely');
Aa(fOffenseAttrib, 'Bloodied');
Aa(fOffenseAttrib, 'Dancing');
Aa(fOffenseAttrib, 'Invisible');
Aa(fOffenseAttrib, 'Vorpal');
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
KillBar.Position := KillBar.Max;
end;
procedure TForm1.RollCharacter;
begin
if mrOk = Form2.ShowModal then ;
with Form2 do begin
Put(Traits,'Name',Name.Text);
Put(Traits,'Race',Race.Items[Race.ItemIndex]);
Put(Traits,'Class',Klass.Items[Klass.ItemIndex]);
Put(Traits,'Level',1);
Put(Stats,'STR',STR.Tag);
Put(Stats,'CON',CON.Tag);
Put(Stats,'DEX',DEX.Tag);
Put(Stats,'INT',INT.Tag);
Put(Stats,'WIS',WIS.Tag);
Put(Stats,'CHA',CHA.Tag);
Put(Stats,'HP Max',Random(8) + CON.Tag div 6);
Put(Stats,'MP Max',Random(8) + INT.Tag div 6);
Put(Equips,'Weapon','Sharp Stick');
Put(Inventory,'Gold',0);
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
RollCharacter;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Add(Traits,'Level',1);
end;
end.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+1781
View File
File diff suppressed because it is too large Load Diff
+40
View File
@@ -0,0 +1,40 @@
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm3 = class(TForm)
Panel1: TPanel;
Image1: TImage;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
OpenDialog1: TOpenDialog;
Button4: TButton;
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses ShellAPI, Main;
{$R *.dfm}
procedure TForm3.Button3Click(Sender: TObject);
begin
ShellExecute(Form1.Handle, 0, PChar('res://' + Application.ExeName + '/6'), 0, 0, SW_SHOWNORMAL);
end;
end.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+25
View File
@@ -0,0 +1,25 @@
<?
if (isset($message)) {
mail("lesterbarion@yahoo.com",
"Ask!",
$message,
"From: asked@bigretard.com") or die("bad");
header("Location: ask.php?sent=1");
exit();
}
?>
<html>
<body>
<? if ($sent): ?>
Your message was sent, it seems.
<? endif; ?>
<form>
Q: <textarea name=message rows=5 cols=60></textarea>
<p>
<input type=submit value=Send>
</body>
</html>
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
View File
+35
View File
@@ -0,0 +1,35 @@
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-LE"c:\appl\delphi6\Projects\Bpl"
-LN"c:\appl\delphi6\Projects\Bpl"
+87
View File
@@ -0,0 +1,87 @@
[FileVersion]
Version=6.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;vclx;VclSmp;vclshlctrls;dbrtl;adortl;vcldb;qrpt;bdertl;vcldbx;dsnap;cds;bdecds;teeui;teedb;tee;teeqr;ibxpress;visualclx;visualdbclx;vclie;xmlrtl;inet;inetdbbde;inetdbxpress;inetdb;nmfast;dbexpress;dbxcds;indy;dclOffice2k
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
+27
View File
@@ -0,0 +1,27 @@
program pq6;
uses
Forms,
Classes,
Main in 'Main.pas' {Form1},
NewGuy in 'NewGuy.pas' {Form2},
Config in 'Config.pas' {K},
Front in 'Front.pas' {Form3};
{$R *.res}
begin
Application.Initialize;
Application.Title := 'Progress Quest VI';
if ParamCount > 0 then begin
Form1.LoadGame(ParamStr(1));
end else begin
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
end;
Application.CreateForm(TK, K);
Application.Run;
end.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

+20
View File
@@ -0,0 +1,20 @@
<html>
<body bgcolor=#ffffff>
<center>
<img src=pq.gif>
<font color=#404000>
<br>
<i>quamvis progressio</i>
<p>
<table border=0 width=100%><tr>
<td width=33% align=center>
<a href=pq6help.html>Information</a>
<td width=33% align=center>
<a href=pq6.zip>Download</a>
<td width=33% align=center>
<a href=mailto:efredricksen@yahoo.com>Comment</a>
</table>
</center>
<p>
BIN
View File
Binary file not shown.
+123
View File
@@ -0,0 +1,123 @@
<html>
<body bgcolor=#ffffd0>
<font color=#404000>
<h1><font color=#e02000>P</font>rogress <font color=#e02000>Q</font>uest</h1>
<font color=#404000>
<a href=http://bigretard.com/pq6.html>Web site</a>
<h3> Back story </h3>
Since time before time the Vorlak had held the Crosshutch at Thraeskamp.
The ancient reckoning held that the Five Skrelkampi (and their Truebine) would
return when the great Trond-feast could be held anew and the Belnap reunited.
But this legend became lost to all but the Papperboxen at Horbug.
One of their own was Yallow the Speldrig, who found an unlikely pupil in
Torbole Understeady, the discarded illigitimate waif of Wainthane Topknox,
whom Yallow renamed Grumdrig and began to school as a boar-pulmet's apprentice. ...And, as it
was said by some, in aberdoxy.
<p>
As our story opens young Grumdrig has returned to Horbug following a trying stint in
Spilwaer Spond where his laconic disposition and fertile mind bred a series
of misadventures which had landed him outside the good graces of the Jordref there,
Welham, who had secretly begun a long term course of slow but
disaccomodating illpeel in the lad's morning fanwael.
Meanwhile, though scarce a tuft of <i>mansefur</i> had yet made its appearance
on the boy's <i>manssach</i>, a number of visiting Roilwachhs have begun to
exhibit a discreet
and seemingly inexplicable interest in the boy. Strange indeed, as he would not reach
his krouchensterm for another harvest or more.
And when Grumdrig's resiliant compatriot Paedri
appears at Drumdrig'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.
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
from a ninety-pound level 1 teenager, to an incredibly puissant, magically imbued warrior,
well able to snuff out the lives of a barnload of bugbears
without need of so much as a lunch break. Yet, gone are the tedious micromanagement
and other frustrations common to that older generation of RPG's.
<h3> User manual </h3>
Even inexpereinced 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.
Select a name, race and class for the new character. Then, use the <code>Roll</code> button
until you are statisfied with the stats
for your character. <i>Tip: You can use the <code>Unroll</code> button (a feature exclusive to <b>Progress Quest</b>)
to go back to any previous roll if you find that you've
clicked too hastily.</i> Use the Game Style slider (another unique feature) to choose between a more
action-oriented game, vs. a more strategic game style. If you're not sure what to select, leave
it on the middle setting, which is a good compromise for most people.
<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
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://bigretard.com/pq6hi.php>http://bigretard.com/pq6hi.php</a>.
<p>
Finally, hit the <code>Sold!</code> button to begin the game. The game will start immediately and
you can safely familiarize yourself with the game's single interface screen as the game progresses
on its own.
Soon your avatar will will be seeking and destroying an exotic panopoly of beasts while you
gaze proudly on. Missing, you will notice, is the tedious march from town, the bewildering maze of cookie cutter
streets hiding some specific merchant or NPC,
and the repetetive hunt for just the right beast to execute. <b>Progress Quest</b> supplies
your character with an endless series of victims, as well as exciting quests which keep your quest
log full to the brim at all times.
<p>
TREASURE: Each slain creature yields a trophy, which can be sold in any town.
When the encumberance 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 increases as his CON stat improves.</i>
<p>
QUESTS: When a quest is complete, your character is rewarded with one of: a) a special, valuable, treasure item,
b) an improved weapon
or piece of armor, c) a boost in stats, or d) a new spell for his spellbook. The character is then assigned
a follow-up quest, which he immediately begins to make progress on.
<p>
EXPERIENCE AND LEVELING UP: Experience represents your character's knowledge about the world
around him, as well as his battle prowess and ability to channel the forces of magical power.
Your character gains experience by killing monsters and sentient beings,
over and over again. Once the experience bar is full, your character levels up, and is
given an automatic boost in several of his stats and a new spell for his spellbook.
<p>
DYING: Be warned that your character can be slain by monsters which are tougher than
he can handle. However, this concept
has been abstracted out of the game and takes effect simply by somewhat reducing the experience
accumulated for each successful murder.
<p>
SAVING YOUR PROGRESS: Your game is saved whenever you quit, as well as each time your character levels
up or completes a quest. You can pick up where you left off by restarting <b>Progress Quest</b> and clicking the <code>Load Game</code>
button.
<h3> Game controls </h3>
<b>Progress Quest</b> belongs to a new breed of "fire and forget" RPG's. There is no need to interact
with <b>Progress Quest</b> at all; it will make progress with you or without you.
<p>
You can quit <b>Progress Quest</b> by using the window close box, or by hitting &lt;Alt&gt;-&lt;F4&gt;
(hold down the &lt;Alt&gt; key while hitting &lt;F4&gt;), but there is really little need to ever do so.
Please note that your character will <i>not</i> make any progress <i>except when <b>Progress Quest</b> is
running</i>. Your character will make <i>no</i> progress once you quit the program, until you start
<b>Progress Quest</b> again.
<h3> Keyboard quick reference </h3>
<table border=1 cellspacing=5><th>Key</th><th>Description</tr>
<tr><td>Alt-F4<td>Exit <b>Progress Quest</b></table>
<p>
<small>&copy:Copyright 2002
<a href=mailto:efredricksen@yahoo.com>efredricksen@yahoo.com</a>
+140
View File
@@ -0,0 +1,140 @@
<?
mysql_connect('localhost','eric','placenta') or die("Unable to connect");
mysql_select_db("eric")
or die("Unable to select db");
mysql_query("
CREATE TABLE IF NOT EXISTS pq6hi (
name char(30) NOT NULL,
passkey int(11) NOT NULL,
race char(30) default NULL,
class char(30) default NULL,
level int(11) default NULL,
plot char(30) default NULL,
item char(50) default NULL,
spell char(30) default NULL,
stat char(10) default NULL,
motto char(50) default NULL,
stamp timestamp default NULL )
")
or die(mysql_error());
if ($cmd == 'blah') {
//$result = mysql_query("UPDATE pq6hi SET plot='Backward ass', item='Nothing', spell='Nada'") or die(mysql_error());
exit();
}
if ($cmd == 'create') {
header('content-type: text/plain');
srand((double)microtime()*1000000);
$passkey = rand();
$name = mysql_escape_string($name);
$result = mysql_query("SELECT * FROM pq6hi WHERE name='$name' and level >= 1") or die(mysql_error());
if (mysql_num_rows($result) > 0) {
echo("taken|The character name you have selected is not available. Please choose a different name.");
} else {
mysql_query("DELETE FROM pq6hi WHERE name='$name'") or die(mysql_error());
mysql_query("INSERT INTO pq6hi(name,passkey) VALUES ('$name',$passkey)") or die(mysql_error());
echo("ok|$passkey");
}
exit();
}
else if ($cmd == 'brag') {
$name = mysql_escape_string($name);
$class = mysql_escape_string($class);
$race = mysql_escape_string($race);
$level = intval($level);
$plot = mysql_escape_string($plot);
$item = mysql_escape_string($item);
$spell = mysql_escape_string($spell);
$stat = mysql_escape_string($stat);
$motto = mysql_escape_string($motto);
$result = mysql_query("SELECT passkey FROM pq6hi WHERE name='$name'") or die(mysql_error());
$key = mysql_result($result,0,0);
if ($passkey == (~$level * 9831) ^ $key) {
mysql_query("UPDATE pq6hi SET class='$class', race='$race', level='$level', item='$item', spell='$spell', stat='$stat', plot='$plot', motto='$motto' WHERE name='$name'");
echo("ok");
} else {
echo("forbidden");
}
exit();
}
else if (isset($query) && $passwd == 'livers') {
$query = stripslashes($query);
$query2 = htmlspecialchars($query);
echo("<h3>$query2</h3>");
$result = mysql_query($query) or die(mysql_error());
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n";
}
print "</table>\n";
}
if (isset($cmd)) {
echo("'$cmd'?");
exit();
}
$result = mysql_query('SELECT name,race,class,level,plot,item,spell,stat,motto FROM pq6hi WHERE level >= 1 ORDER BY -level LIMIT 100');
?>
<html>
<head>
<title>Progress Quest Hall of Fame</title>
<script>
function okp(){
if(event.ctrlKey && event.keyCode == 13)
alert('From within the *game*, Einstein.');
}
</script>
</head>
<body bgcolor=#ffffff onKeyPress="okp()">
<center>
<img src=pq.gif>
<font color=#404000>
<br>
<i>quamvis progressio</i>
<p>
<h1>Hall of Fame</h1>
<style>
th { padding: 3px; border-style: solid; background-color: #ddddff; color: black; font: 8pt verdana; text-align: left; }
td { padding: 3px; border-style: solid; color: black; font: 8pt verdana; }
</style>
<table border=1>
<?
if ($admin == 'chickens') {
echo("<form><input type=text name=query size=80><input type=hidden name=passwd value=livers><input type=submit value=SQL></form>");
exit();
}
?>
<tr><th align=right>Rank<th>Name<th>Race<th>Class<th align=right>Level<th>Prime Stat<th>Plot Stage<th>Most Prized Item<th>Specialty<th>Motto (Ctrl-M)</tr>
<?
$n = 1;
while ($row = mysql_fetch_row ($result)) {
$name = htmlspecialchars($row[0]);
$race = htmlspecialchars($row[1]);
$class = htmlspecialchars($row[2]);
$level = $row[3];
$plot = htmlspecialchars($row[4]);
$item = htmlspecialchars($row[5]);
$spell = htmlspecialchars($row[6]);
$stat = htmlspecialchars($row[7]);
$motto = htmlspecialchars($row[8]);
echo("<tr><td align=right>$n.<td>$name<td>$race<td>$class<td align=right>$level<td>$stat<td>$plot<td>$item<td>$spell<td>$motto</tr>");
$n = $n + 1;
}
?>
</table>
<?
//mysql_close($db);
?>
<p align=left>
<a href=/pq6.html>&larr; Regress</a>
</body></html>
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

+526
View File
@@ -0,0 +1,526 @@
<?php
###########################################################################
# configuration
###########################################################################
# main script path & script URL
$script_path = '/usr/home/uhomeu2/elton99/php-bin/eklog';
$script_url = 'http://elton99.uhome.net/php-bin/eklog/eklog.php';
# last-visit, count & log data files
$vst_file = "$script_path/visit.txt";
$cnt_file = "$script_path/count.txt";
$log_file = "$script_path/log.txt";
###########################################################################
# IP addresses to be excluded in access log (can exclude a whole sub-net)
# white IPs have access to all statistics
# black IPs have no access to any data
# e.g. $white_ip_list = array('xxx.xxx.xxx.xxx', 'yyy.yyy.yyy');
$white_ip_list = array();
$black_ip_list = array();
# length of time (minutes) before consecutive hits from an IP are counted
# use 0 to disable anti-reload feature
$anti_reload_period = 60;
###########################################################################
# count visible?
$visible_count = 1;
# show count digits as
# 0 - text
# 1 - images
$digit_type = 1;
# absolute number of digits to display
# (used when $digit_length >= count_digit_length)
$digit_length = 0;
# number of zeroes to prefix the count
# (used when $digit_length < count_digit_length)
$digit_pad = 1;
# show digits in what language?
# (used when showing digits as text)
$arabic_count = 1;
$chinese_count = 0;
$roman_count = 0;
if ($arabic_count) {
$bold = 0;
$italic = 0;
$cnt_color = '#ff0000';
$cnt_face = 'Comic Sans MS';
$cnt_size = '+1';
} elseif ($chinese_count) {
$bold = 1;
$italic = 0;
$cnt_color = '#ff0000';
$cnt_face = '';
$cnt_size = '+1';
} elseif ($roman_count) {
$bold = 0;
$italic = 0;
$cnt_color = '#ff0000';
$cnt_face = 'Comic Sans MS';
$cnt_size = '+1';
}
# digit images directory name & file extension
# directory can use absolute or relative path
# absolute paths start with "http://", "https://" or "/"
# all other paths are considered relative (to main script directory)
# (used when showing digits as images)
$img_dir = 'digit';
$img_ext = 'gif';
# individual digit image width & height
$img_width = 16;
$img_height = 21;
# digit images text alignment
# e.g. absmiddle, top, middle, bottom
$img_align = 'absmiddle';
###########################################################################
# statistics visible?
$visible_stat = 1;
# statistics page window name
# use empty string for same window (as count page)
$stat_frame = '_blank';
# statistics summary visible?
# statistics detail visible?
$summary_stat = 1;
$detail_stat = 1;
# statistics background colours
$back_col_type = 'yellow';
$back_col_head = 'lightblue';
$back_col_body = 'lightcyan';
###########################################################################
# main programme
###########################################################################
$agent_stat = array();
# create initial data files during first run
if (! file_exists($vst_file)) {
$vst_fp = fopen($vst_file, 'w') or die("Can't open $vst_file\n");
flock($vst_fp, 2);
fwrite($vst_fp, '0.0.0.0|0');
fclose($vst_fp);
}
if (! file_exists($cnt_file)) {
$cnt_fp = fopen($cnt_file, 'w') or die("Can't open $cnt_file\n");
flock($cnt_fp, 2);
fwrite($cnt_fp, '0');
fclose($cnt_fp);
}
# run script
if (getenv('QUERY_STRING') == '') {
takeLog(); # take log
} elseif (strtolower(getenv('QUERY_STRING')) == 'stat') {
viewStat(); # view statistics
} else {
# exit when script is called with invalid parameter
print '[parameter invalid]';
}
###########################################################################
# functions
###########################################################################
function takeLog() {
global $script_url, $vst_file, $cnt_file, $log_file;
global $visible_count;
global $digit_type, $digit_length, $digit_pad;
global $arabic_count, $chinese_count, $roman_count;
global $bold, $italic, $cnt_color, $cnt_face, $cnt_size;
global $img_dir, $img_ext, $img_width, $img_height, $img_align;
global $visible_stat, $stat_frame;
# do access log
if (handleListedIP() || isReload()) { # no logging needed
$cnt_fp = fopen($cnt_file, 'r') or die("Can't open $cnt_file\n");
$cnt = fread($cnt_fp, filesize($cnt_file));
$cnt = chop($cnt);
fclose($cnt_fp);
} else { # logging needed
# process last-visit data
$vst_fp = fopen($vst_file, 'w') or die("Can't open $vst_file\n");
flock($vst_fp, 2);
$tm = time();
fwrite($vst_fp, getenv('REMOTE_ADDR')."|$tm");
fclose($vst_fp);
# process count data
$cnt_fp = fopen($cnt_file, 'r+') or die("Can't open $cnt_file\n");
flock($cnt_fp, 2);
$cnt = fread($cnt_fp, filesize($cnt_file));
$cnt = chop($cnt);
$cnt++;
rewind($cnt_fp);
fwrite($cnt_fp, $cnt);
ftruncate($cnt_fp, ftell($cnt_fp));
fclose($cnt_fp);
# process log data
$log_fp = fopen($log_file, 'a') or die("Can't open $log_file\n");
flock($log_fp, 2);
$aTime = localtime($tm, 1);
$iY = $aTime['tm_year']+1900;
$iM = $aTime['tm_mon']+1;
$iM = ($iM>=10?$iM:"0$iM");
$iD = $aTime['tm_mday'];
$iD = ($iD>=10?$iD:"0$iD");
$iHH = $aTime['tm_hour'];
$iHH = ($iHH>=10?$iHH:"0$iHH");
$iMM = $aTime['tm_min'];
$iMM = ($iMM>=10?$iMM:"0$iMM");
$iSS = $aTime['tm_sec'];
$iSS = ($iSS>=10?$iSS:"0$iSS");
$logTime = "$iY-$iM-$iD $iHH:$iMM:$iSS";
if (gethostbyaddr(getenv('REMOTE_ADDR'))) {
$logHost = gethostbyaddr(getenv('REMOTE_ADDR'));
} else {
$logHost = '[Unknown]';
}
if (getenv('HTTP_USER_AGENT')) {
$logAgent = getenv('HTTP_USER_AGENT');
} else {
$logAgent = '[Unknown]';
}
fwrite($log_fp, "$logTime|$logHost|$logAgent\n");
fclose($log_fp);
}
# show output
$html_out = '';
if ($visible_count) {
# pad zero(es) to the count
# (used when showing text digits in Arabic or image digits)
if (($digit_type == 0) && $arabic_count || ($digit_type == 1)) {
if ($digit_length >= strlen($cnt)) { $digit_pad = $digit_length - strlen($cnt); }
for ($i=0; $i<$digit_pad; $i++) { $cnt = '0' . $cnt; }
}
if ($digit_type == 0) {
if (! $arabic_count) {
if ($chinese_count) {
$cnt = arabic2chinese($cnt);
} elseif ($roman_count) {
$cnt = arabic2roman($cnt);
}
}
} elseif ($digit_type == 1) {
# check if relative path is used for digit images directory
if (! preg_match('@^(http://|https://|/)@', $img_dir)) {
$img_url = preg_replace('@(.*)/.*@', '\\1', $script_url);
$img_dir = "$img_url/$img_dir";
}
}
if ($visible_stat) {
if ($stat_frame) {
# show statistics page in given window
$html_out .= "<a href=\"${script_url}?stat\" target=\"${stat_frame}\">";
} else {
# show statistics page in same window
$html_out .= "<a href=\"${script_url}?stat\">";
}
}
if ($digit_type == 0) {
# show count as text
if ($cnt_color || $cnt_face || $cnt_size) { $html_out .= '<font'; }
if ($cnt_color) { $html_out .= " color=\"$cnt_color\""; }
if ($cnt_face) { $html_out .= " face=\"$cnt_face\""; }
if ($cnt_size) { $html_out .= " size=\"$cnt_size\""; }
if ($cnt_color || $cnt_face || $cnt_size) { $html_out .= '>'; }
if ($bold) { $html_out .= '<b>'; }
if ($italic) { $html_out .= '<i>'; }
$html_out .= $cnt;
if ($italic) { $html_out .= '</i>'; }
if ($bold) { $html_out .= '</b>'; }
if ($cnt_color || $cnt_face || $cnt_size) { $html_out .= '</font>'; }
} elseif ($digit_type == 1) {
# show count as image
for ($i=0; $i<strlen($cnt); $i++) {
$html_out .= "<img src=\"$img_dir/$cnt[$i].$img_ext\"";
if ($img_width && $img_height) { $html_out .= " width=$img_width height=$img_height"; }
if ($img_align) { $html_out .= " align=$img_align"; }
$html_out .= ' border=0>';
}
}
if ($visible_stat) { $html_out .= '</a>'; }
}
print $html_out;
}
function viewStat() {
global $cnt_file, $log_file;
global $visible_stat;
global $summary_stat, $detail_stat;
global $back_col_type, $back_col_head, $back_col_body;
global $agent_stat;
# user-defined sort function
function doSort ($a, $b) {
global $agent_stat;
if ($agent_stat[$a] > $agent_stat[$b]) {
return(-1);
} elseif ($agent_stat[$a] < $agent_stat[$b]) {
return(1);
} else {
if ($a > $b) {
return(-1);
} elseif ($a < $b) {
return(1);
} else {
return(0);
}
}
}
# handle listed ip
handleListedIP();
# return if no stat or stat invisible
if ((! file_exists($log_file)) || !$visible_stat || !$summary_stat && !$detail_stat) {
print '[statistics not available]';
return(0);
}
# get count file data
$cnt_fp = fopen($cnt_file, 'r') or die("Can't open $cnt_file\n");
$cnt_no = fread($cnt_fp, filesize($cnt_file));
$cnt_no = chop($cnt_no);
fclose($cnt_fp);
# get log file data
$log_fp = fopen($log_file, 'r') or die("Can't open $log_file\n");
for ($log_no=0; ! feof($log_fp); $log_no++) {
$tmp = preg_split('/\|/', fgets($log_fp, 256));
$time[$log_no] = $tmp[0];
$host[$log_no] = $tmp[1];
$agent[$log_no] = chop($tmp[2]);
if ($agent[$log_no]) { $agent_stat[$agent[$log_no]]++; }
}
$log_no--;
fclose($log_fp);
# get count offset
$off_no = $cnt_no - $log_no;
# output stat report
print "<HTML>\n\n";
print "<HEAD><TITLE>Statistics</TITLE></HEAD>\n\n";
print "<BODY>\n";
if ($summary_stat) {
print "<TABLE BGCOLOR=$back_col_type BORDER=1 CELLPADDING=4 CELLSPACING=2 WIDTH=\"100%\">\n";
print "<TR><TH><BIG>Log Summary</BIG></TH></TR>\n";
print "</TABLE>\n";
print "<BR>\n";
print "<TABLE ALIGN=CENTER BGCOLOR=$back_col_body BORDER=1 CELLPADDING=2 CELLSPACING=2>\n";
print "<TR BGCOLOR=$back_col_head>\n";
print "<TH ALIGN=LEFT>Agent</TH>\n";
print "<TH>Count</TH>\n";
print "</TR>\n";
$agent_stat_keys = array_keys($agent_stat);
usort($agent_stat_keys, "doSort");
foreach ($agent_stat_keys as $key) {
print "<TR>\n";
print "<TD>$key</TD>\n";
print "<TD ALIGN=CENTER>$agent_stat[$key]</TD>\n";
print "</TR>\n";
}
print "<TR BGCOLOR=$back_col_head>\n";
print "<TH ALIGN=LEFT>Total</TH>\n";
print "<TH>$log_no</TH>\n";
print "</TR>\n";
print "</TABLE>\n\n";
}
if ($summary_stat && $detail_stat) { print "<BR><BR><BR>\n\n"; }
if ($detail_stat) {
print "<TABLE BGCOLOR=$back_col_type BORDER=1 CELLPADDING=4 CELLSPACING=2 WIDTH=\"100%\">\n";
print "<TR><TH><BIG>Log Detail</BIG></TH></TR>\n";
print "</TABLE>\n";
print "<BR>\n";
print "<TABLE ALIGN=CENTER BGCOLOR=$back_col_body BORDER=1 CELLPADDING=2 CELLSPACING=2>\n";
print "<TR BGCOLOR=$back_col_head>\n";
print "<TD>&nbsp;</TD>\n";
print "<TH ALIGN=LEFT>Time</TH>\n";
print "<TH ALIGN=LEFT>Host</TH>\n";
print "<TH ALIGN=LEFT>Agent</TH>\n";
print "</TR>\n";
for ($i=0; $i<$log_no; $i++) {
print "<TR>\n";
printf("<TD ALIGN=RIGHT BGCOLOR=$back_col_head>%d</TD>\n", $i+1+$off_no);
print "<TD>$time[$i]</TD>\n";
print "<TD>$host[$i]</TD>\n";
print "<TD>$agent[$i]</TD>\n";
print "</TR>\n";
}
print "</TABLE>\n";
}
print "</BODY>\n\n";
print "</HTML>\n";
}
function handleListedIP() {
global $white_ip_list, $black_ip_list;
global $visible_count, $visible_stat, $summary_stat, $detail_stat;
$this_ip = getenv('REMOTE_ADDR') . '.';
foreach ($white_ip_list as $ip) {
if (preg_match("/^$ip\./", $this_ip)) {
# override default for white-listed ip
$visible_count = 1;
$visible_stat = 1;
$summary_stat = 1;
$detail_stat = 1;
return(1);
}
}
foreach ($black_ip_list as $ip) {
if (preg_match("/^$ip\./", $this_ip)) {
# override default for black-listed ip
$visible_count = 0;
$visible_stat = 0;
$summary_stat = 0;
$detail_stat = 0;
return(2);
}
}
return(0);
}
function isReload() {
global $vst_file;
global $anti_reload_period;
$vst_fp = fopen($vst_file, 'r') or die("Can't open $vst_file\n");
$vst = preg_split('/\|/', fread($vst_fp, filesize($vst_file)));
$ip_last = $vst[0];
$tm_last = chop($vst[1]);
fclose($vst_fp);
$tm_now = time();
$min_diff = ($tm_now-$tm_last)/60;
# return true if current IP is the same as last IP and within anti-reload
# period
if ((getenv('REMOTE_ADDR')==$ip_last)&&($min_diff<=$anti_reload_period)) {
return(1);
} else {
return(0);
}
}
function arabic2chinese($in) {
$d = '零';
$mm = array('','萬','億','兆');
# return 0 if input is all 0
if (! intval($in)) { return($d); }
# construct chinese characters, in groups of 4 digits from the right
for ($i=0,$s='',$out=''; $i<strlen($in); $i+=4) {
if (($i+4) <= strlen($in)) {
$s = substr($in,-($i+4),4);
} elseif (($i+3) == strlen($in)) {
$s = substr($in,-($i+3),3);
} elseif (($i+2) == strlen($in)) {
$s = substr($in,-($i+2),2);
} else {
$s = substr($in,-($i+1),1);
}
if (intval($s)) {
# append 0 between groups if it's not first loop, and either rightmost
# digit of current group or leftmost digit of previous group is 0, and
# digits of previous group are not all 0's
$j = (($i)&&((substr($s,-1,1)=='0')||(substr($in,-$i,1)=='0'))&&intval(substr($in,-$i))?$d:'');
# append current group, with corresponding multiple
$out = chineseQuadruple($s) . $mm[$i/4] . $j . $out;
}
}
return($out);
}
function chineseQuadruple($in) {
$d = array('零','一','二','三','四','五','六','七','八','九');
$m = array('千','百','十','');
# return 0 if input is all 0
if (! intval($in)) { return($d[0]); }
for ($i=-strlen($in),$out=''; $i<=-1; $i++) {
if (substr($in,$i,1)) {
# append current digit (1-9), with corresponding multiple
$out .= $d[substr($in,$i,1)] . $m[$i+count($m)];
} else {
# break loop if all remaining digits are 0's
if (! intval(substr($in,$i))) { break; }
# append 0 if previous digit is not 0 or null
if (substr($in,$i-1,1)) { $out .= $d[0]; }
}
}
return($out);
}
function arabic2roman($in) {
$r1 = array('I','II','III','IV','V','VI','VII','VIII','IX');
$r10 = array('X','XX','XXX','XL','L','LX','LXX','LXXX','XC');
$r100 = array('C','CC','CCC','CD','D','DC','DCC','DCCC','CM');
# get arabic digits
$a1 = $in%10;
$in = ($in-$a1)/10;
$a10 = $in%10;
$in = ($in-$a10)/10;
$a100 = $in%10;
$a1000 = ($in-$a100)/10;
# construct roman numerals
for ($i=0,$out=''; $i<$a1000; $i++) { $out .= 'M'; }
if ($a100) { $out .= $r100[$a100-1]; }
if ($a10) { $out .= $r10[$a10-1]; }
if ($a1) { $out .= $r1[$a1-1]; }
return($out);
}
?>
+2
View File
@@ -0,0 +1,2 @@
6 23 DISCARDABLE "pq.html"
BIN
View File
Binary file not shown.
+51
View File
@@ -0,0 +1,51 @@
<head>
<title>Big and Retarded</title>
<style>
p.t { font-size: 250%; font-style: italic; text-align: center; color: blue }
p.bb { margin-left: 3ex }
p.b { margin-left: 6ex; margin-top: 0 }
p.q { color: red; font-size: 120% }
li { margin-left: 5ex }
ul { margin-top: 0 }
</style>
</head>
<body bgcolor=white>
<?php include "log/eklog.php" ?>
<p class=t>
<img src=dancy.gif align=right>
<img src=ask.gif alt="Ask Big Retard!">
<p class=q>
Q: Big Retard, what is important in life?
<br><font color=black>
A: Joy through Fulfillment, and Success through Progress.
</font>
<p class=bb>
<b>Everlasting Fulfillment</b>
<p class=b>
1. Watch the sun rise at least once every year<br>
2. Don't postpone joy<br>
3. Get the fuck out of my face right now
<p class=bb>
<b>Everlasting Progress</b>
<p class=b>
<a href=pq6.html>Progress Quest</a>
<p class=q>
Q: Big Retard, where can I get more advice of similar caliber?
<br><font color=black>
A: Why, <a href=http://www.theforeverbritneynetwork.com/urgent.html>right here</a>!
</font>
<p class=q>
Q: Big Retard, where's that scan of the back cover of that book that I never thought
was as funny as you apparently did?
<br><font color=black>
A: I've got that for you, <a href=tea.jpg>right here</a>!
</font>
+7
View File
@@ -0,0 +1,7 @@
<head><title>BIG AND RETARDED</title></head>
<body bgcolor=black><p align=center>
<font color=white>
<br>
<a href=pq6.html><img src=tea.jpg></a>
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

+35
View File
@@ -0,0 +1,35 @@
-$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"
+90
View File
@@ -0,0 +1,90 @@
[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=
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+22
View File
@@ -0,0 +1,22 @@
program pq;
uses
Forms,
Config in 'Config.pas' {K},
Front in 'Front.pas' {Form3},
Main in 'Main.pas' {Form1},
NewGuy in 'NewGuy.pas' {Form2};
{$E exe}
{$R *.res}
begin
Application.Initialize;
Application.Title := 'Progress Quest';
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TK, K);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

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