Advertisement
Guest User

Untitled

a guest
Jul 31st, 2014
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.68 KB | None | 0 0
  1. local version = "0.15"
  2. --[[
  3. I'M Aiming 0.15 by Klokje edited by Dienofail for VPrediction
  4. ========================================================================
  5.  
  6. Change log:
  7. 0.01:
  8. - Initial release
  9. 0.02
  10. - Added more champions
  11. 0.03
  12. - Fixed Skarner
  13. 0.04
  14. - Fixed Zed
  15. 0.05
  16. - Fixed for VPrediction 1.02 Beta
  17. 0.06
  18. - Added Twitch per request
  19. 0.07
  20. - Updated to Vprediction 2.1, now uses VPrediction collision
  21. 0.08
  22. - Added MMA/SAC target selector support (Credit Trees). Fixed collision typos. Added autoupdate (Credit Honda7). Added Range offest option.
  23. 0.09
  24. - Trees patch. LETS HOPE IT WORKS.
  25. 0.10
  26. - Lol forgot to delete print message
  27. 0.11
  28. - Will only cast Leesin Q and Thresh Q first cast now.
  29. 0.12
  30. - Fixed auto-updater
  31. 0.13
  32. - Moved to github
  33. 0.14
  34. - Added 100% hitchance toggle (default off)
  35. 0.15
  36. - Typo fixes
  37. ]]
  38. -- Globals ---------------------------------------------------------------------
  39. require 'VPrediction'
  40. require 'Collision'
  41.  
  42. local AUTOUPDATE = true
  43. local UPDATE_NAME = "ImAimingVPrediction"
  44. local UPDATE_HOST = "raw.github.com"
  45. local UPDATE_PATH = "/Dienofail/BoL/master/ImAimingVPrediction.lua".."?rand="..math.random(1,10000)
  46. local UPDATE_FILE_PATH = SCRIPT_PATH..GetCurrentEnv().FILE_NAME
  47. local UPDATE_URL = "https://"..UPDATE_HOST..UPDATE_PATH
  48.  
  49. function AutoupdaterMsg(msg) print("<font color=\"#6699ff\"><b>ImAiming VPrediction:</b></font> <font color=\"#FFFFFF\">"..msg..".</font>") end
  50. if AUTOUPDATE then
  51. local ServerData = GetWebResult(UPDATE_HOST, UPDATE_PATH)
  52. if ServerData then
  53. local ServerVersion = string.match(ServerData, "local version = \"%d+.%d+\"")
  54. ServerVersion = string.match(ServerVersion and ServerVersion or "", "%d+.%d+")
  55. if ServerVersion then
  56. ServerVersion = tonumber(ServerVersion)
  57. if tonumber(version) < ServerVersion then
  58. AutoupdaterMsg("New version available"..ServerVersion)
  59. AutoupdaterMsg("Updating, please don't press F9")
  60. 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)
  61. else
  62. AutoupdaterMsg("You have got the latest version ("..ServerVersion..")")
  63. end
  64. end
  65. else
  66. AutoupdaterMsg("Error downloading version info")
  67. end
  68. end
  69.  
  70. --End Honda7 credit
  71.  
  72. _G.Champs = {
  73. ["Aatrox"] = {
  74. [_Q] = { speed = 450, delay = 0.27, range = 650, minionCollisionWidth = 280},
  75. [_E] = { speed = 1200, delay = 0.27, range = 1000, minionCollisionWidth = 80}
  76. },
  77. ["Ahri"] = {
  78. [_Q] = { speed = 1670, delay = 0.24, range = 895, minionCollisionWidth = 50},
  79. [_E] = { speed = 1550, delay = 0.24, range = 920, minionCollisionWidth = 80}
  80. },
  81. ["Amumu"] = {
  82. [_Q] = { speed = 2000, delay = 0.250, range = 1100, minionCollisionWidth = 80}
  83. },
  84. ["Anivia"] = {
  85. [_Q] = { speed = 860.05, delay = 0.250, range = 1100, minionCollisionWidth = 110},
  86. [_R] = { speed = math.huge, delay = 0.100, range = 615, minionCollisionWidth = 350}
  87. },
  88. ["Annie"] = {
  89. [_W] = { speed = math.huge, delay = 0.25, range = 625, minionCollisionWidth = 0},
  90. [_R] = { speed = math.huge, delay = 0.2, range = 600, minionCollisionWidth = 0}
  91. },
  92. ["Ashe"] = {
  93. [_W] = { speed = 2000, delay = 0.120, range = 1200, minionCollisionWidth = 85},
  94. [_R] = { speed = 1600, delay = 0.5, range = 1200, minionCollisionWidth = 0}
  95. },
  96. ["Blitzcrank"] = {
  97. [_Q] = { speed = 1800, delay = 0.250, range = 1050, minionCollisionWidth = 90}
  98. },
  99. ["Brand"] = {
  100. [_Q] = { speed = 1600, delay = 0.625, range = 1100, minionCollisionWidth = 90},
  101. [_W] = { speed = 900, delay = 0.25, range = 1100, minionCollisionWidth = 0},
  102. },
  103. ["Caitlyn"] = {
  104. [_Q] = { speed = 2200, delay = 0.625, range = 1300, minionCollisionWidth = 0},
  105. [_E] = { speed = 2000, delay = 0.400, range = 1000, minionCollisionWidth = 80},
  106. },
  107. ["Cassiopeia"] = {
  108. [_Q] = { speed = math.huge, delay = 0.535, range = 850, minionCollisionWidth = 0},
  109. [_W] = { speed = math.huge, delay = 0.350, range = 850, minionCollisionWidth = 80},
  110. [_R] = { speed = math.huge, delay = 0.535, range = 850, minionCollisionWidth = 350}
  111. },
  112. ["Chogath"] = {
  113. [_Q] = { speed = 950, delay = 0, range = 950, minionCollisionWidth = 0},
  114. [_W] = { speed = math.huge, delay = 0.25, range = 700, minionCollisionWidth = 0},
  115. },
  116. ["Corki"] = {
  117. [_Q] = { speed = 1500, delay = 0.350, range = 840, minionCollisionWidth = 0},
  118. [_R] = { speed = 2000, delay = 0.200, range = 1225, minionCollisionWidth = 60},
  119. },
  120. ["Darius"] = {
  121. [_E] = { speed = 1500, delay = 0.550, range = 530, minionCollisionWidth = 0}
  122. },
  123. ["Diana"] = {
  124. [_Q] = { speed = 2000, delay = 0.250, range = 830, minionCollisionWidth = 0}
  125. },
  126. ["DrMundo"] = {
  127. [_Q] = { speed = 2000, delay = 0.250, range = 1050, minionCollisionWidth = 80}
  128. },
  129. ["Draven"] = {
  130. [_E] = { speed = 1400, delay = 0.250, range = 1100, minionCollisionWidth = 0},
  131. [_R] = { speed = 2000, delay = 0.5, range = 2500, minionCollisionWidth = 0}
  132. },
  133. ["Elise"] = {
  134. [_E] = { speed = 1450, delay = 0.250, range = 975, minionCollisionWidth = 80}
  135. },
  136. ["Ezreal"] = {
  137. [_Q] = { speed = 2000, delay = 0.251, range = 1200, minionCollisionWidth = 80},
  138. [_W] = { speed = 1600, delay = 0.25, range = 1050, minionCollisionWidth = 0},
  139. [_R] = { speed = 2000, delay = 1, range = 20000, minionCollisionWidth = 150}
  140. },
  141. ["Fizz"] = {
  142. [_R] = { speed = 1350, delay = 0.250, range = 1150, minionCollisionWidth = 0}
  143. },
  144. ["Galio"] = {
  145. [_Q] = { speed = 850, delay = 0.25, range = 940, minionCollisionWidth = 0},
  146. --[_E] = { speed = 2000, delay = 0.400, range = 1180, minionCollisionWidth = 0},
  147. },
  148. ["Gragas"] = {
  149. [_Q] = { speed = 1000, delay = 0.250, range = 1100, minionCollisionWidth = 0}
  150. },
  151. ["Graves"] = {
  152. [_Q] = { speed = 1950, delay = 0.265, range = 950, minionCollisionWidth = 85},
  153. [_W] = { speed = 1650, delay = 0.300, range = 950, minionCollisionWidth = 0},
  154. [_R] = { speed = 2100, delay = 0.219, range = 1000, minionCollisionWidth = 30}
  155. },
  156. ["Heimerdinger"] = {
  157. [_W] = { speed = 1200, delay = 0.200, range = 1100, minionCollisionWidth = 70},
  158. [_E] = { speed = 1000, delay = 0.1, range = 925, minionCollisionWidth = 0},
  159. },
  160. ["Irelia"] = {
  161. [_R] = { speed = 1700, delay = 0.250, range = 1000, minionCollisionWidth = 0}
  162. },
  163. ["JarvanIV"] = {
  164. [_Q] = { speed = 1400, delay = 0.2, range = 800, minionCollisionWidth = 0},
  165. [_E] = { speed = 200, delay = 0.2, range = 850, minionCollisionWidth = 0},
  166. },
  167. ["Jinx"] = {
  168. [_W] = { speed = 3300, delay = 0.600, range = 1500, minionCollisionWidth = 70},
  169. [_E] = { speed = 887, delay = 0.500, range = 950, minionCollisionWidth = 0},
  170. [_R] = { speed = 2500, delay = 0.600, range = 2000 , minionCollisionWidth = 0}
  171. },
  172. ["Karma"] = {
  173. [_Q] = { speed = 1700, delay = 0.250, range = 1050, minionCollisionWidth = 80}
  174. },
  175. ["Karthus"] = {
  176. [_Q] = { speed = 1750, delay = 0.25, range = 875, minionCollisionWidth = 0},
  177. },
  178. ["Kennen"] = {
  179. [_Q] = { speed = 1700, delay = 0.180, range = 1050, minionCollisionWidth = 70}
  180. },
  181. ["Khazix"] = {
  182. [_W] = { speed = 828.5, delay = 0.225, range = 1000, minionCollisionWidth = 100}
  183. },
  184. ["KogMaw"] = {
  185. [_R] = { speed = 1050, delay = 0.250, range = 2200, minionCollisionWidth = 0}
  186. },
  187. ["Leblanc"] = {
  188. [_E] = { speed = 1600, delay = 0.250, range = 960, minionCollisionWidth = 0},
  189. [_R] = { speed = 1600, delay = 0.250, range = 960, minionCollisionWidth = 0},
  190. },
  191. ["LeeSin"] = {
  192. [_Q] = { speed = 1800, delay = 0.250, range = 975, minionCollisionWidth = 100}
  193. },
  194. ["Leona"] = {
  195. [_E] = { speed = 2000, delay = 0.250, range = 900, minionCollisionWidth = 0},
  196. [_R] = { speed = 2000, delay = 0.250, range = 1200, minionCollisionWidth = 0},
  197. },
  198. ["Lucian"] = {
  199. [_W] = { speed = 1470, delay = 0.288, range = 1000, minionCollisionWidth = 25}
  200. },
  201. ["Lulu"] = {
  202. [_Q] = { speed = 1530, delay = 0.250, range = 945, minionCollisionWidth = 80}
  203. },
  204. ["Lux"] = {
  205. [_Q] = { speed = 1200, delay = 0.245, range = 1300, minionCollisionWidth = 50},
  206. [_E] = { speed = 1400, delay = 0.245, range = 1100, minionCollisionWidth = 0},
  207. [_R] = { speed = math.huge, delay = 0.245, range = 3500, minionCollisionWidth = 0}
  208. },
  209. ["Malzahar"] = {
  210. [_Q] = { speed = 1170, delay = 0.600, range = 900, minionCollisionWidth = 50}
  211. },
  212. ["Mordekaiser"] = {
  213. [_E] = { speed = math.huge, delay = 0.25, range = 700, minionCollisionWidth = 0},
  214. },
  215. ["Morgana"] = {
  216. [_Q] = { speed = 1200, delay = 0.250, range = 1300, minionCollisionWidth = 80}
  217. },
  218. ["Nami"] = {
  219. [_Q] = { speed = math.huge, delay = 0.8, range = 850, minionCollisionWidth = 0}
  220. },
  221. ["Nautilus"] = {
  222. [_Q] = { speed = 2000, delay = 0.250, range = 1080, minionCollisionWidth = 100}
  223. },
  224. ["Nidalee"] = {
  225. [_Q] = { speed = 1300, delay = 0.125, range = 1500, minionCollisionWidth = 60},
  226. },
  227. ["Nocturne"] = {
  228. [_Q] = { speed = 1600, delay = 0.250, range = 1200, minionCollisionWidth = 0}
  229. },
  230. ["Olaf"] = {
  231. [_Q] = { speed = 1600, delay = 0.25, range = 1000, minionCollisionWidth = 0}
  232. },
  233. ["Quinn"] = {
  234. [_Q] = { speed = 1600, delay = 0.25, range = 1050, minionCollisionWidth = 100}
  235. },
  236. ["Rumble"] = {
  237. [_E] = { speed = 2000, delay = 0.250, range = 950, minionCollisionWidth = 80}
  238. },
  239. ["Sejuani"] = {
  240. [_R] = { speed = 1300, delay = 0.200, range = 1175, minionCollisionWidth = 0}
  241. },
  242. ["Sivir"] = {
  243. [_Q] = { speed = 1330, delay = 0.250, range = 1075, minionCollisionWidth = 0}
  244. },
  245. ["Skarner"] = {
  246. [_E] = { speed = 1200, delay = 0.250, range = 760, minionCollisionWidth = 0}
  247. },
  248. ["Swain"] = {
  249. [_Q] = { speed = math.huge, delay = 0.500, range = 900, minionCollisionWidth = 0}
  250. },
  251. ["Syndra"] = {
  252. [_Q] = { speed = math.huge, delay = 0.400, range = 800, minionCollisionWidth = 0}
  253. },
  254. ["Thresh"] = {
  255. [_Q] = { speed = 1900, delay = 0.500, range = 1075, minionCollisionWidth = 80}
  256. },
  257. ["Twitch"] = {
  258. [_W] = {speed = 1750, delay = 0.283, range = 900, minionCollisionWidth = 0}
  259. },
  260. ["TwistedFate"] = {
  261. [_Q] = { speed = 1450, delay = 0.200, range = 1450, minionCollisionWidth = 0}
  262. },
  263. ["Urgot"] = {
  264. [_Q] = { speed = 1600, delay = 0.175, range = 1000, minionCollisionWidth = 100},
  265. [_E] = { speed = 1750, delay = 0.25, range = 900, minionCollisionWidth = 0}
  266. },
  267. ["Varus"] = {
  268. --[_Q] = { speed = 1850, delay = 0.1, range = 1475, minionCollisionWidth = 0},
  269. [_E] = { speed = 1500, delay = 0.245, range = 925, minionCollisionWidth = 0},
  270. [_R] = { speed = 1950, delay = 0.5, range = 1075, minionCollisionWidth = 0}
  271. },
  272. ["Veigar"] = {
  273. [_W] = { speed = 900, delay = 0.25, range = 900, minionCollisionWidth = 0}
  274. },
  275. ["Viktor"] = {
  276. [_W] = { speed = math.huge, delay = 0.25, range = 625, minionCollisionWidth = 0},
  277. [_E] = { speed = 1200, delay = 0.25, range = 1225, minionCollisionWidth = 0},
  278. [_R] = { speed = 1000, delay = 0.25, range = 700, minionCollisionWidth = 0},
  279. },
  280. ["Velkoz"] = {
  281. [_Q] = { speed = 1300, delay = 0.066, range = 1100, minionCollisionWidth = 50},
  282. [_W] = { speed = 1700, delay = 0.064, range = 1050, minionCollisionWidth = 0},
  283. [_E] = { speed = 1500, delay = 0.333, range = 1100, minionCollisionWidth = 0},
  284. },
  285. ["Xerath"] = {
  286. [_Q] = { speed = 3000, delay = 0.6, range = 1100, minionCollisionWidth = 0},
  287. [_R] = { speed = 2000, delay = 0.25, range = 1100, minionCollisionWidth = 0}
  288. },
  289. ["Zed"] = {
  290. [_Q] = { speed = 1700, delay = 0.2, range = 925, minionCollisionWidth = 0},
  291. },
  292. ["Ziggs"] = {
  293. [_Q] = { speed = 1722, delay = 0.218, range = 850, minionCollisionWidth = 0},
  294. [_W] = { speed = 1727, delay = 0.249, range = 1000, minionCollisionWidth = 0},
  295. [_E] = { speed = 2694, delay = 0.125, range = 900, minionCollisionWidth = 0},
  296. [_R] = { speed = 1856, delay = 0.1014, range = 2500, minionCollisionWidth = 0},
  297. },
  298. ["Zyra"] = {
  299. [_Q] = { speed = math.huge, delay = 0.7, range = 800, minionCollisionWidth = 0},
  300. [_E] = { speed = 1150, delay = 0.16, range = 1100, minionCollisionWidth = 0}
  301. }
  302. }
  303.  
  304. if not Champs[myHero.charName] then return end -- put other declarations after this check
  305. local data = Champs[myHero.charName]
  306. local VP -- it is nil by default :D
  307. local Target
  308. local ts2 = TargetSelector(TARGET_LOW_HP, 1500, DAMAGE_MAGIC, true) -- make these local
  309. local Menu -- make these local
  310. local predictions = {} -- make these local
  311. local str = { [_Q] = "Q", [_W] = "W", [_E] = "E", [_R] = "R" }
  312. local keybindings = { [_Q] = "Z", [_W] = "X", [_E] = "C", [_R] = "V" }
  313. local ConfigType = SCRIPT_PARAM_ONKEYDOWN
  314. local initDone = false
  315. -- Code ------------------------------------------------------------------------
  316. function OnLoad()
  317. VP = VPrediction()
  318. Config = scriptConfig("I'M Aiming VPrediction: Settings", "ImAiming")
  319. -- if Champs[myHero.charName] ~= nil then -- this check is on line 297
  320. for i, spell in pairs(data) do
  321. Config:addParam(str[i], "Predict " .. str[i], ConfigType, false, GetKey(keybindings[i]))
  322. predictions[str[i]] = {spell.range, spell.speed, spell.delay, spell.minionCollisionWidth, i}
  323. end
  324. Config:addParam("accuracy", "Accuracy Slider", SCRIPT_PARAM_SLICE, 1, 0, 5, 0)
  325. Config:addParam("rangeoffset", "Range Decrease Offset", SCRIPT_PARAM_SLICE, 0, 0, 200, 0)
  326. Config:addParam("autocast", "Autocast on 100% hitchance", SCRIPT_PARAM_ONOFF, false)
  327. ts2.name = "ImAiming"
  328. Config:addTS(ts2)
  329. initDone = true
  330. PrintChat(" >> I'M Aiming by Klokje edited by Dienofail VPrediction v0.15 loaded") -- messages generally are at the end :D
  331. end
  332.  
  333.  
  334. function OnTick()
  335. if initDone then
  336. Target = GetCustomTarget() --Tmrees
  337. if Target == nil then return end
  338. for i, spell in pairs(data) do
  339. local collision = spell.minionCollisionWidth == 0 and false or true
  340. local CastPosition, HitChance, Position = VP:GetLineCastPosition(Target, spell.delay, spell.minionCollisionWidth, spell.range, spell.speed, myHero, collision)
  341. if Config[str[i]] and myHero:CanUseSpell(i) and IsLeeThresh() then -- move spell ready check to top
  342. if CastPosition and HitChance and HitChance >= Config.accuracy and GetDistance(CastPosition, myHero) < spell.range - Config.rangeoffset then CastSpell(i, CastPosition.x, CastPosition.z) end
  343. elseif Config.autocast then
  344. if CastPosition and HitChance and HitChance > 2 and GetDistance(CastPosition, myHero) < spell.range - Config.rangeoffset then CastSpell(i, CastPosition.x, CastPosition.z) end
  345. end
  346. end
  347. end
  348. end
  349.  
  350. --Credit Trees
  351. function GetCustomTarget()
  352. if _G.MMA_Target and _G.MMA_Target.type == myHero.type then return _G.MMA_Target end
  353. 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 return _G.AutoCarry.Attack_Crosshair.target end
  354. ts2:update()
  355. --print('tstarget called')
  356. return ts2.target
  357. end
  358. --End Credit Trees
  359.  
  360. function IsLeeThresh()
  361. if myHero.charName == 'LeeSin' then
  362. if myHero:GetSpellData(_Q).name == 'BlindMonkQOne' then
  363. return true
  364. else
  365. return false
  366. end
  367. elseif myHero.charName == 'Thresh' then
  368. if myHero:GetSpellData(_Q).name == 'ThreshQ' then
  369. return true
  370. else
  371. return false
  372. end
  373. else
  374. return true
  375. end
  376. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement