(!empty($user->lang['CODE'])) ? $user->lang['CODE'] : ucwords(strtolower(str_replace('_', ' ', 'CODE'))):
enum
{
__sight__ = 0,
__unitName__Burrowed = 1,
__unitName__ = 2,
__id__Weapon = 3,
BeaconRally = 4,
BeaconAttack = 5,
BeaconDefend = 6,
BeaconDetect = 7,
BeaconExpand = 8,
BeaconHarass = 9,
BeaconScout = 10,
__id__ = 11,
CUnit = 12,
DESTRUCTIBLE = 13,
ITEM = 14,
POWERUP = 15,
SMCAMERA = 16,
SMCHARACTER = 17,
STARMAP = 18,
SMSET = 19,
MISSILE = 20,
MISSILE_INVULNERABLE = 21,
MISSILE_HALFLIFE = 22,
PLACEHOLDER = 23,
PLACEHOLDER_AIR = 24,
PATHINGBLOCKER = 25,
BEACON = 26,
Ball = 27,
Colossus = 28,
TechLab = 29,
NuclearReactor = 30,
__unit__ = 31,
InfestorTerran = 32,
Mothership = 33,
PointDefenseDrone = 34,
Zergling = 35,
BanelingEgg = 36,
Baneling = 37,
Changeling = 38,
ChangelingZealot = 39,
ChangelingMarineShield = 40,
ChangelingMarine = 41,
ChangelingZerglingWings = 42,
ChangelingZergling = 43,
InfestedTerran = 44,
CommandCenter = 45,
SupplyDepot = 46,
Refinery = 47,
Barracks = 48,
EngineeringBay = 49,
MissileTurret = 50,
Bunker = 51,
SensorTower = 52,
GhostAcademy = 53,
Factory = 54,
Starport = 55,
MercCompound = 56,
Armory = 57,
FusionCore = 58,
AutoTurret = 59,
SpiderMine = 60,
TargetingDrone = 61,
SiegeTankSieged = 62,
SiegeTank = 63,
VikingAssault = 64,
VikingFighter = 65,
CommandCenterFlying = 66,
BarracksTechLab = 67,
BarracksNuclearReactor = 68,
FactoryTechLab = 69,
FactoryNuclearReactor = 70,
StarportTechLab = 71,
StarportNuclearReactor = 72,
FactoryFlying = 73,
StarportFlying = 74,
SCV = 75,
BarracksFlying = 76,
SupplyDepotLowered = 77,
Marine = 78,
Reaper = 79,
Ghost = 80,
Marauder = 81,
Thor = 82,
Hellion = 83,
Medivac = 84,
Banshee = 85,
Raven = 86,
Battlecruiser = 87,
Nuke = 88,
Nexus = 89,
Pylon = 90,
Assimilator = 91,
Gateway = 92,
Forge = 93,
FleetBeacon = 94,
TwilightCouncil = 95,
PhotonCannon = 96,
Stargate = 97,
TemplarArchive = 98,
DarkShrine = 99,
RoboticsBay = 100,
RoboticsFacility = 101,
CyberneticsCore = 102,
Obelisk = 103,
Zealot = 104,
Stalker = 105,
HighTemplar = 106,
DarkTemplar = 107,
Disruptor = 108,
Phoenix = 109,
Carrier = 110,
VoidRay = 111,
WarpPrism = 112,
Observer = 113,
Immortal = 114,
Probe = 115,
Interceptor = 116,
Hatchery = 117,
CreepTumor = 118,
Extractor = 119,
SpawningPool = 120,
EvolutionChamber = 121,
HydraliskDen = 122,
Spire = 123,
UltraliskCavern = 124,
InfestationPit = 125,
NydusNetwork = 126,
BanelingNest = 127,
LurkerDen = 128,
RoachWarren = 129,
SpineCrawler = 130,
SporeCrawler = 131,
Lair = 132,
Hive = 133,
GreaterSpire = 134,
Egg = 135,
Drone = 136,
Overlord = 137,
Hydralisk = 138,
Mutalisk = 139,
Ultralisk = 140,
Roach = 141,
Infestor = 142,
Corruptor = 143,
BroodLordCocoon = 144,
BroodLord = 145,
BanelingBurrowed = 146,
DroneBurrowed = 147,
HydraliskBurrowed = 148,
RoachBurrowed = 149,
ZerglingBurrowed = 150,
InfestorTerranBurrowed = 151,
QueenBurrowed = 152,
Queen = 153,
InfestorBurrowed = 154,
OverlordCocoon = 155,
Overseer = 156,
PlanetaryFortress = 157,
UltraliskBurrowed = 158,
OrbitalCommand = 159,
WarpGate = 160,
OrbitalCommandFlying = 161,
ForceField = 162,
WarpPrismPhasing = 163,
CreepTumorBurrowed = 164,
SpineCrawlerUprooted = 165,
SporeCrawlerUprooted = 166,
Archon = 167,
NydusCanal = 168,
BroodlingEscort = 169,
HighYieldMineralField = 170,
__unitName__Flying = 171,
Observatory = 172,
GhostAcademyFlying = 173,
InfestedTerransEgg = 174,
Larva = 175,
ReaperPlaceholder = 176,
AcidSporesWeapon = 177,
CorruptionWeapon = 178,
FungalGrowthMissile = 179,
InfestedTerransWeapon = 180,
NeuralParasiteWeapon = 181,
PointDefenseDroneReleaseWeapon = 182,
HunterSeekerWeapon = 183,
MULE = 184,
BroodLordSecondaryWeapon = 185,
ThorAAWeapon = 186,
MarauderLMWeapon = 187,
VikingFighterWeapon = 188,
BattlecruiserALMWeapon = 189,
BattlecruiserGLMWeapon = 190,
MissileTurretWeapon = 191,
ReaperD8Weapon = 192,
YamatoWeapon = 193,
PhoenixAirWeapon = 194,
RoachWeapon = 195,
SpineCrawlerWeapon = 196,
SporeCrawlerWeapon = 197,
HydraliskAirWeapon = 198,
HydraliskGroundWeapon = 199,
MutaliskWeapon = 200,
MutaliskM2Weapon = 201,
MutaliskM3Weapon = 202,
StalkerWeapon = 203,
EMP2Weapon = 204,
BansheeLMWeapon = 205,
PhotonCannonWeapon = 206,
CorruptorWeapon = 207,
Broodling = 208,
BroodlingEscortMissileWeapon = 209,
AutoTurretReleaseWeapon = 210,
LarvaReleaseMissile = 211,
Queen2Weapon = 212,
BroodlingDefault = 213,
NeuralParasiteTentacleMissile = 214,
Beacon_Protoss = 215,
Beacon_ProtossSmall = 216,
Beacon_Terran = 217,
Beacon_TerranSmall = 218,
Beacon_Zerg = 219,
Beacon_ZergSmall = 220,
InfestedTerransEggPlacement = 221,
InfestorTerransEgg = 222,
InfestorTerransWeapon = 223,
MineralField = 224,
VespeneGeyser = 225,
SpacePlatformGeyser = 226,
RichVespeneGeyser = 227,
DestructibleSearchlight = 228,
DestructibleStreetlight = 229,
DestructibleSpacePlatformSign = 230,
DestructibleStoreFrontCityProps = 231,
DestructibleSpacePlatformBarrier = 232,
DestructibleGarage = 233,
DestructibleGarageLarge = 234,
DestructibleTrafficSignal = 235,
TrafficSignal = 236,
BraxisAlphaDestructible1x1 = 237,
BraxisAlphaDestructible2x2 = 238,
DestructibleDebris4x4 = 239,
DestructibleDebris6x6 = 240,
DestructibleRock2x4Vertical = 241,
DestructibleRock2x4Horizontal = 242,
DestructibleRock2x6Vertical = 243,
DestructibleRock2x6Horizontal = 244,
DestructibleRock4x4 = 245,
DestructibleRock6x6 = 246,
DestructibleRampDiagonalHugeULBR = 247,
DestructibleRampDiagonalHugeBLUR = 248,
MengskStatueAlone = 249,
MengskStatue = 250,
WolfStatue = 251,
Weapon = 252,
BroodLordWeapon = 253,
CreepBlocker1x1 = 254,
PathingBlocker1x1 = 255,
PathingBlocker2x2 = 256,
AutoTestAttackTargetGround = 257,
AutoTestAttackTargetAir = 258,
AutoTestAttacker = 259,
QueenWeapon = 260,
HelperEmitterSelectionArrow = 261,
MultiKillObject = 262,
Cube = 263,
Cylinder = 264,
Dodecahedron = 265,
Icosahedron = 266,
Octahedron = 267,
Pyramid = 268,
RoundedCube = 269,
Sphere = 270,
Tetrahedron = 271,
ThickTorus = 272,
ThinTorus = 273,
Torus = 274,
BattlecruiserDefensiveMatrix = 275,
BattlecruiserHurricane = 276,
BattlecruiserYamato = 277,
__unitLink__ = 278,
WarpBubble = 279,
OverseerGasCloud = 280,
D8Charge = 281,
RoachEgg = 282,
CorruptorEgg = 283,
QueenCocoon = 284,
GreaterObservatory = 285,
};
The code I used to dump it.
Code:
[code] private class CGameDatabase
{
public:
byte _0000[ 0xD8 ];
struct {
byte __0000[ 0x90 ];
struct {
byte ___0000[ 0x04 ];
struct {
int m_nModelNameLen;
byte _0004[ 0x04 ];
char* m_lpszModelname;
} * m_lpsModelName;
byte _0008[ 0x08 ];
DWORD m_dwClassId;
} ** m_lpsModelInfo;
} * m_lpsUnitModels;
static CGameDatabase* GetInstance( void )
{
return *(CGameDatabase**) 0x16D4318;
}
};
void
Maphack::DumpUnitDefinitions( void )
{
String^ UnitDefinitons = "enum UNIT_CLASSID {\n";
CGameDatabase* lpcDatabase = CGameDatabase::GetInstance( );
for( int i = 0; lpcDatabase->m_lpsUnitModels->m_lpsModelInfo[ i ] != NULL; i++ )
{
try {
if( IsBadReadPtr(lpcDatabase->m_lpsUnitModels->m_lpsModelInfo[ i ], 0x94 ) )
continue;
if( IsBadReadPtr(lpcDatabase->m_lpsUnitModels->m_lpsModelInfo[ i ]->m_lpsModelName, 0x1C ) )
continue;
if( lpcDatabase->m_lpsUnitModels->m_lpsModelInfo[ i ]->m_lpsModelName->m_nModelNameLen <7>m_lpsUnitModels->m_lpsModelInfo[ i ]->m_lpsModelName->m_lpszModelname, 12 ) )
{
UnitDefinitons += "\t" + gcnew String( (char*)&lpcDatabase->m_lpsUnitModels->m_lpsModelInfo[ i ]->m_lpsModelName->m_lpszModelname ) + "\t= " + lpcDatabase->m_lpsUnitModels->m_lpsModelInfo[ i ]->m_dwClassId + ",\n";
continue;
}
if( lpcDatabase->m_lpsUnitModels->m_lpsModelInfo[ i ]->m_lpsModelName && lpcDatabase->m_lpsUnitModels->m_lpsModelInfo[ i ]->m_lpsModelName->m_lpszModelname )
{
UnitDefinitons += "\t" + gcnew String( lpcDatabase->m_lpsUnitModels->m_lpsModelInfo[ i ]->m_lpsModelName->m_lpszModelname ) + "\t= " + lpcDatabase->m_lpsUnitModels->m_lpsModelInfo[ i ]->m_dwClassId + ",\n";
}
} catch( ... )
{
}
}
System::IO::File::WriteAllText( "UnitDef.txt", UnitDefinitons );
}