Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if GetObjectName(GetMyHero()) ~= "Olaf" then return end
- require "OpenPredict"
- if not FileExist(COMMON_PATH.. "Analytics.lua") then
- DownloadFileAsync("https://raw.githubusercontent.com/LoggeL/GoS/master/Analytics.lua", COMMON_PATH .. "Analytics.lua", function() end)
- end
- require("Analytics")
- Analytics("OlafTheLooter", "MemoTheCollector")
- local QStats = {delay = 0.25, speed = 1600, width = 90, range = 1000}
- local EDamage = 0
- local lastlevel = GetLevel(myHero)-1
- local enemy = GetCurrentTarget()
- ---GoS 1.0 funeral
- local OlafMenu = Menu("Olaf", "Olaf")
- OlafMenu:SubMenu("Combo", "Combo")
- OlafMenu.Combo:Boolean("Q", "Use Q", true)
- OlafMenu.Combo:Boolean("W", "Use W", true)
- OlafMenu.Combo:Boolean("E", "Use E", true)
- OlafMenu.Combo:Boolean("R", "Use R", true)
- ---BeAHoeAndPush
- OlafMenu:SubMenu("LaneClear", "LaneClear")
- OlafMenu.LaneClear:Boolean("QL", "Use Q", true)
- OlafMenu.LaneClear:Boolean("EL", "Use E", true)
- OlafMenu.LaneClear:Slider("Mana", "if Mana % >", 30, 0, 100, 1)
- ---ADcarriesFavourite
- OlafMenu:SubMenu("LastHit","LastHit")
- OlafMenu.LastHit:Boolean("ELSHT", "Use E", true)
- OlafMenu.LastHit:Boolean("QLSHT", "Use Q", true)
- OlafMenu.LastHit:Boolean("ALSHT", "Auto Last Hit", true)
- ---GreedyASF
- OlafMenu:SubMenu("KillSteal", "KillSteal")
- OlafMenu.KillSteal:Boolean("QKS", "KillSteal with Q", true)
- OlafMenu.KillSteal:Boolean("EKS", "KillSteal with E", true)
- ---MisCancerous
- OlafMenu:SubMenu("Misc", "Misc")
- OlafMenu.Misc:SubMenu("AUL", "Auto Level")
- OlafMenu.Misc.AUL:Boolean("AUL", "Auto level skills", true)
- OlafMenu.Misc.AUL:Boolean("AUW", "QWE", false)
- OlafMenu.Misc.AUL:Boolean("AUE", "QEW", false)
- OlafMenu.Misc:Boolean("WAutoX", "Use Auto W on X Enemies", true)
- OlafMenu.Misc:Slider("WAutoXE", "X Enemies to use W",3,1,5,1)
- ---PictureDeftsuNaked
- OlafMenu:SubMenu("Draw", "Drawings")
- OlafMenu.Draw:Boolean("DAA", "Draw AA Range", true)
- OlafMenu.Draw:Boolean("DQ", "Draw Q Range", true)
- OlafMenu.Draw:Boolean("DE", "Draw E Range", true)
- --- some spaghetti coders say this will cause fps to get better
- function Mode()
- if IOW_Loaded then
- return IOW:Mode()
- elseif DAC_Loaded then
- return DAC:Mode()
- elseif PW_Loaded then
- return PW:Mode()
- elseif GoSWalkLoaded and GoSWalk.CurrentMode then
- return ({"Combo", "Harass", "LaneClear", "LastHit"})[GoSWalk.CurrentMode+1]
- elseif AutoCarry_Loaded then
- return DACR:Mode()
- elseif _G.SLW_Loaded then
- return SLW:Mode()
- elseif _G.EOW_Loaded then
- return EOW:Mode()
- end
- return ""
- end
- OnTick (function()
- EDamage = 25 + 45 * GetCastLevel(myHero,_E) + myHero.totalDamage*.4
- QDamage = 25 + 45 * GetCastLevel(myHero, _Q) + GetBonusDmg(myHero)
- --Rbuff()
- if Mode() == "LaneClear" then
- LaneClear()
- elseif Mode() == "LastHit" then
- LastHit()
- elseif Mode() == "Combo" then
- Combo()
- end
- AutoWX()
- AutoLastHit()
- KillSteal()
- end)
- function Combo()
- if Ready(_Q) and OlafMenu.Combo.Q:Value() and ValidTarget(enemy,GetCastRange(myHero, _Q)) then
- local predQ = GetLinearAOEPrediction(enemy, QStats)
- if predQ and predQ.hitChance >= 0.25 then
- CastSkillShot(_Q,predQ.castPos)
- end
- end
- if Ready(_E) and OlafMenu.Combo.E:Value() and ValidTarget(enemy, GetCastRange(myHero, _E)) then
- CastTargetSpell(enemy, _E)
- end
- end
- --- You'll need to hold down lasthit button key
- function LastHit()
- if Ready(_E) and OlafMenu.LastHit.ELSHT:Value() then
- for _, minion in pairs(minionManager.objects) do
- if ValidTarget(minion, GetCastRange(myHero, _E)) and EDamage > GetCurrentHP(minion) then
- CastTargetSpell(minion, _E)
- break
- end
- end
- end
- if Ready(_Q) and OlafMenu.LastHit.QLSHT:Value() then
- for _, minion in pairs(minionManager.objects) do
- if ValidTarget(minion, GetCastRange(myHero, _Q)) and CalcDamage(myHero,minion,QDamage,0) > GetCurrentHP(minion) then
- CastSkillShot(_Q, minion.pos)
- break
- end
- end
- end
- end
- --- Amazing killsteal function, you'll never miss that KS
- function KillSteal()
- if Ready(_E) and OlafMenu.KillSteal.EKS:Value() then
- for _, enemy in pairs(GetEnemyHeroes()) do
- if ValidTarget(enemy, GetCastRange(myHero, _E)) and EDamage > GetCurrentHP(enemy) then
- CastTargetSpell(enemy, _E)
- end
- end
- end
- if Ready(_Q) and OlafMenu.KillSteal.QKS:Value() then
- for _,enemy in pairs(GetEnemyHeroes()) do
- if ValidTarget(enemy,GetCastRange(myHero, _Q)) and CalcDamage(myHero,enemy,QDamage,0) > GetCurrentHP(enemy) then
- local predQ = GetLinearAOEPrediction(enemy, QStats)
- if predQ and predQ.hitChance >= 0.25 then
- CastSkillShot(_Q,predQ.castPos)
- end
- end
- end
- end
- end
- --- The Q Sometimes won't hit the whole lane full of minions, cuz linearOP.. but E is amazing
- function LaneClear()
- if Ready(_Q) and OlafMenu.LaneClear.QL:Value() and GetPercentMP(myHero) > OlafMenu.LaneClear.Mana:Value() then
- for _,minion in pairs(minionManager.objects) do
- if ValidTarget(minion, GetCastRange(myHero, _Q)) then
- CastSkillShot(_Q,minion.pos)
- break
- end
- end
- end
- if Ready(_E) and OlafMenu.LaneClear.EL:Value() and GetPercentMP(myHero) > OlafMenu.LaneClear.Mana:Value() then
- for _, minion in pairs(minionManager.objects) do
- if ValidTarget(minion, GetCastRange(myHero, _E)) then
- CastTargetSpell(minion, _E)
- break
- end
- end
- end
- end
- ---obviously
- function AutoLastHit()
- for _,closeminion in pairs(minionManager.objects) do
- if not KeyIsDown(32) then
- if Ready(_E) and OlafMenu.LastHit.ALSHT:Value() then
- if ValidTarget(closeminion, GetCastRange(myHero, _E)) and EDamage > GetCurrentHP(closeminion) then
- CastTargetSpell(closeminion, _E)
- break
- end
- end
- end
- end
- end
- function AutoWX()
- if OlafMenu.Misc.WAutoX:Value() and Ready(_W) and EnemiesAround(myHeroPos(), 350) >= 1 and (EnemiesAround(myHeroPos(), 350) >= OlafMenu.Misc.WAutoXE:Value()) then
- CastSkillShot(_W, myHeroPos())
- end
- end
- Printchat("<font color=\"#FF5000\">Olaf The Looter: </font> <font color=\#FFFFFF\">"..tostring(x).."</font>"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement