Help with [MUI] Reincarnation

~AMARANT~

New Member
Reaction score
0
Hi everyone. I need some help with multi instanceable spell "Reincarnation". This spell is buff which gives passive ability Reincarnation to targeted hero for 30 seconds. In GUI I created 30 sec timer and when it expired I removed Reincarnation. But if I try to cast spell at this time to other hero Reincarnation is not removed. I know that I can create massive of timers but I want to make a spell in Jass or vJass correctly without leaks. I know about many methods (Return bug, structs, TimerUtils, etc) of creating MUI spells but I don't know Jass so good. Please give me an example based on this easy ability. But only not with hash-tables I have WC3 1.23. Excuse for my English and thankful in advance.
 

Laiev

Hey Listen!!
Reaction score
188
why you use warcraft 1.23?

if you can, please, post the trigger in gui which you do, more easy to transform it in mui
 

Dinowc

don't expect anything, prepare for everything
Reaction score
223
don't use timers in GUI cause they suck

use a global "every x seconds of game time" event

store target unit of ability being cast into a group and check it's remaining time every time the event occurs

if it's time expires, remove him from the group

keep track of time remaining using real array (since you can't use hashtables as you mentioned...)
 

~AMARANT~

New Member
Reaction score
0
why you use warcraft 1.23?
Because in my map many triggered spells use Return bug and I don't know how to change it on hash-tables.
if you can, please, post the trigger in gui which you do, more easy to transform it in mui
It very simple as you can see. Here the trigger:

Trigger:
  • Reincarnation
    • Events
    • Unit - A unit Starts the effect of an ability
    • Conditions
    • (Ability being cast) Equal to Reincarnation Buff
    • Actions
    • Set Priest = (Casting Unit)
    • Set Reincarnated = (Target Unit of ability being cast)
    • Unit - Add Reincarnation Spellbook to Reincarnated
    • Countdown Timer - Start Reincarnation Timer as a One-shot timer that will expire in 30.00 seconds
    • Trigger - Turn on Reincarnation Remove


Second trigger:

Trigger:
  • Reincarnation Remove
    • Events
    • Time - Reincarnation Timer expires
    • Conditions
    • Actions
    • Unit - Remove Reincarnation Spellbook from Reincarnated
 

Laiev

Hey Listen!!
Reaction score
188
I don't know for what you want this variable priest but i leave it alive for you, if you don't use, delete it
Trigger:
  • Reincarnation
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Reincarnation Buff
    • Actions
      • Custom Script: local unit u = GetSpellTargetUnit()
      • Set Priest = (Triggering Unit)
      • Unit - Add Reincarnation Spellbook to (u)
      • Wait 30.00 seconds
      • Unit - Remove Reincarnation Spellbook from (u)
      • Custom Script: set u = null


maybe this help you with conversion
 

~AMARANT~

New Member
Reaction score
0
Laiev, thank you. I've updated Warcraft to 1.24 patch. Now can you give me a sample more leakless than in GUI?
 

Bogrim

y hello thar
Reaction score
154
His sample is leakless. You just store the target as a local unit variable. For instance:
Trigger:
  • Reincarnation
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Reincarnation Buff
    • Actions
      • Custom Script: local unit u = GetSpellTargetUnit()
      • Set Temp_Unit = (Target unit of ability being cast)
      • Unit - Add Reincarnation Spellbook to (Target unit of ability being cast)
      • Wait 30.00 seconds
      • Custom Script: set udg_Temp_Unit = u
      • Unit - Remove Reincarnation Spellbook from Temp_Unit
      • Custom Script: set u = null
 

Tyman2007

Ya Rly >.
Reaction score
74
But action "wait" is leak.

He used locals which can pretty much make waits leakless.

Since locals can't be overwritten by having the trigger being ran more than once, it makes it leakless.

Provided you don't do something stupid like set the variable to something then set it again, like if it's a location.

And you remember to destroy it..

Anyway it's leakless.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top