Both of these solutions are sort of what I want. I ended up using Ability of type Behavior, then set it to toggle, then make it do the behavior with a damage response... and it applies a damage inside the damage response+ area.
I couldn't get it to be autocast, but instead just toggled on or off and then it applies to the weapon :D
Good enough for now I guess...
Edit: I couldn't just use a straight up Behavior because my hero learns these abilities, thus they have to be abilities.
Well there is an ability type called "augment" which allows you to do this specific task, adding behavior, occurs when issued attack order, using mana + autocast however this ability (for no good reason) is incompatible with Learn ability. Of course there is a workaround where you have multiple copies of the ability and giving a "show" requirement node based on learning a dummy ability.
EDIT:
You should set autocast to offensive, it will autocast whenever the hero attacks.
that's because unit does not have BSD animation. I use the name "BSD" because it's on most of fx actor as default animation.
You need a terms called Animation bracket Start whenever you animate an actor (except for walk and stand).
Animation bracket Stop when closing
So create animation bracket start called BSD (or "Walk") or whatever you want. Use that term to play walk.
I'll attach a example for you, if you want an animation at a specific time frame you would have to set a timer.
yeah. However, I would do what I did in my previous post, since if you use player validator, it doesn't really work well if one player have 2 same heroes. I guess that usually never happens. I just like MUI, personal reference.
Na I saw what I did in my test map few days ago. I forgot I'm a genius.
I made a requirement for behavior that changes damage for the damage effect. Let me explain.
I have Requirements
Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) == 1
Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) == 2
Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) == 3
For each of my three behaviors
These behaviors have
Combat - Damage Response - Chance: 1
Combat - Damage Response - Required Effect Array: HERO_ABILITY's Damage effect (I had a dummy effect, just put your damage effect here)
Combat - Damage Response - Modify Fraction: 0 (removes the damage, though it's not required if the damage is 0 but whatever)
Combat - Damage Response - Location: Attacker
Combat - Damage Response - Damage Handled: Damage Effect 1 (other damage effect for level 2, 3 behaviors)
edit: there is allways this warning while loading the map data
Don't we all :D
I think the map is not loading map dependencies.
Go to File-Dependencies
You should see Liberty (Mod) and Liberty Multi (Mod), if not click add standard and add them. Hope that solved it.
Data Editor
I guess using Ability (Apply Behavior On-Off)
Look at banshee's cloak
Have a behavior that changes vitality (shield, whatever the amount zealot has). {If you want the shield to be on from the start and disable it using the ability, change vitality fraction of shield to 0 instead}
Make Validator, unit has less or equal to 0 shield; put that on the behavior and ability, to disable them (look at banshee's cloak and how they do it, it's quite simple)
Put the behavior in the apply behavior On-Off shield
Trigger
Just add the behavior and remove it, using conditions checking its shield value
That's a great idea and I think it will work if I can just get the validators to work. I made a validator of type Unit Ability, set the ability link to the level 1 ability, and set Find to enabled. That worked for the level 1 damage. I made another validator that did the exact same thing for the level 2 ability, but the level 2 damage isn't added on. Is this the proper way to see if a unit has an ability? Is there a way to see if a token in an ability is equal to something using validators?
Usually common mistake when using validator is not selecting the correct target, e.g. validator validating the target not the caster.
I remember that I used requirement (Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) == 2) and validator (Player requirement). Perhaps there is a better way, you let me know.
The best way to freeze a unit completely would be to use an actor message:
Actor - Send message "AnimSetTimeScaleGlobal 0.001000" to actor (Actor for Marine [16.11, 15.82])
That won't make it freeze completely, but reduce it down to 0.1% of the original animation speed instead of 1%.
You have to look reeeeally closely to see a change.
Create dummy behavior Flag Hidden
Go to your unit actor
(Or For MUI create a new actor set target to _Unit for all targets in events/term)
Go to Events
Make new event
Event Behavior.your dummy behavior.On
Term Animation Pause - Enabled (BSD)
Make new event
Event Behavior.your dummy behavior.Off
Term Animation Pause - Disabled (BSD)
Use your trigger to add or remove your dummy behavior
Ability -> Launch Missile Effect -> Search Area Effect at impact point -> Set (Set Effect, Apply Behavior Effect)
For all levels using the same Effect
Set Effect
{
Damage Effect (Level 1): Validator count ability level of BLAH = 1
Damage Effect (Level 2): Validator count ability level of BLAH = 2
Damage Effect (Level 3): Validator count ability level of BLAH = 3
}
EDIT:
Hmm... actually I'm pretty sure damage effect don't have caster validators.. only target ones are applicable
If that's the case try this
Set Effect
{
Set Effect : Validator count ability level of BLAH = 1; Damage Effect (Level 1)
Set Effect : Validator count ability level of BLAH = 2; Damage Effect (Level 2)
Set Effect : Validator count ability level of BLAH = 3; Damage Effect (Level 3)
}
0
Well there is an ability type called "augment" which allows you to do this specific task, adding behavior, occurs when issued attack order, using mana + autocast however this ability (for no good reason) is incompatible with Learn ability. Of course there is a workaround where you have multiple copies of the ability and giving a "show" requirement node based on learning a dummy ability.
EDIT:
You should set autocast to offensive, it will autocast whenever the hero attacks.
0
@Kildare88: Go
that's because unit does not have BSD animation. I use the name "BSD" because it's on most of fx actor as default animation.
You need a terms called Animation bracket Start whenever you animate an actor (except for walk and stand).
Animation bracket Stop when closing
So create animation bracket start called BSD (or "Walk") or whatever you want. Use that term to play walk.
I'll attach a example for you, if you want an animation at a specific time frame you would have to set a timer.
0
0 Stack
Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) == 1 (Only at level 1)
Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) == 2 (Only at level 2)
Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) == 3 (Only at level 3)
Stack
Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) >= 1 (Only at level 1)
Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) >= 2 (level 1,2)
Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) >= 3 (level 1,2,3)
Of course you add all three behaviors before hand with the requirements.
0
yeah. However, I would do what I did in my previous post, since if you use player validator, it doesn't really work well if one player have 2 same heroes. I guess that usually never happens. I just like MUI, personal reference.
0
Na I saw what I did in my test map few days ago. I forgot I'm a genius.
I made a requirement for behavior that changes damage for the damage effect. Let me explain.
I have Requirements
Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) == 1
Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) == 2
Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) == 3
For each of my three behaviors
These behaviors have
Combat - Damage Response - Chance: 1
Combat - Damage Response - Required Effect Array: HERO_ABILITY's Damage effect (I had a dummy effect, just put your damage effect here)
Combat - Damage Response - Modify Fraction: 0 (removes the damage, though it's not required if the damage is 0 but whatever)
Combat - Damage Response - Location: Attacker
Combat - Damage Response - Damage Handled: Damage Effect 1 (other damage effect for level 2, 3 behaviors)
Add all the behaviors to the hero beforehand.
0
Should really post a map. Looks like your requirement nodes are the problem though.
0
http://forums.sc2mapster.com/development/map-development/3145-persistent-hardened-shield-effect/?post=11
http://forums.sc2mapster.com/development/map-development/3182-need-help-with-allowing-actors-to-play-animations/?post=5
Term: Animation Paused (BSD) - Enabled
Term: Animation Paused (BSD) - Disabled
EDIT: First one is probably more relevant since I use timer on that, probably what you need to do.
0
Don't we all :D
I think the map is not loading map dependencies.
Go to File-Dependencies
You should see Liberty (Mod) and Liberty Multi (Mod), if not click add standard and add them. Hope that solved it.
0
Data Editor
I guess using Ability (Apply Behavior On-Off)
Look at banshee's cloak
Have a behavior that changes vitality (shield, whatever the amount zealot has). {If you want the shield to be on from the start and disable it using the ability, change vitality fraction of shield to 0 instead}
Make Validator, unit has less or equal to 0 shield; put that on the behavior and ability, to disable them (look at banshee's cloak and how they do it, it's quite simple)
Put the behavior in the apply behavior On-Off shield
Trigger
Just add the behavior and remove it, using conditions checking its shield value
0
Usually common mistake when using validator is not selecting the correct target, e.g. validator validating the target not the caster.
I remember that I used requirement (Requirement Node: CountAbil(HERO_ABILITY,CompleteOnlyAtUnit) == 2) and validator (Player requirement). Perhaps there is a better way, you let me know.
0
Effect - modify unit (Change the charge setting and ability for it)
Trigger (Action) Apply Effect (modify unit) on unit
0
oh hell no.
Actor (Roach) - Animation Baselines (Animation properties) - Walk - [Walk], [Variation 01]
0
it's the model
Walk 02
0
But there is a way to pause and play unit animation; let's just not post workarounds
http://forums.sc2mapster.com/development/map-development/3145-persistent-hardened-shield-effect/#p11
Create dummy behavior Flag Hidden
Go to your unit actor
(Or For MUI create a new actor set target to _Unit for all targets in events/term)
Go to Events
Make new event
Event Behavior.your dummy behavior.On
Term Animation Pause - Enabled (BSD)
Make new event
Event Behavior.your dummy behavior.Off
Term Animation Pause - Disabled (BSD)
Use your trigger to add or remove your dummy behavior
0
Ability -> Launch Missile Effect -> Search Area Effect at impact point -> Set (Set Effect, Apply Behavior Effect)
For all levels using the same Effect
Set Effect
{
Damage Effect (Level 1): Validator count ability level of BLAH = 1
Damage Effect (Level 2): Validator count ability level of BLAH = 2
Damage Effect (Level 3): Validator count ability level of BLAH = 3
}
EDIT:
Hmm... actually I'm pretty sure damage effect don't have caster validators.. only target ones are applicable
If that's the case try this
Set Effect
{
Set Effect : Validator count ability level of BLAH = 1; Damage Effect (Level 1)
Set Effect : Validator count ability level of BLAH = 2; Damage Effect (Level 2)
Set Effect : Validator count ability level of BLAH = 3; Damage Effect (Level 3)
}