• Check out the results of the Techtree Contest #19!
  • 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!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!

Time Lapse

Status
Not open for further replies.
Ah! you need a timer for that, and a struct. Store the unit, unit x and y coordinate, life, mana.
EDIT: sorry I wasn't thinking right, you were asking for a specific system assistance. I actually don't know how to use those.
 
Store HP and Mana into reals[array] and refresh their values e.g each 0.1 seconds (increasing index --> new value), so you can just set unit's hp to hp[current_index - current_index-50) same with mana. (50 in this case with 0.1)

But you would have to reset the index after a while that you dont hit the limit.
If you do so, it may be the case that the current index <50, so it would use an array <0 --> you have to fix this with subtract the overhang of the old index limit
 
I think you'll need a list for that, and just limit your minimum number of saves and save intervals (6 saves per minute).
 
Last edited:
assuming you already understand how to deal with timer and saving data in each interval, to apply the saving to more than one unit, you can either use (vJASS way) struct for each unit to save the value for the respective unit, or you can use (non vJASS way) hashtable to store the value for each unit. to use hashtable, you can use GetHandleId, combined with StringHash and I2S(index) to save value for each time period.

however, if you decided to use hashtable and stringhash, you might want to read this, and this too as precaution.
 
Doesn't Time Lapse also revert the unit's position and buffs? The concept of the spell is to revert the unit back in time by x seconds (based on level).

So this means hp, mana, position, negative buffs, etc. Position sounds the same as hp in terms of difficulty. How do you record buffs? Maybe you shouldn't worry about that?
 
Doesn't Time Lapse also revert the unit's position and buffs? The concept of the spell is to revert the unit back in time by x seconds (based on level).

So this means hp, mana, position, negative buffs, etc. Position sounds the same as hp in terms of difficulty. How do you record buffs? Maybe you shouldn't worry about that?

refer to the playdota hero page for detail, it removes negative buffs only, positive buff is kept, and no buff is restored if previously affected.
 
Why you need this for ALL units?
To me, something non-MUI is unacceptable. And I just think that DotA didn't do it non-MUI.
assuming you already understand how to deal with timer and saving data in each interval, to apply the saving to more than one unit, you can either use (vJASS way) struct for each unit to save the value for the respective unit, or you can use (non vJASS way) hashtable to store the value for each unit. to use hashtable, you can use GetHandleId, combined with StringHash and I2S(index) to save value for each time period.

however, if you decided to use hashtable and stringhash, you might want to read this, and this too as precaution.
I guess I'll stay with hashtables.

Thank you for the replies.
 

Yes.

MPI stands for Multi Player Instanceability. MUI stands for Multi Unit Instanceability. The difference is its one per player for MPI, one per every unit in MUI. Generally, MPI is alot faster because it doesn't allow indexing, people complain when DotA lags so they have to keep the lag to a minimum so they only do MPI per player for every hero.
 
I was asking if things like Sunstrike were MPI.
Generally, MPI is alot faster because it doesn't allow indexing,
But how about Tornado? It's a line damage and cyclones enemies hit. And last time I tried it with WTF, it worked with multiple casts. I think it's triggered.
 
I was asking if things like Sunstrike were MPI.

But how about Tornado? It's a line damage and cyclones enemies hit. And last time I tried it with WTF, it worked with multiple casts. I think it's triggered.

something can be MPI and multicastable :p

idk wtf sunstrike is
 
Hashtables can do a time lapsed, by saving life ( Life of DesiredUnit ), saving mana ( Mana of Unit ), and of course by saving unit position. And Store the unit in to the group and make a duration of the warp execution, decrease it in a loop, then Make an ITE Condition if duration <= or less than 0.00, after that Load a saved location then move a unit to that location, load a saved life and mana of a triggering unit then use that in SetWidgetLife or SetLife of triggering unit to ( ... ). Done!.
 
if you look into the released script provided in playdota site, you can tell all skills is made to be MUI or MPI at least.

I don't see why posts above need to argue about Dota's spells being MUI/MPI/whatever, if you can and want make it MUI/better then do so, no need to do it just because Dota do it like that too.
 
Status
Not open for further replies.
Back
Top