Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local version = "0.15"
- --[[
- I'M Aiming 0.15 by Klokje edited by Dienofail for VPrediction
- ========================================================================
- Change log:
- 0.01:
- - Initial release
- 0.02
- - Added more champions
- 0.03
- - Fixed Skarner
- 0.04
- - Fixed Zed
- 0.05
- - Fixed for VPrediction 1.02 Beta
- 0.06
- - Added Twitch per request
- 0.07
- - Updated to Vprediction 2.1, now uses VPrediction collision
- 0.08
- - Added MMA/SAC target selector support (Credit Trees). Fixed collision typos. Added autoupdate (Credit Honda7). Added Range offest option.
- 0.09
- - Trees patch. LETS HOPE IT WORKS.
- 0.10
- - Lol forgot to delete print message
- 0.11
- - Will only cast Leesin Q and Thresh Q first cast now.
- 0.12
- - Fixed auto-updater
- 0.13
- - Moved to github
- 0.14
- - Added 100% hitchance toggle (default off)
- 0.15
- - Typo fixes
- ]]
- -- Globals ---------------------------------------------------------------------
- require 'VPrediction'
- require 'Collision'
- local AUTOUPDATE = true
- local UPDATE_NAME = "ImAimingVPrediction"
- local UPDATE_HOST = "raw.github.com"
- local UPDATE_PATH = "/Dienofail/BoL/master/ImAimingVPrediction.lua".."?rand="..math.random(1,10000)
- local UPDATE_FILE_PATH = SCRIPT_PATH..GetCurrentEnv().FILE_NAME
- local UPDATE_URL = "https://"..UPDATE_HOST..UPDATE_PATH
- function AutoupdaterMsg(msg) print("<font color=\"#6699ff\"><b>ImAiming VPrediction:</b></font> <font color=\"#FFFFFF\">"..msg..".</font>") end
- if AUTOUPDATE then
- local ServerData = GetWebResult(UPDATE_HOST, UPDATE_PATH)
- if ServerData then
- local ServerVersion = string.match(ServerData, "local version = \"%d+.%d+\"")
- ServerVersion = string.match(ServerVersion and ServerVersion or "", "%d+.%d+")
- if ServerVersion then
- ServerVersion = tonumber(ServerVersion)
- if tonumber(version) < ServerVersion then
- AutoupdaterMsg("New version available"..ServerVersion)
- AutoupdaterMsg("Updating, please don't press F9")
- 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)
- else
- AutoupdaterMsg("You have got the latest version ("..ServerVersion..")")
- end
- end
- else
- AutoupdaterMsg("Error downloading version info")
- end
- end
- --End Honda7 credit
- _G.Champs = {
- ["Aatrox"] = {
- [_Q] = { speed = 450, delay = 0.27, range = 650, minionCollisionWidth = 280},
- [_E] = { speed = 1200, delay = 0.27, range = 1000, minionCollisionWidth = 80}
- },
- ["Ahri"] = {
- [_Q] = { speed = 1670, delay = 0.24, range = 895, minionCollisionWidth = 50},
- [_E] = { speed = 1550, delay = 0.24, range = 920, minionCollisionWidth = 80}
- },
- ["Amumu"] = {
- [_Q] = { speed = 2000, delay = 0.250, range = 1100, minionCollisionWidth = 80}
- },
- ["Anivia"] = {
- [_Q] = { speed = 860.05, delay = 0.250, range = 1100, minionCollisionWidth = 110},
- [_R] = { speed = math.huge, delay = 0.100, range = 615, minionCollisionWidth = 350}
- },
- ["Annie"] = {
- [_W] = { speed = math.huge, delay = 0.25, range = 625, minionCollisionWidth = 0},
- [_R] = { speed = math.huge, delay = 0.2, range = 600, minionCollisionWidth = 0}
- },
- ["Ashe"] = {
- [_W] = { speed = 2000, delay = 0.120, range = 1200, minionCollisionWidth = 85},
- [_R] = { speed = 1600, delay = 0.5, range = 1200, minionCollisionWidth = 0}
- },
- ["Blitzcrank"] = {
- [_Q] = { speed = 1800, delay = 0.250, range = 1050, minionCollisionWidth = 90}
- },
- ["Brand"] = {
- [_Q] = { speed = 1600, delay = 0.625, range = 1100, minionCollisionWidth = 90},
- [_W] = { speed = 900, delay = 0.25, range = 1100, minionCollisionWidth = 0},
- },
- ["Caitlyn"] = {
- [_Q] = { speed = 2200, delay = 0.625, range = 1300, minionCollisionWidth = 0},
- [_E] = { speed = 2000, delay = 0.400, range = 1000, minionCollisionWidth = 80},
- },
- ["Cassiopeia"] = {
- [_Q] = { speed = math.huge, delay = 0.535, range = 850, minionCollisionWidth = 0},
- [_W] = { speed = math.huge, delay = 0.350, range = 850, minionCollisionWidth = 80},
- [_R] = { speed = math.huge, delay = 0.535, range = 850, minionCollisionWidth = 350}
- },
- ["Chogath"] = {
- [_Q] = { speed = 950, delay = 0, range = 950, minionCollisionWidth = 0},
- [_W] = { speed = math.huge, delay = 0.25, range = 700, minionCollisionWidth = 0},
- },
- ["Corki"] = {
- [_Q] = { speed = 1500, delay = 0.350, range = 840, minionCollisionWidth = 0},
- [_R] = { speed = 2000, delay = 0.200, range = 1225, minionCollisionWidth = 60},
- },
- ["Darius"] = {
- [_E] = { speed = 1500, delay = 0.550, range = 530, minionCollisionWidth = 0}
- },
- ["Diana"] = {
- [_Q] = { speed = 2000, delay = 0.250, range = 830, minionCollisionWidth = 0}
- },
- ["DrMundo"] = {
- [_Q] = { speed = 2000, delay = 0.250, range = 1050, minionCollisionWidth = 80}
- },
- ["Draven"] = {
- [_E] = { speed = 1400, delay = 0.250, range = 1100, minionCollisionWidth = 0},
- [_R] = { speed = 2000, delay = 0.5, range = 2500, minionCollisionWidth = 0}
- },
- ["Elise"] = {
- [_E] = { speed = 1450, delay = 0.250, range = 975, minionCollisionWidth = 80}
- },
- ["Ezreal"] = {
- [_Q] = { speed = 2000, delay = 0.251, range = 1200, minionCollisionWidth = 80},
- [_W] = { speed = 1600, delay = 0.25, range = 1050, minionCollisionWidth = 0},
- [_R] = { speed = 2000, delay = 1, range = 20000, minionCollisionWidth = 150}
- },
- ["Fizz"] = {
- [_R] = { speed = 1350, delay = 0.250, range = 1150, minionCollisionWidth = 0}
- },
- ["Galio"] = {
- [_Q] = { speed = 850, delay = 0.25, range = 940, minionCollisionWidth = 0},
- --[_E] = { speed = 2000, delay = 0.400, range = 1180, minionCollisionWidth = 0},
- },
- ["Gragas"] = {
- [_Q] = { speed = 1000, delay = 0.250, range = 1100, minionCollisionWidth = 0}
- },
- ["Graves"] = {
- [_Q] = { speed = 1950, delay = 0.265, range = 950, minionCollisionWidth = 85},
- [_W] = { speed = 1650, delay = 0.300, range = 950, minionCollisionWidth = 0},
- [_R] = { speed = 2100, delay = 0.219, range = 1000, minionCollisionWidth = 30}
- },
- ["Heimerdinger"] = {
- [_W] = { speed = 1200, delay = 0.200, range = 1100, minionCollisionWidth = 70},
- [_E] = { speed = 1000, delay = 0.1, range = 925, minionCollisionWidth = 0},
- },
- ["Irelia"] = {
- [_R] = { speed = 1700, delay = 0.250, range = 1000, minionCollisionWidth = 0}
- },
- ["JarvanIV"] = {
- [_Q] = { speed = 1400, delay = 0.2, range = 800, minionCollisionWidth = 0},
- [_E] = { speed = 200, delay = 0.2, range = 850, minionCollisionWidth = 0},
- },
- ["Jinx"] = {
- [_W] = { speed = 3300, delay = 0.600, range = 1500, minionCollisionWidth = 70},
- [_E] = { speed = 887, delay = 0.500, range = 950, minionCollisionWidth = 0},
- [_R] = { speed = 2500, delay = 0.600, range = 2000 , minionCollisionWidth = 0}
- },
- ["Karma"] = {
- [_Q] = { speed = 1700, delay = 0.250, range = 1050, minionCollisionWidth = 80}
- },
- ["Karthus"] = {
- [_Q] = { speed = 1750, delay = 0.25, range = 875, minionCollisionWidth = 0},
- },
- ["Kennen"] = {
- [_Q] = { speed = 1700, delay = 0.180, range = 1050, minionCollisionWidth = 70}
- },
- ["Khazix"] = {
- [_W] = { speed = 828.5, delay = 0.225, range = 1000, minionCollisionWidth = 100}
- },
- ["KogMaw"] = {
- [_R] = { speed = 1050, delay = 0.250, range = 2200, minionCollisionWidth = 0}
- },
- ["Leblanc"] = {
- [_E] = { speed = 1600, delay = 0.250, range = 960, minionCollisionWidth = 0},
- [_R] = { speed = 1600, delay = 0.250, range = 960, minionCollisionWidth = 0},
- },
- ["LeeSin"] = {
- [_Q] = { speed = 1800, delay = 0.250, range = 975, minionCollisionWidth = 100}
- },
- ["Leona"] = {
- [_E] = { speed = 2000, delay = 0.250, range = 900, minionCollisionWidth = 0},
- [_R] = { speed = 2000, delay = 0.250, range = 1200, minionCollisionWidth = 0},
- },
- ["Lucian"] = {
- [_W] = { speed = 1470, delay = 0.288, range = 1000, minionCollisionWidth = 25}
- },
- ["Lulu"] = {
- [_Q] = { speed = 1530, delay = 0.250, range = 945, minionCollisionWidth = 80}
- },
- ["Lux"] = {
- [_Q] = { speed = 1200, delay = 0.245, range = 1300, minionCollisionWidth = 50},
- [_E] = { speed = 1400, delay = 0.245, range = 1100, minionCollisionWidth = 0},
- [_R] = { speed = math.huge, delay = 0.245, range = 3500, minionCollisionWidth = 0}
- },
- ["Malzahar"] = {
- [_Q] = { speed = 1170, delay = 0.600, range = 900, minionCollisionWidth = 50}
- },
- ["Mordekaiser"] = {
- [_E] = { speed = math.huge, delay = 0.25, range = 700, minionCollisionWidth = 0},
- },
- ["Morgana"] = {
- [_Q] = { speed = 1200, delay = 0.250, range = 1300, minionCollisionWidth = 80}
- },
- ["Nami"] = {
- [_Q] = { speed = math.huge, delay = 0.8, range = 850, minionCollisionWidth = 0}
- },
- ["Nautilus"] = {
- [_Q] = { speed = 2000, delay = 0.250, range = 1080, minionCollisionWidth = 100}
- },
- ["Nidalee"] = {
- [_Q] = { speed = 1300, delay = 0.125, range = 1500, minionCollisionWidth = 60},
- },
- ["Nocturne"] = {
- [_Q] = { speed = 1600, delay = 0.250, range = 1200, minionCollisionWidth = 0}
- },
- ["Olaf"] = {
- [_Q] = { speed = 1600, delay = 0.25, range = 1000, minionCollisionWidth = 0}
- },
- ["Quinn"] = {
- [_Q] = { speed = 1600, delay = 0.25, range = 1050, minionCollisionWidth = 100}
- },
- ["Rumble"] = {
- [_E] = { speed = 2000, delay = 0.250, range = 950, minionCollisionWidth = 80}
- },
- ["Sejuani"] = {
- [_R] = { speed = 1300, delay = 0.200, range = 1175, minionCollisionWidth = 0}
- },
- ["Sivir"] = {
- [_Q] = { speed = 1330, delay = 0.250, range = 1075, minionCollisionWidth = 0}
- },
- ["Skarner"] = {
- [_E] = { speed = 1200, delay = 0.250, range = 760, minionCollisionWidth = 0}
- },
- ["Swain"] = {
- [_Q] = { speed = math.huge, delay = 0.500, range = 900, minionCollisionWidth = 0}
- },
- ["Syndra"] = {
- [_Q] = { speed = math.huge, delay = 0.400, range = 800, minionCollisionWidth = 0}
- },
- ["Thresh"] = {
- [_Q] = { speed = 1900, delay = 0.500, range = 1075, minionCollisionWidth = 80}
- },
- ["Twitch"] = {
- [_W] = {speed = 1750, delay = 0.283, range = 900, minionCollisionWidth = 0}
- },
- ["TwistedFate"] = {
- [_Q] = { speed = 1450, delay = 0.200, range = 1450, minionCollisionWidth = 0}
- },
- ["Urgot"] = {
- [_Q] = { speed = 1600, delay = 0.175, range = 1000, minionCollisionWidth = 100},
- [_E] = { speed = 1750, delay = 0.25, range = 900, minionCollisionWidth = 0}
- },
- ["Varus"] = {
- --[_Q] = { speed = 1850, delay = 0.1, range = 1475, minionCollisionWidth = 0},
- [_E] = { speed = 1500, delay = 0.245, range = 925, minionCollisionWidth = 0},
- [_R] = { speed = 1950, delay = 0.5, range = 1075, minionCollisionWidth = 0}
- },
- ["Veigar"] = {
- [_W] = { speed = 900, delay = 0.25, range = 900, minionCollisionWidth = 0}
- },
- ["Viktor"] = {
- [_W] = { speed = math.huge, delay = 0.25, range = 625, minionCollisionWidth = 0},
- [_E] = { speed = 1200, delay = 0.25, range = 1225, minionCollisionWidth = 0},
- [_R] = { speed = 1000, delay = 0.25, range = 700, minionCollisionWidth = 0},
- },
- ["Velkoz"] = {
- [_Q] = { speed = 1300, delay = 0.066, range = 1100, minionCollisionWidth = 50},
- [_W] = { speed = 1700, delay = 0.064, range = 1050, minionCollisionWidth = 0},
- [_E] = { speed = 1500, delay = 0.333, range = 1100, minionCollisionWidth = 0},
- },
- ["Xerath"] = {
- [_Q] = { speed = 3000, delay = 0.6, range = 1100, minionCollisionWidth = 0},
- [_R] = { speed = 2000, delay = 0.25, range = 1100, minionCollisionWidth = 0}
- },
- ["Zed"] = {
- [_Q] = { speed = 1700, delay = 0.2, range = 925, minionCollisionWidth = 0},
- },
- ["Ziggs"] = {
- [_Q] = { speed = 1722, delay = 0.218, range = 850, minionCollisionWidth = 0},
- [_W] = { speed = 1727, delay = 0.249, range = 1000, minionCollisionWidth = 0},
- [_E] = { speed = 2694, delay = 0.125, range = 900, minionCollisionWidth = 0},
- [_R] = { speed = 1856, delay = 0.1014, range = 2500, minionCollisionWidth = 0},
- },
- ["Zyra"] = {
- [_Q] = { speed = math.huge, delay = 0.7, range = 800, minionCollisionWidth = 0},
- [_E] = { speed = 1150, delay = 0.16, range = 1100, minionCollisionWidth = 0}
- }
- }
- if not Champs[myHero.charName] then return end -- put other declarations after this check
- local data = Champs[myHero.charName]
- local VP -- it is nil by default :D
- local Target
- local ts2 = TargetSelector(TARGET_LOW_HP, 1500, DAMAGE_MAGIC, true) -- make these local
- local Menu -- make these local
- local predictions = {} -- make these local
- local str = { [_Q] = "Q", [_W] = "W", [_E] = "E", [_R] = "R" }
- local keybindings = { [_Q] = "Z", [_W] = "X", [_E] = "C", [_R] = "V" }
- local ConfigType = SCRIPT_PARAM_ONKEYDOWN
- local initDone = false
- -- Code ------------------------------------------------------------------------
- function OnLoad()
- VP = VPrediction()
- Config = scriptConfig("I'M Aiming VPrediction: Settings", "ImAiming")
- -- if Champs[myHero.charName] ~= nil then -- this check is on line 297
- for i, spell in pairs(data) do
- Config:addParam(str[i], "Predict " .. str[i], ConfigType, false, GetKey(keybindings[i]))
- predictions[str[i]] = {spell.range, spell.speed, spell.delay, spell.minionCollisionWidth, i}
- end
- Config:addParam("accuracy", "Accuracy Slider", SCRIPT_PARAM_SLICE, 1, 0, 5, 0)
- Config:addParam("rangeoffset", "Range Decrease Offset", SCRIPT_PARAM_SLICE, 0, 0, 200, 0)
- Config:addParam("autocast", "Autocast on 100% hitchance", SCRIPT_PARAM_ONOFF, false)
- ts2.name = "ImAiming"
- Config:addTS(ts2)
- initDone = true
- PrintChat(" >> I'M Aiming by Klokje edited by Dienofail VPrediction v0.15 loaded") -- messages generally are at the end :D
- end
- function OnTick()
- if initDone then
- Target = GetCustomTarget() --Tmrees
- if Target == nil then return end
- for i, spell in pairs(data) do
- local collision = spell.minionCollisionWidth == 0 and false or true
- local CastPosition, HitChance, Position = VP:GetLineCastPosition(Target, spell.delay, spell.minionCollisionWidth, spell.range, spell.speed, myHero, collision)
- if Config[str[i]] and myHero:CanUseSpell(i) and IsLeeThresh() then -- move spell ready check to top
- if CastPosition and HitChance and HitChance >= Config.accuracy and GetDistance(CastPosition, myHero) < spell.range - Config.rangeoffset then CastSpell(i, CastPosition.x, CastPosition.z) end
- elseif Config.autocast then
- if CastPosition and HitChance and HitChance > 2 and GetDistance(CastPosition, myHero) < spell.range - Config.rangeoffset then CastSpell(i, CastPosition.x, CastPosition.z) end
- end
- end
- end
- end
- --Credit Trees
- function GetCustomTarget()
- if _G.MMA_Target and _G.MMA_Target.type == myHero.type then return _G.MMA_Target end
- 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
- ts2:update()
- --print('tstarget called')
- return ts2.target
- end
- --End Credit Trees
- function IsLeeThresh()
- if myHero.charName == 'LeeSin' then
- if myHero:GetSpellData(_Q).name == 'BlindMonkQOne' then
- return true
- else
- return false
- end
- elseif myHero.charName == 'Thresh' then
- if myHero:GetSpellData(_Q).name == 'ThreshQ' then
- return true
- else
- return false
- end
- else
- return true
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement