First thing is first, the project already has a good deal of work into it. It is an old project I was working on waaay back in January that I would like to take another crack at. But my inability to work with the complex capability of the data editor caused me to stop working on it when I switched the firing system I was using.
The Map
The map is essentially a 3rd Person Paintballing map, with multiple styles and concepts, with many options that are interchangable during setup. If you would be interested in helping out on this project, shoot me a PM and we can discuss details.
The projectile
I am trying to make a projectile, that fires via trigger(this is done) and this projectile uses a custom trig function(wrote myself) to fire in any given direction and/or angle. This all works fine. What I need, is a data editor to get it so where the projectile itself will impact when it hits something. I already have it so it explodes after it travels max range. The projectile atm will run its traceline, but if it picks up anything under the projectile as well, it will impact as if the said unit is there, even though it is under the projectile.
For any help, or joining the project, either post here or PM me. Thanks in advance.
FYI: Competent editors only please, I am a skilled editor and dont like wasting my time on editors who arent as serious about getting shit done =D
Rollback Post to RevisionRollBack
My Other Plugins
Sign Casino
Sign Bank
ResidenceSigns
Automatic Whitelist Reloader
Want to see my plugins in action? Try them here!
Create a missile with a behavior calling a periodic effect every 0.0625 second, make that periodic effect a Search Area that returns a maximum count of one. In the search area's effect, link to set of effects that would deal damage in area, self-destruct the missile, etc. You may want to periodically check for cliff levels (validators) if it should impact against walls.
P.S. If I were you, I would make sure the map's concepts are playable through the battle.net latency...
lol, it is, ran many Betas. And honestly you didnt give me any data that isnt already set up. I have the search area, the self-destruct, etc. All i need is it to only search the exact spot the missile is at, like a hieght validator or something? But the map is perfectly playable, alot of my Beta testers got pretty furious at me when I stopped production on this map lol.
Rollback Post to RevisionRollBack
My Other Plugins
Sign Casino
Sign Bank
ResidenceSigns
Automatic Whitelist Reloader
Want to see my plugins in action? Try them here!
Set the Search Area's "Impact Location - value" to "Source Unit". If the search is triggered by a behavior applied on your missile unit, it will search around the missile's location.
Alright, so on launch, I have the ammo unit set to the paintball unit, impact effect is the paintballs dmg. Launch effect is the persistent. Persist until destroyed, periodic check .0625, periodic effect is the target check with Target:Location+ set to Source Unit, and the Target Check effect impact loaction set to Source Unit with Search Areas + set to radius .3, 360degree arc and effect set to Paintball Impact effect, which just suicides the paintball, and runs the paintball damage effect.
Does the Units mover, or anything like that effect this?
Rollback Post to RevisionRollBack
My Other Plugins
Sign Casino
Sign Bank
ResidenceSigns
Automatic Whitelist Reloader
Want to see my plugins in action? Try them here!
You shouldn't need any create persistent, you need to run the search from a behavior put on the missile so that it constantly uses the updated missile's position to run the search.
The mover is important.
I'll assume you want a projectile that flies indefinitely, scanning for targets, without hitting any predefined target/point. Create a "Throw" phase with a throw rotation type of "Launcher Forward", a throw vector of 0,-1,0 and other settings as you desire (speed, acceleration, random throw vector variations, etc.). Set the "Arrival test type" to "Never". You could stop the missile after a certain distance or time within the mover itself, but using the behavior's duration might be more flexible if ranges are meant to vary.
Care to explain this as if you are talking to a 5yr old? lol, step by step. I am a wiz at triggers, but the data shit just, gets me. As of now, I use a trigger, on pressing the shoot, to fire the shot at a ghost unit in the direction of the shot, which gets deleted instantly so the shot travels toward the ghost unit which is gone. And travels to that point(Variable set as max range for each gun) and explodes. I just want it so if the missile picks up anything else in that path prior to its final destination, it will run its damage effect.
Rollback Post to RevisionRollBack
My Other Plugins
Sign Casino
Sign Bank
ResidenceSigns
Automatic Whitelist Reloader
Want to see my plugins in action? Try them here!
Ow, you really don't need to use such ghost units to fire in the desired direction... unless you want to rotate an unit's turret, which might be what you are doing.
Create a Search Area effect we'll call Foo. Leave it empty for now.
Create a behavior we'll call Bar. Set the behavior Bar's "Effect - periodic" and "Stat - period" to call the effect Foo every 0.0625 second. Add that behavior to your missile unit.
Back to our effect Foo. Set the search area(s) and filters as desired, and set the "Impact Location - value" to Source Unit. Make Foo's search return a maximum count of 1, linked to an effect of type "Set" that we'll call Moo.
Have the set effect Moo call a damage effect ( which could do splash damage in area or just to the target unit found by the search ) and a suicide effect, to destroy the missile.
This is pretty simple in the end, let me know how that goes.
Ya, you lost me at "Make Foo's search return a maximum count of 1, linked to an effect of type "Set" that we'll call Moo." I appreciate the help btw. If I use the ghost unit still, will this still work? The algorithm is pretty complex and would be a bitch to switch. If so, w/e. But id like to avoid rewriting. lol.
Edit: the shot sequence uses the Launch effect at the ghost unit, how would I incorporate this into that.
Open's Foo's "Search Areas", create a new search. Set the maximum count to 1 and the effect to our set effect Moo (linked to damage and self-destruct). Also define Foo's general Search Filters to exclude stuff like Dead, Hidden, Invulnerable, Missile, Self, etc. otherwise it will collide with really anything (including itself).
Edit: The Launch effect isn't related to all this. This is the chain of effects linked to the behavior applied on your missile unit after it has launched.
so now in reply to the Edit on my last post, this will automatically give this paintball unit that behavior which will trigger all on its own, w/o the persistent?
its still implementing the damage and colliding with units clearly under the missile. The mover on the paintball has the Punisher Grenade on it, could this be the issue? and if so, how do I make a better or just a mover that will fix this.
Rollback Post to RevisionRollBack
My Other Plugins
Sign Casino
Sign Bank
ResidenceSigns
Automatic Whitelist Reloader
Want to see my plugins in action? Try them here!
So you need a basic colliding projectile in data?
You could have a look at this tutorial (text) or that one (video + text).
Just create the examples and instead of using an ability to execute the first effect, use your trigger.
Regarding first post, you need to add the behavior to the missile unit, which you can do from the "Unit" tab directly. The only problem with that is that any credit for a kill done by the behavior->search->set->effect will be granted to the missile unit, rather than the firing unit. If that matters to you, the proper solution is to add an Apply Behavior effect on the launching missile, with the missile's behavior granting kill credits to the Caster Unit... but better focus on one problem at a time : for now add the behavior to the unit directly.
It would be best to eventually make your own mover, but that shouldn't cause any issue (besides the missile colliding at the target point, rather than going on indefinitely).
So you need a basic colliding projectile in data?
You could have a look at this tutorial (text) or that one (video + text).
I have already looked into those tutorials, believe it or not, while I was in Brazil, working on this same problem lol. They don't account for height, causing the same issue.
Rollback Post to RevisionRollBack
My Other Plugins
Sign Casino
Sign Bank
ResidenceSigns
Automatic Whitelist Reloader
Want to see my plugins in action? Try them here!
Regarding first post, you need to add the behavior to the missile unit, which you can do from the "Unit" tab directly. The only problem with that is that any credit for a kill done by the behavior->search->set->effect will be granted to the missile unit, rather than the firing unit. If that matters to you, the proper solution is to add an Apply Behavior effect on the launching missile, with the missile's behavior granting kill credits to the Caster Unit... but better focus on one problem at a time : for now add the behavior to the unit directly.
It would be best to eventually make your own mover, but that shouldn't cause any issue (besides the missile colliding at the target point, rather than going on indefinitely).
ok good to know, I added the behavior, I did know how to do that much lol. Which still resulted in it colliding with units under it, as well as the unit lost its model now too. Would there be any way, or interest rather, that I could just send u the map, and you take a crack at making this work? seems ineffective for me to try and keep failing at this, sadly.
Rollback Post to RevisionRollBack
My Other Plugins
Sign Casino
Sign Bank
ResidenceSigns
Automatic Whitelist Reloader
Want to see my plugins in action? Try them here!
I have already looked into those tutorials, believe it or not, while I was in Brazil, working on this same problem lol. They don't account for height, causing the same issue.
And again, I need to learn to read more careful :/ Didn't realize, you were able to create a 2d colliding projectile and need a 3d collision.
I actually experimented with this issue for quite some time, and I did not find any working data solution. Validators do not seem to be able to check for unit height dynamically, if it is modified by a missile mover (or I did something wrong); any search effects are purely 2d and I did not find a working workaround.
Ergo: Use triggers to check for the height.
You could probably use a dummy impact effect, which triggers on a 2d impact, then check the height difference via trigger and execute the real impact effect eventually, but this would probably be inaccurate.
If you need an accurate 3d collision, you are probably better off simulating the entire projectile via trigger.
ok good to know, I added the behavior, I did know how to do that much lol. Which still resulted in it colliding with units under it, as well as the unit lost its model now too. Would there be any way, or interest rather, that I could just send u the map, and you take a crack at making this work? seems ineffective for me to try and keep failing at this, sadly.
I think, StragusMapster overlooked the height part as well, his solution does only provide the same basic 2d collision, as far as I am aware.
The missile is colliding with units "under it" but this isn't what you want?
Do you mean the missile is on the "flying unit" plane and it's hitting ground units? That would be solved easily. But if you mean that you are targeting in 3D and you want 3D collision, the SC2 engine doesn't deal with that kind of stuff in 3D so as Kueken531 said, that would prove much more complicated...
Two units standing next to each other, equal grounding, same unit. Unit 1 fires a shot above Unit 2's head. The missile should then in turn keep going and just explode at max distance.
Unit 2 then fires a shot right at Unit 1, it should collide with that unit since it was a hit. Unit 2 then fires another shot, aimed above Unit 1's head, this should in turn, miss and keep traveling till max distance, then blow up, as did the first shot in this example.
Rollback Post to RevisionRollBack
My Other Plugins
Sign Casino
Sign Bank
ResidenceSigns
Automatic Whitelist Reloader
Want to see my plugins in action? Try them here!
In the SC2 engine,all collisions, searches, proximity, line of sight, etc. is managed strictly in 2D.
Unfortunately, you won't be able to manage that stuff in 3D using the engine itself, though you could implement some hacks based on triggers if you do all the collision math on that side...
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
First thing is first, the project already has a good deal of work into it. It is an old project I was working on waaay back in January that I would like to take another crack at. But my inability to work with the complex capability of the data editor caused me to stop working on it when I switched the firing system I was using.
The Map
The map is essentially a 3rd Person Paintballing map, with multiple styles and concepts, with many options that are interchangable during setup. If you would be interested in helping out on this project, shoot me a PM and we can discuss details.
The projectile
I am trying to make a projectile, that fires via trigger(this is done) and this projectile uses a custom trig function(wrote myself) to fire in any given direction and/or angle. This all works fine. What I need, is a data editor to get it so where the projectile itself will impact when it hits something. I already have it so it explodes after it travels max range. The projectile atm will run its traceline, but if it picks up anything under the projectile as well, it will impact as if the said unit is there, even though it is under the projectile.
For any help, or joining the project, either post here or PM me. Thanks in advance.
FYI: Competent editors only please, I am a skilled editor and dont like wasting my time on editors who arent as serious about getting shit done =D
Create a missile with a behavior calling a periodic effect every 0.0625 second, make that periodic effect a Search Area that returns a maximum count of one. In the search area's effect, link to set of effects that would deal damage in area, self-destruct the missile, etc. You may want to periodically check for cliff levels (validators) if it should impact against walls.
P.S. If I were you, I would make sure the map's concepts are playable through the battle.net latency...
@StragusMapster: Go
lol, it is, ran many Betas. And honestly you didnt give me any data that isnt already set up. I have the search area, the self-destruct, etc. All i need is it to only search the exact spot the missile is at, like a hieght validator or something? But the map is perfectly playable, alot of my Beta testers got pretty furious at me when I stopped production on this map lol.
Set the Search Area's "Impact Location - value" to "Source Unit". If the search is triggered by a behavior applied on your missile unit, it will search around the missile's location.
@StragusMapster: Go
Alright, so on launch, I have the ammo unit set to the paintball unit, impact effect is the paintballs dmg. Launch effect is the persistent. Persist until destroyed, periodic check .0625, periodic effect is the target check with Target:Location+ set to Source Unit, and the Target Check effect impact loaction set to Source Unit with Search Areas + set to radius .3, 360degree arc and effect set to Paintball Impact effect, which just suicides the paintball, and runs the paintball damage effect.
Does the Units mover, or anything like that effect this?
You shouldn't need any create persistent, you need to run the search from a behavior put on the missile so that it constantly uses the updated missile's position to run the search.
The mover is important.
I'll assume you want a projectile that flies indefinitely, scanning for targets, without hitting any predefined target/point. Create a "Throw" phase with a throw rotation type of "Launcher Forward", a throw vector of 0,-1,0 and other settings as you desire (speed, acceleration, random throw vector variations, etc.). Set the "Arrival test type" to "Never". You could stop the missile after a certain distance or time within the mover itself, but using the behavior's duration might be more flexible if ranges are meant to vary.
@StragusMapster: Go
Care to explain this as if you are talking to a 5yr old? lol, step by step. I am a wiz at triggers, but the data shit just, gets me. As of now, I use a trigger, on pressing the shoot, to fire the shot at a ghost unit in the direction of the shot, which gets deleted instantly so the shot travels toward the ghost unit which is gone. And travels to that point(Variable set as max range for each gun) and explodes. I just want it so if the missile picks up anything else in that path prior to its final destination, it will run its damage effect.
Ow, you really don't need to use such ghost units to fire in the desired direction... unless you want to rotate an unit's turret, which might be what you are doing.
Create a Search Area effect we'll call Foo. Leave it empty for now.
Create a behavior we'll call Bar. Set the behavior Bar's "Effect - periodic" and "Stat - period" to call the effect Foo every 0.0625 second. Add that behavior to your missile unit.
Back to our effect Foo. Set the search area(s) and filters as desired, and set the "Impact Location - value" to Source Unit. Make Foo's search return a maximum count of 1, linked to an effect of type "Set" that we'll call Moo.
Have the set effect Moo call a damage effect ( which could do splash damage in area or just to the target unit found by the search ) and a suicide effect, to destroy the missile.
This is pretty simple in the end, let me know how that goes.
@StragusMapster: Go
Ya, you lost me at "Make Foo's search return a maximum count of 1, linked to an effect of type "Set" that we'll call Moo." I appreciate the help btw. If I use the ghost unit still, will this still work? The algorithm is pretty complex and would be a bitch to switch. If so, w/e. But id like to avoid rewriting. lol.
Edit: the shot sequence uses the Launch effect at the ghost unit, how would I incorporate this into that.
Open's Foo's "Search Areas", create a new search. Set the maximum count to 1 and the effect to our set effect Moo (linked to damage and self-destruct). Also define Foo's general Search Filters to exclude stuff like Dead, Hidden, Invulnerable, Missile, Self, etc. otherwise it will collide with really anything (including itself).
Edit: The Launch effect isn't related to all this. This is the chain of effects linked to the behavior applied on your missile unit after it has launched.
@StragusMapster: Go
so now in reply to the Edit on my last post, this will automatically give this paintball unit that behavior which will trigger all on its own, w/o the persistent?
@StragusMapster: Go
its still implementing the damage and colliding with units clearly under the missile. The mover on the paintball has the Punisher Grenade on it, could this be the issue? and if so, how do I make a better or just a mover that will fix this.
So you need a basic colliding projectile in data?
You could have a look at this tutorial (text) or that one (video + text).
Just create the examples and instead of using an ability to execute the first effect, use your trigger.
Regarding first post, you need to add the behavior to the missile unit, which you can do from the "Unit" tab directly. The only problem with that is that any credit for a kill done by the behavior->search->set->effect will be granted to the missile unit, rather than the firing unit. If that matters to you, the proper solution is to add an Apply Behavior effect on the launching missile, with the missile's behavior granting kill credits to the Caster Unit... but better focus on one problem at a time : for now add the behavior to the unit directly.
It would be best to eventually make your own mover, but that shouldn't cause any issue (besides the missile colliding at the target point, rather than going on indefinitely).
I have already looked into those tutorials, believe it or not, while I was in Brazil, working on this same problem lol. They don't account for height, causing the same issue.
ok good to know, I added the behavior, I did know how to do that much lol. Which still resulted in it colliding with units under it, as well as the unit lost its model now too. Would there be any way, or interest rather, that I could just send u the map, and you take a crack at making this work? seems ineffective for me to try and keep failing at this, sadly.
And again, I need to learn to read more careful :/ Didn't realize, you were able to create a 2d colliding projectile and need a 3d collision.
I actually experimented with this issue for quite some time, and I did not find any working data solution. Validators do not seem to be able to check for unit height dynamically, if it is modified by a missile mover (or I did something wrong); any search effects are purely 2d and I did not find a working workaround.
Ergo: Use triggers to check for the height.
You could probably use a dummy impact effect, which triggers on a 2d impact, then check the height difference via trigger and execute the real impact effect eventually, but this would probably be inaccurate.
If you need an accurate 3d collision, you are probably better off simulating the entire projectile via trigger.
I think, StragusMapster overlooked the height part as well, his solution does only provide the same basic 2d collision, as far as I am aware.
The missile is colliding with units "under it" but this isn't what you want?
Do you mean the missile is on the "flying unit" plane and it's hitting ground units? That would be solved easily. But if you mean that you are targeting in 3D and you want 3D collision, the SC2 engine doesn't deal with that kind of stuff in 3D so as Kueken531 said, that would prove much more complicated...
You can post the map as attachment if you want.
@StragusMapster: Go
I will provide an example.
Two units standing next to each other, equal grounding, same unit. Unit 1 fires a shot above Unit 2's head. The missile should then in turn keep going and just explode at max distance.
Unit 2 then fires a shot right at Unit 1, it should collide with that unit since it was a hit. Unit 2 then fires another shot, aimed above Unit 1's head, this should in turn, miss and keep traveling till max distance, then blow up, as did the first shot in this example.
In the SC2 engine,all collisions, searches, proximity, line of sight, etc. is managed strictly in 2D.
Unfortunately, you won't be able to manage that stuff in 3D using the engine itself, though you could implement some hacks based on triggers if you do all the collision math on that side...