Hello. I am finally at the polish stage of my map (balance, animations, terrain, etc), getting ready for beta release in a few weeks. These are all fairly advanced questions for problems that have been giving me trouble that I haven't been able to figure out. I have time constraints, so can't test and look through every single data twitch, so I'm looking for assistance. I've tried to make the questions as concise as I can. I have numbered them in order of most to least important, and cut out a few.
1. I have abilities increase units’ HP/Shields. They are usually modify unit type behaviors. When I add them, the current hp/shields is raised by a % according to their current/max ratio. However, I want these behaviors to add an equal 1:1 ratio of current:max HP/Shields from the modify unit effect. How can I accomplish this besides perhaps using triggers, which would be a pain.
2. How do you set models’ heights? I need to raise the height of a reaper model because it's currently in the ground, but don’t know how, and I want to shift the heights of some animations. I look at the reaper unit and see that its height is .5, which I can’t do for my map because unit height has an important role in the game play.
3. In a trigger, how do you get a data entry value of a unit? Like, I want to “get” the icon for some triggering or picked unit, how can I pull that up from the editor within a trigger?
Similarly, for a trigger, how can you get the source unit of a unit’s behavior?
4. Where do you set the acquisition range? I seemed to have forgotten or never really knew. I want some unit AIs to acquire and run to attack enemies at a longer range.
5. I’m having trouble with making an ability that targets a unit, summons a unit, and orders the summon to use an ability with the original target as its target. Like I use an ability that summons broodlings at target unit, then orders them to attack the target. What are the target locations I need to do that? I've tried several things but it hasn't worked yet for me.
6. How do you change the duration of a model animation? Like a queen transfusion or a Purifier PlanetCracker beam? I want to make a model’s total animation complete faster, or stretch it out longer. I know how to do this for unit model animations like an "attack", but others are eluding me.
7. Can a behavior be triggered to have an effect when a unit dies? How? Like WC3's Firelord ability that made units with a debuff on them explode upon death.
8. For some reason a continuous sound actor for a behavior is not working. How can I make a sound loop from a behavior application until it is removed?
9. Almost forgot this one... really important. For some reason hero unit actors like Raynor, Tassadar, Zeratul, etc make impact and other animations on them huge, 2-3x bigger than normal. It also happens with model additions from behaviors. What is causing this, and how can I make it so that impact and model addition animations have the same size visually across the board for the units that I want it to have?
Thanks for any help. If you can't answer these questions and/or might know where I can find answers, please point me the right way. BTW, helping will be worth it because the map is going to be really really good!
1. I have abilities increase units’ HP/Shields. They are usually modify unit type behaviors. When I add them, the current hp/shields is raised by a % according to their current/max ratio. However, I want these behaviors to add an equal 1:1 ratio of current:max HP/Shields from the modify unit effect. How can I accomplish this besides perhaps using triggers, which would be a pain.
Could you clarify, I did not get what you are after.
Quote:
2. How do you set models’ heights? I need to raise the height of a reaper model because it's currently in the ground, but don’t know how, and I want to shift the heights of some animations. I look at the reaper unit and see that its height is .5, which I can’t do for my map because unit height has an important role in the game play.
You could add a site operation to the actor (local offset, z + 0.5)
Quote:
3. In a trigger, how do you get a data entry value of a unit? Like, I want to “get” the icon for some triggering or picked unit, how can I pull that up from the editor within a trigger?
Similarly, for a trigger, how can you get the source unit of a unit’s behavior?
Not sure, if it's possible without a workaround. I don't know a function for it.
Quote:
4. Where do you set the acquisition range? I seemed to have forgotten or never really knew. I want some unit AIs to acquire and run to attack enemies at a longer range.
This is set in the weapon of the unit, the Minimum Scan Range
Quote:
5. I’m having trouble with making an ability that targets a unit, summons a unit, and orders the summon to use an ability with the original target as its target. Like I use an ability that summons broodlings at target unit, then orders them to attack the target. What are the target locations I need to do that? I've tried several things but it hasn't worked yet for me.
You can select an effect together with the target. So you select source or caster unit and your initial effect; it should take the source/caster of that effect. Might not work all the time, in this case you might want to add a persistent at the start of the effect chain; since it usually works well for persistents.
Quote:
6. How do you change the duration of a model animation? Like a queen transfusion or a Purifier PlanetCracker beam? I want to make a model’s total animation complete faster, or stretch it out longer. I know how to do this for unit model animations like an "attack", but others are eluding me.
Easiest way would probably be the set time scale (global) actor message.
Quote:
7. Can a behavior be triggered to have an effect when a unit dies? How? Like WC3's Firelord ability that made units with a debuff on them explode upon death.
Check the damage response. This triggers on any damage dealt or received (depending on used location; attacker or defender). It has a flag to only trigger on fatal damage. Will probably not work for units not dying by damage, though (kill unit trigger function, negative regeneration)
Quote:
8. For some reason a continuous sound actor for a behavior is not working. How can I make a sound loop from a behavior application until it is removed?
This could have numerous reasons; I need more information. Which sound, how is your actor set up? What exactly happens compared to what should?
Thanks for the quick response. I also have a new #9. I'll try to clarify your questions, and have some of my own.
Quote:
Could you clarify, I did not get what you are after.
I have buff behaviors that modify a unit's maximum health or shields in the Modifications+ field. When a unit has no shield value yet, the current shields that are added when the behavior is applied is equal to the maximum increase. But when it does have shields, say 40/100 from another buff behavior, a new buff that adds 200 to max shields does not increase the unit's current shields to 240/300, but some lower current value. Similar thing happens when a unit's HP is increased while it is not at maximum. I want a unit's current shields/hp to be increased by the exact amount the maximum is increased by.
Quote:
You could add a site operation to the actor (local offset, z + 0.5)
How do you do that...? I don't see a Z modifier anywhere. My best guess is to have an Event: ActorCreation with the Message: Set Height (relative), but nothing happens when I set it.
Quote:
Easiest way would probably be the set time scale (global) actor message.
I got the impression that that would set the time scale of all actors in the game. I'll try it out though.
Quote:
This could have numerous reasons; I need more information. Which sound, how is your actor set up? What exactly happens compared to what should?
I have a buff, and I want a sound to repeat continuously at the unit until the buff wears off. I made a sound actor "soundcontinuous." I have Events: Behavior On - Create and Behavior Off - Destroy. Not sure how to make the sound affect loop.
I have buff behaviors that modify a unit's maximum health or shields in the Modifications+ field. When a unit has no shield value yet, the current shields that are added when the behavior is applied is equal to the maximum increase. But when it does have shields, say 40/100 from another buff behavior, a new buff that adds 200 to max shields does not increase the unit's current shields to 240/300, but some lower current value. Similar thing happens when a unit's HP is increased while it is not at maximum. I want a unit's current shields/hp to be increased by the exact amount the maximum is increased by.
Well, I guess the current percentage is kept, so 40/100 becomes 120/300. In this case, it would be hard to set the shields correctly, using only data, since you cannot really do dynamic calculations in data. You can add some current shield points using a modify unit effect initially, but this will never be exact. You would probably need triggers in this case.
If, however, it keeps the current value, so 40/100 becomes 40/300, you can additionaly add 200 current shields.
Quote:
How do you do that...? I don't see a Z modifier anywhere. My best guess is to have an Event: ActorCreation with the Message: Set Height (relative), but nothing happens when I set it.
A site operation is an actor, which modifies other actors. Just create a new site operation actor of type local offset; you can specify an x/y/z offset there. Then add the site operation to the unit actor's site operations field.
Quote:
I have a buff, and I want a sound to repeat continuously at the unit until the buff wears off. I made a sound actor "soundcontinuous." I have Events: Behavior On - Create and Behavior Off - Destroy. Not sure how to make the sound affect loop.
Easiest way to make a non-looping sound loop (some sounds are set up to loop by themselves, others are not), would probably be to set the sound offset to zero, after some time. Use a timer for this:
Actor Creation
TimerStart 2
TimerExpired
SoundSetOffset 0
This would restart the sound every 2 seconds.
If your actor has only 1 timer, you don't need to specify and check for a name.
Note that sound offsets use miliseconds.
Quote:
9 Almost forgot this one... really important. For some reason hero unit actors like Raynor, Tassadar, Zeratul, etc make impact and other animations on them huge, 2-3x bigger than normal. It also happens with model additions from behaviors. What is causing this, and how can I make it so that impact and model addition animations have the same size visually across the board for the units that I want it to have?
Uncheck "Scale" and "Model Scale" in the Inherited Properties field of the attachment actors.
Thank you again for all your help! I'll be sure to add you into the credits. I actually don't know what the name of the map will be yet, but I'll find you and let you know when I release it, in case you're interested in the zero information I've given you so far about it. It's basically a turn-based tactical map you play on a gridded battlefield, like Final Fantasy Tactics if you've ever played it.
Wow... I had no idea about the Site Operators. They look like that can be real useful.
I figured out a trigger to make hp/shields increase at a flat value.
Event: Unit property (max life) or (max shields) changes
Condition: change is positive
Actions: Add [(AmountChanged) - (Current)*(amount changed)/(Maximum)] to Hp or Shields.
Uncheck "Scale" and "Model Scale" in the Inherited Properties field of the attachment actors.
Hmm... so that is working for models that are attached to units through buffs, but impact effects from missiles are still super huge on all hero unit models like Tassadar, Zeratul, and Raynor.
Well... I toggled some stuff around and set the Attachment- impact and damage attachment queries to Direct, and it solved it, but I still don't know why in the world it was making them different in the first place.
Hello. I am finally at the polish stage of my map (balance, animations, terrain, etc), getting ready for beta release in a few weeks. These are all fairly advanced questions for problems that have been giving me trouble that I haven't been able to figure out. I have time constraints, so can't test and look through every single data twitch, so I'm looking for assistance. I've tried to make the questions as concise as I can. I have numbered them in order of most to least important, and cut out a few.
1. I have abilities increase units’ HP/Shields. They are usually modify unit type behaviors. When I add them, the current hp/shields is raised by a % according to their current/max ratio. However, I want these behaviors to add an equal 1:1 ratio of current:max HP/Shields from the modify unit effect. How can I accomplish this besides perhaps using triggers, which would be a pain.
2. How do you set models’ heights? I need to raise the height of a reaper model because it's currently in the ground, but don’t know how, and I want to shift the heights of some animations. I look at the reaper unit and see that its height is .5, which I can’t do for my map because unit height has an important role in the game play.
3. In a trigger, how do you get a data entry value of a unit? Like, I want to “get” the icon for some triggering or picked unit, how can I pull that up from the editor within a trigger?
Similarly, for a trigger, how can you get the source unit of a unit’s behavior?
4. Where do you set the acquisition range? I seemed to have forgotten or never really knew. I want some unit AIs to acquire and run to attack enemies at a longer range.
5. I’m having trouble with making an ability that targets a unit, summons a unit, and orders the summon to use an ability with the original target as its target. Like I use an ability that summons broodlings at target unit, then orders them to attack the target. What are the target locations I need to do that? I've tried several things but it hasn't worked yet for me.
6. How do you change the duration of a model animation? Like a queen transfusion or a Purifier PlanetCracker beam? I want to make a model’s total animation complete faster, or stretch it out longer. I know how to do this for unit model animations like an "attack", but others are eluding me.
7. Can a behavior be triggered to have an effect when a unit dies? How? Like WC3's Firelord ability that made units with a debuff on them explode upon death.
8. For some reason a continuous sound actor for a behavior is not working. How can I make a sound loop from a behavior application until it is removed?
9. Almost forgot this one... really important. For some reason hero unit actors like Raynor, Tassadar, Zeratul, etc make impact and other animations on them huge, 2-3x bigger than normal. It also happens with model additions from behaviors. What is causing this, and how can I make it so that impact and model addition animations have the same size visually across the board for the units that I want it to have?
Thanks for any help. If you can't answer these questions and/or might know where I can find answers, please point me the right way. BTW, helping will be worth it because the map is going to be really really good!
Could you clarify, I did not get what you are after.
You could add a site operation to the actor (local offset, z + 0.5)
catalog functions
Not sure, if it's possible without a workaround. I don't know a function for it.
This is set in the weapon of the unit, the Minimum Scan Range
You can select an effect together with the target. So you select source or caster unit and your initial effect; it should take the source/caster of that effect. Might not work all the time, in this case you might want to add a persistent at the start of the effect chain; since it usually works well for persistents.
Easiest way would probably be the set time scale (global) actor message.
Check the damage response. This triggers on any damage dealt or received (depending on used location; attacker or defender). It has a flag to only trigger on fatal damage. Will probably not work for units not dying by damage, though (kill unit trigger function, negative regeneration)
This could have numerous reasons; I need more information. Which sound, how is your actor set up? What exactly happens compared to what should?
Thanks for the quick response. I also have a new #9. I'll try to clarify your questions, and have some of my own.
I have buff behaviors that modify a unit's maximum health or shields in the Modifications+ field. When a unit has no shield value yet, the current shields that are added when the behavior is applied is equal to the maximum increase. But when it does have shields, say 40/100 from another buff behavior, a new buff that adds 200 to max shields does not increase the unit's current shields to 240/300, but some lower current value. Similar thing happens when a unit's HP is increased while it is not at maximum. I want a unit's current shields/hp to be increased by the exact amount the maximum is increased by.
How do you do that...? I don't see a Z modifier anywhere. My best guess is to have an Event: ActorCreation with the Message: Set Height (relative), but nothing happens when I set it.
I got the impression that that would set the time scale of all actors in the game. I'll try it out though.
I have a buff, and I want a sound to repeat continuously at the unit until the buff wears off. I made a sound actor "soundcontinuous." I have Events: Behavior On - Create and Behavior Off - Destroy. Not sure how to make the sound affect loop.
Thanks again for the help.
Well, I guess the current percentage is kept, so 40/100 becomes 120/300. In this case, it would be hard to set the shields correctly, using only data, since you cannot really do dynamic calculations in data. You can add some current shield points using a modify unit effect initially, but this will never be exact. You would probably need triggers in this case.
If, however, it keeps the current value, so 40/100 becomes 40/300, you can additionaly add 200 current shields.
A site operation is an actor, which modifies other actors. Just create a new site operation actor of type local offset; you can specify an x/y/z offset there. Then add the site operation to the unit actor's site operations field.
Easiest way to make a non-looping sound loop (some sounds are set up to loop by themselves, others are not), would probably be to set the sound offset to zero, after some time. Use a timer for this:
This would restart the sound every 2 seconds.
If your actor has only 1 timer, you don't need to specify and check for a name.
Note that sound offsets use miliseconds.
Uncheck "Scale" and "Model Scale" in the Inherited Properties field of the attachment actors.
Thank you again for all your help! I'll be sure to add you into the credits. I actually don't know what the name of the map will be yet, but I'll find you and let you know when I release it, in case you're interested in the zero information I've given you so far about it. It's basically a turn-based tactical map you play on a gridded battlefield, like Final Fantasy Tactics if you've ever played it.
Wow... I had no idea about the Site Operators. They look like that can be real useful.
I figured out a trigger to make hp/shields increase at a flat value.
Event: Unit property (max life) or (max shields) changes
Condition: change is positive
Actions: Add [(AmountChanged) - (Current)*(amount changed)/(Maximum)] to Hp or Shields.
@Kueken531: Go
Hmm... so that is working for models that are attached to units through buffs, but impact effects from missiles are still super huge on all hero unit models like Tassadar, Zeratul, and Raynor.
Well... I toggled some stuff around and set the Attachment- impact and damage attachment queries to Direct, and it solved it, but I still don't know why in the world it was making them different in the first place.