samipote

Vals RapidFire Karma By Samipote

Apr 2nd, 2014
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 86.86 KB | None | 0 0
  1. require 'Utils'
  2. require 'winapi'
  3. require 'SKeys'
  4. require 'spell_damage'
  5. local Q,W,E,R = 'Q','W','E','R'
  6. local send = require 'SendInputScheduled'
  7. local uiconfig = require 'uiconfig'
  8. local version = '1.8 by Val'
  9. ------------------------------------------------------------------------------
  10. local skillingOrder = {Karma =
  11. -- SKILLORDER FOR AUTOLEVEL: --
  12. {Q,W,E,Q,Q,R,Q,E,Q,E,R,E,E,W,W,R,W,W},}
  13. ------------------------------------------------------------------------------
  14.  
  15. -- DON'T CHANGE ANYTHING BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING --
  16.  
  17. ------------------------------------------------------------------------------
  18. local metakey = SKeys.Control
  19. local attempts = 0
  20. local lastAttempt = 0
  21. ------------------------------------------------------------------------------
  22. local ls = 0
  23. local timer = 0
  24. local target,target2,target3
  25. ------------------------------------------------------------------------------
  26. local spellShot = {shot = false, radius = 0, time = 0, shotX = 0, shotZ = 0, shotY = 0, safeX = 0, safeY = 0, safeZ = 0, isline = false}
  27. local startPos = {x=0, y=0, z=0}
  28. local endPos = {x=0, y=0, z=0}
  29. local shotMe = false
  30. ------------------------------------------------------------------------------
  31. local wUsedAt = 0
  32. local vUsedAt = 0
  33. local mUsedAt = 0
  34. local timer = os.clock()
  35. local bluePill = nil
  36. ------------------------------------------------------------------------------
  37. local skillshotArray = {}
  38. local xa = 50/1920*GetScreenX()
  39. local xb = 1870/1920*GetScreenX()
  40. local ya = 50/1080*GetScreenY()
  41. local yb = 1030/1080*GetScreenY()
  42. local cc = 0
  43. ------------------------------------------------------------------------------
  44.  
  45.  
  46. function Main()
  47.     if IsLolActive() then
  48.         SetVariables()
  49.         GetWeakAlly()
  50.         Items()
  51.         ResetTimer()
  52.         SkillshotMainFunc()
  53.         if KarmaSettings.AutoRQ then AutoRQ() end
  54.         if KarmaSettings.Killsteal then Killsteal() end
  55.         if KarmaSettings.Killnotes then Killnotes() end
  56.         if KarmaHotkeys.QSpell then Qspell() end
  57.         if KarmaHotkeys.Wspell then Wspell() end
  58.         if KarmaHotkeys.Espell then Espell() end
  59.         if KarmaHotkeys.ult then Rspell() end
  60.         if KarmaSettings.Autolevel then Autolevel() end
  61.         if KarmaPotions.AutoPotions then AutoPotions() end
  62.     end
  63. end
  64.  
  65.     KarmaHotkeys, menu = uiconfig.add_menu('1.) Karma Hotkeys', 250)
  66.     menu.keydown('QSpell', 'QSpell', Keys.Y)
  67.     menu.keydown('Wspell', 'Wspell', Keys.X)
  68.     menu.keydown('ult', 'Rspell', Keys.X)
  69.     menu.checkbutton('Espell', 'Rapidfire', Keys.E)
  70.     menu.permashow('QSpell')
  71.     menu.permashow('Wspell')
  72.     menu.permashow('Espell')
  73.    
  74.     KarmaSettings, menu = uiconfig.add_menu('2.) Karma Settings', 250)
  75.     menu.checkbutton('AutoRQ', 'Auto-RQ', true)
  76.     menu.checkbutton('drawcircles', 'Draw Circles', true)
  77.     menu.checkbutton('Killsteal', 'Killsteal', true)
  78.     menu.checkbutton('Killnotes', 'Killsteal notifications', true)
  79.     menu.checkbutton('AutoShield', 'AutoShield', true)
  80.     menu.checkbutton('Autolevel', 'Autolevel', false)
  81.     menu.checkbutton('AutoZonyas', 'Auto Zonyas', true)
  82.     menu.slider('ZhonyasValue', 'Zhonya Hourglass Value', 0, 100, 20, nil, true)
  83.    
  84.     DodgeConfig, menu = uiconfig.add_menu('3.) DodgeSkillshot Config', 250)
  85.     menu.checkbutton('DrawSkillShots', 'Draw Skillshots', true)
  86.     menu.checkbutton('DodgeSkillShots', 'Dodge Skillshots', true)
  87.     menu.checkbutton('DodgeSkillShotsAOE', 'Dodge Skillshots for AOE', true)
  88.     menu.slider('BlockSettings', 'Block user input', 1, 2, 1, {'FixBlock','NoBlock'})
  89.     menu.slider('BlockSettingsAOE', 'Block user input for AOE', 1, 2, 2, {'FixBlock','NoBlock'})
  90.     menu.slider('BlockTime', 'Block imput time', 0, 1000, 750)
  91.    
  92.     KarmaPotions, menu = uiconfig.add_menu('4.) AutoPotion', 250)
  93.     menu.checkbutton('AutoPotions', 'Master Switch: Potions', true)
  94.     menu.checkbutton('Health_Potion_ONOFF', 'Health Potions', true)
  95.     menu.checkbutton('Mana_Potion_ONOFF', 'Mana Potions', true)
  96.     menu.checkbutton('Chrystalline_Flask_ONOFF', 'Chrystalline Flask', true)
  97.     menu.checkbutton('Elixir_of_Fortitude_ONOFF', 'Elixir of Fortitude', true)
  98.     menu.checkbutton('Biscuit_ONOFF', 'Biscuit', true)
  99.     menu.slider('Health_Potion_Value', 'Health Potion Value', 0, 100, 75, nil, true)
  100.     menu.slider('Mana_Potion_Value', 'Mana Potion Value', 0, 100, 75, nil, true)
  101.     menu.slider('Chrystalline_Flask_Value', 'Chrystalline Flask Value', 0, 100, 75, nil, true)
  102.     menu.slider('Elixir_of_Fortitude_Value', 'Elixir of Fortitude Value', 0, 100, 30, nil, true)
  103.     menu.slider('Biscuit_Value', 'Biscuit Value', 0, 100, 60, nil, true)
  104.    
  105. ------------------------------------------------------------------------------------------------
  106. ------------------------------------------- MAIN SCRIPT ----------------------------------------
  107. ------------------------------------------------------------------------------------------------
  108.  
  109. function SetVariables()
  110.     target2 = GetWeakEnemy('MAGIC',650)
  111.     target3 = GetWeakEnemy('MAGIC',950)
  112.    
  113.     if myHero.SpellTimeQ>1 and GetSpellLevel('Q')>0 and myHero.mana>=(45+(myHero.SpellLevelQ*5)) then QRDY = 1
  114.     else QRDY = 0 end
  115.     if myHero.SpellTimeW>1 and GetSpellLevel('W')>0 and myHero.mana>=(65+(myHero.SpellLevelW*5)) then WRDY = 1
  116.     else WRDY = 0 end
  117.     if myHero.SpellTimeE>1 and GetSpellLevel('E')>0 and myHero.mana>=(50+(myHero.SpellLevelE*10)) then ERDY = 1
  118.     else ERDY = 0 end
  119.     if myHero.SpellTimeR>1 then RRDY = 1
  120.     else RRDY = 0 end
  121.    
  122.     if QRDY==0 or (CCenemy~=nil and CreepBlock(GetFireahead(CCenemy,1.6,17,100))==1) then CCenemy=nil end
  123.     if QRDY==0 or RRDY==0 then ls = 0 end
  124.     if CCenemy~=nil then DrawTextObject("CCenemy", CCenemy, Color.Yellow) end
  125. end
  126.  
  127. function Qspell()
  128. SpellPred(Q,QRDY,myHero,target3,950,1.6,17,1,100)
  129. end
  130.  
  131. function Wspell()
  132.     SpellTarget(W,WRDY,myHero,target3,650)
  133. end
  134.  
  135. function Espell()
  136.     if GetDistance(mousePos)<250 then CastSpellTarget('E',myHero)
  137.     else CastSpellTarget('E',myHero)
  138.     end
  139. end
  140.  
  141. function Rspell()
  142. if RRDY == 1 then
  143.     CastSpellTarget('R',myHero)
  144.     end
  145. end
  146.  
  147. function AutoRQ()
  148.     if Kenemy~=nil then
  149.         local root = (750+(myHero.SpellLevelW*250))
  150.         local Qcast = ((1.6*100)+(distXYZ(myHero.x,myHero.z,Kenemy.x,Kenemy.z)/(17/10)))+1500
  151.         local duration = 2000+root-Qcast
  152.         if timer~=0 and QRDY==1 and RRDY==0 then
  153.             SpellPred(Q,QRDY,myHero,Kenemy,900,1.6,17,1,100)
  154.         elseif timer~=0 and GetTickCount()>timer+duration then
  155.             if QRDY==1 and RRDY==1 then
  156.                 SpellPred(R,RRDY*QRDY,myHero,Kenemy,900,1.6,17,1,100)
  157.                 SpellPred(Q,QRDY,myHero,Kenemy,900,1.6,17,1,100)
  158.             end
  159.         end
  160.         if timer~=0 and QRDY==0 and RRDY==0 then
  161.             timer = 0
  162.         end
  163.         if timer~=0 and GetTickCount()>timer+3000 then
  164.             timer=0
  165.         end
  166.         if myHero.dead==1 then
  167.             timer=0
  168.         end
  169.     end
  170.     if CCenemy~=nil then
  171.         SpellXYZ(R,QRDY*RRDY,myHero,myHero,100,myHero.x,myHero.z)
  172.         SpellPred(Q,QRDY*ls,myHero,CCenemy,900,1.6,17,1,100)
  173.     end
  174. end
  175. function OnCreateObj(obj)
  176.     if obj~=nil then
  177.         if obj.charName=='tempkarma_mantraactivate_aura.troy' and GetDistance(obj)<50 then
  178.             ls = 1
  179.         end
  180.         -- Cait E
  181.         -- Elise E
  182.         -- Fizz R (lockon)
  183.         for i = 1, objManager:GetMaxHeroes() do
  184.         local enemy = objManager:GetHero(i)
  185.             if (enemy~=nil and enemy.team~=myHero.team and enemy.visible==1 and enemy.invulnerable==0 and enemy.dead==0 and GetDistance(myHero,enemy)<950) then
  186.                 if obj.charName=='LOC_Stun.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  187.                 elseif obj.charName=='LOC_Suppress.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  188.                 elseif obj.charName=='LOC_Taunt.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  189.                 elseif obj.charName=='LOC_fear.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  190.                 elseif obj.charName=='Global_Stun.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  191.                 elseif obj.charName=='Ahri_Charm_buf.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  192.                 elseif obj.charName=='CurseBandages.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  193.                 elseif obj.charName=='Powerfist_tar.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  194.                 elseif obj.charName=='JarvanCataclysm_tar.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  195.                 elseif obj.charName=='leBlanc_shackle_tar_blood.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  196.                 elseif obj.charName=='LuxLightBinding.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  197.                 elseif obj.charName=='DarkBinding_tar.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  198.                 elseif obj.charName=='RengarEMax_tar.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  199.                 elseif obj.charName=='RunePrison.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  200.                 elseif obj.charName=='Vi_R_land.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  201.                 elseif obj.charName=='UnstoppableForce_stun.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  202.                 elseif obj.charName=='Zyra_E_sequence_root.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  203.                 elseif obj.charName=='monkey_king_ult_unit_tar_02.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  204.                 elseif obj.charName=='xenZiou_ChainAttack_03.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  205.                 elseif obj.charName=='VarusRHit.troy' and GetDistance(enemy,obj)<50 then CCenemy = enemy
  206.                 end
  207.             end
  208.         end
  209.     end
  210. end
  211.  
  212. function Killsteal()
  213.     for i = 1, objManager:GetMaxHeroes() do
  214.         local enemy = objManager:GetHero(i)
  215.         if (enemy ~= nil and enemy.team ~= myHero.team and enemy.visible == 1 and enemy.invulnerable==0 and enemy.dead==0 and GetDistance(myHero,enemy)<850) then
  216.             local Qdam = getDmg("Q",enemy,myHero,1)*QRDY
  217.             local QRdam = (getDmg("Q",enemy,myHero,1)+getDmg("Q",enemy,myHero,2))*QRDY*RRDY
  218.             local Wdam = getDmg("W",enemy,myHero,1)*WRDY/3
  219.             local WRdam = (getDmg("W",enemy,myHero,1)+getDmg("W",enemy,myHero,2))*WRDY*RRDY/3
  220.             local ERdam = getDmg("E",enemy,myHero)*ERDY
  221.            
  222.             if enemy.health < Wdam then
  223.                 SpellTarget(W,WRDY,myHero,enemy,650)
  224.             elseif enemy.health < Qdam then
  225.                 SpellPred(Q,QRDY,myHero,enemy,850,1.6,17,1,100)
  226.             elseif enemy.health < ERdam then
  227.                 SpellTarget(R,RRDY*ERDY,myHero,enemy,600)
  228.                 SpellTarget(E,ERDY*ls,myHero,enemy,600)
  229.             elseif enemy.health < Qdam+Wdam then
  230.                 SpellTarget(W,WRDY,myHero,enemy,650)
  231.                 SpellPred(Q,QRDY,myHero,enemy,850,1.6,17,1,100)
  232.             elseif enemy.health < WRdam then
  233.                 SpellTarget(R,RRDY*WRDY,myHero,enemy,650)
  234.                 SpellTarget(W,WRDY*ls,myHero,enemy,650)
  235.             elseif enemy.health < QRdam then
  236.                 SpellPred(R,RRDY*QRDY,myHero,enemy,850,1.6,17,1,100)
  237.                 SpellPred(Q,QRDY*ls,myHero,enemy,850,1.6,17,1,100)
  238.             elseif enemy.health < QRdam+Wdam and CreepBlock(GetFireahead(enemy,1.6,17,100)) == 0 then
  239.                 SpellTarget(W,WRDY,myHero,enemy,650)
  240.                 SpellPred(R,RRDY*QRDY,myHero,enemy,850,1.6,17,1,100)
  241.                 SpellPred(Q,QRDY*ls,myHero,enemy,850,1.6,17,1,100)
  242.             elseif enemy.health < Wdam+ERdam then
  243.                 SpellTarget(W,WRDY,myHero,enemy,600)
  244.                 SpellTarget(R,RRDY*ERDY,myHero,enemy,600)
  245.                 SpellTarget(E,ERDY*ls,myHero,enemy,600)
  246.             elseif enemy.health < Qdam+ERdam and CreepBlock(GetFireahead(enemy,1.6,17,100)) == 0 then
  247.                 SpellTarget(R,RRDY*ERDY,myHero,enemy,600)
  248.                 SpellTarget(E,ERDY*ls,myHero,enemy,600)
  249.                 SpellPred(Q,QRDY,myHero,enemy,850,1.6,17,1,100)
  250.             elseif enemy.health < Qdam+WRdam and CreepBlock(GetFireahead(enemy,1.6,17,100)) == 0 then
  251.                 SpellTarget(R,RRDY*WRDY,myHero,enemy,650)
  252.                 SpellTarget(W,WRDY*ls,myHero,enemy,650)
  253.                 SpellPred(Q,QRDY,myHero,enemy,850,1.6,17,1,100)
  254.             elseif GetDistance(myHero,enemy) < 600 and enemy.health < Qdam+Wdam+ERdam and CreepBlock(GetFireahead(enemy,1.6,17,100)) == 0 then
  255.                 SpellTarget(R,RRDY*ERDY,myHero,enemy,600)
  256.                 SpellTarget(E,ERDY*ls,myHero,enemy,600)
  257.                 SpellTarget(W,WRDY,myHero,enemy,600)
  258.                 SpellPred(Q,QRDY,myHero,enemy,850,1.6,17,1,100)
  259.             end
  260.         end
  261.     end
  262. end
  263.  
  264. function Killnotes()
  265.     for i = 1, objManager:GetMaxHeroes() do
  266.         local enemy = objManager:GetHero(i)
  267.         if (enemy ~= nil and enemy.team ~= myHero.team and enemy.visible == 1 and enemy.invulnerable==0 and enemy.dead==0) then
  268.             local Q = getDmg("Q",enemy,myHero,1)*QRDY
  269.             local QR = (getDmg("Q",enemy,myHero,1)+getDmg("Q",enemy,myHero,2))*QRDY*RRDY
  270.             local W = getDmg("W",enemy,myHero,1)*WRDY/3
  271.             local WR = (getDmg("W",enemy,myHero,1)+getDmg("W",enemy,myHero,2))*WRDY*RRDY/3
  272.             local ER = getDmg("E",enemy,myHero)*ERDY
  273.             if enemy.health < W and WRDY==1 then
  274.                 DrawTextObject("KILL W", enemy, Color.Yellow)
  275.             elseif enemy.health < Q and QRDY==1 then
  276.                 DrawTextObject("KILL Q", enemy, Color.Yellow)
  277.             elseif enemy.health < ER and ERDY==1 and RRDY==1 then
  278.                 DrawTextObject("KILL ER", enemy, Color.Yellow)
  279.             elseif enemy.health < Q+W and QRDY==1 and WRDY==1 then
  280.                 DrawTextObject("KILL Q+W", enemy, Color.Yellow)
  281.             elseif enemy.health < WR and WRDY==1 and RRDY==1 then
  282.                 DrawTextObject("KILL WR", enemy, Color.Yellow)
  283.             elseif enemy.health < QR and QRDY==1 and RRDY==1 then
  284.                 DrawTextObject("KILL QR", enemy, Color.Yellow)
  285.             elseif enemy.health < QR+W and QRDY==1 and RRDY==1 and WRDY==1 then
  286.                 DrawTextObject("KILL QR+W", enemy, Color.Yellow)
  287.             elseif enemy.health < W+ER and WRDY==1 and ERDY==1  and RRDY==1 then
  288.                 DrawTextObject("KILL W+ER", enemy, Color.Yellow)
  289.             elseif enemy.health < Q+ER and QRDY==1 and ERDY==1 and RRDY==1 then
  290.                 DrawTextObject("KILL Q+ER", enemy, Color.Yellow)
  291.             elseif enemy.health < Q+WR and QRDY==1 and WRDY==1 and RRDY==1 then
  292.                 DrawTextObject("KILL Q+WR", enemy, Color.Yellow)
  293.             elseif enemy.health < Q+W+ER and QRDY==1 and WRDY==1 and ERDY==1 and RRDY==1 then
  294.                 DrawTextObject("KILL Q+W+ER", enemy, Color.Yellow)
  295.             end
  296.         end
  297.     end
  298. end
  299.  
  300. function OnDraw()
  301.     if myHero.dead==0 then
  302.         if KarmaSettings.drawcircles then
  303.             if QRDY == 1 then
  304.                 CustomCircle(900,1,2,myHero)
  305.             end
  306.             if myHero.SpellTimeW > 1.0 then
  307.                 CustomCircle(650,1,3,myHero)
  308.             elseif myHero.SpellTimeW > ((((16-myHero.SpellLevelW)-(((16-myHero.SpellLevelW)*myHero.cdr)/100))*-1)+2) then
  309.                 CustomCircle(800,1,5,myHero)
  310.             end
  311.             if target3 ~= nil then
  312.                 CustomCircle(100,10,2,target3)
  313.             end
  314.             if target3 ~= nil then
  315.                 CustomCircle(75,5,5,target3)
  316.             end
  317.         end
  318.         if spellShot.shot then
  319.             if spellShot.isline then
  320.                 local angle = GetAngle(endPos, startPos)
  321.                 DrawLine(startPos.x, startPos.y, startPos.z, GetDistance(startPos, endPos)+spellShot.radius, 1, angle, spellShot.radius)
  322.             else
  323.                 CustomCircle(spellShot.radius,1,3,"",endPos.x,endPos.y,endPos.z)
  324.             end
  325.             if shotMe then
  326.                 CustomCircle(100,4,5,"",spellShot.safeX,spellShot.safeY,spellShot.safeZ)
  327.             end
  328.         end
  329.     end
  330. end
  331.  
  332. ------------------------------------------------------------------------------------------------
  333. -------------------------------------------- AUTOSHIELD ----------------------------------------
  334. ------------------------------------------------------------------------------------------------
  335.  
  336. function GetWeakAlly()
  337.     local maxHealth = 9999
  338.     target = nil
  339.     for i=1, objManager:GetMaxHeroes(), 1 do
  340.         local object = objManager:GetHero(i)
  341.         if object ~= nil and object.team == myHero.team and GetDistance(object) < 800 and object.charName ~= myHero.charName then
  342.             if object.health < maxHealth then
  343.                 maxHealth = object.health
  344.                 target = object
  345.             end
  346.         end
  347.     end
  348. end
  349.  
  350. local spells = {
  351.     Ahri = {
  352.         {name= "AhriOrbofDeception", radius = 80, time = 1, isline = true},
  353.         {name= "AhriSeduce", radius = 80, time = 1, isline = true},
  354.     },
  355.     Amumu = {
  356.         {name= "BandageToss", radius = 80, time = 1, isline = true},
  357.     },
  358.     Anivia = {
  359.         {name= "FlashFrostSpell", radius = 90, time = 2, isline = true},
  360.     },
  361.     Ashe = {
  362.         {name= "EnchantedCrystalArrow", radius = 120, time = 4, isline = true},
  363.     },
  364.     Blitzcrank = {
  365.         {name= "RocketGrabMissile", radius = 80, time = 1, isline = true},
  366.     },
  367.     Brand = {
  368.         {name= "BrandBlazeMissile", radius = 70, time = 1, isline = true},
  369.         {name= "BrandFissure", radius = 250, time = 4, isline = false},
  370.     },
  371.     Cassiopeia = {
  372.         {name= "CassiopeiaMiasma", radius = 175, time = 1, isline = false},
  373.         {name= "CassiopeiaNoxiousBlast", radius = 75, time = 1, isline = false},
  374.     },
  375.     Caitlyn = {
  376.         {name= "CaitlynEntrapmentMissile", radius = 50, time = 1, isline = true},
  377.         {name= "CaitlynPiltoverPeacemaker", radius = 80, time = 1, isline = true},
  378.     },
  379.     Corki = {
  380.         {name= "MissileBarrageMissile", radius = 80, time = 1, isline = true},
  381.         {name= "MissileBarrageMissile2", radius = 100, time = 1, isline = true},
  382.         {name= "CarpetBomb", radius = 150, time = 1, isline = true},
  383.     },
  384.     Chogath = {
  385.         {name= "Rupture", radius = 275, time = 1, isline = false},
  386.     },
  387.     Diana = {
  388.         {name= "DianaArc", radius = 205, time = 1, isline = true},
  389.     },
  390.     DrMundo = {
  391.         {name= "InfectedCleaverMissile", radius = 80, time = 1, isline = true},
  392.     },
  393.     Draven = {
  394.         {name= "DravenDoubleShot", radius = 125, time = 1, isline = true},
  395.         {name= "DravenRCast", radius = 100, time = 4, isline = true},
  396.     },
  397.     Elise = {
  398.         {name= "EliseHumanE", radius = 100, time = 1, isline = true},
  399.     },
  400.     Ezreal = {
  401.         {name= "EzrealEssenceFluxMissile", radius = 100, time = 1, isline = true},
  402.         {name= "EzrealMysticShotMissile", radius = 80, time = 1, isline = true},
  403.         {name= "EzrealEssenceFluxMissile", radius = 150, time = 4, isline = true},
  404.         {name= "EzrealArcaneShift", radius = 100, time = 1, isline = true},
  405.     },
  406.     Fizz = {
  407.         {name= "FizzMarinerDoom", radius = 100, time = 1.5, isline = true},
  408.     },
  409.     FiddleSticks = {
  410.         {name= "Crowstorm", radius = 600, time = 1.5, isline = false},
  411.     },
  412.     Karthus = {
  413.         {name= "LayWaste", radius = 150, time = 1, isline = false},
  414.     },
  415.     Galio = {
  416.         {name= "GalioResoluteSmite", radius = 200, time = 1.5, isline = false},
  417.         {name= "GalioRighteousGust", radius = 120, time = 1.5, isline = true},
  418.     },
  419.     Graves = {
  420.         {name= "GravesChargeShot", radius = 110, time = 1, isline = true},
  421.         {name= "GalioRighteousGust", radius = 50, time = 1, isline = true},
  422.         {name= "GalioRighteousGust", radius = 275, time = 1.5, isline = false},
  423.     },
  424.     Gragas = {
  425.         {name= "GragasBarrelRoll", radius = 320, time = 2.5, isline = false},
  426.         {name= "GragasBodySlam", radius = 60, time = 1.5, isline = true},
  427.         {name= "GragasExplosiveCask", radius = 400, time = 1.5, isline = false},
  428.     },
  429.     Heimerdinger = {
  430.         {name= "CH1ConcussionGrenade", radius = 225, time = 1.5, isline = true},
  431.     },
  432.     Irelia = {
  433.         {name= "IreliaTranscendentBlades", radius = 80, time = 0.8, isline = true},
  434.     },
  435.     Janna = {
  436.         {name= "HowlingGale", radius = 100, time = 2, isline = true},
  437.     },
  438.     JarvanIV = {
  439.         {name= "JarvanIVDemacianStandard", radius = 150, time = 2, isline = false},
  440.         {name= "JarvanIVDragonStrike", radius = 70, time = 1, isline = true},
  441.         {name= "JarvanIVCataclysm", radius = 300, time = 1.5, isline = false},
  442.     },
  443.     Kassadin = {
  444.         {name= "RiftWalk", radius = 150, time = 1, isline = false},
  445.     },
  446.     Katarina = {
  447.         {name= "ShadowStep", radius = 75, time = 1, isline = false},
  448.     },
  449.     Kennen = {
  450.         {name= "KennenShurikenHurlMissile1", radius = 75, time = 1, isline = true},
  451.     },
  452.     Khazix = {
  453.         {name= "KhazixE", radius = 200, time = 1, isline = false},
  454.         {name= "KhazixW", radius = 120, time = 0.5, isline = true},
  455.         {name= "khazixwlong", radius = 80, time = 1, isline = true},
  456.         {name= "khazixelong", radius = 200, time = 1, isline = false},
  457.     },
  458.     KogMaw = {
  459.         {name= "KogMawVoidOozeMissile", radius = 100, time = 1, isline = true},
  460.         {name= "KogMawLivingArtillery", radius = 200, time = 1.5, isline = false},
  461.     },
  462.     Leblanc = {
  463.         {name= "LeblancSoulShackle", radius = 80, time = 1, isline = true},
  464.         {name= "LeblancSoulShackleM", radius = 80, time = 1, isline = true},
  465.         {name= "LeblancSlide", radius = 250, time = 1, isline = false},
  466.         {name= "LeblancSlideM", radius = 250, time = 1, isline = false},
  467.         {name= "leblancslidereturn", radius = 50, time = 1, isline = false},
  468.         {name= "leblancslidereturnm", radius = 50, time = 1, isline = false},
  469.     },
  470.     LeeSin = {
  471.         {name= "BlindMonkQOne", radius = 80, time = 1, isline = true},
  472.         {name= "BlindMonkRKick", radius = 100, time = 1.5, isline = true},
  473.     },
  474.     LeeSin = {
  475.         {name= "BlindMonkQOne", radius = 80, time = 1, isline = true},
  476.         {name= "BlindMonkRKick", radius = 100, time = 1, isline = true},
  477.     },
  478.     Leona = {
  479.         {name= "LeonaZenithBladeMissile", radius = 80, time = 1, isline = true},
  480.     },
  481.     Lux = {
  482.         {name= "LuxLightBinding", radius = 150, time = 1, isline = true},
  483.         {name= "LuxLightStrikeKugel", radius = 300, time = 2.5, isline = false},
  484.         {name= "LuxMaliceCannon", radius = 180, time = 1.5, isline = true},
  485.     },
  486.     Lulu = {
  487.         {name= "LuluQ", radius = 50, time = 1, isline = true},
  488.     },
  489.     Maokai = {
  490.         {name= "MaokaiTrunkLineMissile", radius = 100, time = 1, isline = true},
  491.         {name= "MaokaiSapling2", radius = 350, time = 1, isline = false},
  492.     },
  493.     Malphite = {
  494.         {name= "UFSlash", radius = 325, time = 1, isline = false},
  495.     },
  496.     Malzahar = {
  497.         {name= "AlZaharCalloftheVoid", radius = 100, time = 1, isline = false},
  498.         {name= "AlZaharNullZone", radius = 250, time = 1, isline = false},
  499.     },
  500.     MissFortune = {
  501.         {name= "MissFortuneScattershot", radius = 400, time = 3, isline = false},
  502.     },
  503.     Morgana = {
  504.         {name= "DarkBindingMissile", radius = 90, time = 1.5, isline = true},
  505.         {name= "TormentedSoil", radius = 300, time = 1.5, isline = false},
  506.     },
  507.     Nautilus = {
  508.         {name= "NautilusAnchorDrag", radius = 80, time = 1.5, isline = true},
  509.     },
  510.     Nidalee = {
  511.         {name= "JavelinToss", radius = 80, time = 1.5, isline = true},
  512.     },
  513.     Nocturne = {
  514.         {name= "NocturneDuskbringer", radius = 80, time = 1.5, isline = true},
  515.     },
  516.     Olaf = {
  517.         {name= "OlafAxeThrow", radius = 100, time = 1.5, isline = true},
  518.     },
  519.     Orianna = {
  520.         {name= "OrianaIzunaCommand", radius = 150, time = 1.5, isline = false},
  521.     },
  522.     Quinn = {
  523.         {name= "QuinnQMissile", radius = 40, time = 1, isline = true},
  524.     },
  525.     Renekton = {
  526.         {name= "RenektonSliceAndDice", radius = 80, time = 1, isline = true},
  527.         {name= "renektondice", radius = 80, time = 1, isline = true},
  528.     },
  529.     Rumble = {
  530.         {name= "RumbleGrenadeMissile", radius = 100, time = 1.5, isline = true},
  531.         {name= "renektondice", radius = 100, time = 1.5, isline = true},
  532.     },
  533.     Sivir = {
  534.         {name= "SpiralBlade", radius = 100, time = 1, isline = true},
  535.     },
  536.     Singed = {
  537.         {name= "MegaAdhesive", radius = 350, time = 1.5, isline = false},
  538.     },
  539.     Singed = {
  540.         {name= "ShenShadowDash", radius = 80, time = 1, isline = true},
  541.     },
  542.     Shaco = {
  543.         {name= "Deceive", radius = 100, time = 3.5, isline = false},
  544.     },
  545.     Shyvana = {
  546.         {name= "ShyvanaTransformLeap", radius = 80, time = 1.5, isline = true},
  547.         {name= "ShyvanaFireballMissile", radius = 80, time = 1, isline = true},
  548.     },
  549.     Skarner = {
  550.         {name= "SkarnerFracture", radius = 100, time = 1, isline = true},
  551.     },
  552.     Sona = {
  553.         {name= "SonaCrescendo", radius = 150, time = 1, isline = true},
  554.     },
  555.     Sejuani = {
  556.         {name= "SejuaniGlacialPrison", radius = 180, time = 1, isline = true},
  557.     },
  558.     Swain = {
  559.         {name= "SwainShadowGrasp", radius = 265, time = 1.5, isline = false},
  560.     },
  561.     Syndra = {
  562.         {name= "SyndraQ", radius = 200, time = 1, isline = false},
  563.         {name= "SyndraE", radius = 100, time = 0.5, isline = true},
  564.         {name= "syndrawcast", radius = 200, time = 1, isline = false},
  565.     },
  566.     Tryndamere = {
  567.         {name= "Slash", radius = 100, time = 1, isline = true},
  568.     },
  569.     Tristana = {
  570.         {name= "RocketJump", radius = 200, time = 1, isline = false},
  571.     },
  572.     TwistedFate = {
  573.         {name= "WildCards", radius = 80, time = 1, isline = true},
  574.     },
  575.     Urgot = {
  576.         {name= "UrgotHeatseekingLineMissile", radius = 80, time = 0.8, isline = true},
  577.         {name= "UrgotPlasmaGrenade", radius = 300, time = 1, isline = false},
  578.     },
  579.     Vayne = {
  580.         {name= "VayneTumble", radius = 100, time = 1, isline = false},
  581.     },
  582.     Varus = {
  583.         --{name= "VarusQ", radius = 50, time = 1, isline = true},
  584.         {name= "VarusR", radius = 80, time = 1.5, isline = true},
  585.     },
  586.     Veigar = {
  587.         {name= "VeigarDarkMatter", radius = 225, time = 2, isline = false},
  588.     },
  589.     Viktor = {
  590.         --{name= "ViktorDeathRay", radius = 80, time = 2, isline = true},
  591.     },
  592.     Xerath = {
  593.         {name= "xeratharcanopulsedamage", radius = 80, time = 1, isline = true},
  594.         {name= "xeratharcanopulsedamageextended", radius = 80, time = 1, isline = true},
  595.         {name= "xeratharcanebarragewrapper", radius = 250, time = 1, isline = false},
  596.         {name= "xeratharcanebarragewrapperext", radius = 250, time = 1, isline = false},
  597.     },
  598.     Zed = {
  599.         {name= "ZedShuriken", radius = 100, time = 1, isline = true},
  600.         {name= "ZedShadowDash", radius = 150, time = 1, isline = false},
  601.         {name= "zedw2", radius = 150, time = 0.5, isline = false},
  602.     },
  603.     Ziggs = {
  604.         {name= "ZiggsQ", radius = 160, time = 1, isline = true},
  605.         {name= "ZiggsW", radius = 225, time = 1, isline = false},
  606.         {name= "ZiggsE", radius = 250, time = 1, isline = false},
  607.         {name= "ZiggsR", radius = 550, time = 3, isline = false},
  608.     },
  609.     Zyra = {
  610.         {name= "ZyraQFissure", radius = 275, time = 1.5, isline = true},
  611.         {name= "ZyraGraspingRoots", radius = 90, time = 2, isline = true},
  612.     },
  613. }
  614.  
  615. function OnProcessSpell(unit,spell)
  616.     if unit ~= nil and spell ~= nil and unit.team == myHero.team then
  617.         for i = 1, objManager:GetMaxHeroes() do
  618.             local enemy = objManager:GetHero(i)
  619.             if (enemy~=nil and enemy.team~=myHero.team and enemy.visible==1 and enemy.invulnerable==0 and enemy.dead==0 and GetDistance(myHero,enemy)<950 and CreepBlock(GetFireahead(enemy,1.6,17,100))==0) then
  620.                 if     unit.name=='Aatrox'      and spell.name == unit.SpellNameQ and distXYZ(enemy.x,enemy.z,spell.endPos.x,spell.endPos.z)<200 then CCenemy = enemy
  621.                 elseif unit.name=='Alistar'     and spell.name == unit.SpellNameQ and distXYZ(enemy.x,enemy.z,spell.endPos.x,spell.endPos.z)<375 then CCenemy = enemy
  622.                 elseif unit.name=='Chogath'     and spell.name == unit.SpellNameR and distXYZ(enemy.x,enemy.z,spell.endPos.x,spell.endPos.z)<850 then CCenemy = enemy
  623.                 elseif unit.name=='Darius'      and spell.name == unit.SpellNameE and distXYZ(enemy.x,enemy.z,spell.endPos.x,spell.endPos.z)<475 then CCenemy = enemy
  624.                 elseif unit.name=='Diana'       and spell.name == unit.SpellNameE and distXYZ(enemy.x,enemy.z,spell.endPos.x,spell.endPos.z)<250 then CCenemy = enemy
  625.                 elseif unit.name=='Galio'       and spell.name == unit.SpellNameR and distXYZ(enemy.x,enemy.z,spell.endPos.x,spell.endPos.z)<600 then CCenemy = enemy
  626.                 elseif unit.name=='Karma'       and spell.name == unit.SpellNameW and spell.target~=nil and spell.target.name == enemy.name then
  627.                     Kenemy = enemy
  628.                     timer = GetTickCount()
  629.                 elseif unit.name=='Lulu'        and spell.name == unit.SpellNameW and spell.target~=nil and spell.target.name == enemy.name then CCenemy = enemy
  630.                 elseif unit.name=='Malphite'    and spell.name == unit.SpellNameR and distXYZ(enemy.x,enemy.z,spell.endPos.x,spell.endPos.z)<1000 then CCenemy = enemy
  631.                 end
  632.             end
  633.         end
  634.     end
  635.     if unit ~= nil and spell ~= nil and unit.team ~= myHero.team and IsHero(unit) then
  636.         startPos = spell.startPos
  637.         endPos = spell.endPos
  638.         if spell.target ~= nil then
  639.             local targetSpell = spell.target
  640.             if target ~= nil and target.charName == targetSpell.charName then
  641.                 target2 = unit
  642.                 autoShield(target)
  643.             end
  644.             if myHero.charName == targetSpell.charName then
  645.                 target2 = unit
  646.                 autoShield(myHero)
  647.             end        
  648.         end
  649.         if target ~= nil then
  650.             local shot = SpellShotTarget(unit, spell, target)
  651.             if shot ~= nil then
  652.                 spellShot = shot
  653.                 if spellShot.shot then
  654.                     target2 = unit
  655.                     autoShield(target) 
  656.                 end
  657.             end
  658.         end
  659.         local shot = SpellShotTarget(unit, spell, myHero)
  660.         if shot ~= nil then
  661.             spellShot = shot
  662.             if spellShot.shot then
  663.                 shotMe = true
  664.                 target2 = unit
  665.                 autoShield(myHero) 
  666.             end
  667.         end
  668.     end
  669.     if unit ~= nil and spell ~= nil and unit.team ~= myHero.team then
  670.         if  (unit.name == 'Akali' and spell.name ==  unit.SpellNameQ) or
  671.             (unit.name == 'Akali' and spell.name ==  unit.SpellNameR) or
  672.             (unit.name == 'Alistar' and spell.name ==  unit.SpellNameW) or
  673.             (unit.name == 'Anivia' and spell.name ==  unit.SpellNameE) or
  674.             (unit.name == 'Annie' and spell.name ==  unit.SpellNameQ) or
  675.             (unit.name == 'Brand' and spell.name ==  unit.SpellNameW) or
  676.             (unit.name == 'Brand' and spell.name ==  unit.SpellNameR) or
  677.             (unit.name == 'Caitlyn' and spell.name ==  unit.SpellNameR) or
  678.             (unit.name == 'Cassiopeia' and spell.name ==  unit.SpellNameE) or
  679.             (unit.name == 'Chogath' and spell.name ==  unit.SpellNameR) or
  680.             (unit.name == 'Darius' and spell.name ==  unit.SpellNameR) or
  681.             (unit.name == 'Diana' and spell.name ==  unit.SpellNameR) or
  682.             (unit.name == 'Elise' and spell.name ==  unit.SpellNameQ) or
  683.             (unit.name == 'Evelynn' and spell.name ==  unit.SpellNameQ) or
  684.             (unit.name == 'Evelynn' and spell.name ==  unit.SpellNameW) or
  685.             (unit.name == 'FiddleSticks' and spell.name ==  unit.SpellNameW) or
  686.             (unit.name == 'FiddleSticks' and spell.name ==  unit.SpellNameE) or
  687.             (unit.name == 'Fiora' and spell.name ==  unit.SpellNameQ) or
  688.             (unit.name == 'Fiora' and spell.name ==  unit.SpellNameR) or
  689.             (unit.name == 'Gangplank' and spell.name ==  unit.SpellNameQ) or
  690.             (unit.name == 'Garen' and spell.name ==  unit.SpellNameR) or
  691.             (unit.name == 'Irelia' and spell.name ==  unit.SpellNameQ) or
  692.             (unit.name == 'Irelia' and spell.name ==  unit.SpellNameE) or
  693.             (unit.name == 'Janna' and spell.name ==  unit.SpellNameW) or
  694.             (unit.name == 'Jarvan' and spell.name ==  unit.SpellNameR) or
  695.             (unit.name == 'Jax' and spell.name ==  unit.SpellNameQ) or
  696.             (unit.name == 'Karma' and spell.name ==  unit.SpellNameW) or
  697.             (unit.name == 'Kassadin' and spell.name ==  unit.SpellNameQ) or
  698.             (unit.name == 'Katarina' and spell.name ==  unit.SpellNameQ) or
  699.             (unit.name == 'Katarina' and spell.name ==  unit.SpellNameE) or
  700.             (unit.name == 'Kayle' and spell.name ==  unit.SpellNameQ) or
  701.             (unit.name == 'Khazix' and spell.name ==  unit.SpellNameQ) or
  702.             (unit.name == 'Kogmaw' and spell.name ==  unit.SpellNameQ) or
  703.             (unit.name == 'Leblanc' and spell.name ==  unit.SpellNameQ) or
  704.             (unit.name == 'LeeSin' and spell.name ==  unit.SpellNameR) or
  705.             (unit.name == 'Lulu' and spell.name ==  unit.SpellNameE) or
  706.             (unit.name == 'Malphite' and spell.name ==  unit.SpellNameQ) or
  707.             (unit.name == 'Malzahar' and spell.name ==  unit.SpellNameE) or
  708.             (unit.name == 'Malzahar' and spell.name ==  unit.SpellNameR) or
  709.             (unit.name == 'Maokai' and spell.name ==  unit.SpellNameW) or
  710.             (unit.name == 'MasterYi' and spell.name ==  unit.SpellNameQ) or
  711.             (unit.name == 'MissFortune' and spell.name ==  unit.SpellNameQ) or
  712.             (unit.name == 'Mordekaiser' and spell.name ==  unit.SpellNameR) or
  713.             (unit.name == 'Nami' and spell.name ==  unit.SpellNameW) or
  714.             (unit.name == 'Nautilus' and spell.name ==  unit.SpellNameR) or
  715.             (unit.name == 'Nocturne' and spell.name ==  unit.SpellNameE) or
  716.             (unit.name == 'Nocturne' and spell.name ==  unit.SpellNameR) or
  717.             (unit.name == 'Nunu' and spell.name ==  unit.SpellNameE) or
  718.             (unit.name == 'Olaf' and spell.name ==  unit.SpellNameE) or
  719.             (unit.name == 'Pantheon' and spell.name ==  unit.SpellNameQ) or
  720.             (unit.name == 'Pantheon' and spell.name ==  unit.SpellNameW) or
  721.             (unit.name == 'Poppy' and spell.name ==  unit.SpellNameE) or
  722.             (unit.name == 'Rammus' and spell.name ==  unit.SpellNameE) or
  723.             (unit.name == 'Rengar' and spell.name ==  unit.SpellNameW) or
  724.             (unit.name == 'Ryze' and spell.name ==  unit.SpellNameQ) or
  725.             (unit.name == 'Ryze' and spell.name ==  unit.SpellNameW) or
  726.             (unit.name == 'Ryze' and spell.name ==  unit.SpellNameE) or
  727.             (unit.name == 'Shaco' and spell.name ==  unit.SpellNameE) or
  728.             (unit.name == 'Shen' and spell.name ==  unit.SpellNameQ) or
  729.             (unit.name == 'Singed' and spell.name ==  unit.SpellNameE) or
  730.             (unit.name == 'Sion' and spell.name ==  unit.SpellNameQ) or
  731.             (unit.name == 'Skarner' and spell.name ==  unit.SpellNameR) or
  732.             (unit.name == 'Soraka' and spell.name ==  unit.SpellNameE) or
  733.             (unit.name == 'Swain' and spell.name ==  unit.SpellNameE) or
  734.             (unit.name == 'Syndra' and spell.name ==  unit.SpellNameR) or
  735.             (unit.name == 'Talon' and spell.name ==  unit.SpellNameE) or
  736.             (unit.name == 'Taric' and spell.name ==  unit.SpellNameE) or
  737.             (unit.name == 'Teemo' and spell.name ==  unit.SpellNameQ) or
  738.             (unit.name == 'Tristana' and spell.name ==  unit.SpellNameE) or
  739.             (unit.name == 'Tristana' and spell.name ==  unit.SpellNameR) or
  740.             (unit.name == 'Trundle' and spell.name ==  unit.SpellNameR) or
  741.             (unit.name == 'Vayne' and spell.name ==  unit.SpellNameE) or
  742.             (unit.name == 'Veigar' and spell.name ==  unit.SpellNameQ) or
  743.             (unit.name == 'Veigar' and spell.name ==  unit.SpellNameR) or
  744.             (unit.name == 'Vi' and spell.name ==  unit.SpellNameR) or
  745.             (unit.name == 'Victor' and spell.name ==  unit.SpellNameQ) or
  746.             (unit.name == 'Vladimir' and spell.name ==  unit.SpellNameQ) or
  747.             (unit.name == 'Volibaer' and spell.name ==  unit.SpellNameW) or
  748.             (unit.name == 'Warwick' and spell.name ==  unit.SpellNameQ) or
  749.             (unit.name == 'Warwick' and spell.name ==  unit.SpellNameR) or
  750.             (unit.name == 'MonkeyKing' and spell.name ==  unit.SpellNameE) or
  751.             (unit.name == 'Xerath' and spell.name ==  unit.SpellNameE) or
  752.             (unit.name == 'XinZhao' and spell.name ==  unit.SpellNameE) or
  753.             (unit.name == 'Yasuo' and spell.name ==  unit.SpellNameE) or
  754.             (unit.name == 'Yasuo' and spell.name ==  unit.SpellNameR) or
  755.             (unit.name == 'Yorick' and spell.name ==  unit.SpellNameE) or
  756.             (unit.name == 'Zed' and spell.name ==  unit.SpellNameR) or
  757.             (unit.name == 'Zilean' and spell.name ==  unit.SpellNameQ) or
  758.             (unit.name == 'Jayce' and spell.name == 'JayceToTheSkies') or
  759.             (unit.name == 'Jayce' and spell.name == 'JayceThunderingBlow') or
  760.             (unit.name == 'Leblanc' and spell.name == 'LeblancChaosOrbM') or
  761.             (unit.name == 'LeeSin' and spell.name == 'blindmonkqtwo') then
  762.             for i=1, objManager:GetMaxHeroes(), 1 do
  763.                 local ally = objManager:GetHero(i)
  764.                 if ally ~= nil and ally.team == myHero.team and GetDistance(ally) < 800 and ally.visible == 1 and ally.invulnerable and ally.dead == 0 then
  765.                     if spell.target~=nil and spell.target.name == ally.name then
  766.                         autoShield(ally)
  767.                     elseif spell.target~=nil and spell.target.name == myHero.name then
  768.                         autoShield(myHero)
  769.                     end
  770.                 end
  771.             end
  772.         end
  773.     end
  774.     local P1 = spell.startPos
  775.     local P2 = spell.endPos
  776.     local calc = (math.floor(math.sqrt((P2.x-unit.x)^2 + (P2.z-unit.z)^2)))
  777.     if string.find(unit.name,"Minion_") == nil and string.find(unit.name,"Turret_") == nil then
  778.         if (unit.team ~= myHero.team or (show_allies==1)) and string.find(spell.name,"Basic") == nil then
  779.             for i=1, #skillshotArray, 1 do
  780.                 local maxdist
  781.                 local dodgeradius
  782.                 dodgeradius = skillshotArray[i].radius
  783.                 maxdist = skillshotArray[i].maxdistance
  784.                 if spell.name == skillshotArray[i].name then
  785.                     skillshotArray[i].shot = 1
  786.                     skillshotArray[i].lastshot = os.clock()
  787.                     if skillshotArray[i].type == 1 then
  788.                         skillshotArray[i].p1x = unit.x
  789.                         skillshotArray[i].p1y = unit.y
  790.                         skillshotArray[i].p1z = unit.z
  791.                         skillshotArray[i].p2x = unit.x + (maxdist)/calc*(P2.x-unit.x)
  792.                         skillshotArray[i].p2y = P2.y
  793.                         skillshotArray[i].p2z = unit.z + (maxdist)/calc*(P2.z-unit.z)
  794.                         dodgelinepass(unit, P2, dodgeradius, maxdist)
  795.                     elseif skillshotArray[i].type == 2 then
  796.                         skillshotArray[i].px = P2.x
  797.                         skillshotArray[i].py = P2.y
  798.                         skillshotArray[i].pz = P2.z
  799.                         dodgelinepoint(unit, P2, dodgeradius)
  800.                     elseif skillshotArray[i].type == 3 then
  801.                         skillshotArray[i].skillshotpoint = calculateLineaoe(unit, P2, maxdist)
  802.                         if skillshotArray[i].name ~= "SummonerClairvoyance" then
  803.                             dodgeaoe(unit, P2, dodgeradius)
  804.                         end
  805.                     elseif skillshotArray[i].type == 4 then
  806.                         skillshotArray[i].px = unit.x + (maxdist)/calc*(P2.x-unit.x)
  807.                         skillshotArray[i].py = P2.y
  808.                         skillshotArray[i].py = P2.y
  809.                         skillshotArray[i].pz = unit.z + (maxdist)/calc*(P2.z-unit.z)
  810.                         dodgelinepass(unit, P2, dodgeradius, maxdist)
  811.                     elseif skillshotArray[i].type == 5 then
  812.                         skillshotArray[i].skillshotpoint = calculateLineaoe2(unit, P2, maxdist)
  813.                         dodgeaoe(unit, P2, dodgeradius)
  814.                     end
  815.                 end
  816.             end
  817.         end
  818.     end
  819. end
  820.  
  821. function ResetTimer()
  822.     if GetTickCount() - spellShot.time > 0 then
  823.         spellShot.shot = false
  824.         spellShot.time = 0
  825.         shotMe = false
  826.     end
  827. end
  828.  
  829. function IsHero(unit)
  830.   for i=1, objManager:GetMaxHeroes(), 1 do
  831.         local object = objManager:GetHero(i)
  832.         if object ~= nil and object.charName == unit.charName then
  833.             return true
  834.         end
  835.     end
  836.     return false
  837. end
  838.  
  839. function autoShield(target)
  840.     if KarmaSettings.AutoShield and ERDY==1 then
  841.         CastSpellTarget("E",target)
  842.     end
  843. end
  844.  
  845.  
  846. function GetAngle(p1, p2)
  847.     local a = p1.x - p2.x
  848.     local b = p1.z - p2.z
  849.   local angle = math.atan(a/b)
  850.   if b < 0 then
  851.     angle = angle+math.pi
  852.   end          
  853.   return angle
  854. end
  855.  
  856. function GetLinePoint(pos,angle,distance)
  857.     local ret = {x = 0, y = 0, z = 0}
  858.     ret.x = pos.x - distance*math.sin(angle)
  859.     ret.z = pos.z - distance*math.cos(angle)
  860.     return ret
  861. end
  862.  
  863. function GetSpellShot(name,spellName)
  864.     local spellTable = spells[name]
  865.     if spellTable ~= nil then
  866.         for i=1, #spellTable, 1 do 
  867.             if spellName == spellTable[i].name then
  868.                 local ret = spellTable[i]
  869.                 return ret
  870.             end
  871.         end
  872.     end
  873.     return nil
  874. end
  875.  
  876. function SpellShotTarget(unit,spell,target)
  877.     if unit ~= nil and unit.team ~= target.team and spell ~= nil then
  878.         local spellShot = GetSpellShot(unit.name, spell.name)
  879.         if spellShot ~= nil then
  880.             if spellShot.isline then
  881.                 local angle = GetAngle(spell.startPos, spell.endPos)
  882.                 local d1 = GetDistance(spell.startPos, spell.endPos)
  883.                 local d2 = GetDistance(spell.startPos, target)
  884.                 if d2 < d1 + spellShot.radius then
  885.                     local point = GetLinePoint(spell.startPos, angle, d2)
  886.                     local d3 = GetDistance(target, point)
  887.                     if d3 <= spellShot.radius then
  888.                         local angle = GetAngle(point, target)
  889.                         local safePoint = GetLinePoint(point, angle, spellShot.radius*1.2)
  890.                         if IsWall(safePoint.x, safePoint.y, safePoint.z) == 1 then
  891.                             angle = GetAngle(safePoint, point)
  892.                             safePoint = GetLinePoint(safePoint, angle, spellShot.radius*1.2*2)
  893.                             if IsWall(safePoint.x, safePoint.y, safePoint.z) == 1 then
  894.                                 return nil
  895.                             end
  896.                         end
  897.                         local ret = {shot = false, radius = 0, time = 0, shotX = 0, shotZ = 0, shotY = 0, safeX = 0, safeY = 0, safeZ = 0, isline = false}
  898.                         ret.shot = true
  899.                         ret.radius = spellShot.radius
  900.                         ret.time = GetClock()+spellShot.time*1000
  901.                         ret.shotX = point.x
  902.                         ret.shotY = point.y
  903.                         ret.shotZ = point.z
  904.                         ret.safeX = safePoint.x
  905.                         ret.safeY = safePoint.y
  906.                         ret.safeZ = safePoint.z
  907.                         ret.isline = true
  908.                         return ret
  909.                     end
  910.                 end
  911.             else
  912.                 local d1 = GetDistance(target, spell.endPos)
  913.                 if d1 <= spellShot.radius then
  914.                     local angle = GetAngle(spell.startPos, spell.endPos)
  915.                     local d2 = GetDistance(spell.startPos, target)
  916.                     local point = GetLinePoint(spell.startPos, angle, d2)
  917.                     angle = GetAngle(point, target)
  918.                     local safePoint = GetLinePoint(point, angle, spellShot.radius*1.2)
  919.                     if IsWall(safePoint.x, safePoint.y, safePoint.z) == 1 then
  920.                         return nil
  921.                     end
  922.                     local ret = {shot = false, radius = 0, time = 0, shotX = 0, shotZ = 0, shotY = 0, safeX = 0, safeY = 0, safeZ = 0, isline = false}
  923.                     ret.shot = true
  924.                     ret.radius = spellShot.radius
  925.                     ret.time = GetClock()+spellShot.time*1000
  926.                     ret.shotX = spell.endPos.x
  927.                     ret.shotY = spell.endPos.y
  928.                     ret.shotZ = spell.endPos.z
  929.                     ret.safeX = safePoint.x
  930.                     ret.safeY = safePoint.y
  931.                     ret.safeZ = safePoint.z
  932.                     ret.isline = false
  933.                     return ret
  934.                 end
  935.             end
  936.         end
  937.     end
  938.     return nil
  939. end
  940.  
  941. ------------------------------------------------------------------------------------------------
  942. -------------------------------------------- AUTOLEVEL -----------------------------------------
  943. ------------------------------------------------------------------------------------------------
  944.  
  945. function Level_Spell(letter)  
  946.      if letter == Q then send.key_press(0x69)
  947.      elseif letter == W then send.key_press(0x6a)
  948.      elseif letter == E then send.key_press(0x6b)
  949.      elseif letter == R then send.key_press(0x6c) end
  950. end
  951.  
  952. function Autolevel()
  953.     if IsLolActive() then
  954.         spellLevelSum = (GetSpellLevel(Q) + GetSpellLevel(W) + GetSpellLevel(E) + GetSpellLevel(R))-1
  955.         if attempts <= 10 or (attempts > 10 and GetTickCount() > lastAttempt+1500) then
  956.             if spellLevelSum < myHero.selflevel then
  957.                 if lastSpellLevelSum ~= spellLevelSum then attempts = 0 end
  958.                 letter = skillingOrder[myHero.name][spellLevelSum+1]
  959.                 Level_Spell(letter, spellLevelSum)
  960.                 attempts = attempts+1
  961.                 lastAttempt = GetTickCount()
  962.                 lastSpellLevelSum = spellLevelSum
  963.             else
  964.                 attempts = 0
  965.             end
  966.         end
  967.     end
  968.     send.tick()
  969. end
  970.  
  971. ------------------------------------------------------------------------------------------------
  972. ------------------------------------------- AUTOITEMS ----------------------------------------
  973. ------------------------------------------------------------------------------------------------
  974.  
  975. function Items()
  976.     if KarmaSettings.AutoZonyas then
  977.     local target = GetWeakEnemy('MAGIC',1100)
  978.         if target ~= nil then
  979.             if myHero.health < myHero.maxHealth*(KarmaSettings.ZhonyasValue/100) then
  980.                 useZhonyas()
  981.                 useWoogletsWitchcap()
  982.             end
  983.         end
  984.     end
  985. end
  986. function useZhonyas()
  987.     GetInventorySlot(3157)
  988.     UseItemOnTarget(3157,myHero)
  989. end
  990. function useWoogletsWitchcap()
  991.     GetInventorySlot(3090)
  992.     UseItemOnTarget(3090,myHero)
  993. end
  994.  
  995. ------------------------------------------------------------------------------------------------
  996. ------------------------------------------- AUTOPOTIONS ----------------------------------------
  997. ------------------------------------------------------------------------------------------------
  998.  
  999. function AutoPotions()
  1000.     if bluePill == nil then
  1001.         if myHero.health < myHero.maxHealth * (KarmaPotions.Health_Potion_Value / 100) and GetClock() > wUsedAt + 15000 then
  1002.             usePotion()
  1003.             useBiscuit()
  1004.             wUsedAt = GetTick()
  1005.         elseif myHero.health < myHero.maxHealth * (KarmaPotions.Chrystalline_Flask_Value / 100) and GetClock() > vUsedAt + 10000 then
  1006.             useFlask()
  1007.             vUsedAt = GetTick()
  1008.         elseif myHero.health < myHero.maxHealth * (KarmaPotions.Biscuit_Value / 100) then
  1009.             useBiscuit()
  1010.         elseif myHero.health < myHero.maxHealth * (KarmaPotions.Elixir_of_Fortitude_Value / 100) then
  1011.             useElixir()
  1012.         end
  1013.         if myHero.mana < myHero.maxMana * (KarmaPotions.Mana_Potion_Value / 100) and GetClock() > mUsedAt + 15000 then
  1014.             useManaPot()
  1015.             mUsedAt = GetTick()
  1016.         end
  1017.     end
  1018.     if (os.clock() < timer + 5000) then
  1019.         bluePill = nil
  1020.     end
  1021. end
  1022. function OnCreateObj(object)
  1023.     if (GetDistance(myHero, object)) < 100 then
  1024.         if string.find(object.charName,"FountainHeal") then
  1025.             timer=os.clock()
  1026.             bluePill = object
  1027.         end
  1028.     end
  1029. end
  1030. function usePotion()
  1031.     GetInventorySlot(2003)
  1032.     UseItemOnTarget(2003,myHero)
  1033. end
  1034. function useBiscuit()
  1035.     GetInventorySlot(2009)
  1036.     UseItemOnTarget(2009,myHero)
  1037. end
  1038. function useFlask()
  1039.     GetInventorySlot(2041)
  1040.     UseItemOnTarget(2041,myHero)
  1041. end
  1042. function useBiscuit()
  1043.     GetInventorySlot(2009)
  1044.     UseItemOnTarget(2009,myHero)
  1045. end
  1046. function useElixir()
  1047.     GetInventorySlot(2037)
  1048.     UseItemOnTarget(2037,myHero)
  1049. end
  1050. function useManaPot()
  1051.     GetInventorySlot(2004)
  1052.     UseItemOnTarget(2004,myHero)
  1053. end
  1054. function GetTick()
  1055.     return GetClock()
  1056. end
  1057.  
  1058. ------------------------------------------------------------------------------------------------
  1059. ------------------------------------------- SKILLSHOTS -----------------------------------------
  1060. ------------------------------------------------------------------------------------------------
  1061.  
  1062. function Skillshots()
  1063.     if DodgeConfig.DrawSkillShots == true then
  1064.         for i=1, #skillshotArray, 1 do
  1065.             if skillshotArray[i].shot == 1 then
  1066.                 local radius = skillshotArray[i].radius
  1067.                 local color = skillshotArray[i].color
  1068.                 if skillshotArray[i].isline == false then
  1069.                     for number, point in pairs(skillshotArray[i].skillshotpoint) do
  1070.                         DrawCircle(point.x, point.y, point.z, radius, color)
  1071.                     end
  1072.                 else
  1073.                     startVector = Vector(skillshotArray[i].p1x,skillshotArray[i].p1y,skillshotArray[i].p1z)
  1074.                     endVector = Vector(skillshotArray[i].p2x,skillshotArray[i].p2y,skillshotArray[i].p2z)
  1075.                     directionVector = (endVector-startVector):normalized()
  1076.                     local angle=0
  1077.                     if (math.abs(directionVector.x)<.00001) then
  1078.                         if directionVector.z > 0 then angle=90
  1079.                         elseif directionVector.z < 0 then angle=270
  1080.                         else angle=0
  1081.                         end
  1082.                     else
  1083.                         local theta = math.deg(math.atan(directionVector.z / directionVector.x))
  1084.                         if directionVector.x < 0 then theta = theta + 180 end
  1085.                         if theta < 0 then theta = theta + 360 end
  1086.                         angle=theta
  1087.                     end
  1088.                     angle=((90-angle)*2*math.pi)/360
  1089.                     DrawLine(startVector.x, startVector.y, startVector.z, GetDistance(startVector, endVector)+170, 1,angle,radius)
  1090.                 end
  1091.             end
  1092.         end
  1093.     end
  1094. end
  1095.  
  1096. function SkillshotMainFunc()
  1097.     send.tick()
  1098.     cc=cc+1
  1099.     if cc==30 then LoadTable() end
  1100.     for i=1, #skillshotArray, 1 do
  1101.         if os.clock() > (skillshotArray[i].lastshot + skillshotArray[i].time) then
  1102.             skillshotArray[i].shot = 0
  1103.         end
  1104.     end
  1105.     Skillshots()
  1106. end
  1107.  
  1108. function MakeStateMatch(changes)
  1109.     for scode,flag in pairs(changes) do    
  1110.         local vk = winapi.map_virtual_key(scode, 3)
  1111.         local is_down = winapi.get_async_key_state(vk)
  1112.         if flag then
  1113.             if is_down then
  1114.                 send.wait(60)
  1115.                 send.key_down(scode)
  1116.                 send.wait(60)
  1117.             else
  1118.             end            
  1119.         else
  1120.             if is_down then
  1121.             else
  1122.                 send.wait(60)
  1123.                 send.key_up(scode)
  1124.                 send.wait(60)
  1125.             end
  1126.         end
  1127.     end
  1128. end
  1129.  
  1130. function dodgeaoe(pos1, pos2, radius)
  1131.     local calc = (math.floor(math.sqrt((pos2.x-myHero.x)^2 + (pos2.z-myHero.z)^2)))
  1132.     local dodgex
  1133.     local dodgez
  1134.     dodgex = pos2.x + ((radius+50)/calc)*(myHero.x-pos2.x)
  1135.     dodgez = pos2.z + ((radius+50)/calc)*(myHero.z-pos2.z)
  1136.     if calc < radius and DodgeConfig.DodgeSkillShotsAOE == true and GetCursorX() > xa and GetCursorX() < xb and GetCursorY() > ya and GetCursorY() < yb then
  1137.         if DodgeConfig.BlockSettingsAOE == 1 then
  1138.             if KarmaHotkeys.QSpell==false and KarmaHotkeys.Wspell==false and KarmaHotkeys.Espell==false then
  1139.                 send.block_input(true,DodgeConfig.BlockTime)
  1140.                 MoveToXYZ(dodgex,0,dodgez)
  1141.             end
  1142.         elseif DodgeConfig.BlockSettingsAOE == 2 or (DodgeConfig.BlockSettingsAOE == 1 and (KarmaHotkeys.QSpell or KarmaHotkeys.Wspell or KarmaHotkeys.Espell)) then
  1143.             MoveToXYZ(dodgex,0,dodgez)
  1144.         end
  1145.     end
  1146. end
  1147.  
  1148. function dodgelinepoint(pos1, pos2, radius)
  1149.     local calc1 = (math.floor(math.sqrt((pos2.x-myHero.x)^2 + (pos2.z-myHero.z)^2)))
  1150.     local calc2 = (math.floor(math.sqrt((pos1.x-myHero.x)^2 + (pos1.z-myHero.z)^2)))
  1151.     local calc4 = (math.floor(math.sqrt((pos1.x-pos2.x)^2 + (pos1.z-pos2.z)^2)))
  1152.     local calc3
  1153.     local perpendicular
  1154.     local k
  1155.     local x4
  1156.     local z4
  1157.     local dodgex
  1158.     local dodgez
  1159.     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))))
  1160.     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)
  1161.     x4 = myHero.x - k * (pos2.z-pos1.z)
  1162.     z4 = myHero.z + k * (pos2.x-pos1.x)
  1163.     calc3 = (math.floor(math.sqrt((x4-myHero.x)^2 + (z4-myHero.z)^2)))
  1164.     dodgex = x4 + ((radius+150)/calc3)*(myHero.x-x4)
  1165.     dodgez = z4 + ((radius+150)/calc3)*(myHero.z-z4)
  1166.     if perpendicular < radius and calc1 < calc4 and calc2 < calc4 and DodgeConfig.DodgeSkillShots == true and GetCursorX() > xa and GetCursorX() < xb and GetCursorY() > ya and GetCursorY() < yb then
  1167.         if DodgeConfig.BlockSettings == 1 then
  1168.             if KarmaHotkeys.QSpell==false and KarmaHotkeys.Wspell==false and KarmaHotkeys.Espell==false then
  1169.                 send.block_input(true,DodgeConfig.BlockTime)
  1170.                 MoveToXYZ(dodgex,0,dodgez)
  1171.             end
  1172.         elseif DodgeConfig.BlockSettings == 2 or (DodgeConfig.BlockSettings == 1 and (KarmaHotkeys.QSpell or KarmaHotkeys.Wspell or KarmaHotkeys.Espell)) then
  1173.             MoveToXYZ(dodgex,0,dodgez)
  1174.         end
  1175.     end
  1176. end
  1177.  
  1178. function dodgelinepass(pos1, pos2, radius, maxDist)
  1179.     local pm2x = pos1.x + (maxDist)/(math.floor(math.sqrt((pos1.x-pos2.x)^2 + (pos1.z-pos2.z)^2)))*(pos2.x-pos1.x)
  1180.     local pm2z = pos1.z + (maxDist)/(math.floor(math.sqrt((pos1.x-pos2.x)^2 + (pos1.z-pos2.z)^2)))*(pos2.z-pos1.z)
  1181.     local calc1 = (math.floor(math.sqrt((pm2x-myHero.x)^2 + (pm2z-myHero.z)^2)))
  1182.     local calc2 = (math.floor(math.sqrt((pos1.x-myHero.x)^2 + (pos1.z-myHero.z)^2)))
  1183.     local calc3
  1184.     local calc4 = (math.floor(math.sqrt((pos1.x-pm2x)^2 + (pos1.z-pm2z)^2)))
  1185.     local perpendicular
  1186.     local k
  1187.     local x4
  1188.     local z4
  1189.     local dodgex
  1190.     local dodgez
  1191.     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))))
  1192.     k = ((pm2z-pos1.z)*(myHero.x-pos1.x) - (pm2x-pos1.x)*(myHero.z-pos1.z)) / ((pm2z-pos1.z)^2 + (pm2x-pos1.x)^2)
  1193.     x4 = myHero.x - k * (pm2z-pos1.z)
  1194.     z4 = myHero.z + k * (pm2x-pos1.x)
  1195.     calc3 = (math.floor(math.sqrt((x4-myHero.x)^2 + (z4-myHero.z)^2)))
  1196.     dodgex = x4 + ((radius+150)/calc3)*(myHero.x-x4)
  1197.     dodgez = z4 + ((radius+150)/calc3)*(myHero.z-z4)
  1198.     if perpendicular < radius and calc1 < calc4 and calc2 < calc4 and DodgeConfig.DodgeSkillShots == true and GetCursorX() > xa and GetCursorX() < xb and GetCursorY() > ya and GetCursorY() < yb then
  1199.         if DodgeConfig.BlockSettings == 1 then
  1200.             if KarmaHotkeys.QSpell==false and KarmaHotkeys.Wspell==false and KarmaHotkeys.Espell==false then
  1201.                 send.block_input(true,DodgeConfig.BlockTime)
  1202.                 MoveToXYZ(dodgex,0,dodgez)
  1203.             end
  1204.         elseif DodgeConfig.BlockSettings == 2 or (DodgeConfig.BlockSettings == 1 and (KarmaHotkeys.QSpell or KarmaHotkeys.Wspell or KarmaHotkeys.Espell)) then
  1205.             MoveToXYZ(dodgex,0,dodgez)
  1206.         end
  1207.     end
  1208. end
  1209.  
  1210. function calculateLinepass(pos1, pos2, spacing, maxDist)
  1211.     local calc = (math.floor(math.sqrt((pos2.x-pos1.x)^2 + (pos2.z-pos1.z)^2)))
  1212.     local line = {}
  1213.     local point1 = {}
  1214.     point1.x = pos1.x
  1215.     point1.y = pos1.y
  1216.     point1.z = pos1.z
  1217.     local point2 = {}
  1218.     point1.x = pos1.x + (maxDist)/calc*(pos2.x-pos1.x)
  1219.     point1.y = pos2.y
  1220.     point1.z = pos1.z + (maxDist)/calc*(pos2.z-pos1.z)
  1221.     table.insert(line, point2)
  1222.     table.insert(line, point1)
  1223.     return line
  1224. end
  1225.  
  1226. function calculateLineaoe(pos1, pos2, maxDist)
  1227.     local line = {}
  1228.     local point = {}
  1229.     point.x = pos2.x
  1230.     point.y = pos2.y
  1231.     point.z = pos2.z
  1232.     table.insert(line, point)
  1233.     return line
  1234. end
  1235.  
  1236. function calculateLineaoe2(pos1, pos2, maxDist)
  1237.     local calc = (math.floor(math.sqrt((pos2.x-pos1.x)^2 + (pos2.z-pos1.z)^2)))
  1238.     local line = {}
  1239.     local point = {}
  1240.         if calc < maxDist then
  1241.         point.x = pos2.x
  1242.         point.y = pos2.y
  1243.         point.z = pos2.z
  1244.         table.insert(line, point)
  1245.     else
  1246.         point.x = pos1.x + maxDist/calc*(pos2.x-pos1.x)
  1247.         point.z = pos1.z + maxDist/calc*(pos2.z-pos1.z)
  1248.         point.y = pos2.y
  1249.         table.insert(line, point)
  1250.     end
  1251.     return line
  1252. end
  1253.  
  1254. function calculateLinepoint(pos1, pos2, spacing, maxDist)
  1255.     local line = {}
  1256.     local point1 = {}
  1257.     point1.x = pos1.x
  1258.     point1.y = pos1.y
  1259.     point1.z = pos1.z
  1260.     local point2 = {}
  1261.     point1.x = pos2.x
  1262.     point1.y = pos2.y
  1263.     point1.z = pos2.z
  1264.     table.insert(line, point2)
  1265.     table.insert(line, point1)
  1266.     return line
  1267. end
  1268.  
  1269. ------------------------------------------------------------------------------------------------
  1270. --------------------------------------------- MISC ---------------------------------------------
  1271. ------------------------------------------------------------------------------------------------
  1272.  
  1273. function SpellTarget(spell,cd,a,b,range)
  1274.     if a ~= nil and b ~= nil then
  1275.         if (cd == 1 or cd) and GetDistance(a,b) < range then
  1276.             CastSpellTarget(spell,b)
  1277.         end
  1278.     end
  1279. end
  1280.  
  1281. function SpellXYZ(spell,cd,a,b,range,x,z)
  1282.     if a ~= nil and b ~= nil then
  1283.         local y = 0
  1284.         if (cd == 1 or cd) and x ~= nil and z ~= nil and GetDistance(a,b) < range then
  1285.             CastSpellXYZ(spell,x,y,z)
  1286.         end
  1287.     end
  1288. end
  1289.  
  1290. function SpellPred(spell,cd,a,b,range,delay,speed,block,blockradius)
  1291.     if (cd == 1 or cd) and a ~= nil and b ~= nil and delay ~= nil and speed ~= nil and GetDistance(a,b)<range then
  1292.         local FX,FY,FZ = GetFireahead(b,delay,speed)
  1293.         if distXYZ(a.x,a.z,FX,FZ)<range then
  1294.             if block == 1 and blockradius==nil then
  1295.                 if CreepBlock(a.x,a.y,a.z,FX,FY,FZ) == 0 then
  1296.                     CastSpellXYZ(spell,FX,FY,FZ)
  1297.                 end
  1298.             elseif block == 1 and blockradius~=nil then
  1299.                 if CreepBlock(a.x,a.y,a.z,FX,FY,FZ,blockradius) == 0 then
  1300.                     CastSpellXYZ(spell,FX,FY,FZ)
  1301.                 end
  1302.             else CastSpellXYZ(spell,FX,FY,FZ)
  1303.             end
  1304.         end
  1305.     end
  1306. end
  1307.  
  1308. function SpellPredSimple(spell,cd,a,b,range,delay,speed,block)
  1309.     if (cd == 1 or cd) and a ~= nil and b ~= nil and delay ~= nil and speed ~= nil and GetDistance(a,b)<range then
  1310.         local FX,FY,FZ = GetFireahead(b,delay,speed)
  1311.         if block == 1 then
  1312.             if CreepBlock(a.x,a.y,a.z,FX,FY,FZ) == 0 then
  1313.                 CastSpellXYZ(spell,FX,FY,FZ)
  1314.             end
  1315.         else CastSpellXYZ(spell,FX,FY,FZ)
  1316.         end
  1317.     end
  1318. end
  1319.  
  1320. function distXYZ(a1,a2,b1,b2)
  1321.     if b1 == nil or b2 == nil then
  1322.         b1 = myHero.x
  1323.         b2 = myHero.z
  1324.     end
  1325.     if a2 ~= nil and b2 ~= nil and a1~=nil and b1~=nil then
  1326.         a = (b1-a1)
  1327.         b = (b2-a2)
  1328.         if a~=nil and b~=nil then
  1329.             a2=a*a
  1330.             b2=b*b
  1331.             if a2~=nil and b2~=nil then
  1332.                 return math.sqrt(a2+b2)
  1333.             else
  1334.                 return 99999
  1335.             end
  1336.         else
  1337.             return 99999
  1338.         end
  1339.     end
  1340. end
  1341.  
  1342. function IsLolActive()
  1343.     return tostring(winapi.get_foreground_window()) == "League of Legends (TM) Client" and IsChatOpen() == 0
  1344. end
  1345.  
  1346. function IsBuffed(target,name)
  1347.     for i = 1, objManager:GetMaxObjects(), 1 do
  1348.         obj = objManager:GetObject(i)
  1349.         if obj~=nil and target~=nil and string.find(obj.charName,name) and GetDistance(obj, target) < 100 then
  1350.             return true
  1351.         end
  1352.     end
  1353. end
  1354.  
  1355. ------------------------------------------------------------------------------------------------
  1356. -------------------------------------------- Table ---------------------------------------------
  1357. ------------------------------------------------------------------------------------------------
  1358.  
  1359. function LoadTable()
  1360.     for i = 1, objManager:GetMaxHeroes() do
  1361.         local enemy = objManager:GetHero(i)
  1362.         if (enemy ~= nil and enemy.team ~= myHero.team) then
  1363.             if enemy.name == 'Aatrox' then
  1364.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 650, type = 3, radius = 225, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1365.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 125, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1366.             end
  1367.             if enemy.name == 'Ahri' then
  1368.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 880, type = 1, radius = 80, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1369.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 975, type = 1, radius = 80, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1370.             end
  1371.             if enemy.name == 'Alistar' then
  1372.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 50, type = 3, radius = 200, color= 0x0000FFFF, time = 0.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1373.             end
  1374.             if enemy.name == 'Amumu' then
  1375.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 80, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1376.             end
  1377.             if enemy.name == 'Anivia' then
  1378.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 90, color= 0x0000FFFF, time = 2, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1379.             end
  1380.             if enemy.name == 'Annie' then
  1381.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 3, radius = 300, color= 0x0000FFFF, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1382.             end
  1383.             if enemy.name == 'Ashe' then
  1384.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 50000, type = 4, radius = 120, color= 0x0000FFFF, time = 4, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1385.             end
  1386.             if enemy.name == 'Blitzcrank' then
  1387.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 925, type = 1, radius = 120, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1388.             end
  1389.             if enemy.name == 'Brand' then
  1390.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 1, radius = 50, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1391.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 250, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1392.             end
  1393.             if enemy.name == 'Cassiopeia' then
  1394.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 850, type = 3, radius = 175, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1395.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 850, type = 3, radius = 125, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1396.             end
  1397.             if enemy.name == 'Caitlyn' then
  1398.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 50, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1399.             end
  1400.             if enemy.name == 'Corki' then
  1401.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1225, type = 1, radius = 100, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1402.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 2, radius = 150, color= 0x0000FFFF, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1403.             end
  1404.             if enemy.name == 'Chogath' then
  1405.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 3, radius = 275, color= 0xFFFFFF00, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1406.             end
  1407.             if enemy.name == 'Darius' then
  1408.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 540, type = 1, radius = 125, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1409.             end
  1410.             if enemy.name == 'Diana' then
  1411.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 1, radius = 205, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1412.             end
  1413.             if enemy.name == 'Draven' then
  1414.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 1, radius = 125, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1415.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 5000, type = 1, radius = 100, color= 0x0000FFFF, time = 4, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1416.             end
  1417.             if enemy.name == 'DrMundo' then
  1418.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 80, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1419.             end
  1420.             if enemy.name == 'Elise' and enemy.range>300 then
  1421.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1075, type = 1, radius = 80, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1422.             end
  1423.             if enemy.name == 'Ezreal' then
  1424.                 table.insert(skillshotArray,{name= enemy.SpellNameWe, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 80, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1425.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 80, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1426.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 5000, type = 4, radius = 150, color= 0x0000FFFF, time = 4, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1427.             end
  1428.             if enemy.name == 'FiddleSticks' then
  1429.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 3, radius = 600, color= 0xFFFFFF00, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1430.             end
  1431.             if enemy.name == 'Fizz' then
  1432.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 400, type = 3, radius = 300, color= 0xFFFFFF00, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })             
  1433.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 550, type = 1, radius = 100, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1434.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1275, type = 2, radius = 100, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1435.             end
  1436.             if enemy.name == 'Galio' then
  1437.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 905, type = 3, radius = 200, color= 0xFFFFFF00, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1438.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 120, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1439.             end
  1440.             if enemy.name == 'Gragas' then
  1441.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 3, radius = 320, color= 0xFFFFFF00, time = 2.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1442.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 650, type = 2, radius = 60, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1443.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 3, radius = 400, color= 0xFFFFFF00, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1444.             end
  1445.             if enemy.name == 'Graves' then
  1446.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 110, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1447.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 750, type = 1, radius = 50, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1448.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 3, radius = 275, color= 0xFFFFFF00, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1449.             end
  1450.             if enemy.name == 'Hecarim' then
  1451.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 125, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1452.             end
  1453.             if enemy.name == 'Heimerdinger' then
  1454.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 100, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1455.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 3, radius = 225, color= 0xFFFFFF00, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1456.             end
  1457.             --[[if enemy.name == 'Irelia' then
  1458.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1200, type = 1, radius = 80, color= 0x0000FFFF, time = 0.8, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1459.             end]]
  1460.             if enemy.name == 'Janna' then
  1461.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1700, type = 1, radius = 100, color= 0x0000FFFF, time = 2, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1462.             end
  1463.             if enemy.name == 'JarvanIV' then
  1464.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 830, type = 3, radius = 150, color= 0xFFFFFF00, time = 2, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1465.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 770, type = 1, radius = 70, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1466.             end
  1467.             if enemy.name == 'Jayce' and enemy.range>300 then
  1468.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1500, type = 1, radius = 125, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1469.             end
  1470.             if enemy.name == 'Jinx' then
  1471.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 1, radius = 100, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1472.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1500, type = 1.5, radius = 100, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1473.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 5000, type = 3, radius = 225, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1474.             end
  1475.             if enemy.name == 'Karma' then
  1476.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 1, radius = 100, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1477.             end
  1478.             if enemy.name == 'Karthus' then
  1479.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 875, type = 3, radius = 150, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1480.             end
  1481.             if enemy.name == 'Kassadin' then
  1482.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 5, radius = 150, color= 0xFF00FF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1483.             end
  1484.             if enemy.name == 'Kennen' then
  1485.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 1, radius = 75, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1486.             end
  1487.             if enemy.name == 'Khazix' then 
  1488.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 75, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1489.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 310, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1490.             end
  1491.             if enemy.name == 'KogMaw' then
  1492.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1115, type = 1, radius = 100, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1493.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 2200, type = 3, radius = 200, color= 0xFFFFFF00, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1494.             end
  1495.             if enemy.name == 'Leblanc' then
  1496.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 80, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1497.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 3, radius = 250, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1498.             end
  1499.             if enemy.name == 'LeeSin' then
  1500.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 975, type = 1, radius = 80, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1501.             end
  1502.             if enemy.name == 'Leona' then
  1503.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 1, radius = 160, color= 0x0000FFFF, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1504.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 1, radius = 100, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1505.             end
  1506.             if enemy.name == 'Lissandra' then
  1507.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 725, type = 1, radius = 100, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1508.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 1, radius = 120, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1509.             end
  1510.             if enemy.name == 'Lucian' then
  1511.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 100, color= 0x0000FFFF, time = 0.75, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1512.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1513.             end
  1514.             if enemy.name == 'Lulu' then
  1515.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 925, type = 1, radius = 50, color= 0x0000FFFF, time = 1, isline = true, px =0, py =0 , pz =0, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1516.             end
  1517.             if enemy.name == 'Lux' then
  1518.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1175, type = 1, radius = 80, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1519.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 3, radius = 300, color= 0xFFFFFF00, time = 2.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1520.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 3000, type = 1, radius = 80, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1521.             end
  1522.             if enemy.name == 'Malphite' then
  1523.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 3, radius = 325, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1524.             end
  1525.             if enemy.name == 'Malzahar' then
  1526.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 100 , color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1527.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 3, radius = 250 , color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1528.             end
  1529.             if enemy.name == 'Maokai' then
  1530.                 table.insert(skillshotArray,{name= 'MaokaiTrunkLineMissile', shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 1, radius = 100, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1531.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 3, radius = 350 , color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1532.             end
  1533.             if enemy.name == 'MissFortune' then
  1534.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 3, radius = 400, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1535.             end
  1536.             if enemy.name == 'Morgana' then
  1537.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1300, type = 1, radius = 100, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1538.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 350, color= 0xFFFFFF00, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1539.             end
  1540.             if enemy.name == 'Nami' then
  1541.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 875, type = 3, radius = 210, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1542.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 2750, type = 1, radius = 335, color= 0xFFFFFF00, time = 3, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1543.             end
  1544.             if enemy.name == 'Nautilus' then
  1545.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 1, radius = 80, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1546.             end
  1547.             if enemy.name == 'Nidalee' then
  1548.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1500, type = 1, radius = 80, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1549.             end
  1550.             if enemy.name == 'Nocturne' then
  1551.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1200, type = 1, radius = 80, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1552.             end
  1553.             if enemy.name == 'Olaf' then
  1554.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 2, radius = 100, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1555.             end
  1556.             if enemy.name == 'Orianna' then
  1557.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 825, type = 3, radius = 150, color= 0xFFFFFF00, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1558.             end
  1559.             if enemy.name == 'Quinn' then
  1560.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1025, type = 1, radius = 150, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1561.             end
  1562.             if enemy.name == 'Renekton' then
  1563.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 450, type = 1, radius = 80, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1564.             end
  1565.             if enemy.name == 'Rumble' then
  1566.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 100, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1567.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1700, type = 1, radius = 100, color= 0xFFFFFF00, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1568.             end
  1569.             if enemy.name == 'Sejuani' then
  1570.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1150, type = 1, radius = 80, color= 0x0000FFFF, time = 1, isline = f, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1571.             end
  1572.             if enemy.name == 'Shen' then
  1573.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 2, radius = 80, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1574.             end
  1575.             if enemy.name == 'Shyvana' then
  1576.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 925, type = 1, radius = 80, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1577.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 80, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1578.             end
  1579.             if enemy.name == 'Sivir' then
  1580.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 100, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1581.             end
  1582.             if enemy.name == 'Skarner' then
  1583.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 1, radius = 100, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1584.             end
  1585.             if enemy.name == 'Sona' then
  1586.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1587.             end
  1588.             if enemy.name == 'Swain' then
  1589.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 265 , color= 0xFFFFFF00, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1590.             end
  1591.             if enemy.name == 'Syndra' then
  1592.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 3, radius = 250, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1593.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 650, type = 1, radius = 100, color= 0xFFFFFF00, time = 0.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1594.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 3, radius = 210, color= 0x0000FFFF, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1595.             end
  1596.             if enemy.name == 'Thresh' then
  1597.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1075, type = 1, radius = 160, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1598.             end
  1599.             if enemy.name == 'Tristana' then
  1600.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 200, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1601.             end
  1602.             if enemy.name == 'Tryndamere' then
  1603.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 2, radius = 100, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1604.             end
  1605.             if enemy.name == 'TwistedFate' then
  1606.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1450, type = 1, radius = 100, color= 0x0000FFFF, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1607.             end
  1608.             if enemy.name == 'Urgot' then
  1609.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 80, color= 0x0000FFFF, time = 0.8, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1610.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 3, radius = 300, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1611.             end
  1612.             if enemy.name == 'Varus' then
  1613.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1475, type = 1, radius = 50, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1614.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1075, type = 1, radius = 80, color= 0x0000FFFF, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1615.             end
  1616.             if enemy.name == 'Veigar' then
  1617.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 225, color= 0xFFFFFF00, time = 2, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1618.             end
  1619.             if enemy.name == 'Vi' then
  1620.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 725, type = 1, radius = 75, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1621.             end
  1622.             if enemy.name == 'Viktor' then
  1623.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 1, radius = 80, color= 0xFFFFFF00, time = 2})
  1624.             end
  1625.             if enemy.name == 'Xerath' then
  1626.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1450, type = 1, radius = 125, color= 0xFFFFFF00, time = 2, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1627.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1450, type = 3, radius = 225, color= 0xFFFFFF00, time = 0.8, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1628.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 1, radius = 100, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1629.                 table.insert(skillshotArray,{name= xerathrmissilewrapper, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 2000+(enemy.SpellLevelR+1200), type = 3, radius = 75, color= 0xFFFFFF00, time = 0.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1630.             end
  1631.             if enemy.name == 'Yasuo' then
  1632.                 table.insert(skillshotArray,{name= 'yasuoq3w', shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 1, radius = 125, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1633.             end
  1634.             if enemy.name == 'Zac' then
  1635.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 550, type = 1, radius = 100, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1636.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1550, type = 5, radius = 200, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1637.             end
  1638.             if enemy.name == 'Zed' then
  1639.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 1, radius = 55, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1640.             end
  1641.             if enemy.name == 'Ziggs' then
  1642.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 850, type = 3, radius = 160, color= 0xFFFFFF00, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1643.                 table.insert(skillshotArray,{name= enemy.SpellNameW, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 3, radius = 225 , color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0  })
  1644.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 250, color= 0xFFFFFF00, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1645.                 table.insert(skillshotArray,{name= enemy.SpellNameR, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 5300, type = 3, radius = 550, color= 0xFFFFFF00, time = 3, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1646.             end
  1647.             if enemy.name == 'Zyra' then
  1648.                 table.insert(skillshotArray,{name= enemy.SpellNameQ, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 825, type = 3, radius = 275, color= 0xFFFFFF00, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1649.                 table.insert(skillshotArray,{name= enemy.SpellNameE, shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 90, color= 0x0000FFFF, time = 2, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1650.             end
  1651.         end
  1652.     end
  1653. end
  1654.  
  1655. SetTimerCallback("Main")
Advertisement
Add Comment
Please, Sign In to add comment