I was wondering if anyone could help me in the right direction with a problem I'm having.
What I'm trying to achieve is some what of a persistent effect aura that also emits beams to all the targets affected by the aura (originating from the caster).
The aura ability itself is complete and working, though the only beam guides I've found is only covering emitting from a weapon or a turret.
I am no specialist in beam actors so maybe consider looking how the collossus makes a beam and have it created whenever a unit has the behavior.*.on and destroyed when it has behavior.*.off. Instead of attaching the site to a mover you attach it to the target of the aura.
Rollback Post to RevisionRollBack
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
You can't make beams that rely on behaviours. At least, I can't.
The simplest way to make this would be a search effect with a dummy secondary effect. Attach your beam to the dummy effect and set it's time to die to be the same period that your search effect pulses at. For info on how to make a "time to die" beam, see the point defence laser.
I am no specialist in beam actors so maybe consider looking how the collossus makes a beam and have it created whenever a unit has the behavior.*.on and destroyed when it has behavior.*.off. Instead of attaching the site to a mover you attach it to the target of the aura.
Thank you for your reply.
I have attempted to do it like that, however I remain unsuccessful. I would very much appreciate any detailed instructions on how to achieve what I described in the OP.
From my experience, continuous beams are handled best with a Persistent- effect.
I wanted to create an aura spell, which applies a buff to all targets and also connects the caster with all currently buffed targets, using a beam actor.
So my conclusion: For the beam, I need a persistent effect synchronized with the behavior. Unfortunately, you cannot just start the persistent as an initial effect for the behavior and destroy it as a final effect, this screws up caster/target relationships needed for the beam.
So I made the aura (aura = behavior which periodically executes a search effect) execute the persistent on the target, which then initially applies the behavior. The behavior then destroys the persistent when expiring.
The persistent needs the "Persist until Destroyed" flag enabled to stay until it gets removed by the behavior.
Also it needs a Period Duration > 0, otherwise it crashes the game. I used 1 for no specific reason. Since I don't need the period duration for anything, a very high number might be the logical choice.
Additionaly, the persistent needs a validator to check for the behavior, otherwise, it gets created for every interval of the aura. Since the aura is applied after the persistent starts, this works perfectly, but keep in mind, that this also means, the method is not MUI. One unit can only be affected by one aura of the same type, and only one beam will appear at a time for the same aura.
Note that the entire persistent effect does nothing at all. Its a pure dummy effect to handle the beam actor correctly.
Then we need a beam actor, which gets created at start of the persistent effect and gets destroyed at persistant end, using actor events. Note that the create message needs an "At Target" term (otherwise the beams get created at any of the currently active persistents, not necessarily the one which created the beam), and the destroy message needs a "From Effect Tree Descendant" term (if you don't have this, all beams will get destroyed, if one persistent stops).
The actor events look like this:
Effect.(MyPersistent).start
At Target
Create
Effect.(MyPersistent).stop
FromEffectTreeDescendant
Destroy
Then you set the Host Launch to _Selectable and Scope Caster, the Host Impact just to _Selectable, it will automatically pick the target.
Finally, attach the beams to whatever attachment points you like using site operations; I took SOpAttachOverhead and SOpAttachRandomDamage.
Worked like a charm, even though I had to make it a separate aura set from my normal aura, which needs to be constantly on the unit in order to not loose its desired effect.
Great work, still!
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Hello
I was wondering if anyone could help me in the right direction with a problem I'm having.
What I'm trying to achieve is some what of a persistent effect aura that also emits beams to all the targets affected by the aura (originating from the caster).
The aura ability itself is complete and working, though the only beam guides I've found is only covering emitting from a weapon or a turret.
Thanks in advance.
Create a site actor that is created when the target unit has the aura behaviour on. Then use that as the impact site for the action actor.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg
@DrSuperEvil: Go
Thank you for your reply.
I did make another attempt at this, but it came down as fruitless.
I would very much appreciate any further assistance on the matter.
If you or anyone could post a more detailed explanation it would most likely prove to be very helpful.
I want to do the same thing, so any guide to this would be very helpful for me as well.
If would be awesome if anyone could provide some further assistance in this matter.
I am no specialist in beam actors so maybe consider looking how the collossus makes a beam and have it created whenever a unit has the behavior.*.on and destroyed when it has behavior.*.off. Instead of attaching the site to a mover you attach it to the target of the aura.
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
https://www.sc2mapster.com/forums/resources/tutorials/179654-data-actor-events-message-texture-select-by-id
https://media.forgecdn.net/attachments/187/40/Screenshot2011-04-17_09_16_21.jpg
You can't make beams that rely on behaviours. At least, I can't.
The simplest way to make this would be a search effect with a dummy secondary effect. Attach your beam to the dummy effect and set it's time to die to be the same period that your search effect pulses at. For info on how to make a "time to die" beam, see the point defence laser.
Thank you for your reply.
I have attempted to do it like that, however I remain unsuccessful. I would very much appreciate any detailed instructions on how to achieve what I described in the OP.
Thank you in advance.
Now you made me do this :D
Concept:
From my experience, continuous beams are handled best with a Persistent- effect.
I wanted to create an aura spell, which applies a buff to all targets and also connects the caster with all currently buffed targets, using a beam actor.
So my conclusion: For the beam, I need a persistent effect synchronized with the behavior. Unfortunately, you cannot just start the persistent as an initial effect for the behavior and destroy it as a final effect, this screws up caster/target relationships needed for the beam.
So I made the aura (aura = behavior which periodically executes a search effect) execute the persistent on the target, which then initially applies the behavior. The behavior then destroys the persistent when expiring.
The persistent needs the "Persist until Destroyed" flag enabled to stay until it gets removed by the behavior.
Also it needs a Period Duration > 0, otherwise it crashes the game. I used 1 for no specific reason. Since I don't need the period duration for anything, a very high number might be the logical choice.
Additionaly, the persistent needs a validator to check for the behavior, otherwise, it gets created for every interval of the aura. Since the aura is applied after the persistent starts, this works perfectly, but keep in mind, that this also means, the method is not MUI. One unit can only be affected by one aura of the same type, and only one beam will appear at a time for the same aura.
Note that the entire persistent effect does nothing at all. Its a pure dummy effect to handle the beam actor correctly.
Then we need a beam actor, which gets created at start of the persistent effect and gets destroyed at persistant end, using actor events. Note that the create message needs an "At Target" term (otherwise the beams get created at any of the currently active persistents, not necessarily the one which created the beam), and the destroy message needs a "From Effect Tree Descendant" term (if you don't have this, all beams will get destroyed, if one persistent stops).
The actor events look like this:
Then you set the Host Launch to _Selectable and Scope Caster, the Host Impact just to _Selectable, it will automatically pick the target.
Finally, attach the beams to whatever attachment points you like using site operations; I took SOpAttachOverhead and SOpAttachRandomDamage.
@Kueken531: Go
Wow, that's just awesome work, thank you!
I can't wait until I get home from work to try it out.
Worked like a charm, even though I had to make it a separate aura set from my normal aura, which needs to be constantly on the unit in order to not loose its desired effect.
Great work, still!