• 🏆 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!

Mulit-Race Template

Status
Not open for further replies.
Level 2
Joined
Jun 12, 2012
Messages
4
Introduction:
This template is a modified warcraft3. It allows you to add more than 4 race to Warcraft without replacing any of the default elements. Completely playable on Lan with any melee map. (havn’t test it on BNet yet)
I developed it for my Mod(unfinished). And I’m hoping this template could inspire people around the global to create more interesting and innovative Mods :wink:


Basically, it has 3 features:
1. It allows War3 to load an additional MPQ while executing.

2. In this template, I crack the item amounts limitation of HandicapMenu and use it to replace the RaceMenu. Now you can add extra items to the new RaceMenu as your custom race slot.(Theoretically it support 100 items max).
SELECTABLE EXTRA ITEMS
114854d1339552726-mulit-race-template-1.jpg

1.jpg

3. With this template, you can even create a whole new pack of UIs to your own race and there will be no conflicts between yours and Blizzard’s default. Each race’s UI can be stored independently. 100 different races = 100 different UIs
I HAD CHOSEN RACE_5, LOOK AT THE CURSOR.
114855d1339552726-mulit-race-template-3.jpg

3.jpg
(NOT JUST UI, CUSTOM WARNING SOUND AND LOADING SCREEN CAN
ADDED AS WELL!)





HOW TO INSTALL/USE: [for 1.26.0.6410]

1.Copy these files to your Warcraft III directory: (Don't forget to backup the original Game.dll first!)

Race.mpq - Custom appended MPQ
Game.dll - A Modified Game.dll(1.26a)
UserInterface - This folder contains custom UI packages.
(‘1.mpq’ contains UI files that used by Race 1(Human), the first slot of RACEMENU;
‘2.mpq’ is the UI for Race 2(Orc), the second slot of RACEMENU;
And so on… )
*I only change the cursor for a demonstration*

[ If you just want to test it, ignore Step 2 & 3. ]

2. Any in-game jass instructions should be seen at the bottom of ‘Blizzard.j’ (inside Race.mpq).


[3].’Sample\handicap2.w3x’ - A sample map that shows you how to get your chosen race by handicap in game. Since I have included the scripts in Blizzard.j, it become unnecessary :(




KNOWN BUG:

1. The ‘Random’ item on the new RaceMenu don’t have proper UI.
** I honestly don't know how to determine which UI should be loaded BEFORE THE GAME when player select the Random item(currently the random race generation process is IN THE GAME), but if I switch the process to BEFORE THE GAME, and then I don’t know which race should be created IN THE GAME! I've tried using JAPI to pass the value into the game but it will cause multi-player disconnecting (Because the value is local, use it at multi-player will cause momery data synchronization) which is SUUUPER annoying!!! SO YEA, I'm devastated:( **

2. Custom UI might not presented correctly when user run maps that have force1, force2.

3. Might be incompatible with 64bit OS, for now.




IN Further Improvements:

*Remove the 8M limit of max map file size.
*Add JAPI support, better make the data can be exchange via Lan.
*Rewrite it into loader+dll, best way to solve the 64 bit OS problem and coding in asm really makes me hell of a headache =)




Credits:

* Thanks Aeris, ESPER_PALE, especially Aeris for the asm help he gave me during the debugging process of Game.dll.

* If you encounter any bug, pls send me an email: [email protected]

GL&HF!
-fucckz

Here is the VirusScan:
virusscan.jpg
 

Attachments

  • MultiRace Template.7z
    4.4 MB · Views: 1,938
Last edited:
Level 2
Joined
Jun 12, 2012
Messages
4
Sigh. You guys didnt get the point.
This whole thing is not about removing the max map file size limit.
 
Level 2
Joined
Jun 12, 2012
Messages
4
I know the whole point, allowing more races on the game, this is actually more useful for altered melee maps.

Yes, but not for the maps.
I create it for ppl who want to make their altered melee map into MOD and play it on every standard melee maps. :thumbs_up:
 
Level 5
Joined
May 8, 2009
Messages
87
1)can you add a tutorial race or something? not match just to know what to change.

Bugs or things that i don't get them work right
--------------------------------------------
2) when i start a single game (melee map)
The AI (Humans - Medium,Insane) dont Build nothing just harvest gold. BUT if i pick Easy AI (Humans) its starts to Build nice and cool.
2a) All the units and buildings got low health like 5 for units and 15 for some buildings.
2b)when i pick the race (number 5 i thing) (sheep's) i sent my units to the enemy base to die.after that i dint loose the game.(i dint test this with Humans)
2c)when i pick Humans ther UI uses the orcs UI instead of the Human UI.and if i use orcs the use Night elfs UI(i dint test with other races).

3)all that might be from the mod by Default and not by bug or something, but how do i change all that? and most important how i change the health and remove that annoying race massage(player bla bla pick race 6) at the start of the game.

btw thanks for that power tool you made! its cool its very useful and i wanted like from the day that Warcraft III got released in the market.
Thank you brother!!!

+1
 
I was just sitting here, not knowing assembly language, in a disassembler, trying to write this very thing when I googled it because I got fed up...

I have not yet investigated this tool in-depth, but having spent the last several years on a race mod with 6 races currently, aiming for 8, I do believe this tool may be the most awesomely useful thing that I've found available online for quite some time.

I had come across someone who made a similar change for the 1.21 dll, and I reckoned it was possible, but I had never made it work myself.

Edit: (Read below, the following is inaccurate:) Just to throw this out there as a note for this fantastic tool, in your Blizzard.j you tell people to add custom town halls to "MeleeGetAllyKeyStructureCount," and I'd give a strong word of warning that some, but not all, of the functions that use the "MeleeGetAllyKeyStructureCount" occur in local code. This means that nothing should be put there to enumerate through a group to count your custom town halls; you need to use a local-code type function like the native blizzard used, "GetPlayerTypedUnitCount."
I had written something that created a Group object and enumerated through it for any unit of classification "Town Hall" so that I could have any number of custom town halls in a mod, and they would all count for revealing/unrevealing the player. This works 80% of the time, but disconnects players like mad the other 20%. (i.e. don't do that!).

"GetPlayerTypedUnitCount" asks for a string value for your unit, so you may say "My custom town hall doesn't have a string!?" -- just put "custom_<unitid>". That is the string assigned to all custom objects (i.e. "custom_h000")


Another edit: Actually, I reviewed the code and my memory and realized that I was wrong. "MeleeGetAllyStructureCount," a different function that very few people have reason to modify, was the one with the problem. So, once again, this tool works fabulously and you should use it as dumpling tells you, because he knows what he's doing more than I do.
 
Last edited:
  • Like
Reactions: pyf
Status
Not open for further replies.
Top