Heroes of Might and Magic Community
visiting hero! Register | Today's Posts | Games | Search! | FAQ/Rules | AvatarList | MemberList | Profile


Age of Heroes Headlines:  
5 Oct 2016: Heroes VII development comes to an end.. - read more
6 Aug 2016: Troubled Heroes VII Expansion Release - read more
26 Apr 2016: Heroes VII XPack - Trial by Fire - Coming out in June! - read more
17 Apr 2016: Global Alternative Creatures MOD for H7 after 1.8 Patch! - read more
7 Mar 2016: Romero launches a Piano Sonata Album Kickstarter! - read more
19 Feb 2016: Heroes 5.5 RC6, Heroes VII patch 1.7 are out! - read more
13 Jan 2016: Horn of the Abyss 1.4 Available for Download! - read more
17 Dec 2015: Heroes 5.5 update, 1.6 out for H7 - read more
23 Nov 2015: H7 1.4 & 1.5 patches Released - read more
31 Oct 2015: First H7 patches are out, End of DoC development - read more
5 Oct 2016: Heroes VII development comes to an end.. - read more
[X] Remove Ads
LOGIN:     Username:     Password:         [ Register ]
HOMM1: info forum | HOMM2: info forum | HOMM3: info mods forum | HOMM4: info CTG forum | HOMM5: info mods forum | MMH6: wiki forum | MMH7: wiki forum
Heroes Community > Heroes 4 - Lands of Axeoth > Thread: Map Editor: Hints & Tips
Thread: Map Editor: Hints & Tips
Thunder
Thunder


Responsible
Famous Hero
posted June 27, 2002 07:57 PM bonus applied.
Edited By: Hexa on 13 Jul 2002

Map Editor: Hints & Tips

Here you can give and get some useful hints for map editing. Here's mine:

Hidden Paths
Secret passages are easy to create by using either trees or mountains or other large objects to conceal. There can be a town, some creature dwellings, monsters, treasures and artifacts without player ever noticing them behind the thick wall of trees. As a map maker, you can possibly use editor bombs to blow away the concealing trees. Or you can give the player a hint like "Can you see the forest from trees?".

Burned Down Structures and Trees
You can make an illusion of forest fire or a deserted village by hiding dead trees behind the living ones. And during the game you can make the forest fire happen by using the editor bombs. Same can be done for structures as well thanks to burned down houses. Use cool volcanic terrain if you want to make more ashy look.

Handling the Creature Growth
If you want to keep certain stack of creatures from growing, use a continuous event that will take 9999 creatures and then give n number of creatures back. Make sure that you put the mark off from "Run only during owner's turn." in the case of neutrals. If you want to control creature growth by adding more creatures to the stack, the solution to that is a bit more complex affair.
Use a continuous event that will have several conditional actions in a sequence.
Like: If Current Day < 8 then take 9999 trolls from this army and give 9 trolls to this army. And the next one: If Current Day > 7 AND Current Day < 12 then take 9999 trolls from this army and give 12 trolls to this army. Third one: If Current Day > 11 then take 9999 trolls from this army and give 15 trolls to this army.

Scenery
Avoid vast empty areas. That should be a rule number one for map makers. There are plenty of objects to fill the map anyway. Another important thing is not to use the same objects over and over, like making whole forest by using a single tree. Avoid also large completely blocked areas in your map. If you have to use them because you have run out of ideas, it would be better that you make a smaller map.
If you want to make lots of hills by using the elevation tool, do not make vast swamps.

Journal
This is mainly useful in story or roleplaying maps, so the game can keep a track of the various events occurred and to show them to the player when (s)he wants so. Use a timed event that will ask a question from the player so the player is not forced to read the same things over and over again. Also don't make it happen every day, as it can soon become annoying.

How to fill the journal then? This happens by using boolean true/false variables in events. For example (Placed Event): Display "Hero Gnubul picks a mushroom from the ground and eats it". Set Ate_Mushroom to True.
When the timed event then occurs and the player wants to view the journal, it will trigger a custom event that has a condition: If Ate_Mushroom = True then (Display "I saw as Gnubul ate a mushroom!" Trigger Journal Page 2) else Trigger Journal Page 2.

This will ensure that if the event haven't yet happened it will not show the page and will show the next page regardless of the variable.

Release Wandering Neutrals
It might be so that you want to keep the map "alive" by releasing time after time some neutral creatures to the map. This can be done in various different ways like blocking the stack behind the trees and then setting it free with a bomb in day 27. Another variation is to block the creatures behind the quest gates that will require that it is the certain day of the week in order to the creature to pass. Another one is by using a creature stack with limited movement range to block neutrals with limitless movement range. And if you want that neutral stacks are able to take towns give them a hero.

Adjusting Difficulty
If you want harder computer opponent you can always let computer have more creatures and dwellings. As well as giving the computer heroes more experience and skills.

There is also the possibility to adjust the scenario difficulty by asking in the timed event from the player does he want that map is hard or normal at the start of map. For example if the player wants harder game, the timed event will set Hard (variable) to true. Now, in the computer opponent's town, will be a timed event in day 7 that has a condition: If Hard = True then construct dwellings else do nothing. Also you can have more events than just one relying on to the same variable making the map really hard.
This can be really useful idea in multiplayer maps when the players want to play against each other and not to lose against computer, but will also enable the map maker to make single scenario challenging as well.  

Character Creation

If you want to add more RPG style to your maps you can make series of events to create an illusion of good and flexible story. It is important in RPG map to have many alternative choices and alternative plots. You can also give the player the freedom to create his own main character.

Race
This can be done easily with creatures. It can be done also with heroes but only in the case they can't retreat to any town. In the beginning you can ask from a player what kind of race he wants to pick by using timed event. If you want that there are more than two alternatives and that player can browse between choices, use triggerable events that will cycle until the starting race is chosen.
If it is a creature that you want, then put on the map one of the starting races as a creature. Now the next script will show how can you change the creature:

In Timed Event:
Ask "Do you want to be orc? Yes: Yes. No: Other." If yes then set Orc to TRUE. If no then trigger Troll.

In Troll (Triggerable Event):
Ask "Do you want to be troll? Yes: Yes. No: Other." If yes then set Troll to TRUE. If no then trigger Orc.

In Orc (Triggerable Event):
Ask "Do you want to be orc? Yes: Yes. No: Other." If yes then set Orc to TRUE. If no then trigger Troll.

This way the player can browse between the starting races (there is only two of them in example). Next one will show how the variable will change the creature.

Continuous Event on the starting creature (Orc):
If Troll = TRUE then 'give 1 Troll to this army and take 1 Orc from this army and remove script' else 'If Orc = True then 'remove script'.

If you want to use hero then you will have to put different heroes on the map. And when the player have selected his starting race then other heroes will be deleted by using combat in triggerable events. If you need further instructions how this will be done, just ask.

Character Points
You may also want to include certain attributes like Strength, Defense and Wisdom. If you want that player can himself choose how much points are given to different abilities then do as follows:

In Timed Event:
Set Points (Numeric Variable) to 5. Ask "Do you want that your character is more powerful? (it will cost one character point for you and you start with 5). Yes: Yes. No: Other." If yes then Set Strength to "Strength' +1' and Set Points to "Points' -1'. If no then trigger custom event named Defense.

Defense (Triggerable Event):
If Points > 0 then Ask "Do you want that your character has more defense? Yes: Yes. No: Other.". If yes then Set Defense to "Defense' +1' and Set Points to "Points' -1'. If no then trigger custom event named Wisdom.

This way the player can choose where to put points until he have used all of them. If you have hero then you can for example give that hero attack rating equal to strenght variable. You can also have numerous events in your maps where the bigger strenght will be useful.

Gaining Levels
You can make your map to add experience to creatures. It is a "bit" more complex affair with more than one creature but still possible. For example, your single troll who won a battle he fought against peasants gain a new level. This is done by putting an encountered event into neutral creatures as well as into your troll.

In your troll is a several conditional actions: If Level = 1 then increase morale of this army by 1 else do nothing. If Level = 2 then increase morale and luck of this army by 1 else do nothing.

The event above will increase the morale and luck of troll every time he encounters a creature. And the morale and luck increased will depend on the variable level.

On the peasants is an encountered event (that will calculate the number of peasants):
Sequence:
Set Creature_Number to 0.
Set Creature_Number to Creature_Number + total number of creatures in this army.

And on the peasants defeated branch is:
Set Experience to Experience + Creature_Number.

And then there are a continuous event on that troll: If Experience >= 100 then Sequence: Set Level to Level +1, Set Experience to 0, Display "You gained level! Woohoo!".

Numeric Variables in the above scripts are: Experience, Level and Creature_Number.

If you want that there are more than one creature controllable in the same stack the problem arises if the player divides the creatures in two stacks. This can be avoided by putting eight different armies that can not reach each other on the map or by just warning the player not to do so.

Also, you can add things that have nothing to do with actual game as levels like Lockpicking. To create an illusion of gaining such levels you have to have events where they will have effect.

Whenever player attacks that nearby thief, the thief will say "Aho!" and teaches you some lockpicking. And then there is a nearby Rogue Academy where you will be taught more of lockpicking. Then there are two gates in the northern section of map that both require different levels of lockpicking. And in order to pick a lock you have to have picklocks that can be bought from nearby shop. Here is the scripts:

On Rogue's encountered branch:
Sequence: Display "Aho!", Set Lockpicking to 1, Trigger Rogue Over.

On Rogue's triggerable events (Rogue Over):
(Combat) This army will fight against Titan.

Triggerable event above will dismiss the rogue without player having to actually fight with it.

On Rogue Academy:
If Lockpicking = 1 then Set Lockpicking to 2.

On gate A (Quest Requirement):
Lockpicking >= 1 AND Picklocks.

On gate B (Quest Requirement):
Lockpicking >= 1 AND Picklocks.

On shop:
Set Picklocks to True.

Any questions?

Edited by Hexa: Qp applied (very good and helpfull thread)

____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
DarkManiac
DarkManiac


Known Hero
of Hell
posted June 27, 2002 08:02 PM

QP!
____________
A villain's gotta do what a villain's gotta do.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
kevyip
kevyip


Adventuring Hero
posted June 29, 2002 09:21 PM
Edited By: kevyip on 29 Jun 2002

Scripts can also be used to give a variable amount of resources to the player, or set the size of a neutral creature stack based on a variable.

Let's say you want to give N amount of ores to Red.  You create a script called GIVE N ORES:

   if 'counter' < 'N' then
      Give 1 ore to Red Player
      Set 'counter' to ''counter' + 1'
      Trigger custom event named "GIVE N ORES"
   else
      Set 'counter' to '0'

Note that in the fourth line, the script calls itself.  In programming this is called a recursive routine.  The script will keep calling itself, keep giving ore, and keep incrementing the counter until the counter reaches N, at which point the counter is reset to 0 and the script ends.


 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Thunder
Thunder


Responsible
Famous Hero
posted July 11, 2002 04:08 PM
Edited By: Thunder on 15 Aug 2002

Copying Events
Unfortunately you can't copy paste scripts from adventure objects. Although you can copy scrip along with object. If you want to copy a complicated script like Artifact Merchandise without lots of work, use Placed Events. Place the Event next to adventure object so that player might visit it. You can also copy scripted objects along with their scripts to palettes. Rather useful when you want to copy things like Artifact Merchants from map to map.

Also if you want to copy story fully from really complicated script, use export/import options to make it easier.

Terminating AI
This should be a useful thing for a multiplayer map where players want to complete the scenario faster. Ask in a timed event from a player whether he wants AI to be deleted or not. That event then triggers a custom event. On towns computer opponents control, will be a triggerable event that changes the ownership to a no owner. Alternatively you can use editor bomb to destroy the towns. And on every computer army is also triggerable event, but this one will force them into a combat they can't win. If the computer controlled armies have artifacts you don't want player to have, take artifacts first before combat occurs (in sequence).

Quick Scenario
Particularly useful in a larger map, where player wants to save time by completing the map faster. First you might want to give every neutral town to players, whether they are human or computer. Second is that you might want to delete blocking objects like Quest Gates for instance. This is also done by asking from the player in the form of timed event that will then trigger events in neutral towns and deletes adventure objects. Those towns will change owneship then.

How to make scripting easier?
Start the scripts always with sequence. It is better to make sequence right away than to notice later that you would like to expand the script by putting new actions to it straight from the start. Sequences should also be used after every conditional or ask question action.

Also good thing to do is to start scripts with conditional action (straight after the sequence). This will ensure that you can put a condition to the complicated script in the future if you feel so, even if you don't need condition for the script you can always put it to TRUE. Make your scripts flexible for future whims and you will get off with less work.
____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
DonGio
DonGio


Promising
Famous Hero
of Clear Water Mountain Clan
posted July 11, 2002 08:51 PM

If thunder doesn't get a qp for this...??!?!

Great post. But don't you find it annoying to have such a great map editor to such a boring game?

Edit well
DonGio
____________
There are 10 types of people: Those who read binary, and those who don't.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Largo_LeGrande
Largo_LeGrande


Promising
Known Hero
from the Carribean
posted July 12, 2002 09:46 AM
Edited By: Largo_LeGrande on 12 Jul 2002

Carryover variables

If you're making a campaign and want to make a map to influence to the next one (like if you killed a very hard stack/hero in the first campaign you would get something bonus in the next map) use carryover variables. I'm not sure if this idea is already said or if this can be done normally then excuse me.

In this example you will get 100 bone dragons in the start of the second map if 100 black dragons are killed:

1. Make a neutral guarding variable hero into a place where he cannot be seen nor attacked (give him GM steath or put him under a mountain). For him make a triggerable event named "1" where he gets an artifact like an adamantine armour. That artifact would stand for 1. Choose an artifact that cannot be got from the main hero.

2. Then in the scripts of the blackies under the defeated section trigger custom event named "1". The variable hero would get the artifact if those blackies die.

3. In the next map make carryover hero in a place where he still cannot be seen. Make him a continous event (take the "only run on owners turns away") with conditional action "if has adamantine armour set variable "bone_dragons" to 1 and take the artifact. Also remember to select that artifact in the map properties -> carry over artifacts -> artifacts from previous maps.

4. Now in the main hero script make a timed event that gives him 100 bonies if the variable "bone_dragons" is 1

Well don't say that now the main player gets the blackies even an army of an opposion player would kill those blackies. Or that you can make the 3. script "if has adamantine armour drigget "bonies"" and thereof gives the blackies. They can be easily done but this was just an example how you can make carryover variables. And you can make more variable heroes or use more artifacts.  

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Camelnor
Camelnor


Famous Hero
Also known as Blue Camel
posted July 13, 2002 07:54 PM

Great post :)

Great post Thunder :-D
Lots of helpful hints in there.

All are great except that I'm pretty sure you can't bomb anything that can hold creatures... i.e. towns, mines... although you should be able to.
____________
My Site


 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Djive
Djive


Honorable
Supreme Hero
Zapper of Toads
posted July 18, 2002 09:27 PM
Edited By: Djive on 18 Jul 2002

Apparently there is a tutorial on how to use the H4 scipts on :
Hero's 4 Outpost

It will probably be useful to Map makers. (It has some Tutorials to do the basic stuff.)

(Link originally supplied by Orchomene in an Altar thread.)
____________
"A brilliant light can either illuminate or blind. How will you know which until you open your eyes?"

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
DonGio
DonGio


Promising
Famous Hero
of Clear Water Mountain Clan
posted July 21, 2002 09:31 PM

Just curious: doesn't this belong in the library? I mean, it is mapmaking-related, isn't it?


____________
There are 10 types of people: Those who read binary, and those who don't.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
dale
dale


Known Hero
posted August 15, 2002 03:35 PM

The map editor claims to be a campaign editor -- but I cannot seem to find the campaigns that come with the game.   Where are they located?

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Totoro
Totoro


Famous Hero
in User
posted February 03, 2008 10:56 PM

This guide gave me many useful ideas that I had not thought yet... Great guide I say. It was interesting to read.
____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
bigbadfly
bigbadfly


Famous Hero
posted February 05, 2008 08:30 AM

You replied to a post that is years old, but thanks for that! Without you, I would have never found this such a great guide. I'm going to start making maps today! I didn't even know about that script thing and Homm Iv is the best of all. Omfglol!
____________


 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Totoro
Totoro


Famous Hero
in User
posted February 06, 2008 02:30 PM

Yeah... I was just checking QP-threads of this forum and I found this interesting one. Forgot to check the date before posting but good if none minds it bad.
____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
ElectricBunny
ElectricBunny


Known Hero
Pimp My Box
posted March 19, 2008 08:13 AM

Actually I got a mod message for the same reason, so it IS bad.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Feenor
Feenor


Known Hero
posted April 26, 2008 01:36 PM

Could you add some screenshots to this great tutorial?
____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
nurul
nurul


Disgraceful
Adventuring Hero
posted April 27, 2008 12:17 PM

Can you share your scenario

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Humakt
Humakt

Tavern Dweller
posted January 07, 2009 09:37 AM

This looks pretty amateurish now that I look back. Couple nice ideas I had there though.
____________
[url=http://www.celestialheavens.com/thundermaps]Thundermaps[/url]

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Vlaad
Vlaad


Admirable
Legendary Hero
ghost of the past
posted January 07, 2009 05:15 PM

Quote:
This looks pretty amateurish now that I look back. Couple nice ideas I had there though.
LOL Well, it's still one of the best articles on mapmaking out there. It sure was inspiring when I read it for the first time.
____________

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Humakt
Humakt

Tavern Dweller
posted January 08, 2009 04:09 AM
Edited by Humakt at 04:10, 08 Jan 2009.

Guess I should really make a new one then, have ideas for several actually  (H4 Scriptings, H4 Tips, General mapmaking tips, H5 tips (man, I still loathe that editor)). Maybe once I get to updating my site with hopefully appearing new material.

It does feel a bit awkward to make a map making article for seven years old game, so maybe I write some stuff about H5 instead. Or I just try to focuse finishing the remaining maps. Time shall tell.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Jump To: « Prev Thread . . . Next Thread »
Post New Poll    Post New Topic    Post New Reply

Page compiled in 0.0584 seconds