FireGraft 1.16.1 (primarily exe edit discussion)

Help - Resources - AI Scripting - Grafting - Plugins - Modding Projects
Mauron
Posts: 4
Joined: Fri Jun 12, 2009 1:38 am

Postby Mauron » Sat Jul 11, 2009 5:27 pm

I don't think it would be a problem unless someone changed those offsets, but given that one of the rules of design is "Make it idiot proof and they'll make a better idiot," it probably would be good to at least remove the offset value.

I may have found the purpose of special ability flag 0x10 (The area with the mine-safe option). It appears to be an unused flag for pylon aura. Getting this information out if I can confirm it will be a pain.

The same applies to the entire EXE project, really.
User avatar
ShadowFlare
Posts: 15
Joined: Tue Apr 15, 2008 7:23 am

Postby ShadowFlare » Sat Dec 19, 2009 10:31 pm

bajadulce wrote:WARNING!!!
I don't think it's a good idea to leave OLD exe edit offsets in the .fgd file tho? If you haven't found them leave them blank as DoA did in 1.16.1 or how I listed them. The reason being is that old offsets might interfere in a new patch.
As suggested by bajadulce, placeholders for old exe edits probably shouldn't have the old data left in them. The reason is that it makes it so when you use a Firegraft patch made for the older version, it will crash if it used that exe edit. The Firegraft patches aren't supposed to be version-specific, only the version data files. If a version is released with all of the non-working ones having been removed/disabled, I'd consider adding this data file to SCMLoader.
chezze
Posts: 9
Joined: Thu Jan 29, 2009 8:30 pm

Postby chezze » Fri Feb 12, 2010 5:19 pm

1) How do you update an old 1.15.1 Fgraft mod to 1.16.1 and use these?
And
2) Is there no way to add NEW exe edits such as Mauron's rally point to a mod that didn't have them?
yggdrasil
Posts: 27
Joined: Wed Jan 06, 2010 11:28 pm

Postby yggdrasil » Tue Dec 14, 2010 6:34 pm

yo baja could you explain how to do that registry thing to fix Firegraft so I don't have to click on starcraft.exe each time.

Image
pastelmind
Posts: 57
Joined: Fri Nov 19, 2010 7:50 am

Postby pastelmind » Sun May 08, 2011 2:29 pm

A slew of EXE edit locations that I found:

  • 41. Unit Morph Command - Unit Check(Hydralisk): 0xc19b6
  • 42. Unit Morph Command - Unit Check(Lurker): 0xc19c1
  • 43. Unit Morph Command - Tech Check(Lurker): 0xc19cd
  • 44. Unit Morph Command - Unit Check(Larva): 0xc19da
  • 45. Unit Morph Command - Unit Check(Mutalisk): 0xc19e0
  • 47. Unit Morph Order - Unit Check(Larva): 0x5dfb6
  • 48. Unit Morph Order - Unit Check(Hydralisk): 0x5dfbc
  • 49. Unit Morph Order - Unit Check(Mutalisk): 0x5dfc2
  • 50. Unit Morph Order - Unit to Cocoon Check(Larva): 0x5e028
  • 51. Unit Morph Order - Unit to Cocoon Check(Hydralisk): 0x5e038
  • 52. Unit Morph Order - Unit to Cocoon Check(Mutalisk): 0x5e042
  • 53. Unit Morph Cancel - Cocoon Cancel Unit(Mutalisk): 0x68399
  • 54. Unit Morph Cancel - Lurker Egg Cancel(Hydralisk): 0x6839d
  • 62. Creep flag determines Nydus build site: 0x740ff
  • 81. Stim Packs - HP check (Action): 0x234db
  • 82. Stim Packs - HP check (Command): 0xc2f6c
  • 83. Stim Packs - actual HP substracted: 0xc2fd6
  • 84. Stim Packs - Timer: 0xc2fe7
  • 118. Defensive Matrix images.dat Overlay on Casting Unit: 0x55109
  • 144. Dark Swarm Timer Check: 0xf491f
  • 145. Dark Swarm Timer: 0xf492a
  • 151. Consume Energy Gain: 0xf4805
  • 153. Allow burrowed unit to be Ensnared: 0xf46e1
  • 154. Ensnare images.dat Overlay Start: 0xf4626
  • 174. Disruption Web - Timer Check: 0xf6b6f
  • 175. Disruption Web - Timer: 0xf6b7a
  • 177. Disruption Web - Affect Air Units: 0xeb178
  • 183. Dark Archon Meld Unit ID: 0x947a6
  • 186. Optical Flare - Blinded Sight Range: 0xe5b77
  • 187. Maelstrom sprites.dat Explosion ID: 0xf6862
  • 189. Maelstrom images.dat Overlay Start: 0x55434
  • 190. Allow burrowed units to be Maelstromed: 0xf6797
  • 204. Singularity Charge Target Aquisition Range Increase: 0x760b5
  • 205. Singularity Charge Attack Range Increase: 0x75919
  • 241. Independent Damage -> Independent Unit Percent: 0x115b88
  • 242. Explosive Damage -> Independent Unit Percent: 0x115b9c
  • 243. Concussive Damage -> Independent Unit Percent: 0x115bb0
  • 244. Ignore Armor Damage -> Independent Unit Percent: 0x115bd8
  • 245. Independent Damage -> Small Unit Percent: 0x115b8c
  • 246. Explosive Damage -> Small Unit Percent: 0x115ba8
  • 247. Concussive Damage -> Small Unit Percent: 0x115bb4
  • 248. Ignore Armor Damage -> Small Unit Percent: 0x115bdc
  • 249. Independent Damage -> Medium Unit Percent: 0x115b90
  • 250. Explosive Damage -> Medium Unit Percent: 0x115ba4
  • 251. Concussive Damage -> Medium Unit Percent: 0x115bb8
  • 252. Ignore Armor Damage -> Medium Unit Percent: 0x115be0
  • 253. Independent Damage -> Large Unit Percent: 0x115b94
  • 254. Explosive Damage -> Large Unit Percent: 0x115ba8
  • 255. Concussive Damage -> Large Unit Percent: 0x115bbc
  • 256. Ignore Armor Damage -> Large Unit Percent: 0x115be4
  • 257. Normal Damage -> Independent Unit Percent: 0x115bc4
  • 258. Normal Damage -> Small Unit Percent: 0x115bc8
  • 259. Normal Damage -> Medium Unit Percent: 0x115bcc
  • 260. Normal Damage -> Large Unit Percent: 0x115bd0

It looks like merely comparing the contents of two EXE files is sufficient for locating new offsets, and you don't have to actually run the program and then hook a debugger to it.
Heinermann
Posts: 362
Joined: Thu Apr 26, 2007 12:42 am

Postby Heinermann » Sun May 08, 2011 7:28 pm

That would be...

Code: Select all

.text:004E5B40 ; int __usercall getUpdatedSightRange<eax>(CUNIT *pUnit<edx>, bool ignoreBlindness)
.text:004F6760 ; bool __fastcall MaelStromProc(CUNIT *target, CUNIT *source)
.text:00475870 ; int __usercall getUnitMaxWpnRange<eax>(CUNIT *unit<eax>, unsigned __int8 weapon<bl>)

Code: Select all

.data:00515B84 wpnDamageMultiplier dmgMul <0>
.data:00515B98                 dmgMul <1, 0, 128, 192, 256>
.data:00515BAC                 dmgMul <2, 0, 256, 128, 64>
.data:00515BC0                 dmgMul <3, 0, 256, 256, 256>
.data:00515BD4                 dmgMul <4, 0, 256, 256, 256>


Just since I was looking those up:

Sight:

Code: Select all

Incomplete building sight range: 0xE5B5C (change to "mov eax, #", where # is the sight range)
Ghost upgraded sight range amount: 0xE5BAA (change to "mov eax, #", where # is the sight range)
Overlord upgraded sight range amount: 0xE5BC4 (change to "mov eax, #", where # is the sight range)
Observer upgraded sight range amount: 0xE5BDE (change to "mov eax, #", where # is the sight range)
Scout upgraded sight range amount: 0xE5BF6 (change to "mov eax, #", where # is the sight range)


Maelstrom:

Code: Select all

Allow maelstrom to be used on hallucinations: 0xF676E (Change to jmp short)
Allow maelstrom to be used on invincible units: 0xF6782 (Change to nop)
Allow maelstrom on buildings: 0xF6792 (change to nop)
Allow maelstrom on non-organic units: 0xF679F (change to nop)
Change maelstrom timeer (time effect lasts on targets): 0xF67A2 (change to push whatever number you want (0-255) )


... aaaand I give up. There's way too much data and this is too time consuming.

Return to “StarCraft Modding”

Who is online

Users browsing this forum: No registered users and 1 guest