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!
For a while now I have been taking my simple map modifications (extra units, a few changes to old units, additional merc stores, a few new upgrades, slight different items in some stores like Ancient of Wonders, etc) and putting them into each map, and then if I update the changes I have to update the map...
I was looking at a mod today, somehow Heaven's Fall somehow can apply stuff to each map? This is really what I wanted to do, to have my changes just appear on any map I load.
I would love to figure this out. Updating a bunch of maps to play with the new orc death priest gets old if I want to play a dozen maps.
24) SLK files (table format for different purposes) (thanks to PitzerMike)
SLK files can technically be opened by Microsoft Excel, though if you don't own Excel or a SLK editor, or want to open SLK files with your application, you might be interested in the format, so here it is. SLK files are text files and read line by line. The first two letters of each line can be used to decide what to do with it.
Format:
Line["ID"]: the first line you will have to read is the one starting with ID, this id is usually set to ID;PWXL;N;E
Line["B;"]: this line defines the number of columns and lines of the table
Example:�B;Y837;X61;D0 0 836 60
This file has 837 lines and 61 columns, the rest of the line is always set to ;D0 0 Y-1 X-1 so these are probably the internal index bounds
From now on we will only look at lines that start with "C;" and are followed by "Y" or "X".
Line["C;Y"]: specifies the value for the cell with the specified line and column if the fourth token starts with a "K", otherwise we ignore it, anyway the current line is set to the y value, so the following lines that might be missing the y value refer to this line
Example: C;Y1;X1;K"unitBalanceID"
Sets the cell in line 1 and column 1 to "unitBalanceID"
Line["C;X"}: specifies the value for the cell with the specified column and the line previously specified as current line (in a "C;Y" statement) if the fourth token starts with a "K", otherwise we ignore it
Example: C;X45;K1.8
Assigns 1.8 to the cell in current line and column 45
The x value might also be omitted, so that the x value of the previous line is used.
All other lines can be ignored, they contain comments and format information. After a "K" there may either be a whole or floating point number or a string within quotes. Empty cells don't have any entries.
unit data is splitted in multiple slk files, unlike one is used from object Editor.
unitabilities.slk, references to abilities
unitbalance.slk, gold, lumber, bounty, armor, food, hp, mp, ...
unitdata.slk,
unitui.slk, visual stuff: used models, shadows...
unitweapons.slk, attacks
upgradedata.slk
do not forget .txt - files, they contain important stuff.
this 2 are much of the gameconstants
miscgame.txt
miscdata.txt
for some strange reasons some fiels in gameconstants of world editor are fragmented over multiple txt files.
<race>unitfunc.txt, important file; train/requierments for units, also unit Missile
<race>upgradefunc.txt, define buttonImg and requierments of techs/upgrades
<race>abilityfunc.txt, Ability-Button, missile, requierments, effect art
neutralunitfunc.txt, one can setup here also the types beeing consider as hero for gameconstants.
Add custom code:
I do know more about that.
One can overlap "war3.mpq/scripts/blizzard.j"
blizzard.j, only accepts plain jass
-> Requiers beeing able to read/modificate plain jass to some extend.
inject your globals into the blizzard.j
inject your code into blizzard.j
inject starting your inits into blizzardInit, else your stuff won't do anything.
If you want to use vjass/GUI: create your code/trigger place it in a map. then convert it into jass with the export map script.
the map script is the maps code in jass, but it also contains stuff which is not important.
Preplaced Units, trees, Sound, player settings... can be skipped for obivous reasons.
Before doing something fancy and overdo yourself try something easy.
Example add all workers to human townhall.
One could also use "war3mod.mpq" instead of "war3.mpq" (folder) most times. But I am not sure what the advantages disadvantages of both are.
Edit: Warcraft 3 has built in validation checks, so one can not enter a lobby using different gamestate data/code. This is also the case for loadng a game.
OK, so I checked this out. Crazy. Is there any way to take the files already done out of the object editor or map to place into these folders? I must admit there were so many it was a bit daunting.
using that tool. It allows to convert maps between 3 formats `Lni`, `Obj` and `Slk`. Convert your map either in Lni or slk than you have data in a format which is more easy to handle/transfer.
But I forgot about tooltips. Not sure how to do that maybe one can add text in one of the txt files. Or one would have to overLap the localized folders as seen in the casc by using casview.
they are named like that <Lcid-String>-war3local.mpq, google Lcid String or look at warcraft 3 with cascview
example local german: "dede-war3local.mpq".
If you don't care about multi language,
You can add text directly in the txt-Files.
Inside humanunitfunc.txt:
Tip="Custom Hero"
When you ask about Heavens Fall, are you looking at the old one or the new one? For years Heaven's Fall was an EXE that was like a second expansion. When you played it, you could join LAN games and choose any of 6 races in the out-of-game drop-down and play on any melee map. This system stopped working after patch 1.28, because it requires the Nirvana MultiRace Template and I have not seen an update for Nirvana's system online for me to use.
If you're looking at the maps that I recently uploaded, these were all generated in an afternoon. I have WEX 1.29 to use for batch file import. So I type the command in Trigger Editor to run the preprocessor script to import my 700 model files and textures and whatever from a folder. Then I go to Object Editor and do "Import All Object Data". All of my custom Triggers are included with the model files in an override for "Scripts\Blizzard.j". So then it basically just works
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.