Results 1 to 5 of 5

Thread: [Intended] Tornado AoE is too big.

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

    [Intended] Tornado AoE is too big.

    Dota 1: 175
    Spoiler: 

    function Func2912 takes nothing returns boolean This function checks then we cast tornado
    if GetSpellAbilityId()=='A0VK' then
    call Func2911()
    endif
    return false
    endfunction

    function Func2911 takes nothing returns nothing This function runs after we casted tornado
    local trigger loc_trigger01=CreateTrigger()
    local integer loc_integer01=GetHandleId(loc_trigger01)
    local location loc_location01=GetSpellTargetLoc()
    local unit loc_unit01=GetTriggerUnit()
    local real loc_real01=GetLocationX(loc_location01)
    local real loc_real02=GetLocationY(loc_location01)
    local real loc_real03=Atan2(loc_real02-GetUnitY(loc_unit01),loc_real01-GetUnitX(loc_unit01))
    local unit loc_unit02
    set loc_real01=GetUnitX(loc_unit01)
    set loc_real02=GetUnitY(loc_unit01)
    set loc_unit02=CreateUnit(GetOwningPlayer(loc_unit01), 'n01U',loc_real01,loc_real02,loc_real03*bj_RADTODE G)
    call TriggerRegisterTimerEvent(loc_trigger01,0.025,true )
    call TriggerAddCondition(loc_trigger01,Condition(functi on Func2910))
    call SaveUnitHandle(hashtable001,(loc_integer01),(19),( loc_unit02))
    call SaveReal(hashtable001,(loc_integer01),(66),((loc_r eal01+(400+400.0*(LoadInteger(hashtable001,(GetHan dleId((loc_unit01))),(3000))))*Cos(loc_real03))*1. 0))
    call SaveReal(hashtable001,(loc_integer01),(67),((loc_r eal02+(400+400.0*(LoadInteger(hashtable001,(GetHan dleId((loc_unit01))),(3000))))*Sin(loc_real03))*1. 0))
    call SaveInteger(hashtable001,(loc_integer01),(3000),(( LoadInteger(hashtable001,(GetHandleId(loc_unit01)) ,(3000)))))
    call SaveInteger(hashtable001,(loc_integer01),(3001),(( LoadInteger(hashtable001,(GetHandleId(loc_unit01)) ,(3001)))))
    call SaveReal(hashtable001,(loc_integer01),(137),((loc_ real03)*1.0))
    call SaveGroupHandle(hashtable001,(loc_integer01),(22), (Func0030()))
    call RemoveLocation(loc_location01)
    set loc_trigger01=null
    set loc_location01=null
    set loc_unit01=null
    endfunction

    function Func2910 takes nothing returns boolean This function runs every 0.025 seconds
    local trigger loc_trigger01=GetTriggeringTrigger()
    local integer loc_integer01=GetHandleId(loc_trigger01)
    local unit loc_unit01=(LoadUnitHandle(hashtable001,(loc_integ er01),(19)))
    local real loc_real01=(LoadReal(hashtable001,(loc_integer01), (66)))
    local real loc_real02=(LoadReal(hashtable001,(loc_integer01), (67)))
    local real loc_real03=(LoadReal(hashtable001,(loc_integer01), (137)))
    local integer loc_integer02=(LoadInteger(hashtable001,(loc_integ er01),(3000)))
    local integer loc_integer03=(LoadInteger(hashtable001,(loc_integ er01),(3001)))
    local group loc_group01=(LoadGroupHandle(hashtable001,(loc_int eger01),(22)))
    local real loc_real04=GetUnitX(loc_unit01)+25*Cos(loc_real03)
    local real loc_real05=GetUnitY(loc_unit01)+25*Sin(loc_real03)
    local group loc_group02=Func0030()
    local real loc_real06=Func0148(loc_real04,loc_real05,loc_real 01,loc_real02)
    if loc_real06<=30 then
    set loc_real04=loc_real01
    set loc_real05=loc_real02
    endif
    call SetUnitX(loc_unit01,Func0125(loc_real04))
    call SetUnitY(loc_unit01,Func0125(loc_real05))
    set unit124=loc_unit01
    set group002=loc_group01
    set integer022=loc_integer02
    set integer023=loc_integer03
    call GroupEnumUnitsInRange(loc_group02,loc_real04,loc_r eal05,200,Condition(function Func0301)) JASS uses center-center range. Dota 2 uses center-collision. On normal 24 collision hero Dota 2 AoE should be 175
    call ForGroup(loc_group02,function Func2909)
    call Func0029(loc_group02)
    if loc_real06<=30 or GetTriggerEvalCount(loc_trigger01)>125 then
    call Func0029(loc_group01)
    call KillUnit(loc_unit01)
    call FlushChildHashtable(hashtable001,(loc_integer01))
    call Func0035(loc_trigger01)
    endif
    set loc_trigger01=null
    set loc_unit01=null
    set loc_group01=null
    set loc_group02=null
    return false
    endfunction

    function Func2909 takes nothing returns nothing
    if IsUnitInGroup(GetEnumUnit(),group002)==false then
    call GroupAddUnit(group002,GetEnumUnit())
    call Func2908(unit124,GetEnumUnit(),integer022,integer0 23)
    endif
    endfunction



    Playdota was wrong but now it is fixed.



    Dota 2: 200
    Spoiler: 

    // Invoker: Tornado
    //================================================== ================================================== =============
    "invoker_tornado"
    {
    // General
    //-------------------------------------------------------------------------------------------------------------
    "ID" "5382" // unique ID number for this ability. Do not change this once established or it will invalidate collected stats.
    "AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_POINT | DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_NOT_LEARNABLE | DOTA_ABILITY_BEHAVIOR_IGNORE_BACKSWING"
    "MaxLevel" "1"
    "HotKeyOverride" "X"
    "AbilityUnitDamageType" "DAMAGE_TYPE_MAGICAL"

    // Stats
    //-------------------------------------------------------------------------------------------------------------
    "AbilityCastRange" "2000"
    "AbilityCastPoint" "0"
    "AbilityCooldown" "30"
    "AbilityManaCost" "150"

    // Special
    //-------------------------------------------------------------------------------------------------------------
    "AbilitySpecial"
    {
    "01"
    {
    "var_type" "FIELD_INTEGER"
    "travel_distance" "800 1200 1600 2000 2400 2800 3200"
    "levelkey" "wexlevel"
    }
    "02"
    {
    "var_type" "FIELD_INTEGER"
    "travel_speed" "1000"
    }
    "03"
    {
    "var_type" "FIELD_INTEGER"
    "area_of_effect" "200"

    }
    "04"
    {
    "var_type" "FIELD_INTEGER"
    "vision_distance" "1200"
    }
    "05"
    {
    "var_type" "FIELD_FLOAT"
    "end_vision_duration" "1.75"
    }
    "06"
    {
    "var_type" "FIELD_FLOAT"
    "lift_duration" "0.8 1.1 1.4 1.7 2.0 2.3 2.5"
    "levelkey" "quaslevel"
    }
    "07"
    {
    "var_type" "FIELD_FLOAT"
    "base_damage" "70"
    }
    "08"
    {
    "var_type" "FIELD_FLOAT"
    "quas_damage" "15 30 45 60 75 90 105"
    "levelkey" "quaslevel"
    }
    "09"
    {
    "var_type" "FIELD_FLOAT"
    "wex_damage" "30 60 90 120 150 180 210"
    "levelkey" "wexlevel"
    }
    }
    }

  2. #2
    Basic Member
    Join Date
    Dec 2011
    Location
    Shanghai/Hong Kong
    Posts
    2,880
    175 center to center? if it is the problem of model size, well, we could potentially find dozens of similar bugs

  3. #3
    Basic Member igo95862's Avatar
    Join Date
    Aug 2012
    Posts
    3,142
    Quote Originally Posted by Eric37073 View Post
    175 center to center? if it is the problem of model size, well, we could potentially find dozens of similar bugs
    It should be 175 from center to collision. Model size does not affect collision size.

  4. #4
    Basic Member
    Join Date
    Dec 2011
    Location
    Shanghai/Hong Kong
    Posts
    2,880
    Quote Originally Posted by igo95862 View Post
    It should be 175 from center to collision. Model size does not affect collision size.
    ya i mean collision size or whatever it works

  5. #5
    Volunteer Moderator bu3ny's Avatar
    Join Date
    Oct 2011
    Location
    .-.
    Posts
    11,643
    Added.
    Please, just call me buny.

Posting Permissions

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