i finally managed connect two units with a beam actor, however i still have got some questions.
1) I create the beam with an action actor that reacts to a damage effect. Is there any way to make the beam play forever until i decide to end it in some way? (I already managed it to play forever by choosing the beam continouus actor type). I tried to add another event reacting to another damage-effect and then destroying the beam, but for some reason it doesnt work. I need to be able to create and destroy the beam whenever i need it (in triggers).
2) For some reason i always get this error message when the beam fires off:
You will notice under the events for the beam that once it finishes playing the BSD animations it destroys itself. You need to replace those two events with an animplay forever.
Rollback Post to RevisionRollBack
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
Is it possible to achieve smth similar with a buff?
Im not good in data, but i know that you can for example create an actor that displays a model on a unit as long as a specific buff is active for that unit.
Would that be tranferable to beams in some way?
I tried to add behavior create and destroy events but it didnt seem to have any effect. I couldnt even manage to destroy the beam on unit death, even though i added a unit death - destroy event. =/
Just use a Unit Compare Behavior Count validator and the Validate Unit/Effect terms. Have a look how I did it in the power network system for the community project.
Ok so basically you are using timers to create some sort of periodic check that kills the beam once the validator fails, right?
So for example i could create a buff that gets applied to the beam-source unit and destroy the beam once the buff gets removed?
Im just a little bit concerned about the fact that its a periodic check, i would like to avoid performance eaters. (I guess it will be fine if i reduce the check intervall to smth like 0.5, however id like to make sure that there isnt a better solution).
Do you think there would be any, more efficient approach for this problem?
What confuses me at this point is, that there is no need for a periodic check if i create a model actor that reacts on buff.create and buff.destroy events. Cant this be transferred to beams in order to avoid periodic checking?
Im just a little bit concerned about the fact that its a periodic check, i would like to avoid performance eaters. (I guess it will be fine if i reduce the check intervall to smth like 0.5, however id like to make sure that there isnt a better solution).
Do you think there would be any, more efficient approach for this problem?
How many of these beams do you intend to use?
I'm working a lot with actor event timers (even with really small intervall times in the 0.1-0.0625 margin) in addition to a lot of changing scale, tint etc. with blend timers and using periodic effects on projectiles with periodic search area effects for collision checks. I did some stress testing with easily 40+ timer-units and 70+ projectiles around at once and haven't seen big performance problems at all.
I highly doubt that you will see problems with 0.5s intervall timers in actor events, and as long as it works I'd personally use it without any concerns.
But usually the beam actors shouldn't behave any differently to behavior.start/end events as far as I know, would be interesting for me too whats up with that :)
Trouble is with beam actors is sometimes the destroy fails. Especially if it is not used in a conventional way. He is trying to use a mix of triggers and data so I do not know how it behaves. Still, just look at the rainbow archon, that uses loads fo timers. As long as you do not have looping timers that self procreate there will be no major issues.
Rollback Post to RevisionRollBack
Contribute to the wiki (Wiki button at top of page) Considered easy altering of the unit textures?
I know that this by itself wont cause any performance issues, the problem is just that SCU by itself is huge and alot of stuff is going on, so im always having the performance in mind when i create new stuff for the engine, and i really wanna avoid smth that adds up to the existing overhead, especially when its just about visuals.
But since there doesnt seem to be any other solution for the problem, i guess ill need to use the timers to achieve my goal. Ill try this out once i find the time and post the result here.
If anyone has another idea, feel free to add it to this thread!
Thanks so far.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Hi,
i finally managed connect two units with a beam actor, however i still have got some questions.
1) I create the beam with an action actor that reacts to a damage effect. Is there any way to make the beam play forever until i decide to end it in some way? (I already managed it to play forever by choosing the beam continouus actor type). I tried to add another event reacting to another damage-effect and then destroying the beam, but for some reason it doesnt work. I need to be able to create and destroy the beam whenever i need it (in triggers).
2) For some reason i always get this error message when the beam fires off:
I dont really understand why since there is just one action actor with a simple event.
Any help would be greatly appreciated. :)
You will notice under the events for the beam that once it finishes playing the BSD animations it destroys itself. You need to replace those two events with an animplay forever.
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
Like ive said, i already managed it to play forever. I just need to stop it someway from triggers.
The question is how this could be achieved.
I still dont get why it doesnt react on a second, different damage effect that triggers the destroy message.
This is the simple trigger i use to execute the two effects:
Somehow, the beam seems to ignore the second effect and doesnt get destroyed.
In that case you then need to put in a validated self destruct cycle using a looping timer and validate terms that cause it to destroy.
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
Is it possible to achieve smth similar with a buff?
Im not good in data, but i know that you can for example create an actor that displays a model on a unit as long as a specific buff is active for that unit.
Would that be tranferable to beams in some way?
I tried to add behavior create and destroy events but it didnt seem to have any effect. I couldnt even manage to destroy the beam on unit death, even though i added a unit death - destroy event. =/
Just use a Unit Compare Behavior Count validator and the Validate Unit/Effect terms. Have a look how I did it in the power network system for the community project.
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
Ok so basically you are using timers to create some sort of periodic check that kills the beam once the validator fails, right?
So for example i could create a buff that gets applied to the beam-source unit and destroy the beam once the buff gets removed?
Im just a little bit concerned about the fact that its a periodic check, i would like to avoid performance eaters. (I guess it will be fine if i reduce the check intervall to smth like 0.5, however id like to make sure that there isnt a better solution).
Do you think there would be any, more efficient approach for this problem?
What confuses me at this point is, that there is no need for a periodic check if i create a model actor that reacts on buff.create and buff.destroy events. Cant this be transferred to beams in order to avoid periodic checking?
Thanks for your help so far.
How many of these beams do you intend to use?
I'm working a lot with actor event timers (even with really small intervall times in the 0.1-0.0625 margin) in addition to a lot of changing scale, tint etc. with blend timers and using periodic effects on projectiles with periodic search area effects for collision checks. I did some stress testing with easily 40+ timer-units and 70+ projectiles around at once and haven't seen big performance problems at all.
I highly doubt that you will see problems with 0.5s intervall timers in actor events, and as long as it works I'd personally use it without any concerns.
But usually the beam actors shouldn't behave any differently to behavior.start/end events as far as I know, would be interesting for me too whats up with that :)
Trouble is with beam actors is sometimes the destroy fails. Especially if it is not used in a conventional way. He is trying to use a mix of triggers and data so I do not know how it behaves. Still, just look at the rainbow archon, that uses loads fo timers. As long as you do not have looping timers that self procreate there will be no major issues.
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
I know that this by itself wont cause any performance issues, the problem is just that SCU by itself is huge and alot of stuff is going on, so im always having the performance in mind when i create new stuff for the engine, and i really wanna avoid smth that adds up to the existing overhead, especially when its just about visuals.
But since there doesnt seem to be any other solution for the problem, i guess ill need to use the timers to achieve my goal. Ill try this out once i find the time and post the result here.
If anyone has another idea, feel free to add it to this thread!
Thanks so far.