The search keyword must be a single word (no spaces).

Function DoAiScriptDebug

Line
11
Location
common.ai
Constant?
no
Type
native
Arguments
nothing
Returns
boolean
11
native DoAiScriptDebug      takes nothing                               returns boolean
12
13
native GetAiPlayer          takes nothing                               returns integer
14
native GetHeroId            takes nothing                               returns integer
15
native GetHeroLevelAI       takes nothing                               returns integer
16
17
native GetUnitCount         takes integer unitid                        returns integer
18
native GetPlayerUnitTypeCount takes player p, integer unitid            returns integer
19
native GetUnitCountDone     takes integer unitid                        returns integer
20
native GetTownUnitCount     takes integer id, integer tn, boolean dn    returns integer
21
native GetUnitGoldCost      takes integer unitid                        returns integer
22
native GetUnitWoodCost      takes integer unitid                        returns integer
23
native GetUnitBuildTime     takes integer unitid                        returns integer
24
25
native GetMinesOwned        takes nothing                               returns integer
26
native GetGoldOwned         takes nothing                               returns integer
27
native TownWithMine         takes nothing                               returns integer
28
native TownHasMine          takes integer townid                        returns boolean
29
native TownHasHall          takes integer townid                        returns boolean
30
31
native GetUpgradeLevel      takes integer id                            returns integer
32
native GetUpgradeGoldCost   takes integer id                            returns integer
33
native GetUpgradeWoodCost   takes integer id                            returns integer
34
native GetNextExpansion     takes nothing                               returns integer
35
native GetMegaTarget        takes nothing                               returns unit
36
native GetBuilding          takes player p                              returns unit
37
native GetEnemyPower        takes nothing                               returns integer
38
native SetAllianceTarget    takes unit id                               returns nothing
39
native GetAllianceTarget    takes nothing                               returns unit
40
41
native SetProduce           takes integer qty, integer id, integer town returns boolean
42
native Unsummon             takes unit unitid                           returns nothing
43
native SetExpansion         takes unit peon, integer id                 returns boolean
44
native SetUpgrade           takes integer id                            returns boolean
45
native SetHeroLevels        takes code func                             returns nothing
46
native SetNewHeroes         takes boolean state                         returns nothing
47
native PurchaseZeppelin     takes nothing                               returns nothing
48
49
native MergeUnits           takes integer qty, integer a, integer b, integer make returns boolean
50
native ConvertUnits         takes integer qty, integer id               returns boolean
51
52
native SetCampaignAI        takes nothing                               returns nothing
53
native SetMeleeAI           takes nothing                               returns nothing
54
native SetTargetHeroes      takes boolean state                         returns nothing
55
native SetPeonsRepair       takes boolean state                         returns nothing
56
native SetRandomPaths       takes boolean state                         returns nothing
57
native SetDefendPlayer      takes boolean state                         returns nothing
58
native SetHeroesFlee        takes boolean state                         returns nothing
59
native SetHeroesBuyItems    takes boolean state                         returns nothing
60
native SetWatchMegaTargets  takes boolean state                         returns nothing
61
native SetIgnoreInjured     takes boolean state                         returns nothing
62
native SetHeroesTakeItems   takes boolean state                         returns nothing
63
native SetUnitsFlee         takes boolean state                         returns nothing
64
native SetGroupsFlee        takes boolean state                         returns nothing
65
native SetSlowChopping      takes boolean state                         returns nothing
66
native SetCaptainChanges    takes boolean allow                         returns nothing
67
native SetSmartArtillery    takes boolean state                         returns nothing
68
native SetReplacementCount  takes integer qty                           returns nothing
69
native GroupTimedLife       takes boolean allow                         returns nothing
70
native RemoveInjuries       takes nothing                               returns nothing
71
native RemoveSiege          takes nothing                               returns nothing
72
73
native InitAssault          takes nothing                               returns nothing
74
native AddAssault           takes integer qty, integer id               returns boolean
75
native AddDefenders         takes integer qty, integer id               returns boolean
76
77
native GetCreepCamp         takes integer min, integer max, boolean flyers_ok returns unit
78
79
native StartGetEnemyBase    takes nothing                               returns nothing
80
native WaitGetEnemyBase     takes nothing                               returns boolean
81
native GetEnemyBase         takes nothing                               returns unit
82
native GetExpansionFoe      takes nothing                               returns unit
83
native GetEnemyExpansion    takes nothing                               returns unit
84
native GetExpansionX        takes nothing                               returns integer
85
native GetExpansionY        takes nothing                               returns integer
86
native SetStagePoint        takes real x, real y                        returns nothing
87
native AttackMoveKill       takes unit target                           returns nothing
88
native AttackMoveXY         takes integer x, integer y                  returns nothing
89
native LoadZepWave          takes integer x, integer y                  returns nothing
90
native SuicidePlayer        takes player id, boolean check_full         returns boolean
91
native SuicidePlayerUnits   takes player id, boolean check_full         returns boolean
92
native CaptainInCombat      takes boolean attack_captain                returns boolean
93
native IsTowered            takes unit target                           returns boolean
94
95
native ClearHarvestAI       takes nothing                               returns nothing
96
native HarvestGold          takes integer town, integer peons           returns nothing
97
native HarvestWood          takes integer town, integer peons           returns nothing
98
native GetExpansionPeon     takes nothing                               returns unit
99
100
native StopGathering        takes nothing                               returns nothing
101
native AddGuardPost         takes integer id, real x, real y            returns nothing
102
native FillGuardPosts       takes nothing                               returns nothing
103
native ReturnGuardPosts     takes nothing                               returns nothing
104
native CreateCaptains       takes nothing                               returns nothing
105
native SetCaptainHome       takes integer which, real x, real y         returns nothing
106
native ResetCaptainLocs     takes nothing                               returns nothing
107
native ShiftTownSpot        takes real x, real y                        returns nothing
108
native TeleportCaptain      takes real x, real y                        returns nothing
109
native ClearCaptainTargets  takes nothing                               returns nothing
110
native CaptainAttack        takes real x, real y                        returns nothing
111
native CaptainVsUnits       takes player id                             returns nothing
112
native CaptainVsPlayer      takes player id                             returns nothing
113
native CaptainGoHome        takes nothing                               returns nothing
114
native CaptainIsHome        takes nothing                               returns boolean
115
native CaptainIsFull        takes nothing                               returns boolean
116
native CaptainIsEmpty       takes nothing                               returns boolean
117
native CaptainGroupSize     takes nothing                               returns integer
118
native CaptainReadiness     takes nothing                               returns integer
119
native CaptainRetreating    takes nothing                               returns boolean
120
native CaptainReadinessHP   takes nothing                               returns integer
121
native CaptainReadinessMa   takes nothing                               returns integer
122
native CaptainAtGoal        takes nothing                               returns boolean
123
native CreepsOnMap          takes nothing                               returns boolean
124
native SuicideUnit          takes integer count, integer unitid         returns nothing
125
native SuicideUnitEx        takes integer ct, integer uid, integer pid  returns nothing
126
native StartThread          takes code func                             returns nothing
127
native Sleep                takes real seconds                          returns nothing
128
native UnitAlive            takes unit id                               returns boolean
129
native UnitInvis            takes unit id                               returns boolean
130
native IgnoredUnits         takes integer unitid                        returns integer
131
native TownThreatened       takes nothing                               returns boolean
132
native DisablePathing       takes nothing                               returns nothing
133
native SetAmphibious        takes nothing                               returns nothing
134
135
native CommandsWaiting      takes nothing                               returns integer
136
native GetLastCommand       takes nothing                               returns integer
137
native GetLastData          takes nothing                               returns integer
138
native PopLastCommand       takes nothing                               returns nothing
139
native MeleeDifficulty      takes nothing                               returns integer
140
141
//============================================================================
142
//  Globals for all AI scripts
143
//============================================================================
144
globals
145
146
    //--------------------------------------------------------------------
147
    //  HUMANS
148
    //--------------------------------------------------------------------
149
150
    // human heroes
151
    constant integer ARCHMAGE           = 'Hamg'
152
    constant integer PALADIN            = 'Hpal'
153
    constant integer MTN_KING           = 'Hmkg'
154
    constant integer BLOOD_MAGE         = 'Hblm'
155
156
    // human hero abilities
157
    constant integer AVATAR             = 'AHav'
158
    constant integer BASH               = 'AHbh'
159
    constant integer THUNDER_BOLT       = 'AHtb'
160
    constant integer THUNDER_CLAP       = 'AHtc'
161
162
    constant integer DEVOTION_AURA      = 'AHad'
163
    constant integer DIVINE_SHIELD      = 'AHds'
164
    constant integer HOLY_BOLT          = 'AHhb'
165
    constant integer RESURRECTION       = 'AHre'
166
167
    constant integer BLIZZARD           = 'AHbz'
168
    constant integer BRILLIANCE_AURA    = 'AHab'
169
    constant integer MASS_TELEPORT      = 'AHmt'
170
    constant integer WATER_ELEMENTAL    = 'AHwe'
171
172
    constant integer BANISH             = 'AHbn'
173
    constant integer FLAME_STRIKE       = 'AHfs'
174
    constant integer SUMMON_PHOENIX     = 'AHpx'
175
    constant integer SIPHON_MANA        = 'AHdr'
176
177
    // special human heroes
178
    constant integer JAINA              = 'Hjai'
179
    constant integer MURADIN            = 'Hmbr'
180
    constant integer GARITHOS           = 'Hlgr'
181
    constant integer KAEL               = 'Hkal'
182
183
    // human units
184
    constant integer COPTER             = 'hgyr'
185
    constant integer GYRO               =  COPTER
186
    constant integer ELEMENTAL          = 'hwat'
187
    constant integer FOOTMAN            = 'hfoo'
188
    constant integer FOOTMEN            =  FOOTMAN
189
    constant integer GRYPHON            = 'hgry'
190
    constant integer KNIGHT             = 'hkni'
191
    constant integer MORTAR             = 'hmtm'
192
    constant integer PEASANT            = 'hpea'
193
    constant integer PRIEST             = 'hmpr'
194
    constant integer RIFLEMAN           = 'hrif'
195
    constant integer RIFLEMEN           =  RIFLEMAN
196
    constant integer SORCERESS          = 'hsor'
197
    constant integer TANK               = 'hmtt'
198
    constant integer STEAM_TANK         =  TANK
199
    constant integer ROCKET_TANK        = 'hrtt'
200
    constant integer MILITIA            = 'hmil'
201
    constant integer SPELL_BREAKER      = 'hspt'
202
    constant integer HUMAN_DRAGON_HAWK  = 'hdhw'
203
204
    // special human units
205
    constant integer BLOOD_PRIEST       = 'hbep'
206
    constant integer BLOOD_SORCERESS    = 'hbes'
207
    constant integer BLOOD_PEASANT      = 'nhew'
208
209
    // human buildings
210
    constant integer AVIARY             = 'hgra'
211
    constant integer BARRACKS           = 'hbar'
212
    constant integer BLACKSMITH         = 'hbla'
213
    constant integer CANNON_TOWER       = 'hctw'
214
    constant integer CASTLE             = 'hcas'
215
    constant integer CHURCH             = 'htws'
216
    constant integer MAGE_TOWER         =  CHURCH
217
    constant integer GUARD_TOWER        = 'hgtw'
218
    constant integer HOUSE              = 'hhou'
219
    constant integer HUMAN_ALTAR        = 'halt'
220
    constant integer KEEP               = 'hkee'
221
    constant integer LUMBER_MILL        = 'hlum'
222
    constant integer SANCTUM            = 'hars'
223
    constant integer ARCANE_SANCTUM     =  SANCTUM
224
    constant integer TOWN_HALL          = 'htow'
225
    constant integer WATCH_TOWER        = 'hwtw'
226
    constant integer WORKSHOP           = 'harm'
227
    constant integer ARCANE_VAULT       = 'hvlt'
228
    constant integer ARCANE_TOWER       = 'hatw'
229
230
    // human upgrades
231
    constant integer UPG_MELEE          = 'Rhme'
232
    constant integer UPG_RANGED         = 'Rhra'
233
    constant integer UPG_ARTILLERY      = 'Rhaa'
234
    constant integer UPG_ARMOR          = 'Rhar'
235
    constant integer UPG_GOLD           = 'Rhmi'
236
    constant integer UPG_MASONRY        = 'Rhac'
237
    constant integer UPG_SIGHT          = 'Rhss'
238
    constant integer UPG_DEFEND         = 'Rhde'
239
    constant integer UPG_BREEDING       = 'Rhan'
240
    constant integer UPG_PRAYING        = 'Rhpt'
241
    constant integer UPG_SORCERY        = 'Rhst'
242
    constant integer UPG_LEATHER        = 'Rhla'
243
    constant integer UPG_GUN_RANGE      = 'Rhri'
244
    constant integer UPG_WOOD           = 'Rhlh'
245
    constant integer UPG_SENTINEL       = 'Rhse'
246
    constant integer UPG_SCATTER        = 'Rhsr'
247
    constant integer UPG_BOMBS          = 'Rhgb'
248
    constant integer UPG_HAMMERS        = 'Rhhb'
249
    constant integer UPG_CONT_MAGIC     = 'Rhss'
250
    constant integer UPG_FRAGS          = 'Rhfs'
251
    constant integer UPG_TANK           = 'Rhrt'
252
    constant integer UPG_FLAK           = 'Rhfc'
253
    constant integer UPG_CLOUD          = 'Rhcd'
254
255
    //--------------------------------------------------------------------
256
    //  ORCS
257
    //--------------------------------------------------------------------
258
259
    // orc heroes
260
    constant integer BLADE_MASTER       = 'Obla'
261
    constant integer FAR_SEER           = 'Ofar'
262
    constant integer TAUREN_CHIEF       = 'Otch'
263
    constant integer SHADOW_HUNTER      = 'Oshd'
264
265
    // special orc heroes
266
    constant integer GROM               = 'Ogrh'
267
    constant integer THRALL             = 'Othr'
268
269
    // orc hero abilities
270
    constant integer CRITICAL_STRIKE    = 'AOcr'
271
    constant integer MIRROR_IMAGE       = 'AOmi'
272
    constant integer BLADE_STORM        = 'AOww'
273
    constant integer WIND_WALK          = 'AOwk'
274
275
    constant integer CHAIN_LIGHTNING    = 'AOcl'
276
    constant integer EARTHQUAKE         = 'AOeq'
277
    constant integer FAR_SIGHT          = 'AOfs'
278
    constant integer SPIRIT_WOLF        = 'AOsf'
279
280
    constant integer ENDURANE_AURA      = 'AOae'
281
    constant integer REINCARNATION      = 'AOre'
282
    constant integer SHOCKWAVE          = 'AOsh'
283
    constant integer WAR_STOMP          = 'AOws'
284
285
    constant integer HEALING_WAVE       = 'AOhw'
286
    constant integer HEX                = 'AOhx'
287
    constant integer SERPENT_WARD       = 'AOsw'
288
    constant integer VOODOO             = 'AOvd'
289
290
    // orc units
291
    constant integer GUARDIAN           = 'oang'
292
    constant integer CATAPULT           = 'ocat'
293
    constant integer WITCH_DOCTOR       = 'odoc'
294
    constant integer GRUNT              = 'ogru'
295
    constant integer HEAD_HUNTER        = 'ohun'
296
    constant integer BERSERKER          = 'otbk'
297
    constant integer KODO_BEAST         = 'okod'
298
    constant integer PEON               = 'opeo'
299
    constant integer RAIDER             = 'orai'
300
    constant integer SHAMAN             = 'oshm'
301
    constant integer TAUREN             = 'otau'
302
    constant integer WYVERN             = 'owyv'
303
    constant integer BATRIDER           = 'otbr'
304
    constant integer SPIRIT_WALKER      = 'ospw'
305
    constant integer SPIRIT_WALKER_M    = 'ospm'
306
307
    // orc buildings
308
    constant integer ORC_ALTAR          = 'oalt'
309
    constant integer ORC_BARRACKS       = 'obar'
310
    constant integer BESTIARY           = 'obea'
311
    constant integer FORGE              = 'ofor'
312
    constant integer FORTRESS           = 'ofrt'
313
    constant integer GREAT_HALL         = 'ogre'
314
    constant integer LODGE              = 'osld'
315
    constant integer STRONGHOLD         = 'ostr'
316
    constant integer BURROW             = 'otrb'
317
    constant integer TOTEM              = 'otto'
318
    constant integer ORC_WATCH_TOWER    = 'owtw'
319
    constant integer VOODOO_LOUNGE      = 'ovln'
320
321
    // orc upgrades
322
    constant integer UPG_ORC_MELEE      = 'Rome'
323
    constant integer UPG_ORC_RANGED     = 'Rora'
324
    constant integer UPG_ORC_ARTILLERY  = 'Roaa'
325
    constant integer UPG_ORC_ARMOR      = 'Roar'
326
    constant integer UPG_ORC_WAR_DRUMS  = 'Rwdm'
327
    constant integer UPG_ORC_PILLAGE    = 'Ropg'
328
    constant integer UPG_ORC_BERSERK    = 'Robs'
329
    constant integer UPG_ORC_PULVERIZE  = 'Rows'
330
    constant integer UPG_ORC_ENSNARE    = 'Roen'
331
    constant integer UPG_ORC_VENOM      = 'Rovs'
332
    constant integer UPG_ORC_DOCS       = 'Rowd'
333
    constant integer UPG_ORC_SHAMAN     = 'Rost'
334
    constant integer UPG_ORC_SPIKES     = 'Rosp'
335
    constant integer UPG_ORC_BURROWS    = 'Rorb'
336
    constant integer UPG_ORC_REGEN      = 'Rotr'
337
    constant integer UPG_ORC_FIRE       = 'Rolf'
338
    constant integer UPG_ORC_SWALKER    = 'Rowt'
339
    constant integer UPG_ORC_BERSERKER  = 'Robk'
340
    constant integer UPG_ORC_NAPTHA     = 'Robf'
341
    constant integer UPG_ORC_CHAOS      = 'Roch'
342
343
    // Warcraft 2 orc units
344
    constant integer OGRE_MAGI          = 'nomg'
345
    constant integer ORC_DRAGON         = 'nrwm'
346
    constant integer SAPPER             = 'ngsp'
347
    constant integer ZEPPLIN            = 'nzep'
348
    constant integer ZEPPELIN           =  ZEPPLIN
349
    constant integer W2_WARLOCK         = 'nw2w'
350
    constant integer PIG_FARM           = 'npgf'
351
    constant integer FOREST_TROLL       = 'nftr'
352
    constant integer DRAGON_ROOST       = 'ndrb'
353
354
    // special orc units
355
    constant integer CHAOS_GRUNT        = 'nchg'
356
    constant integer CHAOS_WARLOCK      = 'nchw'
357
    constant integer CHAOS_RAIDER       = 'nchr'
358
    constant integer CHAOS_PEON         = 'ncpn'
359
    constant integer CHAOS_KODO         = 'nckb'
360
    constant integer CHAOS_GROM         = 'Opgh'
361
    constant integer CHAOS_BLADEMASTER  = 'Nbbc'
362
    constant integer CHAOS_BURROW       = 'ocbw'
363
364
    //--------------------------------------------------------------------
365
    //  UNDEAD
366
    //--------------------------------------------------------------------
367
368
    // undead heroes
369
    constant integer DEATH_KNIGHT       = 'Udea'
370
    constant integer DREAD_LORD         = 'Udre'
371
    constant integer LICH               = 'Ulic'
372
    constant integer CRYPT_LORD         = 'Ucrl'
373
374
    // special undead heroes
375
    constant integer MALGANIS           = 'Umal'
376
    constant integer TICHONDRIUS        = 'Utic'
377
    constant integer PIT_LORD           = 'Npld'
378
    constant integer DETHEROC           = 'Udth'
379
380
    // undead hero abilities
381
    constant integer SLEEP              = 'AUsl'
382
    constant integer VAMP_AURA          = 'AUav'
383
    constant integer CARRION_SWARM      = 'AUcs'
384
    constant integer INFERNO            = 'AUin'
385
386
    constant integer DARK_RITUAL        = 'AUdr'
387
    constant integer DEATH_DECAY        = 'AUdd'
388
    constant integer FROST_ARMOR        = 'AUfu'
389
    constant integer FROST_NOVA         = 'AUfn'
390
391
    constant integer ANIM_DEAD          = 'AUan'
392
    constant integer DEATH_COIL         = 'AUdc'
393
    constant integer DEATH_PACT         = 'AUdp'
394
    constant integer UNHOLY_AURA        = 'AUau'
395
396
    constant integer CARRION_SCARAB     = 'AUcb'
397
    constant integer IMPALE             = 'AUim'
398
    constant integer LOCUST_SWARM       = 'AUls'
399
    constant integer THORNY_SHIELD      = 'AUts'
400
401
    // undead units
402
    constant integer ABOMINATION        = 'uabo'
403
    constant integer ACOLYTE            = 'uaco'
404
    constant integer BANSHEE            = 'uban'
405
    constant integer PIT_FIEND          = 'ucry'
406
    constant integer CRYPT_FIEND        =  PIT_FIEND
407
    constant integer FROST_WYRM         = 'ufro'
408
    constant integer GARGOYLE           = 'ugar'
409
    constant integer GARGOYLE_MORPH     = 'ugrm'
410
    constant integer GHOUL              = 'ugho'
411
    constant integer MEAT_WAGON         = 'umtw'
412
    constant integer NECRO              = 'unec'
413
    constant integer SKEL_WARRIOR       = 'uske'
414
    constant integer SHADE              = 'ushd'
415
    constant integer UNDEAD_BARGE       = 'uarb'
416
    constant integer OBSIDIAN_STATUE    = 'uobs'
417
    constant integer OBS_STATUE         =  OBSIDIAN_STATUE
418
    constant integer BLK_SPHINX         = 'ubsp'
419
420
    // undead buildings
421
    constant integer UNDEAD_MINE        = 'ugol'
422
    constant integer UNDEAD_ALTAR       = 'uaod'
423
    constant integer BONEYARD           = 'ubon'
424
    constant integer GARG_SPIRE         = 'ugsp'
425
    constant integer NECROPOLIS_1       = 'unpl'    // normal
426
    constant integer NECROPOLIS_2       = 'unp1'    // upgraded once
427
    constant integer NECROPOLIS_3       = 'unp2'    // full upgrade
428
    constant integer SAC_PIT            = 'usap'
429
    constant integer CRYPT              = 'usep'
430
    constant integer SLAUGHTERHOUSE     = 'uslh'
431
    constant integer DAMNED_TEMPLE      = 'utod'
432
    constant integer ZIGGURAT_1         = 'uzig'    // normal
433
    constant integer ZIGGURAT_2         = 'uzg1'    // upgraded
434
    constant integer ZIGGURAT_FROST     = 'uzg2'    // frost tower
435
    constant integer GRAVEYARD          = 'ugrv'
436
    constant integer TOMB_OF_RELICS     = 'utom'
437
438
    // undead upgrades
439
    constant integer UPG_UNHOLY_STR     = 'Rume'
440
    constant integer UPG_CR_ATTACK      = 'Rura'
441
    constant integer UPG_UNHOLY_ARMOR   = 'Ruar'
442
    constant integer UPG_CANNIBALIZE    = 'Ruac'
443
    constant integer UPG_GHOUL_FRENZY   = 'Rugf'
444
    constant integer UPG_FIEND_WEB      = 'Ruwb'
445
    constant integer UPG_ABOM           = 'Ruab'
446
    constant integer UPG_STONE_FORM     = 'Rusf'
447
    constant integer UPG_NECROS         = 'Rune'
448
    constant integer UPG_BANSHEE        = 'Ruba'
449
    constant integer UPG_MEAT_WAGON     = 'Rump'
450
    constant integer UPG_WYRM_BREATH    = 'Rufb'
451
    constant integer UPG_SKEL_LIFE      = 'Rusl'
452
    constant integer UPG_SKEL_MASTERY   = 'Rusm'
453
    constant integer UPG_EXHUME         = 'Ruex'
454
    constant integer UPG_SACRIFICE      = 'Rurs'
455
    constant integer UPG_ABOM_EXPL      = 'Ruax'
456
    constant integer UPG_CR_ARMOR       = 'Rucr'
457
    constant integer UPG_PLAGUE         = 'Rupc'
458
    constant integer UPG_BLK_SPHINX     = 'Rusp'
459
    constant integer UPG_BURROWING      = 'Rubu'
460
461
    //--------------------------------------------------------------------
462
    //  ELVES
463
    //--------------------------------------------------------------------
464
465
    // elf heroes
466
    constant integer DEMON_HUNTER       = 'Edem'
467
    constant integer DEMON_HUNTER_M     = 'Edmm'
468
    constant integer KEEPER             = 'Ekee'
469
    constant integer MOON_CHICK         = 'Emoo'
470
    constant integer MOON_BABE          =  MOON_CHICK
471
    constant integer MOON_HONEY         =  MOON_CHICK
472
    constant integer WARDEN             = 'Ewar'
473
474
    // special elf heroes
475
    constant integer SYLVANUS           = 'Hvwd'
476
    constant integer CENARIUS           = 'Ecen'
477
    constant integer ILLIDAN            = 'Eevi'
478
    constant integer ILLIDAN_DEMON      = 'Eevm'
479
    constant integer MAIEV              = 'Ewrd'
480
481
    // elf hero abilities
482
    constant integer FORCE_NATURE       = 'AEfn'
483
    constant integer ENT_ROOTS          = 'AEer'
484
    constant integer THORNS_AURA        = 'AEah'
485
    constant integer TRANQUILITY        = 'AEtq'
486
487
    constant integer EVASION            = 'AEev'
488
    constant integer IMMOLATION         = 'AEim'
489
    constant integer MANA_BURN          = 'AEmb'
490
    constant integer METAMORPHOSIS      = 'AEme'
491
492
    constant integer SEARING_ARROWS     = 'AHfa'
493
    constant integer SCOUT              = 'AEst'
494
    constant integer STARFALL           = 'AEsf'
495
    constant integer TRUESHOT           = 'AEar'
496
497
    constant integer BLINK              = 'AEbl'
498
    constant integer FAN_KNIVES         = 'AEfk'
499
    constant integer SHADOW_TOUCH       = 'AEsh'
500
    constant integer VENGEANCE          = 'AEsv'
501
502
    // elf units
503
    constant integer WISP               = 'ewsp'
504
    constant integer ARCHER             = 'earc'
505
    constant integer DRUID_TALON        = 'edot'
506
    constant integer DRUID_TALON_M      = 'edtm'
507
    constant integer BALLISTA           = 'ebal'
508
    constant integer DRUID_CLAW         = 'edoc'
509
    constant integer DRUID_CLAW_M       = 'edcm'
510
    constant integer DRYAD              = 'edry'
511
    constant integer HIPPO              = 'ehip'
512
    constant integer HIPPO_RIDER        = 'ehpr'
513
    constant integer HUNTRESS           = 'esen'
514
    constant integer CHIMAERA           = 'echm'
515
    constant integer ENT                = 'efon'
516
    constant integer MOUNTAIN_GIANT     = 'emtg'
517
    constant integer FAERIE_DRAGON      = 'efdr'
518
519
    // special elf units
520
    constant integer HIGH_ARCHER        = 'nhea'
521
    constant integer HIGH_FOOTMAN       = 'hcth'
522
    constant integer HIGH_FOOTMEN       =  HIGH_FOOTMAN
523
    constant integer HIGH_SWORDMAN      = 'hhes'
524
    constant integer DRAGON_HAWK        = 'nws1'
525
    constant integer CORRUPT_TREANT     = 'nenc'
526
    constant integer POISON_TREANT      = 'nenp'
527
    constant integer PLAGUE_TREANT      = 'nepl'
528
    constant integer SHANDRIS           = 'eshd'
529
530
    // elf buildings
531
    constant integer ANCIENT_LORE       = 'eaoe'
532
    constant integer ANCIENT_WAR        = 'eaom'
533
    constant integer ANCIENT_WIND       = 'eaow'
534
    constant integer TREE_AGES          = 'etoa'
535
    constant integer TREE_ETERNITY      = 'etoe'
536
    constant integer TREE_LIFE          = 'etol'
537
    constant integer ANCIENT_PROTECT    = 'etrp'
538
    constant integer ELF_ALTAR          = 'eate'
539
    constant integer BEAR_DEN           = 'edol'
540
    constant integer CHIMAERA_ROOST     = 'edos'
541
    constant integer HUNTERS_HALL       = 'edob'
542
    constant integer MOON_WELL          = 'emow'
543
    constant integer ELF_MINE           = 'egol'
544
    constant integer DEN_OF_WONDERS     = 'eden'
545
546
    // special elf buildings
547
    constant integer ELF_FARM           = 'nefm'
548
    constant integer ELF_GUARD_TOWER    = 'negt'
549
    constant integer HIGH_SKY           = 'negm'
550
    constant integer HIGH_EARTH         = 'negf'
551
    constant integer HIGH_TOWER         = 'negt'
552
    constant integer ELF_HIGH_BARRACKS  = 'nheb'
553
    constant integer CORRUPT_LIFE       = 'nctl'
554
    constant integer CORRUPT_AGES       = 'ncta'
555
    constant integer CORRUPT_ETERNITY   = 'ncte'
556
    constant integer CORRUPT_WELL       = 'ncmw'
557
    constant integer CORRUPT_PROTECTOR  = 'ncap'
558
    constant integer CORRUPT_WAR        = 'ncaw'
559
560
    // elf upgrades
561
    constant integer UPG_STR_MOON       = 'Resm'
562
    constant integer UPG_STR_WILD       = 'Resw'
563
    constant integer UPG_MOON_ARMOR     = 'Rema'
564
    constant integer UPG_HIDES          = 'Rerh'
565
    constant integer UPG_ULTRAVISION    = 'Reuv'
566
    constant integer UPG_BLESSING       = 'Renb'
567
    constant integer UPG_SCOUT          = 'Resc'
568
    constant integer UPG_GLAIVE         = 'Remg'
569
    constant integer UPG_BOWS           = 'Reib'
570
    constant integer UPG_MARKSMAN       = 'Remk'
571
    constant integer UPG_DRUID_TALON    = 'Redt'
572
    constant integer UPG_DRUID_CLAW     = 'Redc'
573
    constant integer UPG_ABOLISH        = 'Resi'
574
    constant integer UPG_CHIM_ACID      = 'Recb'
575
    constant integer UPG_HIPPO_TAME     = 'Reht'
576
    constant integer UPG_BOLT           = 'Repd'
577
    constant integer UPG_MARK_CLAW      = 'Reeb'
578
    constant integer UPG_MARK_TALON     = 'Reec'
579
    constant integer UPG_HARD_SKIN      = 'Rehs'
580
    constant integer UPG_RESIST_SKIN    = 'Rers'
581
    constant integer UPG_WELL_SPRING    = 'Rews'
582
583
    //--------------------------------------------------------------------
584
    // Neutral
585
    //--------------------------------------------------------------------
586
    constant integer DEMON_GATE         = 'ndmg'
587
    constant integer FELLHOUND          = 'nfel'
588
    constant integer INFERNAL           = 'ninf'
589
    constant integer DOOMGUARD          = 'nbal'
590
    constant integer SATYR              = 'nsty'
591
    constant integer TRICKSTER          = 'nsat'
592
    constant integer SHADOWDANCER       = 'nsts'
593
    constant integer SOULSTEALER        = 'nstl'
594
    constant integer HELLCALLER         = 'nsth'
595
    constant integer SKEL_ARCHER        = 'nska'
596
    constant integer SKEL_MARKSMAN      = 'nskm'
597
    constant integer SKEL_BURNING       = 'nskf'
598
    constant integer SKEL_GIANT         = 'nskg'
599
    constant integer FURBOLG            = 'nfrl'
600
    constant integer FURBOLG_TRACKER    = 'nfrb'
601
    constant integer FURBOLG_SHAMAN     = 'nfrs'
602
    constant integer FURBOLG_CHAMP      = 'nfrg'
603
    constant integer FURBOLG_ELDER      = 'nfre'
604
605
    //--------------------------------------------------------------------
606
    // NAGA
607
    //--------------------------------------------------------------------
608
609
    // naga heroes
610
    constant integer NAGA_SORCERESS     = 'Nngs'
611
    constant integer NAGA_VASHJ         = 'Hvsh'
612
613
    // naga units
614
    constant integer NAGA_DRAGON        = 'nsnp'        // old names
615
    constant integer NAGA_WITCH         = 'nnsw'
616
    constant integer NAGA_SERPENT       = 'nwgs'
617
    constant integer NAGA_HYDRA         = 'nhyc'
618
619
    constant integer NAGA_SLAVE         = 'nmpe'        // peon
620
    constant integer NAGA_SNAP_DRAGON   =  NAGA_DRAGON  // weak ranged
621
    constant integer NAGA_COUATL        =  NAGA_SERPENT // weak air
622
    constant integer NAGA_SIREN         =  NAGA_WITCH   // caster
623
    constant integer NAGA_MYRMIDON      = 'nmyr'        // knight
624
    constant integer NAGA_REAVER        = 'nnmg'        // footman
625
    constant integer NAGA_TURTLE        =  NAGA_HYDRA   // siege
626
    constant integer NAGA_ROYAL         = 'nnrg'        // royal guard
627
628
    // naga buildings
629
    constant integer NAGA_TEMPLE        = 'nntt'        // town hall
630
    constant integer NAGA_CORAL         = 'nnfm'        // farm
631
    constant integer NAGA_SHRINE        = 'nnsa'        // sirens & couatls
632
    constant integer NAGA_SPAWNING      = 'nnsg'        // myrm, snap dragon, hydra
633
    constant integer NAGA_GUARDIAN      = 'nntg'        // tower
634
    constant integer NAGA_ALTAR         = 'nnad'        // altar
635
636
    // naga upgrades
637
    constant integer UPG_NAGA_ARMOR     = 'Rnam'
638
    constant integer UPG_NAGA_ATTACK    = 'Rnat'
639
    constant integer UPG_NAGA_ABOLISH   = 'Rnsi'
640
    constant integer UPG_SIREN          = 'Rnsw'
641
    constant integer UPG_NAGA_ENSNARE   = 'Rnen'
642
643
644
    //--------------------------------------------------------------------
645
    constant integer M1                 =    60
646
    constant integer M2                 =  2*60
647
    constant integer M3                 =  3*60
648
    constant integer M4                 =  4*60
649
    constant integer M5                 =  5*60
650
    constant integer M6                 =  6*60
651
    constant integer M7                 =  7*60
652
    constant integer M8                 =  8*60
653
    constant integer M9                 =  9*60
654
    constant integer M10                = 10*60
655
    constant integer M11                = 11*60
656
    constant integer M12                = 12*60
657
    constant integer M13                = 13*60
658
    constant integer M14                = 14*60
659
    constant integer M15                = 15*60
660
661
    constant integer EASY               = 1
662
    constant integer NORMAL             = 2
663
    constant integer HARD               = 3
664
    constant integer INSANE             = 4 // not used
665
666
    constant integer MELEE_NEWBIE       = 1
667
    constant integer MELEE_NORMAL       = 2
668
    constant integer MELEE_INSANE       = 3
669
670
    constant integer ATTACK_CAPTAIN     = 1
671
    constant integer DEFENSE_CAPTAIN    = 2
672
    constant integer BOTH_CAPTAINS      = 3
673
674
    constant integer BUILD_UNIT         = 1
675
    constant integer BUILD_UPGRADE      = 2
676
    constant integer BUILD_EXPAND       = 3
677
678
    constant integer UPKEEP_TIER1       = 50
679
    constant integer UPKEEP_TIER2       = 80
680
681
    //--------------------------------------------------------------------
682
683
    player  ai_player
684
685
    integer sleep_seconds
686
    integer total_gold              = 0
687
    integer total_wood              = 0
688
    integer gold_buffer             = 0 // usually for potion money
689
    integer difficulty              = NORMAL
690
    integer exp_seen                = 0
691
    integer racial_farm             = 'hhou'
692
    integer hero_id                 = 'Hamg'
693
    integer hero_id2                = 'Hmkg'
694
    integer hero_id3                = 'Hpal'
695
    integer array skill
696
    integer array skills1
697
    integer array skills2
698
    integer array skills3
699
    integer max_hero_level          = 0
700
701
    integer array harass_qty
702
    integer array harass_max
703
    integer array harass_units
704
    integer harass_length           = 0
705
706
    integer array defense_qty
707
    integer array defense_units
708
    integer defense_length          = 0
709
710
    integer array build_qty
711
    integer array build_type
712
    integer array build_item
713
    integer array build_town
714
    integer build_length            = 0
715
716
    integer campaign_gold_peons     = 5
717
    integer campaign_wood_peons     = 3
718
    integer campaign_basics_speed   = 5
719
720
    integer min_creeps              = -1
721
    integer max_creeps              = -1
722
723
    boolean harvest_town1           = true
724
    boolean harvest_town2           = true
725
    boolean harvest_town3           = true
726
    boolean do_campaign_farms       = true
727
    boolean two_heroes              = false
728
    boolean allow_air_creeps        = false
729
    boolean take_exp                = false
730
    boolean allow_signal_abort      = false
731
    boolean ready_for_zeppelin      = true
732
    boolean get_zeppelin            = false
733
734
    boolean build_campaign_attackers = true
735
736
    boolean do_debug_cheats         = false
737
    boolean trace_on                = true
738
    boolean zep_next_wave           = false
739
    boolean form_group_timeouts     = true
740
endglobals
741
742
//============================================================================
743
function PlayerEx takes integer slot returns player
744
    return Player(slot-1)
745
endfunction