Well for example not actual values!
[Death and Decay]
tab="dnd spell"
input=DECIMAL
output=1
address=0x004A1CAE,0x004A1CAE
limit=0,250
default=25,26
checked=1
1. So to replace death and decay with blizzard I would need to input 2 addresses and 2 values.
Currently, each entry only changes one address (its just an alpha), however I will add the option for multiple changes to the "SELECT" input method for the next release. Good point and not hard to add.
I notice you have the same address twice there - I'm assuming thats just for this made up example and they would normally be different (in fact I just re-read and you said that), anyway for multiple options for what to write at a single address the look at the "SELECT" input type on the example tab.
2. Also should be a comment section where we can add lists of addresses & values.
You mean in the ini file itself? or included in the mods section that is written to the pud? ... both worthwhile ideas.
Certianly I have been planning to use the semicolon [;] as a comment delimiter to allow comments in the ini file, but just havn't got around to it yet - currently any text that is not part of a valid definition will cause an error.
It would also be good to have 2 text sections available to be saved with the PUD:
- Comments for other modders and interested people that would appear on the LiveMod console log
- An intro message that would be displayed on the screen for all players at the start of the game that would explain a bit about the particular map/mods
3. I see the format is in decimal, can we use Hex? That would be great and save time from converting all current research.
Of course
change "input=DECIMAL" to "input=HEX"
That sort of stuff is all up to you.
Have a look at the entries for the "example" tab in the ini file
There is also a "scale=" option where you can set a multiplier to be applied to the input value before it is saved, for cases like the gold amount in mines that is written to PUD files. I dont know if we will need this but it's there.
e.g.
with "scale=3" inputing 10 in the editor would save a value of 30 for the mod
or "scale=0.5" inputing 88 in the editor would save a value of 44 for the mod etc....
Here's the basic outline of the format so far:
[Name]
tab = (tab title)
input = DECIMAL|HEX|TEXT|SELECT
limit = min,max
scale = (multiplier)
select = "item",(value)
output = 1|2|4|Sz|USz
address = (write address)
default = (initial contents)
checked = (BOOL: initially active)It still needs documenting properly.
"output" types are
1-BYTE
2-WORD
4-DWORD
Sz-ANSII STRING
USz-UNICODE STRING
Obviously "select" items only work with input type "SELECT" .... the "item" part is what will appear in the editor combo-box, then after the comma is the value will be written if that item is selected.
output to "Sz" (ANSII string) or USz (UNICODE string) requires "TEXT" input.
4. Is there a reason the range is from 0 to 250 instead of 255?
Nope. That's just what I typed in when I was quickly making a test ini file. If the acceptable range is 0-255 or 1-255 or whatever then it should be changed to that. I'm hoping that our awesome modding community will help work out things like that
5. Now the hardest part. For example what if I would want a address to be triggered apoun certain conditions? So I have an address that changes the icons for units so a peon could have a mage icons(attack, move, blizz, fireball, etc.) The current set up would force all units and buildings to have those icons. So if we could add some mini scripting this would be pure ownage.
There is a string value in a memory location that changes to peon, mage, barracks when you click on them in game. We could then use that!
My psudocode idea
If selected = peon then
Call icons
End else
Call defaults
End
Something like that would be amazing! Think of all the possibilities. You could add the scores of each player in game and reward them with onscreen, or whatever the possibilities are endless.
Yes, scripting like this would be very cool, and it is ultimately possible, however that's a whole extra layer on top of what will be the first release. Might add this for version 2 if I get time... never know, see how we go.
It would not be cheat proof because a person could edit the ini.... but if you networked the exe and said everyone has to use the hosts ini file boom!
.... the .ini file is only to configure the editor. The editor writes the mods to the PUD file and it is the mods in the PUD file that are applied to the game, so when you play the map everybody has the same mods (from the PUD) and the .ini file has nothing to do with it.
yall nerds
Hehe - yes indeed
my mouse icon better not turnto a
OMG!
That is a
FREAKIN AWESOME idea! Ima do it!!
ok ruffed them all to this one value im just guessing shit right now.....heal does heal lol lust works also haste does to on canon towers guard..should of released this first :/
95f70-95fc0 =70 22 44 "on for buildings?"
but great got this little part out of the way and what it kinda is ...spell affects which type units.
Sonds cool. Not exactly sure what you are saying here, but I suspect "95f70" etc. are file offsets, so you will have to convert them to process addresses.
-->
Fortunately for most of the WC2 exe this is very easy - you just put a "4" in front of it .... i.e. 0x00495F70. This is because the image base is 0x00400000 most sections have the same value for "VirtualAddress" and "PointerToRawData" in the IMAGE_SECTION_HEADER structures. The exception is stuff in the .rsrc section .... but I can help with that later if need be.