TimeLapse

sunshinex3

You can change this now in User CP.
Could i get some one to double check this trigger its not working for me.

Code:
Time Lapse Caster Initialization
    Events
        Unit - A unit Learns a skill
    Conditions
        (Learned Hero Skill) Equal to Time Warp (Nordizumu)
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                timeLapse_currentInstances Equal to 0
            Then - Actions
                Countdown Timer - Start timeLapse_timer as a Repeating timer that will expire in 0.10 seconds
            Else - Actions
                Set timeLapse_whichUnit = (Triggering unit)
                Set timeLapse_currentInstances = (timeLapse_currentInstances + 1)
                Set timeLapse_caster[timeLapse_currentInstances] = timeLapse_whichUnit
                Set timeLapse_casterLoc[timeLapse_currentInstances] = (Position of timeLapse_whichUnit)
                Set timeLapse_casterHealth[timeLapse_currentInstances] = (Life of timeLapse_whichUnit)
                Set timeLapse_casterMana[timeLapse_currentInstances] = (Mana of timeLapse_whichUnit)
                Set timeLapse_casterFacing[timeLapse_currentInstances] = (Facing of timeLapse_whichUnit)

Second Trigger....



Code:
Time Lapse Periodic Event
    Events
        Time - timeLapse_timer expires
    Conditions
    Actions
        For each (Integer A) from 1 to timeLapse_currentInstances, do (Actions)
            Loop - Actions
                Set timeLapse_casterFacing[(Integer A)] = (Facing of timeLapse_caster[(Integer A)])
                Set timeLapse_casterHealth[(Integer A)] = (Life of timeLapse_caster[(Integer A)])
                Set timeLapse_casterMana[(Integer A)] = (Mana of timeLapse_caster[(Integer A)])
                Custom script:          if (udg_timeLapse_casterLoc[bj_forLoopAIndex] != null) then
                Custom script:              call RemoveLocation(udg_timeLapse_casterLoc[bj_forLoopAIndex])
                Custom script:    endif
                Set timeLapse_casterLoc[(Integer A)] = (Position of timeLapse_caster[(Integer A)])
Third Trigger....

Code:
Time Lapse Actions
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Time Warp (Nordizumu)
    Actions
        Set timeLapse_whichUnit = timeLapse_caster[(Integer A)]
        For each (Integer A) from 1 to timeLapse_currentInstances, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        timeLapse_whichUnit Equal to timeLapse_caster[(Integer A)]
                    Then - Actions
                        Unit - Move timeLapse_caster[(Integer A)] instantly to timeLapse_casterLoc[(Integer A)], facing timeLapse_casterFacing[(Integer A)] degrees
                        Unit - Set life of timeLapse_whichUnit to timeLapse_casterHealth[(Integer A)]
                        Unit - Set mana of timeLapse_whichUnit to timeLapse_casterMana[(Integer A)]
                        Special Effect - Create a special effect at timeLapse_casterLoc[(Integer A)] using Abilities\Spells\Undead\RaiseSkeletonWarrior\RaiseSkeleton.mdl
                        Special Effect - Destroy (Last created special effect)
                        Skip remaining actions
                    Else - Actions
                        Do nothing
thats it unless i need more it looks like it should work im useing the roar ability with this trigger.
 

Accname

2D-Graphics enthusiast
I dont think we can help you with your triggers unless you tell us what those triggers are supposed to do and what they are doing wrong.
 

sunshinex3

You can change this now in User CP.
it's supposed to be time lapse from dota.

these triggers are used with an ability time lapse once that ability is cast then a timer is started and after the timer ends the units:

position
angel facing
health
mana

are all reset to what they were when the ability was cast.

i can see were it stores the variables not sure if anything else works... it doesnt do anything as of right now.
 
Last edited:

Accname

2D-Graphics enthusiast
I dont know dota.

Is this ability supposed to be used by more than 1 unit at a time? Or will there ever be only 1 unit using it? Will it be 1 unit total or 1 unit per player?
 

sunshinex3

You can change this now in User CP.
1 unit per-player hero ability

their can only be 12 maximum units in game each belonging to a different player.
 
Last edited:

Accname

2D-Graphics enthusiast
Here is a solution that uses 2 triggers:

This first trigger is called when the time travel ability is used
Trigger:
  • OnUse
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Time Travel
    • Actions
      • -------- Player number is used as an index into all of our array data structures --------
      • Set tmpInt = (Player number of (Owner of (Triggering unit)))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • timeTravel_Unit[timeTravel_Count] Equal to No unit
        • Then - Actions
          • -------- We count the number of units currently using time travel with this variable --------
          • -------- We only increment this variable if our unit was not already using time travel --------
          • Set timeTravel_Count = (timeTravel_Count + 1)
          • Trigger - Turn on OnPeriodic <gen>
        • Else - Actions
          • -------- The unit was already using time travel, we dont have to count it twice --------
      • -------- We store all the unit state which is supposed to be reset in time travel in these arrays --------
      • Set timeTravel_Unit[tmpInt] = (Triggering unit)
      • Set timeTravel_Hp[tmpInt] = (Life of (Triggering unit))
      • Set timeTravel_Mp[tmpInt] = (Mana of (Triggering unit))
      • Set timeTravel_Facing[tmpInt] = (Facing of (Triggering unit))
      • Set timeTravel_Pos[tmpInt] = (Position of (Triggering unit))
      • -------- This is the time (in tenths of a second) until the time travel effect starts --------
      • Set timeTravel_Timer[tmpInt] = 90


This second trigger is running down the timers and doing the actual time travel stuff
Trigger:
  • OnPeriodic
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
      • timeTravel_Count Greater than 0
    • Actions
      • -------- Iterate over all player numbers --------
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • -------- We just set this for convenience --------
          • Set tmpInt = (Integer A)
          • -------- Check whether this player is currently using time travel --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • timeTravel_Timer[tmpInt] Greater than 1
            • Then - Actions
              • -------- Count down the time travel timer for this player --------
              • Set timeTravel_Timer[tmpInt] = (timeTravel_Timer[tmpInt] - 1)
            • Else - Actions
              • -------- Check whether time travel is just ending for a player --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • timeTravel_Timer[tmpInt] Equal to 1
                • Then - Actions
                  • -------- Copy all the saved state of the unit from before. --------
                  • -------- Attention! This will fail if the unit is dead! You need extra code for that. --------
                  • Unit - Set life of timeTravel_Unit[tmpInt] to timeTravel_Hp[tmpInt]
                  • Unit - Set mana of timeTravel_Unit[tmpInt] to timeTravel_Mp[tmpInt]
                  • Unit - Move timeTravel_Unit[tmpInt] instantly to timeTravel_Pos[tmpInt], facing timeTravel_Facing[tmpInt] degrees
                  • -------- Clean up the location data to avoid memory leaks --------
                  • Custom script: call RemoveLocation(udg_timeTravel_Pos[udg_tmpInt])
                  • -------- Count down the number of active time travel users --------
                  • Set timeTravel_Count = (timeTravel_Count - 1)
                  • -------- Reset the unit data. We use this variable to check whether we are already time traveling in the OnUse trigger --------
                  • Set timeTravel_Unit[tmpInt] = No unit
                • Else - Actions
      • -------- We can stop this trigger to save performance if it is not needed --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • timeTravel_Count Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions


These are the variables used: (Player number is used as an index into all array variables)
* timeTravel_Count // used to count how many units are currently using time travel. This is only a performance thing so that we can stop the periodic trigger if it is not needed
* timeTravel_Unit[] // the unit doing the time travel.
* timeTravel_Timer[] // a time (in tenths of a millisecond) until a players unit is supposed to travel back in time.
* timeTravel_Facing[] // saves the facing angle of the time travel unit.
* timeTravel_Pos[] // saves the position of the time travel unit. Needs to be cleaned to avoid memory leaks.
* timeTravel_Hp[] // saves the HP of the time travel unit.
* timeTravel_Mp[] // saves the MP of the time travel unit.
* tmpInt // used only for convenience to make the triggers more readable.


I also attached an example map where you can test these triggers out.
 

Attachments

sunshinex3

You can change this now in User CP.
YES thank you!! this trigger makes time laps work perfectly let me state these variable types

* timeTravel_Count // Integer
* timeTravel_Unit[] // Real Array(1)
* timeTravel_Timer[] // Real Array(1)
* timeTravel_Facing[] // Real Array(1)
* timeTravel_Pos[] // Point Array(1)
* timeTravel_Hp[] // Integer Array(1)
* timeTravel_Mp[] // Unit Array(1)
* tmpInt //Integer

I made these variables and then coppied the triggers over enabled the action the disabled its self automaticly upon copy and it worked perfectly again useing this trigger with roar ability works great ty accname.
 
Last edited:
General chit-chat
Help Users
  • The Helper The Helper:
    Back in the day conan was a young one and his mom was single and I used to tease him that I was going to date his mom and be his daddy - yeah sounds bad now but it was funny at the time
  • The Helper The Helper:
    his mom is my age
  • The Helper The Helper:
    i know right it was pretty funny
  • thewrongvine thewrongvine:
    its pretty funny
    +1
  • tom_mai78101 tom_mai78101:
    Thanks for the context.
    +1
  • The Helper The Helper:
    Happy Hump Day!!!
  • Blackveiled Blackveiled:
    TH old fart gotta have a beer with me one of these days
  • The Helper The Helper:
    I am down anytime Blackveiled
  • Blackveiled Blackveiled:
    count on it then cause you don't live that far from me hah
  • The Helper The Helper:
    really that is cool!
  • The Helper The Helper:
    Hey Tom I added a new Weird tag to the News Prefixes
  • The Helper The Helper:
    What is up Blackveiled?
  • Blackveiled Blackveiled:
    Chillin', lurkin'. :D
  • The Helper The Helper:
    I am working on a bunch of site projects right now doing a bunch of behind the scenes stuff and trying to clean up some stuff that I let slide when I got lazy with the site for a few years...
  • The Helper The Helper:
    Are you in Houston Blackveiled or just in Texas?
  • Blackveiled Blackveiled:
    Houston
  • Blackveiled Blackveiled:
    I've been living here since 2014.
  • The Helper The Helper:
    OK banlord we need to get together soon! The only other member of the site I know in Houston is XXX Conan
  • The Helper The Helper:
    and he does not want none lol
  • The Helper The Helper:
    he put up a picture of his mom one time and she was HOT!
  • The Helper The Helper:
    I wish we still had that
  • Blackveiled Blackveiled:
    Lmao you scared him off I see.
  • The Helper The Helper:
    he will be back
  • The Helper The Helper:
    Conan was like 12 when he started here

    Staff online

    Members online

    Affiliates

    Hive Workshop NUON Dome World Editor Tutorials

    Network Sponsors

    Apex Steel Pipe - Buys and sells Steel Pipe.
    Top