There is actually a really simple way to do this.
Just create an invisible dummy unit every x seconds, say every 1 seconds a dummy unit is created at the position of the hero, then calculate how long it takes for the creep to recede.
Say it takes 5 seconds for it to recede. So give the dummy unit a timed life that expires in 5 seconds.
Then any other ability you have that generates creep will also have to create a dummy unit as well at that location.
Then when you activate your "wave" ability, simply have an area search that finds the closest dummy unit to the hero, it then kills the dummy unit, triggers whatever effect you want, and then loops back to the area search to find the next closest dummy unit to the one that just died. (You can look up the chain lightning tutorial for a similar idea of how to get things to chain like this)
If the creep can only spread out to a radius of say 5, then you can assume that any adjoining creep will have a dummy unit within 5 radius of the last one.
If you want an omnidirectional expansion, you could trigger all dummy units within 5 radius of the hero, then all dummy units within 5 radius of the previous ones, ect..
As far as the effect goes, it would take a bit of calculation, for instance, you might have to change the radius based on how much timed life the unit has left. So if it only has 2 seconds left of it's 5 second life, the creep is most likely only 2 radius away from it. Or as previously mentioned, you could just at that point validate if the unit getting hit by the chain effect is on creep or not.
So first off, I'm not exactly sure where to start this thread so I picked Miscellaneous.
So I have a HotS beta key, and I am having some problems updating my game/editor dependencies. Recently a new balance update came out(Balance Update 11). And a number of unit changes happened.
So I started the game up, launcher opened and said "Game is up to date."
Which I thought was weird, since there was no downloading at all. But really what I wanted was to make a melee map, so I started up the editor. Loaded the SwarmMulti dependency which is what should hold the information for the muliplayer data. I immediately look in the data editor and find that none of the new balance changes are updated?
So I run a good old Repair Tool from the launcher, but it doesn't find any out of date files.
So now I am really confused. I have a client saying it's updated and refusing to patch. And I have an editor with outdated dependencies.
Next thing I figured, was there would be no way the game would let me play on ladder without having the correct data. So I start up HotS and start a ladder match. It find's me an opponent and loads the game up. When I get into the game, I notice that all the updates are there and working fine.
Now that isn't surprising, its the map's that hold the gameplay data. My question is why aren't the dependencies being updated with the client?
It says in the editor when selecting dependencies that the local file will override the battle.net file. But in this case, what I am looking for is the newest battle.net file.
Now, I said balance update 11, however I noticed in balance update 10 that my game data wasn't updated for the changes in that update either. I don't actually know which version of the game my dependencies are actually updated with. I believe the last dependency update I downloaded was Update 8.
I tired uninstalling the game(including the data in the documents folder) and reinstalling, however that didn't give me the newest SwarmMulti mod file either(A fresh one was downloaded from scratch, but it was outdated as well). I can only assume that the people over at blizzard are simply not updating the dependencies or editor files? Which isn't surprising, us mapmakers have never gotten the most attention from blizzard. But still, it makes it hard to create melee maps when we don't have the newest patches available to us.
Has anyone else had this problem?
If anyone else with access to the HotS beta could check their editor I would appreciate it. The easiest ways I have found to check for the Balance Update 11 changes is to look in the data editor for the Reaper - P-38 Scythe Guass Pistol (Damage) Effect. It should have the Combat: Attribute Bonus changed from +5 to light to 0.
If you want to check for Balance Update 10 same thing, except look for the Widow Mine Explode Direct Effect. The Combat: Amount should be 125, but I have 160 still.
My client data appears to be up to date as of the Balance update 8 and that appears to be what blizzard is giving out on their patch servers to me...
Alright, so figured one thing out. According to ProzaicMuze...
"you must have a value for BOTH vectors even if using the default forward/facing (0.0, -1.0, 0.0) or up/axis (0.0, 0.0, -1.0). If either field is left with (0.0, 0.0, 0.0) the attachment will spin sporadically as the attachment Host moves."
I wasn't using any value's for the up/axis field. So that is probably why it was randomly picking directions.
Update:
There is another mapster thread here... that is basically exactly what I want, but instead of Vortex I wanted the FeedbackImpact model. I even went as far as to follow the instructions in that thread and couldn't get it to work for me.
@Spoolofwhool: Go
I want the FeedbackImpact effect to appear to move horizontally rather then come down vertically and to be able to turn it in different directions.
Currently it's being created via Event:Events+ with UnitBirth.Void Ray - Create
The Actor type is Model based on ModelAnimationStyleOneShot.
@TheAlmaity: Go
Yah, I have used the "Is Local". It definitely does effect the rotation of it, but it just appears randomly. Like if I place 3 dummy units facing the same direction all 3 of the Feedback's will go in different directions regardless of the direction the host unit is facing.
Let me explain what I want first.
So there is a model called FeedbackImpact that is used for the feedback skill on the high templar. It's basically a blue pillar of energy.
What I want is rather then having it come down in a pillar, I want it to go horizontally(Like the hellion attack does for instance).
My first step I created a Explicit Rotation Site Op, adjusted the up Z, and attached it to the actor. So far so good. I had it going horizontally.
The problem was that I couldn't change what direction it faced(I was using triggers to send Actor Messages to change facing). I tried messing around with rotation as well, I couldn't find a way to get it to point in the direction I wanted.
So my second step, I figured I could use a unit's facing to turn the direction of the model. I made a dummy unit(based off a marine), attached my feedback model to the marines origin hardpoint. However that didn't work. It just sat facing the same direction regardless of how I turned or moved the marine.
I assumed it might have something to do with using the origin hardpoint, however most of the other hardpoints for the marine are effected by animations moving around too much, so I changed dummy units to a void ray. I used it's weapon01 hardpoint(the very tip of the voidray). Perfectly static point, never moves, always faces forward, and is part of the unit, perfect.
But still no luck, it wont fire straight. I'm pretty certain I am missing something simple. I have been over the beginners and advanced tutorial on site operations several times. I have even gotten it to work flawlessly in the cutscene editor by attaching the two models and rotating the feedback one. I guess I'm just not seeing what it is I need to adjust.
If anyone could help me it would be very much appreciated.
So basically, checks the number of detectors owned by the computer withing 10 range of your closest unit, if it finds one it orders his units to attack any and all of the nearest units including cloaked/burrowed, if it doesn't find a detector withing range 10 of your closest unit it orders the computers units to attack toward the closest unit excluding burrowed/cloaked.
I think that will work for now. If there is any vulnerability or exploitable nature of this trigger I don't immediately see it. It's working great so far. Thanks again for your help :)
Now, the problem with this trigger is if the closest unit is like say, a burrowed roach, the computer units will just move to that position and sit there. I thought that using "Required: Visible" would filter out cloaked/burrowed units. However apparently that filter doesn't work that way, or perhaps it's because the way the trigger is setup it doesn't know which players visibility to check? Either way it doesn't work.
The alternative I am using, is simply telling the units to attack toward the other base, however then the computer army will just ignore your units if your not in their direct attack path. Which is absolutely not what I want considering flanking will occur fairly often.
Now, because the computer player can have detection sometimes, its important that cloaked/burrowed units are attacked if/when detection is around, and ignored the rest of the time.
So does anyone know a way to filter out cloaked or burrowed units but only when there is no detection present? My current thought is to build it around 3-4 conditions like "closest unit has behavior burrowed" or unit filters checking for detectors. But I really don't think it needs to be that complex. Especially since this is a trigger that will be running fairly often to update the current objectives of the computers units.
I made a hero unit awhile back for a map I was working on that functioned almost exactly like this.
What I did was... Gave it a hanger and an interceptor(used a phoenix model for mine). Told it to have a super short leash range, but a normal size weapon range, then made sure it couldn't return to the "carrier" which was a high templar. Worked great, main unit got kill credit, it faced the targets, no hosting or site op's and attacked stuff when it got in range or was targeted by the high templar.
I'm just glad we get tooltips at all.
The less user friendly an editor is, the more dedicated the modders or mapmakers need to be to learn it.
Which in turn increases the overall quality of custom maps that end up being uploaded.
And for those who are interested in learning what each field does, there are wonderful resources like this site that make it a breeze. Most of the fields have very detailed information here on the Wiki, and even some have detailed examples of how to use the field.
Well, this might be an overly simplistic solution. But if say you have a 9x9 room, I would just run a periodic trigger checking every second to see whats in the room and then when the correct number of buildings are in there, do something about it... IE a trigger like:
event:
every 1 seconds of real time
action:
for each spawning pool in building room add 1 to variable spawning pool
for each gateway in building room add 1 to variable gateway
ect...
and lastly a long trigger of if statements to make everything happen.
If
variable spawning pool = 9
then
create 3 zerglings
else
If
variable spawning pool = 3
variable gateway = 6
then
create 1 zergling
create 2 zealots
ect... just keep putting the next if statement inside the else statement of the previous one with the else of the final if statement clearing all the variables if it runs though all of them and no combination is found. Soo:
else:
set variable spawning pool = 0
set variable gateway = 0
Obviously this does not account for building placement, and nothing would happen until one of the if-then-else statements became true.
The "complicated" part would be instead of just checking a single region covering the whole building room for whats inside, there would be 9 regions in the building room and checking them all independently. Then if region a b and c all had spawning pools then variable spawning pool = 3 ect... That just becomes more grunt work of if statements then complex though.
0
There is actually a really simple way to do this. Just create an invisible dummy unit every x seconds, say every 1 seconds a dummy unit is created at the position of the hero, then calculate how long it takes for the creep to recede. Say it takes 5 seconds for it to recede. So give the dummy unit a timed life that expires in 5 seconds. Then any other ability you have that generates creep will also have to create a dummy unit as well at that location.
Then when you activate your "wave" ability, simply have an area search that finds the closest dummy unit to the hero, it then kills the dummy unit, triggers whatever effect you want, and then loops back to the area search to find the next closest dummy unit to the one that just died. (You can look up the chain lightning tutorial for a similar idea of how to get things to chain like this)
If the creep can only spread out to a radius of say 5, then you can assume that any adjoining creep will have a dummy unit within 5 radius of the last one.
If you want an omnidirectional expansion, you could trigger all dummy units within 5 radius of the hero, then all dummy units within 5 radius of the previous ones, ect..
As far as the effect goes, it would take a bit of calculation, for instance, you might have to change the radius based on how much timed life the unit has left. So if it only has 2 seconds left of it's 5 second life, the creep is most likely only 2 radius away from it. Or as previously mentioned, you could just at that point validate if the unit getting hit by the chain effect is on creep or not.
0
So first off, I'm not exactly sure where to start this thread so I picked Miscellaneous.
So I have a HotS beta key, and I am having some problems updating my game/editor dependencies. Recently a new balance update came out(Balance Update 11). And a number of unit changes happened.
So I started the game up, launcher opened and said "Game is up to date." Which I thought was weird, since there was no downloading at all. But really what I wanted was to make a melee map, so I started up the editor. Loaded the SwarmMulti dependency which is what should hold the information for the muliplayer data. I immediately look in the data editor and find that none of the new balance changes are updated? So I run a good old Repair Tool from the launcher, but it doesn't find any out of date files.
So now I am really confused. I have a client saying it's updated and refusing to patch. And I have an editor with outdated dependencies. Next thing I figured, was there would be no way the game would let me play on ladder without having the correct data. So I start up HotS and start a ladder match. It find's me an opponent and loads the game up. When I get into the game, I notice that all the updates are there and working fine.
Now that isn't surprising, its the map's that hold the gameplay data. My question is why aren't the dependencies being updated with the client?
It says in the editor when selecting dependencies that the local file will override the battle.net file. But in this case, what I am looking for is the newest battle.net file. Now, I said balance update 11, however I noticed in balance update 10 that my game data wasn't updated for the changes in that update either. I don't actually know which version of the game my dependencies are actually updated with. I believe the last dependency update I downloaded was Update 8.
I tired uninstalling the game(including the data in the documents folder) and reinstalling, however that didn't give me the newest SwarmMulti mod file either(A fresh one was downloaded from scratch, but it was outdated as well). I can only assume that the people over at blizzard are simply not updating the dependencies or editor files? Which isn't surprising, us mapmakers have never gotten the most attention from blizzard. But still, it makes it hard to create melee maps when we don't have the newest patches available to us.
Has anyone else had this problem? If anyone else with access to the HotS beta could check their editor I would appreciate it. The easiest ways I have found to check for the Balance Update 11 changes is to look in the data editor for the Reaper - P-38 Scythe Guass Pistol (Damage) Effect. It should have the Combat: Attribute Bonus changed from +5 to light to 0. If you want to check for Balance Update 10 same thing, except look for the Widow Mine Explode Direct Effect. The Combat: Amount should be 125, but I have 160 still.
My client data appears to be up to date as of the Balance update 8 and that appears to be what blizzard is giving out on their patch servers to me...
0
Alright, so figured one thing out. According to ProzaicMuze...
"you must have a value for BOTH vectors even if using the default forward/facing (0.0, -1.0, 0.0) or up/axis (0.0, 0.0, -1.0). If either field is left with (0.0, 0.0, 0.0) the attachment will spin sporadically as the attachment Host moves."
I wasn't using any value's for the up/axis field. So that is probably why it was randomly picking directions.
0
Alright, so without _Selectable they consistently appear along the X axis of the map regardless of the orientation/facing of the dummy unit.
So it does take away the random-ness of them, but I still can't turn them.
Edit: They appear the same way with or without "Is Local" when _Selectable is turned off.
0
Hosting: Host + _Selectable:Implicit:Implicit:(None):Disabled
_Selectable under Subject - Alias is the only thing I changed for the Host+.
0
When "Is Local" is enabled for the Site Operation, then yes, they point in random directions completely independantly from the dummy.
0
Update: There is another mapster thread here... that is basically exactly what I want, but instead of Vortex I wanted the FeedbackImpact model. I even went as far as to follow the instructions in that thread and couldn't get it to work for me.
0
@Spoolofwhool: Go I want the FeedbackImpact effect to appear to move horizontally rather then come down vertically and to be able to turn it in different directions. Currently it's being created via Event:Events+ with UnitBirth.Void Ray - Create The Actor type is Model based on ModelAnimationStyleOneShot.
@TheAlmaity: Go Yah, I have used the "Is Local". It definitely does effect the rotation of it, but it just appears randomly. Like if I place 3 dummy units facing the same direction all 3 of the Feedback's will go in different directions regardless of the direction the host unit is facing.
0
Let me explain what I want first. So there is a model called FeedbackImpact that is used for the feedback skill on the high templar. It's basically a blue pillar of energy. What I want is rather then having it come down in a pillar, I want it to go horizontally(Like the hellion attack does for instance).
My first step I created a Explicit Rotation Site Op, adjusted the up Z, and attached it to the actor. So far so good. I had it going horizontally. The problem was that I couldn't change what direction it faced(I was using triggers to send Actor Messages to change facing). I tried messing around with rotation as well, I couldn't find a way to get it to point in the direction I wanted.
So my second step, I figured I could use a unit's facing to turn the direction of the model. I made a dummy unit(based off a marine), attached my feedback model to the marines origin hardpoint. However that didn't work. It just sat facing the same direction regardless of how I turned or moved the marine. I assumed it might have something to do with using the origin hardpoint, however most of the other hardpoints for the marine are effected by animations moving around too much, so I changed dummy units to a void ray. I used it's weapon01 hardpoint(the very tip of the voidray). Perfectly static point, never moves, always faces forward, and is part of the unit, perfect.
But still no luck, it wont fire straight. I'm pretty certain I am missing something simple. I have been over the beginners and advanced tutorial on site operations several times. I have even gotten it to work flawlessly in the cutscene editor by attaching the two models and rotating the feedback one. I guess I'm just not seeing what it is I need to adjust.
If anyone could help me it would be very much appreciated.
0
Alright, got it. Ty for help.
Incase anyone in the future is looking for something similar, here is what I came up with.
So basically, checks the number of detectors owned by the computer withing 10 range of your closest unit, if it finds one it orders his units to attack any and all of the nearest units including cloaked/burrowed, if it doesn't find a detector withing range 10 of your closest unit it orders the computers units to attack toward the closest unit excluding burrowed/cloaked.
I think that will work for now. If there is any vulnerability or exploitable nature of this trigger I don't immediately see it. It's working great so far. Thanks again for your help :)
0
Hmm, that does seem reasonable. I guess I am just overly concerned with players flanking with 2-3 dt's and then the computer not responding to it.
0
So I ran into a problem with my current project and I'm stuck. Been working on trigger variations for like 2 days and can't get it.
What I want is for a computer army to attack the closest unit to it's base. Now that is a pretty simple trigger... What I had was this:
Now, the problem with this trigger is if the closest unit is like say, a burrowed roach, the computer units will just move to that position and sit there. I thought that using "Required: Visible" would filter out cloaked/burrowed units. However apparently that filter doesn't work that way, or perhaps it's because the way the trigger is setup it doesn't know which players visibility to check? Either way it doesn't work.
The alternative I am using, is simply telling the units to attack toward the other base, however then the computer army will just ignore your units if your not in their direct attack path. Which is absolutely not what I want considering flanking will occur fairly often.
Now, because the computer player can have detection sometimes, its important that cloaked/burrowed units are attacked if/when detection is around, and ignored the rest of the time.
So does anyone know a way to filter out cloaked or burrowed units but only when there is no detection present? My current thought is to build it around 3-4 conditions like "closest unit has behavior burrowed" or unit filters checking for detectors. But I really don't think it needs to be that complex. Especially since this is a trigger that will be running fairly often to update the current objectives of the computers units.
0
I made a hero unit awhile back for a map I was working on that functioned almost exactly like this.
What I did was... Gave it a hanger and an interceptor(used a phoenix model for mine). Told it to have a super short leash range, but a normal size weapon range, then made sure it couldn't return to the "carrier" which was a high templar. Worked great, main unit got kill credit, it faced the targets, no hosting or site op's and attacked stuff when it got in range or was targeted by the high templar.
0
I'm just glad we get tooltips at all. The less user friendly an editor is, the more dedicated the modders or mapmakers need to be to learn it.
Which in turn increases the overall quality of custom maps that end up being uploaded.
And for those who are interested in learning what each field does, there are wonderful resources like this site that make it a breeze. Most of the fields have very detailed information here on the Wiki, and even some have detailed examples of how to use the field.
0
Well, this might be an overly simplistic solution. But if say you have a 9x9 room, I would just run a periodic trigger checking every second to see whats in the room and then when the correct number of buildings are in there, do something about it... IE a trigger like:
event: every 1 seconds of real time action: for each spawning pool in building room add 1 to variable spawning pool for each gateway in building room add 1 to variable gateway ect...
and lastly a long trigger of if statements to make everything happen.
If variable spawning pool = 9 then create 3 zerglings else If variable spawning pool = 3 variable gateway = 6 then create 1 zergling create 2 zealots
ect... just keep putting the next if statement inside the else statement of the previous one with the else of the final if statement clearing all the variables if it runs though all of them and no combination is found. Soo: else: set variable spawning pool = 0 set variable gateway = 0
Obviously this does not account for building placement, and nothing would happen until one of the if-then-else statements became true. The "complicated" part would be instead of just checking a single region covering the whole building room for whats inside, there would be 9 regions in the building room and checking them all independently. Then if region a b and c all had spawning pools then variable spawning pool = 3 ect... That just becomes more grunt work of if statements then complex though.