Results 1 to 5 of 5

Thread: [Confirmed] Telekinesis fall duration is too short.

  1. #1
    Basic Member igo95862's Avatar
    Join Date
    Aug 2012
    Posts
    3,142

    [Confirmed] Telekinesis fall duration is too short.

    Dota 2: Set to 0.3

    Spoiler: 

    // Rubick: Telekinesis
    //================================================== ================================================== =============
    "rubick_telekinesis"
    {
    // General
    //-------------------------------------------------------------------------------------------------------------
    "ID" "5448" // unique ID number for this ability. Do not change this once established or it will invalidate collected stats.
    "AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_UNIT_TARGET"
    "AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_ENEMY"
    "AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC | DOTA_UNIT_TARGET_MECHANICAL"

    // Casting
    //-------------------------------------------------------------------------------------------------------------
    "AbilityCastPoint" "0.1 0.1 0.1 0.1"

    // Time
    //-------------------------------------------------------------------------------------------------------------
    "AbilityCooldown" "22"

    // Cost
    //-------------------------------------------------------------------------------------------------------------
    "AbilityManaCost" "120 120 120 120"

    // Cast Range
    //-------------------------------------------------------------------------------------------------------------
    "AbilityCastRange" "550 575 600 625"

    // Special
    //-------------------------------------------------------------------------------------------------------------
    "AbilitySpecial"
    {
    "01"
    {
    "var_type" "FIELD_INTEGER"
    "radius" "325 325 325 325"
    }
    "02"
    {
    "var_type" "FIELD_FLOAT"
    "lift_duration" "1.5 1.75 2.0 2.25"
    }
    "03"
    {
    "var_type" "FIELD_FLOAT"
    "stun_duration" "1.0 1.25 1.5 1.75"
    }
    "04"
    {
    "var_type" "FIELD_INTEGER"
    "max_land_distance" "375 375 375 375"
    }
    "05"
    {
    "var_type" "FIELD_FLOAT"
    "fall_duration" "0.3 0.3 0.3 0.3" // the portion of the lift that is falling

    }
    "06"
    {
    "var_type" "FIELD_INTEGER"
    "cast_range_tooltip" "550 575 600 625"
    }
    }


    Dota 1: 0.5 seconds

    Spoiler: 


    function Func3985 takes unit loc_unit01,unit loc_unit02,unit loc_unit03,real loc_real01,real loc_real02,effect loc_effect01,effect loc_effect02 returns nothing
    local trigger loc_trigger01=CreateTrigger()
    local integer loc_integer01=GetHandleId(loc_trigger01)
    local real loc_real03=loc_real01
    local real loc_real04=loc_real02
    local real loc_real05=Func0168(GetUnitX(loc_unit02),GetUnitY( loc_unit02),loc_real01,loc_real02)*bj_DEGTORAD
    if Func0148(GetUnitX(loc_unit02),GetUnitY(loc_unit02) ,loc_real01,loc_real02)>375 then
    set loc_real03=GetUnitX(loc_unit02)+375*Cos(loc_real05 )
    set loc_real04=GetUnitY(loc_unit02)+375*Sin(loc_real05 )
    endif
    call SaveUnitHandle(hashtable001,(loc_integer01),(2),(l oc_unit01))
    call SaveUnitHandle(hashtable001,(loc_integer01),(17),( loc_unit02))
    call SaveReal(hashtable001,(loc_integer01),(137),((loc_ real05)*1.0))
    call SaveReal(hashtable001,(loc_integer01),(47),((loc_r eal03)*1.0))
    call SaveReal(hashtable001,(loc_integer01),(48),((loc_r eal04)*1.0))
    call SaveReal(hashtable001,(loc_integer01),(189),((GetU nitX(loc_unit02))*1.0))
    call SaveReal(hashtable001,(loc_integer01),(190),((GetU nitY(loc_unit02))*1.0))
    call SaveEffectHandle(hashtable001,(loc_integer01),(32) ,(loc_effect01))
    call SaveEffectHandle(hashtable001,(loc_integer01),(176 ),(loc_effect02))
    call TriggerRegisterTimerEvent(loc_trigger01,0.02,true) // the fall function runs every 0.02 seconds
    call TriggerAddCondition(loc_trigger01,Condition(functi on Func3984))

    set loc_trigger01=null
    endfunction


    function Func3984 takes nothing returns boolean
    local trigger loc_trigger01=GetTriggeringTrigger()
    local integer loc_integer01=GetHandleId(loc_trigger01)
    local unit loc_unit01=(LoadUnitHandle(hashtable001,(loc_integ er01),(2)))
    local unit loc_unit02=(LoadUnitHandle(hashtable001,(loc_integ er01),(17)))
    local real loc_real01=(LoadReal(hashtable001,(loc_integer01), (137)))
    local real loc_real02=(LoadReal(hashtable001,(loc_integer01), (47)))
    local real loc_real03=(LoadReal(hashtable001,(loc_integer01), (48)))
    local real loc_real04=(LoadReal(hashtable001,(loc_integer01), (189)))
    local real loc_real05=(LoadReal(hashtable001,(loc_integer01), (190)))
    local group loc_group01
    local real loc_real06=Func0148(loc_real04,loc_real05,loc_real 02,loc_real03)/25
    local location loc_location01
    local integer loc_integer02=GetTriggerEvalCount(loc_trigger01)
    local real loc_real07=loc_real04+loc_real06*loc_integer02*Cos (loc_real01)
    local real loc_real08=loc_real05+loc_real06*loc_integer02*Sin (loc_real01)
    call SetUnitX(loc_unit02,Func0125(loc_real07))
    call SetUnitY(loc_unit02,Func0128(loc_real08))
    if Func0099(loc_unit02)==false then
    call SetUnitFlyHeight(loc_unit02,325-13*loc_integer02,0)
    endif
    if loc_integer02==25 then // The function ends on 25th trigger run
    call SetUnitX(loc_unit02,Func0125(loc_real02))
    call SetUnitY(loc_unit02,Func0128(loc_real03))
    if IsPointInRegion(region006,GetUnitX(loc_unit02),Get UnitY(loc_unit02))==true then
    set loc_location01=Func0277(GetUnitX(loc_unit02),GetUn itY(loc_unit02))
    call SetUnitX(loc_unit02,Func0126(GetLocationX(loc_loca tion01)))
    call SetUnitY(loc_unit02,Func0129(GetLocationY(loc_loca tion01)))
    call RemoveLocation(loc_location01)
    set loc_location01=null
    endif
    set unit124=loc_unit01
    set unit390=loc_unit01
    set loc_group01=Func0030()
    call GroupEnumUnitsInRange(loc_group01,GetUnitX(loc_uni t02),GetUnitY(loc_unit02),350,Condition(function Func0303))
    call GroupRemoveUnit(loc_group01,loc_unit02)
    call ForGroup(loc_group01,function Func3983)
    call Func0029(loc_group01)
    call Func0179(GetUnitX(loc_unit02),GetUnitY(loc_unit02) ,150)
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\ \Orc\\WarStomp\\WarStompCaster.mdl",GetUnitX(loc_u nit02),GetUnitY(loc_unit02)))
    call DestroyEffect((LoadEffectHandle(hashtable001,(loc_ integer01),(32))))
    call DestroyEffect((LoadEffectHandle(hashtable001,(loc_ integer01),(176))))
    call FlushChildHashtable(hashtable001,(loc_integer01))
    call Func0035(loc_trigger01)
    if Func0099(loc_unit02)==false then
    call SetUnitFlyHeight(loc_unit02,GetUnitDefaultFlyHeigh t(loc_unit02),0)
    endif
    call SetUnitPathing(loc_unit02,true)
    endif
    set loc_trigger01=null
    set loc_unit01=null
    set loc_unit02=null
    set loc_group01=null
    return false
    endfunction




    25 runs * 0.02 seconds = 0.5 seconds

  2. #2
    Volunteer Moderator bu3ny's Avatar
    Join Date
    Oct 2011
    Location
    .-.
    Posts
    11,639
    So units land too fast after hovering?
    Please, just call me buny.

  3. #3
    Basic Member igo95862's Avatar
    Join Date
    Aug 2012
    Posts
    3,142
    Quote Originally Posted by bu3ny View Post
    So units land too fast after hovering?
    Yes but also this means that they hover longer.

  4. #4
    Volunteer Moderator bu3ny's Avatar
    Join Date
    Oct 2011
    Location
    .-.
    Posts
    11,639
    Oh, so the overall duration is correct, just the time they start to move to new location is wrong?
    Please, just call me buny.

  5. #5
    Basic Member igo95862's Avatar
    Join Date
    Aug 2012
    Posts
    3,142
    Quote Originally Posted by bu3ny View Post
    Oh, so the overall duration is correct, just the time they start to move to new location is wrong?
    Yes. The landing time is a constant value.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •