So as the title says, I am attempting to create a Guardian Shield ability something along the lines of this:
Level 1 - Reduce ranged damage by 1, duration of 15.0 seconds
Level 2 - Reduce ranged damage by 2, duration of 15.0 seconds
Level 3 - Reduce ranged damage by 2, duration of 17.5 seconds
Level 4 - Reduce ranged damage by 3, duration of 20.0 seconds
So far I've been able to succeed with getting the duration of the various levels to work by making multiple Guardian Shield (Create Persistent) effects and putting them into the Effect field of my ability.
One of the problems I'm having though, is getting the shield model to exist for the correct amounts of time on my subsequent levels, it does not seem to appear at all on my other levels (though the buff still exists for the correct amount of time) I'm not sure where I can adjust this.
The other problem I'm having is with the buff value itself (I'm testing it with +100/200/300HP for now). I know the combat values for the buff are in the Sentry - Psionic Shield behaviours, so I made duplicates of it and assigned them to duplicates of the Guardian Shield (Apply Behaviour) effect.
The original Apply Behaviour effect was being referenced in the Guardian Shield (Search Area) Effect, so I ended up throwing my duplicate behaviour effects in there too (in the Areas field), I thought it would behave similarly to the Effect field of my ability, but that does not appear to be the case. Does anyone know how to get this behaviour levelling properly?
The shield model not appear is just visual as you said. I believe this can be resolved just by going into the actor that controls when the shield model appears and adding in new events to make and destroy the model for the new levels of the buff.
I looked at the XML for the actor "GuardianShield" and it's exactly as I thought:
this actor event creates the guardian shield model when the persistent effect starts
since you had to make a persistent effect for each level, you need to add these in as sepearate events
so the shield model will come up
and don't forget to destroy the model when the persistent wears off
<On Terms="Effect.GuardianShieldPersistent.Start; At Caster" Send="Create"/>
I'm not sure I quite understand, I see that the Guardian Shield actor has create/destroy events associated with it, but where are they being sent from? Are these events being sent from somewhere within the ability's effects? Because that could explain why it's not getting them with my duplicates.
You'll need 4 validators of type "compare unit ability level"
Set the ability to your new "guardian shield" ability. The value count is 0 based. So level 1 = 0; level 2 = 1; level 3 = 2, level 4 = 3
You'll need a couple of switch effects. Name them Guardian Shield Duration and Guardian Shield Armored (or whatever you want)
Set the ability effect to "Guardian shield Duration" 4 times (yes the same effect, youll see why in a minute. we need 4 so the ability knows it can be leveled 4 times)
Duplicate the persistant effect 3 times, and change the values.
In the effect: guardian shield duration, setup 4 cases.
- case 0: effect: guardian shield persistant 1; validator: set to your ability level compare validator for level 1
- case 1: effect: guardian shield persistant 1; validator: set to level 2
- case 2: effect: guardian shield persistant 2; validator: set to level 3
- case 3: effect: guardian shield persistant 3; validator set to level 4
create a behavior: name it "Guardian Shield armored"
- Set the combat: damage response: ranged (unscaled) bonus to -1.
- Set the duration to something like 0.5 seconds.
- set the maximum number of stacks to 3
create 3 effects type: apply behavior
First one set to 1 stack, second one to 2 stacks, third to 3 stacks.
- Set the behavior to the armored behavior
Go to the "Guardian Shield Armored" switch effect. Set it up like the first switch.
case 0: effect: apply 1 stack; validator: level 1
case 1: effect: apply 2 stacks; validator: level 2
case 2: effect: apply 2 stacks; validator: level 3
case 3: effect: apply 3 stacks; validator: level 4
Set your search effect to the "Guardian Shield Armored" switch effect.
Open the actors tab. Find the GuardianShield actor model (type model one shot continuous)
find events and double click.
Add a new event
Effect.GuardianShieldPersistant1.Start
Right click the event and add term Set to At Caster
Set the action to Create
Duplicate 2 more times
Effect.GuardianShieldPersistant2.Start
-> At Caster
Create
Effect.GuardianShieldPersistant3.Start
-> At Caster
Create
Effect.GuardianShieldPersistant1.Stop
-> At Caster
Action type: Animation Bracket Stop, name BSD (You might have to click customize and add this name in order to select it)
Effect.GuardianShieldPersistant2.Stop
-> At Caster
AnimationBracketStop BSD
Effect.GuardianShieldPersistant3.Stop
-> At Caster
AnimationBracketStop BSD
Thank you so much JPNyt! Your post almost completely solved my issues. The buff values are working properly now, and the shield model is appearing for all levels at increased amounts of time per level.
The only issue remaining is this:
For my (Create Persistent) effects for my ability, I'm using the default one (with a Period Count of 30 and Period Duration of 0.5) and two other effects I duplicated with values of 35/0.5 and 40/0.5 respectively. The levels of my ability that are using the default Create Persistent Effect work great, but the ones using my duplciated effects are having the model stay up for exactly twice as long as the buff duration.
It's definitely using my duplicated effects, as the times are different, but I'm not sure why the model is staying up for twice as long when it works fine on the default effect. Does this have something to do with the period values? Or maybe just the events I added to the actor?
@BiweeklyAaron: Go
I'd have to see what you have to know what was happening. My guess is you have something applying the persistent twice, or there is something in the actor events I missed that alters the animation duration.
Had time to do a little bit of testing on this, with the subsequent Apply Persistent effects, it definitely looks like it's playing the animation a second time right as the first one is supposed to die. I'm not sure why this is happening, could it be queueing up multiple create events for some reason? (if that's even possible)
I tried deleting and re-duplicating my Apply Persistent effects as well, just to make sure I didn't change any other values that I'd forgotten about, and I can definitely confirm that the only values changed is the Period Count from 30 to 35 and 40 respectively.
The real kicker is why does the default one work, but I'm getting multiple animations off my subsequent levels of this...
@BiweeklyAaron: Go
Try double checking your switch effects and the validators. With the way the system is setup, it could be one of them isnt set up properly (considering we reuse a couple of effects at level 2 & 3).
I don't think it's the switch, on the account of I'm not even using the switch for the duration anymore. I initially set it up the way you described, using the switch for all 4 levels of the Effect field of my ability.
After looking at some other tutorials though, I realized I should just be able to list this in the four levels of the Effect field for my ability:
Guardian Shield (Apply Persistant) 1
Guardian Shield (Apply Persistant) 1
Guardian Shield (Apply Persistant) 2
Guardian Shield (Apply Persistant) 3
I was getting the double-animation issue using both methods, and the buff duration still works properly without bothering with the switch in this case.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
So as the title says, I am attempting to create a Guardian Shield ability something along the lines of this:
So far I've been able to succeed with getting the duration of the various levels to work by making multiple Guardian Shield (Create Persistent) effects and putting them into the Effect field of my ability.
One of the problems I'm having though, is getting the shield model to exist for the correct amounts of time on my subsequent levels, it does not seem to appear at all on my other levels (though the buff still exists for the correct amount of time) I'm not sure where I can adjust this.
The other problem I'm having is with the buff value itself (I'm testing it with +100/200/300HP for now). I know the combat values for the buff are in the Sentry - Psionic Shield behaviours, so I made duplicates of it and assigned them to duplicates of the Guardian Shield (Apply Behaviour) effect.
The original Apply Behaviour effect was being referenced in the Guardian Shield (Search Area) Effect, so I ended up throwing my duplicate behaviour effects in there too (in the Areas field), I thought it would behave similarly to the Effect field of my ability, but that does not appear to be the case. Does anyone know how to get this behaviour levelling properly?
@BiweeklyAaron: Go
The shield model not appear is just visual as you said. I believe this can be resolved just by going into the actor that controls when the shield model appears and adding in new events to make and destroy the model for the new levels of the buff.
I looked at the XML for the actor "GuardianShield" and it's exactly as I thought:
this actor event creates the guardian shield model when the persistent effect starts since you had to make a persistent effect for each level, you need to add these in as sepearate events so the shield model will come up and don't forget to destroy the model when the persistent wears off <On Terms="Effect.GuardianShieldPersistent.Start; At Caster" Send="Create"/>
@sethmachine: Go
I'm not sure I quite understand, I see that the Guardian Shield actor has create/destroy events associated with it, but where are they being sent from? Are these events being sent from somewhere within the ability's effects? Because that could explain why it's not getting them with my duplicates.
(Edit: Sc2m apparently really hates line/paragraph breaks. sorry)
You'll need 4 validators of type "compare unit ability level"
Set the ability to your new "guardian shield" ability. The value count is 0 based. So level 1 = 0; level 2 = 1; level 3 = 2, level 4 = 3
You'll need a couple of switch effects. Name them Guardian Shield Duration and Guardian Shield Armored (or whatever you want)
Set the ability effect to "Guardian shield Duration" 4 times (yes the same effect, youll see why in a minute. we need 4 so the ability knows it can be leveled 4 times)
Duplicate the persistant effect 3 times, and change the values.
In the effect: guardian shield duration, setup 4 cases.
- case 0: effect: guardian shield persistant 1; validator: set to your ability level compare validator for level 1
- case 1: effect: guardian shield persistant 1; validator: set to level 2
- case 2: effect: guardian shield persistant 2; validator: set to level 3
- case 3: effect: guardian shield persistant 3; validator set to level 4
create a behavior: name it "Guardian Shield armored"
- Set the combat: damage response: ranged (unscaled) bonus to -1.
- Set the duration to something like 0.5 seconds.
- set the maximum number of stacks to 3
create 3 effects type: apply behavior
First one set to 1 stack, second one to 2 stacks, third to 3 stacks.
- Set the behavior to the armored behavior
Go to the "Guardian Shield Armored" switch effect. Set it up like the first switch.
case 0: effect: apply 1 stack; validator: level 1
case 1: effect: apply 2 stacks; validator: level 2
case 2: effect: apply 2 stacks; validator: level 3
case 3: effect: apply 3 stacks; validator: level 4
Set your search effect to the "Guardian Shield Armored" switch effect.
Open the actors tab. Find the GuardianShield actor model (type model one shot continuous)
find events and double click.
Add a new event
Effect.GuardianShieldPersistant1.Start
Right click the event and add term Set to At Caster
Set the action to Create
Duplicate 2 more times
Effect.GuardianShieldPersistant2.Start
-> At Caster
Create
Effect.GuardianShieldPersistant3.Start
-> At Caster
Create
Effect.GuardianShieldPersistant1.Stop
-> At Caster
Action type: Animation Bracket Stop, name BSD (You might have to click customize and add this name in order to select it)
Effect.GuardianShieldPersistant2.Stop
-> At Caster
AnimationBracketStop BSD
Effect.GuardianShieldPersistant3.Stop
-> At Caster
AnimationBracketStop BSD
Thank you so much JPNyt! Your post almost completely solved my issues. The buff values are working properly now, and the shield model is appearing for all levels at increased amounts of time per level.
The only issue remaining is this:
For my (Create Persistent) effects for my ability, I'm using the default one (with a Period Count of 30 and Period Duration of 0.5) and two other effects I duplicated with values of 35/0.5 and 40/0.5 respectively. The levels of my ability that are using the default Create Persistent Effect work great, but the ones using my duplciated effects are having the model stay up for exactly twice as long as the buff duration.
It's definitely using my duplicated effects, as the times are different, but I'm not sure why the model is staying up for twice as long when it works fine on the default effect. Does this have something to do with the period values? Or maybe just the events I added to the actor?
@BiweeklyAaron: Go I'd have to see what you have to know what was happening. My guess is you have something applying the persistent twice, or there is something in the actor events I missed that alters the animation duration.
@ckSynergy: Go
Had time to do a little bit of testing on this, with the subsequent Apply Persistent effects, it definitely looks like it's playing the animation a second time right as the first one is supposed to die. I'm not sure why this is happening, could it be queueing up multiple create events for some reason? (if that's even possible)
I tried deleting and re-duplicating my Apply Persistent effects as well, just to make sure I didn't change any other values that I'd forgotten about, and I can definitely confirm that the only values changed is the Period Count from 30 to 35 and 40 respectively.
The real kicker is why does the default one work, but I'm getting multiple animations off my subsequent levels of this...
@BiweeklyAaron: Go Try double checking your switch effects and the validators. With the way the system is setup, it could be one of them isnt set up properly (considering we reuse a couple of effects at level 2 & 3).
@ckSynergy: Go
I don't think it's the switch, on the account of I'm not even using the switch for the duration anymore. I initially set it up the way you described, using the switch for all 4 levels of the Effect field of my ability.
After looking at some other tutorials though, I realized I should just be able to list this in the four levels of the Effect field for my ability:
I was getting the double-animation issue using both methods, and the buff duration still works properly without bothering with the switch in this case.