--[[ ──────────────────────────────────────────────────────────────────────────────────── ─██████████─██████████████─████████████████───██████████████─██████──────────██████─ ─██░░░░░░██─██░░░░░░░░░░██─██░░░░░░░░░░░░██───██░░░░░░░░░░██─██░░██████████████░░██─ ─████░░████─██░░██████░░██─██░░████████░░██───██░░██████░░██─██░░░░░░░░░░░░░░░░░░██─ ───██░░██───██░░██──██░░██─██░░██────██░░██───██░░██──██░░██─██░░██████░░██████░░██─ ───██░░██───██░░██████░░██─██░░████████░░██───██░░██████░░██─██░░██──██░░██──██░░██─ ───██░░██───██░░░░░░░░░░██─██░░░░░░░░░░░░██───██░░░░░░░░░░██─██░░██──██░░██──██░░██─ ───██░░██───██░░██████░░██─██░░██████░░████───██░░██████░░██─██░░██──██████──██░░██─ ───██░░██───██░░██──██░░██─██░░██──██░░██─────██░░██──██░░██─██░░██──────────██░░██─ ─████░░████─██░░██──██░░██─██░░██──██░░██████─██░░██──██░░██─██░░██──────────██░░██─ ─██░░░░░░██─██░░██──██░░██─██░░██──██░░░░░░██─██░░██──██░░██─██░░██──────────██░░██─ ─██████████─██████──██████─██████──██████████─██████──██████─██████──────────██████─ ──────────────────────────────────────────────────────────────────────────────────── ]]-- --[[ CREDITS & MENTIONS: -Barasia -One -Husky -Dekland -LegendBot -Justh1n10 -LunarBlue ]]-- --[[ SOON: -Remake Menu Function. -Auto Barrier, health and clarity. -TowerClose ]]-- --[[ ISSUES: -It dies undertower >.< -Pairs withs Relics -SummonerRift is in Beta -AutoLevel with ROff doesnt work. ]]-- --[[ SETTINGS ]]-- local HotKey = 115 --F4 = 115, F6 = 117 local AUTOUPDATE = true --|>Change to false to disable auto update. local SummonerName = myHero.charName --|>Change myHero.charName for other name that you want. -----[[ Print Function ]]------ function _AutoupdaterMsg(msg) print("iARAM: "..msg..".") end -----[[ Auto Update Function ]]------ class "ScriptUpdate" function ScriptUpdate:__init(LocalVersion,UseHttps, Host, VersionPath, ScriptPath, SavePath, CallbackUpdate, CallbackNoUpdate, CallbackNewVersion,CallbackError) self.LocalVersion = LocalVersion self.Host = Host self.VersionPath = '/BoL/TCPUpdater/GetScript'..(UseHttps and '5' or '6')..'.php?script='..self:Base64Encode(self.Host..VersionPath)..'&rand='..math.random(99999999) self.ScriptPath = '/BoL/TCPUpdater/GetScript'..(UseHttps and '5' or '6')..'.php?script='..self:Base64Encode(self.Host..ScriptPath)..'&rand='..math.random(99999999) self.SavePath = SavePath self.CallbackUpdate = CallbackUpdate self.CallbackNoUpdate = CallbackNoUpdate self.CallbackNewVersion = CallbackNewVersion self.CallbackError = CallbackError AddDrawCallback(function() self:OnDraw() end) self:CreateSocket(self.VersionPath) self.DownloadStatus = 'Connect to Server for VersionInfo' AddTickCallback(function() self:GetOnlineVersion() end) end function ScriptUpdate:print(str) print(''..os.clock()..': '..str) end function ScriptUpdate:OnDraw() if self.DownloadStatus ~= 'Downloading Script (100%)' and self.DownloadStatus ~= 'Downloading VersionInfo (100%)'then DrawText('Download Status: '..(self.DownloadStatus or 'Unknown'),50,10,50,ARGB(0xFF,0xFF,0xFF,0xFF)) end end function ScriptUpdate:CreateSocket(url) if not self.LuaSocket then self.LuaSocket = require("socket") else self.Socket:close() self.Socket = nil self.Size = nil self.RecvStarted = false end self.LuaSocket = require("socket") self.Socket = self.LuaSocket.tcp() self.Socket:settimeout(0, 'b') self.Socket:settimeout(99999999, 't') self.Socket:connect('sx-bol.eu', 80) self.Url = url self.Started = false self.LastPrint = "" self.File = "" end function ScriptUpdate:Base64Encode(data) local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' return ((data:gsub('.', function(x) local r,b='',x:byte() for i=8,1,-1 do r=r..(b%2^i-b%2^(i-1)>0 and '1' or '0') end return r; end)..'0000'):gsub('%d%d%d?%d?%d?%d?', function(x) if (#x < 6) then return '' end local c=0 for i=1,6 do c=c+(x:sub(i,i)=='1' and 2^(6-i) or 0) end return b:sub(c+1,c+1) end)..({ '', '==', '=' })[#data%3+1]) end function ScriptUpdate:GetOnlineVersion() if self.GotScriptVersion then return end self.Receive, self.Status, self.Snipped = self.Socket:receive(1024) if self.Status == 'timeout' and not self.Started then self.Started = true self.Socket:send("GET "..self.Url.." HTTP/1.1\r\nHost: sx-bol.eu\r\n\r\n") end if (self.Receive or (#self.Snipped > 0)) and not self.RecvStarted then self.RecvStarted = true self.DownloadStatus = 'Downloading VersionInfo (0%)' end self.File = self.File .. (self.Receive or self.Snipped) if self.File:find('') then if not self.Size then self.Size = tonumber(self.File:sub(self.File:find('')+6,self.File:find('')-1)) end if self.File:find('') then local _,ScriptFind = self.File:find('') local ScriptEnd = self.File:find('') if ScriptEnd then ScriptEnd = ScriptEnd - 1 end local DownloadedSize = self.File:sub(ScriptFind+1,ScriptEnd or -1):len() self.DownloadStatus = 'Downloading VersionInfo ('..math.round(100/self.Size*DownloadedSize,2)..'%)' end end if self.File:find('') then self.DownloadStatus = 'Downloading VersionInfo (100%)' local a,b = self.File:find('\r\n\r\n') self.File = self.File:sub(a,-1) self.NewFile = '' for line,content in ipairs(self.File:split('\n')) do if content:len() > 5 then self.NewFile = self.NewFile .. content end end local HeaderEnd, ContentStart = self.File:find('') local ContentEnd, _ = self.File:find('') if not ContentStart or not ContentEnd then if self.CallbackError and type(self.CallbackError) == 'function' then self.CallbackError() end else self.OnlineVersion = (Base64Decode(self.File:sub(ContentStart + 1,ContentEnd-1))) self.OnlineVersion = tonumber(self.OnlineVersion) if self.OnlineVersion > self.LocalVersion then if self.CallbackNewVersion and type(self.CallbackNewVersion) == 'function' then self.CallbackNewVersion(self.OnlineVersion,self.LocalVersion) end self:CreateSocket(self.ScriptPath) self.DownloadStatus = 'Connect to Server for ScriptDownload' AddTickCallback(function() self:DownloadUpdate() end) else if self.CallbackNoUpdate and type(self.CallbackNoUpdate) == 'function' then self.CallbackNoUpdate(self.LocalVersion) end end end self.GotScriptVersion = true end end function ScriptUpdate:DownloadUpdate() if self.GotScriptUpdate then return end self.Receive, self.Status, self.Snipped = self.Socket:receive(1024) if self.Status == 'timeout' and not self.Started then self.Started = true self.Socket:send("GET "..self.Url.." HTTP/1.1\r\nHost: sx-bol.eu\r\n\r\n") end if (self.Receive or (#self.Snipped > 0)) and not self.RecvStarted then self.RecvStarted = true self.DownloadStatus = 'Downloading Script (0%)' end self.File = self.File .. (self.Receive or self.Snipped) if self.File:find('') then if not self.Size then self.Size = tonumber(self.File:sub(self.File:find('')+6,self.File:find('')-1)) end if self.File:find('') then local _,ScriptFind = self.File:find('') local ScriptEnd = self.File:find('') if ScriptEnd then ScriptEnd = ScriptEnd - 1 end local DownloadedSize = self.File:sub(ScriptFind+1,ScriptEnd or -1):len() self.DownloadStatus = 'Downloading Script ('..math.round(100/self.Size*DownloadedSize,2)..'%)' end end if self.File:find('') then self.DownloadStatus = 'Downloading Script (100%)' local a,b = self.File:find('\r\n\r\n') self.File = self.File:sub(a,-1) self.NewFile = '' for line,content in ipairs(self.File:split('\n')) do if content:len() > 5 then self.NewFile = self.NewFile .. content end end local HeaderEnd, ContentStart = self.NewFile:find('') local ContentEnd, _ = self.NewFile:find('') if not ContentStart or not ContentEnd then if self.CallbackError and type(self.CallbackError) == 'function' then self.CallbackError() end else local newf = self.NewFile:sub(ContentStart+1,ContentEnd-1) local newf = newf:gsub('\r','') if newf:len() ~= self.Size then if self.CallbackError and type(self.CallbackError) == 'function' then self.CallbackError() end return end local newf = Base64Decode(newf) if type(load(newf)) ~= 'function' then if self.CallbackError and type(self.CallbackError) == 'function' then self.CallbackError() end else local f = io.open(self.SavePath,"w+b") f:write(newf) f:close() if self.CallbackUpdate and type(self.CallbackUpdate) == 'function' then self.CallbackUpdate(self.OnlineVersion,self.LocalVersion) end end end self.GotScriptUpdate = true end end -----[[ Auto Update Globals ]]------ local ToUpdate = {} ToUpdate.Version = 8.26 ToUpdate.Update_Change_Log = "Update to 5.24" ToUpdate.UseHttps = true ToUpdate.Host = "raw.githubusercontent.com" ToUpdate.VersionPath = "/Husmeador12/Bol_Script/master/version/iARAM.version" ToUpdate.ScriptPath = "/Husmeador12/Bol_Script/master/iARAM.lua" ToUpdate.SavePath = SCRIPT_PATH.._ENV.FILE_NAME ToUpdate.CallbackUpdate = function(NewVersion,OldVersion) _AutoupdaterMsg("Updated to "..NewVersion..". Press F9 to reload") end ToUpdate.CallbackNoUpdate = function(OldVersion) _AutoupdaterMsg("Notes: "..ToUpdate.Update_Change_Log.."") end ToUpdate.CallbackNewVersion = function(NewVersion) _AutoupdaterMsg("New Version found ("..NewVersion.."). Please wait until its downloaded") end ToUpdate.CallbackError = function(NewVersion) _AutoupdaterMsg("Error while Downloading. Please try again.") end ScriptUpdate(ToUpdate.Version,ToUpdate.UseHttps, ToUpdate.Host, ToUpdate.VersionPath, ToUpdate.ScriptPath, ToUpdate.SavePath, ToUpdate.CallbackUpdate,ToUpdate.CallbackNoUpdate, ToUpdate.CallbackNewVersion,ToUpdate.CallbackError) -----[[ Auto Download Required LIBS ]]------ function CheckLib() local SOURCELIB_URL = "https://raw.githubusercontent.com/SidaBoL/Scripts/master/Common/VPrediction.lua" local SOURCELIB_PATH = LIB_PATH.."VPrediction.lua" local DownloadSourceLib = false if FileExist(SOURCELIB_PATH) then require("VPrediction") else DownloadSourceLib = true DownloadFile(SOURCELIB_URL, SOURCELIB_PATH, function() _AutoupdaterMsg("VPrediction downloaded, please reload (F9)") end) end if DownloadSourceLib then NotificationLib:AddTile("VPrediction", "Downloading required libraries, please wait...", 10) _AutoupdaterMsg("Downloading required libraries, please wait...") return end end --[[ GLOBALS [Do Not Change] ]]-- -----[[ Delay ]]------ local LastTick = nil local LastFollowChamp = nil local LastAttack = nil -----[[ Attack and farm Globals ]]------ local lastAttack, lastWindUpTime, lastAttackCD = 0, 0, 0 local range = myHero.range local ts = TargetSelector(TARGET_LESS_CAST_PRIORITY, range, DAMAGE_PHYSICAL, false) -----[[ OnWndMsg Global ]]------ local switcher = true -----[[ Poro Shouter Global ]]------ local lastCast = 0 require 'VPrediction' lastsend = 0 -----[[ Buyer Globals ]]------ --Globals so fucked >.< -----[[ Auto ward Globals ]]------ local drawWardSpots = false local wardSlot = nil -----[[ Tower Globals ]]------ local allyTurretColor = RGB(73,210,59) -- Green color local enemyTurretColor = RGB(255,0,0) -- Red color local visibilityTurretColor = RGB(130,0,0) -- Dark Red color local drawTurrets = {} local FollowTurrets = {} local ChampionBusy = false ---[[Globals]]-- local status = "Normal" local mdraw = {x=5940, z=6040} local edraw = {x=0, z=0} local Qready, Wready, Rready, Eready = false local DistanceTower = {AllyTower,EnemyTower} underT = { AllyTower = false, EnemyTower = false } local comboDmg = 0 local tabclosed = {} -- get closed enemy local tabget = {} -- get all enemys local onbase = false local safe = true local player = myHero local lastAttack, lastWindUpTime, lastAttackCD = 0, 0, 0 local range = myHero.range --[[ CheckLoLVersion Function ]]-- function CheckLoLVersion() LoLVersion = GetGameVersion() --_AutoupdaterMsg(""..GetGameVersion().."") if string.match(LoLVersion, "5.24.0.249") then LoLVersionWorking = true --_AutoupdaterMsg("Script Updated for this LoL version") else LoLVersionWorking = false NotificationLib:AddTile("iARAM Outdated", "Script Outdated for this LoL version", 20) _AutoupdaterMsg("iARAM is outdated for this LoL version") end end function OnLoad() CheckLib() _OnLoad() end -----[[ Build and defining Champion Class ]]------ do myHero = GetMyHero() Target = nil spawnpos = { x = myHero.x, z = myHero.z} ranged = 0 assassins = {"Akali","Diana","Evelynn","Fizz","Katarina","Kindred","Nidalee"} adtanks = {"Braum","DrMundo","Garen","Gnar","Hecarim","JarvanIV","Nasus","Skarner","TahmKench","Thresh","Volibear","Yorick"} adcs = {"Ashe","Caitlyn","Corki","Draven","Ezreal","Gangplank","Graves","Jinx","Kalista","KogMaw","Lucian","MissFortune","Quinn","Sivir","Tristana","Tryndamere","Twitch","Urgot","Varus","Vayne"} aptanks = {"Alistar","Amumu","Blitzcrank","Chogath","Leona","Malphite","Maokai","Nautilus","Rammus","Sejuani","Shen","Singed","Taric","Zac"} mages = {"Ahri","Anivia","Annie","Azir","Bard","Brand","Cassiopeia","Ekko","Galio","Gragas","Heimerdinger","Illaoi","Janna","Karma","Karthus","LeBlanc","Lissandra","Lulu","Lux","Malzahar","Morgana","Nami","Nunu","Orianna","Ryze","Shaco","Sona","Soraka","Swain","Syndra","TwistedFate","Veigar","Velkoz","Viktor","Xerath","Ziggs","Zilean","Zyra"} hybrids = {"Kayle","Teemo"} bruisers = {"Darius","Irelia","Khazix","LeeSin","Olaf","Pantheon","RekSai","Renekton","Rengar","Riven","Shyvana","Talon","Trundle","Vi","MonkeyKing","Zed","Yasuo"} fighters = {"Aatrox","Fiora","Jax","Jayce","MasterYi","Nocturne","Poppy","Sion","Udyr","Warwick","XinZhao"} apcs = {"Elise","FiddleSticks","Kennen","Mordekaiser","Rumble","Vladimir"} heroType = nil for i,nam in pairs(adcs) do if nam == myHero.charName then heroType = 1 end end for i,nam in pairs(adtanks) do if nam == myHero.charName then heroType = 2 end end for i,nam in pairs(aptanks) do if nam == myHero.charName then heroType = 3 end end for i,nam in pairs(hybrids) do if nam == myHero.charName then heroType = 4 end end for i,nam in pairs(bruisers) do if nam == myHero.charName then heroType = 5 end end for i,nam in pairs(assassins) do if nam == myHero.charName then heroType = 6 end end for i,nam in pairs(mages) do if nam == myHero.charName then heroType = 7 end end for i,nam in pairs(apcs) do if nam == myHero.charName then heroType = 8 end end for i,nam in pairs(fighters) do if nam == myHero.charName then heroType = 9 end end if heroType == nil then heroType = 10 end if heroType ~= 10 then --if iARAM.misc.miscelaneus then _AutoupdaterMsg("Hero Items Loaded") --end end if heroType == 1 then _AutoupdaterMsg("Hero Type: ADC" ) elseif heroType == 2 then _AutoupdaterMsg("Hero Type: ADTANK" ) elseif heroType == 3 then _AutoupdaterMsg("Hero Type: APTANK" ) elseif heroType == 4 then _AutoupdaterMsg("Hero Type: Hybrid" ) elseif heroType == 5 then _AutoupdaterMsg("Hero Type: BRUISER" ) elseif heroType == 6 then _AutoupdaterMsg("Hero Type: ASSASINS" ) elseif heroType == 7 then _AutoupdaterMsg("Hero Type: MAGE" ) elseif heroType == 8 then _AutoupdaterMsg("Hero Type: APC" ) elseif heroType == 9 then _AutoupdaterMsg("Hero Type: FIGHTER") else _AutoupdaterMsg("Hero Type: UNKOWN" ) end if myHero.range > 400 then ranged = 1 end if heroType == 1 then --ADC --shopList = {3006,3342,3343,3400,3409,1294,3181,1293,3035,3026,0} shopList = {1001,3006,3342,3343,3400,3409,1294,3181,1293,3035,3026,0} end if heroType == 2 then --ADTANK --shopList = {3047,1011,3390,3068,3024,3025,3071,3338,3399,3005,0} shopList = {1001,3047,1011,3390,3068,3024,3025,3071,3338,3399,3005,0} end if heroType == 3 then --APTANK --shopList = {3367,1287,3068,1313,3372,1282,3001,3338,3366,3358,0} shopList = {1001,3367,1287,3068,1313,3372,1282,3001,3338,3366,3358,0} end if heroType == 4 then --HYBRID --shopList = {3364,3371,3020,1282,3392,3345,1299,3347,3407,3372} shopList = {1001,3364,3371,3020,1282,3392,3345,1299,3347,3407,3372} end if heroType == 5 then --BRUISER --shopList = {1001,3367,3390,1294,3181,3411,3071,1309,3333,3330,3412,3190} shopList = {1001,3367,3390,1294,3181,3411,3071,1309,3333,3330,3412,3190} end if heroType == 6 then --ASSASSIN --shopList = {3020,3057,3356,1282,3345,3392,3407,1314,3413,3391,0} shopList = {1001,3057,3356,1282,3345,3392,3407,1314,3413,3391,0} end if heroType == 7 then --MAGE shopList = {1001,3392,1314,3345,3174,3407,1282,3001,3391,0} end if heroType == 8 then --APC shopList = {1001,3401,3020,3408,1282,3372,1314,3345,1282,3001,3413} end if heroType == 9 or heroType == 10 then --FIGHTER and OTHERS shopList = {1001,3401,3020,3408,1282,3372,1314,3345,1282,3001,3413} end startTime = GetTickCount() --item ids can be found at many websites, ie: http://www.lolking.net/items/1004 end --[[ On Draw Function ]]-- function OnDraw() AirText() RangeCircles() --|>Autoward AutoWarderDraw() DebugCursorPos() --|>NameDrawer DrawFakeNames() DrawTowerRange() ChampionesDraw() _MyHeroText() DrawNotificationLib() end --[[ On Load Function ]]-- function _OnLoad() startingTime = GetTickCount() CheckLoLVersion() Menu() if LoLVersionWorking then NotificationLib:AddTile("Welcome to iARAM", ""..ToUpdate.Update_Change_Log.." Version: "..ToUpdate.Version.."", 10) gete() enemyMinion = minionManager(MINION_ENEMY, 800, player, MINION_SORT_HEALTH_ASC) allyMinion = minionManager(MINION_ALLY, 800, player, MINION_SORT_HEALTH_ASC) OnProcessSpell() timeToShoot() heroCanMove() OnWndMsg() OnWndMsgNotificationLib() AutoChat() --|>Auto Ward AutoWard() --|>Auto Ignite if ignite ~= nil then FunctionAutoIgnite() end --|>Mode Alone LoadMapVariables() KeyDownFix() end end --[[ On Unload Function ]]-- function OnUnload() print ("iARAM: disabled.") end --[[ OnTick Function ]]-- function OnTick() startingTime = GetTickCount() if LoLVersionWorking then AutoBuy() LFC() --|> Poro Shouter PoroCheck() --|>Autopotions AutoPotions() TowerRangers() FunctionAutoZhonya() Allie = followHero() EnemyTabFunction() getsafe() ts:update() CheckStatus() enemyMinion:update() allyMinion:update() Cooldowncheck() mqnt() CheckTower() if ts.target then ts.targetSelected = true end EnemyCount() end end ---------[[ OnWndMsg Script ]]--------- function OnWndMsg(msg, keycode) AutoWard() if keycode == HotKey and msg == KEY_DOWN then if switcher == true then switcher = false _AutoupdaterMsg("Script disabled ") else switcher = true _AutoupdaterMsg("Script enabled ") end end end function ChampionesDraw() if iARAM.misc.misc2 then if player.dead or GetGame().isOver then return end --for index,minion in pairs(enemyMinion.objects) do --if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible and minion.health <= getDmg("W", minion, myHero) then -- DrawCircle3D(minion.x, minion.y, minion.z, 30, 1, RGB(255,0,255), 100) -- DrawLine3D(myHero.x, myHero.y, myHero.z, minion.x, minion.y, minion.z, 1, 0x7FFF00) --end --end -- Draw Enemy for _, str in pairs(tabget) do if myHero:GetDistance(tabget[_]) < 800 and not tabget[_].dead and tabget[_] ~= nil and tabget[_].valid and tabget[_].visible and tabget[_].health > 1 then DrawLine3D(myHero.x, myHero.y, myHero.z, tabget[_].x, tabget[_].y, tabget[_].z, 1, RGB(255,255,255)) DrawCircle3D(tabget[_].x, tabget[_].y, tabget[_].z, 100, 1, RGB(255,255,255), 100) end end -- Target Draw if ts.target then hp = ((ts.target.health * 100) / ts.target.maxHealth) * 2 DrawText(ts.target.charName, 20, 15, 150, RGB(255,255,255)) DrawLine(15, 200, 200 + 15, 200, 10, RGB(255,105,105)) if ts.target.health < ts.target.maxHealth /2 then DrawLine(15, 200, hp + 15, 200, 10, RGB(255,255,215)) elseif ts.target.health > ts.target.maxHealth /2 then DrawLine(15, 200, hp + 15, 200, 10, RGB(255,0,255)) elseif ts.target.health < comboDmg then DrawLine(15, 200, hp + 15, 200, 10, RGB(255,255,95)) end end end end function CheckStatus() eTurret = GetCloseTower(player, TEAM_ENEMY) aTurret = GetCloseTower(player, player.team) AllyNotAFK = followHero() TimeToStart = 20 --0:10 if TimeToStart > os.clock() then return end if iARAM.follow then if safe == false then status = "Not Safe" DefensiveMode() elseif myHero.health < myHero.maxHealth/4 and summonersRiftMap then -- Back to Base status = "LowHP" lowHP() elseif myHero.health < myHero.maxHealth/4 and myHero.x >= 2880 and myHero.z >= 2880 and howlingAbyssMap == true then -- HP Relics status = "Loking for Relic" TakingRelic() elseif onbase == true then status = "On Base" if myHero.health == myHero.maxHealth then onbase = false end elseif #eTab > 0 and ts.target ~= nil and ts.target.valid and not ts.target.dead and ts.target.visible then status = "Fight" Fight() elseif #allyMinion.objects > 1 and #enemyMinion.objects >= 1 then -- Farming status = "Farming" FarmMode() elseif Allies() >= 2 and myHero.x >= 2880 and myHero.z >= 2880 and myHero.team == TEAM_BLUE then status = "TF Mode" TFMode() elseif Allies() >= 2 and myHero.x <= 12880 and myHero.z <= 12880 and myHero.team == TEAM_RED then status = "TF Mode" TFMode() elseif GetDistance(eTurret, player) > 1800 and #allyMinion.objects <= 1 and #enemyMinion.objects <= 1 and howlingAbyssMap then status = "Moving" MoveModeHA() elseif GetDistance(eTurret, player) > 1800 and #allyMinion.objects <= 1 and #enemyMinion.objects <= 1 and summonersRiftMap then status = "Moving" MoveModeSR() elseif GetDistance(eTurret, player) > 1800 and #allyMinion.objects <= 1 and #enemyMinion.objects <= 1 and twistedTreeLineMap then status = "Moving" MoveModeTT() elseif #allyMinion.objects <= 1 and GetDistance(aTurret, player) >= 800 and summonersRiftMap then -- Alone status = "Alone" AloneModeSR() elseif #allyMinion.objects <= 1 and GetDistance(aTurret, player) >= 800 and howlingAbyssMap then -- Alone status = "Alone" AloneModeHA() else status = "Normal" NormalMode() end end end function Fight() local champ = player.charName if ts.target then if champ == "Aatrox" then harass(ts.target) elseif champ == "Ahri" then AhriCombo() harass(ts.target) elseif champ == "Akali" then AkaliCombo() harass(ts.target) elseif champ == "Alistar" then ComboFull() harass(ts.target) elseif champ == "Amumu" then ComboFull() harass(ts.target) elseif champ == "Anivia" then ComboFull() harass(ts.target) elseif champ == "Annie" then AnnieCombo() harass(ts.target) elseif champ == "Ashe" then AsheCombo() harass(ts.target) elseif champ == "Azir" then ComboFull() harass(ts.target) elseif champ == "Blitzcrank" then ComboFull() harass(ts.target) elseif champ == "Brand" then ComboFull() harass(ts.target) elseif champ == "Bard" then ComboFull() harass(ts.target) elseif champ == "Braum" then ComboFull() harass(ts.target) elseif champ == "Caitlyn" then CaitlynCombo() harass(ts.target) elseif champ == "Cassiopeia" then ComboFull() harass(ts.target) elseif champ == "Chogath" then ComboFull() elseif champ == "Corki" then ComboFull() harass(ts.target) elseif champ == "Darius" then ComboFull() elseif champ == "Diana" then ComboFull() harass(ts.target) elseif champ == "DrMundo" then ComboFull() harass(ts.target) elseif champ == "Draven" then ComboFull() harass(ts.target) elseif champ == "Ekko" then ComboFull() harass(ts.target) elseif champ == "Elise" then ComboFull() harass(ts.target) elseif champ == "Evelynn" then ComboFull() harass(ts.target) elseif champ == "Ezreal" then ComboFull() harass(ts.target) elseif champ == "FiddleSticks" then FiddleSticksCombo() harass(ts.target) elseif champ == "Fiora" then ComboFull() harass(ts.target) elseif champ == "Fizz" then ComboFull() harass(ts.target) elseif champ == "Galio" then ComboFull() harass(ts.target) elseif champ == "Gangplank" then GangplankCombo() harass(ts.target) elseif champ == "Garen" then ComboFull() elseif champ == "Gragas" then GragasCombo() harass(ts.target) elseif champ == "Graves" then ComboFull() harass(ts.target) elseif champ == "Gnar" then ComboFull() harass(ts.target) elseif champ == "Hecarim" then ComboFull() harass(ts.target) elseif champ == "Heimerdinger" then ComboFull() harass(ts.target) elseif champ == "Illaoi" then ComboFull() harass(ts.target) elseif champ == "Irelia" then ComboFull() harass(ts.target) elseif champ == "Janna" then JannaCombo() harass(ts.target) elseif champ == "JarvanIV" then ComboFull() harass(ts.target) elseif champ == "Jax" then ComboFull() harass(ts.target) elseif champ == "Jayce" then ComboFull() harass(ts.target) elseif champ == "Jinx" then ComboFull() harass(ts.target) elseif champ == "Kalista" then ComboFull() harass(ts.target) elseif champ == "Karma" then KarmaCombo() harass(ts.target) elseif champ == "Karthus" then ComboFull() harass(ts.target) elseif champ == "Kassadin" then ComboFull() harass(ts.target) elseif champ == "Katarina" then ComboFull() harass(ts.target) elseif champ == "Kayle" then KayleCombo() harass(ts.target) elseif champ == "Kennen" then ComboFull() harass(ts.target) elseif champ == "Kindred" then KindredCombo() harass(ts.target) elseif champ == "Khazix" then ComboFull() harass(ts.target) elseif champ == "KogMaw" then ComboFull() harass(ts.target) elseif champ == "Leblanc" then ComboFull() harass(ts.target) elseif champ == "LeeSin" then ComboFull() harass(ts.target) elseif champ == "Leona" then LeonaCombo() elseif champ == "Lissandra" then ComboFull() harass(ts.target) elseif champ == "Lucian" then ComboFull() harass(ts.target) elseif champ == "Lulu" then LuluCombo() harass(ts.target) elseif champ == "Lux" then LuxCombo() harass(ts.target) elseif champ == "Malphite" then ComboFull() harass(ts.target) elseif champ == "Malzahar" then ComboFull() harass(ts.target) elseif champ == "Maokai" then ComboFull() harass(ts.target) elseif champ == "MasterYi" then ComboFull() harass(ts.target) elseif champ == "MissFortune" then ComboFull() harass(ts.target) elseif champ == "MonkeyKing" then ComboFull() harass(ts.target) elseif champ == "Mordekaiser" then ComboFull() harass(ts.target) elseif champ == "Morgana" then MorganaCombo() harass(ts.target) elseif champ == "Nami" then ComboFull() harass(ts.target) elseif champ == "Nasus" then ComboFull() harass(ts.target) elseif champ == "Nautilus" then ComboFull() harass(ts.target) elseif champ == "Nidalee" then NidaleeCombo() harass(ts.target) elseif champ == "Nocturne" then ComboFull() harass(ts.target) elseif champ == "Nunu" then NunuCombo() elseif champ == "Olaf" then ComboFull() harass(ts.target) elseif champ == "Orianna" then ComboFull() harass(ts.target) elseif champ == "Pantheon" then ComboFull() harass(ts.target) elseif champ == "Poppy" then ComboFull() harass(ts.target) elseif champ == "Quinn" then ComboFull() harass(ts.target) elseif champ == "Rammus" then ComboFull() harass(ts.target) elseif champ == "RekSai" then ComboFull() harass(ts.target) elseif champ == "Renekton" then ComboFull() harass(ts.target) elseif champ == "Rengar" then ComboFull() harass(ts.target) elseif champ == "Riven" then ComboFull() harass(ts.target) elseif champ == "Rumble" then ComboFull() harass(ts.target) elseif champ == "Ryze" then RyzeCombo() harass(ts.target) elseif champ == "Sejuani" then ComboFull() harass(ts.target) elseif champ == "Shaco" then ComboFull() harass(ts.target) elseif champ == "Shen" then ComboFull() harass(ts.target) elseif champ == "Shyvana" then ComboFull() harass(ts.target) elseif champ == "Singed" then ComboFull() harass(ts.target) elseif champ == "Sion" then ComboFull() harass(ts.target) elseif champ == "Sivir" then ComboFull() harass(ts.target) elseif champ == "Skarner" then ComboFull() harass(ts.target) elseif champ == "Sona" then ComboFull() harass(ts.target) elseif champ == "Soraka" then ComboFull() harass(ts.target) elseif champ == "Swain" then ComboFull() harass(ts.target) elseif champ == "Syndra" then ComboFull() harass(ts.target) elseif champ == "TahmKench" then ComboFull() harass(ts.target) elseif champ == "Talon" then ComboFull() harass(ts.target) elseif champ == "Taric" then TaricCombo() TaricDefensive() harass(ts.target) elseif champ == "Teemo" then ComboFull() harass(ts.target) elseif champ == "Thresh" then ComboFull() harass(ts.target) elseif champ == "Tristana" then ComboFull() harass(ts.target) elseif champ == "Trundle" then ComboFull() harass(ts.target) elseif champ == "Tryndamere" then ComboFull() harass(ts.target) elseif champ == "TwistedFate" then TwistedFateCombo() harass(ts.target) elseif champ == "Twitch" then ComboFull() harass(ts.target) elseif champ == "Udyr" then ComboFull() harass(ts.target) elseif champ == "Urgot" then ComboFull() harass(ts.target) elseif champ == "Varus" then ComboFull() harass(ts.target) elseif champ == "Vayne" then ComboFull() harass(ts.target) elseif champ == "Veigar" then ComboFull() harass(ts.target) elseif champ == "Velkoz" then ComboFull() harass(ts.target) elseif champ == "Vi" then ComboFull() harass(ts.target) elseif champ == "Viktor" then ComboFull() harass(ts.target) elseif champ == "Vladimir" then ComboFull() harass(ts.target) elseif champ == "Volibear" then ComboFull() harass(ts.target) elseif champ == "Warwick" then WarwickCombo() elseif champ == "Xerath" then ComboFull() harass(ts.target) elseif champ == "XinZhao" then ComboFull() harass(ts.target) elseif champ == "Yorick" then ComboFull() harass(ts.target) elseif champ == "Yasuo" then ComboFull() harass(ts.target) elseif champ == "Zac" then ComboFull() harass(ts.target) elseif champ == "Zed" then ComboFull() harass(ts.target) elseif champ == "Ziggs" then ZiggsFarm() harass(ts.target) elseif champ == "Zilean" then ComboFull() harass(ts.target) elseif champ == "Zyra" then ComboFull() harass(ts.target) else harass(ts.target) ComboFull() comboDmg = getDmg("Q", ts.target, myHero) + getDmg("W", ts.target, myHero) + getDmg("R", ts.target, myHero) RDmg = getDmg("R", ts.target, myHero) ts.targetSelected = true if RDmg > ts.target.health and Rready then CastSpell(_R, ts.target.x, ts.target.z) elseif comboDmg >= ts.target.health then Combo(ts.target) end _AutoupdaterMsg(string.format(" >> No mode Fight for %s", champ)) end end end function EnemyTabFunction() local champ = player.charName if champ == "Aatrox" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Ahri" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Akali" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Alistar" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Amumu" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Anivia" then eTab = GetEnemiesInRange(900, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1050, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Annie" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Ashe" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Azir" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Blitzcrank" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Brand" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(950, myHero) else tabclosed = GetEnemiesInRange(490, myHero) end elseif champ == "Bard" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Braum" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Caitlyn" then eTab = GetEnemiesInRange(1030, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1000, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Cassiopeia" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Chogath" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Corki" then eTab = GetEnemiesInRange(900, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1050, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Darius" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Diana" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "DrMundo" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Draven" then eTab = GetEnemiesInRange(900, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1250, myHero) else tabclosed = GetEnemiesInRange(400, myHero) end elseif champ == "Ekko" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Elise" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Evelynn" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Ezreal" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "FiddleSticks" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Fiora" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Fizz" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Galio" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Gangplank" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1050) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(900, myHero) end elseif champ == "Garen" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Gragas" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(750, myHero) else tabclosed = GetEnemiesInRange(400, myHero) end elseif champ == "Graves" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Gnar" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Hecarim" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Heimerdinger" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Illaoi" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Irelia" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Janna" then eTab = GetEnemiesInRange(900, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(900, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "JarvanIV" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Jax" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Jayce" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Jinx" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Kalista" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Karma" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Karthus" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Kassadin" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Katarina" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Kayle" then eTab = GetEnemiesInRange(10050, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Kennen" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Kindred" then eTab = GetEnemiesInRange(1250, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1000, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Khazix" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "KogMaw" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Leblanc" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "LeeSin" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Leona" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Lissandra" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Lucian" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Lulu" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(700, myHero) end elseif champ == "Lux" then eTab = GetEnemiesInRange(830, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(850, myHero) else tabclosed = GetEnemiesInRange(100, myHero) end elseif champ == "Malphite" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Malzahar" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Maokai" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "MasterYi" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "MissFortune" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "MonkeyKing" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Mordekaiser" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Morgana" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Nami" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Nasus" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Nautilus" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Nidalee" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Nocturne" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Nunu" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Olaf" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Orianna" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Pantheon" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Poppy" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Quinn" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Rammus" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "RekSai" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Renekton" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Rengar" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Riven" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Rumble" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Ryze" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Sejuani" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Shaco" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Shen" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Shyvana" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Singed" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Sion" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Sivir" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Skarner" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Sona" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Soraka" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(700, myHero) end elseif champ == "Swain" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Syndra" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "TahmKench" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Talon" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Taric" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Teemo" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Thresh" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Tristana" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Trundle" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Tryndamere" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "TwistedFate" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Twitch" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Udyr" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Urgot" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Varus" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Vayne" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Veigar" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Velkoz" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Vi" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Viktor" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Vladimir" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Volibear" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Warwick" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Xerath" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "XinZhao" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Yorick" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Yasuo" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Zac" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Zed" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Ziggs" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Zilean" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end elseif champ == "Zyra" then eTab = GetEnemiesInRange(800, myHero) if EnemyCount(myHero, 1150) == 2 then tabclosed = GetEnemiesInRange(1150, myHero) else tabclosed = GetEnemiesInRange(500, myHero) end else eTab = GetEnemiesInRange(630, myHero) tabclosed = GetEnemiesInRange(800, myHero) _AutoupdaterMsg(string.format(" >> Get Range Enemies disabled for %s", champ)) end end function getsafe() local q = {} for i, str in pairs(tabclosed) do if str.valid and str.team ~= myHero.team and not str.dead and str.visible then table.insert(q, str.charName) end end if #q > 0 and iARAM.follow then safe = false ts.targetSelected = false if myHero.team == TEAM_BLUE then myHero:MoveTo(myHero.x-800,myHero.z-800) else myHero:MoveTo(myHero.x+800,myHero.z+800) end else safe = true end end function InRange(unit, range, from) if (not range) then return false end from = from or myHero return (GetDistance(unit, from) <= range) end function GetEnemiesInRange(range, from) from = from or myHero local enemies = { } for _, enemy in ipairs(GetEnemyHeroes()) do if (InRange(enemy, range, from)) then table.insert(enemies, enemy) end end return enemies end function lowHP() local myTurret = GetCloseTower(player, player.team) if underT.AllyTower and myHero:GetDistance(myTurret) < 300 then --CastSpell(RECALL) --Function Crashed if myHero.x >= 400 and myHero.x >= 182 then onbase = true elseif myHero.x >= 14260 and myHero.x >= 14382 then onbase = true end else if myHero.team == TEAM_BLUE then myHero:MoveTo(400,400) else myHero:MoveTo(14300,14300) end end end function TakingRelic() if not myHero.dead then if myHero.team == TEAM_BLUE then --myHero:MoveTo(5900,5200) myHero:MoveTo(4790,3950) else myHero:MoveTo(8890,7900) end end end function MoveModeHA() local EnemyTurret = GetCloseTower(player, TEAM_ENEMY) local AllyTurret = GetCloseTower(player, player.team) if myHero.team == TEAM_BLUE then myHero:MoveTo(myHero.x+800, myHero.z+800) else myHero:MoveTo(myHero.x-800, myHero.z-800) end end function MoveModeSR() local Turret = GetCloseTower(player, TEAM_ENEMY) local aTurret = GetCloseTower(player, player.team) if myHero.x >= 2880 and myHero.z >= 2880 then if myHero.team == TEAM_BLUE then myHero:MoveTo(aTurret.x+600, aTurret.z+600) else myHero:MoveTo(aTurret.x-600, aTurret.z-600) end else if myHero.team == TEAM_BLUE then myHero:MoveTo(5852, 6232) else myHero:MoveTo(8600, myHero.z-8600) end end if myHero.x >= 10000 and myHero.z >= 10000 and myHero.team == TEAM_RED then if myHero.team == TEAM_BLUE then myHero:MoveTo(eTurret.x+600, eTurret.z+600) else myHero:MoveTo(eTurret.x-600, eTurret.z-600) end else if myHero.team == TEAM_BLUE then myHero:MoveTo(5852, 6232) else myHero:MoveTo(8600, myHero.z-8600) end end end function MoveModeTT() local Turret = GetCloseTower(player, TEAM_ENEMY) local aTurret = GetCloseTower(player, player.team) if myHero.x >= 2880 and myHero.z >= 2880 then if myHero.team == TEAM_BLUE then myHero:MoveTo(aTurret.x+600, aTurret.z+600) else myHero:MoveTo(aTurret.x-600, aTurret.z-600) end else if myHero.team == TEAM_BLUE then myHero:MoveTo(4252, 9532) else myHero:MoveTo(8600, myHero.z-8600) end end end function AloneModeSR() local myTurret = GetCloseTower(player, player.team) local EnemyTurret = GetCloseTower(player, TEAM_ENEMY) if myHero.team == TEAM_BLUE then myHero:MoveTo(myTurret.x-200, myTurret.z-200) else myHero:MoveTo(myTurret.x+200, myTurret.z+200) end end function AloneModeHA() local myTurret = GetCloseTower(player, player.team) local EnemyTurret = GetCloseTower(player, TEAM_ENEMY) if myHero.team == TEAM_BLUE then myHero:MoveTo(myHero.x-800, myHero.z-800) else myHero:MoveTo(myHero.x+800, myHero.z+800) end end function FarmMode() if player.dead or GetGame().isOver then return end AhriFarm() AkaliFarm() AnnieFarm() AsheFarm() CaitlynFarm() FiddleSticksFarm() GangplankFarm() GragasFarm() JannaFarm() KarmaFarm() KayleFarm() KindredFarm() LeonaFarm() LuluFarm() LuxFarm() MorganaFarm() NidaleeFarm() --RyzeFarm() TaricFarm() TwistedFateFarm() WarwickFarm() ZiggsFarm() if heroType == 1 then --adc if(GetDistance(Vector(mdraw.x, mdraw.z), player) > 400) then myHero:MoveTo(mdraw.x+100,mdraw.z+100) else if underT.e == true then myHero:MoveTo(mdraw.x,mdraw.z) end end elseif heroType == 2 then --ADtank if(GetDistance(Vector(mdraw.x, mdraw.z), player) > 400) then myHero:MoveTo(mdraw.x+100,mdraw.z+100) else if underT.e == true then myHero:MoveTo(mdraw.x,mdraw.z) end end elseif heroType == 3 then --APTank if(GetDistance(Vector(mdraw.x, mdraw.z), player) > 400) then myHero:MoveTo(mdraw.x+100,mdraw.z+100) else if underT.e == true then myHero:MoveTo(mdraw.x,mdraw.z) end end elseif heroType == 4 then --Fighter if(GetDistance(Vector(mdraw.x, mdraw.z), player) > 400) then myHero:MoveTo(mdraw.x+100,mdraw.z+100) else if underT.e == true then myHero:MoveTo(mdraw.x,mdraw.z) end end elseif heroType == 5 then --Fighter if(GetDistance(Vector(mdraw.x, mdraw.z), player) > 400) then myHero:MoveTo(mdraw.x+100,mdraw.z+100) else if underT.e == true then myHero:MoveTo(mdraw.x,mdraw.z) end end elseif heroType == 6 then --Fighter if(GetDistance(Vector(mdraw.x, mdraw.z), player) > 400) then myHero:MoveTo(mdraw.x+100,mdraw.z+100) else if underT.e == true then myHero:MoveTo(mdraw.x,mdraw.z) end end elseif heroType == 7 then --Mage if(GetDistance(Vector(mdraw.x, mdraw.z), player) > 400) then myHero:MoveTo(mdraw.x+190,mdraw.z+190) else if underT.e == true then myHero:MoveTo(mdraw.x,mdraw.z) end end elseif heroType == 8 then -- if(GetDistance(Vector(mdraw.x, mdraw.z), player) > 400) then myHero:MoveTo(mdraw.x+100,mdraw.z+100) else if underT.e == true then myHero:MoveTo(mdraw.x,mdraw.z) end end elseif heroType == 9 then --Fighter if(GetDistance(Vector(mdraw.x, mdraw.z), player) > 700) then myHero:MoveTo(mdraw.x+400,mdraw.z+400) else if underT.e == true then myHero:MoveTo(mdraw.x,mdraw.z) end end end -- Farm AA range = myHero.range + myHero.boundingRadius - 3 ts.range = range ts:update() enemyMinions = minionManager(MINION_ENEMY, 600, player, MINION_SORT_HEALTH_ASC) enemyMinions:update() local player = GetMyHero() local ticking = 0 local delaying = 400 local myTarget = ts.target if not iARAM.misc.farm then return end for index, minion in pairs(enemyMinions.objects) do if GetDistance(minion, myHero) <= (myHero.range + 75) and GetTickCount() > ticking + delaying then local dmg = getDmg("AD", minion, myHero) if dmg > minion.health and timeToShoot() then myHero:Attack(minion) DelayAction(function() myHero:MoveTo(mdraw.x+3,mdraw.z+3) end, 1.5) ticking = GetTickCount() else if heroCanMove() then end end end end end function NormalMode() if myHero.x >= 2880 and myHero.z >= 2880 then if heroType == 1 then --adc if GetDistance(Vector(mdraw.x, mdraw.z), player) > 70 then if myHero.team == TEAM_BLUE then myHero:MoveTo(mdraw.x+60,mdraw.z+60) else myHero:MoveTo(mdraw.x-60,mdraw.z-60) end end elseif heroType == 2 then --adtank if GetDistance(Vector(mdraw.x, mdraw.z), player) >= 200 then if myHero.team == TEAM_BLUE then myHero:MoveTo(mdraw.x+180,mdraw.z+180) else myHero:MoveTo(mdraw.x-180,mdraw.z-180) end end elseif heroType == 3 then --aptank if GetDistance(Vector(mdraw.x, mdraw.z), player) >= 200 then if myHero.team == TEAM_BLUE then myHero:MoveTo(mdraw.x+90,mdraw.z+90) else myHero:MoveTo(mdraw.x-80,mdraw.z-80) end end elseif heroType == 4 then --fighter if GetDistance(Vector(mdraw.x, mdraw.z), player) >= 800 then if myHero.team == TEAM_BLUE then myHero:MoveTo(mdraw.x+400,mdraw.z+400) else myHero:MoveTo(mdraw.x-400,mdraw.z-400) end end elseif heroType==5 then -- if GetDistance(Vector(mdraw.x, mdraw.z), player) >= 100 then if myHero.team == TEAM_BLUE then myHero:MoveTo(mdraw.x+80,mdraw.z+80) else myHero:MoveTo(mdraw.x-80,mdraw.z-80) end end elseif heroType == 6 then -- if GetDistance(Vector(mdraw.x, mdraw.z), player) >= 100 then if myHero.team == TEAM_BLUE then myHero:MoveTo(mdraw.x+80,mdraw.z+80) else myHero:MoveTo(mdraw.x-80,mdraw.z-80) end end elseif heroType == 7 then --mage if GetDistance(Vector(mdraw.x, mdraw.z), player) >= 70 then if myHero.team == TEAM_BLUE then myHero:MoveTo(mdraw.x+60,mdraw.z+60) else myHero:MoveTo(mdraw.x-60,mdraw.z-60) end --elseif GetDistance(Vector(edraw.x, edraw.z), player) > 100 then -- if myHero.team == TEAM_BLUE then -- myHero:MoveTo(edraw.x-190,edraw.z-190) -- else -- myHero:MoveTo(edraw.x+190,edraw.z+190) -- end end elseif heroType == 8 then -- if GetDistance(Vector(mdraw.x, mdraw.z), player) >= 100 then if myHero.team == TEAM_BLUE then myHero:MoveTo(mdraw.x+80,mdraw.z+80) else myHero:MoveTo(mdraw.x-80,mdraw.z-80) end end elseif heroType == 9 or heroType == 10 then --fighter if GetDistance(Vector(mdraw.x, mdraw.z), player) >= 100 then if myHero.team == TEAM_BLUE then myHero:MoveTo(mdraw.x+80,mdraw.z+80) else myHero:MoveTo(mdraw.x-80,mdraw.z-80) end end end end end function heroCanMove() return (GetTickCount() + GetLatency()/2 > lastAttack + lastWindUpTime + 20) end function timeToShoot() return (GetTickCount() + GetLatency()/2 > lastAttack + lastAttackCD) end function OnProcessSpell(object, spell) if object == myHero then if spell.name:lower():find("attack") then lastAttack = GetTickCount() - GetLatency()/2 lastWindUpTime = spell.windUpTime*1000 lastAttackCD = spell.animationTime*1000 end end end function Combo(unit) -- This function handles our combo if Qready and Wready and Rready and Eready then CastSpell(_E) CastSpell(_Q, unit) CastSpell(_W, unit.x, unit.z) CastSpell(_R, unit.x, unit.z) end end function harass(unit) local myTarget = ts.target if myTarget ~= nil then if timeToShoot() then myHero:Attack(myTarget) elseif heroCanMove() then myHero:MoveTo(myHero.x-3,myHero.z-3) end end end function gete() -- Get Enemy Heroes for i = 1, heroManager.iCount do local hero = heroManager:GetHero(i) if hero.team ~= player.team then table.insert(tabget, hero) end end end function GetCloseTower(hero, team) local towers = GetTowers(team) if #towers > 0 then local candidate = towers[1] for i=2, #towers, 1 do if (towers[i].health/towers[i].maxHealth > 0.1) and hero:GetDistance(candidate) > hero:GetDistance(towers[i]) then candidate = towers[i] end end return candidate else return false end end function GetTowers(team) local towers = {} for i=1, objManager.maxObjects, 1 do local tower = objManager:getObject(i) if tower ~= nil and tower.valid and tower.type == "obj_AI_Turret" and tower.visible and tower.team == team then table.insert(towers,tower) end end if #towers > 0 then return towers else return false end end function mqnt() -- Quantidade de minions per to md = {x=0, z=0} em = {x=0, z=0} if player.dead or GetGame().isOver then return end for n, m in pairs(allyMinion.objects) do md.x = md.x + allyMinion.objects[n].x md.z = md.z + allyMinion.objects[n].z end for e, ee in pairs(enemyMinion.objects) do em.x = em.x + enemyMinion.objects[e].x em.z = em.z + enemyMinion.objects[e].z end mdraw.x = (md.x / #allyMinion.objects) - 100 mdraw.z = (md.z / #allyMinion.objects) - 100 edraw.x = (em.x / #enemyMinion.objects) edraw.z = (em.z / #enemyMinion.objects) end function Cooldowncheck() -- Checks for your Cooldowns Qready = (myHero:CanUseSpell(_Q) == READY) Wready = (myHero:CanUseSpell(_W) == READY) Rready = (myHero:CanUseSpell(_R) == READY) Eready = (myHero:CanUseSpell(_E) == READY) end function CheckTower() DistanceTower.EnemyTower = GetCloseTower(player, TEAM_ENEMY) DistanceTower.AllyTower = GetCloseTower(player, player.team) -- Ally tower if GetDistance(DistanceTower.AllyTower, player) <= 1000 then underT.AllyTower = true else underT.AllyTower = false end -- Enemy tower if GetDistance(DistanceTower.EnemyTower, player) <= 1000 then underT.EnemyTower = true else underT.EnemyTower = false end end --[[ ComboFull Function ]]-- function ComboFull() if not myHero.dead then --|>Attacks Champs if Target ~= nil then myHero:Attack(Target) attacksuccess = 0 if GetDistance(Target) < 1000 and myHero:CanUseSpell(_W) == READY then if iARAM.misc.misc2 then CastW(str) end CastSpell(_W, Target) attacksuccess =1 end if GetDistance(Target) < 1000 and myHero:CanUseSpell(_Q) == READY then --if iARAM.misc.misc2 then _AutoupdaterMsg("CastSpell Q") end CastSpell(_Q, Target) attacksuccess =1 end if GetDistance(Target) < 1000 and myHero:CanUseSpell(_E) == READY then --if iARAM.misc.misc2 then _AutoupdaterMsg("CastSpell E") end CastSpell(_E, Target) attacksuccess = 1 end if GetDistance(Target) < 1000 and myHero:CanUseSpell(_R) == READY then --if iARAM.misc.misc2 then _AutoupdaterMsg("CastSpell R") end CastSpell(_R, Target) attacksuccess =1 end end end end function findClosestEnemy() local closestEnemy = nil local currentEnemy = nil for i=1, heroManager.iCount do currentEnemy = heroManager:GetHero(i) if currentEnemy.team ~= myHero.team and not currentEnemy.dead and currentEnemy.visible then if closestEnemy == nil then closestEnemy = currentEnemy elseif GetDistance(currentEnemy) < GetDistance(closestEnemy) then closestEnemy = currentEnemy end end end --PrintFloatText(closestEnemy, 0, "Enemy!") return closestEnemy end function findLowHp() local lowEnemy = nil local currentEnemy = nil for i=1, heroManager.iCount do currentEnemy = heroManager:GetHero(i) if currentEnemy.team ~= myHero.team and not currentEnemy.dead and currentEnemy.visible then if lowEnemy == nil then lowEnemy = currentEnemy end if currentEnemy.health < lowEnemy.health then lowEnemy = currentEnemy end end end if lowEnemy ~= nil then if lowEnemy.health < 200 then --PrintFloatText(lowEnemy, 0, "Kill Me") return lowEnemy else return 0 end else return 0 end end --[[ EnemyCount Function ]]-- function EnemyCount(unit, range) local sEnemies = GetEnemyHeroes() local count = 0 for i, enemy in pairs(sEnemies) do if not enemy.dead and enemy.visible then --if GetDistanceSqr(unit, enemy) < range then count = count + 1 --end end end return count end function Allies() local allycount = 0 for i=1, heroManager.iCount do hero = heroManager:GetHero(i) if hero.team == myHero.team and not hero.dead and GetDistance(hero) < 550 then --original "< 450" allycount = allycount + 1 end end return allycount end function frontally() local target = nil local dist = 0 for d=1, heroManager.iCount, 1 do TargetAlly = heroManager:getHero(d) if TargetAlly.afk == nil and TargetAlly.dead == false and TargetAlly.team == myHero.team and GetDistance(TargetAlly,spawnpos) > dist then target = TargetAlly dist = GetDistance(target,spawnpos) end end return target end function followHero() local target =nil for d=1, heroManager.iCount, 1 do TargetAlly = heroManager:getHero(d) if TargetAlly.afk == nil and TargetAlly.dead == false and GetDistance(TargetAlly,spawnpos) > 3000 then if TargetAlly.team == myHero.team and TargetAlly.name ~= myHero.name then target = TargetAlly end end end return target end function getTrueRange() return myHero.range + GetDistance(myHero.minBBox)+100 end --[[ AutoBuyItems ]]-- function AutoBuy() --BuyItem(1001) end --[[ Menu Function ]]-- function Menu() iARAM = scriptConfig("iARAM", "iARAM BOT") --[[ AutoWard Menu ]]-- iARAM:addSubMenu("AutoWard Settings", "AutoWard") iARAM.AutoWard:addParam("AutoWardEnable", "Autoward Enabled", SCRIPT_PARAM_ONOFF, true) iARAM.AutoWard:addParam("AutoWardDraw", "Autoward Draw Circles", SCRIPT_PARAM_ONOFF, false) iARAM.AutoWard:addParam("debug", "Debug Mode", SCRIPT_PARAM_ONOFF, false) --[[ Drawing menu ]]-- iARAM:addSubMenu("Drawing Settings", "drawing") iARAM.drawing:addParam("drawcircles", "Draw Circles", SCRIPT_PARAM_ONOFF, true) iARAM.drawing:addParam("drawtower", "Draw Tower Ranges", SCRIPT_PARAM_ONOFF, false) iARAM.drawing:addParam("LfcDraw", "Use Lagfree Circles (Requires Reload!)", SCRIPT_PARAM_ONOFF, true) --[[ PoroShoter menu ]]-- ARAM = ARAMSlot() vPred = VPrediction() TargetSelector = TargetSelector(TARGET_CLOSEST, 2500, DAMAGE_PHYSICAL) iARAM:addSubMenu("PoroShotter Settings", "PoroShot") iARAM.PoroShot:addParam("comboKey", "Auto Poro Shoot", SCRIPT_PARAM_ONOFF, true) iARAM.PoroShot:addParam("range", "Poro Cast Range", SCRIPT_PARAM_SLICE, 1400, 800, 2500, 0) iARAM.PoroShot:addTS(TargetSelector) --[[ ItemSettings menu ]]-- iARAM:addSubMenu("Item Settings", "item") iARAM.item:addParam("enableautozhonya", "Auto Zhonya (Broken)", SCRIPT_PARAM_ONOFF, true) iARAM.item:addParam("autozhonya", "Zhonya if Health under -> %", SCRIPT_PARAM_SLICE, 10, 0, 100, 0) --[[ Sprite menu ]]-- iARAM:addSubMenu("Sprite Settings", "SpriteMenu") iARAM.SpriteMenu:addParam("SpriteShower", "Show Sprites", SCRIPT_PARAM_ONOFF, true) iARAM.SpriteMenu:addParam("UpdateSprites", "Reload sprites", SCRIPT_PARAM_ONOFF, true) --[[ Misc menu ]]-- iARAM:addSubMenu("Miscelaneus Settings", "misc") iARAM.misc:addParam("misc2", "Debug Mode", SCRIPT_PARAM_ONOFF, false) --iARAM.misc:addParam("permanshow", "See Permashow", SCRIPT_PARAM_ONOFF, true) iARAM.misc:addParam("farm", "Last Hit Minions", SCRIPT_PARAM_ONOFF, true) iARAM.misc:addParam("autochatenabled", "Auto Chat", SCRIPT_PARAM_ONOFF, true) iARAM.misc:addParam("autobuy", "Auto Buy Items (Broken)", SCRIPT_PARAM_ONOFF, true) iARAM.misc:addParam("useAutoPots", "Auto Potions", SCRIPT_PARAM_ONOFF, true) --Ignite ignite = IgniteCheck() ----[[ Main Script menu ]]-- iARAM:addParam("follow", "Enable bot (F4)", SCRIPT_PARAM_ONKEYTOGGLE, true, HotKey) ----[[ PermaShow Menu ]]---- --if iARAM.misc.permanshow then iARAM:permaShow("follow") iARAM.misc:permaShow("autobuy") --end ----------------------------------------------------------------------------------------------------- iARAM:addParam("info", "edited by ", SCRIPT_PARAM_INFO, "Husmeador12") iARAM:addParam("info2", "iARAM Version : ", SCRIPT_PARAM_INFO, ToUpdate.Version) end --[[ Lagfree Circles by barasia, vadash and viseversa ]]--- function RangeCircles() if iARAM.drawing.drawcircles and not myHero.dead then DrawCircle(myHero.x,myHero.y,myHero.z,getTrueRange(),RGB(0,255,0)) DrawCircle(myHero.x,myHero.y,myHero.z,400,RGB(55,64,60)) -- DrawMinions DrawCircle(edraw.x, myHero.y, edraw.z, 400, RGB(73,210,59)) DrawCircle(mdraw.x, myHero.y, mdraw.z, 400, RGB(255,0,0)) DrawCircle(mdraw.x, myHero.y, mdraw.z, 100, RGB(255,0,59)) if iARAM.misc.misc2 then DrawCircle(myHero.x,myHero.y,myHero.z,1000,RGB(255,255,255)) end end end function DrawCircleNextLvl(x, y, z, radius, width, color, chordlength) radius = radius or 300 quality = math.max(8,round(180/math.deg((math.asin((chordlength/(2*radius))))))) quality = 2 * math.pi / quality radius = radius*.92 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 round(num) if num >= 0 then return math.floor(num+.5) else return math.ceil(num-.5) end 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 ---------[[ Lagfree Circles ]]--------- function LFC() if iARAM.drawing.LfcDraw then _G.DrawCircle = DrawCircle2 end end ---------[[ AirText ]]--------- function AirText() SetupDrawY = 0.15 SetupDrawX = 0.1 tempSetupDrawY = SetupDrawY MenuTextSize = 18 if iARAM.misc.misc2 then DrawText("Champion: "..myHero.charName.."", MenuTextSize , (WINDOW_W - WINDOW_X) * SetupDrawX, (WINDOW_H - WINDOW_Y) * tempSetupDrawY , 0xffffff00) tempSetupDrawY = tempSetupDrawY + 0.03 DrawText("Logged as: ".. GetUser() .." ", MenuTextSize , (WINDOW_W - WINDOW_X) * SetupDrawX, (WINDOW_H - WINDOW_Y) * tempSetupDrawY , 0xffffff00) tempSetupDrawY = tempSetupDrawY + 0.07 -- Info Draw DrawText(status, 15, 10, 500, 0xFFFFFF00) if underT.AllyTower then DrawText("Under ally tower: true ", 15, 10, 520, 0xFFFFFF00) else DrawText("Under ally tower: false", 15, 10, 520, 0xFFFFFF00) end if underT.EnemyTower then DrawText("Under enemy tower: true", 15, 10, 540, 0xFFFFFF00) else DrawText("Under enemy tower: false", 15, 10, 540, 0xFFFFFF00) end --DrawText("Combo: "..tostring(comboDmg), 15, 10, 560, 0xFFFFFF00) local Height = 500 for _, str in pairs(tabclosed) do if str.dead then return end DrawText(tostring(str.charName), 15, 200, Height, 0xFFFFFF00) Height = Height + 20 end end end --[[ Perfect Ward, originally by Husky ]]-- local wardSpots = { {x=3261.93, y=60, z=7773.65}, -- BLUE GOLEM {x=7831.46, y=60, z=3501.13}, -- BLUE LIZARD {x=10586.62, y=60, z=3067.93}, -- BLUE TRI BUSH {x=6483.73, y=60, z=4606.57}, -- BLUE PASS BUSH {x=7610.46, y=60, z=5000}, -- BLUE RIVER ENTRANCE {x=4717.09, y=50.83, z=7142.35}, -- BLUE ROUND BUSH {x=4882.86, y=27.83, z=8393.77}, -- BLUE RIVER ROUND BUSH {x=6951.01, y=52.26, z=3040.55}, -- BLUE SPLIT PUSH BUSH {x=5583.74, y=51.43, z=3573.83}, --BlUE RIVER CENTER CLOSE {x=11600.35, y=51.73, z=7090.37}, -- RED GOLEM {x=11573.9, y=51.71, z=6457.76}, -- RED GOLEM 2 {x=12629.72, y=48.62, z=4908.16}, -- RED TRIBRUSH 2 {x=7018.75, y=54.76, z=11362.12}, -- RED LIZARD {x=4232.69, y=47.56, z=11869.25}, -- RED TRI BUSH {x=8198.22, y=49.38, z=10267.89}, -- RED PASS BUSH {x=7202.43, y=53.18, z=9881.83}, -- RED RIVER ENTRANCE {x=10074.63, y=51.74, z=7761.62}, -- RED ROUND BUSH {x=9795.85, y=-12.21, z=6355.15}, -- RED RIVER ROUND BUSH {x=7836.85, y=56.48, z=11906.34}, -- RED SPLIT PUSH BUSH {x=10546.35, y=-60, z=5019.06}, -- DRAGON {x=9344.95, y=-64.07, z=5703.43}, -- DRAGON BUSH {x=4334.98, y=-60.42, z=9714.54}, -- BARON {x=5363.31, y=-62.70, z=9157.05}, -- BARON BUSH {x=9757.9, y=50.73, z=8768.25}, -- RED MID T1 {x=4749.79, y=53.59, z=5890.76}, -- BLUE MID T1 {x=5983.58, y=52.99, z=1547.98}, -- BLUE BOT T2 {x=1213.70, y=58.77, z=5324.73}, -- BLUE TOP T2 {x=6523.58, y=60, z=6743.31}, -- BLUE MIDLANE {x=8223.67, y=60, z=8110.15}, -- RED MIDLANE {x=9736.8, y=51.98, z=6916.26}, -- RED MID PATH {x=2222.31, y=53.2, z=9964.1}, -- BLUE TRI TOP {x=8523.9, y=51.24, z=4707.76}, -- DRAGON PASS BUSH {x=6323.9, y=53.62, z=10157.76} -- NASHOR PASS BUSH } local safeWardSpots = { { -- RED MID -> SOLO BUSH magneticSpot = {x=9223, y=52.95, z=7525.34}, clickPosition = {x=9603.52, y=54.71, z=7872.23}, wardPosition = {x=9873.90, y=51.52, z=7957.76}, movePosition = {x=9223, y=52.95, z=7525.34} }, { -- RED MID FROM TOWER -> SOLO BUSH magneticSpot = {x=9127.66, y=53.76, z=8337.72}, clickPosition = {x=9624.05, y=72.46, z=8122.68}, wardPosition = {x=9873.90, y=51.52, z=7957.76}, movePosition = {x=9127.66, y=53.76, z=8337.72} }, { -- BLUE MID -> SOLO BUSH magneticSpot = {x=5667.73, y=51.65, z=7360.45}, clickPosition = {x=5148.87, y=50.41, z=7205.80}, wardPosition = {x=4923.90, y=50.64, z=7107.76}, movePosition = {x=5667.73, y=51.65, z=7360.45} }, { -- BLUE MID FROM TOWER -> SOLO BUSH magneticSpot = {x=5621.65, y=52.81, z=6452.61}, clickPosition = {x=5255.46, y=50.44, z=6866.24}, wardPosition = {x=4923.90, y=50.64, z=7107.76}, movePosition = {x=5621.65, y=52.81, z=6452.61} }, { -- NASHOR -> TRI BUSH magneticSpot = {x=4724, y=-71.24, z=10856}, clickPosition = {x=4627.26, y=-71.24, z=11311.69}, wardPosition = {x=4473.9, y=51.4, z=11457.76}, movePosition = {x=4724, y=-71.24, z=10856} }, { -- BLUE TOP -> SOLO BUSH magneticSpot = {x=2824, y=54.33, z=10356}, clickPosition = {x=3078.62, y=54.33, z=10868.39}, wardPosition = {x=3078.62, y=-67.95, z=10868.39}, movePosition = {x=2824, y=54.33, z=10356} }, { -- BLUE MID -> ROUND BUSH magneticSpot = {x=5474, y=51.67, z=7906}, clickPosition = {x=5132.65, y=51.67, z=8373.2}, wardPosition = {x=5123.9, y=-21.23, z=8457.76}, movePosition = {x=5474, y=51.67, z=7906} }, { -- BLUE MID -> RIVER LANE BUSH magneticSpot = {x=5874, y=51.65, z=7656}, clickPosition = {x=6202.24, y=51.65, z=8132.12}, wardPosition = {x=6202.24, y=-67.39, z=8132.12}, movePosition = {x=5874, y=51.65, z=7656} }, { -- BLUE LIZARD -> DRAGON PASS BUSH magneticSpot = {x=8022, y=53.72, z=4258}, clickPosition = {x=8400.68, y=53.72, z=4657.41}, wardPosition = {x=8523.9, y=51.24, z=4707.76}, movePosition = {x=8022, y=53.72, z=4258} }, { -- RED MID -> ROUND BUSH magneticSpot = {x=9372, y=52.63, z=7008}, clickPosition = {x=9703.5, y=52.63, z=6589.9}, wardPosition = {x=9823.9, y=23.47, z=6507.76}, movePosition = {x=9372, y=52.63, z=7008} }, { -- RED MID -> RIVER ROUND BUSH // Inconsistent Placement magneticSpot = {x=9072, y=53.04, z=7158}, clickPosition = {x=8705.95, y=53.04, z=6819.1}, wardPosition = {x=8718.88, y=95.75, z=6764.86}, movePosition = {x=9072, y=53.04, z=7158} }, { -- RED BOTTOM -> SOLO BUSH magneticSpot = {x=12422, y=51.73, z=4508}, clickPosition = {x=12353.94, y=51.73, z=4031.58}, wardPosition = {x=12023.9, y=-66.25, z=3757.76}, movePosition = {x=12422, y=51.73, z=4508} }, { -- RED LIZARD -> NASHOR PASS BUSH -- FIXED FOR MORE VISIBLE AREA magneticSpot = {x=6824, y=56, z=10656}, clickPosition = {x=6484.47, y=53.5, z=10309.94}, wardPosition = {x=6323.9, y=53.62, z=10157.76}, movePosition = {x=6824, y=56, z=10656} }, { -- BLUE GOLEM -> BLUE LIZARD magneticSpot = {x=8272, y=51.13, z=2908}, clickPosition = {x=8163.7056, y=51.13, z=3436.0476}, wardPosition = {x=8163.71, y=51.6628, z=3436.05}, movePosition = {x=8272, y=51.13, z=2908} }, { -- RED GOLEM -> RED LIZARD magneticSpot = {x=6574, y=56.48, z=12006}, clickPosition = {x=6678.08, y=56.48, z=11477.83}, wardPosition = {x=6678.08, y=53.85, z=11477.83}, movePosition = {x=6574, y=56.48, z=12006} }, { -- BLUE TOP SIDE BRUSH magneticSpot = {x=1774, y=52.84, z=10756}, clickPosition = {x=2302.36, y=52.84, z=10874.22}, wardPosition = {x=2773.9, y=-71.24, z=11307.76}, movePosition = {x=1774, y=52.84, z=10756} }, { -- MID LANE DEATH BRUSH magneticSpot = {x=5874, y=-70.12, z=8306}, clickPosition = {x=5332.9, y=-70.12, z=8275.21}, wardPosition = {x=5123.9, y=-21.23, z=8457.76}, movePosition = {x=5874, y=-70.12, z=8306} }, { -- MID LANE DEATH BRUSH RIGHT SIDE magneticSpot = {x=9022, y=-71.24, z=6558}, clickPosition = {x=9540.43, y=-71.24, z=6657.68}, wardPosition = {x=9773.9, y=9.56, z=6457.76}, movePosition = {x=9022, y=-71.24, z=6558} }, { -- BLUE INNER TURRET JUNGLE magneticSpot = {x=6874, y=50.52, z=1708}, clickPosition = {x=6849.11, y=50.52, z=2252.01}, wardPosition = {x=6723.9, y=52.17, z=2507.76}, movePosition = {x=6874, y=50.52, z=1708} }, { -- RED INNER TURRET JUNGLE magneticSpot = {x=8122, y=52.84, z=13206}, clickPosition = {x=8128.53, y=52.84, z=12658.41}, wardPosition = {x=8323.9, y=56.48, z=12457.76}, movePosition = {x=8122, y=52.84, z=13206} } } local wardItems = { { id = 2043, spellName = "VisionWard", range = 1450, duration = 180000}, { id = 2044, spellName = "SightWard", range = 1450, duration = 180000}, { id = 2045, spellName = "RubySightstone", range = 1450, duration = 180000}, { id = 2049, spellName = "Sightstone", range = 1450, duration = 180000}, { id = 2050, spellName = "ItemMiniWard", range = 1450, duration = 60000}, { id = 3154, spellName = "WriggleLantern", range = 1450, duration = 180000}, { id = 3160, spellName = "FeralFlare", range = 1450, duration = 180000}, { id = 3340, spellName = "WardingTotem(Trinket)", range = 1450, duration = 180000}, { id = 3350, spellName = "YellowTrinketUpgrade", range = 1450, duration = 180000}, { id = 3361, spellName = "TrinketTotemLvl3", range = 1450, duration = 180000}, { id = 3362, spellName = "TrinketTotemLvl3B", range = 1450, duration = 180000}, } -- Code ------------------------------------------------------------------------ function AutoWard() if iARAM.AutoWard.AutoWardEnable then wardSlot = ITEM_7 local item = myHero:getInventorySlot(wardSlot) for i,wardItems in pairs(wardItems) do if item == wardItems.id and myHero:CanUseSpell(wardSlot) == READY then drawWardSpots = true return end end for i,wardSpot in pairs(wardSpots) do if GetDistance(wardSpot, myHeroPos) <= 250 then CastSpell(wardSlot, wardSpot.x, wardSpot.z) return end end end end function AutoWarderDraw() if iARAM.AutoWard.AutoWardDraw and summonersRiftMap then for i, wardSpot in pairs(wardSpots) do local wardColor = (GetDistance(wardSpot, myHeroPos) <= 250) and ARGB(255,0,255,0) or ARGB(255,0,255,0) local x, y, onScreen = get2DFrom3D(wardSpot.x, wardSpot.y, wardSpot.z) if onScreen then DrawCircle(wardSpot.x, wardSpot.y, wardSpot.z, 31, wardColor) DrawCircle(wardSpot.x, wardSpot.y, wardSpot.z, 32, wardColor) DrawCircle(wardSpot.x, wardSpot.y, wardSpot.z, 250, wardColor) end end for i,wardSpot in pairs(safeWardSpots) do local wardColor = (GetDistance(wardSpot.magneticSpot, myHeroPos) <= 100) and ARGB(255,0,255,0) or ARGB(255,0,255,0) local arrowColor = (GetDistance(wardSpot.magneticSpot, myHeroPos) <= 100) and ARGB(255,0,255,0) or ARGB(255,0,255,0) local x, y, onScreen = get2DFrom3D(wardSpot.magneticSpot.x, wardSpot.magneticSpot.y, wardSpot.magneticSpot.z) if onScreen then DrawCircle(wardSpot.wardPosition.x, wardSpot.wardPosition.y, wardSpot.wardPosition.z, 31, wardColor) DrawCircle(wardSpot.wardPosition.x, wardSpot.wardPosition.y, wardSpot.wardPosition.z, 32, wardColor) DrawCircle(wardSpot.magneticSpot.x, wardSpot.magneticSpot.y, wardSpot.magneticSpot.z, 99, wardColor) DrawCircle(wardSpot.magneticSpot.x, wardSpot.magneticSpot.y, wardSpot.magneticSpot.z, 100, wardColor) local magneticWardSpotVector = Vector(wardSpot.magneticSpot.x, wardSpot.magneticSpot.y, wardSpot.magneticSpot.z) local wardPositionVector = Vector(wardSpot.wardPosition.x, wardSpot.wardPosition.y, wardSpot.wardPosition.z) local directionVector = (wardPositionVector-magneticWardSpotVector):normalized() local line1Start = magneticWardSpotVector + directionVector:perpendicular() * 98 local line1End = wardPositionVector + directionVector:perpendicular() * 31 local line2Start = magneticWardSpotVector + directionVector:perpendicular2() * 98 local line2End = wardPositionVector + directionVector:perpendicular2() * 31 DrawLine3D(line1Start.x,line1Start.y,line1Start.z, line1End.x,line1End.y,line1End.z,1,arrowColor) DrawLine3D(line2Start.x,line2Start.y,line2Start.z, line2End.x,line2End.y,line2End.z,1,arrowColor) end end end end function get2DFrom3D(x, y, z) local pos = WorldToScreen(D3DXVECTOR3(x, y, z)) return pos.x, pos.y, OnScreen(pos.x, pos.y) end function DebugCursorPos() if iARAM.AutoWard.debug then DrawText("Cursor Pos: X = ".. string.format("%.2f", mousePos.x) .." Y = ".. string.format("%.2f", mousePos.y) .." Z = ".. string.format("%.2f", mousePos.z), 21, 5, 140, 0xFFFFFFFF) local target = GetTarget() for i,wardItem in pairs(wardItems) do if target ~= nil and target.name == wardItem.spellName then DrawText("Target Pos: X = ".. string.format("%.2f", target.x) .." Y = ".. string.format("%.2f", target.y) .." Z = ".. string.format("%.2f", target.z), 21, 5, 160, 0xFFFFFFFF) end end end end ---------[[ Auto Zhonya ]]--------- function FunctionAutoZhonya() if iARAM.item.enableautozhonya then --if myHero.health <= (myHero.maxHealth * iARAM.item.autozhonya / 100) then CastItem(3157) --end end end ---------[[ Auto Ignite ]]--------- function FunctionAutoIgnite() if iARAM.misc.autoIgnite then if myHero:CanUseSpell(ignite) == READY then for _, enemy in pairs(GetEnemyHeroes()) do if myHero:CanUseSpell(ignite) ~= READY then return end if ValidTarget(enemy) and GetDistance(enemy) < 600 then local dmg = getDmg("ignite",enemy,myHero) if dmg >= target.health then CastSpell(ignite, enemy) end end end end end end function IgniteCheck() if myHero:GetSpellData(SUMMONER_1).name:find("summonerdot") then iARAM.misc:addParam("autoIgnite", "Auto Ignite", SCRIPT_PARAM_ONOFF, true) elseif myHero:GetSpellData(SUMMONER_2).name:find("summonerdot") then iARAM.misc:addParam("autoIgnite", "Auto Ignite", SCRIPT_PARAM_ONOFF, true) end end ---------[[ Auto Good luck and have fun ]]--------- function AutoChat() if not iARAM.misc.autochatenabled then return end local Text1 = {"Good luck and have fun", "gl hf", "gl hf", "Good luck have fun", "Good luck and have fun guys", "gl hf guys", "gl and have fun", "good luck and hf" } local Phrases2 = {"c´mon guys", "we can do it", "This is my winner team", "It doesnt matter", "let´s go", "team work is OP" } if GetInGameTimer() < 33 then DelayAction(function() SendChat(Text1[math.random(#Text1)]) end, 33-GetInGameTimer()) --5:35 end --SendChat(Phrases2[math.random(#Phrases2)]) --[[ if GetInGameTimer() < 333 then DelayAction(function() SendChat(Phrases2[math.random(#Phrases2)]) end, 333-GetInGameTimer()) --5:35 end if GetInGameTimer() < 360 then DelayAction(function() SendChat(Phrases2[math.random(#Phrases2)]) end, 360-GetInGameTimer()) --6:02 end if GetInGameTimer() < 460 then DelayAction(function() SendChat(Phrases2[math.random(#Phrases2)]) end, 460-GetInGameTimer()) --7:40 end ]] if GetGame().isOver then SendChat("gg wp") os.exit(0) end end ---------[[ Poro shouter function ]]--------- function PoroCheck() Target = getTarget() if ARAM and (myHero:CanUseSpell(ARAM) == READY) then ARAMRdy = true else ARAMRdy = false end if iARAM.PoroShot.comboKey then shootARAM(Target) end end function getTarget() TargetSelector:update() if TargetSelector.target and not TargetSelector.target.dead and TargetSelector.target.type == myHero.type then return TargetSelector.target else return nil end end function ARAMSlot() if myHero:GetSpellData(SUMMONER_1).name:find("summonersnowball") then return SUMMONER_1 elseif myHero:GetSpellData(SUMMONER_2).name:find("summonersnowball") then return SUMMONER_2 else return nil end end function hit() if myHero:GetSpellData(SUMMONER_1).name:find("snowballfollowupcast") then return true elseif myHero:GetSpellData(SUMMONER_2).name:find("snowballfollowupcast") then return true else return false end end function shootARAM(unit) if lastCast > os.clock() - 10 then return end if ValidTarget(unit, iARAM.PoroShot.range + 50) and ARAMRdy then local CastPosition, Hitchance, Position = vPred:GetLineCastPosition(Target, .25, 75, iARAM.range, 1200, myHero, true) if CastPosition and Hitchance >= 2 then d = CastPosition CastSpell(ARAM, CastPosition.x, CastPosition.z) lastCast = os.clock() end end end -----[[ PrintFloatText ]]------ function ChampionFloatText() ChampionCount = 0 ChampionTable = {} for i = 1, heroManager.iCount do local champ = heroManager:GetHero(i) if champ.team ~= player.team then ChampionCount = ChampionCount + 1 ChampionTable[ChampionCount] = { player = champ, indicatorText = "", damageGettingText = "", ultAlert = false, ready = true} end end end function _FloatTextMsg(msg) local barPos = WorldToScreen(D3DXVECTOR3(myHero.x, myHero.y, myHero.z)) DrawText(" "..msg.." ", 15, barPos.x - 35, barPos.y + 20, ARGB(255, 0, 255, 0)) end -----[[ MapVariables Function ]]------ function LoadMapVariables() gameState = GetGame() if iARAM.misc.misc2 then _AutoupdaterMsg("Map: "..gameState.map.shortName.."") end if gameState.map.shortName then if gameState.map.shortName == "summonerRift" then summonersRiftMap = true if iARAM.misc.miscelaneus then _AutoupdaterMsg("Map: summonerRift") end else summonersRiftMap = false end if gameState.map.shortName == "crystalScar" then crystalScarMap = true if iARAM.misc.misc2 then _AutoupdaterMsg("Map: crystalScar") end else crystalScarMap = false end if gameState.map.shortName == "howlingAbyss" then howlingAbyssMap = true if iARAM.misc.misc2 then _AutoupdaterMsg("Map: howlingAbyss") end else howlingAbyssMap = false end if gameState.map.shortName == "twistedTreeline" then twistedTreeLineMap = true if iARAM.misc.misc2 then _AutoupdaterMsg("Map: twistedTreeline") end else twistedTreeLineMap = false end else summonersRiftMap = true end end -----[[ AutoPotions ]]------ function AutoPotions() if not iARAM.misc.useAutoPots then return end for SLOT = ITEM_1, ITEM_6 do --if iARAM.misc.misc2 then _AutoupdaterMsg("ITEM : "..myHero:GetSpellData(SLOT).name.."") end -- Crystalline Flash if myHero:GetSpellData(SLOT).name == "ItemCrystalFlask" then -- Conditions if myHero:CanUseSpell(SLOT) == READY and ((myHero.health / myHero.maxHealth < myHero:getItem(SLOT).stacks / 4 or myHero.mana / myHero.maxMana < myHero:getItem(SLOT).stacks / 4) or ((myHero.maxHealth - myHero.health > 120 and myHero.maxMana - myHero.mana > 60) or (myHero.mana < 100 or myHero.health < 100))) then -- Cast CastSpell(SLOT) if iARAM.misc.misc2 then _AutoupdaterMsg("CrystalFlask Potions") end end end -- Health Potions if myHero:GetSpellData(SLOT).name == "RegenerationPotion" and not RevenerationPotion then -- Conditions if myHero:CanUseSpell(SLOT) == READY and myHero.health / myHero.maxHealth < 50 then -- Cast CastSpell(SLOT) if iARAM.misc.misc2 then _AutoupdaterMsg("Health Potion") end end end -- Mana Potions if myHero:GetSpellData(SLOT).name == "FlaskOfCrystalWater" then -- Conditions if myHero:CanUseSpell(SLOT) == READY and myHero.mana / myHero.maxMana < myHero:getItem(SLOT).stacks / 6 and myHero.maxMana - myHero.mana > 100 or myHero.mana < 100 then -- Cast CastSpell(SLOT) if iARAM.misc.misc2 then _AutoupdaterMsg("Mana Potion") end end end end end --[[ AutoLevel Function ]]-- AddLoadCallback(function() if not VIP_USER then return end local champ = player.charName if champ == "Aatrox" then AutoLevel({ 1, 2, 3, 2, 2, 4, 2, 3, 2, 3, 4, 3, 3, 1, 1, 4, 1, 1, }) elseif champ == "Ahri" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 2, 2, }) elseif champ == "Akali" then AutoLevel({ 1, 2, 1, 3, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Alistar" then AutoLevel({ 1, 3, 2, 1, 3, 4, 1, 3, 1, 3, 4, 1, 3, 2, 2, 4, 2, 2, }) elseif champ == "Amumu" then AutoLevel({ 2, 3, 3, 1, 3, 4, 3, 1, 3, 1, 4, 1, 1, 2, 2, 4, 2, 2, }) elseif champ == "Anivia" then AutoLevel({ 1, 3, 1, 3, 3, 4, 3, 2, 3, 2, 4, 1, 1, 1, 2, 4, 2, 2, }) elseif champ == "Annie" then AutoLevel({ 2, 1, 1, 3, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Ashe" then AutoLevel({ 2, 3, 2, 1, 2, 4, 2, 1, 2, 1, 4, 1, 1, 3, 3, 4, 3, 3, }) elseif champ == "Azir" then AutoLevel({ 2, 3, 2, 1, 2, 4, 2, 1, 2, 1, 4, 1, 1, 3, 3, 4, 3, 3, }) elseif champ == "Blitzcrank" then AutoLevel({ 1, 3, 2, 3, 2, 4, 3, 2, 3, 2, 4, 3, 2, 1, 1, 4, 1, 1, }) elseif champ == "Brand" then AutoLevel({ 2, 3, 2, 1, 2, 4, 2, 3, 2, 3, 4, 3, 3, 1, 1, 4, 1, 1, }) elseif champ == "Bard" then AutoLevel({ 2, 1, 3, 2, 2, 4, 1, 2, 2, 1, 4, 1, 1, 3, 3, 4, 3, 3, }) elseif champ == "Braum" then AutoLevel({ 2, 3, 2, 1, 2, 4, 2, 3, 2, 3, 4, 3, 3, 1, 1, 4, 1, 1, }) elseif champ == "Caitlyn" then AutoLevel({ 2, 1, 1, 3, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Cassiopeia" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Chogath" then AutoLevel({ 1, 3, 2, 2, 2, 4, 2, 3, 2, 3, 4, 3, 3, 1, 1, 4, 1, 1, }) elseif champ == "Corki" then AutoLevel({ 1, 2, 1, 3, 1, 4, 1, 3, 1, 3, 4, 3, 2, 3, 2, 4, 2, 2, }) elseif champ == "Darius" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 2, 1, 2, 4, 2, 3, 2, 3, 4, 3, 3, }) elseif champ == "Diana" then AutoLevel({ 2, 1, 2, 3, 1, 4, 1, 1, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "DrMundo" then AutoLevel({ 2, 1, 3, 2, 2, 4, 2, 3, 2, 3, 4, 3, 3, 1, 1, 4, 1, 1, }) elseif champ == "Draven" then AutoLevel({ 1, 3, 2, 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Ekko" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Elise" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) rOff = -1 elseif champ == "Evelynn" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Ezreal" then AutoLevel({ 1, 3, 2, 2, 2, 4, 2, 1, 2, 1, 4, 1, 1, 3, 3, 4, 3, 3, }) elseif champ == "FiddleSticks" then AutoLevel({ 3, 2, 2, 1, 2, 4, 2, 1, 2, 1, 4, 1, 1, 3, 3, 4, 3, 3, }) elseif champ == "Fiora" then AutoLevel({ 2, 1, 3, 2, 2, 4, 2, 3, 2, 3, 4, 3, 3, 1, 1, 4, 1, 1, }) elseif champ == "Fizz" then AutoLevel({ 3, 1, 2, 1, 2, 4, 1, 1, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Galio" then AutoLevel({ 1, 2, 1, 3, 1, 4, 1, 2, 1, 2, 4, 3, 3, 2, 2, 4, 3, 3, }) elseif champ == "Gangplank" then AutoLevel({ 1, 2, 1, 3, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Garen" then AutoLevel({ 1, 2, 3, 3, 3, 4, 3, 1, 3, 1, 4, 1, 1, 2, 2, 4, 2, 2, }) elseif champ == "Gragas" then AutoLevel({ 1, 3, 2, 1, 1, 4, 1, 2, 1, 2, 4, 2, 3, 2, 3, 4, 3, 3, }) elseif champ == "Graves" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 4, 3, 3, 3, 2, 4, 2, 2, }) elseif champ == "Gnar" then AutoLevel({ 1, 2, 1, 3, 1, 4, 1, 2, 1, 2, 4, 3, 3, 2, 2, 4, 3, 3, }) elseif champ == "Hecarim" then AutoLevel({ 1, 2, 1, 3, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Heimerdinger" then AutoLevel({ 1, 2, 2, 1, 1, 4, 3, 2, 2, 2, 4, 1, 1, 3, 3, 4, 1, 1, }) elseif champ == "Illaoi" then AutoLevel({ 3, 1, 2, 2, 2, 4, 2, 3, 2, 3, 4, 1, 1, 3, 1, 4, 3, 1, }) elseif champ == "Irelia" then AutoLevel({ 3, 1, 2, 2, 2, 4, 2, 3, 2, 3, 4, 1, 1, 3, 1, 4, 3, 1, }) elseif champ == "Janna" then AutoLevel({ 3, 1, 3, 2, 3, 4, 3, 2, 3, 2, 1, 2, 2, 1, 1, 1, 4, 4, }) elseif champ == "JarvanIV" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 3, 2, 1, 4, 3, 3, 3, 2, 4, 2, 2, }) elseif champ == "Jax" then AutoLevel({ 3, 2, 1, 2, 2, 4, 2, 3, 2, 3, 4, 1, 3, 1, 1, 4, 3, 1, }) elseif champ == "Jayce" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) rOff = -1 elseif champ == "Jinx" then AutoLevel({ 3, 1, 3, 2, 3, 4, 3, 2, 3, 2, 1, 2, 2, 1, 1, 1, 4, 4, }) elseif champ == "Kalista" then AutoLevel({ 1, 3, 2, 1, 1, 4, 1, 1, 3, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Karma" then AutoLevel({ 1, 2, 3, 2, 3, 1, 3, 1, 3, 1, 3, 1, 3, 2, 2, 2, 2, 2, }) rOff = -1 elseif champ == "Karthus" then AutoLevel({ 1, 3, 2, 1, 1, 4, 1, 1, 3, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Kassadin" then AutoLevel({ 1, 2, 1, 3, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Katarina" then AutoLevel({ 1, 3, 2, 2, 2, 4, 2, 3, 2, 1, 4, 1, 1, 1, 3, 4, 3, 3, }) elseif champ == "Kayle" then AutoLevel({ 3, 2, 3, 1, 3, 4, 3, 2, 3, 2, 4, 2, 2, 1, 1, 4, 1, 1, }) elseif champ == "Kennen" then AutoLevel({ 1, 3, 2, 2, 2, 4, 2, 1, 2, 1, 4, 1, 1, 3, 3, 4, 3, 3, }) elseif champ == "Kindred" then AutoLevel({ 1, 3, 2, 2, 2, 4, 2, 1, 2, 1, 4, 1, 1, 3, 3, 4, 3, 3, }) elseif champ == "Khazix" then AutoLevel({ 1, 3, 1, 2 ,1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "KogMaw" then AutoLevel({ 2, 3, 2, 1, 2, 4, 2, 1, 2, 1, 4, 1, 1, 3, 3, 4, 3, 3, }) elseif champ == "Leblanc" then AutoLevel({ 1, 2, 3, 1, 1, 4, 1, 2, 1, 2, 4, 2, 3, 2, 3, 4, 3, 3, }) elseif champ == "LeeSin" then AutoLevel({ 3, 1, 2, 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Leona" then AutoLevel({ 1, 3, 2, 2, 2, 4, 2, 3, 2, 3, 4, 3, 3, 1, 1, 4, 1, 1, }) elseif champ == "Lissandra" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Lucian" then AutoLevel({ 1, 3, 2, 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Lulu" then AutoLevel({ 3, 2, 1, 3, 3, 4, 3, 2, 3, 2, 4, 2, 2, 1, 1, 4, 1, 1, }) elseif champ == "Lux" then AutoLevel({ 3, 1, 3, 2, 3, 4, 3, 1, 3, 1, 4, 1, 1, 2, 2, 4, 2, 2, }) elseif champ == "Malphite" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 3, 1, 3, 4, 3, 2, 3, 2, 4, 2, 2, }) elseif champ == "Malzahar" then AutoLevel({ 1, 3, 3, 2, 3, 4, 1, 3, 1, 3, 4, 2, 1, 2, 1, 4, 2, 2, }) elseif champ == "Maokai" then AutoLevel({ 3, 1, 2, 3, 3, 4, 3, 2, 3, 2, 4, 2, 2, 1, 1, 4, 1, 1, }) elseif champ == "MasterYi" then AutoLevel({ 3, 1, 3, 1, 3, 4, 3, 1, 3, 1, 4, 1, 2, 2, 2, 4, 2, 2, }) elseif champ == "MissFortune" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "MonkeyKing" then AutoLevel({ 3, 1, 2, 1, 1, 4, 3, 1, 3, 1, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Mordekaiser" then AutoLevel({ 3, 1, 3, 2, 3, 4, 3, 1, 3, 1, 4, 1, 1, 2, 2, 4, 2, 2, }) elseif champ == "Morgana" then AutoLevel({ 1, 2, 2, 3, 2, 4, 2, 1, 2, 1, 4, 1, 1, 3, 3, 4, 3, 3, }) elseif champ == "Nami" then AutoLevel({ 1, 2, 3, 2, 2, 4, 2, 2, 3, 3, 4, 3, 3, 1, 1, 4, 1, 1, }) elseif champ == "Nasus" then AutoLevel({ 1, 2, 1, 3, 1, 4, 1, 2, 1, 2, 4, 2, 3, 2, 3, 4, 3, 3, }) elseif champ == "Nautilus" then AutoLevel({ 2, 3, 2, 1, 2, 4, 2, 3, 2, 3, 4, 3, 3, 1, 1, 4, 1, 1, }) elseif champ == "Nidalee" then AutoLevel({ 2, 3, 1, 3, 1, 4, 3, 2, 3, 1, 4, 3, 1, 1, 2, 4, 2, 2, }) elseif champ == "Nocturne" then AutoLevel({ 1, 2, 1, 3, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Nunu" then AutoLevel({ 3, 1, 3, 2, 1, 4, 3, 1, 3, 1, 4, 1, 3, 2, 2, 4, 2, 2, }) elseif champ == "Olaf" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Orianna" then AutoLevel({ 1, 3, 2, 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Pantheon" then AutoLevel({ 1, 2, 3, 1, 1, 4, 1, 3, 1, 3, 4, 3, 2, 3, 2, 4, 2, 2, }) elseif champ == "Poppy" then AutoLevel({ 3, 2, 1, 1, 1, 4, 1, 2, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, }) elseif champ == "Quinn" then AutoLevel({ 3, 1, 1, 2, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Rammus" then AutoLevel({ 1, 2, 3, 3, 3, 4, 3, 2, 3, 2, 4, 2, 2, 1, 1, 4, 1, 1, }) elseif champ == "RekSai" then AutoLevel({ 2, 1, 3, 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Renekton" then AutoLevel({ 2, 1, 3, 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Rengar" then AutoLevel({ 1, 3, 2, 1, 1, 4, 2, 1, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Riven" then AutoLevel({ 1, 2, 3, 2, 2, 4, 2, 3, 2, 3, 4, 3, 3, 1, 1, 4, 1, 1, }) elseif champ == "Rumble" then AutoLevel({ 3, 1, 1, 2, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Ryze" then AutoLevel({ 1, 2, 1, 3, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Sejuani" then AutoLevel({ 2, 1, 3, 3, 2, 4, 3, 2, 3, 3, 4, 2, 1, 2, 1, 4, 1, 1, }) elseif champ == "Shaco" then AutoLevel({ 2, 3, 1, 3, 3, 4, 3, 2, 3, 2, 4, 2, 2, 1, 1, 4, 1, 1, }) elseif champ == "Shen" then AutoLevel({ 1, 2, 3, 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Shyvana" then AutoLevel({ 2, 1, 2, 3, 2, 4, 2, 3, 2, 3, 4, 3, 1, 3, 1, 4, 1, 1, }) elseif champ == "Singed" then AutoLevel({ 1, 3, 1, 3, 1, 4, 1, 2, 1, 2, 4, 3, 2, 3, 2, 4, 2, 3, }) elseif champ == "Sion" then AutoLevel({ 1, 3, 3, 2, 3, 4, 3, 1, 3, 1, 4, 1, 1, 2, 2, 4, 2, 2, }) elseif champ == "Sivir" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 2, 1, 2, 4, 2, 3, 2, 3, 4, 3, 3, }) elseif champ == "Skarner" then AutoLevel({ 1, 2, 1, 2, 1, 4, 1, 2, 1, 2, 4, 2, 3, 3, 3, 4, 3, 3, }) elseif champ == "Sona" then AutoLevel({ 1, 2, 3, 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Soraka" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 4, 2, 3, 2, 3, 4, 2, 3, }) elseif champ == "Swain" then AutoLevel({ 2, 3, 3, 1, 3, 4, 3, 1, 3, 1, 4, 1, 1, 2, 2, 4, 2, 2, }) elseif champ == "Syndra" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "TahmKench" then AutoLevel({ 2, 3, 1, 2, 2, 4, 2, 1, 2, 1, 4, 1, 1, 3, 3, 4, 3, 3, }) elseif champ == "Talon" then AutoLevel({ 2, 3, 1, 2, 2, 4, 2, 1, 2, 1, 4, 1, 1, 3, 3, 4, 3, 3, }) elseif champ == "Taric" then AutoLevel({ 3, 2, 1, 2, 2, 4, 1, 2, 2, 1, 4, 1, 1, 3, 3, 4, 3, 3, }) elseif champ == "Teemo" then AutoLevel({ 1, 3, 2, 3, 1, 4, 3, 3, 3, 1, 4, 2, 2, 1, 2, 4, 2, 1, }) elseif champ == "Thresh" then AutoLevel({ 1, 3, 2, 2, 2, 4, 2, 3, 2, 3, 4, 3, 3, 1, 1, 4, 1, 1, }) elseif champ == "Tristana" then AutoLevel({ 3, 2, 2, 3, 2, 4, 2, 1, 2, 1, 4, 1, 1, 1, 3, 4, 3, 3, }) elseif champ == "Trundle" then AutoLevel({ 1, 2, 1, 3, 1, 4, 1, 2, 1, 3, 4, 2, 3, 2, 3, 4, 2, 3, }) elseif champ == "Tryndamere" then AutoLevel({ 3, 1, 2, 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "TwistedFate" then AutoLevel({ 2, 1, 1, 3, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Twitch" then AutoLevel({ 1, 3, 3, 2, 3, 4, 3, 1, 3, 1, 4, 1, 1, 2, 2, 1, 2, 2, }) elseif champ == "Udyr" then AutoLevel({ 4, 2, 3, 4, 4, 2, 4, 2, 4, 2, 2, 1, 3, 3, 3, 3, 1, 1, }) elseif champ == "Urgot" then AutoLevel({ 3, 1, 1, 2, 1, 4, 1, 2, 1, 3, 4, 2, 3, 2, 3, 4, 2, 3, }) elseif champ == "Varus" then AutoLevel({ 1, 2, 3, 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Vayne" then AutoLevel({ 1, 3, 2, 1, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Veigar" then AutoLevel({ 1, 3, 1, 2, 1, 4, 2, 2, 2, 2, 4, 3, 1, 1, 3, 4, 3, 3, }) elseif champ == "Velkoz" then AutoLevel({ 1, 3, 1, 2, 1, 4, 2, 2, 2, 2, 4, 3, 1, 1, 3, 4, 3, 3, }) elseif champ == "Vi" then AutoLevel({ 3, 1, 2, 3, 3, 4, 3, 1, 3, 1, 4, 1, 1, 2, 2, 4, 2, 2, }) elseif champ == "Viktor" then AutoLevel({ 3, 2, 3, 1, 3, 4, 3, 1, 3, 1, 4, 1, 2, 1, 2, 4, 2, 2, }) elseif champ == "Vladimir" then AutoLevel({ 1, 2, 1, 3, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Volibear" then AutoLevel({ 2, 3, 2, 1, 2, 4, 3, 2, 1, 2, 4, 3, 1, 3, 1, 4, 3, 1, }) elseif champ == "Warwick" then AutoLevel({ 2, 1, 1, 2, 1, 4, 1, 3, 1, 3, 4, 3, 3, 3, 2, 4, 2, 2, }) elseif champ == "Xerath" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "XinZhao" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Yorick" then AutoLevel({ 2, 3, 1, 3, 3, 4, 3, 2, 3, 1, 4, 2, 1, 2, 1, 4, 2, 1, }) elseif champ == "Yasuo" then AutoLevel({ 1, 3, 1, 2, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Zac" then AutoLevel({ 1, 2, 3, 1, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Zed" then AutoLevel({ 1, 2, 3, 1, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Ziggs" then AutoLevel({ 1, 2, 3, 1, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) elseif champ == "Zilean" then AutoLevel({ 1, 2, 1, 3, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3, }) elseif champ == "Zyra" then AutoLevel({ 3, 2, 1, 1, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2, }) else _AutoupdaterMsg(string.format(" >> AutoLevelSpell disabled for %s", champ)) end -- if AutoLevel and #AutoLevel == 18 then -- if iARAM.misc.misc2 then _AutoupdaterMsg("AutoLevelSpell loaded!") end -- else -- if iARAM.misc.misc2 then _AutoupdaterMsg(" >> AutoLevel Error") end -- OnTick = function() end -- return -- end end) class 'AutoLevel' function AutoLevel:__init(table) self.clock = os.clock() self.LastLeveled = GetHeroLeveled() self.LevelSequence = table self.SpellSlots = {SPELL_1, SPELL_2, SPELL_3, SPELL_4} AddTickCallback(function() if os.clock() < (self.clock or 0) then return end self.clock = os.clock() + math.random(0.5,2) if #self.LevelSequence == 4 then if myHero.level > self.LastLeveled then self:LevelSpell(self.LevelSequence[1]) self:LevelSpell(self.LevelSequence[2]) self:LevelSpell(self.LevelSequence[3]) self:LevelSpell(self.LevelSequence[4]) end self.LastLeveled = GetHeroLeveled() elseif #self.LevelSequence == 18 then self.LastLeveled = GetHeroLeveled() if myHero.level > self.LastLeveled and self.LevelSequence[self.LastLeveled + 1] ~= nil then self.SpellToLevel = self.LevelSequence[self.LastLeveled + 1] if self.SpellToLevel >= 1 and self.SpellToLevel <= 4 then self:LevelSpell(self.SpellSlots[self.SpellToLevel]) end end end end) end function AutoLevel:LevelSpell(id) if LoLVersionWorking then local offsets = { [_Q] = 0x1E, [_W] = 0xD3, [_E] = 0x3A, [_R] = 0xA8, } local p = CLoLPacket(0x00B6) p.vTable = 0xFE3124 p:EncodeF(myHero.networkID) p:Encode1(0xC1) p:Encode1(offsets[id]) for i = 1, 4 do p:Encode1(0x63) end for i = 1, 4 do p:Encode1(0xC5) end for i = 1, 4 do p:Encode1(0x6A) end for i = 1, 4 do p:Encode1(0x00) end SendPacket(p) end end --[[ PrintFloatText Function ]]-- function _MyHeroText() if iARAM.follow and not myHero.dead then local barPos = WorldToScreen(D3DXVECTOR3(myHero.x, myHero.y, myHero.z)) DrawText(status, 15, barPos.x - 35, barPos.y + 20, ARGB(255, 0, 255, 0)) end end --[[ Drawing Names Function ]]-- function DrawFakeNames() if myHero.visible == true and not myHero.dead then framePos = GetAbilityFramePos(myHero) DrawOverheadHUD(myHero, framePos, ""..SummonerName.."") end end function DrawOverheadHUD(unit, framePos, str, isAlly) local barPos = Point(framePos.x, framePos.y) textWidth = (GetTextArea(str, 18).x / 2) barPos = Point(framePos.x + 66, framePos.y - 43) -- Enemy heros, your ally heros and your own hero have different bar heights if unit == myHero then DrawText(str, 18, barPos.x-textWidth+1, barPos.y+1, 0xFF000000) DrawText(str, 18, barPos.x-textWidth, barPos.y, 0xFFFFFFFF) elseif isAlly and unit ~= myHero then DrawText(str, 18, barPos.x-textWidth+1, barPos.y+4, 0xFF000000) DrawText(str, 18, barPos.x-textWidth, barPos.y+3, 0xFFFFFFFF) else DrawText(str, 18, barPos.x-textWidth+1, barPos.y+7, 0xFF000000) DrawText(str, 18, barPos.x-textWidth, barPos.y+6, 0xFFFFFFFF) end end -- Credits to Jorj for the bar position function GetAbilityFramePos(unit) local barPos = GetUnitHPBarPos(unit) local barOffset = GetUnitHPBarOffset(unit) do -- For some reason the x offset never exists local t = { ["Darius"] = -0.05, ["Renekton"] = -0.05, ["Sion"] = -0.05, ["Thresh"] = 0.03, } end return Point(barPos.x - 69 + barOffset.x * 150, barPos.y + barOffset.y * 50 + 12.5) end --[[ PrinterDelay Function ]]-- local lastPrint2 = "" function CastW(str) if str ~= lastPrint2 then _AutoupdaterMsg("CastSpell W") lastPrint2 = str end end local lastPrint1 = "" function howling1(str) if str ~= lastPrint1 then _AutoupdaterMsg("Following Minion in Howling Abyss Map") lastPrint1 = str end end local lastPrintSRM = "" function PrintSumonerRift(SRM) if SRM ~= lastPrintSRM then _AutoupdaterMsg("Following Minion in Summoners Rift Map") lastPrintSRM = SRM end end function GetPlayer(team, includeDead, includeSelf, distanceTo, distanceAmount, resource) local target = nil for i=1, heroManager.iCount do local member = heroManager:GetHero(i) if member ~= nil and member.type == "AIHeroClient" and member.team == team and (member.dead ~= true or includeDead) then if member.charName ~= myHero.charName or includeSelf then if distanceAmount == GLOBAL_RANGE or member:GetDistance(distanceTo) <= distanceAmount then if target == nil then target = member end if resource == "health" then --least health if member.health < target.health then target = member end elseif resource == "mana" then --least mana if member.mana < target.mana then target = member end elseif resource == "AD" then --highest AD if member.totalDamage > target.totalDamage then target = member end elseif resource == NO_RESOURCE then return member -- as any member is eligible end end end end end return target end --[[ TowerRangers Function ]]-- function DrawTowerRange() if iARAM.drawing.drawtower and not myHero.dead then for i, turret in pairs(drawTurrets) do DrawCircle(turret.x, turret.y, turret.z, turret.range, turret.color) DrawCircle(turret.x, turret.y, turret.z, turret.visibilityRange, visibilityTurretColor) end end end function TowerRangers() drawTurrets = {} for name, turret in pairs(GetTurrets()) do if turret ~= nil then local enemyTurret = turret.team ~= player.team if GetDistance(turret) < 2000 then table.insert(drawTurrets, {x = turret.x, y = turret.y, z = turret.z, range = turret.range, color = (enemyTurret and enemyTurretColor or allyTurretColor), visibilityRange = turret.visibilityRange}) end end end end function OnGainTurretFocus(turret, unit) if turret and unit and unit.team and unit.team ~= myHero.team and unit.type and unit.type == myHero.type and ValidTarget(unit) and UnderTurret(unit, true) then if GetDistanceSqr(unit) <= 1000 then if myHero:CanUseSpell(_E) == READY and myHero.charName:lower() ~= "xerath" then CastE(unit) end end end end function TFMode() JannaTF() KarmaTF() KayleTF() LuluTF() LuxTF() TaricTF() WarwickTF() champ = player.charName allytofollow = followHero() if allytofollow ~= nil and GetDistance(allytofollow,myHero) > 270 then --if heroType == 1 then --adc distance1 = math.random(150,200) distance2 = math.random(150,200) neg1 = -1 neg2 = -1 if myHero.team == TEAM_BLUE then myHero:MoveTo(allytofollow.x-distance1*neg1,allytofollow.z-distance2*neg2) --DelayAction(function() myHero:MoveTo(allytofollow.x-distance1*neg1,allytofollow.z-distance2*neg2) end, 3) else myHero:MoveTo(allytofollow.x+distance1*neg1,allytofollow.z+distance2*neg2) --myHero:MoveTo(allytofollow.x,allytofollow.z) end end end ---[[Ahri]]--- function AhriFarm() local champ = player.charName local QRange = 900 if champ == "Ahri" then -- Farm Q if not myHero:CanUseSpell(_Q) == READY then return end for i, minion in pairs(enemyMinion.objects) do if ValidTarget(minion, QRange+100) and 50 <= ManaPercent() then CastSpell(_Q, minion.x,minion.z) --myHero:MoveTo(myHero.x-50,myHero.z-50) end end end end function AhriCombo() local ERANGE = 975 local RandomUlt1 = math.random(130,250) local RandomUlt2 = math.random(130,250) local CastPosition, Hitchance, Position = vPred:GetLineCastPosition(ts.target, .25, 75, ERANGE, 1200, myHero, true) if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY and GetDistance(ts.target) < ERANGE then --if myHero:CanUseSpell(_E) == READY and GetDistance(ts.target) < ERANGE and not minionCollision(ts.target, ERANGE) then if CastPosition and Hitchance >= 2 then d = CastPosition CastSpell(_E, CastPosition.x, CastPosition.z) end end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY and GetDistance(ts.target) < 600 and myHero.mana / myHero.maxMana < 50 then CastSpell(_W, myHero) end if myHero:CanUseSpell(_R) == READY and GetDistance(ts.target) < 400 and myHero.mana / myHero.maxMana < 50 then CastSpell(_R, myHero.x +RandomUlt1, myHero.y + RandomUlt2) 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 ManaPercent() return (myHero.mana/myHero.maxMana)*100 end ---[[Akali]]--- function AkaliFarm() local champ = player.charName local QRange = 900 if champ == "Akali" then -- Farm Q if not myHero:CanUseSpell(_Q) == READY then return end for i, minion in pairs(enemyMinion.objects) do if ValidTarget(minion, QRange+100) then CastSpell(_Q, minion.x,minion.z) end end end end function AkaliCombo() local ERANGE = 975 local RandomUlt1 = math.random(130,250) local RandomUlt2 = math.random(130,250) local CastPosition, Hitchance, Position = vPred:GetLineCastPosition(ts.target, .25, 75, ERANGE, 1200, myHero, true) if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY and GetDistance(ts.target) < ERANGE then --if myHero:CanUseSpell(_E) == READY and GetDistance(ts.target) < ERANGE and not minionCollision(ts.target, ERANGE) then if CastPosition and Hitchance >= 2 then d = CastPosition CastSpell(_E, CastPosition.x, CastPosition.z) end end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY and GetDistance(ts.target) < 600 then CastSpell(_W, myHero) end if myHero:CanUseSpell(_R) == READY and GetDistance(ts.target) < 400 then CastSpell(_R, myHero.x +RandomUlt1, myHero.y + RandomUlt2) end end end ---[[Annie]]--- function AnnieFarm() local champ = player.charName local QRange = 700 if champ == "Annie" then -- Farm Q if not myHero:CanUseSpell(_Q) == READY then return end for i, minion in pairs(enemyMinion.objects) do if ValidTarget(minion, QRange) and 50 <= ManaPercent() then CastSpell(_Q, minion.x,minion.z) end end end end function AnnieCombo() if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY and myHero.mana / myHero.maxMana < 30 then CastSpell(_E, myhero) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target) end if myHero:CanUseSpell(_W) == READY and GetDistance(ts.target) < 600 and myHero.mana / myHero.maxMana < 50 then CastSpell(_W, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_R) == READY and GetDistance(ts.target) < 400 and myHero.mana / myHero.maxMana < 10 then CastSpell(_R, ts.target.x, ts.target.z) end end end ---[[Ashe]]--- function AsheFarm() local champ = player.charName if champ == "Ashe" then -- Farm W for index,minion in pairs(enemyMinion.objects) do if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible then --myHero:Attack(minion) if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible and minion.health <= getDmg("W", minion, myHero) then if myHero:CanUseSpell(_W) == READY then --myHero:HoldPosition() CastSpell(_W, minion.x,minion.z) end end end end end end function AsheCombo() local champ = player.charName if champ == "Ashe" then if ts.target.visible == true then if myHero:CanUseSpell(_R) == READY then CastSpell(_R, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY then CastSpell(_W, ts.target.x, ts.target.z) end end end end ---[[Caitlyn]]--- function CaitlynFarm() local champ = player.charName if champ == "Caitlyn" then -- Farm Q for index,minion in pairs(enemyMinion.objects) do --myHero:Attack(minion) 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 if myHero:CanUseSpell(_Q) == READY and 50 <= ManaPercent() then --myHero:HoldPosition() CastSpell(_Q, minion.x,minion.z) end end end end end function CaitlynCombo() SkillR = { name = "Final Spark", range = 3340, delay = 1.0, speed = math.huge, width = 190, ready = false } rDmg = getDmg("R", ts.target, myHero) if ts.target.visible == true then if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_E) == READY and GetDistance(ts.target) <= 200 then CastSpell(_E, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_R) == READY and ts.target.health < rDmg and GetDistance(ts.target) <= SkillR.range then CastSpell(_R, ts.target.x, ts.target.z) end for i, enemy in ipairs(GetEnemyHeroes()) do if enemy and GetDistance(enemy) < 400 then CastSpell(_W,myHero.x,myHero.z) end end end end ---[[FiddleSticks]]--- function FiddleSticksFarm() local champ = player.charName if champ == "FiddleSticks" then -- Farm E for index,minion in pairs(enemyMinion.objects) do myHero:Attack(minion) if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible then myHero:Attack(minion) if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible and minion.health <= getDmg("E", minion, myHero) then if myHero:CanUseSpell(_E) == READY then --myHero:HoldPosition() CastSpell(_E, minion) end end end end end end function FiddleSticksCombo() SkillR = { range = 440, delay = 1.0 } rDmg = getDmg("R", ts.target, myHero) if ts.target.visible == true then if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY then CastSpell(_W, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_E) == READY then CastSpell(_E, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_R) == READY and ts.target.health < rDmg and GetDistance(ts.target) <= SkillR.range then CastSpell(_R, ts.target.x, ts.target.z) end end end ---[[Gangplank]]--- function GangplankFarm() local champ = player.charName if champ == "Gangplank" then -- Farm Q for index,minion in pairs(enemyMinion.objects) do myHero:Attack(minion) if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible then 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 if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, minion) end end end end end end function GangplankCombo() SkillR = { range = 1040, delay = 1.0 } rDmg = getDmg("R", ts.target, myHero) if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY then CastSpell(_E, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY and myHero.Health < myHero.Health * (50 / 100) then CastSpell(_W) end if myHero:CanUseSpell(_R) == READY and ts.target.health < rDmg and GetDistance(ts.target) <= SkillR.range then CastSpell(_R, ts.target.x, ts.target.z) end end end ---[[Gragas]]--- function GragasFarm() local champ = player.charName if champ == "Gragas" then -- Farm Q for index,minion in pairs(enemyMinion.objects) do if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible then 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 if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, minion) end end end end end end function GragasCombo() SkillR = { range = 740, delay = 1.0 } rDmg = getDmg("R", ts.target, myHero) if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY then CastSpell(_E, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY and myHero.Health < myHero.Health * (50 / 100) then CastSpell(_W) end if myHero:CanUseSpell(_R) == READY and ts.target.health < rDmg and GetDistance(ts.target) <= SkillR.range then CastSpell(_R, ts.target.x, ts.target.z) end end end ---[[Janna]]--- function JannaFarm() local champ = player.charName if champ == "Janna" then -- Farm W for index,minion in pairs(enemyMinion.objects) do if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible and minion.health <= getDmg("W", minion, myHero) then if myHero:CanUseSpell(_W) == READY and 50 <= ManaPercent() then CastSpell(_W, minion) DelayAction(function() myHero:Attack(minion) end, 3) end end end -- Farm Q for index,minion in pairs(enemyMinion.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 if myHero:CanUseSpell(_Q) == READY and 30 <= ManaPercent() then CastSpell(_Q, minion.x, minion.z) DelayAction(function() CastSpell(_Q, minion.x, minion.z) end, 3) end end end end end function JannaCombo() if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY then CastSpell(_E) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY then CastSpell(_W) end end end function JannaTF() local champ = player.charName local ally = GetPlayer(myHero.team, false, false, myHero, 450, "health") if champ == "Janna" then if ally ~= nil then if myHero:CanUseSpell(_E) == READY and ally.health <= ally.maxHealth * (80 / 100) then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting E to Ally") end CastSpell(_E, ally) end end if ally ~= nil and ally.health <= ally.maxHealth * (30 / 100) or myHero.health <= myHero.maxHealth * (30 / 100) then if myHero:CanUseSpell(_R) == READY then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting R to Ally") end myHero:HoldPosition() CastSpell(_R, ally) end end end end ---[[Karma]]--- function KarmaFarm() local champ = player.charName if champ == "Karma" then -- Farm Q enemyMinion = minionManager(MINION_ENEMY, 600, player, MINION_SORT_HEALTH_ASC) enemyMinion:update() for index, minion in pairs(enemyMinion.objects) do if GetDistance(minion, myHero) <= 800 then local dmg = getDmg("Q", minion, myHero) if dmg > minion.health and myHero:CanUseSpell(_Q) == READY and myHero.mana >= myHero.maxMana * (50 / 100)then CastSpell(_Q, minion.x,minion.z) end end end end end function KarmaCombo() local champ = player.charName if champ == "Karma" then if ts.target.visible == true then if myHero:CanUseSpell(_R) == READY then CastSpell(_R) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY then CastSpell(_W, ts.target.x, ts.target.z) end end end end function KarmaTF() local champ = player.charName local ally = GetPlayer(myHero.team, false, false, myHero, 450, "health") if champ == "Karma" then if ally ~= nil and ally.health <= ally.maxHealth * (50 / 100) then if myHero:CanUseSpell(_E) == READY then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting E to Ally") end CastSpell(_E, ally) end end end end ---[[Kayle]]--- function KayleFarm() local champ = player.charName if champ == "Kayle" then -- Farm Q for index,minion in pairs(enemyMinion.objects) do if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible then 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 if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, minion) end end end end end end function KayleCombo() if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY then CastSpell(_E) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY then CastSpell(_W) end end end function KayleTF() local champ = player.charName local ally = GetPlayer(myHero.team, false, false, myHero, 450, "health") if champ == "Kayle" then if ally ~= nil and ally.health <= ally.maxHealth * (80 / 100) then if myHero:CanUseSpell(_W) == READY then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting W to Ally") end CastSpell(_W, ally) end end if ally ~= nil and ally.health <= ally.maxHealth * (30 / 100) then if myHero:CanUseSpell(_R) == READY then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting R to Ally") end CastSpell(_R, ally) end end end end ---[[Kindred]]--- function KindredFarm() local champ = player.charName local QRange = 800 local RandomUlt2 = math.random(130,250) if champ == "Kindred" then -- Farm Q if not myHero:CanUseSpell(_Q) == READY then return end for i, minion in pairs(enemyMinion.objects) do if ValidTarget(minion, QRange) and 50 <= ManaPercent() then CastSpell(_Q, minion.x,minion.z) --DelayAction(function() myHero:MoveTo(myHero.x-50,myHero.z-50) end, 3) end end end end function KindredCombo() local QRANGE = 975 local CastPosition, Hitchance, Position = vPred:GetLineCastPosition(ts.target, .25, 75, QRANGE, 800, myHero, true) if ts.target.visible == true then if myHero:CanUseSpell(_Q) == READY and GetDistance(ts.target) < QRANGE then if CastPosition and Hitchance >= 2 then d = CastPosition CastSpell(_Q, CastPosition.x, CastPosition.z) end end if myHero:CanUseSpell(_E) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY and GetDistance(ts.target) < 600 and myHero.mana / myHero.maxMana < 50 then CastSpell(_W, ts.target) end if myHero:CanUseSpell(_R) == READY then CastSpell(_R, myHero) end end end function KindredDefensive() local champ = player.charName if champ == "Kindred" then if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY and GetDistance(ts.target) < 500 and 30 <= ManaPercent() then CastSpell(_E, ts.target) end end end end ---[[Leona]]--- function LeonaFarm() local champ = player.charName if champ == "Leona" then -- Farm Q for index,minion in pairs(enemyMinion.objects) do if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible then --myHero:Attack(minion) 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 if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, minion) end end end end end end function LeonaCombo() if ts.target.visible == true then if myHero:CanUseSpell(_W) == READY then CastSpell(_E, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_E) == READY and myHero.Health < myHero.Health * (50 / 100) then CastSpell(_E, myHero) end if myHero:CanUseSpell(_R) == READY and myHero.health < myhero.maxHealth * (30 / 100) then CastSpell(_R, myHero) end end end function LeonaTF() local champ = player.charName local ally = GetPlayer(myHero.team, false, false, myHero, 450, "health") if champ == "Leona" then --if myHero:CanUseSpell(_W) == READY and GetDistance(ts.target) < 400 then CastSpell(_W, ts.target.x, ts.target.z) end --if myHero:CanUseSpell(_Q) == READY and GetDistance(ts.target) < 300 then CastSpell(_Q, ts.target.x, ts.target.z) end end end ---[[Lulu]]--- function LuluFarm() local champ = player.charName if champ == "Lulu" then -- Farm Q for index,minion in pairs(enemyMinion.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 if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, minion) end end end end end function LuluCombo() if ts.target.visible == true then if myHero:CanUseSpell(_W) == READY then CastSpell(_E, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_E) == READY and myHero.Health < myHero.Health * (50 / 100) then CastSpell(_E, myHero) end if myHero:CanUseSpell(_R) == READY and myHero.health < myhero.maxHealth * (30 / 100) then CastSpell(_R, myHero) end end end function LuluTF() local champ = player.charName local ally = GetPlayer(myHero.team, false, false, myHero, 450, "health") if champ == "Lulu" then if ally ~= nil and ally.health <= ally.maxHealth * (50 / 100) then if myHero:CanUseSpell(_E) == READY then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting E to Ally") end CastSpell(_E, ally) end end if ally ~= nil and ally.health <= ally.maxHealth * (20 / 100) then if myHero:CanUseSpell(_R) == READY then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting R to Ally") end CastSpell(_R, ally) end end --if myHero:CanUseSpell(_W) == READY and GetDistance(ts.target) < 400 then CastSpell(_W, ts.target.x, ts.target.z) end --if myHero:CanUseSpell(_Q) == READY and GetDistance(ts.target) < 300 then CastSpell(_Q, ts.target.x, ts.target.z) end end end ---[[Lux]]--- function LuxFarm() local champ = player.charName if champ == "Lux" then -- Farm E for index,minion in pairs(enemyMinion.objects) do if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible then --myHero:Attack(minion) if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible and minion.health <= getDmg("E", minion, myHero) then if myHero:CanUseSpell(_E) == READY then --myHero:HoldPosition() CastSpell(_E, minion) end end end end end end function LuxCombo() SkillR = { name = "Final Spark", range = 3340, delay = 1.0, speed = math.huge, width = 190, ready = false } rDmg = getDmg("R", ts.target, myHero) if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY then CastSpell(_E, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY and myHero.Health < myHero.Health * (50 / 100) then CastSpell(_W) end if myHero:CanUseSpell(_R) == READY and ts.target.health < rDmg and GetDistance(ts.target) <= SkillR.range then CastSpell(_R, ts.target.x, ts.target.z) end end end function LuxTF() local champ = player.charName local ally = GetPlayer(myHero.team, false, false, myHero, 450, "health") if champ == "Lux" then if ally ~= nil and ally.health <= ally.maxHealth * (50 / 100) then if myHero:CanUseSpell(_E) == READY then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting E to Ally") end CastSpell(_E, ally) end end end end ---[[Morgana]]--- function MorganaFarm() local champ = player.charName if champ == "Morgana" then -- Farm W for index,minion in pairs(enemyMinion.objects) do if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible then --myHero:Attack(minion) if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible and minion.health >= getDmg("W", minion, myHero) then if myHero:CanUseSpell(_W) == READY then --myHero:HoldPosition() CastSpell(_W, minion) end end end end end end function MorganaCombo() if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY then CastSpell(_W, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY then CastSpell(_E) end end end ---[[Nidalee]]--- function NidaleeFarm() local champ = player.charName if champ == "Nidalee" then -- Farm Q for index,minion in pairs(enemyMinion.objects) do if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible then --myHero:Attack(minion) 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 if myHero:CanUseSpell(_Q) == READY then --myHero:HoldPosition() CastSpell(_Q, minion) end end end end end end function NidaleeCombo() if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY then CastSpell(_E, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY then CastSpell(_W) end end end function NidaleeTF() local champ = player.charName local ally = GetPlayer(myHero.team, false, false, myHero, 450, "health") if champ == "Nidalee" then if ally ~= nil and ally.health <= ally.maxHealth * (50 / 100) then if myHero:CanUseSpell(_E) == READY then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting E to Ally") end CastSpell(_E, ally) end end end end function RyzeFarm() local champ = player.charName local QRange = 800 if champ == "Ryze" then -- Farm Q if not myHero:CanUseSpell(_Q) == READY then return end for i, minion in pairs(enemyMinion.objects) do if ValidTarget(minion, QRange) and 50 <= ManaPercent() then CastSpell(_Q, minion.x,minion.z) end end end end function RyzeCombo() if ts.target.visible == true and Target ~= nil then if myHero:CanUseSpell(_Q) == READY and GetDistance(ts.target) < 700 then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_E) == READY then CastSpell(_E, ts.target) end if myHero:CanUseSpell(_W) == READY and GetDistance(ts.target) < 600 and myHero.mana / myHero.maxMana < 50 then CastSpell(_W, ts.target) end if myHero:CanUseSpell(_R) == READY then CastSpell(_R) end end end function RyzeDefensive() local champ = player.charName if champ == "Ryze" then if ts.target.visible == true and Target ~= nil then if myHero:CanUseSpell(_W) == READY and GetDistance(ts.target) < 600 then CastSpell(_W, ts.target) end if myHero:CanUseSpell(_R) == READY then CastSpell(_R) end end end end ---[[Taric]]--- function TaricFarm() local champ = player.charName if champ == "Taric" then -- Farm W for index,minion in pairs(enemyMinion.objects) do if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible and minion.health <= getDmg("W", minion, myHero) then if myHero:CanUseSpell(_W) == READY and GetDistance(minion) <= 200then CastSpell(_W, minion) end end end end end function TaricCombo() if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY then CastSpell(_E, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY and GetDistance(ts.target) <= 200 then CastSpell(_W) end if myHero:CanUseSpell(_R) == READY and GetDistance(ts.target) <= 200 then CastSpell(_R) end end end function TaricTF() local champ = player.charName local ally = GetPlayer(myHero.team, false, false, myHero, 450, "health") if champ == "Taric" then if ally ~= nil and ally.health <= ally.maxHealth * (50 / 100) then if myHero:CanUseSpell(_Q) == READY then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting Q to Ally") end CastSpell(_Q, ally) end end end end function TaricDefensive() local champ = player.charName local ally = GetPlayer(myHero.team, false, false, myHero, 450, "health") if champ == "Taric" then if ally ~= nil and ally.health <= ally.maxHealth * (50 / 100) then if myHero:CanUseSpell(_Q) == READY then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting Q to Ally") end CastSpell(_Q, ally) end end if myHero.health <= myHero.maxHealth * (70 / 100) then if myHero:CanUseSpell(_Q) == READY then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting Q to Taric") end CastSpell(_Q, myHero) end end end end ---[[TwistedFate]]--- function TwistedFateFarm() local champ = player.charName if champ == "TwistedFate" then -- Farm Q if myHero:CanUseSpell(_W) == READY then --myHero:HoldPosition() CastSpell(_W) end for index,minion in pairs(enemyMinion.objects) do myHero:Attack(minion) 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 if myHero:CanUseSpell(_Q) == READY then --myHero:HoldPosition() CastSpell(_Q, minion) end end end end end function TwistedFateCombo() SkillR = { name = "Final Spark", range = 3340, delay = 1.0, speed = math.huge, width = 190, ready = false } rDmg = getDmg("R", ts.target, myHero) if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY then CastSpell(_E, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY then CastSpell(_W) end if myHero:CanUseSpell(_R) == READY and ts.target.health < rDmg and GetDistance(ts.target) <= SkillR.range then CastSpell(_R, ts.target.x, ts.target.z) end end end function TwistedFateTF() local champ = player.charName local ally = GetPlayer(myHero.team, false, false, myHero, 450, "health") if champ == "Lux" then if ally ~= nil and ally.health <= ally.maxHealth * (50 / 100) then if myHero:CanUseSpell(_E) == READY then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting E to Ally") end CastSpell(_E, ally) end end end end ---[[Nunu]]--- function NunuCombo() if myHero:CanUseSpell(_W) == READY then CastSpell(_W, ts.target) end end ---[[Warwick]]--- function WarwickFarm() local champ = player.charName if champ == "Warwick" then -- Farm Q for index,minion in pairs(enemyMinion.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 if myHero:CanUseSpell(_Q) == READY then --myHero:HoldPosition() CastSpell(_Q, minion) end end end end end function WarwickCombo() rDmg = getDmg("R", ts.target, myHero) if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY then CastSpell(_E, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_Q) == READY and GetDistance(ts.target) <= 100 then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY then CastSpell(_W) end if myHero:CanUseSpell(_R) == READY and ts.target.health < rDmg and GetDistance(ts.target) <= 600 then CastSpell(_R, ts.target.x, ts.target.z) end end end function WarwickTF() local champ = player.charName local ally = GetPlayer(myHero.team, false, false, myHero, 450, "health") if champ == "Warwick" then if ally ~= nil then if myHero:CanUseSpell(_W) == READY then if iARAM.misc.misc2 then _AutoupdaterMsg("Casting W") end CastSpell(_W) end end end end ---[[Ziggs]]--- function ZiggsFarm() local champ = player.charName if champ == "Ziggs" then -- Farm Q for index,minion in pairs(enemyMinion.objects) do if minion ~= nil and minion.valid and minion.team ~= myHero.team and not minion.dead and minion.visible then myHero:Attack(minion) 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 if myHero:CanUseSpell(_Q) == READY then --myHero:HoldPosition() CastSpell(_Q, minion) end end end end end end function ZiggsCombo() SkillR = { name = "BoooMb!", range = 3340, delay = 1.0, speed = math.huge, width = 190, ready = false } rDmg = getDmg("R", ts.target, myHero) if ts.target.visible == true then if myHero:CanUseSpell(_E) == READY then CastSpell(_E, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_Q) == READY then CastSpell(_Q, ts.target.x, ts.target.z) end if myHero:CanUseSpell(_W) == READY and myHero.Health < myHero.Health * (50 / 100) then CastSpell(_W) end if myHero:CanUseSpell(_R) == READY and ts.target.health < rDmg and GetDistance(ts.target) <= SkillR.range then CastSpell(_R, ts.target.x, ts.target.z) end end end --[[ DefensiveMode Function ]]-- function DefensiveMode() if player.dead or GetGame().isOver then return end if ts.target ~= nil and Target ~= nil then JannaTF() KayleTF() TaricTF() TaricDefensive() RyzeDefensive() KindredDefensive() end end --[[ NotificationLib Function ]]-- class "NotificationLib" local Length = 280; local Thickness = 66; --local Position = {(WINDOW_W*0.995), (WINDOW_H*0.1)} local Position = {(WINDOW_W*0.58), (WINDOW_H*0.2)} local Tiles = {} function DrawNotificationLib() local time = 0.5; local gameTime = GetGameTimer(); if tablelength(Tiles) > GetMaxTileCount() then table.remove(Tiles, 1) end for i ,v in pairs(Tiles) do if v[3] + v[4] + time <= gameTime then table.remove(Tiles, i) end v[5] = Position[1]; v[6] = Position[2] + (Thickness + 6) * (i - 1); if time + v[4] >= gameTime then local percent = ((v[4] + time) - gameTime)/time v[5] = Position[1] + Length * percent; end if v[3] + v[4] <= gameTime and v[3] + v[4] + time > gameTime then local percent = (gameTime - (v[4]+v[3]))/time; v[5] = Position[1] + Length * percent; end DrawTile(v[5], v[6], v[1], v[2]); end end function OnWndMsgNotificationLib(msg,wParam) if msg ~= 513 then return; end for i ,v in pairs(Tiles) do if CursorisOverBox(v[5], v[6]) then v[3] = GetGameTimer() - v[4]; end end end function NotificationLib:AddTile(Header, Text, Duration) Tiles[tablelength(Tiles) +1] = {Header, Text, Duration, GetGameTimer(), Position[1], Position[2]} end function DrawTile(x, y, header, text) local lenghtHeader = GetTextArea(header, 25).x - 240; local lenghtContext = GetTextArea(text, 20).x - 250; local extraLenght = lenghtHeader > lenghtContext and lenghtHeader or lenghtContext; local tileLenght = CursorIsOverTile(x, y) and Length + (extraLenght > 0 and extraLenght or 0) or Length; --Border local borderColor = CursorIsOverTile(x, y) and ARGB(255,93,86,58) or ARGB(255*0.5,93,86,58); local borderThickness = 4; local borderYOffset = (Thickness * 0.5); DrawLine(x - tileLenght, y - borderYOffset, x, y - borderYOffset, borderThickness, borderColor); DrawLine(x - tileLenght, y + borderYOffset, x, y + borderYOffset, borderThickness, borderColor); DrawLine(x - tileLenght + (borderThickness * 0.5), y - borderYOffset + (borderThickness * 0.5), x - tileLenght + (borderThickness * 0.5), y + borderYOffset - (borderThickness * 0.5), borderThickness, borderColor); DrawLine(x - (borderThickness * 0.5), y - borderYOffset + (borderThickness * 0.5), x - (borderThickness * 0.5), y + borderYOffset - (borderThickness * 0.5), borderThickness, borderColor); --Main local mainColor = CursorIsOverTile(x, y) and ARGB(255,12,19,18) or ARGB(255*0.5,12,19,18); local mainBorderOffset = (borderThickness*0.5); DrawLine(x - tileLenght + borderThickness, y, x - borderThickness, y, Thickness - borderThickness, mainColor); --CloseBox local boxColor = ARGB(255, 35,65,63); local boxHeight = 24; local boxWidth = 24; local boxYOffset = (Thickness*0.5-boxHeight*0.5); if CursorisOverBox(x, y) then DrawLine(x - boxWidth - borderThickness, y - boxYOffset + mainBorderOffset, x - borderThickness, y - boxYOffset + mainBorderOffset, boxHeight, boxColor); end --Header local headerYOffset = 30; local fixedHeader = (not CursorIsOverTile(x, y) and GetTextArea(header, 25).x > 240) and header:sub(1, 20).." ..." or header; DrawText(fixedHeader, 25, x - tileLenght + borderThickness*2, y - headerYOffset, ARGB(255, 127, 255, 212)); --Context local contextYOffsetLine1 = 5; local fixedContext = (not CursorIsOverTile(x, y) and GetTextArea(text, 20).x > 250) and text:sub(1, 25).." ..." or text; DrawText(fixedContext, 20, x - tileLenght + borderThickness*2, y + contextYOffsetLine1, ARGB(255, 250, 235, 215)); --BoxX DrawText("x",33,x - boxWidth, y -boxYOffset*2 +5,ARGB(255,143,188,143)) end function CursorIsOverTile(posX, posY) local cursor = GetCursorPos(); local x = posX - cursor.x; local y = posY - cursor.y; return (x < Length and x > 0) and (y < 30 and y > -45); end function CursorisOverBox(posX, posY) local cursor = GetCursorPos(); local x = posX - cursor.x; local y = posY - cursor.y; return (x < 28 and x > 0) and (y < 24 and y > -10); end function tablelength(T) local count = 0 for _ in pairs(T) do count = count + 1 end return count end local function round(num, idp) local mult = 10^(idp or 0) return math.floor(num * mult + 0.5) / mult end function GetMaxTileCount() return round((WINDOW_H / 108), 0) end --[[ KeyDownFix Function ]]-- function KeyDownFix() local originalKD = _G.IsKeyDown _G.IsKeyDown = function(theKey) if (type(theKey) ~= 'number') then local theNumber = tonumber(theKey) if (theNumber ~= nil) then return originalKD(theNumber) else return originalKD(GetKey(theKey)) end else return originalKD(theKey) end end end ------[[ Sprite Drawing and Downloader Function ]]------ local FolderOfSprites = { } local updated = false -- Made by Nebelwolfi to make classes local and not global function Class(name) _ENV[name] = { } _ENV[name].__index = _ENV[name] local mt = { __call = function(self, ...) local b = { } setmetatable(b, _ENV[name]) b:__init(...) return b end } setmetatable(_ENV[name], mt) end DelayAction( function() if not _G.DrawLogoLoaded then DrawLogo() end end, 0.05) class "DrawLogo" function DrawLogo:__init(cfg) if _G.DrawLogoLoaded then return end _G.givenConfig = cfg _G.DrawLogoLoaded = true _Tech:LoadSprites() AddMsgCallback( function(a, b) self:WndMsg(a, b) end) AddDrawCallback( function() self:Draw() end) AddUnloadCallback( function() self:Unload() end) end function DrawLogo:Draw() if not iARAM then return end if updated == false then return end _Tech:Draw() --drawing end function DrawLogo:WndMsg(a, b) if not iARAM then return end if iARAM.SpriteMenuUpdateSprites and updated == true then if iARAM.misc.misc2 then _AutoupdaterMsg("Loaded sprites") --Doesn´t work. :S end _Tech:ReloadSprites() iARAM.SpriteMenuUpdateSprites = false end end function DrawLogo:Unload() for i = 1, #FolderOfSprites do FolderOfSprites[i]:Release(); end end Class("_Tech") function _Tech:LoadSprites() updated = false --Which folder we want to create. for _, k in pairs( { "", "Logotype" }) do if not DirectoryExist(SPRITE_PATH .. "iARAM//" .. k) then CreateDirectory(SPRITE_PATH .. "iARAM//" .. k) end end self:LoadOtherSprites() end function _Tech:LoadOtherSprites() -- Load icons for i = 1, 2 do -- We have 2 sprites so we run it 2 times if FileExist(SPRITE_PATH .. "iARAM//Logotype//" .. i .. ".png") then table.insert(FolderOfSprites, createSprite(SPRITE_PATH .. "\\iARAM\\Logotype\\" .. i .. ".png")) else _AutoupdaterMsg("Downloading missing sprite in folder: Logotype " .. i .. " / 2, DO NOT RELOAD THE SCRIPT!") DownloadFile("https://raw.githubusercontent.com/Husmeador12/Bol_Script/master/Sprites/" .. i .. ".png?no-cache=" .. math.random(1, 25000), SPRITE_PATH .. "iARAM//Logotype//" .. i .. ".png", function() DelayAction( function() self:LoadOtherSprites() end, 0.15) end) FolderOfSprites = { } return; end end updated = true end function _Tech:ReloadSprites() if updated == false then return end for i = 1, #FolderOfSprites do FolderOfSprites[i]:Release(); end FolderOfSprites = { } self:LoadSprites() end function _Tech:Draw() if iARAM.SpriteMenu.SpriteShower then FolderOfSprites[1]:Draw(900, 700, 255) end end