What is the point value of player 1's kills when that happens? If he has 98000 points of kills, then the action is doing exactly as you specified. You may be confused because you weren't expecting such a high value. Point value of kills is NOT the number of kills that a player has. If you look at the "Score - Kill" field of a unit, it tells you how many points the unit is worth. The point value of kills is just the sum of all of these for the units you've killed.
The issue with creating a weapon is that it will select a target and then keep firing at that target until it is out of range or prevented by some other command or effect. You can also choose the target by issuing an attack order.
The Phoenix Fire ability in Warcraft 3 does not choose a target to focus on and you can't pick a target for it, it just shoots at anything in range. If you want it to work like this, you have to use a Search Area effect.
I'm trying to create a behavior for a unit that reduces all Splash damage he takes by 50%. I can't find any field that can do this. The best I was able to do was give the unit a Damage Response to splash damage that causes him to gain .5 life for each damage dealt. This is a problem however, as when the unit takes splash damage from two sources simultaneously, he only responds to one of them. He also is out of luck if the damage is fatal, since he will be dead before the damage response gives him extra life.
If there is some way to simply modify the amount of damage that a unit takes from a certain damage type, that would be ideal.
Terrain automatically receives certain flags based on the location of certain cliffs and ramps. While you can add more flags to the terrain, you can't take away the flags it's already got.
I believe there is a workaround with terrain objects, which are able to have their own pathing which overrides the pathing of terrain. There's a tutorial somewhere for making a working bridge, and the same concept should work for putting building pathing on a ramp.
Just poking around a bit... As far as I can tell, the BunkerBuild actor is created when the Bunker actor responds to the event "UnitConstruction.Bunker.Start." Duplicate this event response and change Bunker to the duplicated units, and see if that works.
You don't need a different trigger for every unit and per player, just use Switches.
In my tower defense, the number of lives you lose per leak varies depending on the unit that leaked. The trigger that runs when a unit leaks has two local variables, an integer that determines the player leaking, and an integer determining the "value" of the unit that leaked.
I run one switch which check the region and determines the player.
I run another switch which checks the unit type and determines the value.
Then I just adjust the lives of the player by the value.
Step 1) Open the Data Window Step 2) Ctrl+Shift+H (Shows Advanced Values) Step 3) Select the Weapon to modify, select the Damage Effect. Step 4) Set the "Combat - Amount" value to the minimum damage. Step 5) Set the "Effect - Random" value to the delta damage.
For example, if you modified the "Battlecruiser AG - ATS Laser Battery", and set the "Effect - Random" value to 10, your Battlecruiser will now deal 10-20 damage.
Done. ^_^
Note: This has 0 triggers, hurrah!
That's one way to do it, but if you want a non-uniform distribution, you will have to use multiple damage effects, or use triggers.
If you are a math geek like me and want the spawns to be independent (meaning you can't assume that a spawn is more or less likely depending on when another spawn occured) then you need to use an exponential distribution. There's no function that lets you sample from a distribution, but if you have the right expression then you can do it.
I'll spare you the math involved, but basically you need to generate a random real between 0 and 1, let's call this r.
To sample from the exponential distribution, simply use this expression:
-ln(1-r)/x
x is usually a lambda but I don't know how to type a lambda so I'm typing x. x is the average amount of occurences per a unit of time. It uses the same unit as the expression above, so if you are using this expression to determine the number of seconds between spawns, an x of two will give you an average of 2 spawns per second. If you want, say, one spawn every 10 seconds, you can set x to 1/10.
Be warned that this distribution has no maximum value. Even if you set x to a very high number, it is possible to go hours without a spawn (you did say you wanted it to be RANDOM after all). However, such an occurence would be unbelievably rare.
TI'm not sure why you are having an issue. Giving the Immortal a placement footprint should not prevent it from moving.
Edit: sorry, I didn't read it correctly. I see that you want to give it the ability to move after a certain duration. You could use a morph like the spine crawler, but an easier way would just be with triggers or with a behavior. You can easily adjust a unit's movement speed with the "Set Unit Property" action.
You can do it without the ability simply by making a behavior with a duration and giving it to the unit in the data editor, as long as the behavior is only applied when the unit is first created of course.
I'm pretty sure it's impossible.
Visually, Creep does not form a "layer" over the terrain texture. It simply replaces it. Even if you change the Creep's texture to one that has alpha, the alpha areas will just be black.
The terrain "under" the creep is simply not rendered at all, regardless of the creep texture.
0
@MapCrafter: Go
What is the point value of player 1's kills when that happens? If he has 98000 points of kills, then the action is doing exactly as you specified. You may be confused because you weren't expecting such a high value. Point value of kills is NOT the number of kills that a player has. If you look at the "Score - Kill" field of a unit, it tells you how many points the unit is worth. The point value of kills is just the sum of all of these for the units you've killed.
0
@xenrathe: Go
The issue with creating a weapon is that it will select a target and then keep firing at that target until it is out of range or prevented by some other command or effect. You can also choose the target by issuing an attack order.
The Phoenix Fire ability in Warcraft 3 does not choose a target to focus on and you can't pick a target for it, it just shoots at anything in range. If you want it to work like this, you have to use a Search Area effect.
0
@zifoon: Go
Thank you! I knew I had seen something like this before, but there were so many "Damage Response" fields that my eyes started to gloss over...
0
I'm trying to create a behavior for a unit that reduces all Splash damage he takes by 50%. I can't find any field that can do this. The best I was able to do was give the unit a Damage Response to splash damage that causes him to gain .5 life for each damage dealt. This is a problem however, as when the unit takes splash damage from two sources simultaneously, he only responds to one of them. He also is out of luck if the damage is fatal, since he will be dead before the damage response gives him extra life.
If there is some way to simply modify the amount of damage that a unit takes from a certain damage type, that would be ideal.
0
@Shakeslol: Go
A unit's speed can be called using the "Unit Property" function. I'm not aware of a way to reference other values in the data editor.
0
@jakewalsh123: Go
Terrain automatically receives certain flags based on the location of certain cliffs and ramps. While you can add more flags to the terrain, you can't take away the flags it's already got. I believe there is a workaround with terrain objects, which are able to have their own pathing which overrides the pathing of terrain. There's a tutorial somewhere for making a working bridge, and the same concept should work for putting building pathing on a ramp.
0
@Maul2: Go
Just poking around a bit... As far as I can tell, the BunkerBuild actor is created when the Bunker actor responds to the event "UnitConstruction.Bunker.Start." Duplicate this event response and change Bunker to the duplicated units, and see if that works.
0
@Bixybixy2: Go
I have gotten this a few times. I just keep trying and eventually it works.
0
@MapCrafter: Go
You don't need a different trigger for every unit and per player, just use Switches.
In my tower defense, the number of lives you lose per leak varies depending on the unit that leaked. The trigger that runs when a unit leaks has two local variables, an integer that determines the player leaking, and an integer determining the "value" of the unit that leaked.
I run one switch which check the region and determines the player.
I run another switch which checks the unit type and determines the value.
Then I just adjust the lives of the player by the value.
0
That's one way to do it, but if you want a non-uniform distribution, you will have to use multiple damage effects, or use triggers.
0
@coolness5545: Go
If you are a math geek like me and want the spawns to be independent (meaning you can't assume that a spawn is more or less likely depending on when another spawn occured) then you need to use an exponential distribution. There's no function that lets you sample from a distribution, but if you have the right expression then you can do it.
I'll spare you the math involved, but basically you need to generate a random real between 0 and 1, let's call this r. To sample from the exponential distribution, simply use this expression: -ln(1-r)/x
x is usually a lambda but I don't know how to type a lambda so I'm typing x. x is the average amount of occurences per a unit of time. It uses the same unit as the expression above, so if you are using this expression to determine the number of seconds between spawns, an x of two will give you an average of 2 spawns per second. If you want, say, one spawn every 10 seconds, you can set x to 1/10.
Be warned that this distribution has no maximum value. Even if you set x to a very high number, it is possible to go hours without a spawn (you did say you wanted it to be RANDOM after all). However, such an occurence would be unbelievably rare.
0
@chickenballs02: Go
TI'm not sure why you are having an issue. Giving the Immortal a placement footprint should not prevent it from moving.
Edit: sorry, I didn't read it correctly. I see that you want to give it the ability to move after a certain duration. You could use a morph like the spine crawler, but an easier way would just be with triggers or with a behavior. You can easily adjust a unit's movement speed with the "Set Unit Property" action.
0
@Robbepop: Go
You can do it without the ability simply by making a behavior with a duration and giving it to the unit in the data editor, as long as the behavior is only applied when the unit is first created of course.
0
I'm pretty sure it's impossible. Visually, Creep does not form a "layer" over the terrain texture. It simply replaces it. Even if you change the Creep's texture to one that has alpha, the alpha areas will just be black. The terrain "under" the creep is simply not rendered at all, regardless of the creep texture.
0
@Idralol: Go
You want the "Pick Each Unit in Unit Group" function.