arthasdk icon

Auto Timat/Ravenous Hydra v1.0b fix2

arthasdk | PRO | 01/07/13 06:29:25 AM UTC | 0 ⭐ | 238 👁️ | Never ⏰ | []
Lua |

4.99 KB

|

None

|

0 👍

/

0 👎

--[[Auto RavenousHydra/Tiamat v1.0b fix2 by ArthasDK (with help of minionArray from Sida's Auto Carry)]] 
 
local enemyMinions=0    --range =400
local enemyChampCount=0
local minChamps = 1
local minCreeps = 4
-- #################################### Minion Array ###################################
 
minionArray = { team_ally ="##", team_ennemy ="##" }
 
function minionArray.OnLoad()
    map = GetMap()
    minionArray.jungleCreeps = {}
    minionArray.ennemyMinion = {}
    minionArray.allyMinion = {}
    for i = 1, objManager.maxObjects do
        local object = objManager:getObject(i)
        minionArray.OnCreateObj(object)
    end
    if map.index ~= 4 then
        minionArray.team_ally = "Minion_T"..player.team
        minionArray.team_ennemy = "Minion_T"..(player.team == TEAM_BLUE and TEAM_RED or TEAM_BLUE)
    else
        minionArray.team_ally = (player.team == TEAM_BLUE and "Blue" or "Red")
        minionArray.team_ennemy = (player.team == TEAM_BLUE and "Red" or "Blue")
    end
end
 
function minionArray.OnCreateObj(object)
    if object ~= nil and object.type == "obj_AI_Minion" and not object.dead then
        if minionArray.allyMinion[object.name] ~= nil or minionArray.ennemyMinion[object.name] ~= nil or minionArray.allyMinion[object.name] ~= nil then return end
        if string.find(object.name,minionArray.team_ally) then minionArray.allyMinion[object.name] = object
        elseif string.find(object.name,minionArray.team_ennemy) then minionArray.ennemyMinion[object.name] = object
        else minionArray.jungleCreeps[object.name] = object
        end
    end
end
 
function minionArray.OnDeleteObj(object)
    if object ~= nil and object.type == "obj_AI_Minion" and object.name ~= nil then
        if minionArray.jungleCreeps[object.name] ~= nil then minionArray.jungleCreeps[object.name] = nil
        elseif minionArray.ennemyMinion[object.name] ~= nil then minionArray.ennemyMinion[object.name] = nil
        elseif minionArray.allyMinion[object.name] ~= nil then minionArray.allyMinion[object.name] = nil
        end
    end
end
 
function minionArray.objectInRange(objectTable, fromPos, range)
    local objectRanged = {}
    for name,objectTableObject in pairs(minionArray[objectTable]) do
        if objectTableObject ~= nil and objectTableObject.dead == false and objectTableObject.visible and GetDistance2D(fromPos,objectTableObject) <= range then
            table.insert(objectRanged, objectTableObject)
        end
    end
    return #objectRanged, objectRanged
end
 
function minionArray.jungleCreepsInRange(fromPos, range)
    return minionArray.objectInRange("jungleCreeps", fromPos, range)
end
 
function minionArray.ennemyMinionInRange(fromPos, range)
    return minionArray.objectInRange("ennemyMinion", fromPos, range)
end
 
function minionArray.allyMinionInRange(fromPos, range)
    return minionArray.objectInRange("allyMinion", fromPos, range)
end
 
-- #################################### Minion Array ends here ###################################
 
 
function OnCreateObj(obj) 
    if myHero.dead then return end
    minionArray.OnCreateObj(obj)
end
 
function OnDeleteObj(obj) 
    minionArray.OnDeleteObj(obj)
end
 
function GetEnemyChampsCount(range)
    local count=0
    for i=1, heroManager.iCount do
        local target = heroManager:GetHero(i)
        if target ~= nil and target.dead == false and target.team ~= player.team and target.visible == true and player:GetDistance(target) < range then--385 then
        count=count+1
        end
    end
    return count
end
 
function OnTick()
    if myHero.dead then return end
    enemyMinions = minionArray.ennemyMinionInRange(myHero, 400)
    enemyChampCount = GetEnemyChampsCount(400)
    TiamatSlot = GetInventorySlotItem(3077)
    RavenousHydraSlot = GetInventorySlotItem(3074)
    
    if TiamatSlot then
        if enemyChampCount >= minChamps then
            if myHero:CanUseSpell(TiamatSlot) == READY then
                CastSpell(TiamatSlot)
            end
        end
        if enemyMinions>=minCreeps then
            if myHero:CanUseSpell(TiamatSlot) == READY then
                CastSpell(TiamatSlot)
            end
        end 
    end
    
    if RavenousHydraSlot then
        if enemyChampCount >= minChamps then
            if myHero:CanUseSpell(RavenousHydraSlot) == READY then
                CastSpell(RavenousHydraSlot)
            end
        end
        if enemyMinions>=minCreeps then
            if myHero:CanUseSpell(RavenousHydraSlot) == READY then
            CastSpell(RavenousHydraSlot)
            end
        end
    end
end
 
function OnLoad() 
    minionArray.OnLoad()    
    PrintChat("AutoTiamat/Revenous Hydra by ArthasDK (help Sida, Anonymous) Loaded!")
    PrintChat("Current Minimum Champs/Minions need for AutoCast ["..tostring(minChamps).."/"..tostring(minCreeps).."] to change this type .minion# (minions 1-10) or .champ# (champs 1-5)")
end
 
function OnSendChat(text)
        
    for i=1,10,1 do 
            local str=".minion"..tostring(i)
            if text == str then
                BlockChat()
                minCreeps=i
                PrintChat("Minimum Number of Creeps Present for Ravenous Hydra/Tiamat :"..tostring(minCreeps))
            end
    end
    
    for i=1,5,1 do 
            local str=".champ"..tostring(i)
            if text == str then
                BlockChat()
                minChamps=i
                PrintChat("Minimum Number of Champs Present for Ravenous Hydra/Tiamat :"..tostring(minChamps))
            end
    end
end

Comments