well i created a firetrail "passive" - basically unit leaves behind patches of fire that deal dmg periodicly
for that i created a Buff Behavior that peridically fires a persistent effect (firepatch)
this effect fires a search area effect which fires a damage effect for X periods
when the persistent effect expires it launches a destroy persistent effect to destroy itself ( OR so i thought ... )
however i apperantly do something wrong because i have undenyable memory lacks the longer the game runs
I think the problem is the proper targeting i tried a lot of things but i grow tired of trying seemingly random target option permuation - and the non existent documentation of all these function doesnt help either ...
so here is what i have current chosen as target for the "destroy persistent effect" thats supposed to destroy the persistent effect that launches fire / dmg.
Instead of Destroy Persistent, can't you just use validators so that the existing Create Persistent terminate itself whenever the periodic validator indicates it to do so?
1,2,3&4 check - all these things were specified the way you suggest -
1. disabled from the get go
2. only 5 periods á 0.5 sec
3. ofc i tried a "destroy persistent" effect ... i wrote that already but the targeting seems to be problematic
4. no - I specified the "destroy persistent"-effect has the name of the persistent effect i want to destroy in its "effect- effect" field.
@ stragusmapste - im not sure what you are hinting at
i have a beheavior which "spawns" a firepatch every 0.3 sec (a persistent effect) - this effect lasts 5 periods á 0.5 sec - so 2.5 sec total
at the end of that time (i chose effect: expire) i want it to destroy itself. thats all iam asking for. so i specified said said "persistent destroyer"
which either does not target all firepatch-persistent effects , or none at all because as the game goes on i drop from 55 fps at 0:00 to 8 fps and worse at about 6 minutes + even though there is nothing going on - on this testmap except for those persistent effects.
Edit:
ok to my suprise i did no error in the effect department. once i removed the actor (fire model) from the persistent effect the game ran smooth as honey - turns out i didnt destroy the Actor properly - it was a false conclusion to assume that the actor is destroyed just because the graphic-effect is gone....
If you use a finite number of periods, you shouldn't need a destroy persistent effect at all. Could you attach the testmap? The fps drop could be an actor issue or completely unrelated.
€ okay, now your edit appears and makes me look like I cannot read properly ;)
For your actor, I suggest the following events to create/destroy it properly:
Actor, type Model, based on ModelAnimationStyleContinuous (careful: not Model Animation Style Continuous)
Add new events, like this:
Effect.(YourPersistent).Start
-> at Effect
Create
Effect.(YourPersistent).Stop
-> at Effect
-> FromEffectTreeDescendant
Destroy (or AnimBracketClose BSD, if the model has/should play a death animation)
Thanks regardless kueken - i was just about to ask wether or not a persistent effect destroys itself after a finite number of periods - removing the destroy persistent effect should help improving the performence especially on an event which occurs every 0.3 seconds
Btw Thanks for your Assets / Tutorials - they helped me alot at getting a grasp of the data editor - especially considering that i just started a month ago with mapping.
A Create Persistent runs its initial delay, the specified count of periods, the expire delay then it DOES destroy itself naturally without the need to do anything else on your part.
If you use the "Persist until destroyed" flag, then it will keep running periods forever, ignoring the specified count of periods. In that case, you need to set some kind of periodic validator that will eventually return false so the effect goes out of the loop and destroys itself.
In the vast majority of cases, you do NOT need a "Destroy Persistent" effect, you just let the "Create persistent" effect destroy itself naturally (either through count of periods, or periodic validator returning false).
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
well i created a firetrail "passive" - basically unit leaves behind patches of fire that deal dmg periodicly
for that i created a Buff Behavior that peridically fires a persistent effect (firepatch) this effect fires a search area effect which fires a damage effect for X periods
when the persistent effect expires it launches a destroy persistent effect to destroy itself ( OR so i thought ... ) however i apperantly do something wrong because i have undenyable memory lacks the longer the game runs
I think the problem is the proper targeting i tried a lot of things but i grow tired of trying seemingly random target option permuation - and the non existent documentation of all these function doesnt help either ...
so here is what i have current chosen as target for the "destroy persistent effect" thats supposed to destroy the persistent effect that launches fire / dmg.
Field [Hero5] Napalm Trail destroy persistent Target: Location - [Hero5] Napalm Trail destroy persistent:Source Unit/Point
Target: Effect [Hero5] Napalm Trail destroy persistent
Target: Value Source Unit/Point
Target: Marker - -1:(Disabled|Disabled|Disabled|Disabled):(Disabled|Disabled|Disabled|Disabled):Effect/NapalmTraildestroypersistent
Target: Count -1
Target: Link Effect/NapalmTraildestroypersistent
Target: Match Flags + (Disabled|Disabled|Disabled|Disabled)
Target: Mismatch Flags + (Disabled|Disabled|Disabled|Disabled)
iam really not 100% sure what to target at all if i want to target a effect - thanks in advance for help / suggestions
1. Try removing the persist until destroyed flag
2. Give the Create Persistent effect a finite number of periods
3. Use a Destroy Persistent effect (look at the ability of nova as an example)
4. You seem to have not specified what persistent to destroy in the Effect - Effect field
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
Instead of Destroy Persistent, can't you just use validators so that the existing Create Persistent terminate itself whenever the periodic validator indicates it to do so?
@DrSuperEvil: Go
1,2,3&4 check - all these things were specified the way you suggest - 1. disabled from the get go 2. only 5 periods á 0.5 sec 3. ofc i tried a "destroy persistent" effect ... i wrote that already but the targeting seems to be problematic 4. no - I specified the "destroy persistent"-effect has the name of the persistent effect i want to destroy in its "effect- effect" field.
@ stragusmapste - im not sure what you are hinting at i have a beheavior which "spawns" a firepatch every 0.3 sec (a persistent effect) - this effect lasts 5 periods á 0.5 sec - so 2.5 sec total at the end of that time (i chose effect: expire) i want it to destroy itself. thats all iam asking for. so i specified said said "persistent destroyer" which either does not target all firepatch-persistent effects , or none at all because as the game goes on i drop from 55 fps at 0:00 to 8 fps and worse at about 6 minutes + even though there is nothing going on - on this testmap except for those persistent effects.
Edit:
ok to my suprise i did no error in the effect department. once i removed the actor (fire model) from the persistent effect the game ran smooth as honey - turns out i didnt destroy the Actor properly - it was a false conclusion to assume that the actor is destroyed just because the graphic-effect is gone....
If you use a finite number of periods, you shouldn't need a destroy persistent effect at all. Could you attach the testmap? The fps drop could be an actor issue or completely unrelated.
€ okay, now your edit appears and makes me look like I cannot read properly ;)
For your actor, I suggest the following events to create/destroy it properly:
Actor, type Model, based on ModelAnimationStyleContinuous (careful: not Model Animation Style Continuous)
Add new events, like this:
@Kueken531: Go
Thanks regardless kueken - i was just about to ask wether or not a persistent effect destroys itself after a finite number of periods - removing the destroy persistent effect should help improving the performence especially on an event which occurs every 0.3 seconds
Btw Thanks for your Assets / Tutorials - they helped me alot at getting a grasp of the data editor - especially considering that i just started a month ago with mapping.
in the end i used
Field Napalm Trail persistent
Event: Event 7 - Effect.*.Expire:Destroy
Event: Send Destroy
Event: Target
Event: Terms Effect.*.Expire
to destroy the actor
A Create Persistent runs its initial delay, the specified count of periods, the expire delay then it DOES destroy itself naturally without the need to do anything else on your part.
If you use the "Persist until destroyed" flag, then it will keep running periods forever, ignoring the specified count of periods. In that case, you need to set some kind of periodic validator that will eventually return false so the effect goes out of the loop and destroys itself.
In the vast majority of cases, you do NOT need a "Destroy Persistent" effect, you just let the "Create persistent" effect destroy itself naturally (either through count of periods, or periodic validator returning false).