FukDaPolice

FukDaShen 1.4

Apr 15th, 2015
1,674
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 9.95 KB | None | 0 0
  1. if myHero.charName ~= 'Shen' then return end
  2.  
  3. assert(load(Base64Decode("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"), nil, "bt", _ENV))() ScriptStatus("XKNLRQORKLR")
  4.  
  5. --Changelog 1.4 Added check enemies in range count before ult
  6.  
  7. require "SxOrbWalk"
  8. require "VPrediction"
  9. require "SourceLib"
  10.  
  11. local Q = {range = 475, IsReady = function() return myHero:CanUseSpell(_Q) == READY end}
  12. local W = {range = 150, IsReady = function() return myHero:CanUseSpell(_W) == READY end}
  13. local E = {range = 600, delay = 0.25, speed = 1200, width = 40,IsReady = function() return myHero:CanUseSpell(_E) == READY end}
  14. local R = {range = 20000, IsReady = function() return myHero:CanUseSpell(_R) == READY end}
  15. local ignite = nil
  16. local iDmg = 0
  17. local target = nil
  18. local ts
  19. local ts = TargetSelector(TARGET_LESS_CAST_PRIORITY, 1000, DAMAGE_PHYSICAL, true)
  20. local lastAttack, lastAttackCD, lastWindUpTime = 0, 0, 0
  21. local ADC, lowguy
  22.  
  23. function GetCustomTarget()
  24.     ts:update()
  25.     if _G.AutoCarry and ValidTarget(_G.AutoCarry.Crosshair:GetTarget()) then return _G.AutoCarry.Crosshair:GetTarget() end
  26.     if not _G.Reborn_Loaded then return ts.target end
  27.     return ts.target
  28. end
  29.  
  30. function OnLoad()
  31.     PrintChat("<font color=\"#00FF00\">Shen by Fukdapolice.</font>")
  32.    
  33.     IgniteCheck()
  34.     FLoadLib()
  35.     VP = VPrediction(true)  
  36.  
  37.     Minions = minionManager(MINION_ENEMY, E.range, myHero, MINION_SORT_MAXHEALTH_ASC)
  38. end
  39.  
  40. function OnTick()
  41.     target = GetCustomTarget()
  42.     Checks()
  43.     save()
  44.    
  45.    
  46. end
  47.  
  48. function OnDraw()
  49.     if HazMenu.Draw.drawq then
  50.         DrawCircle(myHero.x,myHero.y,myHero.z,475,0xFFFF0000)
  51.     end
  52.     if HazMenu.Draw.draww then
  53.         DrawCircle(myHero.x,myHero.y,myHero.z,150,0xFFFF0000)
  54.     end
  55.        
  56.     if HazMenu.Draw.drawe then
  57.         DrawCircle(myHero.x,myHero.y,myHero.z,600,0xFFFF0000)
  58.     end
  59.     if HazMenu.Draw.drawr then
  60.         DrawCircle(myHero.x,myHero.y,myHero.z,20000,0xFFFF0000)
  61.     end
  62. end
  63.  
  64.  
  65. function Checks()
  66.     IREADY = (ignite ~= nil and myHero:CanUseSpell(ignite) == READY)
  67.     QREADY = (myHero:CanUseSpell(_Q) == READY)
  68.     WREADY = (myHero:CanUseSpell(_W) == READY)
  69.     EREADY = (myHero:CanUseSpell(_E) == READY)
  70.     RREADY = (myHero:CanUseSpell(_R) == READY)
  71.    
  72.    
  73.     if ValidTarget(target) then
  74.         if HazMenu.Misc.KS then KS(target) end
  75.         if HazMenu.Misc.Ignite then AutoIgnite(target) end
  76.     end
  77.    
  78.     if HazMenu.combokey then
  79.         Combo()
  80.    end
  81.    if HazMenu.harasskey then
  82.         Poke()
  83.    end
  84.    if HazMenu.farmkey then
  85.         Farm()
  86.    end
  87. end
  88.  
  89. function IgniteCheck()
  90.     if myHero:GetSpellData(SUMMONER_1).name:find("summonerdot") then
  91.         ignite = SUMMONER_1
  92.     elseif myHero:GetSpellData(SUMMONER_2).name:find("summonerdot") then
  93.         ignite = SUMMONER_2
  94.     end
  95. end
  96.  
  97. function FLoadLib()
  98.     FMenu()
  99. end
  100.  
  101. function FMenu()
  102.     HazMenu = scriptConfig("Shen", "Shen")
  103.         HazMenu:addParam("combokey", "Combo key(Space)", SCRIPT_PARAM_ONKEYDOWN, false, 32)
  104.         HazMenu:addParam("harasskey", "Harass key(C)", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("C"))
  105.        
  106.     HazMenu:addTS(ts)
  107.        
  108.     HazMenu:addSubMenu("Combo", "Combo")
  109.         HazMenu.Combo:addParam("comboQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  110.         HazMenu.Combo:addParam("comboW", "Use W", SCRIPT_PARAM_ONOFF, false)
  111.         HazMenu.Combo:addParam("comboE", "Use E", SCRIPT_PARAM_ONOFF, true)
  112.  
  113.     HazMenu:addSubMenu("Harass", "Harass")
  114.         HazMenu.Harass:addParam("harassQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  115.         HazMenu.Harass:addParam("harassE", "Use E", SCRIPT_PARAM_ONOFF, true)
  116.                
  117.     HazMenu:addSubMenu("Misc", "Misc")
  118.         HazMenu.Misc:addParam("KS", "KillSteal with Q", SCRIPT_PARAM_ONOFF, true)
  119.         HazMenu.Misc:addParam("Ignite", "Use Auto Ignite", SCRIPT_PARAM_ONOFF, true)
  120.        
  121.     HazMenu:addSubMenu("Ultimate", "Ultimate")
  122.         HazMenu.Ultimate:addParam("Enabled", "AutoUlti on low ally ",SCRIPT_PARAM_ONOFF, true)
  123.    
  124.     HazMenu:addSubMenu("Draw","Draw")
  125.       HazMenu.Draw:addParam("drawq", "Draw Q", SCRIPT_PARAM_ONOFF, true)
  126.       HazMenu.Draw:addParam("draww", "Draw W", SCRIPT_PARAM_ONOFF, true)
  127.       HazMenu.Draw:addParam("drawe", "Draw E", SCRIPT_PARAM_ONOFF, true)
  128.       HazMenu.Draw:addParam("drawr", "Draw R", SCRIPT_PARAM_ONOFF, true)
  129.    
  130.    
  131.     if _G.Reborn_Loaded then
  132.     DelayAction(function()
  133.         PrintChat("<font color = \"#FFFFFF\">[Shen] </font><font color = \"#FF0000\">SAC Status:</font> <font color = \"#FFFFFF\">Successfully integrated.</font> </font>")
  134.         HazMenu:addParam("SACON","[Shen] SAC:R support is active.", 5, "")
  135.         isSAC = true
  136.     end, 10)
  137.     elseif not _G.Reborn_Loaded then
  138.         PrintChat("<font color = \"#FFFFFF\">[Shen] </font><font color = \"#FF0000\">Orbwalker not found:</font> <font color = \"#FFFFFF\">SxOrbWalk integrated.</font> </font>")
  139.         HazMenu:addSubMenu("Orbwalker", "SxOrb")
  140.         SxOrb:LoadToMenu(HazMenu.SxOrb)
  141.         isSX = true
  142.     end
  143.     HazMenu:permaShow("combokey")
  144.     HazMenu:permaShow("harasskey")
  145.    
  146. end
  147.  
  148. function KS(enemy)  -- cambiare o aggiunger per ksare
  149.     if Q.IsReady() and getDmg("Q", enemy, myHero) > enemy.health then
  150.         if GetDistance(enemy) <= Q.range and HazMenu.Misc.KS then  --prende la distanza da Q = 600
  151.             CastSpell(_Q, enemy)
  152.         end
  153.     end
  154. end
  155.  
  156. function AutoIgnite(enemy)
  157.     iDmg = ((IREADY and getDmg("IGNITE", enemy, myHero)) or 0)
  158.     if enemy.health <= iDmg and GetDistance(enemy) <= 600 and ignite ~= nil
  159.         then
  160.             if IREADY then CastSpell(ignite, enemy) end
  161.     end
  162. end
  163.  
  164.  
  165. function Combo()
  166.     if ValidTarget(target) then  --Qui meterci la combo desiderata
  167.         if E.IsReady() and HazMenu.Combo.comboE then
  168.             local CastPosition, HitChance, CastPos = VP:GetLineCastPosition(target, E.delay, E.width, E.range, E.speed, myHero, false)
  169.             if HitChance >= 2 and GetDistance(CastPosition) <= E.range and E.IsReady() then
  170.                 CastSpell(_E, CastPosition.x, CastPosition.z)
  171.             end
  172.         end
  173.         if QREADY and HazMenu.Combo.comboQ then
  174.             if GetDistance(target) <= Q.range then
  175.                 CastSpell(_Q, target)
  176.             end
  177.         end
  178.         if W.IsReady() and HazMenu.Combo.comboW then
  179.             if GetDistance(target) <= W.range then
  180.                 CastSpell(_W)
  181.             end
  182.         end
  183.     end
  184. end
  185.  
  186. function Poke()
  187.     if ValidTarget(target) then  --Qui facci la c poke
  188.         if E.IsReady() and HazMenu.Harass.harassE then
  189.                 local CastPosition, HitChance, CastPos = VP:GetLineCastPosition(target, E.delay, E.width, E.range, E.speed, myHero, false)
  190.             if HitChance >= 2 and GetDistance(CastPosition) <= E.range and E.IsReady() then
  191.                 CastSpell(_E, CastPosition.x, CastPosition.z)
  192.             end
  193.         end
  194.         if Q.IsReady() and HazMenu.Harass.harassQ then
  195.             if GetDistance(target) <= Q.range then
  196.                 CastSpell(_Q, target)
  197.             end
  198.         end
  199.     end
  200. end
  201.  
  202.  
  203. local mostDamage = 0
  204. local lowestHealth = math.huge
  205. function save()
  206.     if  HazMenu.Ultimate.Enabled and R.IsReady then
  207.         for i=1, heroManager.iCount do
  208.                 local ally = heroManager:getHero(i)        
  209.                 if ally.health < lowestHealth and ally.team ~= TEAM_ENEMY and GetDistance(myHero, ally) < 20000 and R.IsReady then                        --
  210.                         lowGuy = ally                            
  211.                         lowestHealth = ally.health                              
  212.                 end                                        
  213.         end                                              
  214.         if R.IsReady and HazMenu.Ultimate.Enabled and lowGuy ~= nil and lowGuy.maxHealth * .16 >= lowGuy.health then                              
  215.             if  CountEnemyHeroInRange(lowguy) >= 1 then  
  216.                 CastSpell(_R, lowGuy)
  217.             end            
  218.         end                                      
  219.     end
  220. end
  221.  
  222. function OnProcessSpell(object, spell)
  223.     if object == myHero then
  224.         if spell.name:lower():find("attack") then
  225.             lastAttack = GetTickCount() - GetLatency()/2
  226.             lastWindUpTime = spell.windUpTime*1000
  227.             lastAttackCD = spell.animationTime*1000
  228.         end
  229.     end
  230. end
  231.  
  232. function timeToShoot()
  233.     return (GetTickCount() + GetLatency()/2 > lastAttack + lastAttackCD)
  234. end
  235.  
  236.  
  237.  
  238. function CountEnemyHeroInRange(range)
  239.     local enemyInRange = 0
  240.         for i = 1, heroManager.iCount, 1 do
  241.             local hero = heroManager:getHero(i)
  242.                 if ValidTarget(hero,range) then
  243.             enemyInRange = enemyInRange + 1
  244.             end
  245.         end
  246.     return enemyInRange
  247. end
Advertisement
Add Comment
Please, Sign In to add comment