🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!
A unit indexer is simple to use. Briber's unit indexer is the most used one. Then it's pretty simple.
damage event becomes equal to X
if checkIfDamageIsPhysical
if damageDealer has ability X
set someInteger[custom value of damageDealer] = someInteger[custom value of damageDealer] + 1
if someInteger[custom value of damageDealer] bigger than or equal to 3
then
set someInteger[custom value of damageDealer] = 0
give hp
There are two ways to do it.
The easiest way is to run an updater for every nearby hero.
The other way is to run events when a hero enters/leaves range.
The updater is slightly more performance heavy and has a small delay between the updates but those arent really a big problem.
Just give your hero a hidden passive EOT with an interval of 0.25 to 0.5 seconds (your preference).
Every interval, you pick every units in 500 range and you give the hero an ability based on attack bonus or armor bonus (item abilities) and set the level to the number of enemy heroes and the number of allied heroes.
These numbers are global integer variables which you increment by one if the picked unit is an allied/enemy hero.
(Make sure that you remove the hero with the EOT on him from the group before you loop through it.)
When the global integer is 0, you remove the corresponding attack/armor bonus ability.
Oh!
I'll try to fix it today if I've got the time otherwise you'll have to wait a few weeks (I'm going study in another town without my big computer so no JNGP because Linux on small).
The non-array variables are used as temp variables so it is ok to use those in other triggers.
In short, you can use those variables in any trigger just make sure that you set a new value first like the LT_X, Y, Z.
Hmmmm, I don't get what you mean. Holy Nova Group??
In reply to your previous VM, yes put the dummy (and set dummy variable) on top before picking Units in the group
You didn't Set TempDummy = Last Created Unit.
Plus make sure the Slow Ability has 0 cooldown.
If you are still having difficulty, then feel free to go back to your previous method because using 1 dummy is just a suggestion.
It is faster and lessen the permanent unavoidable unit leak.
You created a dummy every time a unit is picked within the group so not only 1 dummy is created. Before enumerating the group, create the dummy and in the enumeration, order the dummy to slow the picked unit.
Its better that wayin terms of speed because you don't need to create a dummy at each enemy. Only 1 dummy is created for the whole group.
Just store Last Created Unit something like
Set Dummy = Last Created Unit
...
Order Dummy to Slow Picked Unit
So it damages and slow enemies within range?
Set the level first before ordering the dummy. Plus, only one dummy is needed and it will be the one to cast on all the affected enemies. Make sure it has 0 cooldown Also, store the dummy to a new variable to make the spell speed efficient.
Yes you can make it an array, I see no performance difference in terms of using 4 integer vs 1 integer array.
The problem would be readbility because they all have the same name but have different purposes. Use whatever is more convenient to you.
Yes, you can make it hexa (base 16) or any base for that matter. Because when using base 10, the maximum damage that can be given is +99. If your map needs a damage more than that, then you should change it.
In the trigger, change all number 10 to a new number (i.e. 16), but you also need to change the levels of the 2 abilities bonus damage from 1 to 15 and the other one to 16, 32, 48, etc.
Heheheh yea we had it a long time ago E-freak-Z now we're back together training and playing xD so we decided to make a logo xD , hehe have fun on those triggers <(<) hope it comes out as you planed , looking forward to play your map hehe
Finding a logo for my DotA 2 team and Street Workout , it's been a pain in the ass so far but i think i will manage to pull it off..... anyways what's up , have you been working on your map , i'm really curious to see how's it going
Hey, I just tried my suggestion and it works.
The GetDamage in onDestroy should be GetDamage(this.level, this.caster).
I can't pass you the code because for some reason, internet in my laptop is very slow but in phone, it is average speed.
Now you are talking about additional data on a unit or a buff.
With a unit indexer and a real array, you can do it.
When you cast that ability that gives you the buff, you set that real to (15 X level of ability)
Then when you attack a unit, you load that real from that array.
lfh's PDD is not powerfull enough to have such damage being dealt properly though.
When you do that, it means that your damage is on-hit spell damage.
This will then mean that all effects that happen on spell hits will also occur.
I really dont know why noone ever has implemented a good bugless Damage System.
You have to use the custom function that is placed in the PDD library to apply the damage as well. (0 GUI friendlyness :/)
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.