Problem with hero, canrecruit and recall
Moderator: Forum Moderators
Forum rules
- Please use [code] BBCode tags in your posts for embedding WML snippets.
- To keep your code readable so that others can easily help you, make sure to indent it following our conventions.
Problem with hero, canrecruit and recall
I'm trying to do something unusual, and it's hard to success.
The idea is simple, the hero of the story is not the "chief" or recruiter, who change many times.
So if I do like the hero in the storie is not really in the [side], like in the [side] I do a different recruiter, and my hero is a classic unit with the tag {IS_HERO}, it's fine only for the forst scenario, because when I change the recruiter in the [side] for the next scenario, I cannot recall the characters from the previous scenario.
If my hero is the main in the [side] with canrecruit=no, and the recruiter is a classic unit with canrecruit=yes, it works well for the first scenario, but the unit with the canrecruit=yes appear in the next scenario, and provoque bug because the two units appear in the same case.
I found a solution with the second, at the end of the scenario I kill the unit with canrecruit=yes. After My hero appear normaly in the next scenario. But I think it's not the best way, so somebody have a solution (maybe if I change the canrecruit at the end, but how to do that ?) If you want a piece of code to see, ask me, but I took example from the main campaign and I don't think it's the problem.
Thank you.
The idea is simple, the hero of the story is not the "chief" or recruiter, who change many times.
So if I do like the hero in the storie is not really in the [side], like in the [side] I do a different recruiter, and my hero is a classic unit with the tag {IS_HERO}, it's fine only for the forst scenario, because when I change the recruiter in the [side] for the next scenario, I cannot recall the characters from the previous scenario.
If my hero is the main in the [side] with canrecruit=no, and the recruiter is a classic unit with canrecruit=yes, it works well for the first scenario, but the unit with the canrecruit=yes appear in the next scenario, and provoque bug because the two units appear in the same case.
I found a solution with the second, at the end of the scenario I kill the unit with canrecruit=yes. After My hero appear normaly in the next scenario. But I think it's not the best way, so somebody have a solution (maybe if I change the canrecruit at the end, but how to do that ?) If you want a piece of code to see, ask me, but I took example from the main campaign and I don't think it's the problem.
Thank you.
Re: Problem with hero, canrecruit and recall
Okay, the first problem you have is with how sides are stored: unless you define save_id in the [side], it uses description (the name of the leader) as the identifier of the side.
Then, if you have a recall list for that side, it tries to recall a unit with canrecruit=yes from it and if successful, completely ignores your leader definition.
So, here's what you want to do:
-In every scenario, add a save_id to the player's side, these must be the same.
-Set no_leader=yes for the player's side in every scenario.
-In the prestart event, recall (or create on scenario 1) your hero.
-In the prestart event, create the recruiter (or MODIFY_UNIT him to set canrecruit=yes)
-In the victory event, either kill or MODIFY_UNIT your recruiter so canrecruit is set to no again.
That should fix most of your issues.
Then, if you have a recall list for that side, it tries to recall a unit with canrecruit=yes from it and if successful, completely ignores your leader definition.
So, here's what you want to do:
-In every scenario, add a save_id to the player's side, these must be the same.
-Set no_leader=yes for the player's side in every scenario.
-In the prestart event, recall (or create on scenario 1) your hero.
-In the prestart event, create the recruiter (or MODIFY_UNIT him to set canrecruit=yes)
-In the victory event, either kill or MODIFY_UNIT your recruiter so canrecruit is set to no again.
That should fix most of your issues.
Re: Problem with hero, canrecruit and recall
Thank you for your answer, but it didn't work
here it is what I did :
in the side of the first scénario :
[side]
save_id="goodies"
no_leader=yes
controller="human"
{GOLD 60 30 0}
fog="yes"
share_view="no"
shroud="yes"
share_maps="no"
recruit="Elvish Shaman, Elvish Archer, Elvish Fighter"
[/side]
, in the side of the second :
[side]
side="1"
save_id="goodies"
no_leader=yes
controller="human"
{GOLD 60 30 0}
fog="yes"
share_view="no"
shroud="yes"
share_maps="no"
recruit="Elvish Shaman, Elvish Archer, Elvish Fighter"
[/side]
when I create the hero and the recruiter :
[unit]
type="Elvish Druid"
description="Tailia"
user_description=_"Talia"
profile=portraits/Talia.jpg
unrenamable="yes"
x="18"
y="9"
canrecruit="yes"
side="1"
[/unit]
[unit]
type="Elvish Shaman"
profile=portraits/Jalia.jpg
description= "Jalia"
user_description= _ "Jalia"
unrenamable="yes"
{IS_HERO}
side="1"
x="15"
y="9"
[/unit]
after I kill talia when the scenario end.
on the next scenario I recall Jalia.
When I try, the first scenario works well, but the I cannot recall anything on the second, and Jalia not appear.
Do I do something wrong ?
thank you.
here it is what I did :
in the side of the first scénario :
[side]
save_id="goodies"
no_leader=yes
controller="human"
{GOLD 60 30 0}
fog="yes"
share_view="no"
shroud="yes"
share_maps="no"
recruit="Elvish Shaman, Elvish Archer, Elvish Fighter"
[/side]
, in the side of the second :
[side]
side="1"
save_id="goodies"
no_leader=yes
controller="human"
{GOLD 60 30 0}
fog="yes"
share_view="no"
shroud="yes"
share_maps="no"
recruit="Elvish Shaman, Elvish Archer, Elvish Fighter"
[/side]
when I create the hero and the recruiter :
[unit]
type="Elvish Druid"
description="Tailia"
user_description=_"Talia"
profile=portraits/Talia.jpg
unrenamable="yes"
x="18"
y="9"
canrecruit="yes"
side="1"
[/unit]
[unit]
type="Elvish Shaman"
profile=portraits/Jalia.jpg
description= "Jalia"
user_description= _ "Jalia"
unrenamable="yes"
{IS_HERO}
side="1"
x="15"
y="9"
[/unit]
after I kill talia when the scenario end.
on the next scenario I recall Jalia.
When I try, the first scenario works well, but the I cannot recall anything on the second, and Jalia not appear.
Do I do something wrong ?
thank you.
Re: Problem with hero, canrecruit and recall
If you want Jalia to be your leader in the 2nd scenario, in the 1st write:
save_id="Jalia"
To give her recruiting write something like:
save_id="Jalia"
To give her recruiting write something like:
Code: Select all
[store_unit]
[filter]
description=Jalia
[/filter]
kill=no
variable=stored_Jalia
[/store_unit]
[set_variable]
name=stored_Jalia.canrecruit
value=yes
[/set_variable]
[unstore_unit]
variable=stored_Jalia
[/unstore_unit]
{CLEAR_VARIABLE stored_Jalia}
Re: Problem with hero, canrecruit and recall
That's not I wanted to do, but thanks to you I understood how to change the parameters of the units, and I found a good solution :
The hero is in the size, with can recruit=no. After I create a unit witch can recruit.
At the end, I set canrecruit=no to this unit.
At the next scenario I do the same side, but with canrecruit=yes, I recall what I want, and after I set can recruit=no. After that I can recall, or create a new unit which is able to recruit (that's what I want).
Thank you both, now I can continue.
The hero is in the size, with can recruit=no. After I create a unit witch can recruit.
At the end, I set canrecruit=no to this unit.
At the next scenario I do the same side, but with canrecruit=yes, I recall what I want, and after I set can recruit=no. After that I can recall, or create a new unit which is able to recruit (that's what I want).
Thank you both, now I can continue.