This test map should give you an idea of how it works. Unfortunately if you decide to do something like that with the data editor (which is what I did), it looks like a horrible mess whether you succeed or fail. :(
Doesn't look too bad. Wouldn't it be nice if the buffs at least had the option of displaying how many stacks where on? -_-
I believe that the object editor and trigger editor both have their place and that I should use them where they are strongest. Personally, I feel that both editors should be able to emulate each other. I'm trying to do most, if not all of it, threw the object editor, because I quite frankly believe that it should be an easy, straight forward process. I only hope that eventually we have the power to, essentially, design our own root objects (such as a redesigned Behavior - Buff Object that supports modification of its current duration, or special flags for displaying stack count on the UI) and such things like that.
Unfortunately, now it's harder to get just one, combined damage text tag to float up, opposed to 6 laying on top of each other... TT_TT
On that note, here's what I've got so far. All the abilities work, and you get to play with his Deadly Venom (Innate), Ambush (Activate), Debilitating Poison (Activate), and Exponge (Activate) abilities. There aren't any levels, but I think they show off the effects as is. Good luck deciphering how I did, but it's essentially how most people suggested.
Instead of using the "Wait" Trigger, you might want to consider setting up a global variable as type Timer, and when your hero dies, you start the timer. When the timer expires another trigger catches it and respawns your hero. Make sure you have a global variable to catch the unit that died before you start your timer.
I have a unit that applies a stackable poison debuff on any unit that it attacks, which stacks up to 6 times. The unit then has an ability which, when activated will find all units with at least 1 poison debuff stack within a given radius centered on the caster and it will remove all the poison debuffs on those units, dealing damage per stack.
I would tell you what I've got so far, but I'm hoping to get a fresh approach to this issue before I explain my mangled mess.
Bonuses: Just curious, has anyone been able to figure out how to use expressions and references within the Object Editor? Like, determining the damage amount of a Damage Effect by referring to either a static predetermined number in another object (ex: Range for a Weapon Object) or a changing number held by an object (ex: Number of stacks of a Behavior Object currently on the unit).
Something you might also consider is whether the "Behavior - Validator(Remove)" activates [and removes the behavior] when the validator returns true or when it returns false. So, when you apply BuffA and it checks the the "Has BuffB" then I would expect that if BuffB is applied, then the validator will return true, else it will return false, and I believe the field is looking for when the validator returns false.
This might not be necessary now, but later it might be good to have these validators worked out for when they're necessary.
1.You might not need trigonometry. Set the arc to 0 and the weapon can only fire straight in a line. You have to keep the enemy walking in that line though. I got another work around by giving behaviors to unit in separate lane like 1,2 .. ( when they are spawned). Then give each turret a different weapon with different validator that can only shoot unit that has the lane behavior. Turret 1 can only fire unit in lane 1( that has behavior 1) etc
Yeah, I considered doing that, but at that rate I might as well do it all with triggers. I mean, that's quite a pain and it doesn't seem like it should be necessary. I feel like I'm going to need to write my own special plugins or hack files just to get some very basic functionality... which is probably going to be more effort than it's worth...
Yeah, ironically I just came to that same fix today, but thanks for confirming that that was a working solution! So, if the maximum stack is 1, and the behavior is reapplied, does the new one replace the old one? If so, that would make my setup a little cleaner.
Thanks again! (I'll set this thread as RESOLVED if I get no replies after a day)
Ok, so I have a poison behavior buff that lasts 8 seconds, dealing 6 damage a second with a maximum of 6 stacks. I want all the currently stacked buffs on the unit to reset their durations to the 8 seconds whenever this buff is applied. However, since there seems to be no effect/ability/behavior that can modify a behaviors current duration, and I don't want to using triggers, I can't seem to figure out how I would do this.
Also, my next task will be creating an ability that when activated, all nearby units with this poison buff on them are dealt damage for each stack on them. (One ability removes them after use the other doesn't).
1. (Turrets firing down a lane) I can get the turret to stay fixed in one direction, and I can even give my weapon a fixed firing arc. The problem is that the turret will only be able to target units in a triangle with one point starting at the turret, and the two other ending at the weapons range away. This means that there are areas very close to the turret, but still in front of the turret, where the turret will not be able to acquire targets. If I could define a rectangle (which could have it's points defined relative to the turret or the map) then I would have exactly what I need. Unfortunately, I'm either going to need trigonometry to calibrate everything exactly, or I'll have to do it all in triggers, which I'd prefer to avoid.
2. I haven't tried giving the target an invalid position, but that sounds like something that just might work. Again, the problem of displaying a text message, "Select Target" and then letting the use click, is that the point wont be exact and will rarely be a valid point. In earlier tests, I tried having the builder unit build at its current position, but even when it couldn't build no error message or selection cursor came up, so I'm not sure if that method would actually work.
3. Make a (siege tank) turret point towards the point where an ability was casted when the siege tank uses a (custom) ability.
Not sure why this isn't working :(
The tank should also play it's firing animation. I think I got this part to work..
Sounds to me like you need to send messages to the siege tank's actor(s) (be it the siege tank, its attack actor or the turret actor). Whether you're working with triggers or objects, in both cases you're probably going to have to mess with the actors.
-
4. Simply refreshing the timer on all, already applied, buffs, of the same type. Ok, seriously, why are we given an "Effect - refresh" field in our Behavior - Buff objects if there aren't any effects that can modify a currently running Behavior? I mean, are we supposed to make an effect that removes then applies a new buff? What if I want a buff to stack six times, and whenever the same buff is applied, ALL the currently applied buffs their duration reset? Why is that so hard to do?
Recently I've been attempting to do some fairly simple, in theory, projects or sub-projects and I've either ran into an unbelievable amount of obstacles, or into one or two more or less impossible to work around obstacles. I've decided to list some of them here, and see if anyone can help, or if others have had similar problems.
Feel free to post your own simplistic project that seems insurmountable here as well! (try to list your project(s) sequentially, starting from the last post's ending number.)
1. Creating a turret that faces in one direction down a lane, and can only fire at units that are BOTH in its lane and not behind it. Similar to how Popcaps' Plants vs Zombies game plays.
This might be rather simple with just one lane, but once you stack 2+ lanes on top of each other, it becomes a different store.
2. Having a custom UI button which, when pressed acts just like click on a unit's command card ability to build a structure. So, you click on the button, a placement selection cursor and message pops up, you place the structure, and the structure starts building at that location.
To my understanding, this is currently impossible due to the fact that Unit - Issue Order (With Target) MUST be given a target immediately, and there is no way to get the current mouse X/Y/Z positions without clicking the mouse.
Wasn't Blizzard talking about how, with their we'll be able to make First Person Shooters? Well, I think we should remind them that DOOM's keyboard only control scheme was a pain in the ass and not a great display of a superior level designing tool. If we can't capture the current cursor position, whether it clicked or not, then we aren't going to be able to make a lot of really cool maps. Anyway we can put in a request for this?
Yeah, so far nothing seems to be working. I was hoping that I could use an Environment - Trigger to create an effect at a target location, but that doesn't seem to work as nicely as I would like either, because it still doesn't create the convenience cursor splat...
If you can have an event that is triggered every time the mouse is moved, or at least so many times a second, and a method of capturing the cursor's current X and Y positions, then we very well could. However, as it stands I haven't found a way to do either of those. I would even be satisfied with a trigger that selects the builder unit, emulates the press of a key (the hotkey of the ability) and let's you go from there; possibly forcing the player to deselect the character after that ability has been used. Again, I don't know how to do this.
I'm beginning to look into .galaxy hoping that I might be able to engineer what I need. But even if we could get the splat actors to follow the cursor, we would still need to come up with the mathematics that cause the selected point to be one where the builder can build, and making the splat stick to the grid. All this would be so much simpler if we did it threw a unit's build ability.
Ah, yes, making the unit build right where it's standing is easy, but I want to click on the button and have the building placement footprint come up on my cursor, move my cursor to the place I want the building, click and have the builder go at it. It would be as the the player had a Command-Card of his/her own that would work just like a unit's Command-Card. Click ability, select target, process actions. Does that make sense?
I am grateful of your help though! I fear that I might have to go through the pain of reverse engineering how abilities work, and I'm just not willing to do that...
0
@Slypoos: Go
Ha! You caught me. Yes, I'm trying to recreate the champion Twitch, The Plague Rat from the League of Legends MOBA game. :3
Doesn't look too bad. Wouldn't it be nice if the buffs at least had the option of displaying how many stacks where on? -_-
@xenrathe: Go
I believe that the object editor and trigger editor both have their place and that I should use them where they are strongest. Personally, I feel that both editors should be able to emulate each other. I'm trying to do most, if not all of it, threw the object editor, because I quite frankly believe that it should be an easy, straight forward process. I only hope that eventually we have the power to, essentially, design our own root objects (such as a redesigned Behavior - Buff Object that supports modification of its current duration, or special flags for displaying stack count on the UI) and such things like that.
Unfortunately, now it's harder to get just one, combined damage text tag to float up, opposed to 6 laying on top of each other... TT_TT
@BrotherLaz: Go
On that note, here's what I've got so far. All the abilities work, and you get to play with his Deadly Venom (Innate), Ambush (Activate), Debilitating Poison (Activate), and Exponge (Activate) abilities. There aren't any levels, but I think they show off the effects as is. Good luck deciphering how I did, but it's essentially how most people suggested.
(I'll be uploading it to my profile soon)
0
@Eiviyn: Go
Instead of using the "Wait" Trigger, you might want to consider setting up a global variable as type Timer, and when your hero dies, you start the timer. When the timer expires another trigger catches it and respawns your hero. Make sure you have a global variable to catch the unit that died before you start your timer.
0
@RileyStarcraft: Go
Perfect!
Thanks again for the help!
[RESOLVED]
0
I have a unit that applies a stackable poison debuff on any unit that it attacks, which stacks up to 6 times. The unit then has an ability which, when activated will find all units with at least 1 poison debuff stack within a given radius centered on the caster and it will remove all the poison debuffs on those units, dealing damage per stack.
I would tell you what I've got so far, but I'm hoping to get a fresh approach to this issue before I explain my mangled mess.
Bonuses: Just curious, has anyone been able to figure out how to use expressions and references within the Object Editor? Like, determining the damage amount of a Damage Effect by referring to either a static predetermined number in another object (ex: Range for a Weapon Object) or a changing number held by an object (ex: Number of stacks of a Behavior Object currently on the unit).
Thanks!
0
@Cryfor: Go
Something you might also consider is whether the "Behavior - Validator(Remove)" activates [and removes the behavior] when the validator returns true or when it returns false. So, when you apply BuffA and it checks the the "Has BuffB" then I would expect that if BuffB is applied, then the validator will return true, else it will return false, and I believe the field is looking for when the validator returns false.
This might not be necessary now, but later it might be good to have these validators worked out for when they're necessary.
Hope that helps!
0
Yeah, I considered doing that, but at that rate I might as well do it all with triggers. I mean, that's quite a pain and it doesn't seem like it should be necessary. I feel like I'm going to need to write my own special plugins or hack files just to get some very basic functionality... which is probably going to be more effort than it's worth...
0
@RileyStarcraft: Go
Yeah, ironically I just came to that same fix today, but thanks for confirming that that was a working solution! So, if the maximum stack is 1, and the behavior is reapplied, does the new one replace the old one? If so, that would make my setup a little cleaner.
Thanks again! (I'll set this thread as RESOLVED if I get no replies after a day)
0
Ok, so I have a poison behavior buff that lasts 8 seconds, dealing 6 damage a second with a maximum of 6 stacks. I want all the currently stacked buffs on the unit to reset their durations to the 8 seconds whenever this buff is applied. However, since there seems to be no effect/ability/behavior that can modify a behaviors current duration, and I don't want to using triggers, I can't seem to figure out how I would do this.
Also, my next task will be creating an ability that when activated, all nearby units with this poison buff on them are dealt damage for each stack on them. (One ability removes them after use the other doesn't).
0
1. (Turrets firing down a lane) I can get the turret to stay fixed in one direction, and I can even give my weapon a fixed firing arc. The problem is that the turret will only be able to target units in a triangle with one point starting at the turret, and the two other ending at the weapons range away. This means that there are areas very close to the turret, but still in front of the turret, where the turret will not be able to acquire targets. If I could define a rectangle (which could have it's points defined relative to the turret or the map) then I would have exactly what I need. Unfortunately, I'm either going to need trigonometry to calibrate everything exactly, or I'll have to do it all in triggers, which I'd prefer to avoid.
2. I haven't tried giving the target an invalid position, but that sounds like something that just might work. Again, the problem of displaying a text message, "Select Target" and then letting the use click, is that the point wont be exact and will rarely be a valid point. In earlier tests, I tried having the builder unit build at its current position, but even when it couldn't build no error message or selection cursor came up, so I'm not sure if that method would actually work.
Sounds to me like you need to send messages to the siege tank's actor(s) (be it the siege tank, its attack actor or the turret actor). Whether you're working with triggers or objects, in both cases you're probably going to have to mess with the actors.
-4. Simply refreshing the timer on all, already applied, buffs, of the same type. Ok, seriously, why are we given an "Effect - refresh" field in our Behavior - Buff objects if there aren't any effects that can modify a currently running Behavior? I mean, are we supposed to make an effect that removes then applies a new buff? What if I want a buff to stack six times, and whenever the same buff is applied, ALL the currently applied buffs their duration reset? Why is that so hard to do?
0
Recently I've been attempting to do some fairly simple, in theory, projects or sub-projects and I've either ran into an unbelievable amount of obstacles, or into one or two more or less impossible to work around obstacles. I've decided to list some of them here, and see if anyone can help, or if others have had similar problems.
Feel free to post your own simplistic project that seems insurmountable here as well! (try to list your project(s) sequentially, starting from the last post's ending number.)
1. Creating a turret that faces in one direction down a lane, and can only fire at units that are BOTH in its lane and not behind it. Similar to how Popcaps' Plants vs Zombies game plays.
2. Having a custom UI button which, when pressed acts just like click on a unit's command card ability to build a structure. So, you click on the button, a placement selection cursor and message pops up, you place the structure, and the structure starts building at that location.
More to come! (unless nobody cares...)
0
Wasn't Blizzard talking about how, with their we'll be able to make First Person Shooters? Well, I think we should remind them that DOOM's keyboard only control scheme was a pain in the ass and not a great display of a superior level designing tool. If we can't capture the current cursor position, whether it clicked or not, then we aren't going to be able to make a lot of really cool maps. Anyway we can put in a request for this?
0
Yeah, so far nothing seems to be working. I was hoping that I could use an Environment - Trigger to create an effect at a target location, but that doesn't seem to work as nicely as I would like either, because it still doesn't create the convenience cursor splat...
0
If you can have an event that is triggered every time the mouse is moved, or at least so many times a second, and a method of capturing the cursor's current X and Y positions, then we very well could. However, as it stands I haven't found a way to do either of those. I would even be satisfied with a trigger that selects the builder unit, emulates the press of a key (the hotkey of the ability) and let's you go from there; possibly forcing the player to deselect the character after that ability has been used. Again, I don't know how to do this.
I'm beginning to look into .galaxy hoping that I might be able to engineer what I need. But even if we could get the splat actors to follow the cursor, we would still need to come up with the mathematics that cause the selected point to be one where the builder can build, and making the splat stick to the grid. All this would be so much simpler if we did it threw a unit's build ability.
0
Ah, yes, making the unit build right where it's standing is easy, but I want to click on the button and have the building placement footprint come up on my cursor, move my cursor to the place I want the building, click and have the builder go at it. It would be as the the player had a Command-Card of his/her own that would work just like a unit's Command-Card. Click ability, select target, process actions. Does that make sense?
I am grateful of your help though! I fear that I might have to go through the pain of reverse engineering how abilities work, and I'm just not willing to do that...
Thanks again for any assistance!
0
I guess this is a harder problem that it sounds...