-- AutoUpdater local version = "Beta" local autoupdateenabled = true local UPDATE_SCRIPT_NAME = "AhriX" local UPDATE_HOST = "raw.github.com" local UPDATE_PATH = "/ajgoreq/BoL/master/AhriX.lua" local UPDATE_FILE_PATH = SCRIPT_PATH..GetCurrentEnv().FILE_NAME local UPDATE_URL = "https://"..UPDATE_HOST..UPDATE_PATH local ServerData if autoupdateenabled then GetAsyncWebResult(UPDATE_HOST, UPDATE_PATH, function(d) ServerData = d end) function update() if ServerData ~= nil then local ServerVersion local send, tmp, sstart = nil, string.find(ServerData, "local version = \"") if sstart then send, tmp = string.find(ServerData, "\"", sstart+1) end if send then ServerVersion = tonumber(string.sub(ServerData, sstart+1, send-1)) end if ServerVersion ~= nil and tonumber(ServerVersion) ~= nil and tonumber(ServerVersion) > tonumber(version) then DownloadFile(UPDATE_URL.."?nocache"..myHero.charName..os.clock(), UPDATE_FILE_PATH, function () print(""..UPDATE_SCRIPT_NAME..": successfully updated. Reload (double F9) Please. ("..version.." => "..ServerVersion..")") end) elseif ServerVersion then print(""..UPDATE_SCRIPT_NAME..": You have got the latest version: "..ServerVersion.."") end ServerData = nil end end AddTickCallback(update) end -- Lib Updater local REQUIRED_LIBS = { ["SxOrbWalk"] = "https://raw.githubusercontent.com/Superx321/BoL/master/common/SxOrbWalk.lua" } local DOWNLOADING_LIBS, DOWNLOAD_COUNT = false, 0 function AfterDownload() DOWNLOAD_COUNT = DOWNLOAD_COUNT - 1 if DOWNLOAD_COUNT == 0 then DOWNLOADING_LIBS = false print("Required libraries downloaded successfully, please reload (double F9).") end end for DOWNLOAD_LIB_NAME, DOWNLOAD_LIB_URL in pairs(REQUIRED_LIBS) do if FileExist(LIB_PATH .. DOWNLOAD_LIB_NAME .. ".lua") then require(DOWNLOAD_LIB_NAME) else DOWNLOADING_LIBS = true DOWNLOAD_COUNT = DOWNLOAD_COUNT + 1 DownloadFile(DOWNLOAD_LIB_URL, LIB_PATH .. DOWNLOAD_LIB_NAME..".lua", AfterDownload) end end if FileExist(LIB_PATH.."SxOrbWalk.lua") then SxOrbloaded = true end require "Collision" -- AutoUpdater local version = "Beta" local autoupdateenabled = true local UPDATE_SCRIPT_NAME = "AhriX" local UPDATE_HOST = "raw.github.com" local UPDATE_PATH = "/ajgoreq/BoL/master/AhriX.lua" local UPDATE_FILE_PATH = SCRIPT_PATH..GetCurrentEnv().FILE_NAME local UPDATE_URL = "https://"..UPDATE_HOST..UPDATE_PATH local ServerData if autoupdateenabled then GetAsyncWebResult(UPDATE_HOST, UPDATE_PATH, function(d) ServerData = d end) function update() if ServerData ~= nil then local ServerVersion local send, tmp, sstart = nil, string.find(ServerData, "local version = \"") if sstart then send, tmp = string.find(ServerData, "\"", sstart+1) end if send then ServerVersion = tonumber(string.sub(ServerData, sstart+1, send-1)) end if ServerVersion ~= nil and tonumber(ServerVersion) ~= nil and tonumber(ServerVersion) > tonumber(version) then DownloadFile(UPDATE_URL.."?nocache"..myHero.charName..os.clock(), UPDATE_FILE_PATH, function () print(""..UPDATE_SCRIPT_NAME..": successfully updated. Reload (double F9) Please. ("..version.." => "..ServerVersion..")") end) elseif ServerVersion then print(""..UPDATE_SCRIPT_NAME..": You have got the latest version: "..ServerVersion.."") end ServerData = nil end end AddTickCallback(update) end -- Lib Updater local REQUIRED_LIBS = { ["SxOrbWalk"] = "https://raw.githubusercontent.com/Superx321/BoL/master/common/SxOrbWalk.lua" } local DOWNLOADING_LIBS, DOWNLOAD_COUNT = false, 0 function AfterDownload() DOWNLOAD_COUNT = DOWNLOAD_COUNT - 1 if DOWNLOAD_COUNT == 0 then DOWNLOADING_LIBS = false print("Required libraries downloaded successfully, please reload (double F9).") end end for DOWNLOAD_LIB_NAME, DOWNLOAD_LIB_URL in pairs(REQUIRED_LIBS) do if FileExist(LIB_PATH .. DOWNLOAD_LIB_NAME .. ".lua") then require(DOWNLOAD_LIB_NAME) else DOWNLOADING_LIBS = true DOWNLOAD_COUNT = DOWNLOAD_COUNT + 1 DownloadFile(DOWNLOAD_LIB_URL, LIB_PATH .. DOWNLOAD_LIB_NAME..".lua", AfterDownload) end end if FileExist(LIB_PATH.."SxOrbWalk.lua") then SxOrbloaded = true end require "Collision" --[[ahrix By Ajgoreq]]-- if myHero.charName ~= "Ahri" then return end local QREADY local WREADY local EREADY local RREADY local QRANGE = 880+50 local WRANGE = 800 local ERANGE = 975 local RRANGE = 450+QRANGE function OnLoad() Menu() print("AhriX By Ajgoreq : Loaded") print("--------------------------------") print("-----AhriX: Good Luck-----") ts = TargetSelector(TARGET_LOW_HP,RRANGE,DAMAGE_MAGIC) end function OnTick() CastSpells() ts:update() Ready() Harass() enemyMinions:update() end function OnDraw() if (Configahrix.circle.circleq) then DrawCircle(myHero.x, myHero.y, myHero.z, QRANGE, 0xFF00FF) end if (Configahrix.circle.circlew) then DrawCircle(myHero.x, myHero.y, myHero.z, WRANGE, 0xFF00FF) end if (Configahrix.circle.circlee) then DrawCircle(myHero.x, myHero.y, myHero.z, ERANGE, 0xFF00FF) end end function Menu() Configahrix = scriptConfig("AhriX", "AhriX") -----------------------------COMBO----------------------------------- Configahrix:addSubMenu("Combo Settings", "comboset") Configahrix.comboset:addParam("ahrixq", "Use Q", SCRIPT_PARAM_ONOFF, true) Configahrix.comboset:addParam("ahrixw", "Use W", SCRIPT_PARAM_ONOFF, true) Configahrix.comboset:addParam("ahrixe", "Use E", SCRIPT_PARAM_ONOFF, true) Configahrix.comboset:addParam("ahrixr", "Use R", SCRIPT_PARAM_ONOFF, true) SxOrb:RegisterHotKey("Fight", Configahrix, "comboahrix") --------------------------------Harass------------------------------------------- Configahrix:addSubMenu("Harass", "harass") Configahrix.harass:addParam("harass", "Harass", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("C")) Configahrix.harass:addParam("harassQ", "Use Q", SCRIPT_PARAM_ONOFF, true) --------------------------Circle------------------------------------------------- Configahrix:addSubMenu("Circle", "circle") Configahrix.circle:addParam("circleq", "Draw Q Circle", SCRIPT_PARAM_ONOFF, true) Configahrix.circle:addParam("circlew", "Draw W Circle", SCRIPT_PARAM_ONOFF, true) Configahrix.circle:addParam("circlee", "Draw E Circle", SCRIPT_PARAM_ONOFF, true) --------------------------------------------------------------------------------- Configahrix:addSubMenu("OrbWalking", "orbWalking") SxOrb:LoadToMenu(Configahrix.orbWalking, true) Configahrix:addParam("comboahrix", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32) ts = TargetSelector(TARGET_LOW_HP,900+100,DAMAGE_PHYSICAL) enemyMinions = minionManager(MINION_ENEMY, ERANGE, player) ts.name = Ahri Configahrix:addTS(ts) end function CastSpells() ts:update() local target = ts.target if not target then return end if ValidTarget(target) then if RREADY and GetDistance(target) < RRANGE and Configahrix.comboset.ahrixr and Configahrix.comboahrix then CastSpell(_R, target.x, target.z) end end if WREADY and GetDistance(target) < WRANGE and Configahrix.comboset.ahrixw and Configahrix.comboahrix then CastSpell(_W) end if QREADY and GetDistance(target) < QRANGE and Configahrix.comboset.ahrixq and Configahrix.comboahrix then CastSpell(_Q, target.x, target.z) end if EREADY and GetDistance(target) < ERANGE and Configahrix.comboset.ahrixe and Configahrix.comboahrix and not minionCollision(target, ERANGE) then CastSpell(_E, target.x, target.z) end end function Ready() QREADY = myHero:CanUseSpell(_Q) == READY WREADY = myHero:CanUseSpell(_W) == READY EREADY = myHero:CanUseSpell(_E) == READY RREADY = myHero:CanUseSpell(_R) == READY end function Harass() ts:update() local target = ts.target if not target then return end if ValidTarget(target) then if QREADY and GetDistance(target) < QRANGE and Configahrix.harass.harass then CastSpell(_Q, target.x, target.z) end end end --[[Minion Collsion]]-- function minionCollision(target, range) for _, minionObjectE in pairs(enemyMinions.objects) do if target ~= nil and player:GetDistance(minionObjectE) < range then ex = player.x ez = player.z tx = target.x tz = target.z dx = ex - tx dz = ez - tz if dx ~= 0 then m = dz/dx c = ez - m*ex end mx = minionObjectE.x mz = minionObjectE.z distanc = (math.abs(mz - m*mx - c))/(math.sqrt(m*m+1)) if math.sqrt((tx - ex)*(tx - ex) + (tz - ez)*(tz - ez)) > math.sqrt((tx - mx)*(tx - mx) + (tz - mz)*(tz - mz)) then return true end end end return false end function FarmQ() if not myHero:CanUseSpell(_Q) == READY then return end for i, minion in pairs(MyMinionManager.objects) do if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible and minion.health < getDmg("Q", minion, myHero) then CastSpell(_Q, minion) end end end