Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
When you mean by mapping skills you dont know anything about it? If so, you shouldnt start on spells and abilities, you should start on terraining, custom units etc.
And for your question you have to learn Jass/Triggering.
Enrage is based off the item ability called item damage bonus, since ursa's attack animation looks like he attack twice, so ice frog use item damage bonus and the second damage with trigger, to decrease the damage amount you need to re order the item damage bonus
I got some experience with the editor and I made few triggerspells on my own.
terrain and objecteditor are easy to learn.
I tried to made ursas spell 'Enrage' but I dont know how to increase the damage based on his maximum (or current) hp.
Works the same as The Trolls abillity but with a variable on the percentage portion of Health Bk so
READ ALL OF THIS BEFORE STARTING ANYTHING OR YOU WILL NOT UNDERSTAND AND WILL START WITHOUT SEEING THE OTHER OPTIONS.
As there are mutiple variables within this.
Checked playdota what you were actually on about.
If you wanted to make a spell, like From the actual dota with the same effects. Then:
1. Make 1 Dummy abil with X Cd and Tooltips etc. It will not do anything else just there as a dummy abil ^^
2. Then because it increases on every attack we shall use a trigger to cause the damage and a counter. We could use an item abil passive but then it would have limits on how high the damage counter could go ^^.
3. This would be something like this
Trigger -COUNTER
Event-Ursus attacks unit
Conditions N/A
//Timer
If Countimer = 0
Then turn on trigger Counttimer [Number of player owning attacking unit]
Else Do nothing
//Count
If attacked unit = Count unit [Number of player owning attacking unit] (yey MUI)
Then
Set counter [Number of player owning attacking unit] = Set counter [Ditto] +1
Else
Set attacked unit = Count unit [Number of Player owning attacking unit] (MUI bit)
Set Counter [Ditto] = 0
//Same trigger- Damage part
Set attacked unit hp to value - Attacked units hp - /(arithmatic)\ ([Level of abillity Enrage]x5+5) x Counter [Ditto]
//Trigger-Counttimer[Number of player of owning unit] This should be 12 seperate triggers all the same for the count. Im not sure if there is a better way of doing this but meh. They should all be the same but with a diffrent Countvariable
//Trigger-Countertimer [Player 1]
Periodic timer - Every second
Conditions na
Actions.
If Countertimer [Player 1]= 5
Then
Set countertimer [Player 1] = 0
Set counter [player 1]=0
Turn of this trigger
Else
Set countertimer [player1]= Countertimer [player1]+1
//Trigger countertimer [Player2]
Event Periodic timer - 1 second
conditions n/a
If countertimer [Player 2]=5 .... etc
Note To find Enrage level abillity try Real to integer.
While for percentage of health Trigger. You would want to use a formula for that and it would be entirely dependant on what you abillity requirements are. - What you want for each level of your abiillity -Percentage etc.
But the main theory behind this would be.
Create 2-3 Abillities
Item passive abillity (Increase 1)
Item passive abillity (increase 10)
Item passive abillity (increase 100)
Give these to your hero. And for each percentage set each abillity to wt ever level you require thus making the damage to = said percentage. The Level can be figured out by something like this.
//THIS FORMULA IS WRONG. CHECK THE MAP 3 POSTS BELOW WITH A DEMO OF THE NEW FORMULA WHICH USES INTEGER TO STriNG THEN COUNTS THE DIGITS LIKE AN ABACUS TO SET THE DMG
//The waits are there to split the triggers they are not needed. And are entierly optional.
//To make this an MUI abillity Makes y have an array of 11 And every time Y is mentioned do. Y[PLayer number of owner of casting unit] - ^^
//And finally if you want to make it like in Dota so that fury swipes is doubled. Then Do Set Counter[Player number of casting unit] = Counter x2.
This is a single effect though
IF you want to have it so that it DOubles all Fury swipe damage. Activaly Change the fury swipe so that the x5 and +5 are variables .
Then
Set x5 Variable = x5 Variable x 2
Set +5 Variable = +5 Variable x2
Turn on Trigger timer [Count {Player number of casting unit}
This ^ Is also 12 Seperate trigger one for each player - Like in the enrage abillity
Trigger- Count
Periodic Timer-Time every 15 seconds
Set x5 Variable player number = x5 variable /2
Set +5 etc
and repeat/
Oh and if you dont feel like creating 12 time triggers for the counting you can condense it to.
Event- Periodic timer every 1 second
If Integervariable [1]=1
Then
If Count = 5
Then
Set count =0
Set integervariable [1]=0
Else
Set count [player 1]= Count [player 1]+1
Else Do nothing
If integervariable [2] Etc
You woudl then also change the fury swipe abil so that it instead of turning trigger on simpley Does this
Set Integervariable [Player number owner of attacking unit]=1
To switch it on -
1= on
0 = off
Edit: Woops the first one is wrong abillity. NOw i see sorry just read the 2nd one for Abillity percentage. I just spent half an hour writing out the abillity FUry swipes. Bollocks-. But yeh The Enrage is in the 2nd half -
If you can't follow it i would be happy to make this for you. But please i ask you to have a go at it first ^^. Not only will it help you get accustomed to the GUI interface and system of triggering. But it will make anything else you wanna do easier and faster.
Thank you for reading this long ass post
And so it continues Here is Maledict theory for the troll abillity thingy
Maledict
Unit group -Trigger
//This is to set the unit group for later
Event:
A unit Enters within 150 range of WardVariable [1]
Conditions:
Owner not equal to ally of owner of Wardvariable [2]
Action:
Add Triggering unit to Unitgroup Enemy units [1]
//Do this 12 times for each 1 -12 player ^^
Trigger Count
Event-Periodic timer Every 12 seconds
If Playerswitch[1]=1
Then
If Count2=12
Then
Set Playerswitch [1]=0
Pick every player in playergroup enemy units[1]
remove picked unit from playergroup enemy units[1]
Else Do nothing
Else do nothing
//Repeat this for each integer 1 -12
Trigger Decrease Hp
Event PEriodict time Every 1 second
Conditions: N/A
Pick every unit in unit group -Unitgroup Enemy units [1]
Set Picked unit Hp= Picked units hp - [Level of abillity Maledict]for unit[1]x5
Set Damagecount=Real to integer- Number of units in unit group enemy units[1] x level of abillity maledict for unit [1]x5
Pick every unit in unit group -Unitgroup Enemy units [2]
Set Picked unit Hp= Picked units hp - [Level of abillity Maledict]for unit[2]x5
Set Damagecount=Real to integer- Number of units in unit group enemy units[2] x level of abillity maledict for unit [2]x5
Etc
//Repeat For each Integer to 12
-Trigger Secondary bonus damage-
Every 4 seconds
Pick every unit in enemy units group [1]
Set picked unit Hp - Picked units hp - Level of abillity maledict for unit [1] x10x (Damagecount/100)
Pick every unit in enemy units group [2]
Set picked unit Hp - Picked units hp - Level of abillity maledict for unit [2] x10x (Damagecount/100)
/Repeat for each integer - 12
-Trigger set UNIT VARIABLE
Unit enters region
Unit = Witchdocter
Set unit[Player number owner of unit]= Entering unit
-Trigger Removing Them from The group after leaving the region
I havnt test this but im note sure if Option 1 works.. If it doenst try option 2. If that fails then you need to redo the First selectioni trigger with a region. Move the region to X area with size of 150. Although this wont be as good
Anyway
Option 1
Trigger 1 Remove
Unit comes within in -150 range of Wardvariable[1]
remove triggering unit from unit group enemy units [1]
Trigger 2 remove
Unit comes within in -150 range of Wardvariable[2]
remove triggering unit from unit group enemy units [2]
//etc trigger for all 12
Option 2 is
Even Unit comes within in 151 range of ward[1]
remove trigger unit from group enemy units [1]
//etc trigger for all 12 like in option 1.
Also leaks need to be removed. Im not really that good with removing leaks.. There should be a guide on thehelper.net might be one on these forumsn. Im not sure but i think this might leak at the reference to Triggering units HP and if a unit comes in range of point. otherwise im not sure
i think he needs to have the bug made by blade.dk(im not sure) where you can just trigger what amount of damage you want to add..(a bonus damage not base).
Edit: Ahh not your fault. I did the formula wrong. So far i got to doing a formula which works for everything but single digits. Gonna figure out how to do Single digits now >.</
Gonna take a look at it tomorrow. ^^
Edit: Nvm Found a way of doing it. I forgot about string . So instead i did this ^^ works much more efficiant
Basically i found out the Creatures PErcentage hp via HP/100 x Percentge amount
Then i saved this amount as a string
Then i referenced each Digit of the string/number as a level of abillity like a count
With 1 10's 100's 1000's etc
So its like this
Say example creatures Hp was 2600
Thats 6% of 2600 = 152
152= 1,5,2
So thats level 2 level 6 and level 3 on the abillities. which = +100 +50 +2
As each abillity goes N+1=X so (level)=(Dmg increase digit) 1=0 2=1 3=2
If you wanna increase the max dmg just add another abillity +10000 And add another check and string ^^
This can go on for inifinity just add more abillities. A increase of 10000 then 100000 etc .
If you want
I have attached the map with it on. Have fun ^^ Also the count has leaks in it due to pick all players cause Something like Set temp group and Destroy(UDG_VariableTempgroup) Should fix it Also there is pick Ever unit leak this can be fixed with Tempgroup also i think but i think tis Tempplayergroup tempunitgroup or somin ^^
And if you wanna increase check speed Change the Every 1 second to Every 0.1 seconds and change the If then else condition of 15 - 150. So that 0.1 +1 each second = 150 in 15 second. Its basically an inverse proportion where the constant is K
So XY=K
X= Time Init of Even
Y= Time till finished and turns of
If you change y You can change the CD of the abillity
And even better if you want you can have a Variable Cd by using The same way i used a variable percentage which is on the init trigger. But you probs figured that out yourself ^^ Hope you put it to good use.
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.