Advertisement
1845

Untitled

Aug 30th, 2014
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 119.18 KB | None | 0 0
  1. --[[
  2. ▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ▄ ▄ ▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄
  3. ▐░░░░░░░░░░▌ ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░▌ ▐░▌ ▐░▌ ▐░▌ ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌
  4. ▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌▐░▌ ▐░▌ ▐░▌ ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀ ▀▀▀▀█░█▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌
  5. ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌
  6. ▐░▌ ▐░▌▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄█░▌▐░▌ ▐░▌▐░▌ ▐░█▄▄▄▄▄▄▄█░▌ ▐░▌ ▐░█▄▄▄▄▄▄▄█░▌▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄▄▄ ▐░▌ ▐░▌ ▐░▌
  7. ▐░▌ ▐░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░▌ ▐░▌▐░▌ ▐░░░░░░░░░░░▌ ▐░▌ ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌ ▐░▌ ▐░▌ ▐░▌
  8. ▐░▌ ▐░▌▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌▐░▌ ▐░▌▐░▌ ▀▀▀▀█░█▀▀▀▀ ▐░▌ ▐░█▀▀▀▀▀▀▀█░▌ ▀▀▀▀▀▀▀▀▀█░▌ ▀▀▀▀▀▀▀▀▀█░▌ ▐░▌ ▐░▌ ▐░▌
  9. ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌
  10. ▐░█▄▄▄▄▄▄▄█░▌▐░█▄▄▄▄▄▄▄▄▄ ▐░▌ ▐░▌▐░█▄▄▄▄▄▄▄█░▌▐░█▄▄▄▄▄▄▄▄▄ ▐░▌ ▐░█▄▄▄▄▄▄▄▄▄ ▐░▌ ▐░▌ ▄▄▄▄▄▄▄▄▄█░▌ ▄▄▄▄▄▄▄▄▄█░▌ ▄▄▄▄█░█▄▄▄▄ ▐░█▄▄▄▄▄▄▄█░▌
  11. ▐░░░░░░░░░░▌ ▐░░░░░░░░░░░▌▐░▌ ▐░▌▐░░░░░░░░░░▌ ▐░░░░░░░░░░░▌▐░▌ ▐░░░░░░░░░░░▌▐░▌ ▐░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌
  12. ▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀
  13.  
  14. ▄▄▄▄▄▄▄▄▄▄ ▄ ▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄ ▄ ▄▄ ▄
  15. ▐░░░░░░░░░░▌ ▐░▌ ▐░▌ ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░▌ ▐░▌▐░░▌ ▐░▌
  16. ▐░█▀▀▀▀▀▀▀█░▌▐░▌ ▐░▌ ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌▐░▌░▌ ▐░▌▐░▌░▌ ▐░▌
  17. ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌▐░▌▐░▌ ▐░▌▐░▌▐░▌ ▐░▌
  18. ▐░█▄▄▄▄▄▄▄█░▌▐░█▄▄▄▄▄▄▄█░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌
  19. ▐░░░░░░░░░░▌ ▐░░░░░░░░░░░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌
  20. ▐░█▀▀▀▀▀▀▀█░▌ ▀▀▀▀█░█▀▀▀▀ ▐░▌ ▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌ ▐░▌
  21. ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌▐░▌▐░▌ ▐░▌▐░▌
  22. ▐░█▄▄▄▄▄▄▄█░▌ ▐░▌ ▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄█░▌▐░▌ ▐░▐░▌▐░▌ ▐░▐░▌
  23. ▐░░░░░░░░░░▌ ▐░▌ ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░▌ ▐░░▌▐░▌ ▐░░▌
  24. ▀▀▀▀▀▀▀▀▀▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀▀ ▀ ▀▀
  25.  
  26. VERSION 2.0
  27.  
  28. Follow me on Facebook! I post info on all new scripts and updates there
  29. CCONN's Facebook: https://www.facebook.com/CCONN81
  30.  
  31. Feel like you have too much money? Give me some :) haha
  32. CCONN's DONATE LINK: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JTWL7DK86V56S
  33.  
  34. Like the script? +Rep my profile. My signature has a list of all my released scripts and current projects
  35. CCONN's Leaguebot Profile: http://leaguebot.net/forum/Upload/member.php?action=profile&uid=814
  36. ]]
  37.  
  38.  
  39. require 'Utils'
  40. require 'spell_damage'
  41. require 'uiconfig'
  42. require 'winapi'
  43. require 'SKeys'
  44. require 'yprediction'
  45.  
  46. ----------[[Deadly Cassio Variables]]
  47. local target
  48. local target2
  49. local targetHero
  50. local targetignite
  51. local range = myHero.range + GetDistance(GetMinBBox(myHero))
  52. local FLEEING = 0
  53. local CHASING = 1
  54. local STATIONARY = 2
  55. local qTimer = os.time()
  56. local wTimer = os.time()
  57. local uiconfig = require 'uiconfig'
  58. local HavocDamage = 0
  59. local ExecutionerDamage = 0
  60. local True_Attack_Damage_Against_Minions = 0
  61. local Range = myHero.range + GetDistance(GetMinBBox(myHero))
  62. local UltPOS
  63. local SORT_CUSTOM = function(a, b) return a.maxHealth and b.maxHealth and a.maxHealth < b.maxHealth end
  64. local Qrange, Qwidth, Qspeed, Qdelay = 875, 80, math.huge, 0.535
  65. local Wrange, Wwidth, Wspeed, Wdelay = 875, 80, math.huge, 0.350
  66. local Rrange, Rwidth, Rspeed, Rdelay = 875, 350, math.huge, 0.535
  67. local YP = YPrediction()
  68. ----------[[End of Deadly Cassio Variables]]
  69.  
  70. ----------[[Farming Variables]]
  71. local Target, M_Target
  72. local TEAM
  73. if myHero.team == 100 then
  74. TEAM = "Blue"
  75. else
  76. TEAM = "Red"
  77. end
  78. local Cassio = { projSpeed = 1.22, aaParticles = {"CassBasicAttack_mis"}, aaSpellName = { "cassiopeiabasicattack" }, startAttackSpeed = "0.644" }
  79. local MinionInfo = { }
  80. MinionInfo[TEAM.."_Minion_Basic"] = { aaDelay = 400, projSpeed = 0 }
  81. MinionInfo[TEAM.."_Minion_Caster"] = { aaDelay = 484, projSpeed = 0.68 }
  82. MinionInfo[TEAM.."_Minion_Wizard"] = { aaDelay = 484, projSpeed = 0.68 }
  83. MinionInfo[TEAM.."_Minion_MechCannon"] = { aaDelay = 365, projSpeed = 1.18 }
  84. local Minions = { }
  85. local aaDelay = 320
  86. local aaPos = {x = 0, z = 0}
  87. local Ping = 60
  88. local IncomingDamage = { }
  89. local AnimationBeginTimer = 0
  90. local AnimationSpeedTimer = 0.1 * (1 / myHero.attackspeed)
  91. local TimeToAA = os.clock()
  92. ----------[[End of Farming Variables]]
  93.  
  94. ----------[[Red Elixer Variables]]
  95. local wUsedAt = 0
  96. local vUsedAt = 0
  97. local mUsedAt = 0
  98. local timer = os.clock()
  99. local bluePill = nil
  100. ----------[[End of Red Elixir Variables]]
  101.  
  102. ----------[[IGERs Auto Level Variables]]
  103. local send = require 'SendInputScheduled'
  104.  
  105. local version = "1.2.2"
  106. local Q,W,E,R = 'Q','W','E','R'
  107. local metakey = SKeys.Control
  108. local attempts = 0
  109. local lastAttempt = 0
  110. ----------[[End of IGERs Auto Level Variables]]
  111.  
  112. ----------[[Auto Dodge Skillshot Variables]]
  113. local version = '1.0'
  114. local cc = 0
  115. local skillshotArray = {}
  116. local colorcyan = 0x0000FFFF
  117. local coloryellow = 0xFFFFFF00
  118. local colorgreen = 0xFF00FF00
  119. local skillshotcharexist = false
  120. local show_allies=0
  121. ----------[[End of Auto Dodge Skillshot Variables]]
  122.  
  123. ----------[[Roam Helper Variables]]
  124. local Enemies = {}
  125. local EnemyIndex = 1
  126. ----------[[End of Roam Helper Variables]]
  127.  
  128. ----------[[Script Config Menu]]
  129. CfgControls, menu = uiconfig.add_menu('1. Cassio Controls', 200)
  130. menu.keydown('Combo', 'Combo', Keys.Space)
  131. menu.keytoggle('ComboR', 'R in Combo', Keys.Z, false)
  132. menu.keydown('Harass', 'Harass', Keys.X)
  133. menu.keydown('PassiveFarm', 'Farm', Keys.C)
  134. menu.keydown('PushLane', 'Lane Clear', Keys.V)
  135. menu.keydown('Cast_Ult', 'Cast Ultimate', Keys.A)
  136. menu.label('lbl7', ' ')
  137. menu.label('lbl8', 'MEC Ultimate Options')
  138. menu.checkbutton('useAutoMECR', 'use Auto MEC R', true)
  139. menu.slider('valMECR', 'Minimum MEC Value', 1, 5, 2, {1,2,3,4,5})
  140. menu.permashow('Combo')
  141. menu.permashow('ComboR')
  142. menu.permashow('Harass')
  143. menu.permashow('PassiveFarm')
  144. menu.permashow('PushLane')
  145. menu.permashow('Cast_Ult')
  146. menu.permashow('useAutoMECR')
  147. menu.permashow('valMECR')
  148.  
  149. CfgSettings, menu = uiconfig.add_menu('2. Cassio Settings', 200)
  150. menu.checkbutton('Auto_Q_ONOFF', 'Auto Q', true)
  151. menu.checkbutton('Auto_W_ONOFF', 'Auto W', true)
  152. menu.checkbutton('Auto_E_ONOFF', 'Auto E', true)
  153. menu.checkbutton('Auto_Harass_ONOFF', 'Auto Harass', false)
  154. menu.checkbutton('Auto_Ult_ONOFF', 'Auto Ultimate', false)
  155. menu.checkbutton('Low_HP_Ult_ONOFF', 'Low HP Auto Ult', true)
  156. menu.checkbutton('DMG_Predict_Farm_ONOFF', 'Use Damage Prediction Farming', true)
  157. menu.checkbutton('Lane_Clear_With_W', 'Lane Clear with Miasma', true)
  158. menu.checkbutton('Auto_Kill_Steal_ONOFF', 'Kill Steal', true)
  159. menu.checkbutton('AutoLevelSpells_ONOFF', 'Auto Level Spells', true)
  160. menu.checkbutton('drawskillshot', 'Draw Skillshots', true)
  161. menu.checkbutton('dodgeskillshot', 'Dodge Skillshots', true)
  162. menu.checkbutton('RoamHelper_ONOFF', 'Roam Helper', true)
  163. menu.checkbutton('Combo_Circles_ONOFF', 'Combo Circles', true)
  164. menu.checkbutton('Draw_ONOFF', 'Range Circles', true)
  165. menu.checkbutton('MoveToMouse', 'Move To Mouse', true)
  166. menu.slider('ComboType', 'Choose Combo Type', 1, 3, 2, {"W First","Q First", "CCONN"})
  167. menu.slider('RTYPE', 'Manual R Type', 1, 2, 1, {"No Facing Detection","Facing Detection"})
  168. menu.slider('QRNG', 'Q Range', 100, 850, 850, nil, true)
  169. menu.slider('WRNG', 'W Range', 100, 850, 850, nil, true)
  170. menu.slider('RRNG', 'R Range', 100, 850, 750, nil, true)
  171. menu.slider('Auto_Harass_Value', 'Auto Harass Value', 0, 100, 50, nil, true)
  172. menu.slider('Auto_Ult_Value', 'Auto Ultimate Value', 0, 100, 40, nil, true)
  173. menu.slider('Low_HP_Ult_Value', 'Low HP Auto Ult Value', 0, 100, 15, nil, true)
  174. menu.slider('SkillOrder', 'Auto Level Profile', 1, 2, 1, {"Max E","Max Q"})
  175. menu.permashow('Auto_Harass_ONOFF')
  176. menu.permashow('Auto_Ult_ONOFF')
  177. menu.permashow('Low_HP_Ult_ONOFF')
  178.  
  179. CfgMasteries, menu = uiconfig.add_menu('3. Cassio Masteries', 200)
  180. menu.slider('Butcher_Mastery', 'Butcher', 0, 2, 2, nil, true)
  181. menu.slider('Havoc_Mastery', 'Havoc', 0, 3, 3, nil, true)
  182. menu.slider('Brute_Force_Mastery', 'Brute Force', 0, 2, 0, nil, true)
  183. menu.checkbutton('Spellsword_Mastery', 'Spellsword', true)
  184. menu.checkbutton('Executioner_Mastery', 'Executioner', true)
  185.  
  186. CfgSummonerSpells, menu = uiconfig.add_menu('4. Summoner Spells', 200)
  187. menu.checkbutton('Auto_Summoner_Spells_ONOFF', 'Enable Auto Summoner Spells', true)
  188. menu.checkbutton('Auto_Ignite_ONOFF', 'Ignite', true)
  189. menu.checkbutton('Auto_Ignite_COMBO_ONOFF', 'Use Ignite in Combo', true)
  190. menu.checkbutton('Auto_Exhaust_COMBO_ONOFF', 'Use Exhaust in Combo', true)
  191. menu.checkbutton('Auto_Exhaust_ONOFF', 'Exhaust', true)
  192. menu.checkbutton('Auto_Barrier_ONOFF', 'Barrier', true)
  193. menu.checkbutton('Auto_Heal_ONOFF', 'Heal', true)
  194. menu.checkbutton('Auto_Clarity_ONOFF', 'Clarity', true)
  195. menu.slider('AutoHealValue', 'Auto Heal Value', 0, 100, 15, nil, true)
  196. menu.slider('AutoBarrierValue', 'Auto Barrier Value', 0, 100, 15, nil, true)
  197. menu.slider('AutoExhaustValue', 'Auto Exhaust Value', 0, 100, 20, nil, true)
  198. menu.slider('AutoClarityValue', 'Auto Clarity Value', 0, 100, 40, nil, true)
  199. menu.slider('AutoIgniteComboValue', 'Ignite Combo Value', 0, 100, 40, nil, true)
  200. menu.slider('AutoExhaustComboValue', 'Exhaust Combo Value', 0, 100, 40, nil, true)
  201.  
  202. CfgPotions, menu = uiconfig.add_menu('5. Potions', 200)
  203. menu.checkbutton('Red_Elixir_ONOFF', 'Master Switch: Potions', true)
  204. menu.checkbutton('Health_Potion_ONOFF', 'Health Potions', true)
  205. menu.checkbutton('Mana_Potion_ONOFF', 'Mana Potions', true)
  206. menu.checkbutton('Chrystalline_Flask_ONOFF', 'Chrystalline Flask', true)
  207. menu.checkbutton('Elixir_of_Fortitude_ONOFF', 'Elixir of Fortitude', true)
  208. menu.checkbutton('Biscuit_ONOFF', 'Biscuit', true)
  209. menu.slider('Health_Potion_Value', 'Health Potion Value', 0, 100, 75, nil, true)
  210. menu.slider('Mana_Potion_Value', 'Mana Potion Value', 0, 100, 75, nil, true)
  211. menu.slider('Chrystalline_Flask_Value', 'Chrystalline Flask Value', 0, 100, 75, nil, true)
  212. menu.slider('Elixir_of_Fortitude_Value', 'Elixir of Fortitude Value', 0, 100, 30, nil, true)
  213. menu.slider('Biscuit_Value', 'Biscuit Value', 0, 100, 60, nil, true)
  214.  
  215. CfgItems, menu = uiconfig.add_menu('6. Items', 200)
  216. menu.checkbutton('Zhonyas_Hourglass_ONOFF', 'Zhonyas Hourglass', true)
  217. menu.checkbutton('Deathfire_Grasp_ONOFF', 'Deathfire Grasp', true)
  218. menu.checkbutton('Hextech_Gunblade_ONOFF', 'Hextech Gunblade', true)
  219. menu.checkbutton('Twin_Shadows_ONOFF', 'Twin Shadows', true)
  220. menu.checkbutton('Wooglets_Witchcap_ONOFF', 'Wooglets Witchcap', true)
  221. menu.checkbutton('Shard_of_True_Ice_ONOFF', 'Shard of True Ice', true)
  222. menu.checkbutton('Seraphs_Embrace_ONOFF', 'Seraphs Embrace', true)
  223. menu.checkbutton('Blackfire_Torch_ONOFF', 'Blackfire Torch', true)
  224. menu.slider('Zhonyas_Hourglass_Value', 'Zhonya Hourglass Value', 0, 100, 15, nil, true)
  225. menu.slider('Wooglets_Witchcap_Value', 'Wooglets Witchcap Value', 0, 100, 15, nil, true)
  226. menu.slider('Seraphs_Embrace_Value', 'Seraphs Embrace Value', 0, 100, 15, nil, true)
  227. ----------[[End of Script Config Menu]]
  228.  
  229. ----------[[Core Script Function]]
  230. function DeadlyCassio()
  231. SetScriptTimer(10)
  232. if IsChatOpen() == 0 and tostring(winapi.get_foreground_window()) == "League of Legends (TM) Client" then
  233. target = GetWeakEnemy('MAGIC', 850)
  234. targetHero = GetWeakEnemy('MAGIC', 850)
  235. target2 = GetWeakEnemy('MAGIC', 700)
  236. Mastery_Damage()
  237. if CfgControls.useAutoMECR then mecPetrifyingGaze(CfgControls.valMECR) end
  238. if CfgPotions.Red_Elixir_ONOFF then RedElixir() end
  239. if CfgSettings.Draw_ONOFF then Draw() end
  240. if CfgSummonerSpells.Auto_Summoner_Spells_ONOFF then SummonerSpells() end
  241. if CfgSettings.Auto_Kill_Steal_ONOFF then KillSteal() end
  242. if CfgControls.Combo then Combo() end
  243. if CfgControls.Combo then Cassio_Items() end
  244. if CfgControls.Harass then Harass() end
  245. if CfgControls.PassiveFarm and CfgSettings.DMG_Predict_Farm_ONOFF then
  246. Farm()
  247. elseif CfgControls.PassiveFarm then
  248. Hybrid()
  249. else end
  250. if CfgControls.PushLane then LaneClear() end
  251. if CfgControls.Cast_Ult then
  252. if CfgSettings.RTYPE == 1 then
  253. R_No_Facing_Detection()
  254. elseif CfgSettings.RTYPE == 2 then
  255. R()
  256. end
  257. end
  258. if CfgSettings.Low_HP_Ult_ONOFF then Low_HP_Ult() end
  259. --if CfgSettings.Auto_GetMEC_Ult_ONOFF then AutoGetMecULT() end
  260. if CfgControls.Cast_Ult then R() end
  261. if CfgSettings.Auto_Harass_ONOFF then Auto_Harass() end
  262. end
  263. end
  264. ----------[[End of Core Script Function]]
  265.  
  266. ----------[[Utility Functions]]
  267. for i = 1, objManager:GetMaxHeroes(), 1 do
  268. Hero = objManager:GetHero(i)
  269. if Hero ~= nil and Hero.team ~= myHero.team then
  270. if Enemies[Hero.name] == nil then
  271. Enemies[Hero.name] = { Unit = Hero, Number = EnemyIndex }
  272. EnemyIndex = EnemyIndex + 1
  273. end
  274. end
  275. end
  276.  
  277. function Draw()
  278. if myHero.SpellLevelQ > 0.00 and myHero.SpellTimeQ > 1.0 then CustomCircle(CfgSettings.QRNG,2,4,myHero) end
  279. if myHero.SpellLevelW > 0.00 and myHero.SpellTimeW > 1.0 then CustomCircle(CfgSettings.WRNG,2,4,myHero) end
  280. if myHero.SpellLevelE > 0.00 and myHero.SpellTimeE > 1.0 then CustomCircle(700,2,4,myHero) end
  281. if CfgControls.PushLane or CfgControls.PassiveFarm then CustomCircle(range,2,4,myHero) end
  282. if target2 ~= nil then
  283. CustomCircle(100,5,2,target2)
  284. if GetTargetDirection() == CHASING then
  285. CustomCircle(125,20,2,target2)
  286. end
  287. end
  288. if CfgSettings.RoamHelper_ONOFF then
  289. for i, Enemy in pairs(Enemies) do
  290. if Enemy ~= nil then
  291. Hero = Enemy.Unit
  292.  
  293. local PositionX = (13.3/16) * GetScreenX()
  294.  
  295. local QDMG = getDmg('Q', Hero, myHero)+(getDmg('Q',Hero,myHero)*(HavocDamage + ExecutionerDamage))
  296. local WDMG = getDmg('W', Hero, myHero)+(getDmg('W',Hero,myHero)*(HavocDamage + ExecutionerDamage))
  297. local EDMG = getDmg('E', Hero, myHero)+(getDmg('E',Hero,myHero)*(HavocDamage + ExecutionerDamage))
  298. local RDMG = getDmg('R', Hero, myHero)+(getDmg('R',Hero,myHero)*(HavocDamage + ExecutionerDamage))
  299. local Current_Burst
  300. local Damage
  301. if myHero.selflevel >= 6 and myHero.SpellTimeR > 1.0 then
  302. Current_Burst = Round(QDMG + WDMG + EDMG * 3 + RDMG, 0) --Show damage of QWEEER combo if Ult is available
  303. else
  304. Current_Burst = Round(QDMG + WDMG + EDMG * 3, 0) --Show damage of QWEEE combo if Ult is not available
  305. end
  306. if myHero.SummonerD == 'SummonerDot' and myHero.SpellTimeD > 1.0 or myHero.SummonerF == 'SummonerDot' and myHero.SpellTimeF > 1.0 then
  307. Current_Burst = Current_Burst + ((myHero.selflevel*20)+50) --If Ignite detected and is not on cooldown add ignite damage to combo damage
  308. end
  309.  
  310. Damage = Current_Burst
  311.  
  312. DrawText("Champion: "..Hero.name, PositionX, ((15/900) * GetScreenY()) * Enemy.Number + ((53/90) * GetScreenY()), Color.SkyBlue)
  313.  
  314. if Hero.visible == 1 and Hero.dead ~= 1 then
  315. if Damage < Hero.health then
  316. DrawText("DMG "..Damage, PositionX + 150, ((15/900) * GetScreenY()) * Enemy.Number + ((53/90) * GetScreenY()), Color.Yellow)
  317. elseif Damage > Hero.health then
  318. DrawText("Killable!", PositionX + 150, ((15/900) * GetScreenY()) * Enemy.Number + ((53/90) * GetScreenY()), Color.Red)
  319. end
  320. end
  321.  
  322. if Hero.visible == 0 and Hero.dead ~= 1 then
  323. DrawText("MIA", PositionX + 150, ((15/900) * GetScreenY()) * Enemy.Number + ((53/90) * GetScreenY()), Color.Orange)
  324. elseif Hero.dead == 1 then
  325. DrawText("Dead", PositionX + 150, ((15/900) * GetScreenY()) * Enemy.Number + ((53/90) * GetScreenY()), Color.Green)
  326. end
  327. end
  328. end
  329. end
  330. end
  331.  
  332. function Round(val, decimal)
  333. if (decimal) then
  334. return math.floor( (val * 10 ^ decimal) + 0.5) / (10 ^ decimal)
  335. else
  336. return math.floor(val + 0.5)
  337. end
  338. end
  339.  
  340. function DetectPoison()
  341. for i = 1, objManager:GetMaxObjects(), 1 do
  342. obj = objManager:GetObject(i)
  343. if obj~=nil and target~=nil then
  344. if (obj.charName:lower():find("global_poison")) and GetDistance(obj, target) < 100 then
  345. return true
  346. end
  347. end
  348. end
  349. end
  350.  
  351. function GetTargetDirection()
  352. local distanceTarget = GetDistance(target)
  353. local x1, y1, z1 = GetFireahead(target,2,10)
  354. local distancePredicted = GetDistance({x = x1, y = y1, z = z1})
  355.  
  356. return (distanceTarget > distancePredicted and CHASING or (distanceTarget < distancePredicted and FLEEING or STATIONARY))
  357. end
  358.  
  359. function Cassio_Items()
  360. local target = GetWeakEnemy('MAGIC',700)
  361. if target ~= nil then
  362. if GetDistance(myHero,target) <= 700 then
  363. if CfgItems.Hextech_Gunblade_ONOFF then useHextechGunblade() end
  364. if CfgItems.Deathfire_Grasp_ONOFF then useDeathfireGrasp() end
  365. if CfgItems.Twin_Shadows_ONOFF then useTwinShadows() end
  366. if CfgItems.Shard_of_True_Ice_ONOFF then useShardofTrueIce() end
  367. if CfgItems.Blackfire_Torch_ONOFF then useBlackfireTorch() end
  368. end
  369. if CfgItems.Zhonyas_Hourglass_ONOFF then
  370. if myHero.health < myHero.maxHealth*(CfgItems.Zhonyas_Hourglass_Value / 100) then
  371. useZhonyas()
  372. end
  373. end
  374. if CfgItems.Wooglets_Witchcap_ONOFF then
  375. if myHero.health < myHero.maxHealth*(CfgItems.Wooglets_Witchcap_Value / 100) then
  376. useWoogletsWitchcap()
  377. end
  378. end
  379. if CfgItems.Seraphs_Embrace_ONOFF then
  380. if myHero.health <= (CfgItems.Seraphs_Embrace_Value / 100) then
  381. useSeraphsEmbrace()
  382. end
  383. end
  384. end
  385. end
  386. function useZhonyas()
  387. GetInventorySlot(3157)
  388. UseItemOnTarget(3157,myHero)
  389. end
  390. function useHextechGunblade()
  391. if target ~= nil then
  392. GetInventorySlot(3146)
  393. UseItemOnTarget(3146,target)
  394. end
  395. end
  396. function useDeathfireGrasp()
  397. if target ~= nil then
  398. GetInventorySlot(3128)
  399. UseItemOnTarget(3128,target)
  400. end
  401. end
  402. function useTwinShadows()
  403. if target ~= nil then
  404. GetInventorySlot(3023)
  405. UseItemOnTarget(3023,target)
  406. end
  407. end
  408. function useWoogletsWitchcap()
  409. GetInventorySlot(3090)
  410. UseItemOnTarget(3090,myHero)
  411. end
  412. function useShardofTrueIce()
  413. GetInventorySlot(3092)
  414. UseItemOnTarget(3092,myHero)
  415. end
  416. function useSeraphsEmbrace()
  417. GetInventorySlot(3040)
  418. UseItemOnTarget(3040,myHero)
  419. end
  420. function useBlackfireTorch()
  421. if target ~= nil then
  422. GetInventorySlot(3188)
  423. UseItemOnTarget(3188,target)
  424. end
  425. end
  426.  
  427. function Mastery_Damage()
  428. local Mast_ButcherDMG = 0
  429. local Mast_BruteForceDMG = 0
  430. local Mast_SpellswordDMG = 0
  431. if CfgMasteries.Butcher_Mastery > 0 then
  432. Mast_ButcherDMG = CfgMasteries.Butcher_Mastery
  433. end
  434. if CfgMasteries.Brute_Force_Mastery then
  435. if CfgMasteries.Brute_Force_Mastery == 1 then
  436. Mast_BruteForceDMG = 1.5
  437. end
  438. if CfgMasteries.Brute_Force_Mastery == 2 then
  439. Mast_BruteForceDMG = 3
  440. end
  441. end
  442. if CfgMasteries.Spellsword_Mastery then
  443. Mast_SpellswordDMG = myHero.ap * .05
  444. end
  445. if CfgMasteries.Havoc_Mastery then
  446. if CfgMasteries.Havoc_Mastery == 1 then
  447. HavocDamage = 0.0067
  448. end
  449. if CfgMasteries.Havoc_Mastery == 2 then
  450. HavocDamage = 0.0133
  451. end
  452. if CfgMasteries.Havoc_Mastery == 3 then
  453. HavocDamage = 0.02
  454. end
  455. end
  456. if CfgMasteries.Executioner_Mastery then
  457. ExecutionerDamage = .05
  458. end
  459. True_Attack_Damage_Against_Minions = (myHero.baseDamage + myHero.addDamage + Mast_BruteForceDMG + Mast_SpellswordDMG)+((myHero.baseDamage + myHero.addDamage + Mast_BruteForceDMG + Mast_SpellswordDMG)*(HavocDamage + ExecutionerDamage))
  460. end
  461. ----------[[End of Utility Functions]]
  462.  
  463. ----------[[Farming Functions]]
  464.  
  465. function Farm()
  466. Minions = GetEnemyMinions(SORT_CUSTOM)
  467. AnimationSpeedTimer = 0.085 * (1 / myHero.attackspeed)
  468.  
  469. for i, Minion in pairs(Minions) do
  470. if Minion ~= nil then
  471. local PredictedDamage = 0
  472. local aaTime = Ping + aaDelay + ( GetDistance2D(myHero, Minion) / Cassio.projSpeed )
  473.  
  474. for k, DMG in pairs(IncomingDamage) do
  475. if DMG ~= nil then
  476. if (DMG.Source == nil or DMG.Source.dead or DMG.Target == nil or DMG.Target.dead) or (DMG.Source.x ~= DMG.aaPos.x or DMG.Source.z ~= DMG.aaPos.z) then
  477. IncomingDamage[k] = nil
  478. elseif Minion == DMG.Target then
  479. DMG.aaTime = (DMG.projSpeed == 0 and (DMG.aaDelay) or (DMG.aaDelay + GetDistance2D(DMG.Source, Minion) / DMG.projSpeed))
  480. if GetTickCount() >= (DMG.Start + DMG.aaTime) then
  481. IncomingDamage[k] = nil
  482. elseif GetTickCount() + aaTime > (DMG.Start + DMG.aaTime) then
  483. PredictedDamage = PredictedDamage + DMG.Damage
  484. end
  485. end
  486. end
  487. end
  488.  
  489. if Minion.dead == 0 and Minion.health - PredictedDamage <= True_Attack_Damage_Against_Minions and Minion.health - PredictedDamage > 0 and GetDistance(Minion, myHero) < Range then
  490. if os.clock() > TimeToAA then AttackTarget(Minion)
  491. CustomCircle(100, 1, 2, Minion)
  492. --[[ elseif target ~= nil then
  493. Harass()]]
  494. end
  495. end
  496. end
  497. end
  498. if os.clock() > (AnimationBeginTimer + AnimationSpeedTimer) then MoveToMouse() end
  499. end
  500.  
  501. function OnProcessSpell(unit, spell)
  502. if unit ~= nil and GetDistance(myHero, unit) < 1000 then
  503. for i, Minion in pairs(Minions) do
  504. if Minion ~= nil then
  505. if MinionInfo[unit.charName] ~= nil then
  506. local m_aaDelay = MinionInfo[unit.charName].aaDelay
  507. local m_projSpeed = MinionInfo[unit.charName].projSpeed
  508.  
  509. if spell.target == Minion then
  510. IncomingDamage[unit.name] = { Source = unit, Target = Minion, Damage = getDmg("AD", Minion, unit), Start = GetTickCount(), aaPos = { x = unit.x, z = unit.z }, aaDelay = m_aaDelay, projSpeed = m_projSpeed }
  511. end
  512. end
  513. end
  514. end
  515. end
  516. if unit.charName == myHero.charName then
  517. for i, aaSpellName in pairs(Cassio.aaSpellName) do
  518. if spell.name == aaSpellName then
  519. AnimationBeginTimer = os.clock()
  520. TimeToAA = os.clock() + (1 / myHero.attackspeed) - 0.35 * (1 / myHero.attackspeed)
  521. end
  522. end
  523. end
  524. end
  525.  
  526. function GetDistance2D(o1, o2)
  527. local c = "z"
  528. if o1.z == nil or o2.z == nil then c = "y" end
  529. return math.sqrt(math.pow(o1.x - o2.x, 2) + math.pow(o1[c] - o2[c], 2))
  530. end
  531.  
  532. function Hybrid() -----> Hybrid function changed to prioritze last hits over champions
  533. targetHero = GetWeakEnemy("MAGIC",850)
  534. tlow = GetLowestHealthEnemyMinion(range)
  535.  
  536. if tlow ~= nil and tlow.health <= True_Attack_Damage_Against_Minions then
  537. target = tlow
  538. elseif targetHero ~= nil then
  539. target = targetHero
  540. Harass()
  541. else
  542. target = GetLowestHealthEnemyMinion(range)
  543. end
  544.  
  545. if target ~= nil then
  546. if True_Attack_Damage_Against_Minions >= target.health then
  547. AttackTarget(target)
  548. --[[ else
  549. if CfgSettings.FarmWithE then
  550. getDmg('E',target,myHero)*(HavocDamage + ExecutionerDamage) >= target.health then
  551. if os.time() < qTimer + 3 or os.time() < wTimer + 2 then
  552. E()
  553. end
  554. end]]
  555. end
  556. else
  557. if CfgSettings.MoveToMouse then MoveToMouse() end
  558. end
  559. if CfgSettings.MoveToMouse then MoveToMouse() end
  560. end
  561.  
  562. function LaneClear()
  563. local tlow=GetLowestHealthEnemyMinion(range)
  564. local thigh=GetHighestHealthEnemyMinion(range)
  565. targetHero = GetWeakEnemy("MAGIC",range)
  566.  
  567. if target2 ~= nil and target2.visible == 1 and target2.dead == 0 then
  568. target = target2
  569. end
  570.  
  571. if tlow~= nil then
  572. if True_Attack_Damage_Against_Minions >= tlow.health then
  573. target = tlow
  574. CustomCircle(100,20,1,target)
  575. elseif getDmg("E",tlow,myHero)+(getDmg("E",tlow,myHero)*(HavocDamage + ExecutionerDamage)) >= tlow.health then
  576. target = tlow
  577. CustomCircle(100,20,1,target)
  578. elseif targetHero ~= nil then
  579. target = targetHero
  580. elseif thigh ~= nil then
  581. target = thigh
  582. CustomCircle(110,10,5,target)
  583. else end
  584. end
  585.  
  586. if target ~= nil and target.visible == 1 and target.dead == 0 then
  587. if True_Attack_Damage_Against_Minions >= target.health then
  588. AttackTarget(target)
  589. elseif
  590. getDmg("E",target,myHero)+(getDmg("E",target,myHero)*(HavocDamage + ExecutionerDamage)) >= target.health and DetectPoison() then
  591. E()
  592. else
  593. CastHotkey('AUTO 100,0 ATTACK:WEAKMINION PATROLSTRAFE')
  594. if CfgSettings.Lane_Clear_With_W then
  595. if target == thigh then
  596. local WPos = GetMEC(175, 850, target)
  597. if WPos then
  598. CastSpellXYZ("W", WPos.x, 0, WPos.z)
  599. wTimer = os.time()
  600. else
  601. CastSpellXYZ("W",GetFireahead(target,2.65,25))
  602. wTimer = os.time()
  603. end
  604. end
  605. end
  606. local QPos = GetMEC(75, 850, target)
  607. if QPos then
  608. CastSpellXYZ("Q", QPos.x, 0, QPos.z)
  609. qTimer = os.time()
  610. else
  611. CastSpellXYZ("Q",GetFireahead(target,6,0))
  612. qTimer = os.time()
  613. end
  614. end
  615. --Action()
  616. else
  617. if CfgSettings.MoveToMouse then MoveToMouse() end
  618. end
  619. if CfgSettings.MoveToMouse then MoveToMouse() end
  620. end
  621. ----------[[End of Farming Functions]]
  622.  
  623. ----------[[Combo Functions]]
  624. function Combo()
  625. if CfgSettings.ComboType == 1 then
  626. if target ~= nil then
  627. if GetDistance(target) < 850 then
  628. if CfgSettings.Auto_W_ONOFF then W() end
  629. if CfgSettings.Auto_Q_ONOFF then Q() end
  630. if CfgControls.ComboR then R() end
  631. end
  632. if GetDistance(target) <= 700 then
  633. if CfgSettings.Auto_E_ONOFF then E() end
  634. end
  635. if GetDistance(target) <= 600 then
  636. if CfgSummonerSpells.Auto_Ignite_COMBO_ONOFF then SummonerIgniteCombo() end
  637. if CfgSummonerSpells.Auto_Exhaust_COMBO_ONOFF then SummonerExhaustCombo() end
  638. end
  639. --[[if CfgSettings.AutoCarry_ONOFF and myHero.SpellTimeE < 1.0 and myHero.SpellTimeQ < 1.0 and GetDistance(myHero, target) <= range then
  640. AutoCarry()
  641. end]]
  642. if CfgSettings.MoveToMouse then MoveToMouse() end
  643. else
  644. if CfgSettings.MoveToMouse then MoveToMouse() end
  645. end
  646. end
  647. if CfgSettings.ComboType == 2 then
  648. if target ~= nil then
  649. if GetDistance(target) < 850 then
  650. if CfgSettings.Auto_Q_ONOFF then Q() end
  651. if CfgSettings.Auto_W_ONOFF then W() end
  652. if CfgControls.ComboR then R() end
  653. end
  654. if GetDistance(target) <= 700 then
  655. if CfgSettings.Auto_E_ONOFF then E() end
  656. end
  657. if GetDistance(target) <= 600 then
  658. if CfgSummonerSpells.Auto_Ignite_COMBO_ONOFF then SummonerIgniteCombo() end
  659. if CfgSummonerSpells.Auto_Exhaust_COMBO_ONOFF then SummonerExhaustCombo() end
  660. end
  661. --[[if CfgSettings.AutoCarry_ONOFF and myHero.SpellTimeE < 1.0 and myHero.SpellTimeQ < 1.0 and GetDistance(myHero, target) <= range then
  662. AutoCarry()
  663. end]]
  664. if CfgSettings.MoveToMouse then MoveToMouse() end
  665. else
  666. if CfgSettings.MoveToMouse then MoveToMouse() end
  667. end
  668. end
  669. if CfgSettings.ComboType == 3 then
  670. if target ~= nil then
  671. if DetectPoison() and myHero.SpellTimeE > 1.0 and GetDistance(myHero, target) <= 700 then
  672. E()
  673. elseif not DetectPoison() and myHero.SpellTimeW > 1.0 and GetDistance(myHero, target) <= 850 then
  674. W()
  675. elseif not DetectPoison() and myHero.SpellTimeQ > 1.0 and GetDistance(myHero, target) <= 850 then
  676. Q()
  677. elseif CfgControls.ComboR and myHero.SpellTimeR > 1.0 and GetDistance(myHero, target) <= 700 then
  678. R()
  679. end
  680. if GetDistance(target) <= 600 then
  681. if CfgSummonerSpells.Auto_Ignite_COMBO_ONOFF then SummonerIgniteCombo() end
  682. if CfgSummonerSpells.Auto_Exhaust_COMBO_ONOFF then SummonerExhaustCombo() end
  683. end
  684. --[[if CfgSettings.AutoCarry_ONOFF and myHero.SpellTimeE < 1.0 and myHero.SpellTimeQ < 1.0 and GetDistance(myHero, target) <= range then
  685. AutoCarry()
  686. end]]
  687. if CfgSettings.MoveToMouse then MoveToMouse() end
  688. else
  689. if CfgSettings.MoveToMouse then MoveToMouse() end
  690. end
  691. end
  692. end
  693.  
  694. function Harass()
  695. if CfgSettings.ComboType == 1 then
  696. if target ~= nil then
  697. if GetDistance(target) < 850 then
  698. if CfgSettings.Auto_W_ONOFF then W() end
  699. if CfgSettings.Auto_Q_ONOFF then Q() end
  700. end
  701. if GetDistance(target) <= 700 then
  702. if CfgSettings.Auto_E_ONOFF then E() end
  703. end
  704. if CfgSettings.MoveToMouse then MoveToMouse() end
  705. else
  706. if CfgSettings.MoveToMouse then MoveToMouse() end
  707. end
  708. end
  709. if CfgSettings.ComboType == 2 then
  710. if target ~= nil then
  711. if GetDistance(target) < 850 then
  712. if CfgSettings.Auto_Q_ONOFF then Q() end
  713. if CfgSettings.Auto_W_ONOFF then W() end
  714. end
  715. if GetDistance(target) <= 700 then
  716. if CfgSettings.Auto_E_ONOFF then E() end
  717. end
  718. if CfgSettings.MoveToMouse then MoveToMouse() end
  719. else
  720. if CfgSettings.MoveToMouse then MoveToMouse() end
  721. end
  722. end
  723. end
  724. ----------[[End of Combo Functions]]
  725.  
  726. ----------[[Spell Functions]]
  727. function Q()
  728. if target ~= nil then
  729. if GetDistance(myHero, target) <= CfgSettings.QRNG and myHero.SpellTimeQ > 1.0 then
  730. CastPosition, HitChance, Position = YP:GetCircularCastPosition(target, Qdelay, Qwidth, Qrange, Qspeed, myHero, false)
  731. if CastPosition and HitChance >= 2 then
  732. local x, y, z = CastPosition.x, CastPosition.y, CastPosition.z
  733. CastSpellXYZ('Q', x, y, z)
  734. qTimer = os.time()
  735. end
  736. end
  737. end
  738. end
  739.  
  740. function W()
  741. if target ~= nil then
  742. if GetDistance(myHero, target) <= CfgSettings.WRNG and myHero.SpellTimeW > 1.0 then
  743. CastPosition, HitChance, Position = YP:GetCircularCastPosition(target, Wdelay, Wwidth, Wrange, Wspeed, myHero, false)
  744. if CastPosition and HitChance >= 2 then
  745. local x, y, z = CastPosition.x, CastPosition.y, CastPosition.z
  746. CastSpellXYZ('W', x, y, z)
  747. wTimer = os.time()
  748. end
  749. end
  750. end
  751. end
  752.  
  753. function E()
  754. if target ~= nil then
  755. if DetectPoison() then
  756. if CfgSettings.Auto_Q_ONOFF and CfgSettings.Auto_W_ONOFF then
  757. --if os.time() < qTimer + 3 or os.time() < wTimer + 2 then
  758. if GetDistance(target) <= 700 then
  759. CastSpellTarget("E",target)
  760. end
  761. --end
  762. else
  763. if GetDistance(target) <= 700 then
  764. CastSpellTarget("E",target)
  765. end
  766. end
  767. end
  768. end
  769. end
  770.  
  771. function R()
  772. if target2 ~= nil and myHero.selflevel >= 6 then
  773. if myHero.SpellTimeR > 1.0 and myHero.mana >= 80 + (myHero.SpellLevelR * 40) then
  774. if GetDistance(myHero, target2) <= CfgSettings.RRNG and GetTargetDirection(target2) == CHASING then
  775. ultPos = GetMEC(230, 800, target2)
  776. if ultPos then
  777. CastSpellXYZ("R", ultPos.x, 0, ultPos.z)
  778. else
  779. CastSpellXYZ("R",GetFireahead(target2,2,10))
  780. end
  781. end
  782. end
  783. end
  784. end
  785.  
  786. function R_No_Facing_Detection()
  787. if target2 ~= nil and myHero.selflevel >= 6 then
  788. if myHero.SpellTimeR > 1.0 and myHero.mana >= 80 + (myHero.SpellLevelR * 40) then
  789. if GetDistance(myHero, target2) <= CfgSettings.RRNG then
  790. ultPos = GetMEC(230, CfgSettings.RRNG, target2)
  791. if ultPos then
  792. CastSpellXYZ("R", ultPos.x, 0, ultPos.z)
  793. else
  794. CastSpellXYZ("R",GetFireahead(target2,2,10))
  795. end
  796. end
  797. end
  798. end
  799. end
  800.  
  801. function AutoR()
  802. if target2 ~= nil and target2.health < (target2.maxHealth*(CfgSettings.Auto_Ult_Value / 100)) then
  803. if CfgSettings.Auto_Ult_ONOFF then
  804. if myHero.selflevel >= 6 then
  805. if myHero.SpellTimeR > 1.0 and myHero.mana >= 100 then
  806. if GetDistance(target2) <= CfgSettings.RRNG and GetTargetDirection(target2) == CHASING then
  807. ultPos = GetMEC(230, CfgSettings.RRNG, target2)
  808. if ultPos then
  809. CastSpellXYZ("R", ultPos.x, 0, ultPos.z)
  810. else
  811. CastSpellXYZ("R",GetFireahead(target2,2,10))
  812. end
  813. end
  814. end
  815. end
  816. end
  817. end
  818. end
  819.  
  820. function Auto_Harass()
  821. if targetHero ~= nil then
  822. if myHero.mana >= myHero.maxMana*(CfgSettings.Auto_Harass_Value / 100) then
  823. if CfgSettings.Auto_Q_ONOFF then
  824. if GetDistance(myHero, targetHero) <= CfgSettings.QRNG then
  825. CastSpellXYZ("Q",GetFireahead(targetHero,6,0))
  826. qTimer = os.time()
  827. end
  828. end
  829. if GetDistance(targetHero) <= 700 then
  830. if DetectPoison() then
  831. if CfgSettings.Auto_Q_ONOFF and CfgSettings.Auto_W_ONOFF then
  832. if os.time() < qTimer + 3 or os.time() < wTimer + 2 then
  833. if GetDistance(target) <= 700 then
  834. CastSpellTarget("E",target)
  835. end
  836. end
  837. else
  838. if GetDistance(target) <= 700 then
  839. CastSpellTarget("E",target)
  840. end
  841. end
  842. end
  843. end
  844. end
  845. end
  846. end
  847.  
  848. function Low_HP_Ult()
  849. if target2 ~= nil and GetDistance(myHero,target) <= 400 then
  850. if myHero.selflevel >= 6 then
  851. if myHero.health < myHero.maxHealth*(CfgSettings.Low_HP_Ult_Value / 100) then
  852. if myHero.SpellTimeR > 1.0 and myHero.mana >= 80 + (myHero.SpellLevelR * 40) then
  853. if GetDistance(target2) <= CfgSettings.RRNG and GetTargetDirection(target2) == CHASING then
  854. ultPos = GetMEC(230, CfgSettings.RRNG, target2)
  855. if ultPos then
  856. CastSpellXYZ("R", ultPos.x, 0, ultPos.z)
  857. else
  858. CastSpellXYZ("R",GetFireahead(target2,2,10))
  859. end
  860. end
  861. end
  862. end
  863. end
  864. end
  865. end
  866.  
  867. function mecPetrifyingGaze(Value)
  868. for i = 1, objManager:GetMaxHeroes() do
  869. local enemy = objManager:GetHero(i)
  870. if (enemy ~= nil and enemy.team ~= myHero.team and enemy.visible == 1 and enemy.invulnerable == 0 and enemy.dead == 0) then
  871. ultPos = GetMEC(230, CfgSettings.RRNG, enemy)
  872. if ultPos and GetDistance(ultPos) < CfgSettings.RRNG and CountUnit(ultPos,230) >= Value then
  873. if myHero.SpellLevelR >= 1 and myHero.SpellTimeR > 1.0 and myHero.mana >= 100 then
  874. CastSpellXYZ('R', ultPos.x, 0, ultPos.z)
  875. end
  876. end
  877. end
  878. end
  879. end
  880.  
  881. ----------[[End of Spell Functions]]
  882.  
  883. ----------[[Summoner Spell Functions]]
  884. function SummonerSpells()
  885. if CfgSummonerSpells.Auto_Ignite_ONOFF then SummonerIgnite() end
  886. if CfgSummonerSpells.Auto_Barrier_ONOFF then SummonerBarrier() end
  887. if CfgSummonerSpells.Auto_Heal_ONOFF then SummonerHeal() end
  888. if CfgSummonerSpells.Auto_Exhaust_ONOFF then SummonerExhaust() end
  889. if CfgSummonerSpells.Auto_Clarity_ONOFF then SummonerClarity() end
  890. end
  891.  
  892. function SummonerIgniteCombo()
  893. if target ~= nil then
  894. if myHero.SummonerD == 'SummonerDot' then
  895. if target.health <= target.maxHealth*(CfgSummonerSpells.AutoIgniteComboValue / 100) then
  896. CastSpellTarget('D',target)
  897. end
  898. end
  899. if myHero.SummonerF == 'SummonerDot' then
  900. if target.health <= target.maxHealth*(CfgSummonerSpells.AutoIgniteComboValue / 100) then
  901. CastSpellTarget('F',target)
  902. end
  903. end
  904. end
  905. end
  906.  
  907. function SummonerIgnite()
  908. targetignite = GetWeakEnemy("TRUE",600)
  909. local damage = (myHero.selflevel*20)+50
  910. if targetignite ~= nil then
  911. if myHero.SummonerD == 'SummonerDot' then
  912. if targetignite.health < damage then
  913. CastSpellTarget('D',targetignite)
  914. end
  915. end
  916. if myHero.SummonerF == 'SummonerDot' then
  917. if targetignite.health < damage then
  918. CastSpellTarget('F',targetignite)
  919. end
  920. end
  921. end
  922. end
  923.  
  924. function SummonerBarrier()
  925. if myHero.SummonerD == 'SummonerBarrier' then
  926. if myHero.health < myHero.maxHealth*(CfgSummonerSpells.AutoBarrierValue / 100) then
  927. CastSpellTarget('D',myHero)
  928. end
  929. end
  930. if myHero.SummonerF == 'SummonerBarrier' then
  931. if myHero.health < myHero.maxHealth*(CfgSummonerSpells.AutoBarrierValue / 100) then
  932. CastSpellTarget('F',myHero)
  933. end
  934. end
  935. end
  936.  
  937. function SummonerHeal()
  938. if myHero.SummonerD == 'SummonerHeal' then
  939. if myHero.health < myHero.maxHealth*(CfgSummonerSpells.AutoHealValue / 100) then
  940. CastSpellTarget('D',myHero)
  941. end
  942. end
  943. if myHero.SummonerF == 'SummonerHeal' then
  944. if myHero.health < myHero.maxHealth*(CfgSummonerSpells.AutoHealValue / 100) then
  945. CastSpellTarget('F',myHero)
  946. end
  947. end
  948. end
  949.  
  950. function SummonerExhaustCombo()
  951. if target ~= nil then
  952. if myHero.SummonerD == 'SummonerExhaust' then
  953. if target.health <= target.maxHealth*(CfgSummonerSpells.AutoExhaustComboValue / 100) then
  954. CastSpellTarget('D',target)
  955. end
  956. end
  957. if myHero.SummonerF == 'SummonerExhaust' then
  958. if target.health <= target.maxHealth*(CfgSummonerSpells.AutoExhaustComboValue / 100) then
  959. CastSpellTarget('F',target)
  960. end
  961. end
  962. end
  963. end
  964.  
  965. function SummonerExhaust()
  966. if target ~= nil then
  967. if myHero.SummonerD == 'SummonerExhaust' then
  968. if myHero.health < myHero.maxHealth*(CfgSummonerSpells.AutoExhaustValue / 100) then
  969. if myHero.health < target.health then
  970. CastSpellTarget('D',target)
  971. end
  972. end
  973. end
  974. if myHero.SummonerF == 'SummonerExhaust' then
  975. if myHero.health < myHero.maxHealth*(CfgSummonerSpells.AutoExhaustValue / 100) then
  976. if myHero.health < target.health then
  977. CastSpellTarget('F',target)
  978. end
  979. end
  980. end
  981. end
  982. end
  983.  
  984. function SummonerClarity()
  985. if myHero.SummonerD == 'SummonerMana' then
  986. if myHero.mana < myHero.maxMana*(CfgSummonerSpells.AutoClarityValue / 100) then
  987. CastSpellTarget('D',myHero)
  988. end
  989. end
  990. if myHero.SummonerF == 'SummonerMana' then
  991. if myHero.mana < myHero.maxMana*(CfgSummonerSpells.AutoClarityValue / 100) then
  992. CastSpellTarget('F',myHero)
  993. end
  994. end
  995. end
  996. ----------[[End of Summoner Spell Functions]]
  997.  
  998. ----------[[Kill Steal Functions]]
  999. function KillSteal()
  1000. for i = 1, objManager:GetMaxHeroes() do
  1001. local enemy = objManager:GetHero(i)
  1002. if (enemy ~= nil and enemy.team ~= myHero.team and enemy.visible == 1 and enemy.invulnerable==0 and enemy.dead == 0) then
  1003. local qdmg = getDmg("Q",enemy,myHero)
  1004. local wdmg = getDmg("W",enemy,myHero)
  1005. local edmg = getDmg("E",enemy,myHero)
  1006. local rdmg = getDmg("R",enemy,myHero)
  1007. local ignitedmg = (myHero.selflevel*20)+50
  1008. if CfgSettings.Combo_Circles_ONOFF then
  1009. if myHero.SummonerD == 'SummonerDot' and myHero.SpellTimeD > 1.0 or myHero.SummonerF == 'SummonerDot' and myHero.SpellTimeF > 1.0 then
  1010. if qdmg+wdmg+edmg*3+ignitedmg > enemy.health then CustomCircle(50,10,5,enemy) DrawTextObject("ComboKill!", enemy, Color.Red) end
  1011. end
  1012. if myHero.SpellTimeR > 1.0 then
  1013. if myHero.SummonerD == 'SummonerDot' and myHero.SpellTimeD > 1.0 or myHero.SummonerF == 'SummonerDot' and myHero.SpellTimeF > 1.0 then
  1014. if rdmg+qdmg+wdmg+edmg*3+ignitedmg > enemy.health then CustomCircle(50,10,5,enemy) DrawTextObject("ComboKill!", enemy, Color.Red) end
  1015. end
  1016. end
  1017. if myHero.SpellTimeR > 1.0 then
  1018. if rdmg+qdmg+wdmg+edmg*3 > enemy.health then CustomCircle(50,10,5,enemy) DrawTextObject("ComboKill!", enemy, Color.Red) end
  1019. end
  1020. end
  1021. if CfgSettings.Auto_Kill_Steal_ONOFF then
  1022. if qdmg > enemy.health and myHero.SpellTimeQ > 1.0 and GetDistance(myHero,enemy) < 850 then
  1023. CastSpellXYZ("Q",GetFireahead(enemy,6,0))
  1024. end
  1025. if wdmg > enemy.health and myHero.SpellTimeW > 1.0 and GetDistance(myHero,enemy) < 850 then
  1026. CastSpellXYZ("W",GetFireahead(enemy,2.65,25))
  1027. end
  1028. if edmg > enemy.health and GetDistance(enemy) < 700 then
  1029. CastSpellTarget("E",enemy)
  1030. end
  1031. if qdmg + wdmg > enemy.health and myHero.SpellTimeQ > 1.0 and myHero.SpellTimeW > 1.0 and GetDistance(myHero,enemy) <= 850 then
  1032. CastSpellXYZ("Q",GetFireahead(enemy,6,0))
  1033. CastSpellXYZ("W",GetFireahead(enemy,2.65,25))
  1034. end
  1035. end
  1036. end
  1037. end
  1038. end
  1039. ----------[[End of Kill Steal Functions]]
  1040.  
  1041. ----------[[Integrated RED ELIXIR]]
  1042. function RedElixir()
  1043. if bluePill == nil then
  1044. if myHero.health < myHero.maxHealth * (CfgPotions.Health_Potion_Value / 100) and GetClock() > wUsedAt + 15000 then
  1045. usePotion()
  1046. wUsedAt = GetTick()
  1047. elseif myHero.health < myHero.maxHealth * (CfgPotions.Chrystalline_Flask_Value / 100) and GetClock() > vUsedAt + 10000 then
  1048. useFlask()
  1049. vUsedAt = GetTick()
  1050. elseif myHero.health < myHero.maxHealth * (CfgPotions.Biscuit_Value / 100) then
  1051. useBiscuit()
  1052. elseif myHero.health < myHero.maxHealth * (CfgPotions.Elixir_of_Fortitude_Value / 100) then
  1053. useElixir()
  1054. end
  1055. if myHero.mana < myHero.maxMana * (CfgPotions.Mana_Potion_Value / 100) and GetClock() > mUsedAt + 15000 then
  1056. useManaPot()
  1057. mUsedAt = GetTick()
  1058. end
  1059. end
  1060. if (os.clock() < timer + 5000) then
  1061. bluePill = nil
  1062. end
  1063. end
  1064. function OnCreateObj(object)
  1065. if (GetDistance(myHero, object)) < 100 then
  1066. if string.find(object.charName,"FountainHeal") then
  1067. timer=os.clock()
  1068. bluePill = object
  1069. end
  1070. end
  1071. end
  1072. function usePotion()
  1073. GetInventorySlot(2003)
  1074. UseItemOnTarget(2003,myHero)
  1075. end
  1076. function useFlask()
  1077. GetInventorySlot(2041)
  1078. UseItemOnTarget(2041,myHero)
  1079. end
  1080. function useBiscuit()
  1081. GetInventorySlot(2009)
  1082. UseItemOnTarget(2009,myHero)
  1083. end
  1084. function useElixir()
  1085. GetInventorySlot(2037)
  1086. UseItemOnTarget(2037,myHero)
  1087. end
  1088. function useManaPot()
  1089. GetInventorySlot(2004)
  1090. UseItemOnTarget(2004,myHero)
  1091. end
  1092. function GetTick()
  1093. return GetClock()
  1094. end
  1095. ----------[[End of Integrated Red Elixir]]
  1096.  
  1097. ----------[[IGERs Auto Level]]
  1098. local skillingOrder = {
  1099. MaxE = {Q,E,E,W,E,R,Q,E,W,E,R,Q,Q,W,Q,R,W,W},
  1100. MaxQ = {Q,E,Q,W,Q,R,Q,E,Q,E,R,E,E,W,W,R,W,W},
  1101. }
  1102.  
  1103. function Level_Spell(letter)
  1104. if letter == Q then send.key_press(0x69)
  1105. elseif letter == W then send.key_press(0x6a)
  1106. elseif letter == E then send.key_press(0x6b)
  1107. elseif letter == R then send.key_press(0x6c) end
  1108. end
  1109.  
  1110. function IsLolActive()
  1111. return tostring(winapi.get_foreground_window()) == "League of Legends (TM) Client"
  1112. end
  1113.  
  1114. function OnTick()
  1115. if CfgSettings.AutoLevelSpells_ONOFF and IsLolActive() and IsChatOpen() == 0 then
  1116. local spellLevelSum = myHero.SpellLevelQ + myHero.SpellLevelW + myHero.SpellLevelE + myHero.SpellLevelR
  1117. if attempts <= 10 or (attempts > 10 and GetTickCount() > lastAttempt+1500) then
  1118. if spellLevelSum < myHero.selflevel then
  1119. if lastSpellLevelSum ~= spellLevelSum then attempts = 0 end
  1120. if CfgSettings.SkillOrder == 1 then letter = skillingOrder["MaxE"][spellLevelSum+1] end
  1121. if CfgSettings.SkillOrder == 2 then letter = skillingOrder["MaxQ"][spellLevelSum+1] end
  1122.  
  1123. Level_Spell(letter, spellLevelSum)
  1124. attempts = attempts+1
  1125. lastAttempt = GetTickCount()
  1126. lastSpellLevelSum = spellLevelSum
  1127. else
  1128. attempts = 0
  1129. end
  1130. end
  1131. end
  1132. send.tick()
  1133. end
  1134.  
  1135. SetTimerCallback("OnTick")
  1136. ----------[[End of IGERs Auto Level]]
  1137.  
  1138. ----------[[Lib Func]]
  1139. function CountUnit(Center,Radius)
  1140. local UnitCount = 0
  1141. for i = 1, objManager:GetMaxHeroes() do
  1142. local enemy = objManager:GetHero(i)
  1143. if (enemy ~= nil and enemy.team ~= myHero.team and enemy.visible == 1 and enemy.invulnerable == 0 and enemy.dead == 0) then
  1144. if GetDistance(enemy,Center) < Radius then
  1145. UnitCount = UnitCount + 1
  1146. end
  1147. end
  1148. end
  1149. return UnitCount
  1150. end
  1151.  
  1152. ----------[[Auto Dodge Skillhots]]
  1153. function Main()
  1154. if tostring(winapi.get_foreground_window()) == "League of Legends (TM) Client" then
  1155. Skillshots()
  1156. if blockAndMove ~= nil then blockAndMove() end
  1157. send.tick()
  1158. end
  1159. end
  1160.  
  1161. function CreateBlockAndMoveToXYZ(x, y, z)
  1162. print('CreateBlockAndMoveToXYZ', x, y, z)
  1163. local move_start_time, move_dest, move_pending
  1164. send.block_input(true,750,MakeStateMatch)
  1165. move_start_time = os.clock()
  1166. move_dest = {x=x, y=y, z=z}
  1167. move_pending = true
  1168. MoveToXYZ(move_dest.x, 0, move_dest.z)
  1169. run_once = false
  1170. return function()
  1171. if move_pending then
  1172. printtext('.')
  1173. local waited_too_long = move_start_time + 1 < os.clock()
  1174. if waited_too_long or GetDistance(move_dest)<75 then
  1175. print('\nremaining distance: '..tostring(GetDistance(move_dest)))
  1176. move_pending = false
  1177. send.block_input(false)
  1178. end
  1179. else
  1180. printtext(' ')
  1181. end
  1182. end
  1183. end
  1184.  
  1185. function MakeStateMatch(changes)
  1186. for scode,flag in pairs(changes) do
  1187. print(scode)
  1188. if flag then print('went down') else print('went up') end
  1189. local vk = winapi.map_virtual_key(scode, 3)
  1190. local is_down = winapi.get_async_key_state(vk)
  1191. if flag then -- went down
  1192. if is_down then
  1193. send.wait(60)
  1194. send.key_down(scode)
  1195. send.wait(60)
  1196. else
  1197. -- up before, up after, down during, we don't care
  1198. end
  1199. else -- went up
  1200. if is_down then
  1201. -- down before, down after, up during, we don't care
  1202. else
  1203. send.wait(60)
  1204. send.key_up(scode)
  1205. send.wait(60)
  1206. end
  1207. end
  1208. end
  1209. end
  1210.  
  1211. function OnProcessSpell(unit,spell)
  1212. local P1 = spell.startPos
  1213. local P2 = spell.endPos
  1214. local calc = (math.floor(math.sqrt((P2.x-unit.x)^2 + (P2.z-unit.z)^2)))
  1215. if string.find(unit.name,"Minion_") == nil and string.find(unit.name,"Turret_") == nil then
  1216. if (unit.team ~= myHero.team or (show_allies==1)) and string.find(spell.name,"Basic") == nil then
  1217. for i=1, #skillshotArray, 1 do
  1218. local maxdist
  1219. local dodgeradius
  1220. dodgeradius = skillshotArray[i].radius
  1221. maxdist = skillshotArray[i].maxdistance
  1222. if spell.name == skillshotArray[i].name then
  1223. skillshotArray[i].shot = 1
  1224. skillshotArray[i].lastshot = os.clock()
  1225. if skillshotArray[i].type == 1 then
  1226. skillshotArray[i].p1x = unit.x
  1227. skillshotArray[i].p1y = unit.y
  1228. skillshotArray[i].p1z = unit.z
  1229. skillshotArray[i].p2x = unit.x + (maxdist)/calc*(P2.x-unit.x)
  1230. skillshotArray[i].p2y = P2.y
  1231. skillshotArray[i].p2z = unit.z + (maxdist)/calc*(P2.z-unit.z)
  1232. dodgelinepass(unit, P2, dodgeradius, maxdist)
  1233. elseif skillshotArray[i].type == 2 then
  1234. skillshotArray[i].px = P2.x
  1235. skillshotArray[i].py = P2.y
  1236. skillshotArray[i].pz = P2.z
  1237. dodgelinepoint(unit, P2, dodgeradius)
  1238. elseif skillshotArray[i].type == 3 then
  1239. skillshotArray[i].skillshotpoint = calculateLineaoe(unit, P2, maxdist)
  1240. if skillshotArray[i].name ~= "SummonerClairvoyance" then
  1241. dodgeaoe(unit, P2, dodgeradius)
  1242. end
  1243. elseif skillshotArray[i].type == 4 then
  1244. skillshotArray[i].px = unit.x + (maxdist)/calc*(P2.x-unit.x)
  1245. skillshotArray[i].py = P2.y
  1246. skillshotArray[i].pz = unit.z + (maxdist)/calc*(P2.z-unit.z)
  1247. dodgelinepass(unit, P2, dodgeradius, maxdist)
  1248. elseif skillshotArray[i].type == 5 then
  1249. skillshotArray[i].skillshotpoint = calculateLineaoe2(unit, P2, maxdist)
  1250. dodgeaoe(unit, P2, dodgeradius)
  1251. end
  1252. end
  1253. end
  1254. end
  1255. end
  1256. end
  1257.  
  1258. function dodgeaoe(pos1, pos2, radius)
  1259. print('dodgeaoe', pos1, pos2, radius, maxDist)
  1260. print('dodgeaoe:pos1:', pos1.x, pos1.y, pos1.z)
  1261. print('dodgeaoe:pos2:', pos2.x, pos2.y, pos2.z)
  1262. local calc = (math.floor(math.sqrt((pos2.x-myHero.x)^2 + (pos2.z-myHero.z)^2)))
  1263. local dodgex
  1264. local dodgez
  1265. dodgex = pos2.x + ((radius+100)/calc)*(myHero.x-pos2.x)
  1266. dodgez = pos2.z + ((radius+100)/calc)*(myHero.z-pos2.z)
  1267. if calc < radius and CfgSettings.dodgeskillshot == true then
  1268. MoveToXYZ(dodgex,0,dodgez)
  1269. end
  1270. end
  1271.  
  1272. function dodgelinepoint(pos1, pos2, radius)
  1273. local calc1 = (math.floor(math.sqrt((pos2.x-myHero.x)^2 + (pos2.z-myHero.z)^2)))
  1274. local calc2 = (math.floor(math.sqrt((pos1.x-myHero.x)^2 + (pos1.z-myHero.z)^2)))
  1275. local calc4 = (math.floor(math.sqrt((pos1.x-pos2.x)^2 + (pos1.z-pos2.z)^2)))
  1276. local calc3
  1277. local perpendicular
  1278. local k
  1279. local x4
  1280. local z4
  1281. local dodgex
  1282. local dodgez
  1283. 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))))
  1284. 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)
  1285. x4 = myHero.x - k * (pos2.z-pos1.z)
  1286. z4 = myHero.z + k * (pos2.x-pos1.x)
  1287. calc3 = (math.floor(math.sqrt((x4-myHero.x)^2 + (z4-myHero.z)^2)))
  1288. dodgex = x4 + ((radius+100)/calc3)*(myHero.x-x4)
  1289. dodgez = z4 + ((radius+100)/calc3)*(myHero.z-z4)
  1290. if perpendicular < radius and calc1 < calc4 and calc2 < calc4 and CfgSettings.dodgeskillshot == true then
  1291. blockAndMove = CreateBlockAndMoveToXYZ(dodgex,0,dodgez)
  1292. end
  1293. end
  1294.  
  1295. function dodgelinepass(pos1, pos2, radius, maxDist)
  1296. print('dodgelinepass', pos1, pos2, radius, maxDist)
  1297. print('dodgelinepass:pos1:', pos1.x, pos1.y, pos1.z)
  1298. print('dodgelinepass:pos2:', pos2.x, pos2.y, pos2.z)
  1299. local pm2x = pos1.x + (maxDist)/(math.floor(math.sqrt((pos1.x-pos2.x)^2 + (pos1.z-pos2.z)^2)))*(pos2.x-pos1.x)
  1300. local pm2z = pos1.z + (maxDist)/(math.floor(math.sqrt((pos1.x-pos2.x)^2 + (pos1.z-pos2.z)^2)))*(pos2.z-pos1.z)
  1301. local calc1 = (math.floor(math.sqrt((pm2x-myHero.x)^2 + (pm2z-myHero.z)^2)))
  1302. local calc2 = (math.floor(math.sqrt((pos1.x-myHero.x)^2 + (pos1.z-myHero.z)^2)))
  1303. local calc3
  1304. local calc4 = (math.floor(math.sqrt((pos1.x-pm2x)^2 + (pos1.z-pm2z)^2)))
  1305. local perpendicular
  1306. local k
  1307. local x4
  1308. local z4
  1309. local dodgex
  1310. local dodgez
  1311. 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))))
  1312. k = ((pm2z-pos1.z)*(myHero.x-pos1.x) - (pm2x-pos1.x)*(myHero.z-pos1.z)) / ((pm2z-pos1.z)^2 + (pm2x-pos1.x)^2)
  1313. x4 = myHero.x - k * (pm2z-pos1.z)
  1314. z4 = myHero.z + k * (pm2x-pos1.x)
  1315. calc3 = (math.floor(math.sqrt((x4-myHero.x)^2 + (z4-myHero.z)^2)))
  1316. dodgex = x4 + ((radius+100)/calc3)*(myHero.x-x4)
  1317. dodgez = z4 + ((radius+100)/calc3)*(myHero.z-z4)
  1318. if perpendicular < radius and calc1 < calc4 and calc2 < calc4 and CfgSettings.dodgeskillshot == true then
  1319. blockAndMove = CreateBlockAndMoveToXYZ(dodgex,0,dodgez)
  1320. end
  1321. end
  1322.  
  1323.  
  1324. function calculateLinepass(pos1, pos2, spacing, maxDist)
  1325. local calc = (math.floor(math.sqrt((pos2.x-pos1.x)^2 + (pos2.z-pos1.z)^2)))
  1326. local line = {}
  1327. local point1 = {}
  1328. point1.x = pos1.x
  1329. point1.y = pos1.y
  1330. point1.z = pos1.z
  1331. local point2 = {}
  1332. point1.x = pos1.x + (maxDist)/calc*(pos2.x-pos1.x)
  1333. point1.y = pos2.y
  1334. point1.z = pos1.z + (maxDist)/calc*(pos2.z-pos1.z)
  1335. table.insert(line, point2)
  1336. table.insert(line, point1)
  1337. return line
  1338. end
  1339.  
  1340. function calculateLineaoe(pos1, pos2, maxDist)
  1341. local line = {}
  1342. local point = {}
  1343. point.x = pos2.x
  1344. point.y = pos2.y
  1345. point.z = pos2.z
  1346. table.insert(line, point)
  1347. return line
  1348. end
  1349.  
  1350. function calculateLineaoe2(pos1, pos2, maxDist)
  1351. local calc = (math.floor(math.sqrt((pos2.x-pos1.x)^2 + (pos2.z-pos1.z)^2)))
  1352. local line = {}
  1353. local point = {}
  1354. if calc < maxDist then
  1355. point.x = pos2.x
  1356. point.y = pos2.y
  1357. point.z = pos2.z
  1358. table.insert(line, point)
  1359. else
  1360. point.x = pos1.x + maxDist/calc*(pos2.x-pos1.x)
  1361. point.z = pos1.z + maxDist/calc*(pos2.z-pos1.z)
  1362. point.y = pos2.y
  1363. table.insert(line, point)
  1364. end
  1365. return line
  1366. end
  1367.  
  1368. function calculateLinepoint(pos1, pos2, spacing, maxDist)
  1369. local line = {}
  1370. local point1 = {}
  1371. point1.x = pos1.x
  1372. point1.y = pos1.y
  1373. point1.z = pos1.z
  1374. local point2 = {}
  1375. point1.x = pos2.x
  1376. point1.y = pos2.y
  1377. point1.z = pos2.z
  1378. table.insert(line, point2)
  1379. table.insert(line, point1)
  1380. return line
  1381. end
  1382.  
  1383. function table_print (tt, indent, done)
  1384. done = done or {}
  1385. indent = indent or 0
  1386. if type(tt) == "table" then
  1387. local sb = {}
  1388. for key, value in pairs (tt) do
  1389. table.insert(sb, string.rep (" ", indent)) -- indent it
  1390. if type (value) == "table" and not done [value] then
  1391. done [value] = true
  1392. table.insert(sb, "{\n");
  1393. table.insert(sb, table_print (value, indent + 2, done))
  1394. table.insert(sb, string.rep (" ", indent)) -- indent it
  1395. table.insert(sb, "}\n");
  1396. elseif "number" == type(key) then
  1397. table.insert(sb, string.format("\"%s\"\n", tostring(value)))
  1398. else
  1399. table.insert(sb, string.format(
  1400. "%s = \"%s\"\n", tostring (key), tostring(value)))
  1401. end
  1402. end
  1403. return table.concat(sb)
  1404. else
  1405. return tt .. "\n"
  1406. end
  1407. end
  1408.  
  1409. function Skillshots()
  1410. cc=cc+1
  1411. if (cc==30) then
  1412. LoadTable()
  1413. end
  1414. if CfgSettings.drawskillshot == true then
  1415. for i=1, #skillshotArray, 1 do
  1416. if skillshotArray[i].shot == 1 then
  1417. local radius = skillshotArray[i].radius
  1418. local color = skillshotArray[i].color
  1419. if skillshotArray[i].isline == false then
  1420. for number, point in pairs(skillshotArray[i].skillshotpoint) do
  1421. DrawCircle(point.x, point.y, point.z, radius, color)
  1422. end
  1423. else
  1424. startVector = Vector(skillshotArray[i].p1x,skillshotArray[i].p1y,skillshotArray[i].p1z)
  1425. endVector = Vector(skillshotArray[i].p2x,skillshotArray[i].p2y,skillshotArray[i].p2z)
  1426. directionVector = (endVector-startVector):normalized()
  1427. local angle=0
  1428. if (math.abs(directionVector.x)<.00001) then
  1429. if directionVector.z > 0 then angle=90
  1430. elseif directionVector.z < 0 then angle=270
  1431. else angle=0
  1432. end
  1433. else
  1434. local theta = math.deg(math.atan(directionVector.z / directionVector.x))
  1435. if directionVector.x < 0 then theta = theta + 180 end
  1436. if theta < 0 then theta = theta + 360 end
  1437. angle=theta
  1438. end
  1439. angle=((90-angle)*2*math.pi)/360
  1440. DrawLine(startVector.x, startVector.y, startVector.z, GetDistance(startVector, endVector)+170, 1,angle,radius)
  1441. end
  1442. end
  1443. end
  1444. end
  1445. for i=1, #skillshotArray, 1 do
  1446. if os.clock() > (skillshotArray[i].lastshot + skillshotArray[i].time) then
  1447. skillshotArray[i].shot = 0
  1448. end
  1449. end
  1450. end
  1451.  
  1452. function LoadTable()
  1453. print("table loaded::")
  1454. local iCount=objManager:GetMaxHeroes()
  1455. print(" heros:" .. tostring(iCount))
  1456. iCount=1;
  1457. for i=0, iCount, 1 do
  1458. local skillshotplayerObj = GetSelf();
  1459. print(" name:" .. skillshotplayerObj.name);
  1460. if 1==1 or skillshotplayerObj.name == "Quinn" then
  1461. table.insert(skillshotArray,{name= "QuinnQMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1025, type = 1, radius = 40, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1462. skillshotcharexist = true
  1463. end
  1464. if 1==1 or skillshotplayerObj.name == "Lissandra" then
  1465. table.insert(skillshotArray,{name= "LissandraQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 725, type = 1, radius = 100, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1466. table.insert(skillshotArray,{name= "LissandraE", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 1, radius = 100, color= coloryellow, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1467. skillshotcharexist = true
  1468. end
  1469. if 1==1 or skillshotplayerObj.name == "Zac" then
  1470. table.insert(skillshotArray,{name= "ZacQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 550, type = 1, radius = 100, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1471. table.insert(skillshotArray,{name= "ZacE", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1550, type = 3, radius = 200, color= colorcyan, time = 2, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1472. skillshotcharexist = true
  1473. end
  1474. if 1==1 or skillshotplayerObj.name == "Syndra" then
  1475. table.insert(skillshotArray,{name= "SyndraQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 3, radius = 200, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1476. table.insert(skillshotArray,{name= "SyndraE", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 650, type = 1, radius = 100, color= coloryellow, time = 0.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1477. table.insert(skillshotArray,{name= "syndrawcast", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 3, radius = 200, color= colorcyan, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1478. skillshotcharexist = true
  1479. end
  1480. if 1==1 or skillshotplayerObj.name == "Jayce" then
  1481. table.insert(skillshotArray,{name= "jayceshockblast", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1470, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1482. skillshotcharexist = true
  1483. end
  1484. if 1==1 or skillshotplayerObj.name == "Nami" then
  1485. table.insert(skillshotArray,{name= "NamiQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 875, type = 3, radius = 200, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1486. table.insert(skillshotArray,{name= "NamiR", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 2550, type = 1, radius = 350, color= colorcyan, time = 3, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1487. skillshotcharexist = true
  1488. end
  1489. if 1==1 or skillshotplayerObj.name == "Vi" then
  1490. table.insert(skillshotArray,{name= "ViQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 1, radius = 150, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1491. skillshotcharexist = true
  1492. end
  1493. if 1==1 or skillshotplayerObj.name == "Thresh" then
  1494. table.insert(skillshotArray,{name= "ThreshQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 100, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1495. skillshotcharexist = true
  1496. end
  1497. if 1==1 or skillshotplayerObj.name == "Khazix" then
  1498. table.insert(skillshotArray,{name= "KhazixE", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 3, radius = 200, color= colorcyan, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1499. table.insert(skillshotArray,{name= "KhazixW", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 120, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1500. table.insert(skillshotArray,{name= "khazixwlong", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1501. table.insert(skillshotArray,{name= "khazixelong", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 200, color= colorcyan, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1502. skillshotcharexist = true
  1503. end
  1504. if 1==1 or skillshotplayerObj.name == "Elise" then
  1505. table.insert(skillshotArray,{name= "EliseHumanE", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1075, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1506. skillshotcharexist = true
  1507. end
  1508. if 1==1 or skillshotplayerObj.name == "Zed" then
  1509. table.insert(skillshotArray,{name= "ZedShuriken", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 1, radius = 100, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1510. table.insert(skillshotArray,{name= "ZedShadowDash", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 550, type = 3, radius = 150, color= colorcyan, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1511. table.insert(skillshotArray,{name= "zedw2", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 550, type = 3, radius = 150, color= colorcyan, time = 0.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1512. skillshotcharexist = true
  1513. end
  1514. if 1==1 or skillshotplayerObj.name == "Ahri" then
  1515. table.insert(skillshotArray,{name= "AhriOrbofDeception", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 880, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1516. table.insert(skillshotArray,{name= "AhriSeduce", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 975, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1517. skillshotcharexist = true
  1518. end
  1519. if 1==1 or skillshotplayerObj.name == "Amumu" then
  1520. table.insert(skillshotArray,{name= "BandageToss", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1521. skillshotcharexist = true
  1522. end
  1523. if 1==1 or skillshotplayerObj.name == "Anivia" then
  1524. table.insert(skillshotArray,{name= "FlashFrostSpell", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 90, color= colorcyan, time = 2, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1525. skillshotcharexist = true
  1526. end
  1527. if 1==1 or skillshotplayerObj.name == "Ashe" then
  1528. table.insert(skillshotArray,{name= "EnchantedCrystalArrow", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 50000, type = 4, radius = 120, color= colorcyan, time = 4, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1529. skillshotcharexist = true
  1530. end
  1531. if 1==1 or skillshotplayerObj.name == "Blitzcrank" then
  1532. table.insert(skillshotArray,{name= "RocketGrabMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 925, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1533. skillshotcharexist = true
  1534. end
  1535. if 1==1 or skillshotplayerObj.name == "Brand" then
  1536. table.insert(skillshotArray,{name= "BrandBlazeMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 1, radius = 70, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1537. table.insert(skillshotArray,{name= "BrandFissure", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 250, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1538. skillshotcharexist = true
  1539. end
  1540. if 1==1 or skillshotplayerObj.name == "Cassiopeia" then
  1541. table.insert(skillshotArray,{name= "CassiopeiaMiasma", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 850, type = 3, radius = 175, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1542. table.insert(skillshotArray,{name= "CassiopeiaNoxiousBlast", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 850, type = 3, radius = 75, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1543. skillshotcharexist = true
  1544. end
  1545. if 1==1 or skillshotplayerObj.name == "Caitlyn" then
  1546. table.insert(skillshotArray,{name= "CaitlynEntrapmentMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 50, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1547. table.insert(skillshotArray,{name= "CaitlynPiltoverPeacemaker", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1300, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0})
  1548. skillshotcharexist = true
  1549. end
  1550. if 1==1 or skillshotplayerObj.name == "Corki" then
  1551. table.insert(skillshotArray,{name= "MissileBarrageMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1225, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1552. table.insert(skillshotArray,{name= "MissileBarrageMissile2", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1225, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1553. table.insert(skillshotArray,{name= "CarpetBomb", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 2, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1554. skillshotcharexist = true
  1555. end
  1556. if 1==1 or skillshotplayerObj.name == "Chogath" then
  1557. table.insert(skillshotArray,{name= "Rupture", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 3, radius = 275, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1558. skillshotcharexist = true
  1559. end
  1560. if 1==1 or skillshotplayerObj.name == "DrMundo" then
  1561. table.insert(skillshotArray,{name= "InfectedCleaverMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1562. skillshotcharexist = true
  1563. end
  1564. if 1==1 or skillshotplayerObj.name == "Heimerdinger" then
  1565. table.insert(skillshotArray,{name= "CH1ConcussionGrenade", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 3, radius = 225, color= coloryellow, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1566. skillshotcharexist = true
  1567. end
  1568. if 1==1 or skillshotplayerObj.name == "Draven" then
  1569. table.insert(skillshotArray,{name= "DravenDoubleShot", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 1, radius = 125, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1570. table.insert(skillshotArray,{name= "DravenRCast", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 5000, type = 1, radius = 100, color= colorcyan, time = 4, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1571. skillshotcharexist = true
  1572. end
  1573. if 1==1 or skillshotplayerObj.name == "Ezreal" then
  1574. table.insert(skillshotArray,{name= "EzrealEssenceFluxMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1575. table.insert(skillshotArray,{name= "EzrealMysticShotMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1576. table.insert(skillshotArray,{name= "EzrealTrueshotBarrage", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 5000, type = 4, radius = 150, color= colorcyan, time = 4, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1577. table.insert(skillshotArray,{name= "EzrealArcaneShift", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 475, type = 5, radius = 100, color= colorgreen, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1578. skillshotcharexist = true
  1579. end
  1580. if 1==1 or skillshotplayerObj.name == "Fizz" then
  1581. table.insert(skillshotArray,{name= "FizzMarinerDoom", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1275, type = 2, radius = 100, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1582. skillshotcharexist = true
  1583. end
  1584. if 1==1 or skillshotplayerObj.name == "FiddleSticks" then
  1585. table.insert(skillshotArray,{name= "Crowstorm", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 3, radius = 600, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1586. skillshotcharexist = true
  1587. end
  1588. if 1==1 or skillshotplayerObj.name == "Karthus" then
  1589. table.insert(skillshotArray,{name= "LayWaste", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 875, type = 3, radius = 150, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1590. skillshotcharexist = true
  1591. end
  1592. if 1==1 or skillshotplayerObj.name == "Galio" then
  1593. table.insert(skillshotArray,{name= "GalioResoluteSmite", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 905, type = 3, radius = 200, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1594. table.insert(skillshotArray,{name= "GalioRighteousGust", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 120, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1595. skillshotcharexist = true
  1596. end
  1597. if 1==1 or skillshotplayerObj.name == "Graves" then
  1598. table.insert(skillshotArray,{name= "GravesChargeShot", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 110, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1599. table.insert(skillshotArray,{name= "GravesClusterShot", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 750, type = 1, radius = 50, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1600. table.insert(skillshotArray,{name= "GravesSmokeGrenade", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 3, radius = 275, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1601. skillshotcharexist = true
  1602. end
  1603. if 1==1 or skillshotplayerObj.name == "Gragas" then
  1604. table.insert(skillshotArray,{name= "GragasBarrelRoll", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 3, radius = 320, color= coloryellow, time = 2.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1605. table.insert(skillshotArray,{name= "GragasBodySlam", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 650, type = 2, radius = 60, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1606. table.insert(skillshotArray,{name= "GragasExplosiveCask", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 3, radius = 400, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1607. skillshotcharexist = true
  1608. end
  1609. if 1==1 or skillshotplayerObj.name == "Irelia" then
  1610. table.insert(skillshotArray,{name= "IreliaTranscendentBlades", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1200, type = 1, radius = 150, color= colorcyan, time = 0.8, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1611. skillshotcharexist = true
  1612. end
  1613. if 1==1 or skillshotplayerObj.name == "Janna" then
  1614. table.insert(skillshotArray,{name= "HowlingGale", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1700, type = 1, radius = 100, color= colorcyan, time = 2, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1615. skillshotcharexist = true
  1616. end
  1617. if 1==1 or skillshotplayerObj.name == "JarvanIV" then
  1618. table.insert(skillshotArray,{name= "JarvanIVDemacianStandard", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 830, type = 3, radius = 150, color= coloryellow, time = 2, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1619. table.insert(skillshotArray,{name= "JarvanIVDragonStrike", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 770, type = 1, radius = 70, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1620. table.insert(skillshotArray,{name= "JarvanIVCataclysm", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 650, type = 3, radius = 300, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1621. skillshotcharexist = true
  1622. end
  1623. if 1==1 or skillshotplayerObj.name == "Kassadin" then
  1624. table.insert(skillshotArray,{name= "RiftWalk", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 5, radius = 150, color= colorgreen, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1625. skillshotcharexist = true
  1626. end
  1627. if 1==1 or skillshotplayerObj.name == "Katarina" then
  1628. table.insert(skillshotArray,{name= "ShadowStep", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 3, radius = 75, color= colorgreen, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1629. skillshotcharexist = true
  1630. end
  1631. if 1==1 or skillshotplayerObj.name == "Kennen" then
  1632. table.insert(skillshotArray,{name= "KennenShurikenHurlMissile1", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1050, type = 1, radius = 75, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1633. skillshotcharexist = true
  1634. end
  1635. if 1==1 or skillshotplayerObj.name == "KogMaw" then
  1636. table.insert(skillshotArray,{name= "KogMawVoidOozeMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1115, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1637. table.insert(skillshotArray,{name= "KogMawLivingArtillery", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 2200, type = 3, radius = 200, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1638. skillshotcharexist = true
  1639. end
  1640. if 1==1 or skillshotplayerObj.name == "Leblanc" then
  1641. table.insert(skillshotArray,{name= "LeblancSoulShackle", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1642. table.insert(skillshotArray,{name= "LeblancSoulShackleM", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1643. table.insert(skillshotArray,{name= "LeblancSlide", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 3, radius = 250, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1644. table.insert(skillshotArray,{name= "LeblancSlideM", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 3, radius = 250, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1645. table.insert(skillshotArray,{name= "leblancslidereturn", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 3, radius = 50, color= colorgreen, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1646. table.insert(skillshotArray,{name= "leblancslidereturnm", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 3, radius = 50, color= colorgreen, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1647. skillshotcharexist = true
  1648. end
  1649. if 1==1 or skillshotplayerObj.name == "LeeSin" then
  1650. table.insert(skillshotArray,{name= "BlindMonkQOne", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 975, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1651. table.insert(skillshotArray,{name= "BlindMonkRKick", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1200, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1652. skillshotcharexist = true
  1653. end
  1654. if 1==1 or skillshotplayerObj.name == "Leona" then
  1655. table.insert(skillshotArray,{name= "LeonaZenithBladeMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1656. skillshotcharexist = true
  1657. end
  1658. if 1==1 or skillshotplayerObj.name == "Lucian" then
  1659. table.insert(skillshotArray,{name= "LucianQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 100, color= colorcyan, time = 0.75, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1660. table.insert(skillshotArray,{name= "LucianW", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1661. table.insert(skillshotArray,{name= "LucianR", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1400, type = 1, radius = 250, color= colorcyan, time = 3, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1662. skillshotcharexist = true
  1663. end
  1664. if 1==1 or skillshotplayerObj.name == "Lux" then
  1665. table.insert(skillshotArray,{name= "LuxLightBinding", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1175, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1666. table.insert(skillshotArray,{name= "LuxLightStrikeKugel", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 3, radius = 300, color= coloryellow, time = 2.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1667. table.insert(skillshotArray,{name= "LuxMaliceCannon", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 3000, type = 1, radius = 180, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1668. skillshotcharexist = true
  1669. end
  1670. if 1==1 or skillshotplayerObj.name == "Lulu" then
  1671. table.insert(skillshotArray,{name= "LuluQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 925, type = 1, radius = 50, color= colorcyan, time = 1, isline = true, px =0, py =0 , pz =0, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1672. skillshotcharexist = true
  1673. end
  1674. if 1==1 or skillshotplayerObj.name == "Maokai" then
  1675. table.insert(skillshotArray,{name= "MaokaiTrunkLineMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1676. table.insert(skillshotArray,{name= "MaokaiSapling2", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 3, radius = 350 , color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1677. skillshotcharexist = true
  1678. end
  1679. if 1==1 or skillshotplayerObj.name == "Malphite" then
  1680. table.insert(skillshotArray,{name= "UFSlash", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 3, radius = 325, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1681. skillshotcharexist = true
  1682. end
  1683. if 1==1 or skillshotplayerObj.name == "Malzahar" then
  1684. table.insert(skillshotArray,{name= "AlZaharCalloftheVoid", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 100 , color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1685. table.insert(skillshotArray,{name= "AlZaharNullZone", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 3, radius = 250 , color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1686. skillshotcharexist = true
  1687. end
  1688. if 1==1 or skillshotplayerObj.name == "MissFortune" then
  1689. table.insert(skillshotArray,{name= "MissFortuneScattershot", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 800, type = 3, radius = 400, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1690. skillshotcharexist = true
  1691. end
  1692. if 1==1 or skillshotplayerObj.name == "Morgana" then
  1693. table.insert(skillshotArray,{name= "DarkBindingMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1300, type = 1, radius = 90, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1694. table.insert(skillshotArray,{name= "TormentedSoil", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 300, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1695. skillshotcharexist = true
  1696. end
  1697. if 1==1 or skillshotplayerObj.name == "Nautilus" then
  1698. table.insert(skillshotArray,{name= "NautilusAnchorDrag", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 1, radius = 150, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1699. skillshotcharexist = true
  1700. end
  1701. if 1==1 or skillshotplayerObj.name == "Nidalee" then
  1702. table.insert(skillshotArray,{name= "JavelinToss", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1500, type = 1, radius = 150, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1703. skillshotcharexist = true
  1704. end
  1705. if 1==1 or skillshotplayerObj.name == "Nocturne" then
  1706. table.insert(skillshotArray,{name= "NocturneDuskbringer", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1200, type = 1, radius = 150, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1707. skillshotcharexist = true
  1708. end
  1709. if 1==1 or skillshotplayerObj.name == "Olaf" then
  1710. table.insert(skillshotArray,{name= "OlafAxeThrow", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 2, radius = 100, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1711. skillshotcharexist = true
  1712. end
  1713. if 1==1 or skillshotplayerObj.name == "Orianna" then
  1714. table.insert(skillshotArray,{name= "OrianaIzunaCommand", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 825, type = 3, radius = 150, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1715. skillshotcharexist = true
  1716. end
  1717. if 1==1 or skillshotplayerObj.name == "Renekton" then
  1718. table.insert(skillshotArray,{name= "RenektonSliceAndDice", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 450, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1719. table.insert(skillshotArray,{name= "renektondice", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 450, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1720. skillshotcharexist = true
  1721. end
  1722. if 1==1 or skillshotplayerObj.name == "Rumble" then
  1723. table.insert(skillshotArray,{name= "RumbleGrenadeMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 100, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1724. table.insert(skillshotArray,{name= "RumbleCarpetBomb", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1700, type = 1, radius = 100, color= coloryellow, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1725. skillshotcharexist = true
  1726. end
  1727. if 1==1 or skillshotplayerObj.name == "Sivir" then
  1728. table.insert(skillshotArray,{name= "SpiralBlade", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1729. skillshotcharexist = true
  1730. end
  1731. if 1==1 or skillshotplayerObj.name == "Singed" then
  1732. table.insert(skillshotArray,{name= "MegaAdhesive", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 3, radius = 350, color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1733. skillshotcharexist = true
  1734. end
  1735. if 1==1 or skillshotplayerObj.name == "Shen" then
  1736. table.insert(skillshotArray,{name= "ShenShadowDash", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 2, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1737. skillshotcharexist = true
  1738. end
  1739. if 1==1 or skillshotplayerObj.name == "Shaco" then
  1740. table.insert(skillshotArray,{name= "Deceive", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 500, type = 5, radius = 100, color= colorgreen, time = 3.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1741. skillshotcharexist = true
  1742. end
  1743. if 1==1 or skillshotplayerObj.name == "Shyvana" then
  1744. table.insert(skillshotArray,{name= "ShyvanaTransformLeap", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 925, type = 1, radius = 150, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1745. table.insert(skillshotArray,{name= "ShyvanaFireballMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1746. skillshotcharexist = true
  1747. end
  1748. if 1==1 or skillshotplayerObj.name == "Skarner" then
  1749. table.insert(skillshotArray,{name= "SkarnerFracture", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 1, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1750. skillshotcharexist = true
  1751. end
  1752. if 1==1 or skillshotplayerObj.name == "Sona" then
  1753. table.insert(skillshotArray,{name= "SonaCrescendo", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1754. skillshotcharexist = true
  1755. end
  1756. if 1==1 or skillshotplayerObj.name == "Sejuani" then
  1757. table.insert(skillshotArray,{name= "SejuaniGlacialPrison", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1150, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1758. skillshotcharexist = true
  1759. end
  1760. if 1==1 or skillshotplayerObj.name == "Swain" then
  1761. table.insert(skillshotArray,{name= "SwainShadowGrasp", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 265 , color= coloryellow, time = 1.5, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1762. skillshotcharexist = true
  1763. end
  1764. if 1==1 or skillshotplayerObj.name == "Tryndamere" then
  1765. table.insert(skillshotArray,{name= "Slash", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 600, type = 2, radius = 100, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1766. skillshotcharexist = true
  1767. end
  1768. if 1==1 or skillshotplayerObj.name == "Tristana" then
  1769. table.insert(skillshotArray,{name= "RocketJump", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 200, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1770. skillshotcharexist = true
  1771. end
  1772. if 1==1 or skillshotplayerObj.name == "TwistedFate" then
  1773. table.insert(skillshotArray,{name= "WildCards", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1450, type = 1, radius = 150, color= colorcyan, time = 5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1774. skillshotcharexist = true
  1775. end
  1776. if 1==1 or skillshotplayerObj.name == "Urgot" then
  1777. table.insert(skillshotArray,{name= "UrgotHeatseekingLineMissile", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 1, radius = 150, color= colorcyan, time = 0.8, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1778. table.insert(skillshotArray,{name= "UrgotPlasmaGrenade", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 950, type = 3, radius = 300, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1779. skillshotcharexist = true
  1780. end
  1781. if 1==1 or skillshotplayerObj.name == "Vayne" then
  1782. table.insert(skillshotArray,{name= "VayneTumble", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 250, type = 3, radius = 100, color= colorgreen, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1783. skillshotcharexist = true
  1784. end
  1785. if 1==1 or skillshotplayerObj.name == "Varus" then
  1786. --table.insert(skillshotArray,{name= "VarusQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1475, type = 1, radius = 50, color= coloryellow, time = 1})
  1787. table.insert(skillshotArray,{name= "VarusR", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1075, type = 1, radius = 150, color= colorcyan, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1788. skillshotcharexist = true
  1789. end
  1790. if 1==1 or skillshotplayerObj.name == "Veigar" then
  1791. table.insert(skillshotArray,{name= "VeigarDarkMatter", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 225, color= coloryellow, time = 2, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1792. skillshotcharexist = true
  1793. end
  1794. if 1==1 or skillshotplayerObj.name == "Viktor" then
  1795. --table.insert(skillshotArray,{name= "ViktorDeathRay", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 700, type = 1, radius = 150, color= coloryellow, time = 2})
  1796. end
  1797. if 1==1 or skillshotplayerObj.name == "Xerath" then
  1798. table.insert(skillshotArray,{name= "xeratharcanopulsedamage", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1799. table.insert(skillshotArray,{name= "xeratharcanopulsedamageextended", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1300, type = 1, radius = 150, color= colorcyan, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1800. table.insert(skillshotArray,{name= "xeratharcanebarragewrapper", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 250, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1801. table.insert(skillshotArray,{name= "xeratharcanebarragewrapperext", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1300, type = 3, radius = 250, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1802. skillshotcharexist = true
  1803. end
  1804. if 1==1 or skillshotplayerObj.name == "Ziggs" then
  1805. table.insert(skillshotArray,{name= "ZiggsQ", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 850, type = 3, radius = 160, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1806. table.insert(skillshotArray,{name= "ZiggsW", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1000, type = 3, radius = 225 , color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1807. table.insert(skillshotArray,{name= "ZiggsE", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 250, color= coloryellow, time = 1, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1808. table.insert(skillshotArray,{name= "ZiggsR", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 5300, type = 3, radius = 550, color= coloryellow, time = 3, isline = false, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1809. skillshotcharexist = true
  1810. end
  1811. if 1==1 or skillshotplayerObj.name == "Zyra" then
  1812. table.insert(skillshotArray,{name= "ZyraQFissure", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 825, type = 3, radius = 275, color= coloryellow, time = 1.5, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1813. table.insert(skillshotArray,{name= "ZyraGraspingRoots", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 1100, type = 1, radius = 90, color= colorcyan, time = 2, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1814. skillshotcharexist = true
  1815. end
  1816. if 1==1 or skillshotplayerObj.name == "Diana" then
  1817. table.insert(skillshotArray,{name= "DianaArc", shot=0, lastshot = 0, skillshotpoint = {}, maxdistance = 900, type = 3, radius = 205, color= coloryellow, time = 1, isline = true, p1x =0, p1y =0 , p1z =0 , p2x =0, p2y =0 , p2z =0 })
  1818. skillshotcharexist = true
  1819. end
  1820. end
  1821. end
  1822.  
  1823. SetTimerCallback('Main')
  1824. ----------[[End of Auto Dodge Skillshots]]
  1825.  
  1826. ----------[[GETMECS]]
  1827. --COMING SOON
  1828. ----------[[END OF GETMECS]]
  1829. SetTimerCallback("DeadlyCassio")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement