Advertisement
Guest User

123

a guest
Jan 26th, 2015
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 39.36 KB | None | 0 0
  1. --[[
  2.  
  3. Script Name: ANNIE MASTER
  4. Author: kokosik1221
  5. Last Version: 0.53
  6. 08.01.2015
  7.  
  8. ]]--
  9.  
  10.  
  11. if myHero.charName ~= "Annie" then return end
  12.  
  13. _G.AUTOUPDATE = true
  14. _G.USESKINHACK = false
  15.  
  16.  
  17. local version = "0.53"
  18. local UPDATE_HOST = "raw.github.com"
  19. local UPDATE_PATH = "/kokosik1221/bol/master/AnnieMaster.lua".."?rand="..math.random(1,10000)
  20. local UPDATE_FILE_PATH = SCRIPT_PATH..GetCurrentEnv().FILE_NAME
  21. local UPDATE_URL = "https://"..UPDATE_HOST..UPDATE_PATH
  22. function AutoupdaterMsg(msg) print("<font color=\"#FF0000\"><b>AnnieMaster:</b></font> <font color=\"#FFFFFF\">"..msg..".</font>") end
  23. if _G.AUTOUPDATE then
  24. local ServerData = GetWebResult(UPDATE_HOST, "/kokosik1221/bol/master/AnnieMaster.version")
  25. if ServerData then
  26. ServerVersion = type(tonumber(ServerData)) == "number" and tonumber(ServerData) or nil
  27. if ServerVersion then
  28. if tonumber(version) < ServerVersion then
  29. AutoupdaterMsg("New version available "..ServerVersion)
  30. AutoupdaterMsg("Updating, please don't press F9")
  31. DelayAction(function() DownloadFile(UPDATE_URL, UPDATE_FILE_PATH, function () AutoupdaterMsg("Successfully updated. ("..version.." => "..ServerVersion.."), press F9 twice to load the updated version.") end) end, 3)
  32. else
  33. AutoupdaterMsg("You have got the latest version ("..ServerVersion..")")
  34. end
  35. end
  36. else
  37. AutoupdaterMsg("Error downloading version info")
  38. end
  39. end
  40. local REQUIRED_LIBS = {
  41. ["vPrediction"] = "https://raw.github.com/Hellsing/BoL/master/common/VPrediction.lua",
  42. ["Prodiction"] = "https://bitbucket.org/Klokje/public-klokjes-bol-scripts/raw/ec830facccefb3b52212dba5696c08697c3c2854/Test/Prodiction/Prodiction.lua",
  43. ["SxOrbWalk"] = "https://raw.githubusercontent.com/Superx321/BoL/master/common/SxOrbWalk.lua",
  44. }
  45. local DOWNLOADING_LIBS, DOWNLOAD_COUNT = false, 0
  46. function AfterDownload()
  47. DOWNLOAD_COUNT = DOWNLOAD_COUNT - 1
  48. if DOWNLOAD_COUNT == 0 then
  49. DOWNLOADING_LIBS = false
  50. print("<b><font color=\"#FF0000\">Required libraries downloaded successfully, please reload (double F9).</font>")
  51. end
  52. end
  53. for DOWNLOAD_LIB_NAME, DOWNLOAD_LIB_URL in pairs(REQUIRED_LIBS) do
  54. if FileExist(LIB_PATH .. DOWNLOAD_LIB_NAME .. ".lua") then
  55. if DOWNLOAD_LIB_NAME ~= "Prodiction" then
  56. require(DOWNLOAD_LIB_NAME)
  57. end
  58. if DOWNLOAD_LIB_NAME == "Prodiction" and VIP_USER then
  59. require(DOWNLOAD_LIB_NAME)
  60. prodstatus = true
  61. end
  62. else
  63. DOWNLOADING_LIBS = true
  64. DOWNLOAD_COUNT = DOWNLOAD_COUNT + 1
  65. DownloadFile(DOWNLOAD_LIB_URL, LIB_PATH .. DOWNLOAD_LIB_NAME..".lua", AfterDownload)
  66. end
  67. end
  68.  
  69. local Items = {
  70. BWC = { id = 3144, range = 400, reqTarget = true, slot = nil },
  71. DFG = { id = 3128, range = 750, reqTarget = true, slot = nil },
  72. HGB = { id = 3146, range = 400, reqTarget = true, slot = nil },
  73. BFT = { id = 3188, range = 750, reqTarget = true, slot = nil },
  74. }
  75.  
  76. function OnLoad()
  77. Vars()
  78. Menu()
  79. print("<b><font color=\"#FF0000\">Annie Master:</font></b> <font color=\"#FFFFFF\">Good luck and give me feedback!</font>")
  80. end
  81.  
  82. function Vars()
  83. Q = {name = "Disintegrate", range = 625, speed = 1300, delay = 0.25}
  84. W = {name = "Incinerate", range = 625, speed = math.huge, delay = 0.60, width = 50*math.pi/180}
  85. E = {name = "Molten Shield"}
  86. R = {name = "Summon: Tibbers", range = 600, speed = math.huge, delay = 0.20, width = 200}
  87. QReady, WReady, EReady, RReady, IReady, zhonyaready, sac, mma, stun, tibbers, recall = false, false, false, false, false, false, false, false, false, false, false
  88. abilitylvl, lastskin = 0, 0
  89. EnemyMinions = minionManager(MINION_ENEMY, Q.range, myHero, MINION_SORT_MAXHEALTH_DEC)
  90. JungleMinions = minionManager(MINION_JUNGLE, Q.range, myHero, MINION_SORT_MAXHEALTH_DEC)
  91. RFTS = TargetSelector(TARGET_LESS_CAST_PRIORITY, R.range + 400, DAMAGE_MAGIC)
  92. FlashKey, IgniteKey, zhonyaslot = nil, nil, nil
  93. killstring = {}
  94. TargetTable = {
  95. AP = {
  96. "Annie", "Ahri", "Akali", "Anivia", "Annie", "Brand", "Cassiopeia", "Diana", "Evelynn", "FiddleSticks", "Fizz", "Annie", "Heimerdinger", "Karthus",
  97. "Kassadin", "Katarina", "Kayle", "Kennen", "Leblanc", "Lissandra", "Lux", "Malzahar", "Mordekaiser", "Morgana", "Nidalee", "Orianna",
  98. "Ryze", "Sion", "Swain", "Syndra", "Teemo", "TwistedFate", "Veigar", "Viktor", "Vladimir", "Xerath", "Ziggs", "Zyra", "Velkoz"
  99. },
  100. Support = {
  101. "Alistar", "Blitzcrank", "Janna", "Karma", "Leona", "Lulu", "Nami", "Nunu", "Sona", "Soraka", "Taric", "Thresh", "Zilean", "Braum"
  102. },
  103. Tank = {
  104. "Amumu", "Chogath", "DrMundo", "Galio", "Hecarim", "Malphite", "Maokai", "Nasus", "Rammus", "Sejuani", "Nautilus", "Shen", "Singed", "Skarner", "Volibear",
  105. "Warwick", "Yorick", "Zac"
  106. },
  107. AD_Carry = {
  108. "Ashe", "Caitlyn", "Corki", "Draven", "Ezreal", "Graves", "Jayce", "Jinx", "KogMaw", "Lucian", "MasterYi", "MissFortune", "Pantheon", "Quinn", "Shaco", "Sivir",
  109. "Talon","Tryndamere", "Tristana", "Twitch", "Urgot", "Varus", "Vayne", "Yasuo", "Zed"
  110. },
  111. Bruiser = {
  112. "Aatrox", "Darius", "Elise", "Fiora", "Gangplank", "Garen", "Irelia", "JarvanIV", "Jax", "Khazix", "LeeSin", "Nocturne", "Olaf", "Poppy",
  113. "Renekton", "Rengar", "Riven", "Rumble", "Shyvana", "Trundle", "Udyr", "Vi", "MonkeyKing", "XinZhao"
  114. }
  115. }
  116. end
  117.  
  118. function OnTick()
  119. Check()
  120. if Cel ~= nil and MenuAnnie.comboConfig.CEnabled and ((myHero.mana/myHero.maxMana)*100) >= MenuAnnie.comboConfig.manac then
  121. caa()
  122. Combo()
  123. end
  124. if Cel ~= nil and (MenuAnnie.harrasConfig.HEnabled or MenuAnnie.harrasConfig.HTEnabled) and ((myHero.mana/myHero.maxMana)*100) >= MenuAnnie.harrasConfig.manah then
  125. Harrass()
  126. end
  127. if MenuAnnie.farm.LaneClear and ((myHero.mana/myHero.maxMana)*100) >= MenuAnnie.farm.manaf then
  128. Farm()
  129. end
  130. if MenuAnnie.jf.JFEnabled and ((myHero.mana/myHero.maxMana)*100) >= MenuAnnie.jf.manajf then
  131. JungleFarm()
  132. end
  133. if MenuAnnie.prConfig.AZ then
  134. autozh()
  135. end
  136. if MenuAnnie.prConfig.ALS then
  137. autolvl()
  138. end
  139. if MenuAnnie.exConfig.SP then
  140. stackp()
  141. end
  142. if MenuAnnie.exConfig.SPF then
  143. stackp2()
  144. end
  145. if MenuAnnie.exConfig.FRW and FRCel ~= nil then
  146. FlashR()
  147. end
  148. KillSteall()
  149. AutoWR()
  150. end
  151.  
  152. function Menu()
  153. VP = VPrediction()
  154. MenuAnnie = scriptConfig("Annie Master "..version, "Annie Master "..version)
  155. MenuAnnie:addSubMenu("Orbwalking", "Orbwalking")
  156. SxOrb:LoadToMenu(MenuAnnie.Orbwalking)
  157. MenuAnnie:addSubMenu("Target selector", "STS")
  158. TargetSelector = TargetSelector(TARGET_LESS_CAST_PRIORITY, Q.range, DAMAGE_MAGIC)
  159. TargetSelector.name = "Annie"
  160. MenuAnnie.STS:addTS(TargetSelector)
  161. MenuAnnie:addSubMenu("[Annie Master]: Combo Settings", "comboConfig")
  162. MenuAnnie.comboConfig:addSubMenu("[Annie Master]: Q Settings", "qConfig")
  163. MenuAnnie.comboConfig.qConfig:addParam("USEQ", "Use " .. Q.name .. " (Q)", SCRIPT_PARAM_ONOFF, true)
  164. MenuAnnie.comboConfig:addSubMenu("[Annie Master]: W Settings", "wConfig")
  165. MenuAnnie.comboConfig.wConfig:addParam("USEW", "Use " .. W.name .. " (W)", SCRIPT_PARAM_ONOFF, true)
  166. MenuAnnie.comboConfig:addSubMenu("[Annie Master]: E Settings", "eConfig")
  167. MenuAnnie.comboConfig.eConfig:addParam("USEE", "Use " .. E.name .. " (E)", SCRIPT_PARAM_ONOFF, false)
  168. MenuAnnie.comboConfig:addSubMenu("[Annie Master]: R Settings", "rConfig")
  169. MenuAnnie.comboConfig.rConfig:addParam("USER", "Use " .. R.name .. " (R)", SCRIPT_PARAM_ONOFF, true)
  170. MenuAnnie.comboConfig.rConfig:addParam("RM", "Cast (R) Mode", SCRIPT_PARAM_LIST, 3, {"Don't Use", "Normal", "Killable", "Can Hit X"})
  171. MenuAnnie.comboConfig.rConfig:addParam("HXC", "Hit X = ", SCRIPT_PARAM_SLICE, 2, 1, 5, 0)
  172. MenuAnnie.comboConfig.rConfig:addParam("qqq", "Use Ultimate On:", SCRIPT_PARAM_INFO,"")
  173. for _,hero in pairs(GetEnemyHeroes()) do
  174. if hero.team ~= myHero.team then
  175. MenuAnnie.comboConfig.rConfig:addParam(hero.charName, hero.charName, SCRIPT_PARAM_ONOFF, true)
  176. end
  177. end
  178. MenuAnnie.comboConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  179. MenuAnnie.comboConfig:addParam("uaa", "Use AA in Combo", SCRIPT_PARAM_ONOFF, true)
  180. MenuAnnie.comboConfig:addParam("uaa2", "Use AA Only If Enemy Is In Q Range", SCRIPT_PARAM_ONOFF, true)
  181. MenuAnnie.comboConfig:addParam("ST", "Focus Selected Target", SCRIPT_PARAM_ONOFF, false)
  182. MenuAnnie.comboConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  183. MenuAnnie.comboConfig:addParam("CEnabled", "Full Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32)
  184. MenuAnnie.comboConfig:addParam("manac", "Min. Mana To Cast Combo", SCRIPT_PARAM_SLICE, 10, 0, 100, 0)
  185. MenuAnnie:addSubMenu("[Annie Master]: Harras Settings", "harrasConfig")
  186. MenuAnnie.harrasConfig:addParam("HM", "Harrass Mode:", SCRIPT_PARAM_LIST, 1, {"|Q|", "|W|"})
  187. MenuAnnie.harrasConfig:addParam("HEnabled", "Harass", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("K"))
  188. MenuAnnie.harrasConfig:addParam("HTEnabled", "Harass Toggle", SCRIPT_PARAM_ONKEYTOGGLE, false, string.byte("L"))
  189. MenuAnnie.harrasConfig:addParam("manah", "Min. Mana To Harass", SCRIPT_PARAM_SLICE, 60, 0, 100, 0)
  190. MenuAnnie:addSubMenu("[Annie Master]: Extra Settings", "exConfig")
  191. MenuAnnie.exConfig:addParam("AW", "Auto W If Can Stun X Enemy", SCRIPT_PARAM_ONOFF, true)
  192. MenuAnnie.exConfig:addParam("AWX", "X = ", SCRIPT_PARAM_SLICE, 3, 1, 5, 0)
  193. MenuAnnie.exConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  194. MenuAnnie.exConfig:addParam("AR", "Auto R If Can Stun X Enemy", SCRIPT_PARAM_ONOFF, true)
  195. MenuAnnie.exConfig:addParam("ARX", "X = ", SCRIPT_PARAM_SLICE, 3, 1, 5, 0)
  196. MenuAnnie.exConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  197. MenuAnnie.exConfig:addParam("SP", "Stack Pasive With (E)", SCRIPT_PARAM_ONKEYTOGGLE, false, string.byte("T"))
  198. MenuAnnie.exConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  199. MenuAnnie.exConfig:addParam("AEE", "Auto E If Enemy AA Me", SCRIPT_PARAM_ONOFF, true)
  200. MenuAnnie.exConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  201. MenuAnnie.exConfig:addParam("SPF", "Stack Pasive In Fountain", SCRIPT_PARAM_ONOFF, true)
  202. MenuAnnie.exConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  203. MenuAnnie.exConfig:addParam("FRW", "Flash + R If Can Stun X", SCRIPT_PARAM_ONOFF, true)
  204. MenuAnnie.exConfig:addParam("FRWX", "X = ", SCRIPT_PARAM_SLICE, 3, 1, 5, 0)
  205. MenuAnnie:addSubMenu("[Annie Master]: KS Settings", "ksConfig")
  206. MenuAnnie.ksConfig:addParam("IKS", "Use Ignite To KS", SCRIPT_PARAM_ONOFF, true)
  207. MenuAnnie.ksConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  208. MenuAnnie.ksConfig:addParam("QKS", "Use " .. Q.name .. " (Q)", SCRIPT_PARAM_ONOFF, true)
  209. MenuAnnie.ksConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  210. MenuAnnie.ksConfig:addParam("WKS", "Use " .. W.name .. " (W)", SCRIPT_PARAM_ONOFF, true)
  211. MenuAnnie.ksConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  212. MenuAnnie.ksConfig:addParam("RKS", "Use " .. R.name .. " (R)", SCRIPT_PARAM_ONOFF, true)
  213. MenuAnnie:addSubMenu("[Annie Master]: Farm Settings", "farm")
  214. MenuAnnie.farm:addParam("QF", "Use " .. Q.name .. " (Q)", SCRIPT_PARAM_LIST, 2, { "No", "Freezing", "LaneClear"})
  215. MenuAnnie.farm:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  216. MenuAnnie.farm:addParam("WF", "Use " .. W.name .. " (W)", SCRIPT_PARAM_LIST, 3, { "No", "Freezing", "LaneClear"})
  217. MenuAnnie.farm:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  218. MenuAnnie.farm:addParam("SFS", "Stop Farm If Have Stun", SCRIPT_PARAM_ONOFF, true)
  219. MenuAnnie.farm:addParam("LaneClear", "Farm ", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
  220. MenuAnnie.farm:addParam("manaf", "Min. Mana To Farm", SCRIPT_PARAM_SLICE, 40, 0, 100, 0)
  221. MenuAnnie:addSubMenu("[Annie Master]: Jungle Farm Settings", "jf")
  222. MenuAnnie.jf:addParam("QJF", "Use " .. Q.name .. " (Q)", SCRIPT_PARAM_ONOFF, true)
  223. MenuAnnie.jf:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  224. MenuAnnie.jf:addParam("WJF", "Use " .. W.name .. " (W)", SCRIPT_PARAM_ONOFF, true)
  225. MenuAnnie.jf:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  226. MenuAnnie.jf:addParam("JFEnabled", "Jungle Farm", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
  227. MenuAnnie.jf:addParam("manajf", "Min. Mana To Jungle Farm", SCRIPT_PARAM_SLICE, 40, 0, 100, 0)
  228. MenuAnnie:addSubMenu("[Annie Master]: Draw Settings", "drawConfig")
  229. MenuAnnie.drawConfig:addParam("DLC", "Use Lag-Free Circles", SCRIPT_PARAM_ONOFF, true)
  230. MenuAnnie.drawConfig:addParam("DD", "Draw DMG Text", SCRIPT_PARAM_ONOFF, true)
  231. MenuAnnie.drawConfig:addParam("DST", "Draw Selected Target", SCRIPT_PARAM_ONOFF, true)
  232. MenuAnnie.drawConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  233. MenuAnnie.drawConfig:addParam("DQR", "Draw Q&W Range", SCRIPT_PARAM_ONOFF, true)
  234. MenuAnnie.drawConfig:addParam("DQRC", "Draw Q&W Range Color", SCRIPT_PARAM_COLOR, {255,0,0,255})
  235. MenuAnnie.drawConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  236. MenuAnnie.drawConfig:addParam("DRR", "Draw R Range", SCRIPT_PARAM_ONOFF, true)
  237. MenuAnnie.drawConfig:addParam("DRRC", "Draw R Range Color", SCRIPT_PARAM_COLOR, {255, 0, 255, 0})
  238. MenuAnnie:addSubMenu("[Annie Master]: Misc Settings", "prConfig")
  239. MenuAnnie.prConfig:addParam("pc", "Use Packets To Cast Spells(VIP)", SCRIPT_PARAM_ONOFF, false)
  240. MenuAnnie.prConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  241. MenuAnnie.prConfig:addParam("skin", "Use change skin", SCRIPT_PARAM_ONOFF, false)
  242. MenuAnnie.prConfig:addParam("skin1", "Skin change(VIP)", SCRIPT_PARAM_SLICE, 9, 1, 9)
  243. MenuAnnie.prConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  244. MenuAnnie.prConfig:addParam("AZ", "Use Auto Zhonya", SCRIPT_PARAM_ONOFF, true)
  245. MenuAnnie.prConfig:addParam("AZHP", "Min HP To Cast Zhonya", SCRIPT_PARAM_SLICE, 20, 0, 100, 0)
  246. MenuAnnie.prConfig:addParam("AZMR", "Must Have 0 Enemy In Range:", SCRIPT_PARAM_SLICE, 900, 0, 1500, 0)
  247. MenuAnnie.prConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  248. MenuAnnie.prConfig:addParam("ALS", "Auto lvl skills", SCRIPT_PARAM_ONOFF, false)
  249. MenuAnnie.prConfig:addParam("AL", "Auto lvl sequence", SCRIPT_PARAM_LIST, 1, { "R>Q>W>E", "R>Q>E>W", "R>W>Q>E", "R>W>E>Q", "R>E>Q>W", "R>E>W>Q" })
  250. MenuAnnie.prConfig:addParam("qqq", "--------------------------------------------------------", SCRIPT_PARAM_INFO,"")
  251. MenuAnnie.prConfig:addParam("pro", "Prodiction To Use:", SCRIPT_PARAM_LIST, 1, {"VPrediction","Prodiction"})
  252. MenuAnnie.comboConfig:permaShow("CEnabled")
  253. MenuAnnie.harrasConfig:permaShow("HEnabled")
  254. MenuAnnie.harrasConfig:permaShow("HTEnabled")
  255. MenuAnnie.prConfig:permaShow("AZ")
  256. MenuAnnie.exConfig:permaShow("AW")
  257. MenuAnnie.exConfig:permaShow("AR")
  258. MenuAnnie.exConfig:permaShow("SP")
  259. MenuAnnie.exConfig:permaShow("AEE")
  260. if myHero:GetSpellData(SUMMONER_1).name:find("summonerdot") then IgniteKey = SUMMONER_1
  261. elseif myHero:GetSpellData(SUMMONER_2).name:find("summonerdot") then IgniteKey = SUMMONER_2
  262. end
  263. if myHero:GetSpellData(SUMMONER_1).name:find("summonerflash") then FlashKey = SUMMONER_1
  264. elseif myHero:GetSpellData(SUMMONER_2).name:find("summonerflash") then FlashKey = SUMMONER_2
  265. end
  266. _G.oldDrawCircle = rawget(_G, 'DrawCircle')
  267. _G.DrawCircle = DrawCircle2
  268. if _G.MMA_Loaded then
  269. print("<b><font color=\"#FF0000\">Annie Master:</font></b> <font color=\"#FFFFFF\">MMA Support Loaded.</font>")
  270. mma = true
  271. end
  272. if _G.AutoCarry then
  273. print("<b><font color=\"#FF0000\">Annie Master:</font></b> <font color=\"#FFFFFF\">SAC Support Loaded.</font>")
  274. sac = true
  275. end
  276. if heroManager.iCount < 10 then
  277. print("<font color=\"#FF0000\">Too few champions to arrange priority.</font>")
  278. elseif heroManager.iCount == 6 then
  279. arrangePrioritysTT()
  280. else
  281. arrangePrioritys()
  282. end
  283. end
  284.  
  285. function caa()
  286. if MenuAnnie.comboConfig.uaa and not MenuAnnie.comboConfig.uaa2 then
  287. SxOrb:EnableAttacks()
  288. elseif not MenuAnnie.comboConfig.uaa and not MenuAnnie.comboConfig.uaa2 then
  289. SxOrb:DisableAttacks()
  290. end
  291. if MenuAnnie.comboConfig.uaa and MenuAnnie.comboConfig.uaa2 then
  292. if GetDistance(Cel) < (Q.range - 50) then
  293. SxOrb:EnableAttacks()
  294. else
  295. SxOrb:DisableAttacks()
  296. end
  297. end
  298. end
  299.  
  300. function GetCustomTarget()
  301. TargetSelector:update()
  302. if _G.MMA_Target and _G.MMA_Target.type == myHero.type then
  303. return _G.MMA_Target
  304. end
  305. if _G.AutoCarry and _G.AutoCarry.Crosshair and _G.AutoCarry.Attack_Crosshair and _G.AutoCarry.Attack_Crosshair.target and _G.AutoCarry.Attack_Crosshair.target.type == myHero.type then
  306. return _G.AutoCarry.Attack_Crosshair.target
  307. end
  308. return TargetSelector.target
  309. end
  310.  
  311. function Check()
  312. RFTS:update()
  313. FRCel = RFTS.target
  314. if SelectedTarget ~= nil and ValidTarget(SelectedTarget, Q.range) then
  315. Cel = SelectedTarget
  316. else
  317. Cel = GetCustomTarget()
  318. end
  319. if sac or mma then
  320. SxOrb.SxOrbMenu.General.Enabled = false
  321. end
  322. SxOrb:ForceTarget(Cel)
  323. zhonyaslot = GetInventorySlotItem(3157)
  324. zhonyaready = (zhonyaslot ~= nil and myHero:CanUseSpell(zhonyaslot) == READY)
  325. QReady = (myHero:CanUseSpell(_Q) == READY)
  326. WReady = (myHero:CanUseSpell(_W) == READY)
  327. EReady = (myHero:CanUseSpell(_E) == READY)
  328. RReady = (myHero:CanUseSpell(_R) == READY)
  329. IReady = (IgniteKey ~= nil and myHero:CanUseSpell(IgniteKey) == READY)
  330. FlashReady = (FlashKey ~= nil and myHero:CanUseSpell(FlashKey) == READY)
  331. if MenuAnnie.prConfig.skin and VIP_USER and _G.USESKINHACK then
  332. if MenuAnnie.prConfig.skin1 ~= lastSkin then
  333. GenModelPacket("Annie", MenuAnnie.prConfig.skin1)
  334. lastSkin = MenuAnnie.prConfig.skin1
  335. end
  336. end
  337. if MenuAnnie.drawConfig.DLC then
  338. _G.DrawCircle = DrawCircle2
  339. else
  340. _G.DrawCircle = _G.oldDrawCircle
  341. end
  342. end
  343.  
  344. function UseItems(unit)
  345. if unit ~= nil then
  346. for _, item in pairs(Items) do
  347. item.slot = GetInventorySlotItem(item.id)
  348. if item.slot ~= nil then
  349. if item.reqTarget and GetDistance(unit) < item.range then
  350. CastSpell(item.slot, unit)
  351. elseif not item.reqTarget then
  352. if (GetDistance(unit) - getHitBoxRadius(myHero) - getHitBoxRadius(unit)) < 50 then
  353. CastSpell(item.slot)
  354. end
  355. end
  356. end
  357. end
  358. end
  359. end
  360.  
  361. function getHitBoxRadius(target)
  362. return GetDistance(target.minBBox, target.maxBBox)/2
  363. end
  364.  
  365. function Combo()
  366. UseItems(Cel)
  367. if RReady and ValidTarget(Cel, R.range) and MenuAnnie.comboConfig.rConfig[Cel.charName] then
  368. if MenuAnnie.comboConfig.rConfig.RM == 2 then
  369. CastR(Cel)
  370. end
  371. if MenuAnnie.comboConfig.rConfig.RM == 3 then
  372. local r = getDmg("R", Cel, myHero, 3)
  373. if Cel.health < r then
  374. CastR(Cel)
  375. end
  376. end
  377. if MenuAnnie.comboConfig.rConfig.RM == 4 then
  378. for _, enemy in pairs(GetEnemyHeroes()) do
  379. local rPos, HitChance, maxHit, Positions = VP:GetCircularAOECastPosition(enemy, R.delay, R.width, R.range, R.speed, myHero)
  380. if RReady and ValidTarget(enemy) and rPos ~= nil and maxHit >= MenuAnnie.comboConfig.rConfig.HXC then
  381. if VIP_USER and MenuAnnie.prConfig.pc then
  382. Packet("S_CAST", {spellId = _R, fromX = rPos.x, fromY = rPos.z, toX = rPos.x, toY = rPos.z}):send()
  383. else
  384. CastSpell(_R, rPos.x, rPos.z)
  385. end
  386. end
  387. end
  388. end
  389. end
  390. if QReady and MenuAnnie.comboConfig.qConfig.USEQ and ValidTarget(Cel, Q.range) then
  391. CastQ(Cel)
  392. end
  393. if WReady and MenuAnnie.comboConfig.wConfig.USEW and ValidTarget(Cel, W.range) then
  394. CastW(Cel)
  395. end
  396. if MenuAnnie.comboConfig.eConfig.USEE then
  397. CastE()
  398. end
  399. end
  400.  
  401. function Harrass()
  402. if MenuAnnie.harrasConfig.HM == 1 then
  403. if QReady and ValidTarget(Cel, Q.range) and not recall then
  404. CastQ(Cel)
  405. end
  406. end
  407. if MenuAnnie.harrasConfig.HM == 2 then
  408. if WReady and ValidTarget(Cel, W.range) and not recall then
  409. CastW(Cel)
  410. end
  411. end
  412. end
  413.  
  414. function Farm()
  415. EnemyMinions:update()
  416. QMode = MenuAnnie.farm.QF
  417. WMode = MenuAnnie.farm.WF
  418. for i, minion in pairs(EnemyMinions.objects) do
  419. if QMode == 3 then
  420. if QReady and minion ~= nil and not minion.dead and ValidTarget(minion, Q.range) then
  421. if not MenuAnnie.farm.SFS and not stun then
  422. CastSpell(_Q, minion)
  423. end
  424. end
  425. elseif QMode == 2 then
  426. if QReady and minion ~= nil and not minion.dead and ValidTarget(minion, Q.range) then
  427. if minion.health <= getDmg("Q", minion, myHero) then
  428. if not MenuAnnie.farm.SFS and not stun then
  429. CastSpell(_Q, minion)
  430. end
  431. end
  432. end
  433. end
  434. if WMode == 3 then
  435. if WReady and minion ~= nil and not minion.dead and ValidTarget(minion, W.range) then
  436. if not MenuAnnie.farm.SFS and not stun then
  437. CastW(minion)
  438. end
  439. end
  440. elseif WMode == 2 then
  441. if WReady and minion ~= nil and not minion.dead and ValidTarget(minion, W.range) then
  442. if minion.health <= getDmg("W", minion, myHero) then
  443. if not MenuAnnie.farm.SFS and not stun then
  444. CastW(minion)
  445. end
  446. end
  447. end
  448. end
  449. end
  450. end
  451.  
  452. function JungleFarm()
  453. JungleMinions:update()
  454. for i, minion in pairs(JungleMinions.objects) do
  455. if MenuAnnie.jf.WJF then
  456. if WReady and minion ~= nil and not minion.dead and ValidTarget(minion, W.range) then
  457. CastW(minion)
  458. end
  459. end
  460. if MenuAnnie.jf.QJF then
  461. if QReady and minion ~= nil and not minion.dead and ValidTarget(minion, Q.range) then
  462. CastSpell(_Q, minion)
  463. end
  464. end
  465. end
  466. end
  467.  
  468. function AutoWR()
  469. for _, enemy in pairs(GetEnemyHeroes()) do
  470. if MenuAnnie.exConfig.AW then
  471. local wPos, HitChance, maxHit, Positions = VP:GetConeAOECastPosition(enemy, W.delay, W.width, W.range, W.speed, myHero)
  472. if ValidTarget(enemy, W.range) and wPos ~= nil and maxHit >= MenuAnnie.exConfig.AWX then
  473. if stun and WReady and not recall then
  474. if VIP_USER and MenuAnnie.prConfig.pc then
  475. Packet("S_CAST", {spellId = _W, fromX = wPos.x, fromY = wPos.z, toX = wPos.x, toY = wPos.z}):send()
  476. else
  477. CastSpell(_W, wPos.x, wPos.z)
  478. end
  479. end
  480. end
  481. end
  482. if MenuAnnie.exConfig.AR then
  483. local rPos, HitChance, maxHit, Positions = VP:GetCircularAOECastPosition(enemy, R.delay, R.width, R.range, R.speed, myHero)
  484. if ValidTarget(enemy, R.range) and rPos ~= nil and maxHit >= MenuAnnie.exConfig.ARX then
  485. if stun and RReady and not recall then
  486. if VIP_USER and MenuAnnie.prConfig.pc then
  487. Packet("S_CAST", {spellId = _R, fromX = rPos.x, fromY = rPos.z, toX = rPos.x, toY = rPos.z}):send()
  488. else
  489. CastSpell(_R, rPos.x, rPos.z)
  490. end
  491. end
  492. end
  493. end
  494. end
  495. end
  496.  
  497. function stackp()
  498. if not stun and EReady and not recall then
  499. CastE()
  500. end
  501. end
  502.  
  503. function stackp2()
  504. if not stun and not recall and InFountain() then
  505. if EReady then
  506. CastE()
  507. end
  508. if WReady then
  509. CastSpell(_W, myHero.x, myHero.z)
  510. end
  511. end
  512. end
  513.  
  514. function FlashR()
  515. local targetpos = VP:GetPredictedPos(FRCel, R.delay)
  516. local flashposition = Vector(myHero.visionPos) + 400 * (Vector(targetpos) - Vector(myHero.visionPos)):normalized()
  517. local rPos, HitChance, maxHit, Positions = VP:GetCircularAOECastPosition(FRCel, R.delay, R.width, R.range, R.speed, myHero)
  518. if rPos ~= nil and maxHit >= MenuAnnie.exConfig.FRWX and not IsWall(D3DXVECTOR3(flashposition.x, flashposition.y, flashposition.z)) and GetDistance(myHero, targetpos) > R.range and GetDistance(myHero, targetpos) <= (R.range + 400) then
  519. if RReady and FlashReady and stun then
  520. CastSpell(FlashKey, flashposition.x, flashposition.z)
  521. DelayAction(function() CastSpell(_R, rPos.x, rPos.z) end, 0.25)
  522. end
  523. end
  524. end
  525.  
  526. function autozh()
  527. local count = EnemyCount(myHero, MenuAnnie.prConfig.AZMR)
  528. if zhonyaready and ((myHero.health/myHero.maxHealth)*100) < MenuAnnie.prConfig.AZHP and count == 0 then
  529. CastSpell(zhonyaslot)
  530. end
  531. end
  532.  
  533. function autolvl()
  534. if not MenuAnnie.prConfig.ALS then return end
  535. if myHero.level > abilitylvl then
  536. abilitylvl = abilitylvl + 1
  537. if MenuAnnie.prConfig.AL == 1 then
  538. LevelSpell(_R)
  539. LevelSpell(_Q)
  540. LevelSpell(_W)
  541. LevelSpell(_E)
  542. end
  543. if MenuAnnie.prConfig.AL == 2 then
  544. LevelSpell(_R)
  545. LevelSpell(_Q)
  546. LevelSpell(_E)
  547. LevelSpell(_W)
  548. end
  549. if MenuAnnie.prConfig.AL == 3 then
  550. LevelSpell(_R)
  551. LevelSpell(_W)
  552. LevelSpell(_Q)
  553. LevelSpell(_E)
  554. end
  555. if MenuAnnie.prConfig.AL == 4 then
  556. LevelSpell(_R)
  557. LevelSpell(_W)
  558. LevelSpell(_E)
  559. LevelSpell(_Q)
  560. end
  561. if MenuAnnie.prConfig.AL == 5 then
  562. LevelSpell(_R)
  563. LevelSpell(_E)
  564. LevelSpell(_Q)
  565. LevelSpell(_W)
  566. end
  567. if MenuAnnie.prConfig.AL == 6 then
  568. LevelSpell(_R)
  569. LevelSpell(_E)
  570. LevelSpell(_W)
  571. LevelSpell(_Q)
  572. end
  573. end
  574. end
  575.  
  576. function OnDraw()
  577. if MenuAnnie.drawConfig.DST and MenuAnnie.comboConfig.ST then
  578. if SelectedTarget ~= nil and not SelectedTarget.dead then
  579. DrawCircle(SelectedTarget.x, SelectedTarget.y, SelectedTarget.z, 100, RGB(MenuAnnie.drawConfig.DQRC[2], MenuAnnie.drawConfig.DQRC[3], MenuAnnie.drawConfig.DQRC[4]))
  580. end
  581. end
  582. if MenuAnnie.drawConfig.DD then
  583. DmgCalc()
  584. for _,enemy in pairs(GetEnemyHeroes()) do
  585. if ValidTarget(enemy) and killstring[enemy.networkID] ~= nil then
  586. local pos = WorldToScreen(D3DXVECTOR3(enemy.x, enemy.y, enemy.z))
  587. DrawText(killstring[enemy.networkID], 20, pos.x - 35, pos.y - 10, 0xFFFFFF00)
  588. end
  589. end
  590. end
  591. if MenuAnnie.drawConfig.DQR and (QReady or WReady) then
  592. DrawCircle(myHero.x, myHero.y, myHero.z, Q.range, RGB(MenuAnnie.drawConfig.DQRC[2], MenuAnnie.drawConfig.DQRC[3], MenuAnnie.drawConfig.DQRC[4]))
  593. end
  594. if MenuAnnie.drawConfig.DRR and RReady then
  595. DrawCircle(myHero.x, myHero.y, myHero.z, R.range, RGB(MenuAnnie.drawConfig.DRRC[2], MenuAnnie.drawConfig.DRRC[3], MenuAnnie.drawConfig.DRRC[4]))
  596. end
  597. end
  598.  
  599. function KillSteall()
  600. for _,enemy in pairs(GetEnemyHeroes()) do
  601. local health = enemy.health
  602. local IDMG = (50 + (20 * myHero.level))
  603. local dfgslot = GetInventorySlotItem(3128)
  604. local dfgready = (DFGSlot ~= nil and myHero:CanUseSpell(DFGSlot) == READY)
  605. local DFGDMG = ((dfgslot and dfgready and getDmg("DFG", enemy, myHero)) or 0)
  606. if DFGDMG > 0 then
  607. QDMG = getDmg("Q", enemy, myHero, 3) * 1.2
  608. WDMG = getDmg("W", enemy, myHero, 3) * 1.2
  609. RDMG = getDmg("R", enemy, myHero, 3) * 1.2
  610. elseif DFGDMG == 0 then
  611. QDMG = getDmg("Q", enemy, myHero, 3)
  612. WDMG = getDmg("W", enemy, myHero, 3)
  613. RDMG = getDmg("R", enemy, myHero, 3)
  614. end
  615. if ValidTarget(enemy, 700) and enemy ~= nil and enemy.team ~= player.team and not enemy.dead and enemy.visible then
  616. if health < QDMG and MenuAnnie.ksConfig.QKS and ValidTarget(enemy, Q.range) and QReady then
  617. CastQ(enemy)
  618. elseif health < WDMG and MenuAnnie.ksConfig.WKS and ValidTarget(enemy, W.range) and WReady then
  619. CastW(enemy)
  620. elseif health < RDMG and MenuAnnie.ksConfig.RKS and ValidTarget(enemy, R.range) and RReady then
  621. CastR(enemy)
  622. elseif health < IDMG and MenuAnnie.ksConfig.IKS and ValidTarget(enemy, 600) and IReady then
  623. CastSpell(IgniteKey, enemy)
  624. elseif health < (QDMG+WDMG) and MenuAnnie.ksConfig.WKS and MenuAnnie.ksConfig.QKS and ValidTarget(enemy, W.range) and WReady and QReady then
  625. CastW(enemy)
  626. CastQ(enemy)
  627. elseif health < (QDMG+RDMG) and MenuAnnie.ksConfig.RKS and MenuAnnie.ksConfig.QKS and ValidTarget(enemy, R.range) and RReady and QReady then
  628. CastR(enemy)
  629. CastQ(enemy)
  630. elseif health < (WDMG+RDMG) and MenuAnnie.ksConfig.RKS and MenuAnnie.ksConfig.WKS and ValidTarget(enemy, R.range) and RReady and WReady then
  631. CastR(enemy)
  632. CastW(enemy)
  633. elseif health < (QDMG+WDMG+RDMG) and MenuAnnie.ksConfig.QKS and MenuAnnie.ksConfig.RKS and MenuAnnie.ksConfig.WKS and ValidTarget(enemy, R.range) and RReady and WReady and QReady then
  634. CastR(enemy)
  635. CastQ(enemy)
  636. CastW(enemy)
  637. elseif health < (QDMG+IDMG) and MenuAnnie.ksConfig.QKS and ValidTarget(enemy, Q.range) and QReady and MenuAnnie.ksConfig.IKS and IReady then
  638. CastQ(enemy)
  639. CastSpell(IgniteKey, enemy)
  640. elseif health < (QDMG+IDMG) and MenuAnnie.ksConfig.WKS and ValidTarget(enemy, W.range) and WReady and MenuAnnie.ksConfig.IKS and IReady then
  641. CastW(enemy)
  642. CastSpell(IgniteKey, enemy)
  643. elseif health < (RDMG+IDMG) and MenuAnnie.ksConfig.RKS and ValidTarget(enemy, R.range) and RReady and MenuAnnie.ksConfig.IKS and IReady then
  644. CastR(enemy)
  645. CastSpell(IgniteKey, enemy)
  646. elseif health < (QDMG+WDMG+IDMG) and MenuAnnie.ksConfig.WKS and MenuAnnie.ksConfig.QKS and ValidTarget(enemy, W.range) and WReady and QReady and MenuAnnie.ksConfig.IKS and IReady then
  647. CastW(enemy)
  648. CastQ(enemy)
  649. CastSpell(IgniteKey, enemy)
  650. elseif health < (QDMG+RDMG+IDMG) and MenuAnnie.ksConfig.RKS and MenuAnnie.ksConfig.QKS and ValidTarget(enemy, R.range) and RReady and QReady and MenuAnnie.ksConfig.IKS and IReady then
  651. CastR(enemy)
  652. CastQ(enemy)
  653. CastSpell(IgniteKey, enemy)
  654. elseif health < (WDMG+RDMG+IDMG) and MenuAnnie.ksConfig.RKS and MenuAnnie.ksConfig.WKS and ValidTarget(enemy, R.range) and RReady and WReady and MenuAnnie.ksConfig.IKS and IReady then
  655. CastR(enemy)
  656. CastW(enemy)
  657. CastSpell(IgniteKey, enemy)
  658. elseif health < (QDMG+WDMG+RDMG+IDMG) and MenuAnnie.ksConfig.QKS and MenuAnnie.ksConfig.RKS and MenuAnnie.ksConfig.WKS and ValidTarget(enemy, R.range) and RReady and WReady and QReady and MenuAnnie.ksConfig.IKS and IReady then
  659. CastR(enemy)
  660. CastQ(enemy)
  661. CastW(enemy)
  662. CastSpell(IgniteKey, enemy)
  663. end
  664. end
  665. end
  666. end
  667.  
  668. function DmgCalc()
  669. for _,enemy in pairs(GetEnemyHeroes()) do
  670. if not enemy.dead and enemy.visible and GetDistance(enemy) < 3000 then
  671. local QDMG = getDmg("Q", enemy, myHero, 3)
  672. local WDMG = getDmg("W", enemy, myHero, 3)
  673. local RDMG = getDmg("R", enemy, myHero, 3)
  674. local IDMG = (50 + (20 * myHero.level))
  675. local dfgslot = GetInventorySlotItem(3128)
  676. local dfgready = (dfgslot ~= nil and myHero:CanUseSpell(dfgslot) == READY)
  677. local DFGDMG = ((dfgslot and dfgready and getDmg("DFG", enemy, myHero)) or 0)
  678. if DFGDMG > 0 then
  679. QDMG2 = getDmg("Q", enemy, myHero, 3) * 1.2
  680. WDMG2 = getDmg("W", enemy, myHero, 3) * 1.2
  681. RDMG2 = getDmg("R", enemy, myHero, 3) * 1.2
  682. else
  683. QDMG2 = 0
  684. WDMG2 = 0
  685. RDMG2 = 0
  686. end
  687. if enemy.health > (QDMG + WDMG + RDMG + IDMG + DFGDMG) then
  688. killstring[enemy.networkID] = "Harass Him!!!"
  689. elseif enemy.health < QDMG and (enemy.health > (QDMG + IDMG) or enemy.health > (QDMG2 + DFGDMG)) then
  690. killstring[enemy.networkID] = "Q Kill!"
  691. elseif enemy.health < (QDMG + IDMG) and (enemy.health > QDMG or enemy.health > (QDMG2 + DFGDMG)) then
  692. killstring[enemy.networkID] = "Q+Ignite Kill!"
  693. elseif enemy.health < (QDMG2 + DFGDMG) and (enemy.health > (QDMG + IDMG) or enemy.health > QDMG) then
  694. killstring[enemy.networkID] = "DFG+Q Kill!"
  695. elseif enemy.health < WDMG and (enemy.health > (WDMG + IDMG) or enemy.health > (WDMG2 + DFGDMG)) then
  696. killstring[enemy.networkID] = "W Kill!"
  697. elseif enemy.health < (WDMG + IDMG) and (enemy.health > WDMG or enemy.health > (WDMG2 + DFGDMG)) then
  698. killstring[enemy.networkID] = "W+Ignite Kill!"
  699. elseif enemy.health < (WDMG2 + DFGDMG) and (enemy.health > (WDMG + IDMG) or enemy.health > WDMG) then
  700. killstring[enemy.networkID] = "DFG+W Kill!"
  701. elseif enemy.health < RDMG and (enemy.health > (RDMG + IDMG) or enemy.health > (RDMG2 + DFGDMG)) then
  702. killstring[enemy.networkID] = "R Kill!"
  703. elseif enemy.health < (RDMG + IDMG) and (enemy.health > RDMG or enemy.health > (RDMG2 + DFGDMG)) then
  704. killstring[enemy.networkID] = "R+Ignite Kill!"
  705. elseif enemy.health < (RDMG2 + DFGDMG) and (enemy.health > (RDMG + IDMG) or enemy.health > RDMG) then
  706. killstring[enemy.networkID] = "DFG+R Kill!"
  707. elseif enemy.health < (QDMG + WDMG) then
  708. killstring[enemy.networkID] = "Q+W Kill!"
  709. elseif enemy.health < (QDMG + WDMG + IDMG) then
  710. killstring[enemy.networkID] = "Q+W+Ignite Kill!"
  711. elseif enemy.health < (QDMG2 + WDMG2 + DFGDMG) then
  712. killstring[enemy.networkID] = "DFG+Q+W Kill!"
  713. elseif enemy.health < (QDMG + RDMG) then
  714. killstring[enemy.networkID] = "Q+R Kill!"
  715. elseif enemy.health < (QDMG + RDMG + IDMG) then
  716. killstring[enemy.networkID] = "Q+R+Ignite Kill!"
  717. elseif enemy.health < (QDMG2 + RDMG2 + DFGDMG) then
  718. killstring[enemy.networkID] = "DFG+Q+R Kill!"
  719. elseif enemy.health < (WDMG + RDMG) then
  720. killstring[enemy.networkID] = "W+R Kill!"
  721. elseif enemy.health < (WDMG + RDMG + IDMG) then
  722. killstring[enemy.networkID] = "W+R+Ignite Kill!"
  723. elseif enemy.health < (WDMG2 + RDMG2 + DFGDMG) then
  724. killstring[enemy.networkID] = "DFG+W+R Kill!"
  725. elseif enemy.health < (QDMG + WDMG + RDMG) then
  726. killstring[enemy.networkID] = "Q+W+R Kill!"
  727. elseif enemy.health < (QDMG + WDMG + RDMG + IDMG) then
  728. killstring[enemy.networkID] = "Q+W+R+Ignite Kill!"
  729. elseif enemy.health < (QDMG2 + WDMG2 + RDMG + DFGDMG) then
  730. killstring[enemy.networkID] = "DFG+Q+W+R Kill!"
  731. end
  732. end
  733. end
  734. end
  735.  
  736. function CastQ(unit)
  737. if VIP_USER and MenuAnnie.prConfig.pc then
  738. Packet("S_CAST", {spellId = _Q, targetNetworkId = unit.networkID}):send()
  739. else
  740. CastSpell(_Q, unit)
  741. end
  742. end
  743.  
  744. function CastW(unit)
  745. if MenuAnnie.prConfig.pro == 1 then
  746. local CastPosition, HitChance, Position = VP:GetConeAOECastPosition(unit, W.delay, W.width, W.range, W.speed, myHero)
  747. if CastPosition and HitChance >= 2 then
  748. if VIP_USER and MenuAnnie.prConfig.pc then
  749. Packet("S_CAST", {spellId = _W, fromX = CastPosition.x, fromY = CastPosition.z, toX = CastPosition.x, toY = CastPosition.z}):send()
  750. else
  751. CastSpell(_W, CastPosition.x, CastPosition.z)
  752. end
  753. end
  754. end
  755. if MenuAnnie.prConfig.pro == 2 and VIP_USER and prodstatus then
  756. local Position, info = Prodiction.GetConeAOEPrediction(unit, W.range, W.speed, W.delay, W.width, myHero)
  757. if Position ~= nil then
  758. if VIP_USER and MenuAnnie.prConfig.pc then
  759. Packet("S_CAST", {spellId = _W, fromX = Position.x, fromY = Position.z, toX = Position.x, toY = Position.z}):send()
  760. else
  761. CastSpell(_W, Position.x, Position.z)
  762. end
  763. end
  764. end
  765. end
  766.  
  767. function CastE()
  768. if EReady then
  769. if VIP_USER and MenuAnnie.prConfig.pc then
  770. Packet("S_CAST", {spellId = _E}):send()
  771. else
  772. CastSpell(_E)
  773. end
  774. end
  775. end
  776.  
  777. function CastR(unit)
  778. if MenuAnnie.prConfig.pro == 1 then
  779. local CastPosition, HitChance, Position = VP:GetCircularAOECastPosition(unit, R.delay, R.width, R.range, R.speed, myHero)
  780. if CastPosition and HitChance >= 2 then
  781. if VIP_USER and MenuAnnie.prConfig.pc then
  782. Packet("S_CAST", {spellId = _R, fromX = CastPosition.x, fromY = CastPosition.z, toX = CastPosition.x, toY = CastPosition.z}):send()
  783. else
  784. CastSpell(_R, CastPosition.x, CastPosition.z)
  785. end
  786. end
  787. end
  788. if MenuAnnie.prConfig.pro == 2 and VIP_USER and prodstatus then
  789. local Position, info = Prodiction.GetCircularAOEPrediction(unit, R.range, R.speed, R.delay, R.width, myHero)
  790. if Position ~= nil then
  791. if VIP_USER and MenuAnnie.prConfig.pc then
  792. Packet("S_CAST", {spellId = _R, fromX = Position.x, fromY = Position.z, toX = Position.x, toY = Position.z}):send()
  793. else
  794. CastSpell(_R, Position.x, Position.z)
  795. end
  796. end
  797. end
  798. end
  799.  
  800. function OnProcessSpell(unit,spell)
  801. if MenuAnnie.exConfig.AEE then
  802. if unit.team ~= myHero.team and unit.type == myHero.type and spell.target == myHero and spell.name:lower():find("attack") then
  803. CastE()
  804. end
  805. end
  806. end
  807.  
  808. function OnGainBuff(unit, buff)
  809. if unit.isMe and (buff.name == "recallimproved") then
  810. recall = true
  811. end
  812. end
  813.  
  814. function OnLoseBuff(unit, buff)
  815. if unit.isMe and (buff.name == "recallimproved") then
  816. recall = false
  817. end
  818. end
  819.  
  820. function OnCreateObj(object)
  821. if object.name == "StunReady.troy" then
  822. stun = true
  823. end
  824. if object.name == "BearFire_foot.troy" then
  825. tibbers = true
  826. end
  827. end
  828.  
  829. function OnDeleteObj(object)
  830. if object.name == "StunReady.troy" then
  831. stun = false
  832. end
  833. if object.name == "BearFire_foot.troy" then
  834. tibbers = false
  835. end
  836. end
  837.  
  838. function EnemyCount(point, range)
  839. local count = 0
  840. for _, enemy in pairs(GetEnemyHeroes()) do
  841. if enemy and not enemy.dead and GetDistance(point, enemy) <= range then
  842. count = count + 1
  843. end
  844. end
  845. return count
  846. end
  847.  
  848. function GenModelPacket(champ, skinId)
  849. p = CLoLPacket(0x97)
  850. p:EncodeF(myHero.networkID)
  851. p.pos = 1
  852. t1 = p:Decode1()
  853. t2 = p:Decode1()
  854. t3 = p:Decode1()
  855. t4 = p:Decode1()
  856. p:Encode1(t1)
  857. p:Encode1(t2)
  858. p:Encode1(t3)
  859. p:Encode1(bit32.band(t4,0xB))
  860. p:Encode1(1)--hardcode 1 bitfield
  861. p:Encode4(skinId)
  862. for i = 1, #champ do
  863. p:Encode1(string.byte(champ:sub(i,i)))
  864. end
  865. for i = #champ + 1, 64 do
  866. p:Encode1(0)
  867. end
  868. p:Hide()
  869. RecvPacket(p)
  870. end
  871.  
  872. function OnWndMsg(Msg, Key)
  873. if Msg == WM_LBUTTONDOWN and MenuAnnie.comboConfig.ST then
  874. local dist = 0
  875. local Selecttarget = nil
  876. for i, enemy in ipairs(GetEnemyHeroes()) do
  877. if ValidTarget(enemy) then
  878. if GetDistance(enemy, mousePos) <= dist or Selecttarget == nil then
  879. dist = GetDistance(enemy, mousePos)
  880. Selecttarget = enemy
  881. end
  882. end
  883. end
  884. if Selecttarget and dist < 300 then
  885. if SelectedTarget and Selecttarget.charName == SelectedTarget.charName then
  886. SelectedTarget = nil
  887. if MenuAnnie.comboConfig.ST then
  888. print("Target unselected: "..Selecttarget.charName)
  889. end
  890. else
  891. SelectedTarget = Selecttarget
  892. if MenuAnnie.comboConfig.ST then
  893. print("New target selected: "..Selecttarget.charName)
  894. end
  895. end
  896. end
  897. end
  898. end
  899.  
  900. function SetPriority(table, hero, priority)
  901. for i=1, #table, 1 do
  902. if hero.charName:find(table[i]) ~= nil then
  903. TS_SetHeroPriority(priority, hero.charName)
  904. end
  905. end
  906. end
  907.  
  908. function arrangePrioritysTT()
  909. for i, enemy in ipairs(GetEnemyHeroes()) do
  910. SetPriority(TargetTable.AD_Carry, enemy, 1)
  911. SetPriority(TargetTable.AP, enemy, 1)
  912. SetPriority(TargetTable.Support, enemy, 2)
  913. SetPriority(TargetTable.Bruiser, enemy, 2)
  914. SetPriority(TargetTable.Tank, enemy, 3)
  915. end
  916. end
  917.  
  918. function arrangePrioritys()
  919. for i, enemy in ipairs(GetEnemyHeroes()) do
  920. SetPriority(TargetTable.AD_Carry, enemy, 1)
  921. SetPriority(TargetTable.AP, enemy, 2)
  922. SetPriority(TargetTable.Support, enemy, 3)
  923. SetPriority(TargetTable.Bruiser, enemy, 4)
  924. SetPriority(TargetTable.Tank, enemy, 5)
  925. end
  926. end
  927.  
  928. function DrawCircleNextLvl(x, y, z, radius, width, color, chordlength)
  929. radius = radius or 300
  930. quality = math.max(8,round(180/math.deg((math.asin((chordlength/(2*radius)))))))
  931. quality = 2 * math.pi / quality
  932. radius = radius*.92
  933.  
  934. local points = {}
  935. for theta = 0, 2 * math.pi + quality, quality do
  936. local c = WorldToScreen(D3DXVECTOR3(x + radius * math.cos(theta), y, z - radius * math.sin(theta)))
  937. points[#points + 1] = D3DXVECTOR2(c.x, c.y)
  938. end
  939.  
  940. DrawLines2(points, width or 1, color or 4294967295)
  941. end
  942.  
  943. function round(num)
  944. if num >= 0 then return math.floor(num+.5) else return math.ceil(num-.5) end
  945. end
  946.  
  947. function DrawCircle2(x, y, z, radius, color)
  948. local vPos1 = Vector(x, y, z)
  949. local vPos2 = Vector(cameraPos.x, cameraPos.y, cameraPos.z)
  950. local tPos = vPos1 - (vPos1 - vPos2):normalized() * radius
  951. local sPos = WorldToScreen(D3DXVECTOR3(tPos.x, tPos.y, tPos.z))
  952.  
  953. if OnScreen({ x = sPos.x, y = sPos.y }, { x = sPos.x, y = sPos.y }) then
  954. DrawCircleNextLvl(x, y, z, radius, 1, color, 75)
  955. end
  956. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement