|
|
Warmonger
Promising
Legendary Hero
fallen artist
|
posted September 16, 2008 05:45 PM |
|
|
Oh jeez... I'll have to put a lot of scarecrows on the map then.
As if they couldn't make all the objects removable by default?
|
|
rdeford
Known Hero
Wyld Mapper
|
posted September 16, 2008 06:17 PM |
|
|
Quote: Oh jeez... I'll have to put a lot of scarecrows on the map then.
As if they couldn't make all the objects removable by deafult?
Indeed! This omission is just one of my many complaints.
|
|
Asheera
Honorable
Undefeatable Hero
Elite Assassin
|
posted September 16, 2008 06:21 PM |
|
|
Quote: factor=(0.95 + 0.05 * GetDifficulty());
day = 1
print ("factor=",factor);
Result:
Quote: factor=0.9999999403953552
When you work with rational numbers in computers, the addition loses "precision". It's complicated to know why, but you just have to know this
____________
|
|
nocaplato
Adventuring Hero
Lover of Ancient Philosophy
|
posted September 17, 2008 02:33 AM |
|
|
Quote: I haven't tried this myself, but suggest it anyway. In the editor, click on the town object and look over in the object properties window. One of the properties is spellIDs. By default, it contains a long list of potential spells. If you right click on the icon for one of them, you will get a pop up menu with Insert and Delete commands. If you click on the value for one of them, you will get a dropdown list of spell choices. Anyway, try changing the values of some of them to the spells you want the town to have. Then, delete the extra ones. Test it to see what happens.
Good suggestion... tried it but didn't work. Curses!
Anything other thoughts on this one? Did they change the map editor in the patch to get rid of the spell tab? Why make the editor even more of a pain to use than it already is?
|
|
Warmonger
Promising
Legendary Hero
fallen artist
|
posted September 17, 2008 07:14 AM |
|
|
function guardquest (heroName)
if IsObjectExists ("Guard") == false then
GiveHeroSkill (heroName,SPELL_SKILL_DEFENCE3);
GiveHeroSkill (heroName,WIZARD_FEAT_SPOILS_OF_WAR);
end;
end;
It does not work, not only returning usual error "nil value for false", but simply not teachning my hero any of those skills.
|
|
rdeford
Known Hero
Wyld Mapper
|
posted September 17, 2008 12:43 PM |
|
Edited by rdeford at 12:47, 17 Sep 2008.
|
Quote: function guardquest (heroName)
if IsObjectExists ("Guard") == false then
GiveHeroSkill (heroName,SPELL_SKILL_DEFENCE3);
GiveHeroSkill (heroName,WIZARD_FEAT_SPOILS_OF_WAR);
end;
end;
It does not work, not only returning usual error "nil value for false", but simply not teachning my hero any of those skills.
Haven't tested this answer, but I think the problem is your use of false in the equality test. Use nil instead and I think it will work.
|
|
Warmonger
Promising
Legendary Hero
fallen artist
|
posted September 17, 2008 12:55 PM |
|
|
In fact similiar condition works well when I try to use another script removing the object, so that's not the main problem.
|
|
rdeford
Known Hero
Wyld Mapper
|
posted September 17, 2008 01:12 PM |
|
|
Quote: In fact similiar condition works well when I try to use another script removing the object, so that's not the main problem.
I still think you ought to try using nil because of the error message you are getting. I will create a test map and figure out how to get this code working. Give me a little time.
____________
-------------
Mage of Soquim
|
|
rdeford
Known Hero
Wyld Mapper
|
posted September 17, 2008 02:19 PM |
|
Edited by rdeford at 14:20, 17 Sep 2008.
|
@Warmonger--
The use of nil got rid of the error.
The code below works in a test map. Beyond the equality test error, the reason why your code would not give the skill is because you cannot give a skill unless the hero has the proper prerequisites. In this case, I had to edit the hero to give
Expert Luck and Resourcefulness before the script would give the here the Spoils of War skill. If you check the skill wheel, or edit the hero's skills in the editor, you will see how the progression must work.
function guardquest (heroName)
if IsObjectExists ("Guard") == nil then
print("spoils = ", GiveHeroSkill (heroName, WIZARD_FEAT_SPOILS_OF_WAR));
end;
end;
Trigger(OBJECT_TOUCH_TRIGGER, "testObj", "guardquest");
____________
-------------
Mage of Soquim
|
|
Asheera
Honorable
Undefeatable Hero
Elite Assassin
|
posted September 17, 2008 02:49 PM |
|
|
Quote: It does not work, not only returning usual error "nil value for false", but simply not teachning my hero any of those skills.
You got the "nil value for false" error because the game couldn't find a "false" variable for some reason
____________
|
|
rdeford
Known Hero
Wyld Mapper
|
posted September 17, 2008 03:03 PM |
|
|
Quote:
Quote: It does not work, not only returning usual error "nil value for false", but simply not teachning my hero any of those skills.
You got the "nil value for false" error because the game couldn't find a "false" variable for some reason
The true and false constants are defined in advmap-startup.lua
However, even so, I frequently run into the same problem as Warmonger had. Consequently, I've begun to us not nil and nil instead. They are understood by Lua and do not need to be declared elsewhere.
____________
-------------
Mage of Soquim
|
|
nocaplato
Adventuring Hero
Lover of Ancient Philosophy
|
posted September 19, 2008 03:47 AM |
|
|
I'm sorry to bring this up again gang, but can anyone give a suggestion about how to designate spells in the town properties if the spell tab is no longer there?
|
|
Warmonger
Promising
Legendary Hero
fallen artist
|
posted September 19, 2008 08:41 AM |
|
|
Ok, during tetsing I found some problems I can;t overcome:
function blackiesquest (heroName)
if IsObjectExists ("Blackies") == nil
and blackiesquestactive == not nil
then
QuestionBox (path.."CrystalDragons.txt",crystaldragonsoption (heroName),"normaloption");
ChangeHeroStat (heroName, STAT_EXPERIENCE, 25000);
ShowFlyingSign (path.."objectiveComplete.txt", "BlackiesHut",1,1);
blackiesquestactive = nil;
else
if blackiesquestactive == not nil then
ShowFlyingSign (path.."BlackiesQuest.txt","BlackiesHut",1,3);
OverrideObjectTooltipNameAndDescription("BlackiesHut", path.."BlackiesName.txt", path.."BlackiesDesc.txt");
else
OverrideObjectTooltipNameAndDescription("BlackiesHut", path.."BlackiesName.txt", path.."objectiveComplete.txt");
ShowFlyingSign (path.."objectiveComplete.txt", "BlackiesHut",1,1);
end;
end;
end;
function crystaldragonsoption (heroName)
AddHeroCreatures (heroName, 291, 20);
end;
function normaloption ()
joiner (7,25,36,68,90);
ShowFlyingSign (path.."Sucker.txt", "BlackiesHut",1,1);
end;
This function uses questionbox so that player may choose waht reward he receives from the quest. The problem is, in case of clicking "cancel", he gets them BOTH.
Also, I have no idea how to level-up deployed invaders. Poor game mechanics allow to get a level only when player gets his turn, which does not always apply here. Moreover, I have to give them one by one or hero will receive n * 1000 exp as he started from 1st level.
I try to level-up heroes daily, but AI is not given a turn as has no heroes or towns, even though I did not use specific command.
|
|
rdeford
Known Hero
Wyld Mapper
|
posted September 19, 2008 03:45 PM |
|
|
@ Warmonger-- regarding QuestionBox, I haven't tested this, but you might try creating a global variable (for example named tempHeroName) and storing the value of heroName in it. Then, in the QuestionBox function call, use quotes around the function name and do not try to pass the heroName parameter. Example:
QuestionBox (path.."CrystalDragons.txt","crystaldragonsoption","normaloption");
Then down in the crystaldragonsoption() function, use the global variable instead of the passed parameter. Example:
function crystaldragonsoption ()
AddHeroCreatures (tempHeroName, 291, 20);
end;
____________
-------------
Mage of Soquim
|
|
Asheera
Honorable
Undefeatable Hero
Elite Assassin
|
posted September 19, 2008 03:59 PM |
|
Edited by Asheera at 16:00, 19 Sep 2008.
|
Warmonger, the functions that have as parameters other functions require a function name in QUOTES. The same as what I said in the Trigger function
WRONG
QuestionBox (path.."CrystalDragons.txt",crystaldragonsoption(heroName),"normaloption");
QuestionBox (path.."CrystalDragons.txt",crystaldragonsoption(),"normaloption");
QuestionBox (path.."CrystalDragons.txt",crystaldragonsoption,"normaloption");
CORRECT
QuestionBox (path.."CrystalDragons.txt","crystaldragonsoption","normaloption");
____________
|
|
Warmonger
Promising
Legendary Hero
fallen artist
|
posted October 04, 2008 09:13 AM |
|
|
A little tutorial on how to set journal objectives, please?
|
|
Dagon
Adventuring Hero
|
posted October 21, 2008 08:26 PM |
|
Edited by Dagon at 20:28, 21 Oct 2008.
|
I'm working on map. It is my first and I have problem.
Main objective is that hero must get to his own Town. And my question is:
How can I put a Random Hero in different place than his Random Town? This is the problem which i can't reslove. Hero always starts next to town. He should start from right, upper corner and get to the second end of the map where is his town.
Please help
|
|
Galev
Famous Hero
Galiv :D
|
posted November 13, 2008 08:08 PM |
|
|
2 questions
Why isn't this thread stickied?
Why does the editor "check map" keep telling that "several heroes have no names, location 25:29"; when that hero does have a name. It is Makarl and I gave it a custom name. Placed him from the tools panel, objects->heroes->necromancer.
Thanks.
|
|
Asheera
Honorable
Undefeatable Hero
Elite Assassin
|
posted November 13, 2008 08:12 PM |
|
|
Sometimes those 'checks' don't work how they should. For example, the 'check script' one is crap, it doesn't display correct errors at all.
____________
|
|
rdeford
Known Hero
Wyld Mapper
|
posted November 13, 2008 08:39 PM |
|
Edited by rdeford at 20:40, 13 Nov 2008.
|
Quote: Sometimes those 'checks' don't work how they should. For example, the 'check script' one is crap, it doesn't display correct errors at all.
This quote is exactly correct. You may ignore all errors reported by the H5 editor. The only errors that you must pay attention to (and correct) are the errors reported by the game's script compilation process on the developer console. If you you have not enabled the game's developer console, do so before you try to write any scripts.
____________
-------------
Mage of Soquim
|
|
|