--[[ ____ __. .__ | |/ _|____ ___.__.| | ____ | < \__ \< | || | _/ __ \ | | \ / __ \\___ || |_\ ___/ |____|__ (____ / ____||____/\___ > \/ \/\/ \/ Change Log: 1.0 - Script Release 1.03 - No W on Back 1.04 - No Ult on Jungle 1.05 - Fixed ally heal/ult 1.06 - Fixed ally heal/ult auto moving 1.061 - Added ScriptStatus Update 1.07 - Added Auto Harass Feature - Changed Menu - Small Change to JungleFarm() - Min. Mana to Chase lowered 1.072 - Fixed Q Cast in Combo/Harass - Fixed Chase with W (Kayle & Allies) - Fixed E Cast in Harass 1.073 - Added BOTRK/Cutlass/Zhonya's - Self Ult Rework - Refixed Q Cast/E Cast 1.0731 - New Script Status Info 1.074 - Won't Ult Without Enemies 1.075 - Changed Ultimate Logic (Very Basic Now) - Fixed Q/E calls on jungling - Temporarily removed ally ulting - Temporarily disabled automatic Zhonyas - E Cast --]] local version = "1.0751" local author = "Titos" local TextList = {"Do Not Chase", "You Can Chase", "Ally Can Chase"} local ChaseText = {} local AUTOUPDATE = true local UPDATE_HOST = "raw.github.com" local UPDATE_PATH = "/TitosOceanus/Bot-of-Legends/master/Kayle%20-%20Holy%20Fervor.lua".."?rand="..math.random(1,10000) local UPDATE_FILE_PATH = SCRIPT_PATH..GetCurrentEnv().FILE_NAME local UPDATE_URL = "https://"..UPDATE_HOST..UPDATE_PATH function _AutoupdaterMsg(msg) print("Kayle: "..msg..".") end if AUTOUPDATE then local ServerData = GetWebResult(UPDATE_HOST, "/TitosOceanus/Bot-of-Legends/master/version/Kayle.version") if ServerData then ServerVersion = type(tonumber(ServerData)) == "number" and tonumber(ServerData) or nil if ServerVersion then if tonumber(version) < ServerVersion then _AutoupdaterMsg("New version available "..ServerVersion) _AutoupdaterMsg("Updating, please don't press F9") DelayAction(function() DownloadFile(UPDATE_URL, UPDATE_FILE_PATH, function () _AutoupdaterMsg("Successfully updated. ("..version.." => "..ServerVersion.."), press F9 twice to load the updated version.") end) end, 3) else _AutoupdaterMsg("You have got the latest version ("..ServerVersion..")") end end else _AutoupdaterMsg("Error downloading version info") end end if myHero.charName ~= "Kayle" then return end -- Script Status -- assert(load(Base64Decode("G0x1YVIAAQQEBAgAGZMNChoKAAAAAAAAAAAAAQIKAAAABgBAAEFAAAAdQAABBkBAAGUAAAAKQACBBkBAAGVAAAAKQICBHwCAAAQAAAAEBgAAAGNsYXNzAAQNAAAAU2NyaXB0U3RhdHVzAAQHAAAAX19pbml0AAQLAAAAU2VuZFVwZGF0ZQACAAAAAgAAAAgAAAACAAotAAAAhkBAAMaAQAAGwUAABwFBAkFBAQAdgQABRsFAAEcBwQKBgQEAXYEAAYbBQACHAUEDwcEBAJ2BAAHGwUAAxwHBAwECAgDdgQABBsJAAAcCQQRBQgIAHYIAARYBAgLdAAABnYAAAAqAAIAKQACFhgBDAMHAAgCdgAABCoCAhQqAw4aGAEQAx8BCAMfAwwHdAIAAnYAAAAqAgIeMQEQAAYEEAJ1AgAGGwEQA5QAAAJ1AAAEfAIAAFAAAAAQFAAAAaHdpZAAEDQAAAEJhc2U2NEVuY29kZQAECQAAAHRvc3RyaW5nAAQDAAAAb3MABAcAAABnZXRlbnYABBUAAABQUk9DRVNTT1JfSURFTlRJRklFUgAECQAAAFVTRVJOQU1FAAQNAAAAQ09NUFVURVJOQU1FAAQQAAAAUFJPQ0VTU09SX0xFVkVMAAQTAAAAUFJPQ0VTU09SX1JFVklTSU9OAAQEAAAAS2V5AAQHAAAAc29ja2V0AAQIAAAAcmVxdWlyZQAECgAAAGdhbWVTdGF0ZQAABAQAAAB0Y3AABAcAAABhc3NlcnQABAsAAABTZW5kVXBkYXRlAAMAAAAAAADwPwQUAAAAQWRkQnVnc3BsYXRDYWxsYmFjawABAAAACAAAAAgAAAAAAAMFAAAABQAAAAwAQACBQAAAHUCAAR8AgAACAAAABAsAAABTZW5kVXBkYXRlAAMAAAAAAAAAQAAAAAABAAAAAQAQAAAAQG9iZnVzY2F0ZWQubHVhAAUAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAAAABAAAABQAAAHNlbGYAAQAAAAAAEAAAAEBvYmZ1c2NhdGVkLmx1YQAtAAAAAwAAAAMAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABgAAAAYAAAAGAAAABgAAAAUAAAADAAAAAwAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAIAAAACAAAAAgAAAAIAAAAAgAAAAUAAABzZWxmAAAAAAAtAAAAAgAAAGEAAAAAAC0AAAABAAAABQAAAF9FTlYACQAAAA4AAAACAA0XAAAAhwBAAIxAQAEBgQAAQcEAAJ1AAAKHAEAAjABBAQFBAQBHgUEAgcEBAMcBQgABwgEAQAKAAIHCAQDGQkIAx4LCBQHDAgAWAQMCnUCAAYcAQACMAEMBnUAAAR8AgAANAAAABAQAAAB0Y3AABAgAAABjb25uZWN0AAQRAAAAc2NyaXB0c3RhdHVzLm5ldAADAAAAAAAAVEAEBQAAAHNlbmQABAsAAABHRVQgL3N5bmMtAAQEAAAAS2V5AAQCAAAALQAEBQAAAGh3aWQABAcAAABteUhlcm8ABAkAAABjaGFyTmFtZQAEJgAAACBIVFRQLzEuMA0KSG9zdDogc2NyaXB0c3RhdHVzLm5ldA0KDQoABAYAAABjbG9zZQAAAAAAAQAAAAAAEAAAAEBvYmZ1c2NhdGVkLmx1YQAXAAAACgAAAAoAAAAKAAAACgAAAAoAAAALAAAACwAAAAsAAAALAAAADAAAAAwAAAANAAAADQAAAA0AAAAOAAAADgAAAA4AAAAOAAAACwAAAA4AAAAOAAAADgAAAA4AAAACAAAABQAAAHNlbGYAAAAAABcAAAACAAAAYQAAAAAAFwAAAAEAAAAFAAAAX0VOVgABAAAAAQAQAAAAQG9iZnVzY2F0ZWQubHVhAAoAAAABAAAAAQAAAAEAAAACAAAACAAAAAIAAAAJAAAADgAAAAkAAAAOAAAAAAAAAAEAAAAFAAAAX0VOVgA="), nil, "bt", _ENV))() ScriptStatus("TGJJFIGHKMO") function OnLoad() print("Titos: Kayle - Holy Fervor ["..version.."] Loaded.") Variables() Menu() DelayAction(function() LoadOrbwalker() end, 10) end function Variables() SkillQ = { name = "Reckoning", range = 650, ready = false } SkillW = { name = "Divine Blessing", range = 900, ready = false } SkillE = { name = "Righteous Fury", range = 525, width = 150, ready = false } SkillR = { name = "Intervention", range = 900, ready = false } local ignite = nil 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 EnemyMinions = minionManager(MINION_ENEMY, SkillE.range, myHero, MINION_SORT_MAXHEALTH_DEC) JungleMinions = minionManager(MINION_JUNGLE, SkillE.range, myHero, MINION_SORT_MAXHEALTH_DEC) end function LoadOrbwalker() if _G.AutoCarry ~= nil then SACLoaded = true Settings.Orbwalker:addParam("info", "Detected SAC", SCRIPT_PARAM_INFO, "") _G.AutoCarry.Skills:DisableAll() PrintChat("SAC: Loaded") else if not FileExist(LIB_PATH.."SxOrbWalk.lua") then LuaSocket = require("socket") ScriptSocket = LuaSocket.connect("sx-bol.eu", 80) ScriptSocket:send("GET /BoL/TCPUpdater/GetScript.php?script=raw.githubusercontent.com/Superx321/BoL/master/common/SxOrbWalk.lua&rand="..tostring(math.random(1000)).." HTTP/1.0\r\n\r\n") ScriptReceive, ScriptStatus = ScriptSocket:receive('*a') ScriptRaw = string.sub(ScriptReceive, string.find(ScriptReceive, "")+11, string.find(ScriptReceive, "")-1) ScriptFileOpen = io.open(LIB_PATH.."SxOrbWalk.lua", "w+") ScriptFileOpen:write(ScriptRaw) ScriptFileOpen:close() end require("SxOrbwalk") SxOrbLoaded = true _G.SxOrb:LoadToMenu(Settings.Orbwalker) end end function GetOrbTarget() TargetSelector:update() if SACLoaded then return _G.AutoCarry.Crosshair:GetTarget() end return TargetSelector.target end function OnDraw() if not myHero.dead and not Settings.Draw.Disable then if SkillQ.ready and Settings.Draw.qDraw then DrawCircle(myHero.x, myHero.y, myHero.z, SkillQ.range, ARGB(255, 255, 125, 0)) end if SkillW.ready and Settings.Draw.wDraw then DrawCircle(myHero.x, myHero.y, myHero.z, SkillW.range, ARGB(255, 255, 125, 0)) end if SkillE.ready and Settings.Draw.eDraw then DrawCircle(myHero.x, myHero.y, myHero.z, SkillE.range, ARGB(255, 255, 125, 0)) end if SkillR.ready and Settings.Draw.rDraw then DrawCircle(myHero.x, myHero.y, myHero.z, SkillR.range, ARGB(255, 255, 125, 0)) end if Settings.Draw.targetcircle and Target then DrawCircle(Target.x, Target.y, Target.z, 100, ARGB(255, 255, 125, 0)) end end end function OnTick() Target = GetOrbTarget() ComboKey = Settings.Keybind.ComboKey HarassKey = Settings.Keybind.HarassKey ClearKey = Settings.Keybind.ClearKey AutoHarass = Settings.Keybind.AutoHarass AutoHeal = Settings.Keybind.HealKey AutoUlt = Settings.Keybind.UltimateKey Checks() Healing() Intervention() Killsteal() if ComboKey then Combo(Target) end if HarassKey or AutoHarass then Harass(Target) end if ClearKey then LaneClear() JungleClear() end end function Checks() SkillQ.ready = (myHero:CanUseSpell(_Q) == READY) SkillW.ready = (myHero:CanUseSpell(_W) == READY) SkillE.ready = (myHero:CanUseSpell(_E) == READY) SkillR.ready = (myHero:CanUseSpell(_R) == READY) Iready = (ignite ~= nil and myHero:CanUseSpell(ignite) == READY) end function Menu() Settings = scriptConfig("Kayle - Holy Fervor "..version.."", "Kayle") Settings:addSubMenu("["..myHero.charName.."] - Keybind Settings", "Keybind") Settings.Keybind:addParam("ComboKey", "Combo Key:", SCRIPT_PARAM_ONKEYDOWN, false, 32) Settings.Keybind:addParam("HarassKey", "Harass Key:", SCRIPT_PARAM_ONKEYDOWN, false, GetKey("C")) Settings.Keybind:addParam("AutoHarass", "Automatic Harass:", SCRIPT_PARAM_ONKEYTOGGLE, false, string.byte("T")) Settings.Keybind:addParam("ClearKey", "Clear Key:", SCRIPT_PARAM_ONKEYDOWN, false, GetKey("V")) Settings.Keybind:addParam("HealKey", "Automatic Healing:", SCRIPT_PARAM_ONKEYTOGGLE, true, string.byte("H")) Settings.Keybind:addParam("UltimateKey", "Automatic Ulting:", SCRIPT_PARAM_ONKEYTOGGLE, true, string.byte("U")) Settings.Keybind:permaShow("AutoHarass") Settings.Keybind:permaShow("HealKey") Settings.Keybind:permaShow("UltimateKey") Settings:addSubMenu("["..myHero.charName.."] - Combo Settings", "Combo") Settings.Combo:addParam("UseQ", "Use (Q) in Combo", SCRIPT_PARAM_ONOFF, true) Settings.Combo:addParam("UseW", "Use (W) in Combo", SCRIPT_PARAM_ONOFF, true) Settings.Combo:addParam("BoostAlly", "Use (W) to Boost Ally", SCRIPT_PARAM_ONOFF, true) Settings.Combo:addParam("UseE", "Use (E) in Combo", SCRIPT_PARAM_ONOFF, true) Settings.Combo:addParam("UseItems", "Use Items in Combo", SCRIPT_PARAM_ONOFF, true) Settings.Combo:addParam("ChaseMana", "Min. Mana to Chase:", SCRIPT_PARAM_SLICE, 25, 0, 100, 0) Settings:addSubMenu("["..myHero.charName.."] - Harass Settings", "Harass") Settings.Harass:addParam("UseQ", "Use (Q) in Harass", SCRIPT_PARAM_ONOFF, true) Settings.Harass:addParam("UseE", "Use (E) in Harass", SCRIPT_PARAM_ONOFF, false) Settings.Harass:addParam("MinMana", "Min. Mana Percentage:", SCRIPT_PARAM_SLICE, 50, 0, 100, 0) Settings:addSubMenu("["..myHero.charName.."] - Clear Settings", "Clear") Settings.Clear:addParam("UseE", "Use (E) in Lane Clear", SCRIPT_PARAM_ONOFF, true) Settings.Clear:addParam("MinMana", "Min. Mana Percentage:", SCRIPT_PARAM_SLICE, 30, 0, 100, 0) Settings:addSubMenu("["..myHero.charName.."] - Jungle Settings", "Jungle") Settings.Jungle:addParam("UseQ", "Use (Q) in Jungle Clear", SCRIPT_PARAM_ONOFF, true) Settings.Jungle:addParam("UseE", "Use (E) in Jungle Clear", SCRIPT_PARAM_ONOFF, true) Settings.Jungle:addParam("MinMana", "Min. Mana Percentage:", SCRIPT_PARAM_SLICE, 30, 0, 100, 0) Settings:addSubMenu("["..myHero.charName.."] - Heal Settings", "Heal") Settings.Heal:addParam("HealKayle", "Heal Kayle", SCRIPT_PARAM_ONOFF, true) for _, ally in ipairs(GetAllyHeroes()) do Settings.Heal:addParam(""..ally.charName.."", "Heal " ..ally.charName.."", SCRIPT_PARAM_ONOFF, true) end Settings.Heal:addSubMenu("Healing Preferences", "HealPref") Settings.Heal.HealPref:addParam("MaxHealSelf", "My Maximum HP to Heal Self:", SCRIPT_PARAM_SLICE, 75, 0, 100, 0) Settings.Heal.HealPref:addParam("MinSelfHP", "My Minimum HP to Heal Allies:", SCRIPT_PARAM_SLICE, 50, 0, 100, 0) Settings.Heal.HealPref:addParam("MaxAllyHP", "Allies Maximum HP For Heal:", SCRIPT_PARAM_SLICE, 50, 0, 100, 0) Settings.Heal.HealPref:addParam("MinMana", "Minimum Mana to Heal:", SCRIPT_PARAM_SLICE, 50, 0, 100, 0) Settings:addSubMenu("["..myHero.charName.."] - Ultimate Settings", "Ultimate") Settings.Ultimate:addParam("UltimateKayle", "Ultimate Kayle", SCRIPT_PARAM_ONOFF, true) for _, ally in ipairs(GetAllyHeroes()) do Settings.Ultimate:addParam(""..ally.charName.."", "Ultimate "..ally.charName.."", SCRIPT_PARAM_ONOFF, true) end Settings.Ultimate:addSubMenu("Ultimate Preferences", "UltPref") Settings.Ultimate.UltPref:addParam("MyUltHP", "My Maximum HP to Ult Self:", SCRIPT_PARAM_SLICE, 20, 0, 100, 0) Settings.Ultimate.UltPref:addParam("MinSelfHP", "My Minimum HP to Ult Allies:", SCRIPT_PARAM_SLICE, 30, 0, 100, 0) Settings.Ultimate.UltPref:addParam("MaxAllyHP", "Allies Maximum HP for Ult:", SCRIPT_PARAM_SLICE, 25, 0, 100, 0) Settings:addSubMenu("["..myHero.charName.."] - Item Settings", "Items") Settings.Items:addSubMenu("Blade of the Ruined King", "BOTRK") Settings.Items.BOTRK:addParam("UseBOTRK", "Use BOTRK in Combo", SCRIPT_PARAM_ONOFF, true) Settings.Items.BOTRK:addParam("MyHP", "My Maximum HP to use BOTRK:", SCRIPT_PARAM_SLICE, 50, 0, 100, 0) Settings.Items.BOTRK:addParam("EnemyHP", "Enemy Minimum HP to use BOTRK:", SCRIPT_PARAM_SLICE, 50, 0, 100, 0) Settings.Items:addSubMenu("Bilgewater Cutlass", "Cutlass") Settings.Items.Cutlass:addParam("UseCutlass", "Use Bilgewater Cutlass in Combo", SCRIPT_PARAM_ONOFF, true) Settings.Items.Cutlass:addParam("MyHP", "My Maximum HP to use Cutlass:", SCRIPT_PARAM_SLICE, 80, 0, 100, 0) Settings.Items.Cutlass:addParam("EnemyHP", "Enemy Minimum HP to use Cutlass:", SCRIPT_PARAM_SLICE, 50, 0, 100, 0) Settings.Items:addSubMenu("Zhonya's Hourglass", "Zhonya") Settings.Items.Zhonya:addParam("UseZhonya", "Use Zhonya's Hourglass", SCRIPT_PARAM_ONOFF, true) Settings.Items.Zhonya:addParam("MinHP", "Minimum HP to use Zhonyas", SCRIPT_PARAM_SLICE, 20, 0, 100, 0) Settings.Items.Zhonya:addParam("Order", "Zhonya's Before or After Ult", SCRIPT_PARAM_LIST, 2, {"Before", "After"}) Settings:addSubMenu("["..myHero.charName.."] - KillSteal Settings", "Killsteal") Settings.Killsteal:addParam("UseQ", "Use (Q) to Killsteal", SCRIPT_PARAM_ONOFF, true) Settings.Killsteal:addParam("UseIgnite", "Use Ignite to Killsteal", SCRIPT_PARAM_ONOFF, true) Settings:addSubMenu("["..myHero.charName.."] - Draw Settings", "Draw") Settings.Draw:addParam("Disable", "Disable Range Drawings", SCRIPT_PARAM_ONOFF, false) Settings.Draw:addParam("qDraw", "Draw "..SkillQ.name.." (Q) Range", SCRIPT_PARAM_ONOFF, true) Settings.Draw:addParam("wDraw", "Draw "..SkillW.name.." (W) Range", SCRIPT_PARAM_ONOFF, true) Settings.Draw:addParam("eDraw", "Draw "..SkillE.name.." (E) Range", SCRIPT_PARAM_ONOFF, true) Settings.Draw:addParam("rDraw", "Draw "..SkillR.name.." (R) Range", SCRIPT_PARAM_ONOFF, true) Settings:addSubMenu("["..myHero.charName.."] - Orbwalker Settings", "Orbwalker") TargetSelector = TargetSelector(TARGET_LESS_CAST_PRIORITY, 900, DAMAGE_MAGIC) TargetSelector.name = "Kayle" Settings:addTS(TargetSelector) end function Combo(unit) if ValidTarget(unit) then if Settings.Combo.UseQ and SkillQ.ready then if GetDistance(unit) <= SkillQ.range then CastSpell(_Q, unit) end end if Settings.Combo.UseW and SkillW.ready then if GetDistance(unit) > SkillE.range then CastSpell(_W, myHero) else for _, ally in ipairs(GetAllyHeroes()) do if GetDistance(ally, myHero) <= SkillW.range then if GetDistance(ally, unit) <= SkillW.range then CastSpell(_W, ally) end end end end end if Settings.Combo.UseE and SkillE.ready then if GetDistance(unit) <= SkillE.range then CastSpell(_E) end end if Settings.Combo.UseItems then if Settings.Items.BOTRK.UseBOTRK then local BOTRKSlot = GetInventorySlotItem(3153) if myHero.health < (myHero.maxHealth * (Settings.Items.BOTRK.MyHP / 100)) then if unit.health > (unit.maxHealth * (Settings.Items.BOTRK.EnemyHP / 100)) then if BOTRKSlot ~= nil and myHero:CanUseSpell(BOTRKSlot) == READY then if GetDistance(unit) <= 550 then CastSpell(BOTRKSlot, unit) end end end end end if Settings.Items.Cutlass.UseCutlass then local CutlassSlot = GetInventorySlotItem(3144) if myHero.health < (myHero.maxHealth * (Settings.Items.Cutlass.MyHP / 100 )) then if unit.health > (unit.maxHealth * (Settings.Items.Cutlass.EnemyHP / 100 )) then if CutlassSlot ~= nil and myHero:CanUseSpell(CutlassSlot) == READY then if GetDistance(unit) <= 550 then CastSpell(CutlassSlot, unit) end end end end end end end end function Harass(unit) if ValidTarget(unit) and unit ~= nil and unit.type == myHero.type then if myHero.mana >= (myHero.maxMana * (Settings.Harass.MinMana / 100)) then if Settings.Harass.UseQ and SkillQ.ready then if GetDistance(unit) <= SkillQ.range then CastSpell(_Q, unit) end end if Settings.Harass.UseE and SkillE.ready then if GetDistance(unit) <= SkillE.range then CastSpell(_E) end end end end end function LaneClear() EnemyMinions:update() for i, minions in pairs(EnemyMinions.objects) do if Settings.Clear.UseE and myHero.mana >= (myHero.maxMana * (Settings.Clear.MinMana/100)) and SkillE.ready then CastSpell(_E) end end end function JungleClear() JungleMinions:update() JungleCreep = JungleMinions.objects[1] if ValidTarget(JungleCreep) then if SkillE.ready and GetDistance(JungleCreep) <= SkillE.range and Settings.Jungle.UseE then CastSpell(_E) end if SkillQ.ready and GetDistance(JungleCreep) <= SkillQ.range and Settings.Jungle.UseQ then CastSpell(_Q, JungleCreep) end end end function Healing() if myHero.mana > (myHero.maxMana * (Settings.Heal.HealPref.MinMana/100)) and SkillW.ready and Settings.Keybind.HealKey and not Recalling() then if myHero.health < (myHero.maxHealth * (Settings.Heal.HealPref.MinSelfHP/100)) and Settings.Heal.HealKayle then CastSpell(_W, myHero) elseif myHero.health < (myHero.maxHealth * (Settings.Heal.HealPref.MaxHealSelf/100)) and Settings.Heal.HealKayle then CastSpell(_W, myHero) else for _, ally in ipairs(GetAllyHeroes()) do if ally.health < (ally.maxHealth * (Settings.Heal.HealPref.MaxAllyHP/100)) and GetDistance(ally, myHero) < SkillW.range and not ally.dead then if Settings.Heal[ally.charName] then CastSpell(_W, ally) end end end end end end function Intervention() if Settings.Ultimate.UltimateKayle then if Settings.Keybind.UltKey and not Settings.Keybind.Clearkey then if ((myHero.health/myHero.maxHealth) * 100) <= (Settings.Ultimate.UltPref.MyUltHP) and CountEnemyHeroInRange(SkillE.range, myHero) > 0 then if SkillR.ready then CastSpell(_R, myHero) end end end end end --[[ local ZhonyaSlot = GetInventorySlotItem(3157) if myHero.health <= (myHero.maxHealth * (Settings.Ultimate.UltPref.MyUltHP/100)) and CountEnemyHeroInRange(SkillQ.range, myHero) > 0 then if Settings.Ultimate.UltimateKayle then if Settings.Keybind.UltKey and not Settings.Keybind.Clearkey then if not Settings.Items.Zhonya.UseZhonya then if SkillR.ready then CastSpell(_R, myHero) end else if Settings.Items.Zhonya.Order == 2 then if SkillR.ready then CastSpell(_R, myHero) else if myHero:CanUseSpell(ZhonyaSlot) == READY and ZhonyaSlot ~= nil then if myHero.health <= (myHero.maxHealth * (Settings.Items.Zhonya.MinHP/100)) then CastSpell(ZhonyaSlot) end end end else if myHero:CanUseSpell(ZhonyaSlot) == READY and ZhonyaSlot ~= nil then if myHero.health <= (myHero.maxHealth * (Settings.Items.Zhonya.MinHP/100)) then CastSpell(ZhonyaSlot) end else CastSpell(_R, myHero) end end end end else if Settings.Items.Zhonya.UseZhonya and ZhonyaSlot ~= nil then if myHero.health <= (myHero.maxHealth * (Settings.Items.Zhonya.MinHP/100)) then CastSpell(ZhonyaSlot) end end end else for _, ally in ipairs(GetAllyHeroes()) do if GetDistance(ally) <= SkillR.range and Settings.Ultimate[ally.charName] and CountEnemyHeroInRange(650, ally) > 0 then if ally.health < (ally.maxHealth * (Settings.Ultimate.UltPref.MaxAllyHP/100)) then CastSpell(_R, ally) end end end end end]] function Killsteal() for i, enemy in ipairs(GetEnemyHeroes()) do if not enemy.dead and enemy.visible then local qDmg = getDmg("Q", enemy, myHero) local iDmg = (50 + (20 * myHero.level)) if Settings.Killsteal.UseIgnite and Iready and iDmg > enemy.health and GetDistance(enemy) < 600 then CastSpell(ignite, enemy) elseif Settings.Killsteal.UseQ and qDmg > enemy.health and GetDistance(enemy) < SkillQ.range then CastSpell(_Q, enemy) end end end end function Recalling() for i = 1, myHero.buffCount do --iterates through your heroes buff's, buffCount=64 local recallBuff = myHero:getBuff(i) --Get's the buff contained in the buff table from the current iteration if recallBuff.valid and recallBuff.name:lower():find('recall') then --you must check for validity as the buff will remain in the table until replaced return true end end return false end