if myHero.charName ~= "Akali" then return end require 'SxOrbWalk' local selectedTar = nil local VP = nil local version = 1.5 local AUTOUPDATE = true local SCRIPT_NAME = "d2akali" local SOURCELIB_URL = "https://raw.github.com/TheRealSource/public/master/common/SourceLib.lua" local SOURCELIB_PATH = LIB_PATH.."SourceLib.lua" local menu = nil local m = nil if FileExist(SOURCELIB_PATH) then require("SourceLib") else DONLOADING_SOURCELIB = true DownloadFile(SOURCELIB_URL, SOURCELIB_PATH, function() print("Required libraries downloaded successfully, please reload") end) end if DOWNLOADING_SOURCELIB then print("Downloading required libraries, please wait...") return end local RequireI = Require("SourceLib") RequireI:Check() if AUTOUPDATE then SourceUpdater(SCRIPT_NAME, version, "raw.github.com", "/dd2repo/BoL/master/"..SCRIPT_NAME..".lua", SCRIPT_PATH .. GetCurrentEnv().FILE_NAME, "/dd2repo/BoL/master/"..SCRIPT_NAME..".version"):CheckUpdate() end function OnLoad() if _G.Reborn_Loaded ~= nil then SAC = true print ("D2 Akali: SAC Reborn detected.") else SX = true print ("D2 Akali: SAC cannot be found. Will load SxOrbWalk.") if FileExist(LIB_PATH .. "/SxOrbWalk.lua") then require 'SxOrbWalk' else print ("D2 Akali: You need to download SxOrbWalk. Loading Script failed..") return end end vars() menu() end function vars() ts = TargetSelector(TARGET_LESS_CAST_PRIORITY,900) m = scriptConfig("[D2 Akali v1.5]", "d2akali") Ignite = (myHero:GetSpellData(SUMMONER_1).name:find("summonerdot") and SUMMONER_1) or (myHero:GetSpellData(SUMMONER_2).name:find("summonerdot") and SUMMONER_2) or nil end function menu() m:addSubMenu("Combo Settings", "combosettings") m.combosettings:addParam("useq", "Use Q", SCRIPT_PARAM_ONOFF, true) m.combosettings:addParam("usee", "Use E", SCRIPT_PARAM_ONOFF, true) m.combosettings:addParam("user", "Use R", SCRIPT_PARAM_ONOFF, true) --m.combosettings:addParam("logic", "Combo logic", SCRIPT_PARAM_LIST, 1, {"Spam everything"}) m:addSubMenu("Item Settings", "items") m.items:addParam("enableautozhonya", "Auto Zhonya's", SCRIPT_PARAM_ONOFF, false) m.items:addParam("autozhonya", "Zhonya's if Health under -> %", SCRIPT_PARAM_SLICE, 10, 0, 100, 0) m:addSubMenu("Stealth Settings", "stealthsettngs") m.stealthsettngs:addParam("w", "Use % HP stealh logic", SCRIPT_PARAM_ONOFF, true) m.stealthsettngs:addParam("usew", "Use W if your HP is under -> %", SCRIPT_PARAM_SLICE, 10, 0, 100, 0) m.stealthsettngs:addParam("w2", "Use X enemys stealh logic", SCRIPT_PARAM_ONOFF, true) m.stealthsettngs:addParam("usew2", "Use W if X enemys in range", SCRIPT_PARAM_LIST, 1, {"2 enemys", "3 enemys", "4 enemys", "5 enemys" }) m:addSubMenu("KS Settings", "ks") m.ks:addParam("ignite", "Use Ignite", SCRIPT_PARAM_ONOFF, true) m.ks:addParam("q", "Use Q", SCRIPT_PARAM_ONOFF, true) m.ks:addParam("e", "Use E", SCRIPT_PARAM_ONOFF, true) m.ks:addParam("r", "Use R", SCRIPT_PARAM_ONOFF, true) m:addSubMenu("Drawings", "draws") m.draws:addParam("drawq", "Draw Q range", SCRIPT_PARAM_ONOFF, false) m.draws:addParam("drawe", "Draw E range", SCRIPT_PARAM_ONOFF, false) m.draws:addParam("drawr", "Draw R range", SCRIPT_PARAM_ONOFF, false) m:addParam("combokey", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32) --m:addParam("magnet", "Meele Magnet", SCRIPT_PARAM_ONOFF, true) m:addParam("target", "Left click target selection", SCRIPT_PARAM_ONOFF, true) if SX == true then orb = SxOrb m:addSubMenu("Orbwalker", "orbwalk") orb:LoadToMenu(m.orbwalk) else m:addSubMenu("SAC detected. SxOrbWalk disabled!", "orbwalk") end m:addTS(ts) ts.name = "Selection" PrintChat ("[D2 Akali v1.2] loaded!") end function OnTick() checks() Killsteal() Combo() CST() Autostealth() autozhonya() end function checks() ts:update() Qready = (myHero:CanUseSpell(_Q) == READY) Wready = (myHero:CanUseSpell(_W) == READY) Eready = (myHero:CanUseSpell(_E) == READY) Rready = (myHero:CanUseSpell(_R) == READY) target = ts.target end function CountEnemyHeroInRange(range) local enemyInRange = 0 for i = 1, heroManager.iCount, 1 do local hero = heroManager:getHero(i) if ValidTarget(hero,range) then enemyInRange = enemyInRange + 1 end end return enemyInRange end function Autostealth() if m.stealthsettngs.w2 then if m.stealthsettngs.usew2 == 1 then if CountEnemyHeroInRange(900) >= 2 then CastSpell(_W, myHero.x, myHero.z) end elseif m.stealthsettngs.usew2 == 2 then if CountEnemyHeroInRange(900) >= 3 then CastSpell(_W, myHero.x, myHero.z) end elseif m.stealthsettngs.usew2 == 3 then if CountEnemyHeroInRange(900) >= 4 then CastSpell(_W, myHero.x, myHero.z) end elseif m.stealthsettngs.usew2 == 4 then if CountEnemyHeroInRange(900) >= 5 then CastSpell(_W, myHero.x, myHero.z) end end end if m.stealthsettngs.w then if myHero.health <= (myHero.maxHealth * m.stealthsettngs.usew / 100) then CastSpell(_W, myHero.x, myHero.z) end end end function autozhonya() if m.items.enableautozhonya then if myHero.health <= (myHero.maxHealth * m.items.autozhonya / 100) then CastItem(3157) CastItem(3090) end end end function Combo() if not target then return end if ValidTarget(target) and m.combokey then local tdis = GetDistance(target) if m.combosettings.useq and tdis < 600 and Qready then CastSpell(_Q, target) end if m.combosettings.usee and tdis < 325 and Eready then CastSpell(_E, target) end if m.combosettings.user and tdis < 700 and Rready then CastSpell(_R, target) end end end function Killsteal() for _, enemy in pairs(GetEnemyHeroes()) do if not enemy then return end local tdis = GetDistance(enemy) local qdmg = myHero:CalcMagicDamage(enemy, (20*myHero:GetSpellData(_Q).level+15+.4*myHero.ap)) local edmg = myHero:CalcMagicDamage(enemy, (25*myHero:GetSpellData(_E).level+5+0.3*myHero.ap+0.6*myHero.totalDamage)) local rdmg = myHero:CalcMagicDamage(enemy, (75*myHero:GetSpellData(_R).level+25+.5*myHero.ap)) if ValidTarget(enemy) then if m.ks.q and enemy.health < qdmg and tdis < 600 and Qready then CastSpell(_Q, enemy) end if m.ks.e and enemy.health < edmg and tdis < 300 and Eready then CastSpell(_E) end if m.ks.r and enemy.health < rdmg and tdis < 800 and Rready then CastSpell(_R, enemy) end if Ignite ~= nil and m.ks.ignite and enemy.health < getDmg("IGNITE", enemy, myHero) and ValidTarget(enemy, 600) then CastSpell(Ignite, enemy) end end end end function CST() local Target = nil if selectedTar then Target = selectedTar else Target = ts.target end end function OnWndMsg(Msg, Key) if m.target then if Msg == WM_LBUTTONDOWN then local minD = 10 local starget = nil for i, enemy in ipairs(GetEnemyHeroes()) do if ValidTarget(enemy) then if GetDistance(enemy, mousePos) <= minD or starget == nil then minD = GetDistance(enemy, mousePos) starget = enemy end end end if starget and minD < 500 then if selectedTar and starget.charName == selectedTar.charName then selectedTar = nil PrintChat ("UNSELECTED -> : "..starget.charName.."") else selectedTar = starget PrintChat ("SELECTED -> : "..starget.charName.."") end end end end end function OnDraw() if m.draws.drawq then DrawCircle(myHero.x, myHero.y, myHero.z, 600, ARGB(255, 255, 255, 255)) end if m.draws.drawe then DrawCircle(myHero.x, myHero.y, myHero.z, 325, ARGB(255, 255, 255, 255)) end if m.draws.drawr then DrawCircle(myHero.x, myHero.y, myHero.z, 700, ARGB(255, 255, 255, 255)) end end