mirror of
https://bitbucket.org/grumdrig/pq.git
synced 2026-09-28 16:23:59 -06:00
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:
BIN
Binary file not shown.
BIN
Binary file not shown.
+749
@@ -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
@@ -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.
|
||||
@@ -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.
|
||||
@@ -0,0 +1,101 @@
|
||||
object Form4: TForm4
|
||||
Left = 192
|
||||
Top = 107
|
||||
Width = 696
|
||||
Height = 480
|
||||
Caption = 'Progress Quest VI'
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
Icon.Data = {
|
||||
0000010001002020000000000000A80800001600000028000000200000004000
|
||||
0000010008000000000080040000000000000000000000000000000000000000
|
||||
0000000080000080000000808000800000008000800080800000C0C0C000C0DC
|
||||
C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222
|
||||
220029292900555555004D4D4D004242420039393900807CFF005050FF009300
|
||||
D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000
|
||||
CC00003300000033330000336600003399000033CC000033FF00006600000066
|
||||
330000666600006699000066CC000066FF000099000000993300009966000099
|
||||
99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC
|
||||
FF0000FF660000FF990000FFCC00330000003300330033006600330099003300
|
||||
CC003300FF00333300003333330033336600333399003333CC003333FF003366
|
||||
00003366330033666600336699003366CC003366FF0033990000339933003399
|
||||
6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC
|
||||
CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600
|
||||
330066006600660099006600CC006600FF006633000066333300663366006633
|
||||
99006633CC006633FF00666600006666330066666600666699006666CC006699
|
||||
00006699330066996600669999006699CC006699FF0066CC000066CC330066CC
|
||||
990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00
|
||||
CC009999000099339900990099009900CC009900000099333300990066009933
|
||||
CC009900FF00996600009966330099336600996699009966CC009933FF009999
|
||||
330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC
|
||||
990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF
|
||||
FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33
|
||||
6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66
|
||||
CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC
|
||||
0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF
|
||||
6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33
|
||||
3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66
|
||||
9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99
|
||||
FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF
|
||||
6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF
|
||||
66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7
|
||||
D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080
|
||||
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF005852
|
||||
5151515151515258585858585858585858585858585858585852515151515852
|
||||
51514A4A4A515152585858585858585858585858585858585251514B4A4B5852
|
||||
514B4A4A4A4B51515258585858585858585858585858585251514B4A4A4A5852
|
||||
150F4A4A4A4A4B5151515152525251525252525252525151514A0F154A4B580B
|
||||
0E0E0B4A4A4A4A4A5151515151515151515151515151514B4B0B0E0E0B512311
|
||||
15220E514A4A4A4A4A4A4A4B4A4A4A4A4A4A4A4A4A4A4A4A4A0F22143D234313
|
||||
22431151514A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A11432213435822
|
||||
23296710294B4A4A44442244154422441544224444444A221012292322585858
|
||||
58514443151D4B4A442215221522152215221522154B0E151544515252585858
|
||||
5879294A43140D4A22150D0E2243100E1D0D2215220D14434A03525258585858
|
||||
585852514A224A430E0E1443220D111543140E0E4344224A4A51515258585858
|
||||
585858514B1514220E2243150D444444444322222214154B4B4B515258585858
|
||||
585858585174151D4A434A4A15104422234A434A1D15742A4A4B515258585858
|
||||
585858585222444B457422224B44224B222274454B4422524A4B515258585858
|
||||
58585858510A4B4C3F4C44EA4A22224A6D444C3F4C4B0A4A4A51515258585858
|
||||
585858580D15294B4523ECC8C44A4AE946EC23454B29150D4A51515858585858
|
||||
58585858444A4A234AAEC8FCFCA7E9F9F946AE44234A4A435151525858585858
|
||||
58585858232244224AEFA7FCFC62F9F9F946EF4A224422235151525858585858
|
||||
585858584B434A110C4A8DA862F9F9F9698D4A0C114A43295151525858585858
|
||||
5858585852222210514A8D46F9F9F962A78D4A51104322524B51525858585858
|
||||
58585858524B0C034AEB46F9F9F962FCFCA7F84A030C4B4A4A51515258585858
|
||||
5858585251514B4AED46F9F9F9E3A8FCFCFCA7ED4A4B4A4A4A4B515152585858
|
||||
58585851514B4AED46F9F9F9E3F7F7E6FCFCFCA7ED4A4A4A4A4A4B5152585858
|
||||
585852514B4AEB46F9F9F9E3ED525892E6FCFCFCA7EB4A4A4A4A4A4B51525858
|
||||
585852514A6D46F9F9F9E3ED5858585892E6FCFCFCA76D4A4A4A4A4A51515858
|
||||
5858514B14B5F047F9E3F7585858585858B5E6FCC8DDB5144A4A4A4A51515858
|
||||
585852AE09F3F3BCE3B55858585858585858B5D0DDF3F309AE4A4B4B51515858
|
||||
5858BCF4F5F4F4F4075858585858585858585807F4F4F4F5DEBC515151525858
|
||||
58991BF5F5F2DDB6585858585858585858585858B6DDF3F5F51B995152585858
|
||||
5892B51909B592585858585858585858585858585892B509DDB5925858585858
|
||||
58720909ECEB58585858585858585858585858585858F8EC0909725858585858
|
||||
58F78DAEED5858585858585858585858585858585858581CAE8D925858580000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000}
|
||||
OldCreateOrder = False
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object WebBrowser1: TWebBrowser
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 688
|
||||
Height = 453
|
||||
Align = alClient
|
||||
TabOrder = 0
|
||||
ControlData = {
|
||||
4C0000001B470000D22E00000000000000000000000000000000000000000000
|
||||
000000004C000000000000000000000001000000E0D057007335CF11AE690800
|
||||
2B2E126208000000000000004C0000000114020000000000C000000000000046
|
||||
8000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000100000000000000000000000000000000000000}
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,31 @@
|
||||
unit Info;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, OleCtrls, SHDocVw;
|
||||
|
||||
type
|
||||
TForm4 = class(TForm)
|
||||
WebBrowser1: TWebBrowser;
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
procedure Go(url: String);
|
||||
end;
|
||||
|
||||
var
|
||||
Form4: TForm4;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
procedure TForm4.Go(url: String);
|
||||
begin
|
||||
WebBrowser1.Navigate(url);
|
||||
Show;
|
||||
end;
|
||||
|
||||
end.
|
||||
@@ -0,0 +1,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
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+394
@@ -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
@@ -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.
|
||||
Executable
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
@@ -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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+460
@@ -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
@@ -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.
|
||||
Binary file not shown.
Binary file not shown.
+1781
File diff suppressed because it is too large
Load Diff
@@ -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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
@@ -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>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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"
|
||||
@@ -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=
|
||||
@@ -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.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 9.1 KiB |
@@ -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>
|
||||
Binary file not shown.
@@ -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 <Alt>-<F4>
|
||||
(hold down the <Alt> key while hitting <F4>), but there is really little need to ever do so.
|
||||
Please note that your character will <i>not</i> make any progress <i>except when <b>Progress Quest</b> is
|
||||
running</i>. Your character will make <i>no</i> progress once you quit the program, until you start
|
||||
<b>Progress Quest</b> again.
|
||||
|
||||
<h3> Keyboard quick reference </h3>
|
||||
|
||||
<table border=1 cellspacing=5><th>Key</th><th>Description</tr>
|
||||
<tr><td>Alt-F4<td>Exit <b>Progress Quest</b></table>
|
||||
|
||||
<p>
|
||||
<small>©:Copyright 2002
|
||||
<a href=mailto:efredricksen@yahoo.com>efredricksen@yahoo.com</a>
|
||||
+140
@@ -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>← Regress</a>
|
||||
</body></html>
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
|
After Width: | Height: | Size: 262 B |
@@ -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> </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);
|
||||
}
|
||||
|
||||
?>
|
||||
+51
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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"
|
||||
@@ -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;
|
||||
@@ -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.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user