arthasdk icon

galio kata

arthasdk | PRO | 05/27/13 06:16:43 PM UTC | 0 ⭐ | 163 👁️ | Never ⏰ | []
Lua |

5.97 KB

|

None

|

0 👍

/

0 👎

--[[
        Galio Combo 1.0 by burn
 
        -Combo: Q -> E -> W*
        -Target configuration, Press shift to configure
        -Option to autoignite killable enemy
        -Option to use R to stop enemy ultimates
        -Option to auto level up
        
        ****edited by Arthasdk to add Galio-Katarina WomboCombo*****
]]
if myHero.charName ~= "Galio" then return end
 
 
local minChamps=3
 
local Qrange = 940
local Erange = 1180
local ultirange = 570
local ignite = nil
local QREADY, WREADY, EREADY, RREADY, IREADY = false, false, false, false, false
 
--Q prediction
local delay = 240
local speed = 1.4 --(speed increased on purpose)
local travelDuration = 0
local predic = nil
--E prediction
local ep = TargetPrediction(1180, 1.4, 240) --(speed increased on purpose)
 
function OnLoad()
        PrintChat(">> Galio Combo 1.5.1 loaded! (edited by Arthasdk to add Galio-Katarina WomboCombo)")
        GalioConfig = scriptConfig("Galio", "Galiocombo")
        GalioConfig:addParam("scriptActive", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("X"))
        GalioConfig:addParam("tryKataUlti", "K_ULTI", SCRIPT_PARAM_ONKEYDOWN, false, 32)
        GalioConfig:addParam("drawcircles", "Draw our range", SCRIPT_PARAM_ONOFF, true)
        GalioConfig:addParam("useW", "Use W if enemy is near", SCRIPT_PARAM_ONOFF, true)       
        GalioConfig:addParam("autoignite", "Auto Ignite killable enemy", SCRIPT_PARAM_ONOFF, true)
        GalioConfig:permaShow("scriptActive")
        GalioConfig:permaShow("tryKataUlti")
        ts = TargetSelector(TARGET_LOW_HP,Erange,DAMAGE_MAGIC,false)
        ts.name = "Galio"
        GalioConfig:addTS(ts)
        if myHero:GetSpellData(SUMMONER_1).name:find("SummonerDot") then ignite = SUMMONER_1
        elseif myHero:GetSpellData(SUMMONER_2).name:find("SummonerDot") then ignite = SUMMONER_2 end
end
 
 
 
function OnTick()
        ts:update()
        
        if GalioConfig.tryKataUlti then
            ts:update()
            local katarina=GetKatarina()    --
            if katarina ~= nil and GetEnemyChampsCount(ultirange) >= minChamps then
                if WREADY then
                    CastSpell(_W, katarina)
                end
                if RREADY then
                    CastSpell(_R)
                end
            end
        end
       
        if ts.target ~= nil then
                ePred = ep:GetPrediction(ts.target) --E prediction             
                travelDuration = (delay + GetDistance(myHero, ts.target)/speed)
                ts:SetPrediction(travelDuration)
                predic = ts.nextPosition --Q prediction
        end
               
                  
               
        QREADY = (myHero:CanUseSpell(_Q) == READY)
        WREADY = (myHero:CanUseSpell(_W) == READY)
        EREADY = (myHero:CanUseSpell(_E) == READY)
        RREADY = (myHero:CanUseSpell(_R) == READY)
        IREADY = (ignite ~= nil and myHero:CanUseSpell(ignite) == READY)
       
        if GalioConfig.autoignite then    
                if IREADY then
                        local ignitedmg = 0    
                        for j = 1, heroManager.iCount, 1 do
                                local enemyhero = heroManager:getHero(j)
                                if ValidTarget(enemyhero,600) then
                                        ignitedmg = 50 + 20 * myHero.level
                                        if enemyhero.health <= ignitedmg then
                                                        CastSpell(ignite, enemyhero)
                                        end
                                end
                        end
                end
        end
       
        if GalioConfig.scriptActive and ts.target ~= nil then
                ts:update()
                if QREADY and predic ~= nil and GetDistance(predic) <= Qrange then
                        CastSpell(_Q, predic.x, predic.z)
                end
                if EREADY and ePred ~= nil and GetDistance(ePred) <= Erange then
                        CastSpell(_E, ePred.x, ePred.z)
                end
                if GalioConfig.useW and WREADY and GetDistance(ts.target) <= 450 then
                        CastSpell(_W, myHero)
                end
                if GetDistance(ts.target) < 165 then
                        myHero:Attack(ts.target)
                end
        end
        
        
        
end
 
function OnDraw()
    if GalioConfig.drawcircles and not myHero.dead then
            DrawCircle(myHero.x, myHero.y, myHero.z, Qrange, 0xc2743c)
            DrawCircle(myHero.x, myHero.y, myHero.z, Erange, 0x9999FF)
            DrawCircle(myHero.x, myHero.y, myHero.z, ultirange, 0xFF6600)
            if ts.target ~= nil then
                    DrawText("Targetting: " .. ts.target.charName, 15, 100, 100, 0xFFFF0000)
                    DrawCircle(ts.target.x, ts.target.y, ts.target.z, 100, 0x00FF00)
            end
    end
    
    if GalioConfig.tryKataUlti then
        DrawCircle(myHero.x, myHero.y, myHero.z, ultirange, 0xFF6600)
        DrawText("MinChamps="..minChamps..", Number of Enemy Caught in Ultimate: " .. GetEnemyChampsCount(ultirange).." , Katarina there :"..tostring(IsKatarinaThere()), 20, 0, 200, 0xFFFF0000)
    end
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 GetKatarina()
    local katarina=nil
    for i=1, heroManager.iCount do
        local target = heroManager:GetHero(i)
        if target.charName == "Katarina" and target ~= nil and target.dead == false and target.team == player.team and player:GetDistance(target) < 720 then
            katarina=target
        end
    end
    return katarina
end
 
function IsKatarinaThere()
    if GetKatarina() then
        return true
    else
        return false
    end
end
 
function OnSendChat(msg)
       ts:OnSendChat(msg, "pri")
end
 
function OnWndMsg(msg,key)  
    if IsKeyPressed(string.byte("I")) then
        minChamps=(minChamps+1)%6
        PrintChat("Min Champs :"..minChamps)
    end
end

Comments