[H5 EDITOR] Troubleshooting topic
- Grumpy Old Wizard
- Round Table Knight
- Posts: 2205
- Joined: 06 Jan 2006
- Location: Tower Grump
Under Conquest Objects you can find some snow skins for mountains. Other than that you need the HOF expansion as Pitsu said.
GOW
GOW
Frodo: "I wish the ring had never come to me. I wish none of this had happened."
Gandalf: "So do all who live to see such times but that is not for them to decide. All we have to decide is what to do with the time that is given to us."
Gandalf: "So do all who live to see such times but that is not for them to decide. All we have to decide is what to do with the time that is given to us."
Salve guys,
I checked some of the previous pages in this thread and I know this is a quite frequent question, but I regret to inform that the old links/answers didnt help me much. Here it goes:
I want to be able to edit the multiplayer maps (or even the single player-custom maps from Ubi). But I dont seem to find the goddamn .h5m files! I assumed they were all probably packed in a .pak file. And indeed it was so. I've unpacked the .pak files but the maps are still not .h5m! Instead they are mini folders with crazy files which I cannot understand or access.
Is there a logical yet simple solution for this?
Thanks,
W.
I checked some of the previous pages in this thread and I know this is a quite frequent question, but I regret to inform that the old links/answers didnt help me much. Here it goes:
I want to be able to edit the multiplayer maps (or even the single player-custom maps from Ubi). But I dont seem to find the goddamn .h5m files! I assumed they were all probably packed in a .pak file. And indeed it was so. I've unpacked the .pak files but the maps are still not .h5m! Instead they are mini folders with crazy files which I cannot understand or access.
Is there a logical yet simple solution for this?
Thanks,
W.
download the maps in h5m format from http://www.heroesofmightandmagic.com/he ... maps.shtmlWolfsburg wrote: I want to be able to edit the multiplayer maps (or even the single player-custom maps from Ubi). .
Avatar image credit: N Lüdimois
Help with message parameters
I posted this under another thread, but this might be the place to ask for help so here goes. I am trying to pass a number to a message for display.
I have the following in my "GotnMages.txt resource text file
You have trained <value=level_mages> new mages.
And below is what is in the script, but I get no display at all, nothing! What am I missing here? Help.
MessageBox({path.."GotnMages.txt"; level_mages = 5});
I have the following in my "GotnMages.txt resource text file
You have trained <value=level_mages> new mages.
And below is what is in the script, but I get no display at all, nothing! What am I missing here? Help.
MessageBox({path.."GotnMages.txt"; level_mages = 5});
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'Imagination is more important than intelligence.' - Albert Einstien
'Imagination is more important than intelligence.' - Albert Einstien
-
- Lurker
- Posts: 1
- Joined: 09 Aug 2007
Please oh please someone let me know why the sample below doesn't wanna work
function dwellings()
if GetObjectiveState("PreTaskDwelling",OBJECTIVE_COMPLETED) then
OpenCircleFog(50,7,0,14,0);
OpenCircleFog(46,25,0,14,0);
OpenCircleFog(28,50,0,14,0);
end;
end;
Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,"PreTaskDwelling","dwellings")
thanks in advance
function dwellings()
if GetObjectiveState("PreTaskDwelling",OBJECTIVE_COMPLETED) then
OpenCircleFog(50,7,0,14,0);
OpenCircleFog(46,25,0,14,0);
OpenCircleFog(28,50,0,14,0);
end;
end;
Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,"PreTaskDwelling","dwellings")
thanks in advance
Code: Select all
function dwellings()
if GetObjectiveState("PreTaskDwelling") == OBJECTIVE_COMPLETED then -- this line was certainly not as it should have been
OpenCircleFog(50,7,0,14,0); --- Is 0 a valid value for the last parameter?1 to 8 ?
OpenCircleFog(46,25,0,14,0);
OpenCircleFog(28,50,0,14,0);
end;
end;
Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,"PreTaskDwelling","dwellings")
Avatar image credit: N Lüdimois
Thanks here too Pitsu. I was too tired to have an idea of wrong IDPitsu wrote:Code: Select all
function dwellings() if GetObjectiveState("PreTaskDwelling") == OBJECTIVE_COMPLETED then -- this line was certainly not as it should have been OpenCircleFog(50,7,0,14,0); --- Is 0 a valid value for the last parameter?1 to 8 ? OpenCircleFog(46,25,0,14,0); OpenCircleFog(28,50,0,14,0); end; end; Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,"PreTaskDwelling","dwellings")
... and so it works but there was an other problem which I let You know here: always read at least 5 times what name of object(ive) U're working with!!! So Razzak is on his march now and no one can stop him any more! Thanks again a lot Pitsu!
And remember "To all things comes an end but in every end there's a new beginning."
MUG == Miss U Gorgons
MUG == Miss U Gorgons
bargh... scripting is a mess with this game...
SetRegionBlocked("border1",true,1); doesn't work. Things I've tried:
- tried false instead of true but I guess true is for blocking and false is unblocking
- tried PLAYER_1 instead of ID '1'
- name of the region is fine
- tried to trigger the event for first day
Should hero really stop so simple when reaching the area? But if I use REGION_ENTER_AND_STOP then it is passable just it stops by every step in the area, am I right?
Is it OK without triggering?
An other question I have... is there an offical/legal way to run editor and game at the same time? Would fasten up testing.
SetRegionBlocked("border1",true,1); doesn't work. Things I've tried:
- tried false instead of true but I guess true is for blocking and false is unblocking
- tried PLAYER_1 instead of ID '1'
- name of the region is fine
- tried to trigger the event for first day
Should hero really stop so simple when reaching the area? But if I use REGION_ENTER_AND_STOP then it is passable just it stops by every step in the area, am I right?
Is it OK without triggering?
An other question I have... is there an offical/legal way to run editor and game at the same time? Would fasten up testing.
And remember "To all things comes an end but in every end there's a new beginning."
MUG == Miss U Gorgons
MUG == Miss U Gorgons
Do not remember by heart, but try 1 and nil or 1 and 0 instead of true/false.cgsilver wrote: - tried false instead of true but I guess true is for blocking and false is unblocking
A hero cannot enter blocked region at all - horse cursor does not even appear when hovering over blocked area or beyond. A enabled region with ENTER_AND_STOP trigger causes hero to stop when *entering* the region (not every tile when in the region)Should hero really stop so simple when reaching the area? But if I use REGION_ENTER_AND_STOP then it is passable just it stops by every step in the area, am I right?
Is it OK without triggering?
As far as i know not. However, since scripts, unlike map objects etc, are not loaded with game but when a map is started you can edit the scripts without quiting the game. At least it was possible a few patches ago. Forget the editor and open map with winzip or winrar archiver. Do not unpack it but just open and find the mapscript.lua file. Edit (notepad text editor) it as you wish and compress it back. Edited script should now run when restarting the map, no need to quit and restart entire game.An other question I have... is there an offical/legal way to run editor and game at the same time? Would fasten up testing.
For debugging, I strongly recommend to allow show console in order to see error messages.
Avatar image credit: N Lüdimois
Pretty strange but it works with 1 though I swear I tried it first. Anyway it's fine now... maybe somewhere there was an intersection in regions?? I thought true and false are OK but now I tried again with true and it doesn't works.Pitsu wrote: Do not remember by heart, but try 1 and nil or 1 and 0 instead of true/false.
Thanks for the rest of the tips too. Try them ASAP.
And remember "To all things comes an end but in every end there's a new beginning."
MUG == Miss U Gorgons
MUG == Miss U Gorgons
well at the end everything is just f***d up... I noticed that I have so many unnecessary files in the resource directory (4 files for the scripts as every time I've cleared and later started again writing script this s**t created a new file). After that those script wich were fine didn't work anymore. I now put back the old files (are in my h5m files too) - still no work.
I tried to start new script (it created a fifth file for that) but again script did not work.
So I think that was my few-day-map-creator-career... if someone needs a map to finish and has the time and energy to find out what's wrong I can send him gladly. The map is about Razzak who is heading for a far-away town for the secrets of 'how to make obsidian golems'.
All adventure elements are made. Might need some balance and some text and of course scripting...
Peace be with all
I tried to start new script (it created a fifth file for that) but again script did not work.
So I think that was my few-day-map-creator-career... if someone needs a map to finish and has the time and energy to find out what's wrong I can send him gladly. The map is about Razzak who is heading for a far-away town for the secrets of 'how to make obsidian golems'.
All adventure elements are made. Might need some balance and some text and of course scripting...
Peace be with all
And remember "To all things comes an end but in every end there's a new beginning."
MUG == Miss U Gorgons
MUG == Miss U Gorgons
- Grumpy Old Wizard
- Round Table Knight
- Posts: 2205
- Joined: 06 Jan 2006
- Location: Tower Grump
Don't give up! Unwanted files are easy to get rid of. Click on one to highlight it and hit the delete button. The file may appear to still be there but when you save and reload the map it will be gone.
Experiments, trial and error, question asking, reading through the forum and examing maps made by others are all ways to learn.
Scripting is frustrating when you are learning it but like all things in life, it will become much easier when you get some experience.
I recommend making frequent backups of your map so you can easily undo things.
As far as messages, the most common problem is that the slashes are in the wrong direction in the path. The editor sometimes saves them facing in the wrong direction.
Slashes should be facing as in the direction in this tidbit:
GOW
Experiments, trial and error, question asking, reading through the forum and examing maps made by others are all ways to learn.
Scripting is frustrating when you are learning it but like all things in life, it will become much easier when you get some experience.
I recommend making frequent backups of your map so you can easily undo things.
Post your script and we'll see what is wrong. I will probably be out of town for a couple of days though (not sure if I'm leaving tonight or in the morning.)After that those script wich were fine didn't work anymore.
As far as messages, the most common problem is that the slashes are in the wrong direction in the path. The editor sometimes saves them facing in the wrong direction.
Slashes should be facing as in the direction in this tidbit:
Here is an example from the map I am currently working on about blocking regions.path = "Maps/SingleMissions/Shadow Dreams/"; -- shorthand
In the above example the region is initially blocked for all 7 players. Then it is unblocked for the human player if he is playing the Academy. "whoishuman" is a variable that stores the player position that is human (4 positions are playable by humans.)--Only allow human Academy acces to The Grey Tower
SetRegionBlocked("rgnTheGreyTower", 1, 1);
SetRegionBlocked("rgnTheGreyTower", 1, 2);
SetRegionBlocked("rgnTheGreyTower", 1, 3);
SetRegionBlocked("rgnTheGreyTower", 1, 4);
SetRegionBlocked("rgnTheGreyTower", 1, 5);
SetRegionBlocked("rgnTheGreyTower", 1, 6);
SetRegionBlocked("rgnTheGreyTower", 1, 7);
if whoishuman == 1 then --unblock for human Academy
SetRegionBlocked("rgnTheGreyTower", off, 1);
end;
GOW
Frodo: "I wish the ring had never come to me. I wish none of this had happened."
Gandalf: "So do all who live to see such times but that is not for them to decide. All we have to decide is what to do with the time that is given to us."
Gandalf: "So do all who live to see such times but that is not for them to decide. All we have to decide is what to do with the time that is given to us."
Thanks for rooting for me. But this wasn't about not being able writing scripts or making the map. Thanks for CH and Pitsu I could find lots of help here and after the difficult beginning I really understood the way scripting in H5 (I guess) and I could spot my failures.
But!!! After dipping into the fileresources of my map and deleting some files scripts stop working. After putting back the deleted files the scripts didn't work anymore.
However I really forgot that I had a backup of the file before I digged inside so thanks to U'r wizardry this fact came to my mind. SO here are some working scripts of mine:
-- ||mapstart events|| --
EnableHeroAI(Aberrar,true) --Zoltan
EnableHeroAI(Oddrema,true) --Jezebeth
-- Player1Limits
SetRegionBlocked("border1",1,1);
SetRegionBlocked("border2",1,1);
-- Player2Limits
SetRegionBlocked("aiclose1",1,2);
SetRegionBlocked("aiclose2",1,2);
SetRegionBlocked("aiclose3",1,2);
SetRegionBlocked("aiclose4",1,2);
-- Player3Limits
SetRegionBlocked("aiclose1",1,3);
SetRegionBlocked("aiclose2",1,3);
SetRegionBlocked("aiclose3",1,3);
SetRegionBlocked("aiclose4",1,3);
--||The Rest||--
-- show dwellings to capture --
function dwellings()
if GetObjectiveState("PreTaskMine") == OBJECTIVE_COMPLETED then
OpenCircleFog(50,7,0,8,1);
OpenCircleFog(46,25,0,8,1);
OpenCircleFog(28,50,0,8,1);
end;
end;
Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,"PreTaskMine","dwellings")
But!!! After dipping into the fileresources of my map and deleting some files scripts stop working. After putting back the deleted files the scripts didn't work anymore.
However I really forgot that I had a backup of the file before I digged inside so thanks to U'r wizardry this fact came to my mind. SO here are some working scripts of mine:
-- ||mapstart events|| --
EnableHeroAI(Aberrar,true) --Zoltan
EnableHeroAI(Oddrema,true) --Jezebeth
-- Player1Limits
SetRegionBlocked("border1",1,1);
SetRegionBlocked("border2",1,1);
-- Player2Limits
SetRegionBlocked("aiclose1",1,2);
SetRegionBlocked("aiclose2",1,2);
SetRegionBlocked("aiclose3",1,2);
SetRegionBlocked("aiclose4",1,2);
-- Player3Limits
SetRegionBlocked("aiclose1",1,3);
SetRegionBlocked("aiclose2",1,3);
SetRegionBlocked("aiclose3",1,3);
SetRegionBlocked("aiclose4",1,3);
--||The Rest||--
-- show dwellings to capture --
function dwellings()
if GetObjectiveState("PreTaskMine") == OBJECTIVE_COMPLETED then
OpenCircleFog(50,7,0,8,1);
OpenCircleFog(46,25,0,8,1);
OpenCircleFog(28,50,0,8,1);
end;
end;
Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,"PreTaskMine","dwellings")
And remember "To all things comes an end but in every end there's a new beginning."
MUG == Miss U Gorgons
MUG == Miss U Gorgons
getting along the way I do have some scripts now working thanks to console however editing script while running the game seems impossible as after starting the game no modify can be made on the map files.
anyway my problem is that I have a MessagBox script which the console tells me about: "empty message text"
the script is:
function REStriggers()
MessageBox({"Maps/SingleMissions/Golem/sandsed.txt"},nil);
end;
Trigger must be OK cuz' it's a REGION_ENTER_AND_STOP_TRIGGER and heroe stops. File does exist. I tried without '.txt'. Tried without {} and also without nil at place of callback. File is not empty contains just a few characters. Name is OK.
Any idea?
Pitsu! You can't call a non-existing player into game (at least changing a town owner to a brand new ID makes it become neutral).
anyway my problem is that I have a MessagBox script which the console tells me about: "empty message text"
the script is:
function REStriggers()
MessageBox({"Maps/SingleMissions/Golem/sandsed.txt"},nil);
end;
Trigger must be OK cuz' it's a REGION_ENTER_AND_STOP_TRIGGER and heroe stops. File does exist. I tried without '.txt'. Tried without {} and also without nil at place of callback. File is not empty contains just a few characters. Name is OK.
Any idea?
Pitsu! You can't call a non-existing player into game (at least changing a town owner to a brand new ID makes it become neutral).
And remember "To all things comes an end but in every end there's a new beginning."
MUG == Miss U Gorgons
MUG == Miss U Gorgons
- Grumpy Old Wizard
- Round Table Knight
- Posts: 2205
- Joined: 06 Jan 2006
- Location: Tower Grump
Here is a working region message script similar to the one you want to do.cgsilver wrote:anyway my problem is that I have a MessagBox script which the console tells me about: "empty message text"
the script is:
function REStriggers()
MessageBox({"Maps/SingleMissions/Golem/sandsed.txt"},nil);
end;
Trigger must be OK cuz' it's a REGION_ENTER_AND_STOP_TRIGGER and heroe stops. File does exist. I tried without '.txt'. Tried without {} and also without nil at place of callback. File is not empty contains just a few characters. Name is OK.
Any idea?
You don't need the brackets. Do you need the "nil" in MessageBox("Maps/SingleMissions/Golem/sandsed.txt",nil); ??function BadlandsMessage()
if GetCurrentPlayer() == whoishuman then
MessageBox("Maps/SingleMissions/Seize The Throne/Badlands.txt");
Trigger( REGION_ENTER_AND_STOP_TRIGGER, "Badlands", nil );
end;
end;
Trigger( REGION_ENTER_AND_STOP_TRIGGER, "Badlands", "BadlandsMessage");
I didn't see a trigger statement within your function.
Did you doublecheck sandsed.txt to make sure it is spelled correctly?
Is anything displayed when the heroe stops in the region?
GOW
Frodo: "I wish the ring had never come to me. I wish none of this had happened."
Gandalf: "So do all who live to see such times but that is not for them to decide. All we have to decide is what to do with the time that is given to us."
Gandalf: "So do all who live to see such times but that is not for them to decide. All we have to decide is what to do with the time that is given to us."
I found the solution for my problem (see above).
Then I deleted the file both in the map file and in the resource in the editor dir. I copied an existing file which was created by the editor and renamed that file (of course changed the text) and now it works. So it seems it's not enough to create a simple txt file but You have to have a kind of txt which was created by the editor - does this have a sense??? Anyway it works now.
Anyway thanks.. I think I wil have such problems in the future
There was no problem with triggering based on console, then I tried to get it on first day without triggering at all but had the same message in the console: empty message text.Grumpy Old Wizard wrote: I didn't see a trigger statement within your function.
Then I deleted the file both in the map file and in the resource in the editor dir. I copied an existing file which was created by the editor and renamed that file (of course changed the text) and now it works. So it seems it's not enough to create a simple txt file but You have to have a kind of txt which was created by the editor - does this have a sense??? Anyway it works now.
Anyway thanks.. I think I wil have such problems in the future
And remember "To all things comes an end but in every end there's a new beginning."
MUG == Miss U Gorgons
MUG == Miss U Gorgons
It WAS possible, but as an "improvement" was removed in last patches. A workaround (haven't tested myself)cgsilver wrote: however editing script while running the game seems impossible as after starting the game no modify can be made on the map files.
http://heroescommunity.com/viewthread.php3?TID=23315
You indeed need to place a hero into reserve for the "new" player and prior converting the town DeployReserveHero somewhere on the map (in front of the town for excample). This player will appear on the first game creation screen, but does not have any turn until the hero is deployed.Pitsu! You can't call a non-existing player into game (at least changing a town owner to a brand new ID makes it become neutral).
Avatar image credit: N Lüdimois
When i programmed the scripting utility i had the same problem that newly created txt files had a few extra bytes in file code that preludes the file txt content. Solved it the same way that used editor created files - copied and overwrote original text.cgsilver wrote: I copied an existing file which was created by the editor and renamed that file (of course changed the text) and now it works. So it seems it's not enough to create a simple txt file but You have to have a kind of txt which was created by the editor - does this have a sense???
Avatar image credit: N Lüdimois
Thanks for the advice indeed I made changes so the map is fine with town becoming neutral but next time I'll be more wise:)Pitsu wrote: You indeed need to place a hero into reserve for the "new" player and prior converting the town DeployReserveHero somewhere on the map (in front of the town for excample). This player will appear on the first game creation screen, but does not have any turn until the hero is deployed.
Anyway am here again with a few questions.
- I use a QuestHut now for a secondary quest wich is totally scripted (I refused to use the Quest-Creator in the ObjectProperty and everything works just fine but when a hero interacts with the hut there's a flying message that it's empty. However I use MessageBox to tell the message the flyer appears only for a moment but if it's removable pls someone let me know.
--> found the solution: SetObjectEnabled("objectname",nil)
- How to build a building with a script in a neutral town? I found only script functions that checks a building or sets the level but none of to erect a building... did anyone find a solution for it? What's up with the non-publicated script-functions? Like this I found in the scripteditor: RemoveAllMonsters but it's not publicated in the pdf...
Thanks in advance!
I'm very happy by the way that I could get along with scripting:)
Last edited by cgsilver on 27 Aug 2007, 13:34, edited 1 time in total.
And remember "To all things comes an end but in every end there's a new beginning."
MUG == Miss U Gorgons
MUG == Miss U Gorgons
Who is online
Users browsing this forum: No registered users and 1 guest