• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[Lua] Hidden lua functions

Status
Not open for further replies.
Level 18
Joined
Jan 1, 2018
Messages
728
Using attached testmap, I found 50+ functions that aren't listed in common.j, Blizzard.j, or common.ai, and that aren't part of lua's standard library either:
functions:
DzAPI_Map_SaveServerValue
DzAPI_Map_IsRedVIP
DzAPI_Map_GetServerArchiveDrop
DzAPI_Map_GetLadderRank
DzAPI_Map_GetServerArchiveEquip
DzAPI_Map_ChangeStoreItemCoolDown
DzAPI_Map_GetActivityData
DzAPI_Map_GetServerValue
DzAPI_Map_HasMallItem
DzAPI_Map_GetMapLevel
DzAPI_Map_UpdatePlayerHero
DzAPI_Map_SavePublicArchive
DzAPI_Map_IsRPGLadder
DzAPI_Map_OrpgTrigger
DzAPI_Map_ChangeStoreItemCount
DzAPI_Map_GetMatchType
DzAPI_Map_IsBlueVIP
DzAPI_Map_UseConsumablesItem
DzAPI_Map_GetServerValueErrorCode
DzAPI_Map_GetPublicArchive
DzAPI_Map_ToggleStore
DzAPI_Map_MissionComplete
DzAPI_Map_GetMapConfig
DzAPI_Map_GetUserID
DzAPI_Map_Ladder_SetStat
DzAPI_Map_GetGuildRole
DzAPI_Map_GetMapLevelRank
DzAPI_Map_GetLadderLevel
DzAPI_Map_IsRPGLobby
DzAPI_Map_GetGuildName
DzAPI_Map_GetGameStartTime
DzAPI_Map_GetPlatformVIP
DzAPI_Map_Ladder_SetPlayerStat
DzAPI_Map_Statistics
DzAPI_Map_Stat_SetStat

__jarray
BlzDeleteHeroAbility
BlzGetHeroStat
BlzSetHeroStatEx
BlzGetUnitMovementType
BlzSetUnitMovementType
BlzGetUnitArmorType
BlzGetHeroPrimaryStatById
BlzGetHeroPrimaryStat
BlzSetHeroPrimaryStat
DebugBreak
DialogSetAsync
FourCC
SetStackedSound
SetStackedSoundRect
ClearStackedSound
ClearStackedSoundRect
TypeDefine

fields:
_DEBUG (boolean)
_GV (userdata)
globals (userdata)
 

Attachments

  • Lua Discover Globals.w3x
    84.5 KB · Views: 116
Last edited:

~El

Level 17
Joined
Jun 13, 2016
Messages
556
Should probably be mentioned that the DzAPI ones are just stubs for backwards-compatibility with the NetEase APIs (or whatever), or something along those lines. At least this is what was corroborated to us back when the Lua update just landed.

The rest are probably not listed for a reason, either unfinished or instability.

I do wonder though if any of these actually carry any useful functionality, or if we're going to get any Lua-exclusive APIs in the future.
 
Level 18
Joined
Jan 1, 2018
Messages
728
Should probably be mentioned that the DzAPI ones are just stubs for backwards-compatibility with the NetEase APIs (or whatever), or something along those lines. At least this is what was corroborated to us back when the Lua update just landed.
Right, thanks for mentioning that. I found the documentation on these here. For some reason only the first 34 out of 52 were found, and DzAPI_Map_UpdatePlayerHero is not listed on that page.

The rest are probably not listed for a reason, either unfinished or instability.

I do wonder though if any of these actually carry any useful functionality, or if we're going to get any Lua-exclusive APIs in the future.
I only knew of __jarray and FourCC before, which are used for GUI triggers when the map's script language is set to lua, so at least these two are useful. Like you said though, the others are probably not usable, considering even some of the new natives we can find in common.j are still buggy.
 
Level 18
Joined
Jan 1, 2018
Messages
728
Did some quick testing for the Blz functions, since their arguments aren't that hard to guess, and found most them them seem to work just fine. They may even be usable in JASS if you declare them similar to how you would use common.ai functions. Note that for some I did not check the return value, but they are probably nothing or boolean. Anyways here's what I found:
JASS:
// Stat indices are same as type heroattribute: 1=str, 2=int, 3=agi
// MoveType indices are same as type movetype: 0=unknown, 1=foot, 2=fly, 4=horse, 8=hover, 16=float, 32=amphibious, 64=unbuildable
// ArmorType indices 'should be' same as type armortype: 0=unknown, 1=flesh, 2=metal, 3=wood, 4=ethereal, 5=stone (forgot to test this since they all returned 1)
BlzDeleteHeroAbility takes unit whichUnit, integer rawcode returns ? // Sets level back to 0, does not refund skillpoints.
BlzGetHeroStat takes unit whichUnit, integer stat returns integer
BlzSetHeroStatEx takes unit whichUnit, integer stat, integer value returns ?
BlzGetUnitMovementType takes unit whichUnit returns integer // Get unit's Movement - Type ('umvt')
BlzSetUnitMovementType takes unit whichUnit, integer movementType returns ?
BlzGetUnitArmorType takes unit whichUnit returns integer // Get unit's Combat - Armor Type ('uarm')
BlzGetHeroPrimaryStat takes unit whichUnit returns integer // Returns 0 if unit is not a hero
BlzSetHeroPrimaryStat takes unit whichUnit, integer value returns ?

globals is used in GUI for Real variable's value becomes x events, such variables are created/written in the globals.
Cool, didn't know that.
 
Last edited:

~El

Level 17
Joined
Jun 13, 2016
Messages
556
Did some quick testing for the Blz functions, since their arguments aren't that hard to guess, and found most them them seem to work just fine. They may even be usable in JASS if you declare them similar to how you would use common.ai functions. Note that for some I did not check the return value, but they are probably nothing or boolean. Anyways here's what I found:
JASS:
// Stat indices are same as type heroattribute: 1=str, 2=int, 3=agi
// MoveType indices are same as type movetype: 0=unknown, 1=foot, 2=fly, 4=horse, 8=hover, 16=float, 32=amphibious, 64=unbuildable
// ArmorType indices 'should be' same as type armortype: 0=unknown, 1=flesh, 2=metal, 3=wood, 4=ethereal, 5=stone (forgot to test this since they all returned 1)
BlzDeleteHeroAbility takes unit whichUnit, integer rawcode returns ? // Sets level back to 0, does not refund skillpoints.
BlzGetHeroStat takes unit whichUnit, integer stat returns integer
BlzSetHeroStatEx takes unit whichUnit, integer stat, integer value returns ?
BlzGetUnitMovementType takes unit whichUnit returns integer // Get unit's Movement - Type ('umvt')
BlzSetUnitMovementType takes unit whichUnit, integer movementType returns ?
BlzGetUnitArmorType takes unit whichUnit returns integer // Get unit's Combat - Armor Type ('uarm')
BlzGetHeroPrimaryStat takes unit whichUnit returns integer // Returns 0 if unit is not a hero
BlzSetHeroPrimaryStat takes unit whichUnit, integer value returns ?


Cool, didn't know that.

Does move type actually update when called via that function? I.e. does it turn a walking unit into a flying one? Would be awesome if it did.
 
Level 18
Joined
Jan 1, 2018
Messages
728
Does move type actually update when called via that function? I.e. does it turn a walking unit into a flying one? Would be awesome if it did.
I only tried turning flying into foot, which set the flying height to 0, but other than that it didn't seem to change much. The unit was still able to 'fly over' ground units, and was targeted as air. My testmap did not have cliffs/water, so I couldn't test its interactions with those.

EDIT: can confirm: after changing it to foot, the unit still interacts with cliffs and water as if its movement type were still flying.
 
Last edited:
Level 19
Joined
Jan 3, 2022
Messages
320
Here's an updated list of all undocumented functions present in Warcraft 3 Reforged's Lua. The output was cross-referenced against current blizzard.j, common.j, common.ai and cheats.j to exclude any "documented" functions. Commented functions from these files were not included. The _G table was traversed recursively, no additional sub-tables. Lua libraries were stripped of interesting functions, I did not include them here.
Output was sorted by function pointers for better insight of internals.
The code I used is not included, message me whenever if you need it.

For version 1.32.10.18067: // note "globals" is not there
-- tostring(key), tostring(value)
_DEBUG false -- Value substituted by game in luahelper.lua's code directly
_G table: 000000003676B650
_GV userdata: 0000000036770600 -- ???
TypeDefine function: 00000000367706E0
DialogSetAsync function: 0000000036788EC0
BlzSetCameraGuardBand function: 0000000036793340
SetCinematicSceneWithSkinId function: 0000000036794640
SetStackedSound function: 0000000036794B70
ClearStackedSound function: 0000000036794C00
SetStackedSoundRect function: 0000000036794C90
ClearStackedSoundRect function: 0000000036794D20
SetSoundFacialAnimationPlaybackMode function: 00000000367955C0
StartSoundEx function: 00000000367959E0
BlzDeleteHeroAbility function: 000000003679B890
BlzSetHeroPrimaryStat function: 000000003679D1D0
BlzGetUnitMovementType function: 000000003679D260
BlzSetUnitMovementType function: 000000003679D2F0
BlzGetUnitArmorType function: 000000003679D380
BlzSetHeroStatEx function: 000000003679D410
BlzGetHeroPrimaryStat function: 000000003679D4A0
BlzGetHeroPrimaryStatById function: 000000003679D530
BlzGetHeroStat function: 000000003679D5D0
DzAPI_Map_MissionComplete function: 000000003679F0C0
DzAPI_Map_GetActivityData function: 000000003679F160
DzAPI_Map_GetMapLevel function: 000000003679F200
DzAPI_Map_SaveServerValue function: 000000003679F290
DzAPI_Map_GetServerValue function: 000000003679F330
DzAPI_Map_Stat_SetStat function: 000000003679F3D0
DzAPI_Map_Ladder_SetStat function: 000000003679F460
DzAPI_Map_Ladder_SetPlayerStat function: 000000003679F500
DzAPI_Map_IsRPGLobby function: 000000003679F5A0
DzAPI_Map_GetGameStartTime function: 000000003679F630
DzAPI_Map_IsRPGLadder function: 000000003679F6D0
DzAPI_Map_GetMatchType function: 000000003679F760
DzAPI_Map_UpdatePlayerHero function: 000000003679F7F0
DzAPI_Map_GetLadderLevel function: 000000003679F890
DzAPI_Map_IsRedVIP function: 000000003679F930
DzAPI_Map_IsBlueVIP function: 000000003679F9C0
DzAPI_Map_GetLadderRank function: 000000003679FA50
DzAPI_Map_GetMapLevelRank function: 000000003679FAE0
DzAPI_Map_GetServerValueErrorCode function: 000000003679FB80
DzAPI_Map_GetGuildName function: 000000003679FC20
DzAPI_Map_GetGuildRole function: 000000003679FCB0
DzAPI_Map_GetMapConfig function: 000000003679FD40
DzAPI_Map_HasMallItem function: 000000003679FDD0
DzAPI_Map_ChangeStoreItemCount function: 000000003679FE60
DzAPI_Map_ChangeStoreItemCoolDown function: 000000003679FF00
DzAPI_Map_ToggleStore function: 000000003679FFA0
DzAPI_Map_GetServerArchiveEquip function: 00000000367A0030
DzAPI_Map_GetServerArchiveDrop function: 00000000367A00D0
DzAPI_Map_OrpgTrigger function: 00000000367A0170
DzAPI_Map_GetUserID function: 00000000367A0200
DzAPI_Map_GetPlatformVIP function: 00000000367A0290
DzAPI_Map_SavePublicArchive function: 00000000367A0330
DzAPI_Map_GetPublicArchive function: 00000000367A03D0
DzAPI_Map_UseConsumablesItem function: 00000000367A0470
DzAPI_Map_Statistics function: 00000000367A0510
BlzSetDestructableSkin function: 00000000367A5640 -- commented out as Jass natives, don't work there. Lua not tested
BlzGetDestructableSkin function: 00000000367A56D0 -- see above
DebugBreak function: 00000000367E2210 -- allegedly disabled in release builds
FourCC function: 00000000367E25B0 -- from luahelper file, DO NOT USE it's WRONG for 1-3 letter codes.
print function: 00000000367E2B00 -- override from luahelper file
math.randomseed function: 00000000367E2C80 -- override from luahelper file
__jarray function: 00000000367E3A20 -- from luahelper file
math.random function: 00000000367E4340 -- override from luahelper file, calls Jass function
PreloadFiles function: 00000000368A9DD0
_VERSION Lua 5.3
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,464
@Luashine could you please run that report again on the 1.33 PTR to see if any extra functions were added that weren't already caught in this post:

 
Level 19
Joined
Jan 3, 2022
Messages
320
@Bribe Thanks. v1.33.0.18897 PTR vs 1.32-20220101 release
Luahelper didn't change.
Common.j, cheats.j: no changes
Blizzard.j: diff --color {1.32-20220101,1.33.0.18897-ptr}/blizzard.j
Green = additions. Town hall is shown as red + green, because its line had no "new-line character" before.
Diff:
539a540,547
> //Cinematic Sound Constants
>     constant volumegroup        SOUND_VOLUMEGROUP_CINEMATIC_GENERAL         = ConvertVolumeGroup(8)
>     constant volumegroup        SOUND_VOLUMEGROUP_CINEMATIC_AMBIENT         = ConvertVolumeGroup(9)
>     constant volumegroup        SOUND_VOLUMEGROUP_CINEMATIC_MUSIC           = ConvertVolumeGroup(10)
>     constant volumegroup        SOUND_VOLUMEGROUP_CINEMATIC_DIALOGUE        = ConvertVolumeGroup(11)
>     constant volumegroup        SOUND_VOLUMEGROUP_CINEMATIC_SOUND_EFFECTS_1 = ConvertVolumeGroup(12)
>     constant volumegroup        SOUND_VOLUMEGROUP_CINEMATIC_SOUND_EFFECTS_2 = ConvertVolumeGroup(13)
>     constant volumegroup        SOUND_VOLUMEGROUP_CINEMATIC_SOUND_EFFECTS_3 = ConvertVolumeGroup(14)
3714a3723
> native StartSoundEx                 takes sound soundHandle, boolean fadeIn returns nothing
4097a4107
> native BlzGetAbilityId                             takes ability whichAbility returns integer
4197c4207,4224
< native BlzGetPlayerTownHallCount                   takes player whichPlayer returns integer
\ No newline at end of file
---
> native BlzGetPlayerTownHallCount                   takes player whichPlayer returns integer
>
> native BlzQueueImmediateOrderById      takes unit whichUnit, integer order returns boolean
> native BlzQueuePointOrderById          takes unit whichUnit, integer order, real x, real y returns boolean
> native BlzQueueTargetOrderById         takes unit whichUnit, integer order, widget targetWidget returns boolean
> native BlzQueueInstantPointOrderById   takes unit whichUnit, integer order, real x, real y, widget instantTargetWidget returns boolean
> native BlzQueueInstantTargetOrderById  takes unit whichUnit, integer order, widget targetWidget, widget instantTargetWidget returns boolean
> native BlzQueueBuildOrderById          takes unit whichPeon, integer unitId, real x, real y returns boolean
> native BlzQueueNeutralImmediateOrderById   takes player forWhichPlayer,unit neutralStructure, integer unitId returns boolean
> native BlzQueueNeutralPointOrderById       takes player forWhichPlayer,unit neutralStructure, integer unitId, real x, real y returns boolean
> native BlzQueueNeutralTargetOrderById      takes player forWhichPlayer,unit neutralStructure, integer unitId, widget target returns boolean
>
> // returns the number of orders the unit currently has queued up
> native BlzGetUnitOrderCount takes unit whichUnit returns integer
> // clears either all orders or only queued up orders
> native BlzUnitClearOrders takes unit whichUnit, boolean onlyQueued returns nothing
> // stops the current order and optionally clears the queue
> native BlzUnitForceStopOrder takes unit whichUnit, boolean clearQueue returns nothing
\ No newline at end of file
Common.ai:
Diff:
diff --color {1.32-20220101,1.33.0.18897-ptr}/common.ai
351a352
>       constant integer DRAGON_ROOST       = 'ndrb'
552a554,555
>       constant integer CORRUPT_AGES       = 'ncta'
>       constant integer CORRUPT_ETERNITY   = 'ncte'

Undocumented changes:
StartSoundEx is now exported in common.j (it wasn't in 1.32)
PreloadFiles is gone completely.

PS: I've got closer to automating this whole process. Next time when I've got time to do this, I will write the missing shell scripts and instructions to create a diff like above and upload them. Then anyone could make an update without me.

For a start, here's a map I used to dump the _G table to Preloads. Just start the map, it'll save and play defeat. Then go to "C:\Users\USERNAME\Documents\Warcraft III Public Test\CustomMapData" to get the file.
Bash:
#!/bin/sh

# This is a shell/bash script file. You need to be a 1337 geek to run this

# Usage:
# sh <filename.sh> <path/to/preloadfile.txt>
# Example: sh ./preloadClean.sh "_g-dump.txt" > output.txt

tail -n +3 "$1" | sed -E -e '/call PreloadStart/d' -e 's/^\tcall Preload\( "//g' -e 's/" \)\r?$//g'| head --lines=-5

PS: There were no changes between the PTR and build 19203 (first hotfix for release)
 

Attachments

  • Lua-dump-_G-v1.0.w3m
    17.3 KB · Views: 9
Last edited:
Level 19
Joined
Jan 3, 2022
Messages
320
I've found this Chinese article that extracted all Jass natives from the game by iterating all registered Jass functions from the running game process: (warning disassembly) War3 132版本获取Jass函数列表 | 码农家园

I don't think that anything exists internally in Jass that is not exposed in Lua, but it's worth checking if we missed anything.
 
Level 9
Joined
Jul 20, 2018
Messages
176
Since 1.26 next common.ai functions worked in map scripts:

JASS:
native GetPlayerUnitTypeCount takes player p, integer unitid            returns integer

native GetUnitGoldCost      takes integer unitid                        returns integer
native GetUnitWoodCost      takes integer unitid                        returns integer
native GetUnitBuildTime     takes integer unitid                        returns integer

native UnitAlive            takes unit id

I know for sure that UnitAlive is present in WC3 Lua, but what about others? Are all common.ai functions are present in WC3 Lua?
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,464
Since 1.26 next common.ai functions worked in map scripts:

JASS:
native GetPlayerUnitTypeCount takes player p, integer unitid            returns integer

native GetUnitGoldCost      takes integer unitid                        returns integer
native GetUnitWoodCost      takes integer unitid                        returns integer
native GetUnitBuildTime     takes integer unitid                        returns integer

native UnitAlive            takes unit id

I know for sure that UnitAlive is present in WC3 Lua, but what about others? Are all common.ai functions are present in WC3 Lua?
Some of them are, but if I recall correctly there are a number of items that didn't get migrated into the _G table.
 
Level 19
Joined
Jan 3, 2022
Messages
320
@Prometheus3375 I will compile and describe a list proper next time. I'd say most/all of them are there. Don't mind the "undocumented" it's a temporary name.

Code:
source;varName;info
luahelper;_DEBUG;false
undocumented;BlzSetCameraGuardBand;function: 000000001F6C2D20
undocumented;SetCinematicSceneWithSkinId;function: 000000001F6C4020
undocumented;SetStackedSound;function: 000000001F6C4550
undocumented;ClearStackedSound;function: 000000001F6C45E0
undocumented;SetStackedSoundRect;function: 000000001F6C4670
undocumented;ClearStackedSoundRect;function: 000000001F6C4700
undocumented;SetSoundFacialAnimationPlaybackMode;function: 000000001F6C4FA0
undocumented;BlzDeleteHeroAbility;function: 000000001F6CB240
undocumented;BlzSetHeroPrimaryStat;function: 000000001F6CCB80
undocumented;BlzGetUnitMovementType;function: 000000001F6CCC10
undocumented;BlzSetUnitMovementType;function: 000000001F6CCCA0
undocumented;BlzGetUnitArmorType;function: 000000001F6CCD30
undocumented;BlzSetHeroStatEx;function: 000000001F6CCDC0
undocumented;BlzGetHeroPrimaryStat;function: 000000001F6CCE50
undocumented;BlzGetHeroPrimaryStatById;function: 000000001F6CCEE0
undocumented;BlzGetHeroStat;function: 000000001F6CCF80
undocumented;DzAPI_Map_MissionComplete;function: 000000001F6CEA70
undocumented;DzAPI_Map_GetActivityData;function: 000000001F6CEB10
undocumented;DzAPI_Map_GetMapLevel;function: 000000001F6CEBB0
undocumented;DzAPI_Map_SaveServerValue;function: 000000001F6CEC40
undocumented;DzAPI_Map_GetServerValue;function: 000000001F6CECE0
undocumented;DzAPI_Map_Stat_SetStat;function: 000000001F6CED80
undocumented;DzAPI_Map_Ladder_SetStat;function: 000000001F6CEE10
undocumented;DzAPI_Map_Ladder_SetPlayerStat;function: 000000001F6CEEB0
undocumented;DzAPI_Map_IsRPGLobby;function: 000000001F6CEF50
undocumented;DzAPI_Map_GetGameStartTime;function: 000000001F6CEFE0
undocumented;DzAPI_Map_IsRPGLadder;function: 000000001F6CF080
undocumented;DzAPI_Map_GetMatchType;function: 000000001F6CF110
undocumented;DzAPI_Map_UpdatePlayerHero;function: 000000001F6CF1A0
undocumented;DzAPI_Map_GetLadderLevel;function: 000000001F6CF240
undocumented;DzAPI_Map_IsRedVIP;function: 000000001F6CF2E0
undocumented;DzAPI_Map_IsBlueVIP;function: 000000001F6CF370
undocumented;DzAPI_Map_GetLadderRank;function: 000000001F6CF400
undocumented;DzAPI_Map_GetMapLevelRank;function: 000000001F6CF490
undocumented;DzAPI_Map_GetServerValueErrorCode;function: 000000001F6CF530
undocumented;DzAPI_Map_GetGuildName;function: 000000001F6CF5D0
undocumented;DzAPI_Map_GetGuildRole;function: 000000001F6CF660
undocumented;DzAPI_Map_GetMapConfig;function: 000000001F6CF6F0
undocumented;DzAPI_Map_HasMallItem;function: 000000001F6CF780
undocumented;DzAPI_Map_ChangeStoreItemCount;function: 000000001F6CF810
undocumented;DzAPI_Map_ChangeStoreItemCoolDown;function: 000000001F6CF8B0
undocumented;DzAPI_Map_ToggleStore;function: 000000001F6CF950
undocumented;DzAPI_Map_GetServerArchiveEquip;function: 000000001F6CF9E0
undocumented;DzAPI_Map_GetServerArchiveDrop;function: 000000001F6CFA80
undocumented;DzAPI_Map_OrpgTrigger;function: 000000001F6CFB20
undocumented;DzAPI_Map_GetUserID;function: 000000001F6CFBB0
undocumented;DzAPI_Map_GetPlatformVIP;function: 000000001F6CFC40
undocumented;DzAPI_Map_SavePublicArchive;function: 000000001F6CFCE0
undocumented;DzAPI_Map_GetPublicArchive;function: 000000001F6CFD80
undocumented;DzAPI_Map_UseConsumablesItem;function: 000000001F6CFE20
undocumented;DzAPI_Map_Statistics;function: 000000001F6CFEC0
undocumented;BlzSetDestructableSkin;function: 000000001F6D5080
undocumented;BlzGetDestructableSkin;function: 000000001F6D5110
undocumented;DebugS;function: 000000001F6D5540
undocumented;DebugFI;function: 000000001F6D55C0
undocumented;DebugUnitID;function: 000000001F6D5640
undocumented;DisplayText;function: 000000001F6D56D0
undocumented;DisplayTextI;function: 000000001F6D5760
undocumented;DisplayTextII;function: 000000001F6D57F0
undocumented;DisplayTextIII;function: 000000001F6D5880
undocumented;SuicideUnit;function: 000000001F6D5910
undocumented;SuicideUnitEx;function: 000000001F6D59A0
undocumented;Sleep;function: 000000001F6D5A30
undocumented;StartThread;function: 000000001F6D5AB0
undocumented;GetAiPlayer;function: 000000001F6D5B40
undocumented;DoAiScriptDebug;function: 000000001F6D5BD0
undocumented;GetHeroId;function: 000000001F6D5C60
undocumented;GetHeroLevelAI;function: 000000001F6D5CF0
undocumented;SetHeroLevels;function: 000000001F6D5D80
undocumented;SetNewHeroes;function: 000000001F6D5E10
undocumented;GetUnitCount;function: 000000001F6D5EA0
undocumented;GetPlayerUnitTypeCount;function: 000000001F6F9F80
undocumented;GetTownUnitCount;function: 000000001F6FA010
undocumented;GetUnitCountDone;function: 000000001F6FA0A0
undocumented;GetUpgradeLevel;function: 000000001F6FA130
undocumented;GetUnitGoldCost;function: 000000001F6FA1C0
undocumented;GetUnitWoodCost;function: 000000001F6FA250
undocumented;GetUnitBuildTime;function: 000000001F6FA2E0
undocumented;GetUpgradeGoldCost;function: 000000001F6FA370
undocumented;GetUpgradeWoodCost;function: 000000001F6FA400
undocumented;GetEnemyPower;function: 000000001F6FA490
undocumented;GetMinesOwned;function: 000000001F6FA520
undocumented;GetGoldOwned;function: 000000001F6FA5B0
undocumented;TownWithMine;function: 000000001F6FA640
undocumented;TownHasMine;function: 000000001F6FA6D0
undocumented;TownHasHall;function: 000000001F6FA760
undocumented;GetNextExpansion;function: 000000001F6FA7F0
undocumented;GetExpansionPeon;function: 000000001F6FA880
undocumented;GetEnemyExpansion;function: 000000001F6FA910
undocumented;SetExpansion;function: 000000001F6FA9A0
undocumented;GetBuilding;function: 000000001F6FAA30
undocumented;SetAllianceTarget;function: 000000001F6FAAC0
undocumented;GetAllianceTarget;function: 000000001F6FAB50
undocumented;SetProduce;function: 000000001F6FABE0
undocumented;MergeUnits;function: 000000001F6FAC70
undocumented;ConvertUnits;function: 000000001F6FAD00
undocumented;SetUpgrade;function: 000000001F6FAD90
undocumented;Unsummon;function: 000000001F6FAE20
undocumented;ClearHarvestAI;function: 000000001F6FAEB0
undocumented;HarvestGold;function: 000000001F6FAF40
undocumented;HarvestWood;function: 000000001F6FAFD0
undocumented;StopGathering;function: 000000001F6FB060
undocumented;AddGuardPost;function: 000000001F6FB0F0
undocumented;FillGuardPosts;function: 000000001F6FB180
undocumented;ReturnGuardPosts;function: 000000001F6FB210
undocumented;CreateCaptains;function: 000000001F6FB2A0
undocumented;SetCaptainHome;function: 000000001F6FB330
undocumented;TypeDefine;function: 0000000026550060
undocumented;_GV;userdata: 00000000265506D0
undocumented;DialogSetAsync;function: 0000000026566920
undocumented;ResetCaptainLocs;function: 0000000027945A80
undocumented;ShiftTownSpot;function: 0000000027945B10
undocumented;SetCaptainChanges;function: 0000000027945BA0
undocumented;TeleportCaptain;function: 0000000027945C30
undocumented;ClearCaptainTargets;function: 0000000027945CC0
undocumented;CaptainVsUnits;function: 0000000027945D50
undocumented;CaptainVsPlayer;function: 0000000027945DE0
undocumented;CaptainAttack;function: 0000000027945E70
undocumented;GroupTimedLife;function: 0000000027945F00
undocumented;CaptainGoHome;function: 0000000027945F90
undocumented;CaptainIsHome;function: 0000000027946020
undocumented;CaptainRetreating;function: 00000000279460B0
undocumented;CaptainIsFull;function: 0000000027946140
undocumented;CaptainIsEmpty;function: 00000000279461D0
undocumented;CaptainGroupSize;function: 0000000027946260
undocumented;CaptainReadiness;function: 00000000279462F0
undocumented;CaptainReadinessHP;function: 0000000027946380
undocumented;CaptainReadinessMa;function: 0000000027946410
undocumented;CaptainInCombat;function: 00000000279464A0
undocumented;TownThreatened;function: 0000000027946530
undocumented;CaptainAtGoal;function: 00000000279465C0
undocumented;CreepsOnMap;function: 0000000027946650
undocumented;RemoveInjuries;function: 00000000279466E0
undocumented;RemoveSiege;function: 0000000027946770
undocumented;IsTowered;function: 0000000027946800
undocumented;DisablePathing;function: 0000000027946890
undocumented;SetAmphibious;function: 0000000027946920
undocumented;InitAssault;function: 00000000279469B0
undocumented;AddAssault;function: 0000000027946A40
undocumented;AddDefenders;function: 0000000027946AD0
undocumented;GetCreepCamp;function: 0000000027946B60
undocumented;StartGetEnemyBase;function: 0000000027946BF0
undocumented;WaitGetEnemyBase;function: 0000000027946C80
undocumented;GetMegaTarget;function: 0000000027946D10
undocumented;GetEnemyBase;function: 0000000027946DA0
undocumented;GetExpansionFoe;function: 0000000027946E30
undocumented;GetExpansionX;function: 0000000027946EC0
undocumented;GetExpansionY;function: 0000000027946F50
undocumented;SetStagePoint;function: 0000000027946FE0
undocumented;AttackMoveKill;function: 0000000027947070
undocumented;AttackMoveXY;function: 0000000027947100
undocumented;LoadZepWave;function: 0000000027947190
undocumented;SuicidePlayer;function: 0000000027947220
undocumented;SuicidePlayerUnits;function: 00000000279472B0
undocumented;UnitAlive;function: 0000000027947340
undocumented;UnitInvis;function: 00000000279473D0
undocumented;IgnoredUnits;function: 0000000027947460
undocumented;CommandsWaiting;function: 00000000279474F0
undocumented;GetLastCommand;function: 0000000027947580
undocumented;GetLastData;function: 0000000027947610
undocumented;PopLastCommand;function: 00000000279476A0
undocumented;SetCampaignAI;function: 0000000027947730
undocumented;SetMeleeAI;function: 00000000279477C0
undocumented;SetTargetHeroes;function: 0000000027947850
undocumented;SetHeroesFlee;function: 00000000279478E0
undocumented;SetHeroesBuyItems;function: 0000000027947970
undocumented;SetIgnoreInjured;function: 0000000027947A00
undocumented;SetPeonsRepair;function: 0000000027947A90
undocumented;SetRandomPaths;function: 0000000027947B20
undocumented;SetDefendPlayer;function: 0000000027947BB0
undocumented;SetHeroesTakeItems;function: 0000000027947C40
undocumented;SetUnitsFlee;function: 0000000027947CD0
undocumented;SetGroupsFlee;function: 0000000027947D60
undocumented;SetSlowChopping;function: 0000000027947DF0
undocumented;SetSmartArtillery;function: 0000000027947E80
undocumented;SetWatchMegaTargets;function: 0000000027947F10
undocumented;SetReplacementCount;function: 0000000027947FA0
undocumented;PurchaseZeppelin;function: 0000000027948030
undocumented;MeleeDifficulty;function: 00000000279480C0
undocumented;DebugBreak;function: 0000000027948150
luahelper;__jarray;function: 000000002794B120
luahelper;math.randomseed;function: 000000002794B160
luahelper;math.random;function: 000000002794B1A0
luahelper;print;function: 000000002794B1E0
luahelper;FourCC;function: 000000002794B220
lua;_VERSION;Lua 5.3
 
Status
Not open for further replies.
Top