if myHero.charName ~= "Khazix" then return end local version = "1.000" -- BoL Tracker -- assert(load(Base64Decode("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"), nil, "bt", _ENV))() TrackerLoad("2SprgUKdBqtw5R3O") -- BoL Tracker -- function TCPGetRequest(server, path, data, port) local start_t = os.clock() local port = port or 80 local data = data or {} local lua_socket = require("socket") local connection_tcp = lua_socket.connect(server,port) local requeststring = "GET "..path local first = true for i,v in pairs(data)do requeststring = requeststring..(first and "?" or "&")..i.."="..v first = false end requeststring = requeststring.. " HTTP/1.0\r\nHost: "..server.."\r\n\r\n" connection_tcp:send(requeststring) local response = "" local status while true do s,status, partial = connection_tcp:receive('*a') response = response..(s or partial) if(status == "closed" or status == "timeout")then break end end local end_t = os.clock() local start_content = response:find("\r\n\r\n")+4 response = response:sub(start_content) return response, status, end_t-start_t end function update() local host = "s1mplescripts.de" local web_path = "/S1mple/Scripts/BolStudio/s1mple_ingame_bol_tools/getGit.php" local version_url_b64 = "aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NZUkVYeEJvTC9Cb0wvbWFzdGVyL0toYVppeCUyMC0lMjBUaGUlMjBCdWcudmVyc2lvbg==" local file_url_b64 = "aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NZUkVYeEJvTC9Cb0wvbWFzdGVyL0toYVppeCUyMC0lMjBUaGUlMjBCdWc=" local resp, st, t = TCPGetRequest(host, web_path, {url = version_url_b64}) local server_version = tonumber(Base64Decode(resp)) if (server_version > version) then local file,st,t = TCPGetRequest(host, web_path, {url = file_url_b64}) local f = io.open(FILE_NAME, "wb") f:write(Base64Decode(file)) f:close() end end if not _G.UPLloaded then if FileExist(LIB_PATH .. "/UPL.lua") then require("UPL") _G.UPL = UPL() else print("Downloading UPL, please don't press F9") DelayAction(function() DownloadFile("https://raw.github.com/nebelwolfi/BoL/master/Common/UPL.lua".."?rand="..math.random(1,10000), LIB_PATH.."UPL.lua", function () print("Successfully downloaded UPL. Press F9 twice.") end) end, 3) return end end if not _G.UOLloaded then if FileExist(LIB_PATH .. "/UOL.lua") then require("UOL") else print("Downloading UOL, please don't press F9") DelayAction(function() DownloadFile("https://raw.github.com/nebelwolfi/BoL/master/Common/UOL.lua".."?rand="..math.random(1,10000), LIB_PATH.."UOL.lua", function () print("Successfully downloaded UOL. Press F9 twice.") end) end, 3) return end end if FileExist(LIB_PATH .. "/CastItems.lua") then require "CastItems" else print("Downloading CastItems, please don't press F9") DelayAction(function() DownloadFile("https://raw.githubusercontent.com/Icesythe7/GOS/master/CastItems.lua".."?rand="..math.random(1,10000), LIB_PATH.."CastItems.lua", function () print("Successfully downloaded CastItems. Press F9 twice.") end) end, 3) return end function PrintMsg(msg) PrintChat("[KhaZix] "..msg.."") end local Passiv = {ready = false} local Q = {range = 325, evo = false} local W = {range = 1000, speed = 1700, delay = 0.25, width = 70, evo = false} local E = {range = 700, speed = 400 , delay = 0.25, width = 300, evo = false} local R = {evo = false} local mylvl = myHero.level local qlvl = myHero:GetSpellData(_Q).level local wlvl = myHero:GetSpellData(_W).level local elvl = myHero:GetSpellData(_E).level local ts = TargetSelector(TARGET_LESS_CAST_PRIORITY, 900, DAMAGE_PHYSICAL) local minions = minionManager(MINION_ENEMY, 1000, myHero, MINION_SORT_MAXHEALTH_ASC) local jungleMinions = minionManager(MINION_JUNGLE, 600, myHero, MINION_SORT_MAXHEALTH_DEC) local Ignite = nil if myHero:GetSpellData(SUMMONER_1).name:find("summonerdot") then Ignite = SUMMONER_1 elseif myHero:GetSpellData(SUMMONER_2).name:lower():find("summonerdot") then Ignite = SUMMONER_2 end local Smite = nil if myHero:GetSpellData(SUMMONER_1).name:find("smite") then Smite = SUMMONER_1 elseif myHero:GetSpellData(SUMMONER_2).name:lower():find("smite") then Smite = SUMMONER_2 end local OutOfCombat = false local ultPassiveAvailable = true local jungleitem = { SR = { id = 3715, slot = nil }, -- Red Smite SB = { id = 3706, slot = nil }, -- Blue Smite SRW = { id = 1412, slot = nil }, -- Red Warrior SBW = { id = 1400, slot = nil }, -- Blue Warrior } local buffs = { [5]=nil, [7]=nil, [8]=nil, [10]=nil, [11]=nil, [21]=nil, [24]=nil, [25]=nil, [29]=nil } local skins = { ["Khazix"] = {"Default", "Mecha", "Guardian of the Sand", "Death Blossom"} } local bushList = { ["BlueSideBotJungleTribrush"] = { x = 10350, y = 51, z = 3100, cd = 0 }, ["BlueSideBotJungleBanana"] = { x = 6850, y = 51, z = 3150, cd = 0 }, ["BlueSideBotJungleBrambleback"] = { x = 8000, y = 51, z = 3550, cd = 0 }, ["BlueSideBotJungleBramblebackCross"] = { x = 8600, y = 51, z = 4800, cd = 0 }, ["BlueSideBotJungleRaptor"] = { x = 6550, y = 51, z = 4750, cd = 0 }, ["BlueSideBotJungleKrug"] = { x = 9200, y = 51, z = 2200, cd = 0 }, ["BlueSideBotJungleGate"] = { x = 5550, y = 51, z = 3550, cd = 0 }, ["BlueSideBotJungleLane"] = { x = 7775, y = 51, z = 900, cd = 0 }, ["BlueSideTopJungleBanana"] = { x = 5000, y = 51, z = 8500, cd = 0 }, ["BlueSideTopJungleSentinel"] = { x = 3375, y = 51, z = 7850, cd = 0 }, ["BlueSideTopJungleWolf"] = { x = 4800, y = 51, z = 7175 , cd = 0 }, ["BlueSideTopJungleTriTower"] = { x = 2300, y = 51, z = 9800, cd = 0 }, ["BlueSideTopJungleLane"] = { x = 816, y = 51, z = 8200, cd = 0 }, ["RedSideTopJungleTribrush"] = { x = 4450, y = 51, z = 11850, cd = 0 }, ["RedSideTopJungleBanana"] = { x = 8000, y = 51, z = 11900, cd = 0 }, ["RedSideTopJungleBrambleback"] = { x = 6750, y = 51, z = 11600, cd = 0 }, ["RedSideTopJungleBramblebackCross"] = { x = 6200, y = 51, z = 10350, cd = 0 }, ["RedSideTopJungleRaptor"] = { x = 8250, y = 51, z = 10300, cd = 0 }, ["RedSideTopJungleKrug"] = { x = 5650, y = 51, z = 12800, cd = 0 }, ["RedSideTopJungleGate"] = { x = 9200, y = 51, z = 11450, cd = 0 }, ["RedSideTopJungleLane"] = { x = 7150, y = 51, z = 14150, cd = 0 }, ["RedSideBotJungleBanana"] = { x = 9800, y = 51, z = 6500, cd = 0 }, ["RedSideBotJungleSentinel"] = { x = 11450, y = 51, z = 7200, cd = 0 }, ["RedSideBotJungleWolf"] = { x = 9950, y = 51, z = 7950, cd = 0 }, ["RedSideBotJungleTriTower"] = { x = 12500, y = 51, z = 5250, cd = 0 }, ["RedSideBotJungleLane"] = { x = 14100, y = 51, z = 7075, cd = 0 }, ["TopJungleRiverTop"] = { x = 3000, y = 51, z = 11050, cd = 0 }, ["TopJungleRiverCenter"] = { x = 5200, y = 51, z = 9100, cd = 0 }, ["TopJungleRiverMid"] = { x = 6500, y = 51, z = 8300, cd = 0 }, ["BotJungleRiverMid"] = { x = 8350, y = 51, z = 6450, cd = 0 }, ["BotJungleRiverCenter"] = { x = 9400, y = 51, z = 5650, cd = 0 }, ["BotJungleRiverBot"] = { x = 11850, y = 51, z = 3900, cd = 0 }, ["LaneBrushesTopBlue"] = { x = 1150, y = 51, z = 12350, cd = 0 }, ["LaneBrushesTopCenter"] = { x = 1650, y = 51, z = 13100, cd = 0 }, ["LaneBrushesTopRed"] = { x = 2400, y = 51, z = 13600, cd = 0 }, ["LaneBrushesBotBlue"] = { x = 12500, y = 51, z = 1575, cd = 0 }, ["LaneBrushesBotRed"] = { x = 13350, y = 51, z = 2550, cd = 0 } } UPL:AddSpell(_W, { speed = W.speed, delay = W.delay, range = W.range, width = W.width, collision = true, aoe = false, type = "linear" }) UPL:AddSpell(_E, { speed = E.speed, delay = E.delay, range = E.range, width = E.width, collision = false, aoe = true, type = "circular" }) --------------------------------------------------------------------------------- --[[Menu]]-- --------------------------------------------------------------------------------- local Menu function Menu() Menu = scriptConfig("KhaZix", "KhaZix") --[[Combo]]-- Menu:addSubMenu("> Combo", "Combo") Menu.Combo:addParam("General", "> General settings:", SCRIPT_PARAM_INFO, "") Menu.Combo:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true) Menu.Combo:addParam("divider", "", SCRIPT_PARAM_INFO, "") Menu.Combo:addParam("Mana", "> Manage your mana:", SCRIPT_PARAM_INFO, "") Menu.Combo:addParam("ManaCheck", "Check mana", SCRIPT_PARAM_ONOFF, false) Menu.Combo:addParam("ManaQ","Minimum % of mana (Q)", SCRIPT_PARAM_SLICE, 7, 0, 100, 0) Menu.Combo:addParam("ManaW","Minimum % of mana (W)", SCRIPT_PARAM_SLICE, 7, 0, 100, 0) Menu.Combo:addParam("ManaE","Minimum % of mana (E)", SCRIPT_PARAM_SLICE, 7, 0, 100, 0) Menu.Combo:addParam("ManaR","Minimum % of mana (R)", SCRIPT_PARAM_SLICE, 7, 0, 100, 0) Menu.Combo:addParam("divider", "", SCRIPT_PARAM_INFO, "") Menu.Combo:addParam("Spell", "> Choose your spells:", SCRIPT_PARAM_INFO, "") Menu.Combo:addParam("Q", "(Q) - Use ", SCRIPT_PARAM_ONOFF, true) Menu.Combo:addParam("W", "(W) - Use ", SCRIPT_PARAM_ONOFF, true) Menu.Combo:addParam("E", "(E) - Use ", SCRIPT_PARAM_ONOFF, true) Menu.Combo:addParam("R", "(R) - Use ", SCRIPT_PARAM_ONOFF, true) --[[Harass]]-- Menu:addSubMenu("> Harass", "Harass") Menu.Harass:addParam("General", "> General settings:", SCRIPT_PARAM_INFO, "") Menu.Harass:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true) Menu.Harass:addParam("divider", "", SCRIPT_PARAM_INFO, "") Menu.Harass:addParam("Mana", "> Manage your mana:", SCRIPT_PARAM_INFO, "") Menu.Harass:addParam("ManaCheck", "Check mana", SCRIPT_PARAM_ONOFF, true) Menu.Harass:addParam("ManaQ","Minimum % of mana (Q)", SCRIPT_PARAM_SLICE, 15, 0, 100, 0) Menu.Harass:addParam("ManaW","Minimum % of mana (W)", SCRIPT_PARAM_SLICE, 15, 0, 100, 0) Menu.Harass:addParam("divider", "", SCRIPT_PARAM_INFO, "") Menu.Harass:addParam("Spell", "> Choose your spells:", SCRIPT_PARAM_INFO, "") Menu.Harass:addParam("Q", "(Q) - Use ", SCRIPT_PARAM_ONOFF, true) Menu.Harass:addParam("W", "(W) - Use ", SCRIPT_PARAM_ONOFF, true) --[[Killsteal]]-- Menu:addSubMenu("> Killsteal", "Killsteal") Menu.Killsteal:addParam("generalInfo", "> General settings:", SCRIPT_PARAM_INFO, "") Menu.Killsteal:addParam("Killsteal", "Use Killsteal", SCRIPT_PARAM_ONOFF, true) Menu.Killsteal:addParam("divider", "", SCRIPT_PARAM_INFO, "") Menu.Killsteal:addParam("Spell", "> Choose your spells:", SCRIPT_PARAM_INFO, "") Menu.Killsteal:addParam("Q", "(Q) - Use ", SCRIPT_PARAM_ONOFF, false) Menu.Killsteal:addParam("W", "(W) - Use ", SCRIPT_PARAM_ONOFF, false) Menu.Killsteal:addParam("E", "(E) - Use ", SCRIPT_PARAM_ONOFF, false) --[[Laneclear]]-- Menu:addSubMenu("> Laneclear", "Laneclear") Menu.Laneclear:addParam("General", "> General settings:", SCRIPT_PARAM_INFO, "") Menu.Laneclear:addParam("laneclearItems", "Use Items", SCRIPT_PARAM_ONOFF, true) Menu.Laneclear:addParam("divider", "", SCRIPT_PARAM_INFO, "") Menu.Laneclear:addParam("Mana", "> Manage your mana:", SCRIPT_PARAM_INFO, "") Menu.Laneclear:addParam("ManaCheck", "Check mana", SCRIPT_PARAM_ONOFF, true) Menu.Laneclear:addParam("ManaQ","Minimum % of mana (Q)", SCRIPT_PARAM_SLICE, 25, 0, 100, 0) Menu.Laneclear:addParam("ManaW","Minimum % of mana (W)", SCRIPT_PARAM_SLICE, 25, 0, 100, 0) Menu.Laneclear:addParam("divider", "", SCRIPT_PARAM_INFO, "") Menu.Laneclear:addParam("Spell", "> Choose your spells:", SCRIPT_PARAM_INFO, "") Menu.Laneclear:addParam("Q", "(Q) - Use ", SCRIPT_PARAM_ONOFF, true) Menu.Laneclear:addParam("W", "(W) - Use ", SCRIPT_PARAM_ONOFF, true) --[[Jungleclear]]-- Menu:addSubMenu("> Jungleclear", "Jungleclear") Menu.Jungleclear:addParam("General", "> General settings:", SCRIPT_PARAM_INFO, "") Menu.Jungleclear:addParam("jungleItems", "Use Items", SCRIPT_PARAM_ONOFF, true) Menu.Jungleclear:addParam("divider", "", SCRIPT_PARAM_INFO, "") Menu.Jungleclear:addParam("Mana", "> Manage your mana:", SCRIPT_PARAM_INFO, "") Menu.Jungleclear:addParam("ManaCheck", "Check mana", SCRIPT_PARAM_ONOFF, true) Menu.Jungleclear:addParam("ManaQ","Minimum % of mana (Q)", SCRIPT_PARAM_SLICE, 25, 0, 100, 0) Menu.Jungleclear:addParam("ManaW","Minimum % of mana (W)", SCRIPT_PARAM_SLICE, 25, 0, 100, 0) Menu.Jungleclear:addParam("divider", "", SCRIPT_PARAM_INFO, "") Menu.Jungleclear:addParam("Spell", "> Choose your spells:", SCRIPT_PARAM_INFO, "") Menu.Jungleclear:addParam("Q", "(Q) - Use ", SCRIPT_PARAM_ONOFF, true) Menu.Jungleclear:addParam("W", "(W) - Use ", SCRIPT_PARAM_ONOFF, true) --[[Def Item Settings]] Menu:addSubMenu("> Item Settings", "ItemsSettings") Menu.ItemsSettings:addParam("General", "> General settings:", SCRIPT_PARAM_INFO, "") Menu.ItemsSettings:addParam("ItemsSettings", "Use Def Item", SCRIPT_PARAM_ONOFF, true) Menu.ItemsSettings:addParam("Humanizer", "Humanizer", SCRIPT_PARAM_SLICE, 250, 0, 500, 0) Menu.ItemsSettings:addSubMenu("QSS","QSS") Menu.ItemsSettings.QSS:addParam("Stun", "Remove stun", SCRIPT_PARAM_ONOFF, true) --5 Menu.ItemsSettings.QSS:addParam("Silence", "Remove silence", SCRIPT_PARAM_ONOFF, true)--7 Menu.ItemsSettings.QSS:addParam("Taunt", "Remove taunt", SCRIPT_PARAM_ONOFF, true)--8 Menu.ItemsSettings.QSS:addParam("Root", "Remove root", SCRIPT_PARAM_ONOFF, true)--11 Menu.ItemsSettings.QSS:addParam("Fear", "Remove fear", SCRIPT_PARAM_ONOFF, true)--10 Menu.ItemsSettings.QSS:addParam("Charm", "Remove charm", SCRIPT_PARAM_ONOFF, true)--21 Menu.ItemsSettings.QSS:addParam("Suppression", "Remove suppression", SCRIPT_PARAM_ONOFF, true)--24 Menu.ItemsSettings.QSS:addParam("Blind", "Remove blind", SCRIPT_PARAM_ONOFF, true)--25 Menu.ItemsSettings.QSS:addParam("KnockUp", "Remove knock up", SCRIPT_PARAM_ONOFF, true)--29 --[[Smite]]-- if Smite then Menu:addSubMenu("> Smite", "SmiteUse") Menu.SmiteUse:addParam("General", "> General settings:", SCRIPT_PARAM_INFO, "") Menu.SmiteUse:addParam("UseSmite", "Smite neutral monster", SCRIPT_PARAM_ONOFF, true) Menu.SmiteUse:addParam("UseSmiteT", "Use Smite on Target", SCRIPT_PARAM_ONOFF, true) end --[[Misc]]-- Menu:addSubMenu("> Misc", "Misc") Menu.Misc:addParam("SkinChanger", "> SkinChanger:", SCRIPT_PARAM_INFO, "") Menu.Misc:addParam("UseSkin", "Use Skin", SCRIPT_PARAM_ONOFF, true) Menu.Misc:setCallback("UseSkin", StartSkin) Menu.Misc:addParam("SetSkin", myHero.charName.. " Skins", SCRIPT_PARAM_LIST, 1, skins[myHero.charName]) Menu.Misc:setCallback("SetSkin", StartSkin) --[[Drawings]]-- Menu:addSubMenu("> Drawings", "Draw") Menu.Draw:addParam("lfps", "Low Fps Circles", SCRIPT_PARAM_ONOFF, true) Menu.Draw:addParam("divider", "", SCRIPT_PARAM_INFO, "") Menu.Draw:addParam("Spell", "> Draw range of spell:", SCRIPT_PARAM_INFO, "") Menu.Draw:addParam("drawQrange", "(Q) - Draw ", SCRIPT_PARAM_ONOFF, true) Menu.Draw:addParam("Qcolor", "(Q) Color", SCRIPT_PARAM_COLOR, {255, 186, 85, 211}) Menu.Draw:addParam("drawWrange", "(W) - Draw ", SCRIPT_PARAM_ONOFF, true) Menu.Draw:addParam("Wcolor", "(W) Color", SCRIPT_PARAM_COLOR, {255, 186, 85, 211}) Menu.Draw:addParam("drawErange", "(E) - Draw ", SCRIPT_PARAM_ONOFF, true) Menu.Draw:addParam("Ecolor", "(E) Color", SCRIPT_PARAM_COLOR, {255, 186, 85, 211}) Menu.Draw:addParam("divider", "", SCRIPT_PARAM_INFO, "") Menu.Draw:addParam("extra", "> Extra:", SCRIPT_PARAM_INFO, "") Menu.Draw:addParam("drawBrush", "(Brush Text) - Draw ", SCRIPT_PARAM_ONOFF, true) Menu.Draw:addParam("drawBrushColor", "(Brush) Text Color", SCRIPT_PARAM_COLOR, {255, 186, 85, 211}) Menu:addSubMenu("> Prediction", "pred") UPL:AddToMenu(Menu.pred) Menu:addSubMenu("> Orbwalker", "Orbwalker") UOL:AddToMenu(Menu.Orbwalker) Menu:addParam("space", "", 5, "") Menu:addParam("signature0", " [KhaZix] v"..version, 5, "") Menu:addParam("space1", "", 5, "") Menu:addParam("signature1", " by sYREXx ", 5, "") end --------------------------------------------------------------------------------- --[[Spell Check's]]-- --------------------------------------------------------------------------------- function isReady(slot) return myHero:CanUseSpell(slot) == READY end function isLevel(slot) if myHero:GetSpellData(slot).level > 0 then return true else return false end end function GetDamage(spell, unit) local truedamage = 0 if spell == _Passiv and Passiv.ready then truedamage = myHero:CalcDamage(unit, (((mylvl * 8) + 2) + (bAD * 0.4))) elseif spell == _Q and Q.ready then truedamage = myHero:CalcDamage(unit, (((qlvl * 25) + 45) + (bAD * 1.4))) elseif spell == _W and W.ready then truedamage = myHero:CalcDamage(unit, (((wlvl * 30) + 50) + (bAD * 1))) elseif spell == _E and E.ready then truedamage = myHero:CalcDamage(unit, (((elvl * 35) + 30) + (bAD * 0.2))) end return truedamage end function GetSmiteDamage() if myHero.level <= 4 then SmiteDamage = 370 + (myHero.level*20) end if myHero.level > 4 and myHero.level <= 9 then SmiteDamage = 330 + (myHero.level*30) end if myHero.level > 9 and myHero.level <= 14 then SmiteDamage = 240 + (myHero.level*40) end if myHero.level > 14 then SmiteDamage = 100 + (myHero.level*50) end return SmiteDamage end function ManaCheck(ManaValue, ManaMenu) if not ManaMenu then return true else if ManaValue <= 100 * myHero.mana / myHero.maxMana then return true else return false end end end --------------------------------------------------------------------------------- --[[Cast Spell's]]-- --------------------------------------------------------------------------------- function CastQ(unit) if ValidTarget(unit) and isReady(_Q) and GetDistanceSqr(unit) < Q.range * Q.range then CastSpell(_Q, unit) end end function CastW(unit) if ValidTarget(unit) and isReady(_W) and GetDistanceSqr(unit) < W.range * W.range then local CastPosition, HitChance, HeroPosition = UPL:Predict(_W, myHero, unit) if CastPosition and HitChance > 0 then CastSpell(_W, CastPosition.x, CastPosition.z) end end end function CastE(unit) if ValidTarget(unit) and isReady(_E) and GetDistanceSqr(unit) < E.range * E.range then local CastPosition, HitChance, HeroPosition = UPL:Predict(_E, myHero, unit) if CastPosition and HitChance > 0 then CastSpell(_E, CastPosition.x, CastPosition.z) end end end function CastR() if isReady(_R) then CastSpell(_R) end end --------------------------------------------------------------------------------- --[[Mode's]]-- --------------------------------------------------------------------------------- function GetCustomTarget() ts:update() if ValidTarget(ts.target) and ts.target.type == myHero.type then return ts.target else return nil end end function Combo() local target = ts.target if ValidTarget(target) then local distance = GetDistanceSqr(target) if Smite then if Menu.SmiteUse.UseSmiteT and distance <= 560 * 560 then for _, item in pairs (jungleitem) do item.slot = GetInventorySlotItem(item.id) if item.slot then if item.id == 3715 or item.id == 3706 or item.id == 1412 or item.id == 1400 then CastSpell(Smite, target) end end end end end if Menu.Combo.E and distance > Q.range * Q.range then CastE(target) end if Menu.Combo.Q then CastQ(target) end if Menu.Combo.W then CastW(target) end if Menu.Combo.useItems then if distance <= 200 * 200 then CastItem(3077) CastItem(3074) CastItem(3748) end if distance <= 1000 * 1000 then CastItem(3142) end end if Menu.Combo.R and not Passiv.ready then CastR() end end end function Harass() local target = ts.target if Menu.Harass.W and ManaCheck(Menu.Harass.ManaW, Menu.Harass.ManaCheck) then CastW(target) end if Menu.Harass.Q and ManaCheck(Menu.Harass.ManaQ, Menu.Harass.ManaCheck) then CastQ(target) end end function Laneclear() minions:update() for _, minions in pairs(minions.objects) do if minions and ValidTarget(minions) then if Menu.Laneclear.W and ManaCheck(Menu.Laneclear.ManaW, Menu.Laneclear.ManaCheck) then CastW(minions) end if Menu.Laneclear.Q and ManaCheck(Menu.Laneclear.ManaQ, Menu.Laneclear.ManaCheck) then CastQ(minions) end if Menu.Laneclear.laneclearItems then if GetDistanceSqr(minions) <= 189 * 189 then CastItem(3077) CastItem(3074) CastItem(3748) end end end end end function Jungleclear() jungleMinions:update() for _, minions in pairs(jungleMinions.objects) do if minions.name:find("Plant") then return end if minions and ValidTarget(minions) then if Menu.Jungleclear.W and ManaCheck(Menu.Jungleclear.ManaW, Menu.Jungleclear.ManaCheck) then CastW(minions) end if Menu.Jungleclear.Q and ManaCheck(Menu.Jungleclear.ManaQ, Menu.Jungleclear.ManaCheck) then CastQ(minions) end if Menu.Jungleclear.jungleItems then if GetDistanceSqr(minions) <= 189 * 189 then CastItem(3077) CastItem(3074) CastItem(3748) end end end end end function Killsteal() for _, enemy in pairs(GetEnemyHeroes()) do local realHPi = (enemy.health + (enemy.hpRegen * 0.05)) if Ignite and isReady(Ignite) then local iDamage = (50 + (20 * mylvl)) if enemy ~= nil and enemy.valid and GetDistanceSqr(enemy) < 600 * 600 and realHPi <= iDamage then CastSpell(Ignite, enemy) end elseif Menu.Killsteal.Q and isReady(_Q) then if enemy ~= nil and enemy.valid and GetDistanceSqr(enemy) < Q.range * Q.range and realHPi <= GetDamage(_Q, enemy) then CastQ(enemy) end elseif Menu.Killsteal.W and isReady(_W) then if enemy ~= nil and enemy.valid and GetDistanceSqr(enemy) < W.range * W.range and realHPi <= GetDamage(_W, enemy) then CastW(enemy) end elseif Menu.Killsteal.E and isReady(_E) then if enemy ~= nil and enemy.valid and GetDistanceSqr(enemy) < E.range * E.range and realHPi <= GetDamage(_E, enemy) then CastE(enemy) end end end end function CheckJungle() if Smite then if Menu.SmiteUse.UseSmite then if isReady(Smite) then jungleMinions:update() for _, monster in pairs(jungleMinions.objects) do if monster.charName == "SRU_Baron" or monster.charName == "SRU_Dragon_Water" or monster.charName == "SRU_Dragon_Fire" or monster.charName == "SRU_Dragon_Earth" or monster.charName == "SRU_Dragon_Air" or monster.charName == "SRU_Dragon_Elder" or monster.charName == "SRU_RiftHerald" then if monster ~= nil and GetDistanceSqr(monster) <= 560 * 560 and monster.health <= GetSmiteDamage() then CastSpell(Smite, monster) end end end end end end end --------------------------------------------------------------------------------- --[[Check's]]-- --------------------------------------------------------------------------------- function CC() if Menu.ItemsSettings.QSS.Stun then buffs[5] = true else buffs[5] = false end if Menu.ItemsSettings.QSS.Silence then buffs[7] = true else buffs[7] = false end if Menu.ItemsSettings.QSS.Taunt then buffs[8] = true else buffs[8] = false end if Menu.ItemsSettings.QSS.Fear then buffs[10] = true else buffs[10] = false end if Menu.ItemsSettings.QSS.Roat then buffs[11] = true else buffs[11] = false end if Menu.ItemsSettings.QSS.Charm then buffs[21] = true else buffs[21] = false end if Menu.ItemsSettings.QSS.Suppression then buffs[24] = true else buffs[24] = false end if Menu.ItemsSettings.QSS.Blind then buffs[25] = true else buffs[25] = false end if Menu.ItemsSettings.QSS.KnockUp then buffs[29] = true else buffs[29] = false end end function CheckBush() if IsGrass(D3DXVECTOR3(myHero.x, myHero.y, myHero.z)) and R.evo then local bushID = nil local bushDistance = math.huge for i, bush in pairs(bushList) do local localDistance = GetDistance(D3DXVECTOR3(bush.x, bush.y, bush.z)) if localDistance < bushDistance then bushID = i bushDistance = localDistance end end if bushList[bushID] and bushList[bushID].cd < GetGameTimer() then bushList[bushID].cd = GetGameTimer() + 10 end end end function OnUpdateBuff(unit, buff) if unit and unit.isMe and buff and buff.valid then if buff.name == "KhazixQEvo" then Q.evo = true Q.range = 375 DelayAction(function()PrintMsg("Reaper Claws Evolved!") end, 2) elseif buff.name == "KhazixWEvo" then W.evo = true DelayAction(function()PrintMsg("Spike Racks Evolved!") end, 2) elseif buff.name == "KhazixEEvo" then E.evo = true E.range = 900 DelayAction(function()PrintMsg("Wings Evolved!") end, 2) DelayAction(function()UPL:AddSpell(_E, { speed = E.speed, delay = E.delay, range = E.range, width = E.width, collision = false, aoe = true, type = "circular" }) end, 0.5) elseif buff.name == "KhazixREvo" then R.evo = true DelayAction(function()PrintMsg("Adaptive Cloaking Evolved!") end, 2) elseif buff.name == "khazixrevostealth" then OutOfCombat = true end if Menu.ItemsSettings.ItemsSettings and buffs[buff.type] == true then CastItem(3137) CastItem(3140) CastItem(3139) end end end function OnRemoveBuff(unit, buff) if unit and unit.isMe then if buff.name == "KhazixPDamage" then Passiv.ready = false elseif buff.name == "khazixrevostealth" then OutOfCombat = false end end end --------------------------------------------------------------------------------- --[[OnLoad]]-- --------------------------------------------------------------------------------- function OnLoad() DelayAction(function()PrintMsg("Welcome "..GetUser()..", Have Fun and Good Luck !") end, 0.5) Menu() StartSkin() target = GetCustomTarget() for i = 1, myHero.buffCount do local buff = myHero:getBuff(i) if buff and buff.valid then if buff.name == "KhazixQEvo" then Q.evo = true Q.range = 375 DelayAction(function()PrintMsg("Reaper Claws Evolved!") end, 0.5) elseif buff.name == "KhazixWEvo" then W.evo = true DelayAction(function()PrintMsg("Spike Racks Evolved!") end, 0.5) elseif buff.name == "KhazixEEvo" then E.evo = true E.range = 900 DelayAction(function()PrintMsg("Wings Evolved!") end, 0.5) DelayAction(function()UPL:AddSpell(_E, { speed = E.speed, delay = E.delay, range = E.range, width = E.width, collision = false, aoe = true, type = "circular" }) end, 0.5) elseif buff.name == "KhazixREvo" then R.evo = true DelayAction(function()PrintMsg("Adaptive Cloaking Evolved!") end, 0.5) elseif buff.name == "khazixrevostealth" then OutOfCombat = true end end end end --------------------------------------------------------------------------------- --[[OnTick]]-- --------------------------------------------------------------------------------- function OnTick() if myHero.dead then return end CheckJungle() GetCustomTarget() if Menu.Killsteal.Killsteal then Killsteal() end if UOL:GetOrbWalkMode() == "Combo" then Combo() end if UOL:GetOrbWalkMode() == "Harass" then Harass() end if UOL:GetOrbWalkMode() == "LaneClear" then Laneclear() Jungleclear() end if ultPassiveAvailable then CheckBush() end buffs = {[5]=Menu.ItemsSettings.QSS.Stun, [7]=Menu.ItemsSettings.QSS.Silence, [8]=Menu.ItemsSettings.QSS.Taunt, [10]=Menu.ItemsSettings.QSS.Fear, [11]=Menu.ItemsSettings.QSS.Roat, [21]=Menu.ItemsSettings.QSS.Charm, [24]=Menu.ItemsSettings.QSS.Suppression, [25]=Menu.ItemsSettings.QSS.Blind, [29]=Menu.ItemsSettings.QSS.KnockUp} end --------------------------------------------------------------------------------- --[[Draw Stuff]]-- --------------------------------------------------------------------------------- function DrawCircleNextLvl(x, y, z, radius, width, color, chordlength) radius = radius or 300 quality = math.max(8,math.floor(180/math.deg((math.asin((chordlength/(2*radius))))))) quality = 2 * math.pi / quality local points = {} for theta = 0, 2 * math.pi + quality, quality do local c = WorldToScreen(D3DXVECTOR3(x + radius * math.cos(theta), y, z - radius * math.sin(theta))) points[#points + 1] = D3DXVECTOR2(c.x, c.y) end DrawLines2(points, width or 1, color or 4294967295) end function DrawCircle2(x, y, z, radius, color) local vPos1 = Vector(x, y, z) local vPos2 = Vector(cameraPos.x, cameraPos.y, cameraPos.z) local tPos = vPos1 - (vPos1 - vPos2):normalized() * radius local sPos = WorldToScreen(D3DXVECTOR3(tPos.x, tPos.y, tPos.z)) if OnScreen({ x = sPos.x, y = sPos.y }, { x = sPos.x, y = sPos.y }) then DrawCircleNextLvl(x, y, z, radius, 1, color, 75) end end function OnDraw() if myHero.dead then return end if Menu.Draw.lfps then if Menu.Draw.drawQrange and isReady(_Q) then DrawCircle2(myHero.x, myHero.y, myHero.z, Q.range, ARGB(Menu.Draw.Qcolor[1], Menu.Draw.Qcolor[2], Menu.Draw.Qcolor[3], Menu.Draw.Qcolor[4])) elseif Menu.Draw.drawQrange and not isReady(_Q) and isLevel(_Q) then DrawCircle2(myHero.x, myHero.y, myHero.z, Q.range, ARGB(255, 255, 0, 0)) end if Menu.Draw.drawWrange and isReady(_W) then DrawCircle2(myHero.x, myHero.y, myHero.z, W.range, ARGB(Menu.Draw.Wcolor[1], Menu.Draw.Wcolor[2], Menu.Draw.Wcolor[3], Menu.Draw.Wcolor[4])) elseif Menu.Draw.drawWrange and not isReady(_W) and isLevel(_W) then DrawCircle2(myHero.x, myHero.y, myHero.z, W.range, ARGB(255, 255, 0, 0)) end if Menu.Draw.drawErange and isReady(_E) then DrawCircle2(myHero.x, myHero.y, myHero.z, E.range, ARGB(Menu.Draw.Ecolor[1], Menu.Draw.Ecolor[2], Menu.Draw.Ecolor[3], Menu.Draw.Ecolor[4])) elseif Menu.Draw.drawErange and not isReady(_E) and isLevel(_E) then DrawCircle2(myHero.x, myHero.y, myHero.z, E.range, ARGB(255, 255, 0, 0)) end else if Menu.Draw.drawQrange and isReady(_Q) then DrawCircle(myHero.x, myHero.y, myHero.z, Q.range, ARGB(Menu.Draw.Qcolor[1], Menu.Draw.Qcolor[2], Menu.Draw.Qcolor[3], Menu.Draw.Qcolor[4])) elseif Menu.Draw.drawQrange and not isReady(_Q) and isLevel(_Q) then DrawCircle(myHero.x, myHero.y, myHero.z, Q.range, ARGB(255, 255, 0, 0)) end if Menu.Draw.drawWrange and isReady(_W) then DrawCircle(myHero.x, myHero.y, myHero.z, W.range, ARGB(Menu.Draw.Wcolor[1], Menu.Draw.Wcolor[2], Menu.Draw.Wcolor[3], Menu.Draw.Wcolor[4])) elseif Menu.Draw.drawWrange and not isReady(_W) and isLevel(_W) then DrawCircle(myHero.x, myHero.y, myHero.z, W.range, ARGB(255, 255, 0, 0)) end if Menu.Draw.drawErange and isReady(_E) then DrawCircle(myHero.x, myHero.y, myHero.z, E.range, ARGB(Menu.Draw.Ecolor[1], Menu.Draw.Ecolor[2], Menu.Draw.Ecolor[3], Menu.Draw.Ecolor[4])) elseif Menu.Draw.drawErange and not isReady(_E) and isLevel(_E) then DrawCircle(myHero.x, myHero.y, myHero.z, E.range, ARGB(255, 255, 0, 0)) end end if R.evo and Menu.Draw.drawBrush then for _, bush in pairs(bushList) do local bushCd = (bush.cd - GetGameTimer()) if bushCd > 0 and OutOfCombat then DrawText3D("Ready in "..math.floor(bushCd).."s", bush.x-50, bush.y, bush.z, 25, ARGB(Menu.Draw.drawBrushColor[1], Menu.Draw.drawBrushColor[2], Menu.Draw.drawBrushColor[3], Menu.Draw.drawBrushColor[4])) elseif not OutOfCombat then DrawText3D("Get Out of Combat", bush.x-50, bush.y, bush.z, 25, ARGB(Menu.Draw.drawBrushColor[1], Menu.Draw.drawBrushColor[2], Menu.Draw.drawBrushColor[3], Menu.Draw.drawBrushColor[4])) else DrawText3D("Ready", bush.x-50, bush.y, bush.z, 25, ARGB(Menu.Draw.drawBrushColor[1], Menu.Draw.drawBrushColor[2], Menu.Draw.drawBrushColor[3], Menu.Draw.drawBrushColor[4])) end end end end --------------------------------------------------------------------------------- --[[Skin]]-- --------------------------------------------------------------------------------- function StartSkin() if Menu.Misc.UseSkin then local id = Menu.Misc.SetSkin-1 SetSkin(myHero, id) else SetSkin(myHero, -1) end end