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

Death Knight's Presences (v1.1)

  • Like
  • Love
Reactions: pepega and Imadori
Presentation


The concept (function) it is of Blizzard, however, it is of my authorship and intellectual property. After all, I adapted the resource of the World of Warcraft for the universe of Warcraft III.
Features


  • MUI
  • LeakLess
  • Simple codes
  • Easy to set/setup
  • Easy to import/use
  • Great performance (I believe)
Changelog


Current version (1.1)

  • Spell - More efficiency (the presences are changed instantly).
  • Triggers - Updatings, corrections and adjustments for the current version.
  • Ability - According to the suggestion, the ability Presence (Change) it was changed by the ability Berserk.

Old version (1.0)

  • Triggers - Old triggers.
  • Ability - the ability Presence (Change) it is originated from Channel.
  • Spell - Low efficiency (the presences took a small time to be changed).

Spell's function


Allow Death Knight to change Blood, Frost or Unholy Presence. Each presence improves Death Knight performance.

  • Blood - Increases the physical defense.
  • Frost - it Increases the attack damage.
  • Unholy - it Increases the attack speed and movement.

  • Attack bonus: 15%/20%/25%/30% of Death Knight's physical attack.
  • Attack speed bonus: 15%/25%/35%/45%.
  • Defense bonus: 3/4,5/6/7,5 points.
  • Speed bonus: 5%/10%/20%/25%.
  • Just one presence can be activated by time and permanence.
Spell's Triggers




[trigger=Trigger]Presence Setup
Events
Map initialization
Conditions
Actions
-------- ------------------------------------------- --------
-------- Create Hashtable: --------
Custom script: set udg_Presence_Hash = InitHashtable()
-------- ------------------------------------------- --------
-------- When Caster's presence change, the abilities below are the respective available presences: --------
Set Presence_Ability_Aura[1] = Presence (Blood)
Set Presence_Ability_Aura[2] = Presence (Frost)
Set Presence_Ability_Aura[3] = Presence (Unholy)
-------- The indexes (of the abilities) above they should be COMPATIBLE with the indexes of Buffs. --------
-------- ------------------------------------------- --------
-------- Ability that allows to Caster, to change of presence: --------
Set Presence_Ability_Change = Presence (Change)
-------- ------------------------------------------- --------
-------- The buffs below are necessary to change them instantly when Death Knight changes presence. --------
Set Presence_Buff[1] = Presence (Blood)
Set Presence_Buff[2] = Presence (Frost)
Set Presence_Buff[3] = Presence (Unholy)
-------- The indexes for buff and the indexes of the abilities (of the presences) they should be compatible, for not happening mistakes. --------
-------- ------------------------------------------- --------
-------- Destroy this Trigger to improve the performance of the spell: --------
Custom script: call DestroyTrigger (GetTriggeringTrigger())
-------- ------------------------------------------- --------
[/trigger]


[trigger=Trigger]Presence
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Presence_Ability_Change
Actions
-------- ------------------------------------------- --------
-------- Caster (Unit that cast the spell): --------
Set Presence_Caster = (Triggering unit)
-------- ------------------------------------------- --------
-------- Load Caster's key in a handle: --------
Custom script: set udg_Presence_Handle = udg_Presence_Caster
-------- ------------------------------------------- --------
-------- Ability's level capable to change the presences: --------
Set Presence_Level = (Level of Presence_Ability_Change for Presence_Caster)
-------- In this version it is not more necessary to verify the level of each presence. --------
-------- ------------------------------------------- --------
-------- Load the index of the current presence in Caster: --------
Set Presence_Index_Add = (Load 1 of (Key Presence_Handle) from Presence_Hash)
-------- The index will allow the change of presences. --------
-------- ------------------------------------------- --------
-------- The variable "Presence_Index_Add" allows to choose the next presence. --------
-------- The variable "Presence_Index_Remove" allows to remove the old presence. --------
-------- ------------------------------------------- --------
-------- In the next steps, it is verified which presence will be removed and which will be added. --------
Custom script: if udg_Presence_Index_Add == 0 then
-------- --------
-------- In case it is the first time that Caster chooses the presence, choose a random presence: --------
Custom script: set udg_Presence_Index_Add = GetRandomInt(1, 3)
-------- Be free to choose which will be the first presence to be activated. --------
-------- --------
Custom script: else
Custom script: if udg_Presence_Index_Add >= 3 then
-------- --------
-------- In case the current presence is Unholy, change the presence for Blood: --------
Custom script: set udg_Presence_Index_Add = 1
Custom script: set udg_Presence_Index_Remove = 3
-------- In this section it means that the presence reached a limit. --------
-------- --------
Custom script: else
-------- --------
-------- In case the presence didn't reach the limit: --------
Custom script: set udg_Presence_Index_Remove = udg_Presence_Index_Add
Custom script: set udg_Presence_Index_Add = udg_Presence_Index_Add + 1
-------- --------
Custom script: endif
Custom script: endif
-------- ------------------------------------------- --------
-------- Save the index of the current presence for Caster: --------
Hashtable - Save Presence_Index_Add as 1 of (Key Presence_Handle) in Presence_Hash
-------- Doesn't care Caster to die, the index will be the same until that Caster changes of presence. --------
-------- ------------------------------------------- --------
-------- Remove the buff of the old presence in Caster: --------
Unit - Remove Presence_Buff[Presence_Index_Remove] buff from Presence_Caster
-------- --------
-------- Remove the OLD presence of Caster: --------
Unit - Remove Presence_Ability_Aura[Presence_Index_Remove] from Presence_Caster
-------- --------
-------- Add the NEW presence for Caster: --------
Unit - Add Presence_Ability_Aura[Presence_Index_Add] to Presence_Caster
-------- --------
-------- Update the level of the NEW presence for Caster: --------
Unit - Set level of Presence_Ability_Aura[Presence_Index_Add] for Presence_Caster to Presence_Level
-------- ------------------------------------------- --------
-------- The buff of the old presence is removed instantly. --------
-------- But, the new presence takes little time to update. --------
-------- ------------------------------------------- --------
[/trigger]


How to Import


To import this spell in any map it is necessary to copy some items in the list below:

  • Trigger - Folder "Presence".
  • Import - All of the imported objects (from icon to models).
  • Buff - To copy the buffs of the presences (Blood,Frost and Unholy) in Object Editor.
  • Ability - The ability "Presence (Change)", "Presence (Blood)","Presence (Frost)" and "Presence (Unholy)" in Object Editor.

Tip - Enable the option: Automatically create unknown variables while pasting trigger dates (Go to: File>Preferences>General in your Warcraft III World Editor). This way, it won't be necessary to copy all the variables one for one.
Credits


  • I thank Hive WorkShop.
  • Moderator of this resource.
  • Champara Bros, for the created models (Blood, Frost and Unholy Presence).
  • I thank you for the kindness, dowload and for everything! Thank you for participating in my work.
Contact


  • Doubts?
  • Critical?
  • Subjects?
  • Suggestions?
  • Find a bug/error?
  • Difficulties in the import?

For any subject, i recommend that you sends her for me, in this page, in my profile or for a pm (private message). I insist on helping.
Request


If it uses my spell in your map (project, work...) doesn't forget to do the kindness of thanking to me for the developed work.
If it can, i ask that it rewards with reputation, in that way I can reward the favor.
Please, don't stop visiting my page for more resources and contacts.
Keywords:
Hive WorkSHop, Spells , World of Warcraft>Warcraft III , Losam
Contents

Death Knight's Presences (Map)

Reviews
18:31, 19th Aug 2013 PurgeandFire: The code is short, but the spells themselves/the object editor manipulation is really nice. I recommend basing them off berserk or any other spell that does not interrupt orders, but that it not necessary for...

Moderator

M

Moderator

18:31, 19th Aug 2013
PurgeandFire: The code is short, but the spells themselves/the object editor manipulation is really nice.

I recommend basing them off berserk or any other spell that does not interrupt orders, but that it not necessary for approval. The ability is now based off berserk. Love it! Bumped to recommended.

Approved!
 
Level 29
Joined
Oct 24, 2012
Messages
6,543
its a different kind of spell but i advise changing a few things.

Since it loops through the buffs you should change this to a unit array / integer array / unit indexer by bribe.
You can add a random number by setting the integer array keyed to that unit.
Then give that unit the ability by using the integer.

When the ability is cast u remove the old buff then set the integer to integer + 1 then use an ITE to check if the integer is equal to 4 set it to one. then add that ability to the unit. It will take down the amount of actions u do everytime the spell is cast so this will be more efficient.
 
Level 3
Joined
Sep 9, 2009
Messages
658
Isn't Blood Presence the one that increases attack damage now? And it also steals life I think. I'm pretty sure Frost Presence is the tanking presence. Other than that, nice. I these abilities once only I never thought of combining them like you did.

Maybe you should also consider placing the added abilities into a disabled spell book? Some people like to use the slots they're occupying for extra skills.
 
Level 11
Joined
Mar 27, 2011
Messages
293
Oh yeah, you're right :) If you're going to update this spell, I suggest basing the spell on berserk that way it doesn't interrupt the unit's orders. The Death Knight kinda stops for a while when he changes presences.

Believe are related to Cast Point, which is responsible for the activation time of any skill / spell.
And yes, I will update this version as your suggestion. Thank you for your kindness.
 
Level 6
Joined
Nov 12, 2012
Messages
153
I have made a spell like this one before, just for fun, and placed it in the undead campaign for reign of chaos (I also did the same with the paladin, changing auras from command, devotion and retribution auras), and I used a spellbook with the abilities used to make the changes inside.

If you want to see it you can ask me and I can send a link via pm. It is MUI and can be of help to improve yours (using only the spellbook as a way of changing from one presence to the other ^^)
 
Top