• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a faction for Warcraft 3 and enter Hive's 19th Techtree Contest: Co-Op Commanders! Click here to enter!
  • Get your art tools and paintbrushes ready and enter Hive's 34th Texturing Contest: Void! Click here to enter!

How to code mixtapes

Status
Not open for further replies.
Level 3
Joined
Jan 16, 2013
Messages
12
I'v seen a lot of mixtape patches for warcraft, hacks or something like that.
But how to create it? I know C++ well, but don't know how it works and don't have any sdk or api.
Cannot find anything. Can you give me a link on github sources of any mixtape or guide about this?
It would be nice to know about this.
 
Level 19
Joined
Jun 13, 2016
Messages
587
As far as I know, WC3 on old patches (I think, 1.27 and below, might be wrong) is simply designed to load any standards windows DLL, if it is present in the game folder with the .mix extension. There is no official API or anything like that.

The way these "mixtapes" work is that they directly modify the WC3 process, either via an offset table or signature scanning, inserting hooks into the relevant sections of the code, thus modifying the code flow.

Since there is no official API, you are pretty much stuck with reverse-engineering WC3 code. I don't think you'll have luck finding any resources here, on Hive, but you might have some luck on d3scene.

For example, here's a Lua engine framework that relies on a static table of WC3 memory offsets to provide Lua scripting capabilities to WC3 - [Release] Warcraft Lua Engine [1.0.4]

Do keep in mind that this functionality has been removed from current patches, and the WC3 binaries themselves have been encrypted, further complicating the process of reverse-engineering it.
 
Status
Not open for further replies.
Top