• 🏆 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!

Attribute based Spells and More (SetAbilityRealLevelField)

Level 12
Joined
Mar 13, 2020
Messages
421
------SetAbilityRealLevelField Tutorial------





Hi Everyone, this is my "First Tutorial" about SetAbilityRealLevelFields in GUI, and evrything we can Modify on our Spells.
I started this Tutorial because, i cant find anything about it on Hive.. and its very usefull for Beginners.



Content:
1. This Tutorial Shows how to Modify Attribute based "Spell Damage" on Default based Abilitys.
2. Give your Abilitys some "Extra" effects.


Lets start with "Lightning Chain" as Spell for our Tutorial, as example.


Lightning Chain:
Screenshot (33).png



We set everything to 0 for now because, we will handle this things with Triggers based on our Heros stats.


1. Attribute based "Spell Damage"

Lets start with some Easy one the Damage of our "Lightning Chain", first we need the Real Field we wanna change.
We open the ObjectEditor>Abilities and click on our Lightning Chain, then we Press "Ctrl + D" and can see the Short Cut for our Real Field

Screenshot (35).png


We wanna Modify the Damage of our Spell, so the Field we need for Lightning Chain is Ocl1.
Now we open our Trigger Editor.

  • Lightning Chain
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Lightning Chain
    • Actions
      • Ability - Set Ability: (Unit: (Casting unit)'s Ability with Ability Code: Lightning Chain )'s Real Level Field: Damage per Target ('Ocl1') of Level: ((Level of Lightning Chain for (Casting unit)) - 1) to (Real((Intelligence of (Casting unit) (Include bonuses))))
The "Event" and "Conditon" are self explained, lets talk about our "Action".
Ability - Set Ability Real Level Field, Example

Set Ability = Units: Which Unit? Casting Unit.

Ability Code = Which Ability Code? Lightning Chain (Because thats our Spell).

Real Level Field = ? Ok lets go, we wanted to change the Damage and Find out the Short Cut for the "Real Field" of "Damage" for Lightning Chain is ('Ocl1') thats the Field for Damage per Target.

Level of Ability = ? Now here we Need to Understand that the Index of the Level is needed.. and the Index start at 0, not at 1 that means.

Ability Index 0 = Ability Level 1
Ability Index 1 = Ability Level 2
Ability Index 2 = Ability Level 3
Ability Index 3 = Ability Level 4

So i used Level of Ability of Unit and then -1, no matter which level now my Spell has its evrytime set to the Index next to it.


Modified Real = ? Because we wanna have our Damage based for each Target our Lightning Chain hits, to be based on our Attributes i set it to Intelligence of (Casting Unit)(Include bonuses).


2. Extra Effects with SetAbilityIntegerLevelField

We wanna give our Lightning Chain some extra "Effect" for this Example, lets use
Set Ability Integer Level Field.
Because the Field we Wanna Change now its an Integer Field


Screenshot (36).png


  • Lightning Chain
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Lightning Chain
    • Actions
      • Ability - Set Ability: (Unit: (Casting unit)'s Ability with Ability Code: Lightning Chain )'s Real Level Field: Damage per Target ('Ocl1') of Level: ((Level of Lightning Chain for (Casting unit)) - 1) to (Real((Intelligence of (Casting unit) (Include bonuses))))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Random integer number between 1 and 100) Less than or equal to 25
        • Then - Actions
          • Ability - Set Ability: (Unit: (Casting unit)'s Ability with Ability Code: Lightning Chain )'s Integer Level Field: Number of Targets Hit ('Ocl2') of Level: ((Level of Lightning Chain for (Casting unit)) - 1) to 4
        • Else - Actions
Now our Spell has a 25% Chance to Hit one More Target because we now Modified:
Integer Level Field: Number of Targets Hit ('Ocl2')
to 4.



Final Word:

We can Change and Modifie with this Fields all on Default Based Spells..
set them to Attributes, or to 1% of our Max Hp...
we can even Modify Passivs... with an Event like Every 5 Seconds to Refresh the Modified Amount of the Passiv.
We can Create Items for Specific Heros with Real[Arrays] like:
Shaman[PlayerNumber(OwnerofUnit(HeromanipulatingItem)]
or even Create Talentrees

Example 1: we Buy/Press/What Ever your Talentree is Based on, and the set a Real[Array] and if the Real[Array] is equal to 1.00 the Paladin has a 25% that his Next Holy Light cost no Mana

Example 2: or Set the Cooldown to 0 / Set the Cast Time to 0 or what ever you want you can change Multiple Reals like i did for the Spell Avatar and Changed the Armor/Hp/Damage based on Strenght.

For Dummy Units you can use it Aswell... Thats it it Might be a Short Tutorial just Try it out it has Potentiual if you use it Good :)

Cheers Pwnica

 

Attachments

  • Screenshot (34).png
    Screenshot (34).png
    124.8 KB · Views: 290
Level 12
Joined
Mar 13, 2020
Messages
421
I did it Check it out it will change the tooltip evrytime the hero level up or aqquires a item...
i never used it before so this is the first time
you can also set it before in a variable makes it less text and so you can change the color of the amount he can heal or the amount of damage in the tooltip
these real/integer/string fields are realy nice imagine how much perfection you can set into a map :)
 

Attachments

  • Tooltip Test.w3m
    18.5 KB · Views: 68

Chaosy

Tutorial Reviewer
Level 40
Joined
Jun 9, 2011
Messages
13,183
A lot of text for something relatively simple?

Also, what's the point of setting the damage to 0 in the OE?
If you are gonna change it on-cast anyway the initial value is irrelevant.

Still, simple does not mean bad. This might be an eye-opener for someone getting started.
That being said I think this needs to be simplified. It should not take a full paper to show how to use a single GUI action and edit a couple of fields in the object editor.

And while you are at it, some structure upgrades would be a plus. A couple of more titles and colors for a start.
 
Level 12
Joined
Mar 13, 2020
Messages
421
A lot of text for something relatively simple?

Also, what's the point of setting the damage to 0 in the OE?
If you are gonna change it on-cast anyway the initial value is irrelevant.

Still, simple does not mean bad. This might be an eye-opener for someone getting started.
That being said I think this needs to be simplified. It should not take a full paper to show how to use a single GUI action and edit a couple of fields in the object editor.

And while you are at it, some structure upgrades would be a plus. A couple of more titles and colors for a start.
Hey Chaosy, this is a Simple Tutorial for Beginners... behause when i Start myself Mapping when Reforged came out i was missing a lot of informations and Knowhow...
And i wanted to gibt People a easier way in :)
And also it was my First ever Thread so don’t judge me for my Noob Forum Skills ;)
 
Level 2
Joined
Feb 12, 2024
Messages
16
What I mean by simple is not that a tutorial should be complex, no, that sounds counterproductive.
But what I mean is that what you are trying to teach is on the easier side of the spectrum.

To make that feasible I think this is too verbose.
I want to know more about the advanced because I am new to this new native and don't know what it can fully do.

Do you have any link about this for me to learn?

For The original Poster: Thanks so much. This is what I want to do since the 1.26 Version of World Editor.
 
Top