Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if myHero.charName ~= 'Veigar' then return end
- assert(load(Base64Decode("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"), nil, "bt", _ENV))() ScriptStatus("QDGELCLFLDH")
- --changelog ver 1.1 added mana manager and auto E gapclosers by manciuzz
- require "SxOrbWalk"
- require "VPrediction"
- local Q = {range = 875, delay = 0.25, speed = 1200, width = 75,IsReady = function() return myHero:CanUseSpell(_Q) == READY end}
- local W = {range = 900, delay = 1.25, speed = 900, width = 110,IsReady = function() return myHero:CanUseSpell(_W) == READY end}
- local E = {range = 700, delay = 0.8, speed = 730, width = 375,IsReady = function() return myHero:CanUseSpell(_E) == READY end}
- local R = {range = 700, IsReady = function() return myHero:CanUseSpell(_R) == READY end}
- local ignite = nil
- local iDmg = 0
- local target = nil
- local ts
- local ts = TargetSelector(TARGET_LESS_CAST_PRIORITY, 1000, DAMAGE_PHYSICAL, true)
- local Killable = false
- local informationTable = {}
- local spellExpired = true
- function GetCustomTarget()
- ts:update()
- if _G.AutoCarry and ValidTarget(_G.AutoCarry.Crosshair:GetTarget()) then return _G.AutoCarry.Crosshair:GetTarget() end
- if not _G.Reborn_Loaded then return ts.target end
- return ts.target
- end
- function OnLoad()
- PrintChat("<font color=\"#00FF00\">Veigar by Fukdapolice.</font>")
- IgniteCheck()
- FLoadLib()
- VP = VPrediction(true)
- Minions = minionManager(MINION_ENEMY, Q.range, myHero, MINION_SORT_MAXHEALTH_ASC)
- end
- function OnTick()
- target = GetCustomTarget()
- Checks()
- end
- function OnDraw()
- if HazMenu.Draw.drawq then
- DrawCircle(myHero.x,myHero.y,myHero.z,875,0xFFFF0000)
- end
- if HazMenu.Draw.draww then
- DrawCircle(myHero.x,myHero.y,myHero.z,900,0xFFFF0000)
- end
- if HazMenu.Draw.drawe then
- DrawCircle(myHero.x,myHero.y,myHero.z,700,0xFFFF0000)
- end
- if HazMenu.Draw.drawr then
- DrawCircle(myHero.x,myHero.y,myHero.z,700,0xFFFF0000)
- end
- end
- function Checks()
- IREADY = (ignite ~= nil and myHero:CanUseSpell(ignite) == READY)
- QREADY = (myHero:CanUseSpell(_Q) == READY)
- WREADY = (myHero:CanUseSpell(_W) == READY)
- EREADY = (myHero:CanUseSpell(_E) == READY)
- RREADY = (myHero:CanUseSpell(_R) == READY)
- SpellExpired()
- if ValidTarget(target) then
- if HazMenu.Misc.KSQ then KS(target) end
- if HazMenu.Misc.KSR then KS(target) end
- if HazMenu.Misc.Ignite then AutoIgnite(target) end
- end
- if HazMenu.Farm.Mana then end
- if HazMenu.Harass.Mana then end
- if HazMenu.combokey then
- Combo()
- end
- if HazMenu.harasskey then
- Poke()
- end
- if HazMenu.farmkey then
- Farm()
- end
- end
- function IgniteCheck()
- if myHero:GetSpellData(SUMMONER_1).name:find("summonerdot") then
- ignite = SUMMONER_1
- elseif myHero:GetSpellData(SUMMONER_2).name:find("summonerdot") then
- ignite = SUMMONER_2
- end
- end
- function FLoadLib()
- FMenu()
- end
- function FMenu()
- HazMenu = scriptConfig("Veigar", "veigar")
- HazMenu:addParam("combokey", "Combo key(Space)", SCRIPT_PARAM_ONKEYDOWN, false, 32)
- HazMenu:addParam("harasskey", "Harass key(C)", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("C"))
- HazMenu:addParam("farmkey", "Farm key(X)", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("X"))
- HazMenu:addTS(ts)
- HazMenu:addSubMenu("Combo", "Combo")
- HazMenu.Combo:addParam("comboQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Combo:addParam("comboW", "Use W", SCRIPT_PARAM_ONOFF, false)
- HazMenu.Combo:addParam("comboE", "Use E", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Combo:addParam("comboR", "Use R", SCRIPT_PARAM_ONOFF, true)
- HazMenu:addSubMenu("Harass", "Harass")
- HazMenu.Harass:addParam("harassQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Harass:addParam("harassW", "Use W", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Harass:addParam("Mana", "Mana Manager %", SCRIPT_PARAM_SLICE, 50, 1, 100, 0)
- HazMenu:addSubMenu("Farm", "Farm")
- HazMenu.Farm:addParam("Mana", "Mana Manager %", SCRIPT_PARAM_SLICE, 50, 1, 100, 0)
- HazMenu:addSubMenu("Misc", "Misc")
- HazMenu.Misc:addParam("KSQ", "KillSteal with Q", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Misc:addParam("KSR", "KillSteal with R", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Misc:addParam("Ignite", "Use Auto Ignite", SCRIPT_PARAM_ONOFF, true)
- HazMenu:addSubMenu("Draw","Draw")
- HazMenu.Draw:addParam("drawq", "Draw Q", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Draw:addParam("draww", "Draw W", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Draw:addParam("drawe", "Draw E", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Draw:addParam("drawr", "Draw R", SCRIPT_PARAM_ONOFF, true)
- HazMenu:addParam("AGP", "Auto E gapclosers", SCRIPT_PARAM_ONOFF, true)
- if _G.Reborn_Loaded then
- DelayAction(function()
- PrintChat("<font color = \"#FFFFFF\">[Veigar] </font><font color = \"#FF0000\">SAC Status:</font> <font color = \"#FFFFFF\">Successfully integrated.</font> </font>")
- HazMenu:addParam("SACON","[Veigar] SAC:R support is active.", 5, "")
- isSAC = true
- end, 10)
- elseif not _G.Reborn_Loaded then
- PrintChat("<font color = \"#FFFFFF\">[Veigar] </font><font color = \"#FF0000\">Orbwalker not found:</font> <font color = \"#FFFFFF\">SxOrbWalk integrated.</font> </font>")
- HazMenu:addSubMenu("Orbwalker", "SxOrb")
- SxOrb:LoadToMenu(HazMenu.SxOrb)
- isSX = true
- end
- HazMenu:permaShow("combokey")
- HazMenu:permaShow("harasskey")
- HazMenu:permaShow("farmkey")
- end
- function KS(enemy)
- if Q.IsReady() and getDmg("Q", enemy, myHero) > enemy.health then
- if GetDistance(enemy) <= Q.range and HazMenu.Misc.KSQ then
- local CastPosition, HitChance, CastPos = VP:GetLineCastPosition(target, Q.delay, Q.width, Q.range, Q.speed, myHero, false)
- if HitChance >= 2 and GetDistance(CastPosition) <= Q.range and Q.IsReady() then
- CastSpell(_Q, CastPosition.x, CastPosition.z)
- end
- end
- end
- if R.IsReady() and getDmg("R", enemy, myHero) > enemy.health then
- if GetDistance(enemy) <= R.range and HazMenu.Misc.KSR then
- CastSpell(_R, target)
- end
- end
- end
- function AutoIgnite(enemy)
- iDmg = ((IREADY and getDmg("IGNITE", enemy, myHero)) or 0)
- if enemy.health <= iDmg and GetDistance(enemy) <= 600 and ignite ~= nil
- then
- if IREADY then CastSpell(ignite, enemy) end
- end
- end
- function Combo()
- if ValidTarget(target) then
- if E.IsReady and HazMenu.Combo.comboE then
- local AOECastPosition, MainTargetHitChance, nTargets = VP:GetCircularAOECastPosition(target, E.delay, E.width, E.range, E.speed, myHero, false)
- if MainTargetHitChance >= 2 and GetDistance(AOECastPosition) <= E.range and E.IsReady() then
- CastSpell(_E, AOECastPosition.x, AOECastPosition.z)
- end
- end
- if Q.IsReady() and HazMenu.Combo.comboQ then
- local CastPosition, HitChance, CastPos = VP:GetLineCastPosition(target, Q.delay, Q.width, Q.range, Q.speed, myHero, false)
- if HitChance >= 2 and GetDistance(CastPosition) <= Q.range and Q.IsReady() then
- CastSpell(_Q, CastPosition.x, CastPosition.z)
- end
- end
- if W.IsReady() and HazMenu.Combo.comboW then
- local AOECastPosition, MainTargetHitChance, nTargets = VP:GetCircularAOECastPosition(target, W.delay, W.width, W.range, W.speed, myHero, false)
- if MainTargetHitChance >= 2 and GetDistance(AOECastPosition) <= W.range and W.IsReady() then
- CastSpell(_W, AOECastPosition.x, AOECastPosition.z)
- end
- end
- if R.IsReady() and HazMenu.Combo.comboR then
- if GetDistance(target) <= R.range then
- CastSpell(_R, target)
- end
- end
- end
- end
- function Poke()
- if ValidTarget(target) and myHero.mana / myHero.maxMana > HazMenu.Harass.Mana /100 then
- if Q.IsReady() and HazMenu.Harass.harassQ then
- local CastPosition, HitChance, CastPos = VP:GetLineCastPosition(target, Q.delay, Q.width, Q.range, Q.speed, myHero, false)
- if HitChance >= 2 and GetDistance(CastPosition) <= Q.range and Q.IsReady() then
- CastSpell(_Q, CastPosition.x, CastPosition.z)
- end
- end
- if W.IsReady() and HazMenu.Harass.harassW then
- local AOECastPosition, MainTargetHitChance, nTargets = VP:GetCircularAOECastPosition(target, W.delay, W.width, W.range, W.speed, myHero, false)
- if MainTargetHitChance >= 2 and GetDistance(AOECastPosition) <= W.range and W.IsReady() then
- CastSpell(_W, AOECastPosition.x, AOECastPosition.z)
- end
- end
- end
- end
- function Farm()
- Minions:update()
- if myHero.mana / myHero.maxMana > HazMenu.Farm.Mana /100 then
- for i, Minion in pairs(Minions.objects) do
- if Q.IsReady() and getDmg("Q", Minion, myHero) > Minion.health then
- CastSpell(_Q, Minion.x,Minion.z)
- end
- end
- end
- end
- function OnProcessSpell(unit, spell)
- if HazMenu.AGP and E.IsReady() then
- local jarvanAddition = unit.charName == "JarvanIV" and unit:CanUseSpell(_Q) ~= READY and _R or _Q
- local isAGapcloserUnit = {
- ['Aatrox'] = {true, spell = _Q, range = 1000, projSpeed = 1200, },
- ['Akali'] = {true, spell = _R, range = 800, projSpeed = 2200, },
- ['Alistar'] = {true, spell = _W, range = 650, projSpeed = 2000, },
- ['Diana'] = {true, spell = _R, range = 825, projSpeed = 2000, },
- ['Gragas'] = {true, spell = _E, range = 600, projSpeed = 2000, },
- ['Hecarim'] = {true, spell = _R, range = 1000, projSpeed = 1200, },
- ['Irelia'] = {true, spell = _Q, range = 650, projSpeed = 2200, },
- ['JarvanIV'] = {true, spell = jarvanAddition, range = 770, projSpeed = 2000, },
- ['Jax'] = {true, spell = _Q, range = 700, projSpeed = 2000, },
- ['Jayce'] = {true, spell = 'JayceToTheSkies', range = 600, projSpeed = 2000, },
- ['Khazix'] = {true, spell = _E, range = 900, projSpeed = 2000, },
- ['Leblanc'] = {true, spell = _W, range = 600, projSpeed = 2000, },
- ['LeeSin'] = {true, spell = 'blindmonkqtwo', range = 1300, projSpeed = 1800, },
- ['Leona'] = {true, spell = _E, range = 900, projSpeed = 2000, },
- ['Malphite'] = {true, spell = _R, range = 1000, projSpeed = 1500 + unit.ms},
- ['Maokai'] = {true, spell = _Q, range = 600, projSpeed = 1200, },
- ['MonkeyKing'] = {true, spell = _E, range = 650, projSpeed = 2200, },
- ['Pantheon'] = {true, spell = _W, range = 600, projSpeed = 2000, },
- ['Poppy'] = {true, spell = _E, range = 525, projSpeed = 2000, },
- ['Renekton'] = {true, spell = _E, range = 450, projSpeed = 2000, },
- ['Sejuani'] = {true, spell = _Q, range = 650, projSpeed = 2000, },
- ['Shen'] = {true, spell = _E, range = 575, projSpeed = 2000, },
- ['Tristana'] = {true, spell = _W, range = 900, projSpeed = 2000, },
- ['Tryndamere'] = {true, spell = 'Slash', range = 650, projSpeed = 1450, },
- ['XinZhao'] = {true, spell = _E, range = 650, projSpeed = 2000, },
- }
- if unit.type == myHero.type and unit.team ~= myHero.team and isAGapcloserUnit[unit.charName] and GetDistance(unit) < 2000 and spell ~= nil then
- if spell.name == (type(isAGapcloserUnit[unit.charName].spell) == 'number' and unit:GetSpellData(isAGapcloserUnit[unit.charName].spell).name or isAGapcloserUnit[unit.charName].spell) then
- if spell.target ~= nil and spell.target.isMe or isAGapcloserUnit[unit.charName].spell == 'blindmonkqtwo' then
- if E.IsReady() then
- E.target = unit
- CastSpell(_E, unit.x, unit.z)
- end
- else
- spellExpired = false
- informationTable = {
- spellSource = unit,
- spellCastedTick = GetTickCount(),
- spellStartPos = Point(spell.startPos.x, spell.startPos.z),
- spellEndPos = Point(spell.endPos.x, spell.endPos.z),
- spellRange = isAGapcloserUnit[unit.charName].range,
- spellSpeed = isAGapcloserUnit[unit.charName].projSpeed
- }
- end
- end
- end
- end
- end
- function SpellExpired()
- if ValidTarget(target) then
- if HazMenu.AGP and not spellExpired and (GetTickCount() - informationTable.spellCastedTick) <= (informationTable.spellRange / informationTable.spellSpeed) * 1000 then
- local spellDirection = (informationTable.spellEndPos - informationTable.spellStartPos):normalized()
- local spellStartPosition = informationTable.spellStartPos + spellDirection
- local spellEndPosition = informationTable.spellStartPos + spellDirection * informationTable.spellRange
- local heroPosition = Point(myHero.x, myHero.z)
- local lineSegment = LineSegment(Point(spellStartPosition.x, spellStartPosition.y), Point(spellEndPosition.x, spellEndPosition.y))
- local lineSegment = LineSegment(Point(spellStartPosition.x, spellStartPosition.y), Point(spellEndPosition.x, spellEndPosition.y))
- if lineSegment:distance(heroPosition) <= 400 and E.IsReady() then
- CastSpell(_E, target.x, target.z)
- end
- else
- spellExpired = true
- informationTable = {}
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment