• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

A spell Request

Status
Not open for further replies.
Level 3
Joined
Dec 21, 2014
Messages
27
Greetings everyone, i am Darastrix and i have recently taken an interest in the frozen throne editor and i want 2 make discover how 2 make some spells which i need for the map i am making :) i will post it after i make it.

-Seasoned Marksman ( It is the spell from HOTS i really enjoy it :) )
- every 8/6/4 enemies that die in a radius of 400 around you give you plus 1 attack dmg.

(i will post more soon but i need to work on my map now i hope someone can help me with this spell :) )
 
Level 4
Joined
Jul 5, 2015
Messages
75
Maybe you can set it to where, the larger number of corpses are around your hero (or just dead units), the more attack is gained. And you'd probably have to go to triggers or JASS to hotmod that spell yourself. So I'd look up tutorials on Triggers or JASS, if you don't know them. Which, both are conviently available here in the hive, in the Tutorial sections (of course).
:grin::thumbs_up:
 
Level 3
Joined
Dec 21, 2014
Messages
27
Maybe you can set it to where, the larger number of corpses are around your hero (or just dead units), the more attack is gained. And you'd probably have to go to triggers or JASS to hotmod that spell yourself. So I'd look up tutorials on Triggers or JASS, if you don't know them. Which, both are conviently available here in the hive, in the Tutorial sections (of course).
:grin::thumbs_up:

I learned the basics a week ago and i've been messing around with maps for a while now. And i would like to learn some advanced triggers and what not. :) Thanks.

But i would like someone to explain to me 1 thing, how do i add a flat amount of dmg? Bcs i know you can add int, str and agi to units but, i don't want that.

Edit: But i have been before on the THW but i was only here for a week and i have forgotten most of stuff i have learned.
 

Ardenian

A

Ardenian

But i would like someone to explain to me 1 thing, how do i add a flat amount of dmg? Bcs i know you can add int, str and agi to units but, i don't want that.

This is achieved by using a dummy and a damage ability, usually Trueshot Aura.
You write a trigger that sets an integer variable to the amount died units that are collected.
If the variable reaches certain values ( like 8, 16, 24), you add a level to the dummy ability.

Well, True Shot aura gives you only a percentage damage, sadly.

There are many ways to work around with static damage:
- make the damage triggered; write a trigger that damage target when it is attacked by the unit that has the spell we are talking about.
- make a dummy unit attack with Burning Arrows ( I don't know the English name, sorry)

But I think the triggered damage is the best solution.

If you want the damage being shown/ applied to the unit, I am not sure how to do that, probably with a damage ability ( that adds bonus damage) in a hidden spellbook or, if the ability of the unit is only a dummy ability, then you can make it an ability that adds damage ( I think making claws of attack an unit ability).
 
Level 3
Joined
Dec 21, 2014
Messages
27
I remember i had a map or something that had that legion commander ultimate spell, but it was bugged so i scrapped it( it would add 1000 dmg sometimes and other times 100 instead of 10, and after a while it would completely reset to 0).

Well tnx for the info i will go read some guides now :).
 
Level 24
Joined
Aug 1, 2013
Messages
4,657
Event:
- A unit dies
Action:
- Pick every unit in SeasonedMarksmanGroup and do multiple actions.
---- If
------- distance between PickedUnit and triggering unit is less than or equal to 400
---- Then
------- Set TempInteger = Custom Data of PickedUnit
------- Set DeathCounter[TempInteger ] = DeathCounter[TempInteger ] +1
------- If
---------- DeathCounter[TempInteger] is bigger then or equal to (10 - (2 X level of Seasoned Marksman))
------- Then
---------- Set DeathCounter[TempInteger] = 0
---------- Set level of SeasonedMarksmanDamageAbility for PickedUnit to level+1

What happens is simple, you have all units that have "Seasoned Marksman" in a group called SeasonedMarksmanGroup.
When a unit dies, you pick every unit with that ability and check their distance.
If distance is lower than 400, then you increase a counter stored on the custom data of the unit (you require a unit indexer for that).
When this value is bigger than or equal to 8/6/4 (10 - 2Xlevel), then you increase a damage ability.
The damage ability is based of Item Damage Bonus, which you can use for the damage iirc.
Reset the counter to 0.

Make sure that you remove location leaks.
And make sure you store units like "Triggering Unit" and "Picked Unit" in a global variable.

This will be completely MUI + optimal performance.
At least... in a GUI way.
 
Level 3
Joined
Dec 21, 2014
Messages
27
Event:
- A unit dies
Action:
- Pick every unit in SeasonedMarksmanGroup and do multiple actions.
---- If
------- distance between PickedUnit and triggering unit is less than or equal to 400
---- Then
------- Set TempInteger = Custom Data of PickedUnit
------- Set DeathCounter[TempInteger ] = DeathCounter[TempInteger ] +1
------- If
---------- DeathCounter[TempInteger] is bigger then or equal to (10 - (2 X level of Seasoned Marksman))
------- Then
---------- Set DeathCounter[TempInteger] = 0
---------- Set level of SeasonedMarksmanDamageAbility for PickedUnit to level+1

What happens is simple, you have all units that have "Seasoned Marksman" in a group called SeasonedMarksmanGroup.
When a unit dies, you pick every unit with that ability and check their distance.
If distance is lower than 400, then you increase a counter stored on the custom data of the unit (you require a unit indexer for that).
When this value is bigger than or equal to 8/6/4 (10 - 2Xlevel), then you increase a damage ability.
The damage ability is based of Item Damage Bonus, which you can use for the damage iirc.
Reset the counter to 0.

Make sure that you remove location leaks.
And make sure you store units like "Triggering Unit" and "Picked Unit" in a global variable.

This will be completely MUI + optimal performance.
At least... in a GUI way.



Thanks a lot :), but can you tell me how what variables i need?
 
Level 24
Joined
Aug 1, 2013
Messages
4,657
TempVariables are really simple.
They are variables that can be used by any and all triggers in your map.
As long as they do not have to be saved for longer than the trigger runs (so no waits or other triggers)

A TempVariable for example TempInteger is an integer, TempUnit is a unit, TempGroup is a group.
Some people prefer to have those variables as arrays which does make it much easier to use.
So then you use TempUnit[0] as Triggering Unit and TempUnit[1] as Picked Unit.

SeasonedMarksmanGroup is a group containing all units that have SeasonedMarksman.
DeathCounter is an integer which counts the dead.

There are two abilities involved:
1, The tooltip ability.
This ability is the one that is used to check the level to determine the amounts of deaths required to increase damage.
2, The damage ability.
This is an item based ability that increases damage each level.
Level 1 = 0 dmg, lvl 2 = 1 dmg, lvl 3 = 2 dmg, etc, etc, etc.
 
Level 3
Joined
Dec 21, 2014
Messages
27
Hey, tnx i made the spell work :).


Question: How can i make like respawn timers on some mobs (i would like to make a jungle that respawns and gets stronger each time it dies, but they respawn where they initially started out) (+40 HP, +4 dmg).
And also, let's take a spell, fireball. Let's say it does 100/200/300 dmg (+30% of the heroes current int). How do i make this last part do % of the heroes int?
 
Last edited:
Level 24
Joined
Aug 1, 2013
Messages
4,657
Using timers properly either requires massive numbers of triggers or JASS.
I suggest using a system.

For damage... use triggering.
Unit - Damage target
use 0.3 X INT of hero
for fireball it is pretty hard to determine when the exact moment of impact is as Blizzard didnt support an event for that.
 
Level 3
Joined
Dec 21, 2014
Messages
27
Using timers properly either requires massive numbers of triggers or JASS.
I suggest using a system.

For damage... use triggering.
Unit - Damage target
use 0.3 X INT of hero
for fireball it is pretty hard to determine when the exact moment of impact is as Blizzard didnt support an event for that.


Ok i will take a look leter.
And also can you tell me more in depth of this 0.3 X INT of hero i can't seem to be able to spot it anywhere.
 
Level 24
Joined
Aug 1, 2013
Messages
4,657
you need Arithmetics.
That function is both when selecting an integer or a real.
with that, you can increase, decrease, multiply or divide two numbers.
so you need one arithmetics of (RawDamage + ScalingDamage)
RawDamage is an arithmetics of (100 x Level of ability)
ScalingDamage is an arithmetics of (0.3 x INT of hero)

Both INT of hero and Level of ability are integers while the others are reals.
So you have to convert integer to real on those two.
 
Level 3
Joined
Dec 21, 2014
Messages
27
you need Arithmetics.
That function is both when selecting an integer or a real.
with that, you can increase, decrease, multiply or divide two numbers.
so you need one arithmetics of (RawDamage + ScalingDamage)
RawDamage is an arithmetics of (100 x Level of ability)
ScalingDamage is an arithmetics of (0.3 x INT of hero)

Both INT of hero and Level of ability are integers while the others are reals.
So you have to convert integer to real on those two.

Well Thank you for the help dude :). Glad 2 see that the community hasn't changed and is friendly as ever :).
 
Status
Not open for further replies.
Top