--[[
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