--╔═══╗╔══╗╔═╗╔═╗╔═══╗╔╗ ╔═══╗ ╔═══╗╔════╗╔═══╗╔═══╗╔═══╗╔╗
--║╔═╗║╚╣─╝║║╚╝║║║╔═╗║║║ ║╔══╝ ║╔══╝╚══╗═║║╔═╗║║╔══╝║╔═╗║║║
--║╚══╗ ║║ ║╔╗╔╗║║╚═╝║║║ ║╚══╗ ║╚══╗ ╔╝╔╝║╚═╝║║╚══╗║║ ║║║║
--╚══╗║ ║║ ║║║║║║║╔══╝║║ ╔╗║╔══╝ ║╔══╝ ╔╝╔╝ ║╔╗╔╝║╔══╝║╚═╝║║║ ╔╗
--║╚═╝║╔╣─╗║║║║║║║║ ║╚═╝║║╚══╗ ║╚══╗╔╝═╚═╗║║║╚╗║╚══╗║╔═╗║║╚═╝║
--╚═══╝╚══╝╚╝╚╝╚╝╚╝ ╚═══╝╚═══╝ ╚═══╝╚════╝╚╝╚═╝╚═══╝╚╝ ╚╝╚═══╝
-- V1.06 Changelog
-- +Improved damage calculation.
-- +The "KillsSteal Ready" chat message was replaced by a text in the enemy when it can be killed with the ulti.
-- +Added a bar that shows the damage that will be done to the enemy.
--
-- V1.05 Changelog
-- +Now some items are used (BOTRK, Hextech Gunblade and Bilfewater Cutlass) automatically in the tf.
--
-- V1.04 Changelog
-- +GoSPred has been added to choose the predictions of Q, W and R.
-- +Auto Q/W added.
--
-- V1.031 Changelog
-- +Small bugs fixed.
--
-- V1.03 Changelog
-- +Autolevel R>Q>W>E on/off added
--
-- V1.02 Changelog
-- +Autoupdate added.
--
-- V1.01 Changelog
-- +Q Error fix
-- +range color changes
--
-- V1 released to GoS
-- [[ Champion ]]
if GetObjectName( GetMyHero()) ~= "Ezreal" then return end
-- [[ Lib ]]
require ("OpenPredict")
require ("DamageLib")
function EzrealScriptPrint(msg)
print("Ezreal Script: "..msg.."")
end
EzrealScriptPrint("Made by EweEwe")
-- [[ Update ]]
local version = "1.06"
function AutoUpdate(data)
if tonumber(data) > tonumber(version) then
PrintChat("New version found!" .. data)
PrintChat("Downloading update, please wait...")
DownloadFileAsync("https://raw.githubusercontent.com/EweWexD/Ezreal/master/Ezreal.lua", SCRIPT_PATH .. "Ezreal.lua", function() PrintChat("Update Complete, please 2x F6!") return end)
else
PrintChat("No updates found!")
end
end
GetWebResultAsync("https://raw.githubusercontent.com/EweWexD/Ezreal/master/Ezreal.version", AutoUpdate)
-- [[ Menu ]]
local EzrealMenu = Menu("Ezreal", "Simple Ezreal")
-- [[ Combo ]]
EzrealMenu:SubMenu("Combo", "[Ezreal] Combo Settings")
EzrealMenu.Combo:Boolean("Q", "Use Q", true)
EzrealMenu.Combo:Boolean("W", "Use W", true)
EzrealMenu.Combo:Boolean("E", "Use E", false)
-- [[ Harass ]]
EzrealMenu:SubMenu("Harass", "[Ezreal] Harass Settings")
EzrealMenu.Harass:Boolean("Q", "Use Q", true)
EzrealMenu.Harass:Boolean("W", "Use W", true)
EzrealMenu.Harass:Slider("Mana", "Min. Mana", 50, 0, 100, 1)
-- [[ AutoAB ]]
EzrealMenu:SubMenu("AutoAB", "[Ezreal] Auto Q & W")
EzrealMenu.AutoAB:Boolean("Q", "Auto Q", true)
EzrealMenu.AutoAB:Boolean("W", "Auto W", true)
EzrealMenu.AutoAB:Slider("Mana", "Min. Mana", 50, 0, 100, 1)
-- [[ LaneClear ]]
EzrealMenu:SubMenu("Farm", "[Ezreal] Farm Settings")
EzrealMenu.Farm:Boolean("Q", "Use Q", true)
EzrealMenu.Farm:Boolean("QL", "Use Q On LastHit", true)
EzrealMenu.Farm:Slider("Mana", "Min. Mana", 40, 0, 100, 1)
-- [[ Jungle Clear ]]
EzrealMenu:SubMenu("JG", "[Ezreal] Jungle Settings")
EzrealMenu.JG:Boolean("Q", "Use Q", true)
-- [[ Kill Steal ]]
EzrealMenu:SubMenu("KS", "[Ezreal] Kill Steal Settings")
EzrealMenu.KS:Boolean("Q", "Use Q", true)
EzrealMenu.KS:Boolean("W", "Use W", true)
EzrealMenu.KS:Boolean("R", "Use R", true)
-- [[ AutoLevel ]]
EzrealMenu:SubMenu("AutoLevel", "[Ezreal] AutoLevel")
EzrealMenu.AutoLevel:Boolean("DisableAUTOMAX", "Auto max abilities R>Q>W>E?", false)
-- [[ Prediction ]]
EzrealMenu:SubMenu("Prediction", "[Ezreal] Prediction Settings")
EzrealMenu.Prediction:DropDown("QPrediction","Prediction of Q", 2, {"OpenPredict", "GoSPrediction"})
EzrealMenu.Prediction:DropDown("WPrediction","Prediction of W", 2, {"OpenPredict", "GoSPrediction"})
EzrealMenu.Prediction:DropDown("RPrediction","Prediction of R", 2, {"OpenPredict", "GoSPrediction"})
-- [[Draw]]
EzrealMenu:SubMenu("Draw", "[Ezreal] Range Draw Settings")
EzrealMenu.Draw:Boolean("Q", "Draw Q", false)
EzrealMenu.Draw:Boolean("W", "Draw W", false)
EzrealMenu.Draw:Boolean("E", "Draw E", false)
EzrealMenu.Draw:Boolean("R", "Draw R", false)
EzrealMenu.Draw:Boolean("Disable", "Disable All Drawings", false)
-- [[ DrawDMG ]]
EzrealMenu:SubMenu("DrawDMG", "[Ezreal] DrawDMG")
EzrealMenu.DrawDMG:Boolean("DrawD", "Draw Damage", true)
EzrealMenu.DrawDMG:Boolean("Q", "Draw Q dmg", true)
EzrealMenu.DrawDMG:Boolean("W", "Draw W dmg", true)
EzrealMenu.DrawDMG:Boolean("R", "Draw R dmg", true)
-- [[ Item Use ]]
EzrealMenu:SubMenu("Items", "[Ezreal] Items Use")
EzrealMenu.Items:Boolean("BOTRK", "Use BOTRK", true)
EzrealMenu.Items:Boolean("HG", "Use Hextech Gunblade", true)
EzrealMenu.Items:Boolean("BC", "Use Bilfewater Cutlass", true)
-- [[ Create by me :3 ]]
EzrealMenu:Info("Juan", "--------------")
EzrealMenu:Info("Created", "Made by EweEwe")
-- [[ AutoLevel ]]
local levelsc = { _Q, _W, _E, _Q, _Q, _R, _Q, _W, _Q, _W, _R, _W, _W, _E, _E, _R, _E, _E }
-- [[ Spell details]]
local Spells = {
Q = {range = 1150, delay = 0.25 , speed= 2000 , width = 60, collision = true, col = {"minion", "yasuowall"}},
W = {range = 1000, delay = 0.25 , speed= 1600 , width = 80},
E = {range = 475, delay = 0.25 , speed= 2000 , width = 80},
R = {range = 5000, delay = 1.0 , speed= 2000 , width = 160},
}
-- [[ Orbwalker ]]
function Mode()
if _G.IOW_Loaded and IOW:Mode() then
return IOW:Mode()
elseif _G.PW_Loaded and PW:Mode() then
return PW:Mode()
elseif _G.DAC_Loaded and DAC:Mode() then
return DAC:Mode()
elseif _G.AutoCarry_Loaded and DACR:Mode() then
return DACR:Mode()
elseif _G.SLW_Loaded and SLW:Mode() then
return SLW:Mode()
elseif GoSWalkLoaded and GoSWalk.CurrentMode then
return ({"Combo", "Harass", "LaneClear", "LastHit"})[GoSWalk.CurrentMode+1]
end
end
-- [[ Tick ]]
OnTick(function()
AutoLevel()
target = GetCurrentTarget()
dmgCalc()
KS()
Combo()
Harass()
Farm()
AutoAB()
Items()
end)
-- [[ AutoLevel ]]
function AutoLevel()
if EzrealMenu.AutoLevel.DisableAUTOMAX:Value() then return end
if GetLevelPoints(myHero) > 0 then
DelayAction(function() LevelSpell(levelsc[GetLevel(myHero) + 1 - GetLevelPoints(myHero)]) end, 0.5)
end
end
-- [[ DMGCalc ]]
function dmgCalc(spell)
local dmg = {
["Q"] = 35 + 20*GetCastLevel(myHero,0) + GetBonusDmg(myHero)*1.1 + GetBonusAP(myHero)*0.4,
["W"] = 70 + 45*GetCastLevel(myHero,0) + GetBonusAP(myHero)*0.8,
["UR"] = 350 + 150*GetCastLevel(myHero,0) + GetBonusDmg(myHero)*1 + GetBonusAP(myHero)*0.9,
}
return dmg[spell]
end
-- [[ DrawDamage ]]
OnDraw(function(myHero)
for _, unit in pairs(GetEnemyHeroes()) do
if ValidTarget(unit, 2000) and EzrealMenu.DrawDMG.DrawD:Value() then
local DmgDraw=0
if Ready(_Q) and EzrealMenu.DrawDMG.Q:Value() then
DmgDraw = dmgCalc("Q")
end
if Ready(_W) and EzrealMenu.DrawDMG.W:Value() then
DmgDraw = dmgCalc("W")
end
if Ready(_R) and EzrealMenu.DrawDMG.R:Value() then
DmgDraw = dmgCalc("UR")
end
DmgDraw = CalcDamage(myHero, unit, 0, DmgDraw)
if DmgDraw > GetCurrentHP(unit) then
DmgDraw = GetCurrentHP(unit)
end
DrawDmgOverHpBar(unit,GetCurrentHP(unit),0,DmgDraw,0xFFC2C244)
end
end
end)
-- [[ Ezreal Q ]]
function EzrealQ()
if GetDistance(target) < Spells.Q.range then
if EzrealMenu.Prediction.QPrediction:Value() == 1 then
local QPred = GetLinearAOEPrediction(target,Spells.Q)
if QPred.hitChance > 0.9 then
CastSkillShot(_Q, QPred.castPos)
end
elseif EzrealMenu.Prediction.QPrediction:Value() == 2 then
local QPred = GetPredictionForPlayer(GetOrigin(myHero),target,GetMoveSpeed(target),Spells.Q.speed, Spells.Q.delay*1000,Spells.Q.range,Spells.Q.width,true,false)
if QPred.HitChance == 1 then
CastSkillShot(_Q, QPred.PredPos)
end
end
end
end
-- [[ Ezreal W ]]
function EzrealW()
if GetDistance(target) < Spells.W.range then
if EzrealMenu.Prediction.WPrediction:Value() == 1 then
local WPred = GetPrediction(target, Spells.W)
if WPred.hitChance > 0.3 then
CastSkillShot(_W, WPred.castPos)
end
elseif EzrealMenu.Prediction.WPrediction:Value() == 2 then
local WPred = GetPredictionForPlayer(GetOrigin(myHero),target,GetMoveSpeed(target),Spells.W.speed, Spells.W.delay*1000,Spells.W.range,Spells.W.width,false,true)
if WPred.HitChance == 1 then
CastSkillShot(_W, WPred.PredPos)
end
end
end
end
-- [[ Ezreal E ]]
function EzrealE()
local EPred = GetPrediction(target, Spells.E)
if EPred.hitChance > 0.3 then
CastSkillShot(_E, EPred.castPos)
end
end
-- [[ Ezreal R ]]
function EzrealR()
if EzrealMenu.Prediction.RPrediction:Value() == 1 then
local RPred = GetPrediction(target, Spells.R)
if RPred.hitChance > 0.8 then
CastSkillShot(_R, RPred.castPos)
end
elseif EzrealMenu.Prediction.RPrediction:Value() == 2 then
local RPred = GetPredictionForPlayer(GetOrigin(myHero),target,GetMoveSpeed(target),Spells.R.speed,Spells.R.delay*1000,Spells.R.range,Spells.R.width,false,true)
if RPred.HitChance == 1 then
CastSkillShot(_R, RPred.PredPos)
end
end
end
-- [[ Combo ]]
function Combo()
if Mode() == "Combo" then
-- [[ Use Q ]]
if EzrealMenu.Combo.Q:Value() and Ready(_Q) and ValidTarget(target, Spells.Q.range) then
EzrealQ()
end
-- [[ Use W ]]
if EzrealMenu.Combo.W:Value() and Ready(_W) and ValidTarget(target, Spells.W.range) then
EzrealW()
end
-- [[ Use E ]]
if EzrealMenu.Combo.E:Value() then
if CanUseSpell(myHero,_E) == READY then
if ValidTarget(target, Spells.E.range+GetRange(myHero)) then
CastSkillShot(_E, GetMousePos())
end
end
end
end
end
-- [[ Items Use ]]
function Items()
if Mode() == "Combo" then
if EzrealMenu.Items.BOTRK:Value() then
if GetItemSlot(myHero, 3153) >= 1 and ValidTarget(target, 550) then
if CanUseSpell(myHero, GetItemSlot(myHero, 3153)) then
CastTargetSpell(target, GetItemSlot(myHero, 3153))
end
end
end
if EzrealMenu.Items.HG:Value() then
if GetItemSlot(myHero, 3146) >= 1 and ValidTarget(target, 700) then
if CanUseSpell(myHero, GetItemSlot(myHero, 3146)) then
CastTargetSpell(target, GetItemSlot(myHero, 3146))
end
end
end
if EzrealMenu.Items.BC:Value() then
if GetItemSlot(myHero, 3144) >= 1 and ValidTarget(target, 550) then
if CanUseSpell(myHero, GetItemSlot(myHero, 3144)) then
CastTargetSpell(target, GetItemSlot(myHero, 3144))
end
end
end
end
end
-- [[ Harass ]]
function Harass()
if Mode() == "Harass" then
if (myHero.mana/myHero.maxMana >= EzrealMenu.Harass.Mana:Value() /100) then
-- [[ Use Q ]]
if EzrealMenu.Harass.Q:Value() and Ready(_Q) and ValidTarget(target, Spells.Q.range) then
EzrealQ()
end
-- [[ Use W ]]
if EzrealMenu.Harass.W:Value() and Ready(_W) and ValidTarget(target, Spells.W.range) then
EzrealW()
end
end
end
end
-- [[ AutoAB ]]
function AutoAB()
if EzrealMenu.AutoAB.Q:Value() then
if 100*GetCurrentMana(myHero)/GetMaxMana(myHero) > EzrealMenu.AutoAB.Mana:Value() then
if CanUseSpell(myHero,_Q) == READY then
if ValidTarget(target, Spells.Q.range) then
EzrealQ(target)
end
end
end
end
if EzrealMenu.AutoAB.W:Value() then
if 100*GetCurrentMana(myHero)/GetMaxMana(myHero) > EzrealMenu.AutoAB.Mana:Value() then
if CanUseSpell(myHero,_W) == READY then
if ValidTarget(target, Spells.W.range) then
EzrealW(target)
end
end
end
end
end
-- [[ LaneClear ]]
function Farm()
if Mode() == "LaneClear" then
if EzrealMenu.Farm.Q:Value() then
for _, minion in pairs(minionManager.objects) do
if GetTeam(minion) == MINION_ENEMY then
if 100*GetCurrentMana(myHero)/GetMaxMana(myHero) > EzrealMenu.Farm.Mana:Value() then
if ValidTarget(minion, Spells.Q.range) then
if CanUseSpell(myHero,_Q) == READY then
CastSkillShot(_Q, GetOrigin(minion))
end
end
end
end
end
end
end
end
-- [[ KillSteals ]]
function KS()
for _, enemy in pairs(GetEnemyHeroes()) do
-- [[ Use Q ]]
if EzrealMenu.KS.Q:Value() and Ready(_Q) and ValidTarget(enemy, Spells.Q.range) then
if GetCurrentHP(enemy) < getdmg("Q", enemy, myHero) then
EzrealQ()
end
end
-- [[ Use W ]]
if EzrealMenu.KS.W:Value() and Ready(_W) and ValidTarget(enemy, Spells.W.range) then
if GetCurrentHP(enemy) < getdmg("W", enemy, myHero) then
EzrealW()
end
end
-- [[ Use R ]]
if EzrealMenu.KS.R:Value() and Ready(_R) and ValidTarget(enemy, Spells.R.range) then
if GetCurrentHP(enemy) < getdmg("R", enemy, myHero) then
DrawText("Killable!",30,enemy.pos2D.x-30,enemy.pos2D.y-40,0xFFFF0000)
EzrealR()
end
end
end
end
-- [[ Drawings ]]
OnDraw(function(myHero)
if myHero.dead or EzrealMenu.Draw.Disable:Value() then return end
local pos = GetOrigin(myHero)
-- [[ Draw Q ]]
if EzrealMenu.Draw.Q:Value() then DrawCircle(pos, Spells.Q.range, 1, 25, 0xFFC2C244) end
-- [[ Draw W ]]
if EzrealMenu.Draw.W:Value() then DrawCircle(pos, Spells.W.range, 1, 25, 0xFFFFFF00) end
-- [[ Draw Q]]
if EzrealMenu.Draw.E:Value() then DrawCircle(pos, Spells.E.range, 0, 25, 0xFF56B107) end
-- [[ Draw R ]]
if EzrealMenu.Draw.R:Value() then DrawCircle(pos, Spells.R.range, 0, 25, 0xFF56B107) end
end)