Jump to content
Sign in to follow this  

Upgrade/Tech Offsets

Recommended Posts

Anyone know the exact offsets for the upgrades and tech, as well as the address range for Player 1? Apparently, the following information is incorrect. Any corrections to this list would be greatly appreciated. :D

 

Tech Upgrades - 1.16.1 0058D2B0

0x01 = Terran - Lock Down (Ghost)

0x02 = Terran - EMP Shockwave (Science Vessel)

0x03 = Terran - Spider Mines (Vulture)

0x04 =

0x05 = Terran - Siege Mode (Tank)

0x06 =

0x07 = Terran - Irradiate (Science Vessel)

0x08 = Terran - Yamato Gun (BattleCruiser)

0x09 = Terran - Cloaking Field (Wraith)

0x0A = Terran - Personnel Cloaking (Ghost)

0x0B = Zerg - Burrowing

0x0C =

0x0D = Zerg - Spawn Broodlings (Queen)

0x0E = Terran - Optical Flare(Medic)

0x0F = Zerg - Plague (Defiler)

0x10 = Zerg - Consume (Defiler)

0x11 = Zerg - Ensnare (Queen)

0x12 =

0x13 =

0x14 =

0x15 =

0x16 =

0x17 =

0x18 = Terran - Restoration (Medic)

0x19 =

0x1A =

0x1B =

0x1C =

0x1D =

0x1E =

0x1F =

0x20 = Zerg - Lurker Aspect (Hydralisk)

 

Weapon Upgrades - 1.16.1 0058CF44

Terran:

0x01 = Terran - Ground Armor

0x07 = Terran - Infantry Wepons

0x08 = Terran - Ground Wepons

0x10 = Terran - Marine Attack Range

0x11 = Terran - Vulture Movment

0x13 = Terran - Science Vessel +50 Energy

0x14 = Terran - Ghost Sight Range

0x15 = Terran - Ghost +50 Energy

0x16 = Terran - Wraith +50 Energy

0x33 = Terran - Medic +50 Energy

0x36 = Terran - Goliath Attack Range

 

Protoss:

0x05 = Protoss - Ground Armor

0x06 = Protoss - Air Armor

0x0D = Protoss - Ground Wepons

0x0E = Protoss - Air Weapons

0x0F = Protoss - Plasma Shields

0x13 = Protoss - Psionic Storm

0x14 = Protoss - Hallucination

0x15 = Protoss - Recall

0x16 = Protoss - Stasis

0x19 = Protoss - Disruption Web

0x1B = Protoss - Mind Controll

0x1F = Protoss - MealStorm

0x21 = Protoss - Dragoon Attack Range

0x22 = Protoss - Zealot Speed

0x23 = Protoss - Scarab Damage

0x24 = Protoss - Reaver Capacity

0x25 = Protoss - Shuttle Movment

0x26 = Protoss - Observer Sight Range

0x27 = Protoss - Observer Movment

0x28 = Protoss - High Templar +50 Energy

0x29 = Protoss - Scout Sight Range

0x2A = Protoss - Scout Movment

0x2B = Protoss - Carrier Capacity

0x2C = Protoss - Arbiter +50 Energy

0x2F = Protoss - Corsair +50 Energy

0x31 = Protoss - Dark Archon +50 Energy

 

Zerg:

0x03 = Zerg - Carapace (Zerg Shields)

0x04 = Zerg - Air Armor

0x0A = Zerg - Melee Wepons

0x0B = Zerg - Missile Wepons

0x0C = Zerg - Air Wepons

0x18 = Zerg - Overlord Transporting

0x19 = Zerg - Overlord Sight Range

0x1A = Zerg - Overlord Movment

0x1B = Zerg - Zergling Movment

0x1C = Zerg - Zergling Attack Speed

0x1D = Zerg - Hydralist Movment

0x1E = Zerg - Hydralist Attack Range

0x1F = Zerg - Queen +50 Energy

0x20 = Zerg - Defiler +50 Energy

0x25 = Zerg - Ultralist Movment

0x34 = Zerg - Ultralist Armor

Share this post


Link to post
Share on other sites

An old snippet from nexuiz 2.2.4, hope you find it usefull:

/*IdentifyUpgrade() - Indentifies an upgrade from hex values*/
char* IdentifyUpgrade(int upgrade)
{
switch(upgrade)
{
	case 13:
		return "Ground Weapons";
	case 5:
		return "Ground Armor";
	case 15:
		return "Plasma Sheilds";
	case 14:
		return "Air Weapons";
	case 6:
		return "Air Armor";
	case 7:
		return "Infintry Weapons";
	case 0:
		return "Inifintry Armor";
	case 8:
		return "Vehicle Weapons";
	case 1:
		return "Vehicle Plating";
	case 9:
		return "Ship Weapons";
	case 2:
		return "Ship Plating";
	case 10:
		return "Melee Attacks";
	case 11:
		return "Missle Attacks";
	case 3:
		return "Carapace";
	case 12:
		return "Flyer Attacks";
	case 4:
		return "Flyer Carapace";
	default:
		return NULL;
}
}

Share this post


Link to post
Share on other sites
An old snippet from nexuiz 2.2.4, hope you find it usefull:

/*IdentifyUpgrade() - Indentifies an upgrade from hex values*/
char* IdentifyUpgrade(int upgrade)
{
switch(upgrade)
{
	case 13:
		return "Ground Weapons";
	case 5:
		return "Ground Armor";
	case 15:
		return "Plasma Sheilds";
	case 14:
		return "Air Weapons";
	case 6:
		return "Air Armor";
	case 7:
		return "Infintry Weapons";
	case 0:
		return "Inifintry Armor";
	case 8:
		return "Vehicle Weapons";
	case 1:
		return "Vehicle Plating";
	case 9:
		return "Ship Weapons";
	case 2:
		return "Ship Plating";
	case 10:
		return "Melee Attacks";
	case 11:
		return "Missle Attacks";
	case 3:
		return "Carapace";
	case 12:
		return "Flyer Attacks";
	case 4:
		return "Flyer Carapace";
	default:
		return NULL;
}
}

 

He was looking for offsets of where the data is stored for the number of upgrades for each player.

 

Also why would you do that that way? First off you don't even have all of the upgrades and starcraft has to have all the upgrade names stored in memory for certain parts of the game so why wouldn't you just read those?

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×