FukDaPolice

FukDaVeigar 1.11

Apr 15th, 2015
4,970
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 15.09 KB | None | 0 0
  1. if myHero.charName ~= 'Veigar' then return end
  2.  
  3. assert(load(Base64Decode("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"), nil, "bt", _ENV))() ScriptStatus("QDGELCLFLDH")
  4.  
  5. --changelog ver 1.1 added mana manager and auto E gapclosers by manciuzz
  6.  
  7. require "SxOrbWalk"
  8. require "VPrediction"
  9.  
  10. local Q = {range = 875, delay = 0.25, speed = 1200, width = 75,IsReady = function() return myHero:CanUseSpell(_Q) == READY end}
  11. local W = {range = 900, delay = 1.25, speed = 900, width = 110,IsReady = function() return myHero:CanUseSpell(_W) == READY end}
  12. local E = {range = 700, delay = 0.8, speed = 730, width = 375,IsReady = function() return myHero:CanUseSpell(_E) == READY end}
  13. local R = {range = 700, IsReady = function() return myHero:CanUseSpell(_R) == READY end}
  14. local ignite = nil
  15. local iDmg = 0
  16. local target = nil
  17. local ts
  18. local ts = TargetSelector(TARGET_LESS_CAST_PRIORITY, 1000, DAMAGE_PHYSICAL, true)
  19. local Killable = false
  20. local informationTable = {}
  21. local spellExpired = true
  22.  
  23.  
  24. function GetCustomTarget()
  25.     ts:update()
  26.     if _G.AutoCarry and ValidTarget(_G.AutoCarry.Crosshair:GetTarget()) then return _G.AutoCarry.Crosshair:GetTarget() end
  27.     if not _G.Reborn_Loaded then return ts.target end
  28.     return ts.target
  29. end
  30.  
  31. function OnLoad()
  32.     PrintChat("<font color=\"#00FF00\">Veigar by Fukdapolice.</font>")
  33.    
  34.     IgniteCheck()
  35.     FLoadLib()
  36.     VP = VPrediction(true)  
  37.  
  38.     Minions = minionManager(MINION_ENEMY, Q.range, myHero, MINION_SORT_MAXHEALTH_ASC)
  39. end
  40.  
  41. function OnTick()
  42.     target = GetCustomTarget()
  43.     Checks()
  44.    
  45.    
  46.    
  47. end
  48.  
  49. function OnDraw()
  50.     if HazMenu.Draw.drawq then
  51.         DrawCircle(myHero.x,myHero.y,myHero.z,875,0xFFFF0000)
  52.     end
  53.     if HazMenu.Draw.draww then
  54.         DrawCircle(myHero.x,myHero.y,myHero.z,900,0xFFFF0000)
  55.     end
  56.        
  57.     if HazMenu.Draw.drawe then
  58.         DrawCircle(myHero.x,myHero.y,myHero.z,700,0xFFFF0000)
  59.     end
  60.     if HazMenu.Draw.drawr then
  61.         DrawCircle(myHero.x,myHero.y,myHero.z,700,0xFFFF0000)
  62.     end
  63. end
  64.  
  65.  
  66. function Checks()
  67.     IREADY = (ignite ~= nil and myHero:CanUseSpell(ignite) == READY)
  68.     QREADY = (myHero:CanUseSpell(_Q) == READY)
  69.     WREADY = (myHero:CanUseSpell(_W) == READY)
  70.     EREADY = (myHero:CanUseSpell(_E) == READY)
  71.     RREADY = (myHero:CanUseSpell(_R) == READY)
  72.     SpellExpired()
  73.    
  74.     if ValidTarget(target) then
  75.         if HazMenu.Misc.KSQ then KS(target) end
  76.         if HazMenu.Misc.KSR then KS(target) end
  77.         if HazMenu.Misc.Ignite then AutoIgnite(target) end
  78.     end
  79.     if HazMenu.Farm.Mana then end
  80.     if HazMenu.Harass.Mana then end
  81.     if HazMenu.combokey then
  82.         Combo()
  83.    end
  84.    if HazMenu.harasskey then
  85.         Poke()
  86.    end
  87.    if HazMenu.farmkey then
  88.         Farm()
  89.    end
  90. end
  91.  
  92. function IgniteCheck()
  93.     if myHero:GetSpellData(SUMMONER_1).name:find("summonerdot") then
  94.         ignite = SUMMONER_1
  95.     elseif myHero:GetSpellData(SUMMONER_2).name:find("summonerdot") then
  96.         ignite = SUMMONER_2
  97.     end
  98. end
  99.  
  100. function FLoadLib()
  101.     FMenu()
  102. end
  103.  
  104. function FMenu()
  105.     HazMenu = scriptConfig("Veigar", "veigar")
  106.         HazMenu:addParam("combokey", "Combo key(Space)", SCRIPT_PARAM_ONKEYDOWN, false, 32)
  107.         HazMenu:addParam("harasskey", "Harass key(C)", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("C"))
  108.         HazMenu:addParam("farmkey", "Farm key(X)", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("X"))
  109.        
  110.     HazMenu:addTS(ts)
  111.        
  112.     HazMenu:addSubMenu("Combo", "Combo")
  113.         HazMenu.Combo:addParam("comboQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  114.         HazMenu.Combo:addParam("comboW", "Use W", SCRIPT_PARAM_ONOFF, false)
  115.         HazMenu.Combo:addParam("comboE", "Use E", SCRIPT_PARAM_ONOFF, true)
  116.         HazMenu.Combo:addParam("comboR", "Use R", SCRIPT_PARAM_ONOFF, true)
  117.        
  118.     HazMenu:addSubMenu("Harass", "Harass")
  119.         HazMenu.Harass:addParam("harassQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  120.         HazMenu.Harass:addParam("harassW", "Use W", SCRIPT_PARAM_ONOFF, true)
  121.         HazMenu.Harass:addParam("Mana", "Mana Manager %", SCRIPT_PARAM_SLICE, 50, 1, 100, 0)
  122.        
  123.     HazMenu:addSubMenu("Farm", "Farm") 
  124.         HazMenu.Farm:addParam("Mana", "Mana Manager %", SCRIPT_PARAM_SLICE, 50, 1, 100, 0)
  125.    
  126.     HazMenu:addSubMenu("Misc", "Misc")
  127.         HazMenu.Misc:addParam("KSQ", "KillSteal with Q", SCRIPT_PARAM_ONOFF, true)
  128.         HazMenu.Misc:addParam("KSR", "KillSteal with R", SCRIPT_PARAM_ONOFF, true)
  129.         HazMenu.Misc:addParam("Ignite", "Use Auto Ignite", SCRIPT_PARAM_ONOFF, true)
  130.    
  131.     HazMenu:addSubMenu("Draw","Draw")
  132.       HazMenu.Draw:addParam("drawq", "Draw Q", SCRIPT_PARAM_ONOFF, true)
  133.       HazMenu.Draw:addParam("draww", "Draw W", SCRIPT_PARAM_ONOFF, true)
  134.       HazMenu.Draw:addParam("drawe", "Draw E", SCRIPT_PARAM_ONOFF, true)
  135.       HazMenu.Draw:addParam("drawr", "Draw R", SCRIPT_PARAM_ONOFF, true)
  136.    
  137.     HazMenu:addParam("AGP", "Auto E gapclosers", SCRIPT_PARAM_ONOFF, true)
  138.    
  139.     if _G.Reborn_Loaded then
  140.     DelayAction(function()
  141.         PrintChat("<font color = \"#FFFFFF\">[Veigar] </font><font color = \"#FF0000\">SAC Status:</font> <font color = \"#FFFFFF\">Successfully integrated.</font> </font>")
  142.         HazMenu:addParam("SACON","[Veigar] SAC:R support is active.", 5, "")
  143.         isSAC = true
  144.     end, 10)
  145.     elseif not _G.Reborn_Loaded then
  146.         PrintChat("<font color = \"#FFFFFF\">[Veigar] </font><font color = \"#FF0000\">Orbwalker not found:</font> <font color = \"#FFFFFF\">SxOrbWalk integrated.</font> </font>")
  147.         HazMenu:addSubMenu("Orbwalker", "SxOrb")
  148.         SxOrb:LoadToMenu(HazMenu.SxOrb)
  149.         isSX = true
  150.     end
  151.     HazMenu:permaShow("combokey")
  152.     HazMenu:permaShow("harasskey")
  153.     HazMenu:permaShow("farmkey")
  154. end
  155.  
  156. function KS(enemy)  
  157.     if Q.IsReady() and getDmg("Q", enemy, myHero) > enemy.health then
  158.         if GetDistance(enemy) <= Q.range and HazMenu.Misc.KSQ then
  159.             local CastPosition, HitChance, CastPos = VP:GetLineCastPosition(target, Q.delay, Q.width, Q.range, Q.speed, myHero, false)
  160.             if HitChance >= 2 and GetDistance(CastPosition) <= Q.range and Q.IsReady() then
  161.                 CastSpell(_Q, CastPosition.x, CastPosition.z)
  162.             end
  163.         end
  164.     end
  165.     if R.IsReady() and getDmg("R", enemy, myHero) > enemy.health then
  166.         if GetDistance(enemy) <= R.range and HazMenu.Misc.KSR then
  167.            CastSpell(_R, target)
  168.         end
  169.     end
  170. end
  171.    
  172. function AutoIgnite(enemy)
  173.     iDmg = ((IREADY and getDmg("IGNITE", enemy, myHero)) or 0)
  174.     if enemy.health <= iDmg and GetDistance(enemy) <= 600 and ignite ~= nil
  175.         then
  176.             if IREADY then CastSpell(ignite, enemy) end
  177.     end
  178. end
  179.  
  180.  
  181. function Combo()
  182.     if ValidTarget(target) then  
  183.         if E.IsReady and HazMenu.Combo.comboE then
  184.             local AOECastPosition, MainTargetHitChance, nTargets = VP:GetCircularAOECastPosition(target, E.delay, E.width, E.range, E.speed, myHero, false)
  185.             if MainTargetHitChance >= 2 and GetDistance(AOECastPosition) <= E.range and E.IsReady() then
  186.                 CastSpell(_E, AOECastPosition.x, AOECastPosition.z)
  187.             end
  188.         end
  189.         if Q.IsReady() and HazMenu.Combo.comboQ then
  190.             local CastPosition, HitChance, CastPos = VP:GetLineCastPosition(target, Q.delay, Q.width, Q.range, Q.speed, myHero, false)
  191.             if HitChance >= 2 and GetDistance(CastPosition) <= Q.range and Q.IsReady() then
  192.                 CastSpell(_Q, CastPosition.x, CastPosition.z)
  193.             end
  194.         end
  195.         if W.IsReady() and HazMenu.Combo.comboW then
  196.             local AOECastPosition, MainTargetHitChance, nTargets = VP:GetCircularAOECastPosition(target, W.delay, W.width, W.range, W.speed, myHero, false)
  197.             if MainTargetHitChance >= 2 and GetDistance(AOECastPosition) <= W.range and W.IsReady() then
  198.                 CastSpell(_W, AOECastPosition.x, AOECastPosition.z)
  199.             end
  200.         end    
  201.         if R.IsReady() and HazMenu.Combo.comboR then
  202.             if GetDistance(target) <= R.range then
  203.                 CastSpell(_R, target)
  204.             end
  205.         end
  206.     end
  207. end
  208.  
  209. function Poke()
  210.     if ValidTarget(target) and myHero.mana / myHero.maxMana > HazMenu.Harass.Mana /100 then
  211.         if Q.IsReady() and HazMenu.Harass.harassQ then
  212.             local CastPosition, HitChance, CastPos = VP:GetLineCastPosition(target, Q.delay, Q.width, Q.range, Q.speed, myHero, false)
  213.             if HitChance >= 2 and GetDistance(CastPosition) <= Q.range and Q.IsReady() then
  214.                 CastSpell(_Q, CastPosition.x, CastPosition.z)
  215.             end
  216.         end
  217.         if W.IsReady() and HazMenu.Harass.harassW then
  218.             local AOECastPosition, MainTargetHitChance, nTargets = VP:GetCircularAOECastPosition(target, W.delay, W.width, W.range, W.speed, myHero, false)
  219.             if MainTargetHitChance >= 2 and GetDistance(AOECastPosition) <= W.range and W.IsReady() then
  220.                 CastSpell(_W, AOECastPosition.x, AOECastPosition.z)
  221.             end
  222.         end
  223.     end
  224. end
  225.  
  226.  
  227. function Farm()
  228.     Minions:update()
  229.     if myHero.mana / myHero.maxMana > HazMenu.Farm.Mana /100 then
  230.     for i, Minion in pairs(Minions.objects) do
  231.         if Q.IsReady() and getDmg("Q", Minion, myHero) > Minion.health then
  232.             CastSpell(_Q, Minion.x,Minion.z)
  233.         end
  234.        
  235.     end
  236.     end
  237. end
  238.  
  239.  
  240. function OnProcessSpell(unit, spell)
  241.      if HazMenu.AGP and E.IsReady() then
  242.             local jarvanAddition = unit.charName == "JarvanIV" and unit:CanUseSpell(_Q) ~= READY and _R or _Q
  243.             local isAGapcloserUnit = {
  244.                 ['Aatrox']      = {true, spell = _Q,                  range = 1000,  projSpeed = 1200, },
  245.                 ['Akali']       = {true, spell = _R,                  range = 800,   projSpeed = 2200, },
  246.                 ['Alistar']     = {true, spell = _W,                  range = 650,   projSpeed = 2000, },
  247.                 ['Diana']       = {true, spell = _R,                  range = 825,   projSpeed = 2000, },
  248.                 ['Gragas']      = {true, spell = _E,                  range = 600,   projSpeed = 2000, },
  249.                 ['Hecarim']     = {true, spell = _R,                  range = 1000,  projSpeed = 1200, },
  250.                 ['Irelia']      = {true, spell = _Q,                  range = 650,   projSpeed = 2200, },
  251.                 ['JarvanIV']    = {true, spell = jarvanAddition,      range = 770,   projSpeed = 2000, },
  252.                 ['Jax']         = {true, spell = _Q,                  range = 700,   projSpeed = 2000, },
  253.                 ['Jayce']       = {true, spell = 'JayceToTheSkies',   range = 600,   projSpeed = 2000, },
  254.                 ['Khazix']      = {true, spell = _E,                  range = 900,   projSpeed = 2000, },
  255.                 ['Leblanc']     = {true, spell = _W,                  range = 600,   projSpeed = 2000, },
  256.                 ['LeeSin']      = {true, spell = 'blindmonkqtwo',     range = 1300,  projSpeed = 1800, },
  257.                 ['Leona']       = {true, spell = _E,                  range = 900,   projSpeed = 2000, },
  258.                 ['Malphite']    = {true, spell = _R,                  range = 1000,  projSpeed = 1500 + unit.ms},
  259.                 ['Maokai']      = {true, spell = _Q,                  range = 600,   projSpeed = 1200, },
  260.                 ['MonkeyKing']  = {true, spell = _E,                  range = 650,   projSpeed = 2200, },
  261.                 ['Pantheon']    = {true, spell = _W,                  range = 600,   projSpeed = 2000, },
  262.                 ['Poppy']       = {true, spell = _E,                  range = 525,   projSpeed = 2000, },
  263.                 ['Renekton']    = {true, spell = _E,                  range = 450,   projSpeed = 2000, },
  264.                 ['Sejuani']     = {true, spell = _Q,                  range = 650,   projSpeed = 2000, },
  265.                 ['Shen']        = {true, spell = _E,                  range = 575,   projSpeed = 2000, },
  266.                 ['Tristana']    = {true, spell = _W,                  range = 900,   projSpeed = 2000, },
  267.                 ['Tryndamere']  = {true, spell = 'Slash',             range = 650,   projSpeed = 1450, },
  268.                 ['XinZhao']     = {true, spell = _E,                  range = 650,   projSpeed = 2000, },
  269.             }
  270.             if unit.type == myHero.type and unit.team ~= myHero.team and isAGapcloserUnit[unit.charName] and GetDistance(unit) < 2000 and spell ~= nil then
  271.                 if spell.name == (type(isAGapcloserUnit[unit.charName].spell) == 'number' and unit:GetSpellData(isAGapcloserUnit[unit.charName].spell).name or isAGapcloserUnit[unit.charName].spell) then
  272.                     if spell.target ~= nil and spell.target.isMe or isAGapcloserUnit[unit.charName].spell == 'blindmonkqtwo' then
  273.                         if E.IsReady() then
  274.                             E.target = unit
  275.                             CastSpell(_E, unit.x, unit.z)
  276.                         end
  277.                     else
  278.                         spellExpired = false
  279.                         informationTable = {
  280.                             spellSource = unit,
  281.                             spellCastedTick = GetTickCount(),
  282.                             spellStartPos = Point(spell.startPos.x, spell.startPos.z),
  283.                             spellEndPos = Point(spell.endPos.x, spell.endPos.z),
  284.                             spellRange = isAGapcloserUnit[unit.charName].range,
  285.                             spellSpeed = isAGapcloserUnit[unit.charName].projSpeed
  286.                         }
  287.                     end
  288.                 end
  289.             end
  290.        
  291.     end
  292.    
  293. end        
  294.  
  295.  
  296. function SpellExpired()
  297.         if ValidTarget(target) then
  298.     if HazMenu.AGP and not spellExpired and (GetTickCount() - informationTable.spellCastedTick) <= (informationTable.spellRange / informationTable.spellSpeed) * 1000 then
  299.         local spellDirection     = (informationTable.spellEndPos - informationTable.spellStartPos):normalized()
  300.         local spellStartPosition = informationTable.spellStartPos + spellDirection
  301.         local spellEndPosition   = informationTable.spellStartPos + spellDirection * informationTable.spellRange
  302.         local heroPosition = Point(myHero.x, myHero.z)
  303.         local lineSegment = LineSegment(Point(spellStartPosition.x, spellStartPosition.y), Point(spellEndPosition.x, spellEndPosition.y))
  304.    
  305.             local lineSegment = LineSegment(Point(spellStartPosition.x, spellStartPosition.y), Point(spellEndPosition.x, spellEndPosition.y))
  306.            
  307.  
  308.             if lineSegment:distance(heroPosition) <= 400 and E.IsReady() then
  309.                
  310.                 CastSpell(_E, target.x, target.z)
  311.             end
  312.  
  313.         else
  314.             spellExpired = true
  315.             informationTable = {}
  316.         end
  317.        
  318.                
  319.                
  320.  end  
  321. end
Advertisement
Add Comment
Please, Sign In to add comment