if GetObjectName(myHero) ~= "Amumu" then return end
--MonTour Amumu:V1.0.0.4 - updated GoS:myHeroPos() to GetOrigin(myHero)
PrintChat(string.format("MonTour Amumu: loaded by MarCiii!"))
PrintChat(string.format("Version: 1.0.0.4"))
local MonTourMenu = Menu("Amumu", "Amumu")
MonTourMenu:SubMenu("Combo", "Combo")
MonTourMenu.Combo:Boolean("Q","Use Q",true)
MonTourMenu.Combo:Boolean("W","Use W",true)
MonTourMenu.Combo:Boolean("E","Use E",true)
MonTourMenu.Combo:Boolean("R","Use R",true)
MonTourMenu.Combo:Info("Amumu", "Use R if X+ Enemys")
MonTourMenu.Combo:Slider("RE", "will be stunned (Def. 3)", 3, 1, 5, 1)
MonTourMenu:SubMenu("Harass", "Harass")
MonTourMenu.Harass:Boolean("Q","Use Q",true)
MonTourMenu.Harass:Boolean("W","Use W",true)
MonTourMenu.Harass:Boolean("E","Use E",true)
MonTourMenu.Harass:Boolean("R","Use R",true)
MonTourMenu.Harass:Info("Amumu", "Use R if X+ Enemys")
MonTourMenu.Harass:Slider("RE", "will be stunned (Def. 1)", 1, 1, 5, 1)
MonTourMenu:SubMenu("LaneClear", "LaneClear")
MonTourMenu.LaneClear:Boolean("W","Use W",true)
MonTourMenu.LaneClear:Slider("WC", "Turn on if MinionAround >= X (Def. 4)", 4, 1, 20, 1)
MonTourMenu.LaneClear:Slider("WC2", "Turn off if MinionAround <= X (Def. 1)", 1, 1, 20, 1)
MonTourMenu.LaneClear:Info("Amumu", " ")
MonTourMenu.LaneClear:Boolean("E","Use E",true)
MonTourMenu.LaneClear:Slider("EC", "Use E if MinionAround >= X (Def. 4)", 4, 1, 20, 1)
MonTourMenu:SubMenu("JungleClear", "JungleClear")
MonTourMenu.JungleClear:Boolean("Q","Use Q",true)
MonTourMenu.JungleClear:Boolean("W","Use W",true)
MonTourMenu.JungleClear:Boolean("E","Use E",true)
MonTourMenu:SubMenu("KS", "KillSteal")
MonTourMenu.KS:Boolean("Q","KS with Q",true)
MonTourMenu.KS:Boolean("E","KS with E",true)
MonTourMenu.KS:Info("Amumu", " ")
MonTourMenu.KS:Boolean("R","KS with R",true)
MonTourMenu.KS:Info("Amumu", "Use R if X+ Enemys")
MonTourMenu.KS:Slider("RE", "will be stunned (Def. 3)", 3, 1, 5, 1)
MonTourMenu.KS:Info("Amumu", " ")
MonTourMenu.KS:Boolean("QE","KS with QE",false)
MonTourMenu.KS:Info("Amumu", " ")
MonTourMenu.KS:Boolean("QR","KS with QR",false)
MonTourMenu.KS:Info("Amumu", "Use R if X+ Enemys")
MonTourMenu.KS:Slider("RE2", "will be stunned (Def. 3)", 3, 1, 5, 1)
MonTourMenu.KS:Info("Amumu", " ")
MonTourMenu.KS:Boolean("QER","KS with QER",false)
MonTourMenu.KS:Info("Amumu", "Use R if X+ Enemys")
MonTourMenu.KS:Slider("RE3", "will be stunned (Def. 3)", 3, 1, 5, 1)
MonTourMenu.KS:Info("Amumu", " ")
MonTourMenu:SubMenu("Misc", "Misc")
MonTourMenu.Misc:Boolean("MGUN","Ultimate Notifier", true)
MonTourMenu.Misc:Boolean("MGUNDEB","TEXT DEBUG", false)
MonTourMenu.Misc:Slider("MGUNSIZE", "UN Text Size", 30, 5, 60, 1)
MonTourMenu.Misc:Slider("MGUNX", "UN X POS", 60, 0, 1600, 1)
MonTourMenu.Misc:Slider("MGUNY", "UN Y POS", 200, 0, 1055, 1)
MonTourMenu.Misc:Info("Amumu", " ")
MonTourMenu.Misc:Boolean("MGUN2","Stunable Champion Notifier", true)
MonTourMenu.Misc:Boolean("MGUNDEB2","TEXT DEBUG", false)
MonTourMenu.Misc:Slider("MGUNSIZE2", "SCN Text Size", 25, 5, 60, 1)
MonTourMenu.Misc:Slider("MGUNX2", "SCN X POS", 700, 0, 1600, 1)
MonTourMenu.Misc:Slider("MGUNY2", "SCN Y POS", 785, 0, 1055, 1)
MonTourMenu.Misc:Info("Amumu", " ")
MonTourMenu.Misc:Boolean("DMGoHP","Draw DMG over HP",true)
MonTourMenu:SubMenu("Interrupt", "Interrupt")
MonTourMenu.Interrupt:Boolean("InterruptQ", "Auto Interrupt Spells with Q", true)
MonTourMenu.Interrupt:Info("Amumu", "Auto Interrupt Spells")
MonTourMenu.Interrupt:Boolean("InterruptR", "with R if Q not Ready", true)
MonTourMenu:SubMenu("Drawings", "Drawings")
MonTourMenu.Drawings:Boolean("Q","Draw Q",true)
MonTourMenu.Drawings:Boolean("R","Draw R",true)
target = GetCurrentTarget()
unit = GetCurrentTarget()
spellData =
{
[_Q] = {dmg = function () return 30 + 50*GetCastLevel(myHero,_Q) + 0.7*GetBonusAP(myHero) end,
mana = function () return 70 + 10*GetCastLevel(myHero,_Q) end,
speed = math.huge,
delay = 250,
range = 1100,
width = 65},
[_W] = {dmg = function () for _,unit in pairs(GoS:GetEnemyHeroes()) do return 4 + 4*GetCastLevel(myHero,_W) + GetMaxHP(unit)/100*(GetCastLevel(myHero,_W)*0.5+0.5) end end,
mana = 8, --per second
range = 300},
[_E] = {dmg = function () return 50 + 25*GetCastLevel(myHero,_E) + 0.5*GetBonusAP(myHero) end,
mana = 35,
range = 350},
[_R] = {dmg = function () return 50 + 100*GetCastLevel(myHero,_R) + 0.8*GetBonusAP(myHero) end,
mana = function () return 50 + 50*GetCastLevel(myHero,_R) end,
delay = 250,
range = 550,
width = 550},
}
CHANELLING_SPELLS = {
["Caitlyn"] = {_R},
["Katarina"] = {_R},
["MasterYi"] = {_W},
["FiddleSticks"] = {_W, _R},
["Galio"] = {_R},
["Lucian"] = {_R},
["MissFortune"] = {_R},
["VelKoz"] = {_R},
["Nunu"] = {_R},
["Shen"] = {_R},
["Karthus"] = {_R},
["Malzahar"] = {_R},
["Pantheon"] = {_R},
["Warwick"] = {_R},
["Xerath"] = {_Q, _R},
["Varus"] = {_Q},
["TahmKench"] = {_R},
["TwistedFate"] = {_R},
["Janna"] = {_R}
}
local callback = nil
OnProcessSpell(function(unit, spell)
if not callback or not unit or GetObjectType(unit) ~= Obj_AI_Hero or GetTeam(unit) == GetTeam(GetMyHero()) then return end
local unitChanellingSpells = CHANELLING_SPELLS[GetObjectName(unit)]
if unitChanellingSpells then
for _, spellSlot in pairs(unitChanellingSpells) do
if spell.name == GetCastName(unit, spellSlot) then callback(unit, CHANELLING_SPELLS) end
end
end
end)
function addInterrupterCallback( callback0 )
callback = callback0
end
OnLoop(function(myHero)
QREADY = CanUseSpell(myHero,_Q) == READY
WREADY = CanUseSpell(myHero,_W) == READY
EREADY = CanUseSpell(myHero,_E) == READY
EREADYONCOOLDOWN = CanUseSpell(myHero,_E) == ONCOOLDOWN
RREADY = CanUseSpell(myHero,_R) == READY
targetPos = GetOrigin(target)
myHeroPos = GetOrigin(myHero)
AuraofDespairOff = GotBuff(myHero,"AuraofDespair") == 0
AuraofDespairOn = GotBuff(myHero,"AuraofDespair") == 1
target = GetCurrentTarget()
GLOBALULTNOTICEDEBUG()
Killsteal()
Drawings()
if IOW:Mode() == "Combo" then
Combo()
end
if IOW:Mode() == "Harass" then
Harass()
end
if IOW:Mode() == "LaneClear" then
LaneClear(minion)
JungleClear(jminion)
end
if MonTourMenu.Misc.DMGoHP:Value() then
Draws()
end
if MonTourMenu.Misc.MGUN:Value() then
GLOBALULTNOTICE()
end
if MonTourMenu.Misc.MGUN2:Value() then
GLOBALULTNOTICE2()
end
end)
function Combo()
local unit = GetCurrentTarget()
local target = GetCurrentTarget()
if target == nil or GetOrigin(target) == nil or IsImmune(target,myHero) or IsDead(target) or not IsVisible(target) or GetTeam(target) == GetTeam(myHero) then return false end
if GoS:ValidTarget(target, spellData[_Q].range+50) then
local QPred = GetPredictionForPlayer(GetOrigin(myHero), target, GetMoveSpeed(target), spellData[_Q].speed, spellData[_Q].delay, spellData[_Q].range, spellData[_Q].width, true, true)
if MonTourMenu.Combo.Q:Value() and QREADY and QPred.HitChance == 1 then
CastSkillShot(_Q,QPred.PredPos.x,QPred.PredPos.y,QPred.PredPos.z)
end
if MonTourMenu.Combo.W:Value() and WREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_W].range) >= 1 and AuraofDespairOff and GoS:IsInDistance(target, spellData[_W].range) and GoS:GetDistance(myHero, target) > 50 and GoS:GetDistance(myHero, target) <= spellData[_W].range then
CastTargetSpell(target,_W)
end
if MonTourMenu.Combo.W:Value() and WREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_W].range+50) <= 0 and AuraofDespairOn and not GoS:IsInDistance(target, spellData[_W].range) and GoS:GetDistance(myHero, target) > spellData[_W].range then
CastTargetSpell(target,_W)
end
if MonTourMenu.Combo.E:Value() and EREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_E].range) >= 1 and GoS:IsInDistance(target, spellData[_E].range) and GoS:GetDistance(myHero, target) <= spellData[_E].range-30 and GoS:GetDistance(myHero, target) > 0 then
CastTargetSpell(target,_E)
end
for _,target in pairs(GoS:GetEnemyHeroes()) do
if MonTourMenu.Combo.R:Value() and RREADY and GoS:IsInDistance(target, spellData[_R].range) and GoS:EnemiesAround(GetOrigin(myHero), spellData[_R].range-10) >= MonTourMenu.Combo.RE:Value() then
CastTargetSpell(target,_R)
end
end
end
end
function Harass()
local unit = GetCurrentTarget()
local target = GetCurrentTarget()
if target == nil or GetOrigin(target) == nil or IsImmune(target,myHero) or IsDead(target) or not IsVisible(target) or GetTeam(target) == GetTeam(myHero) then return false end
if GoS:ValidTarget(target, spellData[_Q].range+50) then
local QPred = GetPredictionForPlayer(GetOrigin(myHero), target, GetMoveSpeed(target), spellData[_Q].speed, spellData[_Q].delay, spellData[_Q].range, spellData[_Q].width, true, true)
if MonTourMenu.Harass.Q:Value() and QREADY and QPred.HitChance == 1 then
CastSkillShot(_Q,QPred.PredPos.x,QPred.PredPos.y,QPred.PredPos.z)
end
if MonTourMenu.Harass.W:Value() and WREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_W].range) >= 1 and AuraofDespairOff and GoS:IsInDistance(target, spellData[_W].range) and GoS:GetDistance(myHero, target) > 50 and GoS:GetDistance(myHero, target) <= spellData[_W].range then
CastTargetSpell(target,_W)
end
if MonTourMenu.Harass.W:Value() and WREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_W].range+50) <= 0 and AuraofDespairOn and not GoS:IsInDistance(target, spellData[_W].range) and GoS:GetDistance(myHero, target) > spellData[_W].range then
CastTargetSpell(target,_W)
end
if MonTourMenu.Harass.E:Value() and EREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_E].range) >= 1 and GoS:IsInDistance(target, spellData[_E].range) and GoS:GetDistance(myHero, target) <= spellData[_E].range-30 and GoS:GetDistance(myHero, target) > 0 then
CastTargetSpell(target,_E)
end
for _,target in pairs(GoS:GetEnemyHeroes()) do
if MonTourMenu.Harass.R:Value() and RREADY and GoS:IsInDistance(target, spellData[_R].range) and GoS:EnemiesAround(GetOrigin(myHero), spellData[_R].range-10) >= MonTourMenu.Harass.RE:Value() then
CastTargetSpell(target,_R)
end
end
end
end
function Drawings()
if MonTourMenu.Drawings.Q:Value() and GetCastLevel(myHero,_Q) >=1 then DrawCircle(GetOrigin(myHero).x, GetOrigin(myHero).y, GetOrigin(myHero).z,GetCastRange(myHero,_Q),0.6,50,0xff0000ff) end
if MonTourMenu.Drawings.R:Value() and GetCastLevel(myHero,_R) >=1 then DrawCircle(GetOrigin(myHero).x, GetOrigin(myHero).y, GetOrigin(myHero).z,GetCastRange(myHero,_R),0.6,50,0xff0000ff) end
end
function Draws()
local rangeofdraws = 20000
for _,unit in pairs(GoS:GetEnemyHeroes()) do
--Ready Q + W + E + R
if GoS:ValidTarget(unit,rangeofdraws) and QREADY and EREADY and RREADY then
DrawDmgOverHpBar(unit,GetCurrentHP(unit) + GetMagicShield(unit) + GetDmgShield(unit),0,GoS:CalcDamage(myHero, unit, 0, spellData[_Q].dmg() + spellData[_E].dmg() + spellData[_R].dmg()),0xffffffff)
--Ready Q + (W) + E + (R)
elseif GoS:ValidTarget(unit,rangeofdraws) and QREADY and EREADY and not RREADY then
DrawDmgOverHpBar(unit,GetCurrentHP(unit) + GetMagicShield(unit) + GetDmgShield(unit),0,GoS:CalcDamage(myHero, unit, 0, spellData[_Q].dmg() + spellData[_E].dmg()),0xffffffff)
--Ready Q + (W) + (E) + R
elseif GoS:ValidTarget(unit,rangeofdraws) and QREADY and not EREADY and RREADY then
DrawDmgOverHpBar(unit,GetCurrentHP(unit) + GetMagicShield(unit) + GetDmgShield(unit),0,GoS:CalcDamage(myHero, unit, 0, spellData[_Q].dmg() + spellData[_R].dmg()),0xffffffff)
--Ready Q + (W) + (E) + (R)
elseif GoS:ValidTarget(unit,rangeofdraws) and QREADY and not EREADY and not RREADY then
DrawDmgOverHpBar(unit,GetCurrentHP(unit) + GetMagicShield(unit) + GetDmgShield(unit),0,GoS:CalcDamage(myHero, unit, 0, spellData[_Q].dmg()),0xffffffff)
--Ready (Q) + (W) + E + R
elseif GoS:ValidTarget(unit,rangeofdraws) and not QREADY and EREADY and RREADY then
DrawDmgOverHpBar(unit,GetCurrentHP(unit) + GetMagicShield(unit) + GetDmgShield(unit),0,GoS:CalcDamage(myHero, unit, 0, spellData[_E].dmg() + spellData[_R].dmg()),0xffffffff)
--Ready (Q) + (W) + E + (R)
elseif GoS:ValidTarget(unit,rangeofdraws) and not QREADY and EREADY and not RREADY then
DrawDmgOverHpBar(unit,GetCurrentHP(unit) + GetMagicShield(unit) + GetDmgShield(unit),0,GoS:CalcDamage(myHero, unit, 0, spellData[_E].dmg()),0xffffffff)
--Ready (Q) + (W) + (E) + R
elseif GoS:ValidTarget(unit,rangeofdraws) and not QREADY and not EREADY and RREADY then
DrawDmgOverHpBar(unit,GetCurrentHP(unit) + GetMagicShield(unit) + GetDmgShield(unit),0,GoS:CalcDamage(myHero, unit, 0, spellData[_R].dmg()),0xffffffff)
end
end
end
function LaneClear(minion)
for i,minion in pairs(GoS:GetAllMinions(MINION_ENEMY)) do
if GoS:ValidTarget(minion, spellData[_W].range+50) then
if MonTourMenu.LaneClear.W:Value() and WREADY and MinionAround(GetOrigin(myHero), spellData[_W].range) >= MonTourMenu.LaneClear.WC:Value() and AuraofDespairOff and GoS:IsInDistance(minion, spellData[_W].range) and GoS:GetDistance(myHero, minion) > 50 and GoS:GetDistance(myHero, minion) <= spellData[_W].range then
CastTargetSpell(minion,_W)
elseif MonTourMenu.LaneClear.W:Value() and WREADY and MinionAround(GetOrigin(myHero), spellData[_W].range) <= MonTourMenu.LaneClear.WC2:Value() and AuraofDespairOn and not GoS:IsInDistance(minion, spellData[_W].range) and GoS:GetDistance(myHero, minion) > spellData[_W].range then
CastTargetSpell(minion,_W)
elseif MonTourMenu.LaneClear.E:Value() and EREADY and MinionAround(GetOrigin(myHero), spellData[_E].range) >= MonTourMenu.LaneClear.EC:Value() and GoS:IsInDistance(minion, spellData[_E].range) and GoS:GetDistance(myHero, minion) >= 10 and GoS:GetDistance(myHero, minion) <= spellData[_E].range then
CastTargetSpell(minion,_E)
end
end
end
end
function JungleClear(jminion)
for i,jminion in pairs(GoS:GetAllMinions(MINION_JUNGLE)) do
jminionpos = GetOrigin(jminion)
if GoS:ValidTarget(jminion, spellData[_Q].range+50) then
if MonTourMenu.JungleClear.Q:Value() and QREADY and GoS:IsInDistance(jminion, spellData[_Q].range) and GoS:GetDistance(myHero, jminion) > spellData[_Q].range-spellData[_W].range then --GetRange(myHero)
CastSkillShot(_Q,jminionpos.x,jminionpos.y,jminionpos.z)
end
if MonTourMenu.JungleClear.W:Value() and WREADY and JMinionAround(GetOrigin(myHero), spellData[_W].range) >= 1 and AuraofDespairOff and GoS:IsInDistance(jminion, spellData[_W].range) and GoS:GetDistance(myHero, jminion) > 50 and GoS:GetDistance(myHero, jminion) <= spellData[_W].range then
CastTargetSpell(jminion,_W)
elseif MonTourMenu.JungleClear.W:Value() and WREADY and JMinionAround(GetOrigin(myHero), spellData[_W].range) <= 0 and AuraofDespairOn and not GoS:IsInDistance(jminion, spellData[_W].range) and GoS:GetDistance(myHero, jminion) > spellData[_W].range then
CastTargetSpell(jminion,_W)
elseif MonTourMenu.JungleClear.E:Value() and EREADY and JMinionAround(GetOrigin(myHero), spellData[_E].range) >= 1 and GoS:IsInDistance(jminion, spellData[_E].range) and GoS:GetDistance(myHero, jminion) >= 10 and GoS:GetDistance(myHero, jminion) <= spellData[_E].range then
CastTargetSpell(jminion,_E)
end
end
end
end
function Killsteal()
for i,enemy in pairs(GoS:GetEnemyHeroes()) do
local enemyhp = GetCurrentHP(enemy) + GetHPRegen(enemy) + GetMagicShield(enemy) + GetDmgShield(enemy)
local QDmg = spellData[_Q].dmg() or 0
-- local WDmg = WREADY and spellData[_W].dmg() or 0
local EDmg = spellData[_E].dmg() or 0
local RDmg = spellData[_R].dmg() or 0
if MonTourMenu.KS.E:Value() and GoS:ValidTarget(enemy, spellData[_E].range) and enemyhp < GoS:CalcDamage(myHero, enemy, 0, EDmg) then
if EREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_E].range) >= 1 and GoS:IsInDistance(enemy, spellData[_E].range) and GoS:GetDistance(myHero, enemy) <= spellData[_E].range-30 and GoS:GetDistance(myHero, enemy) > 0 then
CastTargetSpell(enemy,_E)
end
elseif MonTourMenu.KS.Q:Value() and GoS:ValidTarget(enemy, spellData[_Q].range) and enemyhp < GoS:CalcDamage(myHero, enemy, 0, QDmg) then
local QPred = GetPredictionForPlayer(GetOrigin(myHero), enemy, GetMoveSpeed(enemy), spellData[_Q].speed, spellData[_Q].delay, spellData[_Q].range, spellData[_Q].width, true, true)
if QREADY and QPred.HitChance == 1 then
CastSkillShot(_Q,QPred.PredPos.x,QPred.PredPos.y,QPred.PredPos.z)
end
elseif MonTourMenu.KS.R:Value() and GoS:ValidTarget(enemy, spellData[_R].range) and enemyhp < GoS:CalcDamage(myHero, enemy, 0, RDmg) then
if RREADY and GoS:IsInDistance(enemy, spellData[_R].range) and GoS:EnemiesAround(GetOrigin(myHero), spellData[_R].range-10) >= MonTourMenu.KS.RE:Value() then
CastTargetSpell(enemy,_R)
end
elseif MonTourMenu.KS.QE:Value() and GoS:ValidTarget(enemy, spellData[_Q].range) and enemyhp < GoS:CalcDamage(myHero, enemy, 0, EDmg + QDmg) then
local QPred = GetPredictionForPlayer(GetOrigin(myHero), enemy, GetMoveSpeed(enemy), spellData[_Q].speed, spellData[_Q].delay, spellData[_Q].range, spellData[_Q].width, true, true)
if QREADY and QPred.HitChance == 1 then
CastSkillShot(_Q,QPred.PredPos.x,QPred.PredPos.y,QPred.PredPos.z)
end
if WREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_W].range) >= 1 and AuraofDespairOff and GoS:IsInDistance(enemy, spellData[_W].range) and GoS:GetDistance(myHero, enemy) > 50 and GoS:GetDistance(myHero, enemy) <= spellData[_W].range then
CastTargetSpell(enemy,_W)
end
if WREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_W].range+50) <= 0 and AuraofDespairOn and not GoS:IsInDistance(enemy, spellData[_W].range) and GoS:GetDistance(myHero, enemy) > spellData[_W].range then
CastTargetSpell(enemy,_W)
end
if EREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_E].range) >= 1 and GoS:IsInDistance(enemy, spellData[_E].range) and GoS:GetDistance(myHero, enemy) <= spellData[_E].range-30 and GoS:GetDistance(myHero, enemy) > 0 then
CastTargetSpell(enemy,_E)
end
elseif MonTourMenu.KS.QR:Value() and GoS:ValidTarget(enemy, spellData[_Q].range) and enemyhp < GoS:CalcDamage(myHero, enemy, 0, RDmg + QDmg) then
local QPred = GetPredictionForPlayer(GetOrigin(myHero), enemy, GetMoveSpeed(enemy), spellData[_Q].speed, spellData[_Q].delay, spellData[_Q].range, spellData[_Q].width, true, true)
if QREADY and QPred.HitChance == 1 then
CastSkillShot(_Q,QPred.PredPos.x,QPred.PredPos.y,QPred.PredPos.z)
end
if WREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_W].range) >= 1 and AuraofDespairOff and GoS:IsInDistance(enemy, spellData[_W].range) and GoS:GetDistance(myHero, enemy) > 50 and GoS:GetDistance(myHero, enemy) <= spellData[_W].range then
CastTargetSpell(enemy,_W)
end
if WREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_W].range+50) <= 0 and AuraofDespairOn and not GoS:IsInDistance(enemy, spellData[_W].range) and GoS:GetDistance(myHero, enemy) > spellData[_W].range then
CastTargetSpell(enemy,_W)
end
if RREADY and GoS:IsInDistance(enemy, spellData[_R].range) and GoS:EnemiesAround(GetOrigin(myHero), spellData[_R].range-10) >= MonTourMenu.KS.RE2:Value() then
CastTargetSpell(enemy,_R)
end
elseif MonTourMenu.KS.QER:Value() and GoS:ValidTarget(enemy, spellData[_Q].range) and enemyhp < GoS:CalcDamage(myHero, enemy, 0, QDmg + EDmg + RDmg) then
local QPred = GetPredictionForPlayer(GetOrigin(myHero), enemy, GetMoveSpeed(enemy), spellData[_Q].speed, spellData[_Q].delay, spellData[_Q].range, spellData[_Q].width, true, true)
if MonTourMenu.Harass.Q:Value() and QREADY and QPred.HitChance == 1 then
CastSkillShot(_Q,QPred.PredPos.x,QPred.PredPos.y,QPred.PredPos.z)
end
if WREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_W].range) >= 1 and AuraofDespairOff and GoS:IsInDistance(enemy, spellData[_W].range) and GoS:GetDistance(myHero, enemy) > 50 and GoS:GetDistance(myHero, enemy) <= spellData[_W].range then
CastTargetSpell(enemy,_W)
end
if WREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_W].range+50) <= 0 and AuraofDespairOn and not GoS:IsInDistance(enemy, spellData[_W].range) and GoS:GetDistance(myHero, enemy) > spellData[_W].range then
CastTargetSpell(enemy,_W)
end
if EREADY and GoS:EnemiesAround(GetOrigin(myHero), spellData[_E].range) >= 1 and GoS:IsInDistance(enemy, spellData[_E].range) and GoS:GetDistance(myHero, enemy) <= spellData[_E].range-30 and GoS:GetDistance(myHero, enemy) > 0 then
CastTargetSpell(enemy,_E)
end
if RREADY and GoS:IsInDistance(enemy, spellData[_R].range) and GoS:EnemiesAround(GetOrigin(myHero), spellData[_R].range-10) >= MonTourMenu.KS.RE3:Value() then
CastTargetSpell(enemy,_R)
end
end
end
end
function GLOBALULTNOTICE()
if not RREADY then return end
info1 = ""
if RREADY then
for _,unit in pairs(GoS:GetEnemyHeroes()) do
if IsObjectAlive(unit) then
realdmg = GoS:CalcDamage(myHero, unit, spellData[_R].dmg())
hp = GetCurrentHP(unit) + GetMagicShield(unit) + GetDmgShield(unit)
if realdmg > hp then
info1 = info1..GetObjectName(unit)
if not GoS:IsInDistance(unit, spellData[_R].range) then
info1 = info1.." not in Range but"
end
info1 = info1.." killable\n"
end
end
end
end
DrawText(info1,MonTourMenu.Misc.MGUNSIZE:Value(),MonTourMenu.Misc.MGUNX:Value(),MonTourMenu.Misc.MGUNY:Value(),0xffff0000)
end
function GLOBALULTNOTICE2()
if not RREADY then return end
info = ""
if RREADY then
for _,unit in pairs(GoS:GetEnemyHeroes()) do
if IsObjectAlive(unit) then
if GoS:EnemiesAround(GetOrigin(myHero), spellData[_R].range) == 1 then
info = "1 Enemy will be stunned"
elseif GoS:EnemiesAround(GetOrigin(myHero), spellData[_R].range) == 2 then
info = "2 Enemys will be stunned"
elseif GoS:EnemiesAround(GetOrigin(myHero), spellData[_R].range) == 3 then
info = "3 Enemys will be stunned"
elseif GoS:EnemiesAround(GetOrigin(myHero), spellData[_R].range) == 4 then
info = "4 Enemys will be stunned"
elseif GoS:EnemiesAround(GetOrigin(myHero), spellData[_R].range) >= 5 then
info = "5 Enemys will be stunned"
end
-- info = info.." will be stunned \n"
end
end
end
DrawText(info,MonTourMenu.Misc.MGUNSIZE2:Value(),MonTourMenu.Misc.MGUNX2:Value(),MonTourMenu.Misc.MGUNY2:Value(),0xffff0000)
end
function GLOBALULTNOTICEDEBUG()
if MonTourMenu.Misc.MGUNDEB:Value() then
DrawText("I am in Range but not killable - TESTMODE ON",MonTourMenu.Misc.MGUNSIZE:Value(),MonTourMenu.Misc.MGUNX:Value(),MonTourMenu.Misc.MGUNY:Value(),0xffff0000)
end
if MonTourMenu.Misc.MGUNDEB2:Value() then
DrawText("0 Enemys will be stunned - TESTMODE ON",MonTourMenu.Misc.MGUNSIZE2:Value(),MonTourMenu.Misc.MGUNX2:Value(),MonTourMenu.Misc.MGUNY2:Value(),0xffff0000)
end
end
function MinionAround(pos, range)
local c = 0
if pos == nil then return 0 end
for k,v in pairs(GoS:GetAllMinions(MINION_ENEMY)) do
if v and GoS:ValidTarget(v) and GoS:GetDistanceSqr(pos,GetOrigin(v)) < range*range then
c = c + 1
end
end
return c
end
function JMinionAround(pos, range)
local c = 0
if pos == nil then return 0 end
for k,v in pairs(GoS:GetAllMinions(MINION_JUNGLE)) do
if v and GoS:ValidTarget(v) and GoS:GetDistanceSqr(pos,GetOrigin(v)) < range*range then
c = c + 1
end
end
return c
end
addInterrupterCallback(function(unit, spellType)
local unit = GetCurrentTarget()
for _,unit in pairs(GoS:GetEnemyHeroes()) do
if spellType == CHANELLING_SPELLS and MonTourMenu.Interrupt.InterruptQ:Value() then
local QPred = GetPredictionForPlayer(GetOrigin(myHero), unit, GetMoveSpeed(unit), spellData[_Q].speed, spellData[_Q].delay, spellData[_Q].range, spellData[_Q].width, true, true)
if CanUseSpell(myHero,_Q) == READY and QPred.HitChance == 1 then
CastSkillShot(_Q,QPred.PredPos.x,QPred.PredPos.y,QPred.PredPos.z)
end
elseif spellType == CHANELLING_SPELLS and MonTourMenu.Interrupt.InterruptR:Value() and CanUseSpell(myHero,_Q) ~= READY then
if CanUseSpell(myHero,_R) == READY and GoS:IsInDistance(unit, spellData[_R].range) and GoS:EnemiesAround(GetOrigin(myHero), spellData[_R].range-10) >= 1 then
CastTargetSpell(unit,_R)
end
end
end
end)