Forum Rules

  • No flaming or derogatory remarks, directly or through insinuation.
  • No discussion, sharing or referencing illegal software such as hacks, keygen, cracks and pirated software.
  • No offensive contents, including but not limited to, racism, gore or pornography.
  • No excessive spam/meme, i.e. copious one liners in a short period of time, typing with all caps or posting meme responses (text/image).
  • No trolling, including but not limited to, flame incitation, user provocation or false information distribution.
  • No link spamming or signature advertisements for content not specific to Dota 2.
  • No Dota 2 key requests, sell, trade etc.
  • You may not create multiple accounts for any purpose, including ban evasion, unless expressly permitted by a moderator.

  • Please search before posting. One thread per issue. Do not create another thread if there is an existing one already.
  • Before posting anything, make sure you check out all sticky threads (e.g., this). Do not create new threads about closed ones.
  • It is extremely important that you post in correct forum section.

  • Balance discussion only in Misc.
  • All art related (such as hero model) feedbacks go to Art Feedback Forum.
  • All matchmaking feedback should go here: Matchmaking Feedback
  • All report/low priority issues should go here: Commend/Report/Ban Feedback
  • No specific workshop item feedback. These should go to workshop page of that item.
  • When posting in non-bugs section (such as this), use [Bugs], [Discussion] or [Suggestion] prefix in your thread name.

In case you object some action by a moderator, please contact him directly through PM and explain your concerns politely. If you are still unable to resolve the issue, contact an administrator. Do not drag these issues in public.

All rules are meant to augment common sense, please use them when not conflicted with aforementioned policies.
See more
See less

3 second TP on the same tower

  • Filter
  • Time
  • Show
Clear All
new posts

  • 3 second TP on the same tower

    I've noticed since the tp range increase when u tp to the farthest point of a tower and ur ally tps to the opposite farthest point of the tower the second tp duration is still 3s. I first found this out in a pub when I tped to a tower as my ally was tping, my tp was 3 seconds so I was expecting him to be 2s late but we both landed at the same time.

    Now I'm not sure if this is a bug or not, it might be an intended change along with the tp range increase or its just outside of the tp penalty range.(if something like this exists)
    Couldn't find anything related to this, if it was posted before maybe the title is different.

    No screenshots or anything, its hard to take them to show this and i cbf to make a video. Pretty easy to repro just get one more hero and tp to the farthest point of a tower, then tp the other one to the other side, the tps dont have to be done simultaneously.

  • #2
    Confirmed. Tested by TPing on the top lane (Radiant), clicking outside of the tower range in both directions (make sure to not click to far south as the TP will target the T2 tower then). Both TPs took 3 seconds.
    If you think I've closed or deleted a post unjustified, feel free to PM me and I'll explain it to you/discuss it with you further.


    • #3
      Did some testing of my own. From what it looks like the following happens:

      The first person teleports, the game checks for "previous tp's", then determines warp time. The game then draws a circle from where you land. It does NOT take into account which tower / rax / ziggurat / moon well you teleport to, it merely draws a circle.

      I will need someone with JASS knowledge to check the appropriate code and intent. This can cause issues with the middle T2 and T3 towers as the circles overlap. (I.e. someone tping behind their T2 tower can slow down a tp of someone tping to the front of the T3 tower and vice versa).

      It may be a general bug with how it's coded.

      And you should not be able to tp to ziggurats and moon wells!

      1. Teleportation shouldn't consider small filler buildings
      Comprehensive Damage Reduction & Amplifications Dota 2 Guide


      • #4
        I hate reading that stuff. However, I found the coding.

        The function responsible is Func0792.
        function Func0792 takes nothing returns nothing
          if GetSpellAbilityId()=='A1R5' and Func0095(GetTriggerUnit())==false then
            call Func0790()
          if GetSpellAbilityId()=='A231' then
            call Func0791()
        A1R5 is the ability used by the TP scroll, A231 is the ability used by BoTs.
        set loc_integer03=Func0776(GetPlayerId(GetOwningPlayer(loc_unit01)),loc_real01,loc_real02)
        set loc_real04=3
        if loc_integer03>0 then
          set loc_real04=4.5+0.5*loc_integer03
        The calculation of the duration is done in Func0776.
          exitwhen loc_integer02>integer390
          if(loc_real03<reals015[loc_integer02]+real201)and(Func0148(loc_real01,loc_real02,reals013[loc_integer02],reals014[loc_integer02])<real202*2+50)and IsPlayerAlly(Player(loc_integer01),players006[loc_integer02])==true then
            set loc_integer03=loc_integer03+1
          set loc_integer02=loc_integer02+1
        The function basicly tests for a bunch of points (reals013,reals014) if the distance to the point loc_real01,loc_real02 is smaller then a value (real202*2+50) and increases the duration of the TP by 1 (or rather 0.5, but whatever).
        function Func0775 takes integer loc_integer01,real loc_real01,real loc_real02 returns nothing
          if IsPointInRegion(region008,loc_real01,loc_real02)==false then
            set integer390=integer390+1
            set players006[integer390]=Player(loc_integer01)
            set reals013[integer390]=loc_real01
            set reals014[integer390]=loc_real02
            set reals015[integer390]=(TimerGetElapsed(timer001))
        These points get added in Func0775 including their time and the TP duration increase is only done if the remaining time for that point is bigger then the current TP duration. This function is called in func0790:
        set loc_location01=GetSpellTargetLoc()
        set loc_real01=GetLocationX(loc_location01)
        set loc_real02=GetLocationY(loc_location01)
        call Func0775(GetPlayerId(GetOwningPlayer(loc_unit01)),loc_real01,loc_real02)
        So Dota 1 does the same. However, there's a catch. If the TP is casted outside of the tower range, the TP target gets changed (happens in Dota 2 too, maximum TP range aways form a building):
        if Func0148(loc_real01,loc_real02,GetUnitX(loc_unit02),GetUnitY(loc_unit02))>real202 then
            set loc_real03=Atan2(loc_real02-GetUnitY(loc_unit02),loc_real01-GetUnitX(loc_unit02))
            set loc_real01=GetUnitX(loc_unit02)+real202*Cos(loc_real03)
            set loc_real02=GetUnitY(loc_unit02)+real202*Sin(loc_real03)
        If the TP is further away then real202, the distance is set to real202 (radius). The check if a TP is in range of an old TP checks for a maximum range of real202*2+50, so it used the full diameter and a buffer of 50.

        Or in short: two TPs in Dota 1 at one tower can be at maximum real202*2 away from each other and each TP within real202*2+50 increase the time.
        EDIT: Overlapping towers don't really matter. The closest tower to the cast will be the spellTarget and be therefore used for the calulation of the new point. The range check only uses the point of the previous TP.

        This should NOT be possible in Dota 1.
        Last edited by Kryil-; 08-20-2014, 05:55 AM.
        If you think I've closed or deleted a post unjustified, feel free to PM me and I'll explain it to you/discuss it with you further.


        • #5
          So I had a look and it does cause delayed tps when the towers are close (in dota 1 as well). It's all to do with where you tp.
          Last edited by Wyn-Ryder; 08-24-2014, 02:51 AM.
          Comprehensive Damage Reduction & Amplifications Dota 2 Guide


          • #6
            I did research. Verdict:

            Teleportation delay is calculated from TP pads locations not towers. This is consistent in both games. In dota 2 however search radius is smaller.

            Thus if there is enough space between two teleportation pads on one tower, two teleportation with 3 seconds delay are possible. (not necessary to click outside range)

            Vice versa if you place two TP pads on separated towers close to each other, second TP will be delayed.

            In dota 1 there are similar mechanics,however , TP on one tower with two separated timers in not possible because the radius is calculated as "max tp distance"*2+50=1200.
            From my tests it seems like dota 2 search radius lacks 100 extra units and equals only 1100.

            P.S. TP scrolls mechanics actually leaking memory in dota 1. It saves every single usage of teleport scroll and then checks its coordinates and timers. The more scroll you use the more data it stores and checks next time essentially wasting memory and processor.

            Short version: Search distance for previous TPs

            Dota 1: 1200

            Dota 2: 1100
            Last edited by igo95862; 08-24-2014, 11:51 AM.
            Known Tooltips and UI information Issues List
            Unreleased heroes data:

            Hero Balance Compilation 6.48 onwards
            Items and Other Balance compilation 6.48 onwards
            Dota 1 6.81c Test Map