if GetObjectName(myHero) ~= "Amumu" then return end --MonTour Amumu:V1.0.0.4 - updated GoS:myHeroPos() to GetOrigin(myHero) PrintChat(string.format("<font color='#80F5F5'>MonTour Amumu:</font> <font color='#EFF0F0'>loaded by MarCiii!</font>")) PrintChat(string.format("<font color='#80F5F5'>Version:</font> <font color='#EFF0F0'>1.0.0.4</font>")) 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)