Illprotectjew

Valezreal with Blocking

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