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 » 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 :)

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

Re: Heroes 4 Map Generator / Utility

Postby Karmakeld » Apr 10 2016, 8:49

Awsome. I'll give it a try some time during the next week, hopefully, and give you some feedback :)
Just a thought, is it possible to easily add some kind of error message, if one attempts to copy/paste a script to a place where it can't go?
Like copying a hero/army script to a placed event, but that particular script isn't available as a placed event. Like you wrote, either it will just do nothing or it might cause a crash. If this is something that is hard to setup, or take alot of time having to crosscheck, it might not be worth looking into.
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, 18:27

I already have the method which adds the events to my event class checking the type that is being added, so it should actually be pretty simple to add an error message. If the type doesn't match, I can simply add the name of the bad event to a list and return that to the calling method, who can then show the error dialogue with the list of bad event names.

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

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 11 2016, 5:02

The H4MG can now generate a new .h4c map / campaign completely independent of the H4 Editor :D

There are still 4 bytes at the beginning of the map files that I have no idea what they represent. I can create two maps that are exactly the same in the H4 editor and those 4 bytes are always different, so it's very difficult to figure out what they mean, but that also means they might not be important. Maybe just some sort of book-keeping in the editor.

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

Re: Heroes 4 Map Generator / Utility

Postby Karmakeld » Apr 12 2016, 19:58

that's great :)
Just a thought, if those two 'exactly identical' maps are both placed in the same folder, don't they have separate names in the folder?
Have you looked at what happens if you overwrite, if the 4 bytes then change or remains the same?
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 13 2016, 1:40

I initially thought it was something to do with the file name when you save it, but I think it has to already have those bytes filled out for the map to be viewable in the editor, so it seems that they are filled in when the map is generated after selecting "new" and "ok."

Now, whenever you generate a new map with the H4 editor, it comes up h4cmp1, h4cmp2, etc., but I just tried closing and opening the editor, and then generating a new map, but the 4 bytes were different again.

Anyway, the editor doesn't seem to much care what those numbers are. I just used the numbers from one of the already generated maps as the default value for new maps that the H4MG creates and it seems to work just fine.

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

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 16 2016, 4:09

I have successfully saved / loaded just events to / from file, and copied / pasted the events to a map. After saving the map and then loading it in the H4 editor, the events are all present :)

We can create new event groups, copy and paste events to these event groups, and then save them to a file. On startup, any of these event group files in the data directory will be automatically loaded. So far I have only implemented this for map events, but hero and army events are just more of the same.

There will also be an option to load event groups if you've saved them to some location other than where the program expects.

I'm a bit tired at the moment, so I'll get some screen shots posted up sometime tomorrow.

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

Re: Heroes 4 Map Generator / Utility

Postby Baronus » Apr 16 2016, 6:20

Ok rest :-) It will be big tutorial to this editor.

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

Re: Heroes 4 Map Generator / Utility

Postby iLiVeInAbOx05 » Apr 16 2016, 22:24

Greetings. A few screen captures from my previous update. Here's a look at the Event Group Panel, which is part of the Events panel. It's not tied to any particular map so it might make more sense to put it on its own tab, but we'll see.

Image

To create a new event group, simply click "New," and then give your new event group a name and select the type.

Image

We've created our first event group! It is a Map event group, with the shown event types.

Image

Now, lets load up a map that has some utility events that we can copy to our event group. I chose one of my template maps which has all of my utility scripting, and starts covered in water so I can raise the elevation of the entire map as I see fit (now made obsolete by the H4MG). I'll copy the triggered events here.

Image

Now we'll switch back to the Event Group tab and paste our events under the "Triggerable" type.

Image

Bam, now our event group has our triggerable scripts. I'll copy / paste the rest over as well.

Image

Finally, we can save our Utility Events by clicking on the save button, and then navigating to the location you want to save the file, or - recommended - save it here. On startup, this is where the H4MG checks for event groups and automatically loads them.

Image

Now we are able to copy and paste these events to any map of our choosing - we don't have to open up a particular map and copy / paste those events. I'll probably need to gzip these files to reduce their footprint, even though they aren't all that big.

The load button isn't implemented yet, but that will be simple :) I also have some more work to do with being able to open a frame to look at carryover heroes / etc. so that we can copy and paste those events as well. I'll likely include some of my utility events with the H4MG.


Return to “Heroes I-IV”

Who is online

Users browsing this forum: No registered users and 6 guests