Illprotectjew

IPJ Valezreal 1.3

Nov 9th, 2013
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 62.25 KB | None | 0 0
  1. --[[
  2.     ====================================
  3.     |         IPJ Presents:            |
  4.     |     ValEz-real Reinvisioned      |
  5.     |          Version 1.3             |
  6.     |     Let The good Times Roll      |
  7.     ====================================
  8.  
  9.  
  10.     ====================================
  11.     |            Version Log           |
  12.     ====================================
  13.     0.1 - First beta build! Exciting!
  14.         Features Included...Valz Ez, Reworked Auto-Carry, Red Elixer, and Tailored Auto-Dodge---All inside the fancy menues! Yay!
  15.        
  16.         ]]--
  17.        
  18. require 'Utils'
  19. require 'winapi'
  20. require 'SKeys'
  21. require "spell_damage"
  22. local send = require 'SendInputScheduled'
  23. local uiconfig = require 'uiconfig'
  24. local Q,W,E,R = 'Q','W','E','R'
  25.  
  26. local timer3 = 0
  27. local iHero = GetSelf()    
  28. local wUsedAt = 0
  29. local vUsedAt = 0
  30. local timer=os.clock()
  31. local bluePill = nil
  32. local dodgedelay = 500
  33. local targetac
  34. local target2
  35. local targetHero
  36. local startAttackSpeed
  37. local projSpeed = 1
  38. local lastAttack = GetTickCount()
  39. local shotFired = false
  40. local range = myHero.range + GetDistance(GetMinBBox(myHero))
  41. local attackDelayOffset = 275
  42. local isMoving = false
  43. local startAttackSpeed = 0.625
  44.  
  45. local version = 'IPJs Valezreal 1.3'
  46. local target
  47. local targetaa
  48. local RangeAttackQ = false
  49. local RangeAttackW = false
  50. local Qrange = 1100
  51. local Qspeed = 20
  52. local Wrange = 900
  53. local Wspeed = 15
  54. local delay = 1.6
  55. local metakey = SKeys.Control
  56. local attempts = 0
  57. local lastAttempt = 0
  58. local cc = 0
  59. local colorcyan = 0x0000FFFF
  60. local coloryellow = 0xFFFFFF00
  61. local colorgreen = 0xFF00FF00
  62. local skillshotcharexist = false
  63. local skillshotArray = {}
  64. local show_allies = 1
  65. local Enemies = {}
  66. local EnemyIndex = 1
  67. local HavocDamage = 0
  68. local ExecutionerDamage = 0
  69. local skillingOrder = {Ezreal = {Q,E,Q,E,Q,R,W,Q,Q,E,R,E,E,W,W,R,W,W},}
  70.  
  71.  
  72. function Timer()
  73.     if GetTickCount() - timer3 > dodgedelay then
  74.         timer3 = 0
  75.     end
  76. end
  77. function EzrealRun()
  78.     if IsChatOpen() == 0 and myHero.name == "Ezreal" then
  79.     target = GetWeakEnemy('PHYS',1100)
  80.     targetaa = GetWeakEnemy('PHYS',700)
  81.     --[[attRange()]]--
  82.     RedElixir()
  83.     Timer()
  84.     targetReset()
  85.    
  86.     if targetac and targetac.dead == 1 then targetac = nil end
  87.    
  88.     if EzrealConfig.AutoCarry and IsChatOpen() == 0 and timer3 == 0 then
  89.         AutoCarry()
  90.     end
  91.    
  92.     if EzrealConfig.Hybrid and IsChatOpen() == 0 and timer3 == 0 then
  93.         Hybrid()
  94.     end
  95.     if EzrealConfig.AutoCarry or EzrealConfig.Hybrid and timer3 == 0 then
  96.         moveToCursor()
  97.     end
  98.    
  99.     if EzrealConfig.Draw then
  100.         if myHero.dead ~= 1 then
  101.             CustomCircle(trueRange(),2,5,myHero)
  102.         end
  103.     end
  104.    
  105.     xa = 50/1920*GetScreenX()
  106.     xb = 1870/1920*GetScreenX()
  107.     ya = 50/1080*GetScreenY()
  108.     yb = 1030/1080*GetScreenY()
  109.    
  110.     if myHero.SpellTimeQ > 1.0 and GetSpellLevel('Q')~=0 and myHero.mana > (25+(myHero.SpellLevelQ*3))then
  111.     QRDY = 1
  112.     else QRDY = 0
  113.     end
  114.     if myHero.SpellTimeW > 1.0 and GetSpellLevel('W')~=0 and myHero.mana > (40+(myHero.SpellLevelW*10))then
  115.     WRDY = 1
  116.     else WRDY = 0
  117.     end
  118.     if myHero.SpellTimeE > 1.0 and GetSpellLevel('E')~=0 and myHero.mana > 90 then
  119.     ERDY = 1
  120.     else ERDY = 0
  121.     end
  122.     if myHero.SpellTimeR > 1.0 and GetSpellLevel('R')~=0 and myHero.mana > 100 then
  123.     RRDY = 1
  124.     else RRDY = 0
  125.     end
  126.    
  127.     if EzrealConfig.useQ and timer3 == 0 then
  128.         SpellPred(Q,QRDY,myHero,target,Qrange,delay,Qspeed,1)
  129.     end
  130.    
  131.     if EzrealConfig.useW and timer3 == 0 then
  132.         SpellPred(W,WRDY,myHero,target,Wrange,delay,Wspeed,0)
  133.     end
  134.     if EzrealConfig.useQW and timer3 == 0 then
  135.         SpellPred(Q,QRDY,myHero,target,Wrange,delay,Wspeed,1)
  136.         SpellPred(W,WRDY,myHero,target,Wrange,delay,Wspeed,1)  
  137.     end
  138.     if EzrealConfig.useE then
  139.         SpellXYZ(E,ERDY,myHero,myHero,100,mousePos.x,mousePos.z)
  140.         moveToCursor()
  141.     end
  142.    
  143.     if EzrealConfig.Autolevel then Autolevel() end
  144.     if EzrealConfig.drawskillshots then Skillshots() end
  145.    
  146.     for i = 1, objManager:GetMaxHeroes(), 1 do
  147.         Hero = objManager:GetHero(i)
  148.         if Hero ~= nil and Hero.team ~= myHero.team then
  149.             if Enemies[Hero.name] == nil then
  150.                 Enemies[Hero.name] = { Unit = Hero, Number = EnemyIndex }
  151.                 EnemyIndex = EnemyIndex + 1
  152.             end
  153.         end
  154.     end
  155.    
  156. end
  157. end
  158.    
  159.     EzrealConfig, menu = uiconfig.add_menu('Valezreal Config', 200)
  160.     menu.keydown('useQ', 'Use Q', Keys.Space)
  161.     menu.keydown('useW', 'Use W', Keys.Space)
  162.     menu.keydown('useQW', 'Use QW', Keys.W)
  163.     menu.keydown('useE', 'Use E', Keys.X)
  164.     menu.keydown('AutoCarry', 'AutoCarry', Keys.A)
  165.     menu.keydown('Hybrid', 'Hybrid', Keys.Space)
  166.     menu.checkbutton('autoq', 'Auto-Q after AA', true)
  167.     menu.checkbutton('autow', 'Auto-W after AA', true)
  168.     menu.checkbutton('Autolevel', 'Auto Level', true)
  169.     menu.checkbutton('Draw', 'Draw', true)
  170.     menu.checkbutton('drawskillshots', 'Draw Skillshots', true)
  171.     menu.checkbutton('dodgeskillshots', 'dodge Skillshots', true)
  172.     menu.permashow('useQ')
  173.     menu.permashow('useW')
  174.     menu.permashow('useQW')
  175.     menu.permashow('useE')
  176.     menu.permashow('AutoCarry')
  177.     menu.permashow('Hybrid')
  178.    
  179. PotConfig = scriptConfig("AutoPot Config", "Pot")
  180. PotConfig:addParam("Potion", "Script Toggle", SCRIPT_PARAM_ONKEYTOGGLE, true, 117)
  181. PotConfig:addParam("HpPotion", "Potion Toggle", SCRIPT_PARAM_ONOFF, true)
  182. PotConfig:addParam("Flask", "Flask Toggle", SCRIPT_PARAM_ONOFF, true)
  183. PotConfig:addParam("Biscuit", "Biscuit Toggle", SCRIPT_PARAM_ONOFF, true)
  184. PotConfig:addParam("Elixir", "Elixir Toggle", SCRIPT_PARAM_ONOFF, true)
  185. PotConfig:addParam("PotionValue", "Potion Trigger HP", SCRIPT_PARAM_NUMERICUPDOWN, 0.75, 103, 0, 1, .1)
  186. PotConfig:addParam("FlaskValue", "Flask Trigger HP", SCRIPT_PARAM_NUMERICUPDOWN, 0.74, 100, 0, 1, .1)
  187. PotConfig:addParam("BiscuitValue", "Biscuit Trigger HP", SCRIPT_PARAM_NUMERICUPDOWN, 0.60, 97, 0, 1, .1)
  188. PotConfig:addParam("ElixirValue", "Elixir Trigger HP", SCRIPT_PARAM_NUMERICUPDOWN, 0.30, 96, 0, 1, .1)
  189.  
  190. --[[START RANGEFINDER]]--
  191. --[[function attRange()
  192.     if targetac ~= nil then
  193.         if GetDistance(targetac) >= 450 then   
  194.             return 0
  195.         elseif GetDistance(targetac) <= 449 and GetDistance(targetac) >= 400 then
  196.             return .25
  197.         elseif GetDistance(targetac) <= 399 and GetDistance(targetac) >= 200 then
  198.             return .45
  199.         elseif GetDistance(targetac) <= 299 and GetDistance(targetac) >= 200 then
  200.             return .65
  201.         elseif GetDistance(targetac) <= 199 and GetDistance(targetac) >= 0 then
  202.             return 1
  203.        
  204.         end
  205.     end
  206. end]]--
  207. function usePotion()
  208.     GetInventorySlot(2003)
  209.     UseItemOnTarget(2003,iHero)
  210. end
  211.  
  212. function useFlask()
  213.     GetInventorySlot(2041)
  214.     UseItemOnTarget(2041,iHero)
  215. end
  216.  
  217. function useBiscuit()
  218.     GetInventorySlot(2009)
  219.     UseItemOnTarget(2009,iHero)
  220. end
  221.  
  222. function useElixir()
  223.     GetInventorySlot(2037)
  224.     UseItemOnTarget(2037,iHero)
  225. end
  226.  
  227. function GetTick()
  228.     return GetClock()
  229. end
  230.  
  231. function RedElixir()
  232.     if PotConfig.Potion and bluePill == nil then
  233.         if iHero.health < iHero.maxHealth * PotConfig.PotionValue and PotConfig.HpPotion and GetClock() > wUsedAt + 15000 then
  234.             usePotion()
  235.             wUsedAt = GetTick()
  236.         elseif iHero.health < iHero.maxHealth * PotConfig.FlaskValue and PotConfig.Flask and GetClock() > vUsedAt + 10000 then
  237.             useFlask()
  238.             vUsedAt = GetTick()
  239.         elseif iHero.health < iHero.maxHealth * PotConfig.BiscuitValue and PotConfig.Biscuit then
  240.             useBiscuit()
  241.         elseif iHero.health < iHero.maxHealth * PotConfig.ElixirValue and PotConfig.Elixir then
  242.             useElixir()
  243.         end
  244.     end
  245.     if (os.clock() < timer + 5000) then
  246.         bluePill = nil
  247.     end
  248. end
  249.  
  250. function OnLoad()
  251.     if GetAAData()[myHero.name] ~= nil then
  252.         if GetAAData()[myHero.name].projSpeed ~= nil then
  253.             projSpeed = GetAAData()[myHero.name].projSpeed
  254.         end
  255.     end
  256.     if GetAAData()[myHero.name] ~= nil then
  257.         if GetAAData()[myHero.name].startAttackSpeed ~= nil then
  258.             startAttackSpeed = GetAAData()[myHero.name].startAttackSpeed
  259.         end
  260.     end
  261.         print("\nTrue Range: "..math.ceil(range).."\nTraditional Range: "..myHero.range)
  262. end
  263.  
  264.  
  265.  
  266. function trueRange()
  267. local trueRangeValue
  268.         if targetac ~= nil and GetDistance(targetac) < range then
  269.                 trueRangeValue = range -(range-GetDistance(targetac))
  270.         else
  271.                 trueRangeValue = range
  272.         end
  273.         return trueRangeValue
  274. end
  275.  
  276. function targetReset()
  277.         if not targetac and not target2 and not targetHero then
  278.         targetac = nil
  279.         target2 = nil
  280.         targetHero = nil
  281.         end
  282. end
  283.  
  284. function Action()
  285.         if timeToShoot() then
  286.             attackEnemy(targetac)
  287.             CustomCircle(100,10,1,targetac)
  288.         else
  289.             CustomCircle(100,5,2,targetac)
  290.             if heroCanMove() then moveToCursor() end
  291.         end
  292. end
  293.  
  294. function attackEnemy(targetac)
  295.         if ValidTarget(targetac) then
  296.         AttackTarget(targetac)
  297.         shotFired = True
  298.         end
  299. end
  300.  
  301. function GetNextAttackTime()
  302.     return lastAttack + attackDelayOffset / GetAttackSpeed()
  303. end
  304.  
  305. function GetAttackSpeed()
  306.     return myHero.attackspeed/(1/startAttackSpeed)
  307. end
  308.  
  309. function timeToShoot()
  310.     if GetTickCount() > GetNextAttackTime() then
  311.     return true
  312.    
  313.     end
  314.     return false
  315. end
  316.  
  317. function heroCanMove()
  318.     if shotFired == false or timeToShoot() then
  319.         return true
  320.     end
  321.     return false
  322. end
  323.  
  324. function moveToCursor() -- Removes derping when mouse is in one position instead of myHero:MoveTo mousePos
  325.     isMoving = true
  326.     local moveSqr = math.sqrt((mousePos.x - myHero.x)^2+(mousePos.z - myHero.z)^2)
  327.     local moveX = myHero.x + 300*((mousePos.x - myHero.x)/moveSqr)
  328.     local moveZ = myHero.z + 300*((mousePos.z - myHero.z)/moveSqr)
  329.     MoveToXYZ(moveX,0,moveZ)
  330. end
  331.  
  332. function On()
  333.     local HP = (myHero.maxHealth *(.25))
  334.     local HPB = (myHero.maxHealth *(.20))
  335.     if myHero.health < HP and target~=nil and myHero.SummonerF == "SummonerHeal" then
  336.         CastSpellTarget("F",myHero)
  337.     elseif myHero.health < HP and target~=nil and myHero.SummonerD == "SummonerHeal" then
  338.         CastSpellTarget("D",myHero)
  339.     end
  340.  
  341.     if myHero.health < HPB and target~=nil and myHero.SummonerF == "SummonerBarrier" then
  342.         CastSpellTarget("F",myHero)
  343.     elseif myHero.health < HPB and target~=nil and myHero.SummonerD == "SummonerBarrier" then
  344.         CastSpellTarget("D",myHero)
  345.     end
  346. end
  347.  
  348.  
  349.  
  350.  
  351. function OnProcessSpell(unit,spell)
  352.     if unit ~= nil and unit.name == myHero.name then
  353.         if string.find(spell.name,"attack") then                      
  354.             lastAttack = GetTickCount()
  355.         end
  356.     end
  357.     if unit ~= nil and spell ~= nil and unit.charName == myHero.charName then
  358.         if spell.name == "EzrealBasicAttack" or spell.name == "EzrealBasicAttack2" or spell.name == "EzrealCritAttack" and targetaa ~= nil and spell.targetaa and QRDY == 1 and CreepBlock(GetFireahead(targetaa,delay,Qspeed)) == 0 and EzrealConfig.autoq then
  359.             RangeAttackQ = true
  360.         end
  361.         if spell.name == "EzrealBasicAttack" or spell.name == "EzrealBasicAttack2" or spell.name == "EzrealCritAttack" and targetaa ~= nil and spell.targetaa and QRDY == 0 and WRDY == 1 and EzrealConfig.autow then
  362.             RangeAttackW = true
  363.         end
  364.     end
  365.     local P1 = spell.startPos
  366.     local P2 = spell.endPos
  367.     local calc = (math.floor(math.sqrt((P2.x-unit.x)^2 + (P2.z-unit.z)^2)))
  368.     if string.find(unit.name,"Minion_") == nil and string.find(unit.name,"Turret_") == nil then
  369.         if (unit.team ~= myHero.team or (show_allies==1)) and string.find(spell.name,"Basic") == nil then
  370.             for i=1, #skillshotArray, 1 do
  371.                 local maxdist
  372.                 local dodgeradius
  373.                 dodgeradius = skillshotArray[i].radius
  374.                 maxdist = skillshotArray[i].maxdistance
  375.                 if spell.name == skillshotArray[i].name then
  376.                     skillshotArray[i].shot = 1
  377.                     skillshotArray[i].lastshot = os.clock()
  378.                     if skillshotArray[i].type == 1 then
  379.                         skillshotArray[i].p1x = unit.x
  380.                         skillshotArray[i].p1y = unit.y
  381.                         skillshotArray[i].p1z = unit.z
  382.                         skillshotArray[i].p2x = unit.x + (maxdist)/calc*(P2.x-unit.x)
  383.                         skillshotArray[i].p2y = P2.y
  384.                         skillshotArray[i].p2z = unit.z + (maxdist)/calc*(P2.z-unit.z)
  385.                         dodgelinepass(unit, P2, dodgeradius, maxdist)
  386.                     elseif skillshotArray[i].type == 2 then
  387.                         skillshotArray[i].px = P2.x
  388.                         skillshotArray[i].py = P2.y
  389.                         skillshotArray[i].pz = P2.z
  390.                         dodgelinepoint(unit, P2, dodgeradius)
  391.                     elseif skillshotArray[i].type == 3 then
  392.                         skillshotArray[i].skillshotpoint = calculateLineaoe(unit, P2, maxdist)
  393.                         if skillshotArray[i].name ~= "SummonerClairvoyance" then
  394.                             dodgeaoe(unit, P2, dodgeradius)
  395.                         end
  396.                     elseif skillshotArray[i].type == 4 then
  397.                         skillshotArray[i].px = unit.x + (maxdist)/calc*(P2.x-unit.x)
  398.                         skillshotArray[i].py = P2.y
  399.                         skillshotArray[i].pz = unit.z + (maxdist)/calc*(P2.z-unit.z)
  400.                         dodgelinepass(unit, P2, dodgeradius, maxdist)
  401.                     elseif skillshotArray[i].type == 5 then
  402.                         skillshotArray[i].skillshotpoint = calculateLineaoe2(unit, P2, maxdist)
  403.                         dodgeaoe(unit, P2, dodgeradius)
  404.                     end
  405.                 end
  406.             end
  407.         end
  408.     end
  409. end
  410.  
  411. function OnCreateObj(obj)
  412. if GetAAData()[myHero.name] ~= nil then
  413.         for _, v in pairs(GetAAData()[myHero.name].aaParticles) do
  414.             if string.find(obj.charName,v) then
  415.                 shotFired = false
  416.                 lastAttack = GetTickCount()
  417.             end
  418.         end
  419.     end
  420.     if obj ~= nil and targetaa ~= nil then
  421.         if string.find(obj.charName, "Ezreal_basicattack_mis") ~= nil and GetDistance(myHero, obj) < 250 and RangeAttackQ == true and timer3 == 0 then
  422.             SpellPred(Q,QRDY,myHero,target,Qrange,delay,Qspeed,1)
  423.             RangeAttackQ = false
  424.         end
  425.         if string.find(obj.charName, "Ezreal_basicattack_mis") ~= nil and GetDistance(myHero, obj) < 250 and RangeAttackW == true and timer3 == 0 then
  426.             SpellPred(W,WRDY,myHero,target,Wrange,delay,Wspeed,0)
  427.             RangeAttackW = false
  428.         end
  429.     end
  430. end
  431. function GetAAData()
  432. return {
  433. Ezreal       = { projSpeed = 2.0, aaParticles = {"Ezreal_basicattack_mis", "Ezreal_critattack_mis"}, aaSpellName = "ezrealbasicattack", startAttackSpeed = "0.625" }
  434.     }
  435. end
  436. function AutoCarry()
  437.     CustomCircle(range,2,4,myHero)
  438.     if target2 ~= nil then
  439.         targetac = target2
  440.     else
  441.         targetac = GetWeakEnemy("PHYS",range)
  442.     end
  443.    
  444.     if targetac ~= nil and timer3 == 0 then
  445.         UseAllItems(targetac)
  446.         Action()
  447.     else   
  448.         moveToCursor()
  449.        
  450.     end
  451. end
  452.  
  453. function Hybrid()
  454.     CustomCircle(range,2,4,myHero)
  455.     targetHero = GetWeakEnemy("PHYS",range)
  456.  
  457.     if targetHero ~= nil then
  458.         targetac = targetHero
  459.     Action()
  460.     else
  461.         targetac = GetLowestHealthEnemyMinion(range)
  462.     end
  463.        
  464.     if targetac ~= nil and timer3 == 0 then
  465.         if ( getDmg("AD",targetac,myHero)) >= targetac.health then
  466.             Action()
  467.         end
  468.     else
  469.         moveToCursor()
  470.        
  471.     end
  472. end
  473.  
  474.  
  475. function Round(val, decimal)
  476.     if (decimal) then
  477.         return math.floor( (val * 10 ^ decimal) + 0.5) / (10 ^ decimal)
  478.     else
  479.         return math.floor(val + 0.5)
  480.     end
  481. end
  482.  
  483. function OnDraw()
  484.     if QRDY == 1 then
  485.         CustomCircle(Qrange,1,2,myHero)
  486.     else
  487.         CustomCircle(Qrange,1,3,myHero)
  488.     end
  489.     if targetac ~= nil then
  490.         CustomCircle(100,10,2,targetac)
  491.     end
  492.     for i, Enemy in pairs(Enemies) do
  493.         if Enemy ~= nil then
  494.             Hero = Enemy.Unit
  495.             local PositionX = (13.3/16) * GetScreenX()
  496.             local QDMG = getDmg('Q', Hero, myHero)+(getDmg('Q',Hero,myHero)*(HavocDamage + ExecutionerDamage))
  497.             local WDMG = getDmg('W', Hero, myHero)+(getDmg('W',Hero,myHero)*(HavocDamage + ExecutionerDamage))
  498.             local EDMG = getDmg('E', Hero, myHero)+(getDmg('E',Hero,myHero)*(HavocDamage + ExecutionerDamage))
  499.             local RDMG = getDmg('R', Hero, myHero)+(getDmg('R',Hero,myHero)*(HavocDamage + ExecutionerDamage))
  500.             local Current_Burst
  501.             local Damage
  502.             if myHero.selflevel >= 6 and myHero.SpellTimeR > 1.0 then
  503.                 Current_Burst = Round(WDMG + EDMG + RDMG, 0) --Show damage of WER combo if Ult is available
  504.             else
  505.                 Current_Burst = Round(WDMG + EDMG, 0) --Show damage of WE combo if Ult is not available
  506.             end
  507.             Damage = Current_Burst 
  508.             DrawText("Champion: "..Hero.name, PositionX, ((15/900) * GetScreenY()) * Enemy.Number + ((53/90) * GetScreenY()), 0xFF87CEFA)  
  509.             if Hero.visible == 1 and Hero.dead ~= 1 then
  510.                 if Damage < Hero.health then
  511.                     DrawText("DMG "..Damage, PositionX + 150, ((15/900) * GetScreenY()) * Enemy.Number + ((53/90) * GetScreenY()), 0xFFFFFF00)
  512.                 elseif Damage > Hero.health then
  513.                     DrawText("Killable!", PositionX + 150, ((15/900) * GetScreenY()) * Enemy.Number + ((53/90) * GetScreenY()), 0xFFFF0000)
  514.                 end
  515.             end    
  516.             if Hero.visible == 0 and Hero.dead ~= 1 then
  517.                 DrawText("MIA", PositionX + 150, ((15/900) * GetScreenY()) * Enemy.Number + ((53/90) * GetScreenY()), 0xFFFF8000)
  518.             elseif Hero.dead == 1 then
  519.                 DrawText("Dead", PositionX + 150, ((15/900) * GetScreenY()) * Enemy.Number + ((53/90) * GetScreenY()), 0xFF32CD32)
  520.             end
  521.         end
  522.     end
  523. end
  524.  
  525. function SpellXYZ(spell,cd,a,b,range,x,z)
  526.     local y = 0
  527.     if (cd == 1 or cd) and a ~= nil and b ~= nil and x ~= nil and z ~= nil and GetDistance(a,b) < range and timer3 == 0 then
  528.         CastSpellXYZ(spell,x,y,z)
  529.     end
  530. end
  531.  
  532. function SpellPred(spell,cd,a,b,range,delay,speed,block)
  533.     if (cd == 1 or cd) and a ~= nil and b ~= nil and delay ~= nil and speed ~= nil and GetDistance(a,b) < range then
  534.         local bx,by,bz = GetFireahead(b,delay,speed)
  535.         if (distXYZ(a.x,a.z,bx,bz)+(((((distXYZ(a.x,a.z,bx,bz)*1000)/(speed*100))*(b.movespeed*1000))/1000000))+((b.movespeed*(delay*100))/1000))<range then
  536.             if block == 1 and timer3 == 0 then
  537.                 if CreepBlock(GetFireahead(b,delay,speed)) == 0 then
  538.                     CastSpellXYZ(spell,GetFireahead(b,delay,speed))
  539.                 end
  540.             else CastSpellXYZ(spell,GetFireahead(b,delay,speed))
  541.             end
  542.         end
  543.     end
  544. end
  545.  
  546. function distXYZ(a1,a2,b1,b2)
  547.     if b1 == nil or b2 == nil then
  548.         b1 = myHero.x
  549.         b2 = myHero.z
  550.     end
  551.     if a2 ~= nil and b2 ~= nil and a1~=nil and b1~=nil then
  552.         a = (b1-a1)
  553.         b = (b2-a2)
  554.         if a~=nil and b~=nil then
  555.             a2=a*a
  556.             b2=b*b
  557.             if a2~=nil and b2~=nil then
  558.                 return math.sqrt(a2+b2)
  559.             else
  560.                 return 99999
  561.             end
  562.         else
  563.             return 99999
  564.         end
  565.     end
  566. end
  567.  
  568. function dodgelinepoint(pos1, pos2, radius)
  569.     local calc1 = (math.floor(math.sqrt((pos2.x-myHero.x)^2 + (pos2.z-myHero.z)^2)))
  570.     local calc2 = (math.floor(math.sqrt((pos1.x-myHero.x)^2 + (pos1.z-myHero.z)^2)))
  571.     local calc4 = (math.floor(math.sqrt((pos1.x-pos2.x)^2 + (pos1.z-pos2.z)^2)))
  572.     local calc3
  573.     local perpendicular
  574.     local k
  575.     local x4
  576.     local z4
  577.     local dodgex
  578.     local dodgez
  579.     perpendicular = (math.floor((math.abs((pos2.x-pos1.x)*(pos1.z-myHero.z)-(pos1.x-myHero.x)*(pos2.z-pos1.z)))/(math.sqrt((pos2.x-pos1.x)^2 + (pos2.z-pos1.z)^2))))
  580.     k = ((pos2.z-pos1.z)*(myHero.x-pos1.x) - (pos2.x-pos1.x)*(myHero.z-pos1.z)) / ((pos2.z-pos1.z)^2 + (pos2.x-pos1.x)^2)
  581.     x4 = myHero.x - k * (pos2.z-pos1.z)
  582.     z4 = myHero.z + k * (pos2.x-pos1.x)
  583.     calc3 = (math.floor(math.sqrt((x4-myHero.x)^2 + (z4-myHero.z)^2)))
  584.     dodgex = x4 + ((radius+75)/calc3)*(myHero.x-x4)
  585.     dodgez = z4 + ((radius+75)/calc3)*(myHero.z-z4)
  586.     if perpendicular < radius and calc1 < calc4 and calc2 < calc4 and GetCursorX() > xa and GetCursorX() < xb and GetCursorY() > ya and GetCursorY() < yb and EzrealConfig.dodgeskillshots then
  587.         timer3 = GetTickCount()
  588.         --[[send.block_input(true,500)]]--  
  589.         MoveToXYZ(dodgex,0,dodgez)
  590.     end
  591. end
  592.  
  593. function dodgelinepass(pos1, pos2, radius, maxDist)
  594.     local pm2x = pos1.x + (maxDist)/(math.floor(math.sqrt((pos1.x-pos2.x)^2 + (pos1.z-pos2.z)^2)))*(pos2.x-pos1.x)
  595.     local pm2z = pos1.z + (maxDist)/(math.floor(math.sqrt((pos1.x-pos2.x)^2 + (pos1.z-pos2.z)^2)))*(pos2.z-pos1.z)
  596.     local calc1 = (math.floor(math.sqrt((pm2x-myHero.x)^2 + (pm2z-myHero.z)^2)))
  597.     local calc2 = (math.floor(math.sqrt((pos1.x-myHero.x)^2 + (pos1.z-myHero.z)^2)))
  598.     local calc3
  599.     local calc4 = (math.floor(math.sqrt((pos1.x-pm2x)^2 + (pos1.z-pm2z)^2)))
  600.     local perpendicular
  601.     local k
  602.     local x4
  603.     local z4
  604.     local dodgex
  605.     local dodgez
  606.     perpendicular = (math.floor((math.abs((pm2x-pos1.x)*(pos1.z-myHero.z)-(pos1.x-myHero.x)*(pm2z-pos1.z)))/(math.sqrt((pm2x-pos1.x)^2 + (pm2z-pos1.z)^2))))
  607.     k = ((pm2z-pos1.z)*(myHero.x-pos1.x) - (pm2x-pos1.x)*(myHero.z-pos1.z)) / ((pm2z-pos1.z)^2 + (pm2x-pos1.x)^2)
  608.     x4 = myHero.x - k * (pm2z-pos1.z)
  609.     z4 = myHero.z + k * (pm2x-pos1.x)
  610.     calc3 = (math.floor(math.sqrt((x4-myHero.x)^2 + (z4-myHero.z)^2)))
  611.     dodgex = x4 + ((radius+75)/calc3)*(myHero.x-x4)
  612.     dodgez = z4 + ((radius+75)/calc3)*(myHero.z-z4)
  613.     if perpendicular < radius and calc1 < calc4 and calc2 < calc4 and GetCursorX() > xa and GetCursorX() < xb and GetCursorY() > ya and GetCursorY() < yb and EzrealConfig.dodgeskillshots then
  614.         timer3 = GetTickCount()
  615.         --[[send.block_input(true,500)]]--  
  616.         MoveToXYZ(dodgex,0,dodgez)
  617.     end
  618. end
  619.  
  620. function Autolevel()
  621.     local spellLevelSum = GetSpellLevel(Q) + GetSpellLevel(W) + GetSpellLevel(E) + GetSpellLevel(R)
  622.     if attempts <= 10 or (attempts > 10 and GetTickCount() > lastAttempt+1500) then
  623.         if spellLevelSum < myHero.selflevel then
  624.             if lastSpellLevelSum ~= spellLevelSum then attempts = 0 end
  625.             letter = skillingOrder[myHero.name][spellLevelSum+1]
  626.             Level_Spell(letter, spellLevelSum)
  627.             attempts = attempts+1
  628.             lastAttempt = GetTickCount()
  629.             lastSpellLevelSum = spellLevelSum
  630.         else
  631.             attempts = 0
  632.         end
  633.     end
  634.     send.tick()
  635. end
  636.  
  637. function Skillshots()
  638.     cc=cc+1
  639.     if (cc==30) then
  640.         LoadTable()
  641.     end
  642.     for i=1, #skillshotArray, 1 do
  643.         if skillshotArray[i].shot == 1 then
  644.             local radius = skillshotArray[i].radius
  645.             local color = skillshotArray[i].color
  646.             if skillshotArray[i].isline == false then
  647.                 for number, point in pairs(skillshotArray[i].skillshotpoint) do
  648.                     DrawCircle(point.x, point.y, point.z, radius, color)
  649.                 end
  650.             else
  651.                 startVector = Vector(skillshotArray[i].p1x,skillshotArray[i].p1y,skillshotArray[i].p1z)
  652.                 endVector = Vector(skillshotArray[i].p2x,skillshotArray[i].p2y,skillshotArray[i].p2z)
  653.                 directionVector = (endVector-startVector):normalized()
  654.                 local angle=0
  655.                 if (math.abs(directionVector.x)<.00001) then
  656.                     if directionVector.z > 0 then angle=90
  657.                     elseif directionVector.z < 0 then angle=270
  658.                     else angle=0
  659.                     end
  660.                 else
  661.                     local theta = math.deg(math.atan(directionVector.z / directionVector.x))
  662.                     if directionVector.x < 0 then theta = theta + 180 end
  663.                         if theta < 0 then theta = theta + 360 end
  664.                             angle=theta
  665.                         end
  666.                             angle=((90-angle)*2*math.pi)/360
  667.                             DrawLine(startVector.x, startVector.y, startVector.z, GetDistance(startVector, endVector)+170, 1,angle,radius)
  668.                     end
  669.                 end
  670.             end
  671.     for i=1, #skillshotArray, 1 do
  672.         if os.clock() > (skillshotArray[i].lastshot + skillshotArray[i].time) then
  673.         skillshotArray[i].shot = 0
  674.         end
  675.     end
  676. end
  677.  
  678. function Level_Spell(letter)  
  679.      if letter == Q then send.key_press(0x69)
  680.      elseif letter == W then send.key_press(0x6a)
  681.      elseif letter == E then send.key_press(0x6b)
  682.      elseif letter == R then send.key_press(0x6c) end
  683. end
  684.  
  685. function dodgeaoe(pos1, pos2, radius)
  686.     local calc = (math.floor(math.sqrt((pos2.x-myHero.x)^2 + (pos2.z-myHero.z)^2)))
  687.     local dodgex
  688.     local dodgez
  689.     dodgex = pos2.x + ((radius+50)/calc)*(myHero.x-pos2.x)
  690.     dodgez = pos2.z + ((radius+50)/calc)*(myHero.z-pos2.z)
  691.     if EzrealConfig.dodgeskillshots and calc < radius then
  692.         MoveToXYZ(dodgex,0,dodgez)
  693.     end
  694. end
  695.  
  696. function calculateLinepass(pos1, pos2, spacing, maxDist)
  697.     local calc = (math.floor(math.sqrt((pos2.x-pos1.x)^2 + (pos2.z-pos1.z)^2)))
  698.     local line = {}
  699.     local point1 = {}
  700.     point1.x = pos1.x
  701.     point1.y = pos1.y
  702.     point1.z = pos1.z
  703.     local point2 = {}
  704.     point1.x = pos1.x + (maxDist)/calc*(pos2.x-pos1.x)
  705.     point1.y = pos2.y
  706.     point1.z = pos1.z + (maxDist)/calc*(pos2.z-pos1.z)
  707.     table.insert(line, point2)
  708.     table.insert(line, point1)
  709.     return line
  710. end
  711.  
  712. function calculateLineaoe(pos1, pos2, maxDist)
  713.     local line = {}
  714.     local point = {}
  715.     point.x = pos2.x
  716.     point.y = pos2.y
  717.     point.z = pos2.z
  718.     table.insert(line, point)
  719.     return line
  720. end
  721.  
  722. function calculateLineaoe2(pos1, pos2, maxDist)
  723.     local calc = (math.floor(math.sqrt((pos2.x-pos1.x)^2 + (pos2.z-pos1.z)^2)))
  724.     local line = {}
  725.     local point = {}
  726.         if calc < maxDist then
  727.         point.x = pos2.x
  728.         point.y = pos2.y
  729.         point.z = pos2.z
  730.         table.insert(line, point)
  731.     else
  732.         point.x = pos1.x + maxDist/calc*(pos2.x-pos1.x)
  733.         point.z = pos1.z + maxDist/calc*(pos2.z-pos1.z)
  734.         point.y = pos2.y
  735.         table.insert(line, point)
  736.     end
  737.     return line
  738. end
  739.  
  740. function calculateLinepoint(pos1, pos2, spacing, maxDist)
  741.     local line = {}
  742.     local point1 = {}
  743.     point1.x = pos1.x
  744.     point1.y = pos1.y
  745.     point1.z = pos1.z
  746.     local point2 = {}
  747.     point1.x = pos2.x
  748.     point1.y = pos2.y
  749.     point1.z = pos2.z
  750.     table.insert(line, point2)
  751.     table.insert(line, point1)
  752.     return line
  753. end
  754.  
  755. function table_print (tt, indent, done)
  756.     done = done or {}
  757.     indent = indent or 0
  758.     if type(tt) == "table" then
  759.         local sb = {}
  760.         for key, value in pairs (tt) do
  761.             table.insert(sb, string.rep (" ", indent)) -- indent it
  762.             if type (value) == "table" and not done [value] then
  763.                 done [value] = true
  764.                 table.insert(sb, "{\n");
  765.                 table.insert(sb, table_print (value, indent + 2, done))
  766.                 table.insert(sb, string.rep (" ", indent)) -- indent it
  767.                 table.insert(sb, "}\n");
  768.             elseif "number" == type(key) then
  769.                 table.insert(sb, string.format("\"%s\"\n", tostring(value)))
  770.             else
  771.                 table.insert(sb, string.format(
  772.                 "%s = \"%s\"\n", tostring (key), tostring(value)))
  773.             end
  774.         end
  775.         return table.concat(sb)
  776.     else
  777.     return tt .. "\n"
  778.     end
  779. end
  780.  
  781. function LoadTable()
  782.     print("table loaded::")
  783.     local iCount=objManager:GetMaxHeroes()
  784.     print(" heros:" .. tostring(iCount))
  785.     iCount=1;
  786.     for i=0, iCount, 1 do
  787.         local skillshotplayerObj = GetSelf();
  788.         print(" name:" .. skillshotplayerObj.name);
  789.         if 1==1 or skillshotplayerObj.name == "Quinn" then
  790.             table.insert(skillshotArray,{name= "QuinnQMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1025, type = 1, radius = 40, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  791.             skillshotcharexist = true
  792.         end
  793.         if 1==1 or skillshotplayerObj.name == "Lissandra" then
  794.             table.insert(skillshotArray,{name= "LissandraQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 725, type = 1, radius = 100, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  795.             table.insert(skillshotArray,{name= "LissandraE", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 1, radius = 100, color= coloryellow, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  796.             skillshotcharexist = true
  797.         end
  798.         if 1==1 or skillshotplayerObj.name == "Zac" then
  799.             table.insert(skillshotArray,{name= "ZacQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 550, type = 1, radius = 100, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  800.             table.insert(skillshotArray,{name= "ZacE", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1550, type = 3, radius = 200, color= colorcyan, time = 2, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  801.             skillshotcharexist = true
  802.         end
  803.         if 1==1 or skillshotplayerObj.name == "Syndra" then
  804.             table.insert(skillshotArray,{name= "SyndraQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 3, radius = 200, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  805.             table.insert(skillshotArray,{name= "SyndraE", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 650, type = 1, radius = 100, color= coloryellow, time = 0.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  806.             table.insert(skillshotArray,{name= "syndrawcast", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 3, radius = 200, color= colorcyan, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  807.             skillshotcharexist = true
  808.         end
  809.         if 1==1 or skillshotplayerObj.name == "Jayce" then
  810.             table.insert(skillshotArray,{name= "jayceshockblast", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1470, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  811.             skillshotcharexist = true
  812.         end
  813.         if 1==1 or skillshotplayerObj.name == "Nami" then
  814.             table.insert(skillshotArray,{name= "NamiQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 875, type = 3, radius = 200, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  815.             table.insert(skillshotArray,{name= "NamiR", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 2550, type = 1, radius = 350, color= colorcyan, time = 3, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  816.             skillshotcharexist = true
  817.         end
  818.         if 1==1 or skillshotplayerObj.name == "Vi" then
  819.             table.insert(skillshotArray,{name= "ViQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 1, radius = 150, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  820.             skillshotcharexist = true
  821.         end
  822.             if 1==1 or skillshotplayerObj.name == "Thresh" then
  823.             table.insert(skillshotArray,{name= "ThreshQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 100, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  824.             skillshotcharexist = true
  825.         end
  826.         if 1==1 or skillshotplayerObj.name == "Khazix" then
  827.             table.insert(skillshotArray,{name= "KhazixE", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 3, radius = 200, color= colorcyan, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  828.             table.insert(skillshotArray,{name= "KhazixW", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 120, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  829.             table.insert(skillshotArray,{name= "khazixwlong", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  830.             table.insert(skillshotArray,{name= "khazixelong", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 200, color= colorcyan, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  831.             skillshotcharexist = true
  832.         end
  833.         if 1==1 or skillshotplayerObj.name == "Elise" then
  834.             table.insert(skillshotArray,{name= "EliseHumanE", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1075, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  835.             skillshotcharexist = true
  836.         end
  837.         if 1==1 or skillshotplayerObj.name == "Zed" then
  838.             table.insert(skillshotArray,{name= "ZedShuriken", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 1, radius = 100, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  839.             table.insert(skillshotArray,{name= "ZedShadowDash", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 550, type = 3, radius = 150, color= colorcyan, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  840.             table.insert(skillshotArray,{name= "zedw2", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 550, type = 3, radius = 150, color= colorcyan, time = 0.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  841.             skillshotcharexist = true
  842.         end
  843.         if 1==1 or skillshotplayerObj.name == "Ahri" then
  844.             table.insert(skillshotArray,{name= "AhriOrbofDeception", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 880, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  845.             table.insert(skillshotArray,{name= "AhriSeduce", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 975, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  846.         skillshotcharexist = true
  847.         end
  848.         if 1==1 or skillshotplayerObj.name == "Amumu" then
  849.             table.insert(skillshotArray,{name= "BandageToss", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  850.         skillshotcharexist = true
  851.         end
  852.         if 1==1 or skillshotplayerObj.name == "Anivia" then
  853.             table.insert(skillshotArray,{name= "FlashFrostSpell", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 90, color= colorcyan, time = 2, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  854.         skillshotcharexist = true
  855.         end
  856.         if 1==1 or skillshotplayerObj.name == "Ashe" then
  857.             table.insert(skillshotArray,{name= "EnchantedCrystalArrow", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 50000, type = 4, radius = 120, color= colorcyan, time = 4, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  858.         skillshotcharexist = true
  859.         end
  860.         if 1==1 or skillshotplayerObj.name == "Blitzcrank" then
  861.             table.insert(skillshotArray,{name= "RocketGrabMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 925, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  862.         skillshotcharexist = true
  863.         end
  864.         if 1==1 or skillshotplayerObj.name == "Brand" then
  865.             table.insert(skillshotArray,{name= "BrandBlazeMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 1, radius = 70, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  866.             table.insert(skillshotArray,{name= "BrandFissure", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 250, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  867.         skillshotcharexist = true
  868.         end
  869.         if 1==1 or skillshotplayerObj.name == "Cassiopeia" then
  870.             table.insert(skillshotArray,{name= "CassiopeiaMiasma", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 850, type = 3, radius = 175, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  871.             table.insert(skillshotArray,{name= "CassiopeiaNoxiousBlast", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 850, type = 3, radius = 75, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  872.         skillshotcharexist = true
  873.         end
  874.         if 1==1 or skillshotplayerObj.name == "Caitlyn" then
  875.             table.insert(skillshotArray,{name= "CaitlynEntrapmentMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 50, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  876.             table.insert(skillshotArray,{name= "CaitlynPiltoverPeacemaker", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1300, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  877.         skillshotcharexist = true
  878.         end
  879.         if 1==1 or skillshotplayerObj.name == "Corki" then
  880.             table.insert(skillshotArray,{name= "MissileBarrageMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1225, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  881.             table.insert(skillshotArray,{name= "MissileBarrageMissile2", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1225, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  882.             table.insert(skillshotArray,{name= "CarpetBomb", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 2, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  883.         skillshotcharexist = true
  884.         end
  885.         if 1==1 or skillshotplayerObj.name == "Chogath" then
  886.             table.insert(skillshotArray,{name= "Rupture", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 3, radius = 275, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  887.         skillshotcharexist = true
  888.         end
  889.         if 1==1 or skillshotplayerObj.name == "DrMundo" then
  890.             table.insert(skillshotArray,{name= "InfectedCleaverMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  891.         skillshotcharexist = true
  892.         end
  893.         if 1==1 or skillshotplayerObj.name == "Heimerdinger" then
  894.             table.insert(skillshotArray,{name= "CH1ConcussionGrenade", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 3, radius = 225, color= coloryellow, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  895.         skillshotcharexist = true
  896.         end
  897.         if 1==1 or skillshotplayerObj.name == "Draven" then
  898.             table.insert(skillshotArray,{name= "DravenDoubleShot", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 1, radius = 125, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  899.             table.insert(skillshotArray,{name= "DravenRCast", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 5000, type = 1, radius = 100, color= colorcyan, time = 4, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  900.         skillshotcharexist = true
  901.         end
  902.         if 1==1 or skillshotplayerObj.name == "Ezreal" then
  903.             table.insert(skillshotArray,{name= "EzrealEssenceFluxMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  904.             table.insert(skillshotArray,{name= "EzrealMysticShotMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  905.             table.insert(skillshotArray,{name= "EzrealTrueshotBarrage", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 5000, type = 4, radius = 150, color= colorcyan, time = 4, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  906.             table.insert(skillshotArray,{name= "EzrealArcaneShift", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 475, type = 5, radius = 100, color= colorgreen, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  907.         skillshotcharexist = true
  908.         end
  909.         if 1==1 or skillshotplayerObj.name == "Fizz" then
  910.             table.insert(skillshotArray,{name= "FizzMarinerDoom", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1275, type = 2, radius = 100, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  911.         skillshotcharexist = true
  912.         end
  913.         if 1==1 or skillshotplayerObj.name == "FiddleSticks" then
  914.             table.insert(skillshotArray,{name= "Crowstorm", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 3, radius = 600, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  915.         skillshotcharexist = true
  916.         end
  917.         if 1==1 or skillshotplayerObj.name == "Karthus" then
  918.             table.insert(skillshotArray,{name= "LayWaste", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 875, type = 3, radius = 150, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  919.         skillshotcharexist = true
  920.         end
  921.         if 1==1 or skillshotplayerObj.name == "Galio" then
  922.             table.insert(skillshotArray,{name= "GalioResoluteSmite", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 905, type = 3, radius = 200, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  923.             table.insert(skillshotArray,{name= "GalioRighteousGust", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 120, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  924.         skillshotcharexist = true
  925.         end
  926.         if 1==1 or skillshotplayerObj.name == "Graves" then
  927.             table.insert(skillshotArray,{name= "GravesChargeShot", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 110, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  928.             table.insert(skillshotArray,{name= "GravesClusterShot", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 750, type = 1, radius = 50, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  929.             table.insert(skillshotArray,{name= "GravesSmokeGrenade", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 3, radius = 275, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  930.         skillshotcharexist = true
  931.         end
  932.         if 1==1 or skillshotplayerObj.name == "Gragas" then
  933.             table.insert(skillshotArray,{name= "GragasBarrelRoll", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 3, radius = 320, color= coloryellow, time = 2.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  934.             table.insert(skillshotArray,{name= "GragasBodySlam", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 650, type = 2, radius = 60, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  935.             table.insert(skillshotArray,{name= "GragasExplosiveCask", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 3, radius = 400, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  936.         skillshotcharexist = true
  937.         end
  938.         if 1==1 or skillshotplayerObj.name == "Irelia" then
  939.             table.insert(skillshotArray,{name= "IreliaTranscendentBlades", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1200, type = 1, radius = 150, color= colorcyan, time = 0.8, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  940.         skillshotcharexist = true
  941.         end
  942.         if 1==1 or skillshotplayerObj.name == "Janna" then
  943.             table.insert(skillshotArray,{name= "HowlingGale", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1700, type = 1, radius = 100, color= colorcyan, time = 2, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  944.         skillshotcharexist = true
  945.         end
  946.         if 1==1 or skillshotplayerObj.name == "JarvanIV" then
  947.             table.insert(skillshotArray,{name= "JarvanIVDemacianStandard", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 830, type = 3, radius = 150, color= coloryellow, time = 2, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  948.             table.insert(skillshotArray,{name= "JarvanIVDragonStrike", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 770, type = 1, radius = 70, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  949.             table.insert(skillshotArray,{name= "JarvanIVCataclysm", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 650, type = 3, radius = 300, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  950.         skillshotcharexist = true
  951.         end
  952.         if 1==1 or skillshotplayerObj.name == "Kassadin" then
  953.             table.insert(skillshotArray,{name= "RiftWalk", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 5, radius = 150, color= colorgreen, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  954.         skillshotcharexist = true
  955.         end
  956.         if 1==1 or skillshotplayerObj.name == "Katarina" then
  957.             table.insert(skillshotArray,{name= "ShadowStep", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 3, radius = 75, color= colorgreen, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  958.         skillshotcharexist = true
  959.         end
  960.         if 1==1 or skillshotplayerObj.name == "Kennen" then
  961.             table.insert(skillshotArray,{name= "KennenShurikenHurlMissile1", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 1, radius = 75, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  962.         skillshotcharexist = true
  963.         end
  964.         if 1==1 or skillshotplayerObj.name == "KogMaw" then
  965.             table.insert(skillshotArray,{name= "KogMawVoidOozeMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1115, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  966.             table.insert(skillshotArray,{name= "KogMawLivingArtillery", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 2200, type = 3, radius = 200, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  967.         skillshotcharexist = true
  968.         end
  969.         if 1==1 or skillshotplayerObj.name == "Leblanc" then
  970.             table.insert(skillshotArray,{name= "LeblancSoulShackle", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  971.             table.insert(skillshotArray,{name= "LeblancSoulShackleM", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  972.             table.insert(skillshotArray,{name= "LeblancSlide", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 3, radius = 250, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  973.             table.insert(skillshotArray,{name= "LeblancSlideM", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 3, radius = 250, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  974.             table.insert(skillshotArray,{name= "leblancslidereturn", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 3, radius = 50, color= colorgreen, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  975.             table.insert(skillshotArray,{name= "leblancslidereturnm", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 3, radius = 50, color= colorgreen, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  976.         skillshotcharexist = true
  977.         end
  978.         if 1==1 or skillshotplayerObj.name == "LeeSin" then
  979.             table.insert(skillshotArray,{name= "BlindMonkQOne", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 975, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  980.             table.insert(skillshotArray,{name= "BlindMonkRKick", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1200, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  981.         skillshotcharexist = true
  982.         end
  983.         if 1==1 or skillshotplayerObj.name == "Leona" then
  984.             table.insert(skillshotArray,{name= "LeonaZenithBladeMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  985.         skillshotcharexist = true
  986.         end
  987.         if 1==1 or skillshotplayerObj.name == "Lux" then
  988.             table.insert(skillshotArray,{name= "LuxLightBinding", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1175, type = 1, radius = 225, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  989.             table.insert(skillshotArray,{name= "LuxLightStrikeKugel", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 3, radius = 300, color= coloryellow, time = 2.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  990.             table.insert(skillshotArray,{name= "LuxMaliceCannon", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 3000, type = 1, radius = 180, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  991.         skillshotcharexist = true
  992.         end
  993.         if 1==1 or skillshotplayerObj.name == "Lulu" then
  994.             table.insert(skillshotArray,{name= "LuluQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 925, type = 1, radius = 50, color= colorcyan, time = 1, isline = true, px =0, py =0 , pz =0, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  995.         skillshotcharexist = true
  996.         end
  997.         if 1==1 or skillshotplayerObj.name == "Maokai" then
  998.             table.insert(skillshotArray,{name= "MaokaiTrunkLineMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  999.             table.insert(skillshotArray,{name= "MaokaiSapling2", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 3, radius = 350 , color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1000.         skillshotcharexist = true
  1001.         end
  1002.         if 1==1 or skillshotplayerObj.name == "Malphite" then
  1003.             table.insert(skillshotArray,{name= "UFSlash", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 3, radius = 325, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1004.         skillshotcharexist = true
  1005.         end
  1006.         if 1==1 or skillshotplayerObj.name == "Malzahar" then
  1007.             table.insert(skillshotArray,{name= "AlZaharCalloftheVoid", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 100 , color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1008.             table.insert(skillshotArray,{name= "AlZaharNullZone", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 3, radius = 250 , color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1009.         skillshotcharexist = true
  1010.         end
  1011.         if 1==1 or skillshotplayerObj.name == "MissFortune" then
  1012.             table.insert(skillshotArray,{name= "MissFortuneScattershot", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 3, radius = 400, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1013.         skillshotcharexist = true
  1014.         end
  1015.         if 1==1 or skillshotplayerObj.name == "Morgana" then
  1016.             table.insert(skillshotArray,{name= "DarkBindingMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1300, type = 1, radius = 90, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1017.             table.insert(skillshotArray,{name= "TormentedSoil", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 300, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1018.         skillshotcharexist = true
  1019.         end
  1020.         if 1==1 or skillshotplayerObj.name == "Nautilus" then
  1021.             table.insert(skillshotArray,{name= "NautilusAnchorDrag", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 1, radius = 150, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1022.         skillshotcharexist = true
  1023.         end
  1024.         if 1==1 or skillshotplayerObj.name == "Nidalee" then
  1025.             table.insert(skillshotArray,{name= "JavelinToss", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1500, type = 1, radius = 350, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1026.         skillshotcharexist = true
  1027.         end
  1028.         if 1==1 or skillshotplayerObj.name == "Nocturne" then
  1029.             table.insert(skillshotArray,{name= "NocturneDuskbringer", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1200, type = 1, radius = 150, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1030.         skillshotcharexist = true
  1031.         end
  1032.         if 1==1 or skillshotplayerObj.name == "Olaf" then
  1033.             table.insert(skillshotArray,{name= "OlafAxeThrow", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 2, radius = 100, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1034.         skillshotcharexist = true
  1035.         end
  1036.         if 1==1 or skillshotplayerObj.name == "Orianna" then
  1037.             table.insert(skillshotArray,{name= "OrianaIzunaCommand", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 825, type = 3, radius = 150, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1038.         skillshotcharexist = true
  1039.         end
  1040.         if 1==1 or skillshotplayerObj.name == "Renekton" then
  1041.             table.insert(skillshotArray,{name= "RenektonSliceAndDice", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 450, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1042.             table.insert(skillshotArray,{name= "renektondice", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 450, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1043.         skillshotcharexist = true
  1044.         end
  1045.         if 1==1 or skillshotplayerObj.name == "Rumble" then
  1046.             table.insert(skillshotArray,{name= "RumbleGrenadeMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 100, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1047.             table.insert(skillshotArray,{name= "RumbleCarpetBomb", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1700, type = 1, radius = 100, color= coloryellow, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1048.         skillshotcharexist = true
  1049.         end
  1050.         if 1==1 or skillshotplayerObj.name == "Sivir" then
  1051.             table.insert(skillshotArray,{name= "SpiralBlade", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1052.         skillshotcharexist = true
  1053.         end
  1054.         if 1==1 or skillshotplayerObj.name == "Singed" then
  1055.             table.insert(skillshotArray,{name= "MegaAdhesive", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 3, radius = 350, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1056.         skillshotcharexist = true
  1057.         end
  1058.         if 1==1 or skillshotplayerObj.name == "Shen" then
  1059.             table.insert(skillshotArray,{name= "ShenShadowDash", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 2, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1060.         skillshotcharexist = true
  1061.         end
  1062.         if 1==1 or skillshotplayerObj.name == "Shaco" then
  1063.             table.insert(skillshotArray,{name= "Deceive", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 500, type = 5, radius = 100, color= colorgreen, time = 3.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1064.         skillshotcharexist = true
  1065.         end
  1066.         if 1==1 or skillshotplayerObj.name == "Shyvana" then
  1067.             table.insert(skillshotArray,{name= "ShyvanaTransformLeap", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 925, type = 1, radius = 150, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1068.             table.insert(skillshotArray,{name= "ShyvanaFireballMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1069.         skillshotcharexist = true
  1070.         end
  1071.         if 1==1 or skillshotplayerObj.name == "Skarner" then
  1072.             table.insert(skillshotArray,{name= "SkarnerFracture", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1073.         skillshotcharexist = true
  1074.         end
  1075.         if 1==1 or skillshotplayerObj.name == "Sona" then
  1076.             table.insert(skillshotArray,{name= "SonaCrescendo", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1077.         skillshotcharexist = true
  1078.         end
  1079.         if 1==1 or skillshotplayerObj.name == "Sejuani" then
  1080.             table.insert(skillshotArray,{name= "SejuaniGlacialPrison", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1150, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1081.         skillshotcharexist = true
  1082.         end
  1083.         if 1==1 or skillshotplayerObj.name == "Swain" then
  1084.             table.insert(skillshotArray,{name= "SwainShadowGrasp", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 265 , color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1085.         skillshotcharexist = true
  1086.         end
  1087.         if 1==1 or skillshotplayerObj.name == "Tryndamere" then
  1088.             table.insert(skillshotArray,{name= "Slash", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 2, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1089.         skillshotcharexist = true
  1090.         end
  1091.         if 1==1 or skillshotplayerObj.name == "Tristana" then
  1092.             table.insert(skillshotArray,{name= "RocketJump", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 200, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1093.         skillshotcharexist = true
  1094.         end
  1095.         if 1==1 or skillshotplayerObj.name == "TwistedFate" then
  1096.             table.insert(skillshotArray,{name= "WildCards", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1450, type = 1, radius = 150, color= colorcyan, time = 2, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1097.         skillshotcharexist = true
  1098.         end
  1099.         if 1==1 or skillshotplayerObj.name == "Urgot" then
  1100.             table.insert(skillshotArray,{name= "UrgotHeatseekingLineMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= colorcyan, time = 0.8, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1101.             table.insert(skillshotArray,{name= "UrgotPlasmaGrenade", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 3, radius = 300, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1102.         skillshotcharexist = true
  1103.         end
  1104.         if 1==1 or skillshotplayerObj.name == "Vayne" then
  1105.             table.insert(skillshotArray,{name= "VayneTumble", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 250, type = 3, radius = 100, color= colorgreen, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1106.         skillshotcharexist = true
  1107.         end
  1108.         if 1==1 or skillshotplayerObj.name == "Varus" then
  1109.             table.insert(skillshotArray,{name= "VarusQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1475, type = 1, radius = 50, color= coloryellow, time = 1})
  1110.             table.insert(skillshotArray,{name= "VarusR", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1075, type = 1, radius = 150, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1111.         skillshotcharexist = true
  1112.         end
  1113.         if 1==1 or skillshotplayerObj.name == "Veigar" then
  1114.             table.insert(skillshotArray,{name= "VeigarDarkMatter", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 225, color= coloryellow, time = 2, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1115.         skillshotcharexist = true
  1116.         end
  1117.         if 1==1 or skillshotplayerObj.name == "Viktor" then
  1118.             table.insert(skillshotArray,{name= "ViktorDeathRay", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 1, radius = 150, color= coloryellow, time = 2})
  1119.         end
  1120.         if 1==1 or skillshotplayerObj.name == "Xerath" then
  1121.             table.insert(skillshotArray,{name= "xeratharcanopulsedamage", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1122.             table.insert(skillshotArray,{name= "xeratharcanopulsedamageextended", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1300, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1123.             table.insert(skillshotArray,{name= "xeratharcanebarragewrapper", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 250, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1124.             table.insert(skillshotArray,{name= "xeratharcanebarragewrapperext", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1300, type = 3, radius = 250, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1125.         skillshotcharexist = true
  1126.         end
  1127.         if 1==1 or skillshotplayerObj.name == "Ziggs" then
  1128.             table.insert(skillshotArray,{name= "ZiggsQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 850, type = 3, radius = 160, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1129.             table.insert(skillshotArray,{name= "ZiggsW", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 3, radius = 225 , color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1130.             table.insert(skillshotArray,{name= "ZiggsE", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 250, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1131.             table.insert(skillshotArray,{name= "ZiggsR", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 5300, type = 3, radius = 550, color= coloryellow, time = 3, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1132.         skillshotcharexist = true
  1133.         end
  1134.         if 1==1 or skillshotplayerObj.name == "Zyra" then
  1135.             table.insert(skillshotArray,{name= "ZyraQFissure", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 825, type = 3, radius = 275, color= coloryellow, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1136.             table.insert(skillshotArray,{name= "ZyraGraspingRoots", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 90, color= colorcyan, time = 2, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1137.         skillshotcharexist = true
  1138.         end
  1139.         if 1==1 or skillshotplayerObj.name == "Diana" then
  1140.             table.insert(skillshotArray,{name= "DianaArc", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 205, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1141.         skillshotcharexist = true
  1142.         end
  1143.     end
  1144. end
  1145. OnLoad()
  1146.  
  1147. if GetAAData()[myHero.name] ~= nil then print("\n\nEzreal Auto Carry: "..myHero.name.."\n") end
  1148. SetTimerCallback('EzrealRun')
  1149. print("\nIPJs Valezreal v \n")
Advertisement
Add Comment
Please, Sign In to add comment