Heroes 4 Map Generator / Utility

The old Heroes games developed by New World Computing. Please specify which game you are referring to in your post.

Moderator: Moderators

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Mar 31 2016, 4:09

Update: I have implemented painting different terrain types, as well as changing the brush size. I still have a little work to do with getting the brush size exact, since I'm currently using the diagonal of the grid square, rather than the side, when calculating the pixel length. I also need to rotate the drawn square (if a square is the shape being used) so that it matches the grid direction.

Painting with a large brush on an XL map:

Image

Painting with a ludicrous brush on an XL map:

Image

The resulting minimap in the H4 editor:

Image

I think next I'm going to update the painting methods to handle shapes (just square and circle for now). Then I think I'll get on figuring out the boundary codes so that painting terrain can look "right."

After that, I think I'll work on showing adventure objects that contain events.

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 2 2016, 6:24

Finished updating the paint methods so that they will accept shapes. I can now paint circles and squares. I've also implemented the ability to remove void terrain, fixed several small bugs, and made some other updates to emulate the way things work in the actual editor.

I briefly started looking at terrain boundary codes, but their meanings are still beyond me. I'll just have to keep looking at them until I can figure them out >.<!

User avatar
Baronus
Assassin
Assassin
Posts: 288
Joined: 06 Jun 2015

Re: Heroes 4 Map Generator / Utility

Postby Baronus » Apr 2 2016, 12:00

Good results!
What about copy selected area? And paste in another map? Friendly selector will be usefull...

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 2 2016, 16:32

A selection tool with various options is definitely on my list of things to implement :D

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 4 2016, 3:45

Update: I'm now able to show all of the adventure objects which have events. So far I have also emulated the "Army Properties" options you get when selecting an army in the editor. I still need to figure out what kind of information should actually be displayed in the tables, so feedback is appreciated. Clearly "Army" isn't exactly useful when you have many on the map, and it took me some time to find the one I was looking for. Maybe under the "Name" column (the column name can change) I should list the name of the first creature stack or hero (whichever comes first)? Under "Type" I can probably shorten it to just the important part of the object's name.

Image

The screen shot below shows that you will be able to right click and edit any particular object (currently only works for Army objects).

Image

Still missing a few fields on the emulated Army Properties panel, but I'll get them filled in eventually :) The number after "Male" corresponds to the Hero's class, which I haven't documented quite yet.

Image

And you can check out the events for army objects (can't copy or anything yet).

Image

I decided I didn't want to keep breaking my head against terrain boundary codes (at least for now) so I moved on to getting this done :) I'll work on the "Hero Properties" panel next, and then look at enabling changes to the armies and heroes :)

At some point I'll work on displaying the actual scripts (emulating the editor unless someone else has a better idea of how to show them).

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 4 2016, 4:08

Speaking of the terrain boundary codes, if anyone is interested in helping me figure those out, please let me know. If you create an empty map, I can point you to where the terrain codes start and show you in the documentation what each of the bytes means.

I've started seeing some small patterns in the boundary codes, but nothing conclusive yet.

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 5 2016, 5:02

Created a bare bones hero editing panel with just the events tab set up. So, from the Army properties panel, you can edit a hero in the army as you would in the actual editor like so:

Image

Then the Hero Properties frame shows up (after I took the screen shots, I realized I forgot to add the "Ok" and "Cancel" buttons) and I navigate to the events tab (the other tabs are currently empty).

Image

Now I can switch between event types as I can in the editor, and switch to triggerable events.

Image

I realize you can do this stuff in the editor, but next I'm going to add the ability to copy and paste events between objects (starting with armies and heroes). Once that is done, that means I will have a way coded to add scripts to armies and heroes (besides reading them in from the map file), which will allow us to easily add the AI enhancing scripts. I guess that means I'll need to work on the ability to save and load events as well :)

User avatar
Baronus
Assassin
Assassin
Posts: 288
Joined: 06 Jun 2015

Re: Heroes 4 Map Generator / Utility

Postby Baronus » Apr 5 2016, 5:54

Advanced options. It will be helpfull for all mapmakers...

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 6 2016, 4:25

I've now successfully copied events between heroes. Haven't set up copying scripts between armies, but it's going to be exactly the same thing. I'll look at copying scripts between armies and heroes. I wonder how hard the game - or editor - would crash if I put a change_owner script directly on a hero?

Anyway. With the H4MG, I open up the "Army Properties" dialogue for two of my heroes (Lolindir left, and Tarnum right), then open up the respective "Hero Properties" dialogues. Next I select some of Tarnum's scripts, right click, and select "Copy."

Image

Then I move to Lolindir's window, right click, and select paste.

Image

And the scripts are now on my Lolindir hero.

Image

"Ok" out of the dialogues, then file -> save the map and open it in the H4 editor. I open up the events on my Lolindir hero, and voila:

Image

I think I'm probably going to add the hero's name to the title of the "Hero Properties" frame since we can have multiple open at once. Will probably get annoying pretty quick trying to find the right window :)

User avatar
Karmakeld
CH Staff
CH Staff
Posts: 1092
Joined: 12 Nov 2011

Re: Heroes 4 Map Generator / Utility

Postby Karmakeld » Apr 6 2016, 7:29

That would be a good idea :). The easier it is to keep track of what you're doing the better - this should make it easier for beginners to navigate :) Have you thought about adding a minor tutorial, or at least some file including it's list of options/what the program can do and maybe how to? To some degree this tread IS already a tutorial, but still..
I'm silent in seven languages - and I got all my familys fear.
Everytime you throw dirt, you loose a little ground

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 6 2016, 14:24

I'll probably need to come up with some way of naming the frame title for "Army Properties" as well. Maybe something similar to what I suggested earlier for the table where all you see is "Army" for the type.

As far as a tutorial, at the very least I plan to add a "Help" menu with some thorough explanations of the help topics (which will consist of the various features). I'd like to also do a small write up of the various features available, and maybe even do a video to sort of showcase the important features :)

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 7 2016, 1:27

Well, unfortunately placing a change owner script directly on a hero doesn't seem to do anything. I tried to call it from a timed event and nothing happened. Both the game and editor are able to open a file with this in place without crashing (in the editor if you look at the script, the script name is blank), but it doesn't really matter since it doesn't work.

User avatar
Karmakeld
CH Staff
CH Staff
Posts: 1092
Joined: 12 Nov 2011

Re: Heroes 4 Map Generator / Utility

Postby Karmakeld » Apr 7 2016, 13:50

So no hope of adding the change owner script to carry over heroes then?
I'm silent in seven languages - and I got all my familys fear.

Everytime you throw dirt, you loose a little ground

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 7 2016, 14:39

I haven't tried it on a carryover hero yet, but it very likely will just do the same thing (nothing) :(

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 9 2016, 0:23

So I did a quick test of what I would need to zip up to distribute this projects for others to have a look at, and I think I could actually send out what I have to anyone who would like to give this a look :D

Still not quite ready to offer officially, as there are a lot of things that are incomplete, but are still represented (buttons which don't yet do anything). Maybe once we move to beta ;)

I still want to test on my gf's laptop, but I'm pretty confident it will work.

As a word of warning, this software will probably only work for English versions of maps. I convert some Strings to lowercase without using the "Locale" version of the method (since I'm not really familiar with how that works), which will probably be a problem for maps in other languages. At some point I may try testing some H4 maps which are in different languages, but no guarantees that I'll be able to make it work.

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 9 2016, 3:28

I've decided to start work on event groups, but I'm not sure how I should go about saving / loading / creating event groups. My first thought was to add a menu called "Tools" to the main menu bar, and then add the necessary menus under "Event Groups" there. Now I'm thinking that maybe it would be better if I added a tab under the "Events" tab for the event group stuff in order to keep everything similar in the same place.

Putting it under the events tab would probably be good because then I already have display space for it, rather than popping up a new window with the options that the user would continually have to click multiple times to see.

Does anyone have any thoughts or feedback?

User avatar
Karmakeld
CH Staff
CH Staff
Posts: 1092
Joined: 12 Nov 2011

Re: Heroes 4 Map Generator / Utility

Postby Karmakeld » Apr 9 2016, 14:22

Not sure what you define as event groups, also have you looked into copying/moving part of a map to another map/place on the map?
But in general I think options/layout that reduce amounts of needed clicks would be preferable
I'm silent in seven languages - and I got all my familys fear.

Everytime you throw dirt, you loose a little ground

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 9 2016, 19:34

Event groups are just events that can be saved and loaded from file.

So, if you have utility events that are helpful on any map that you create, you can simply load them into the map you're working on from a file.

I'm still not sure how I want the user to be able to save / load / apply the events from the groups in the actual program. I was thinking maybe add a button to the panels that the user could potentially add new events called "Load from Group" or something like that. An example would be to put one on the "Army Properties" frame so the user could click it, and then select a group of events to apply.

The other way I was thinking was to have the group events on a tab under the events section. From there the user could load up groups of events, and then just copy the scripts they want, and paste them where they want.

Still not sure what the best way to do this would be.

I also need to come up with a good way to store them in a file, but that's not as big an issue.

I'm also going to implement saving quest hut scripts to file, so you can copy and paste scripting between quest huts :)

Oh, and to answer your question: I have not yet looked into copying one part of a map to another yet.

User avatar
Karmakeld
CH Staff
CH Staff
Posts: 1092
Joined: 12 Nov 2011

Re: Heroes 4 Map Generator / Utility

Postby Karmakeld » Apr 9 2016, 22:08

Copying between quest huts is a good idea too. Basically it would be useful to be able to copy/paste between any object that can contain scripts quest guards and gates as well (different look).
About the event group, I'm leaning towards the second option, but I think I would have to play around with the program, to get a feeling of what might seem most intuitive.
Would you be able to save the 'events group' to an 'event group' map or a txt file? I don't assume the program itself would be able to store the saved events?
I'm silent in seven languages - and I got all my familys fear.

Everytime you throw dirt, you loose a little ground

User avatar
iLiVeInAbOx05
Equilibris Team
Equilibris Team
Posts: 567
Joined: 21 Jul 2014

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 10 2016, 3:31

That's the plan :) I was thinking about not including copying for quest guards and gates because you can copy them to the H4 editor palette, but then as you said, you have one that faces left, and one that faces right, so it would still be useful.

I sent you the program, so you can give it a whirl :) The only thing you need to do is install the Java JRE just download the most recent version (I sent you the link). I'll continue thinking about what would be a good way to do it. It end up being a mix of what has already been described.

The event groups will be saved to a file, and when you start the program, it will check the location where it expects event groups to be, and load them into the program. There will still be an option to load event groups so that you can load event groups if you have saved them in another location.

Since this program already knows how to save / load events to / from .h4c files, it will be very simple to save / load only events to another file. I'll probably give them an extension other than .txt just so I can easily differentiate my file types. Same goes for saving quest huts to a file :)


Return to “Heroes I-IV”

Who is online

Users browsing this forum: Majestic-12 [Bot] and 6 guests