local champions = {
["Aatrox"] = {charName = "Aatrox", skills = {
["0"] = {range = 600},
["1"] = {range = 0},
["2"] = {range = 1000},
["3"] = {range = 550},
}},
["Ahri"] = {charName = "Ahri", skills = {
["0"] = {range = 880},
["1"] = {range = 700},
["2"] = {range = 975},
["3"] = {range = 450},
}},
["Akali"] = {charName = "Akali", skills = {
["0"] = {range = 600},
["1"] = {range = 700},
["2"] = {range = 325},
["3"] = {range = 700},
}},
["Alistar"] = {charName = "Alistar", skills = {
["0"] = {range = 365},
["1"] = {range = 650},
["2"] = {range = 575},
["3"] = {range = 10},
}},
["Aatrox"] = {charName = "Aatrox", skills = {
["0"] = {range = 600},
["1"] = {range = 0},
["2"] = {range = 1000},
["3"] = {range = 550},
}},
["Amumu"] = {charName = "Amumu", skills = {
["0"] = {range = 1100},
["1"] = {range = 300},
["2"] = {range = 350},
["3"] = {range = 550},
}},
["Anivia"] = {charName = "Anivia", skills = {
["0"] = {range = 1075},
["1"] = {range = 1000},
["2"] = {range = 650},
["3"] = {range = 625},
}},
["Annie"] = {charName = "Annie", skills = {
["0"] = {range = 625},
["1"] = {range = 560},
["2"] = {range = 0},
["3"] = {range = 600},
}},
["Ashe"] = {charName = "Ashe", skills = {
["0"] = {range = 0},
["1"] = {range = 1200},
["2"] = {range = 25000},
["3"] = {range = 20000},
}},
["Azir"] = {charName = "Azir", skills = {
["0"] = {range = 875},
["1"] = {range = 450},
["2"] = {range = 1100},
["3"] = {range = 250},
}},
["Bard"] = {charName = "Bard", skills = {
["0"] = {range = 600}, --TODO
["1"] = {range = 800},
["2"] = {range = 900},
["3"] = {range = 3400},
}},
["Blitzcrank"] = {charName = "Blitzcrank", skills = {
["0"] = {range = 925},
["1"] = {range = 0},
["2"] = {range = 0},
["3"] = {range = 600},
}},
["Brand"] = {charName = "Brand", skills = {
["0"] = {range = 1050},
["1"] = {range = 900},
["2"] = {range = 625},
["3"] = {range = 750},
}},
["Braum"] = {charName = "Braum", skills = {
["0"] = {range = 1000},
["1"] = {range = 650},
["2"] = {range = 150},--TODO
["3"] = {range = 1250},
}},
["Caitlyn"] = {charName = "Caitlyn", skills = {
["0"] = {range = 1250},
["1"] = {range = 800},
["2"] = {range = 750},
["3"] = {range = 3000},
}},
["Cassiopeia"] = {charName = "Cassiopeia", skills = {
["0"] = {range = 850},
["1"] = {range = 850},
["2"] = {range = 700},
["3"] = {range = 825},
}},
["Chogath"] = {charName = "Chogath", skills = {
["0"] = {range = 950},
["1"] = {range = 300},
["2"] = {range = 0},
["3"] = {range = 175},
}},
["Corki"] = {charName = "Corki", skills = {
["0"] = {range = 825},
["1"] = {range = 600},
["2"] = {range = 600},
["3"] = {range = 1225},
}},
["Darius"] = {charName = "Darius", skills = {
["0"] = {range = 360}, --TODO
["1"] = {range = 0},
["2"] = {range = 535},
["3"] = {range = 460},
}},
["Diana"] = {charName = "Diana", skills = {
["0"] = {range = 830},
["1"] = {range = 0},
["2"] = {range = 450},
["3"] = {range = 825},
}},
["Mundo"] = {charName = "DrMundo", skills = {
["0"] = {range = 975},
["1"] = {range = 325},
["2"] = {range = 0},
["3"] = {range = 0},
}},
["Draven"] = {charName = "Draven", skills = {
["0"] = {range = 0},
["1"] = {range = 0},
["2"] = {range = 1050},
["3"] = {range = 20000},
}},
["Ekko"] = {charName = "Ekko", skills = {
["0"] = {range = 1075},
["1"] = {range = 1600},
["2"] = {range = 325},
["3"] = {range = 0},
}},
["Elise"] = {charName = "Elise", skills = {
["0"] = {range = 625},
["1"] = {range = 950},
["2"] = {range = 1075},
["3"] = {range = 0},
}},
["Evelynn"] = {charName = "Evelynn", skills = {
["0"] = {range = 500},
["1"] = {range = 0},
["2"] = {range = 225},
["3"] = {range = 650},
}},
["Diana"] = {charName = "Diana", skills = {
["0"] = {range = 830},
["1"] = {range = 0},
["2"] = {range = 450},
["3"] = {range = 825},
}},
["Ezreal"] = {charName = "Ezreal", skills = {
["0"] = {range = 1150},
["1"] = {range = 1000},
["2"] = {range = 475},
["3"] = {range = 20000},
}},
["Fiddlesticks"] = {charName = "Fiddlesticks", skills = {
["0"] = {range = 575},
["1"] = {range = 575},
["2"] = {range = 750},
["3"] = {range = 800},
}},
["Fiora"] = {charName = "Fiora", skills = {
["0"] = {range = 400},
["1"] = {range = 500},
["2"] = {range = 0},
["3"] = {range = 500},
}},
["Fizz"] = {charName = "Fizz", skills = {
["0"] = {range = 550},
["1"] = {range = 0},
["2"] = {range = 400},
["3"] = {range = 1275},
}},
["Galio"] = {charName = "Galio", skills = {
["0"] = {range = 940},
["1"] = {range = 800},
["2"] = {range = 1180},
["3"] = {range = 560},
}},
["Gangplank"] = {charName = "Ganglank", skills = {
["0"] = {range = 625},
["1"] = {range = 0},
["2"] = {range = 1000},
["3"] = {range = 30000},
}},
["Garen"] = {charName = "Garen", skills = {
["0"] = {range = 0},
["1"] = {range = 0},
["2"] = {range = 325},
["3"] = {range = 400},
}},
["Gnar"] = {charName = "Gnar", skills = {
["0"] = {range = 1100},
["1"] = {range = 0},
["2"] = {range = 475},
["3"] = {range = 800},
}},
["Gragas"] = {charName = "Gragas", skills = {
["0"] = {range = 850},
["1"] = {range = 0},
["2"] = {range = 600},
["3"] = {range = 1150},
}},
["Graves"] = {charName = "Graves", skills = {
["0"] = {range = 925},
["1"] = {range = 950},
["2"] = {range = 425},
["3"] = {range = 1000},
}},
["Hecarim"] = {charName = "Hecarim", skills = {
["0"] = {range = 350},
["1"] = {range = 525},
["2"] = {range = 0},
["3"] = {range = 1000},
}},
["Heimerdinger"] = {charName = "Heimerdinger", skills = {
["0"] = {range = 350},
["1"] = {range = 1325},
["2"] = {range = 970},
["3"] = {range = 0},
}},
["Illaoi"] = {charName = "Illaoi", skills = {
["0"] = {range = 850},
["1"] = {range = 0},
["2"] = {range = 900},
["3"] = {range = 500},
}},
["Irelia"] = {charName = "Irelia", skills = {
["0"] = {range = 650},
["1"] = {range = 0},
["2"] = {range = 325},
["3"] = {range = 1000},
}},
["Janna"] = {charName = "Janna", skills = {
["0"] = {range = 1700},
["1"] = {range = 600},
["2"] = {range = 800},
["3"] = {range = 725},
}},
["Jarvan"] = {charName = "Jarvan", skills = {
["0"] = {range = 770},
["1"] = {range = 525},
["2"] = {range = 800},
["3"] = {range = 650},
}},
["Jax"] = {charName = "Jax", skills = {
["0"] = {range = 700},
["1"] = {range = 0},
["2"] = {range = 0},
["3"] = {range = 0},
}},
["Jayce"] = {charName = "Jayce", skills = {
["0"] = {range = 600},
["1"] = {range = 285},
["2"] = {range = 240},
["3"] = {range = 0},
}},
["Jinx"] = {charName = "Jinx", skills = {
["0"] = {range = 0},
["1"] = {range = 1450},
["2"] = {range = 900},
["3"] = {range = 25000},
}},
["Kalista"] = {charName = "Kalista", skills = {
["0"] = {range = 1150},
["1"] = {range = 5000},
["2"] = {range = 1000},
["3"] = {range = 0},
}},
["Karma"] = {charName = "Karma", skills = {
["0"] = {range = 950},
["1"] = {range = 675},
["2"] = {range = 800},
["3"] = {range = 0},
}},
["Karthus"] = {charName = "Karthus", skills = {
["0"] = {range = 875},
["1"] = {range = 1000},
["2"] = {range = 550},
["3"] = {range = 0},
}},
["Kassadin"] = {charName = "Kassadin", skills = {
["0"] = {range = 650},
["1"] = {range = 0},
["2"] = {range = 400},
["3"] = {range = 500},
}},
["Katarina"] = {charName = "Katarina", skills = {
["0"] = {range = 675},
["1"] = {range = 400},
["2"] = {range = 700},
["3"] = {range = 550},
}},
["Kayle"] = {charName = "Kayle", skills = {
["0"] = {range = 650},
["1"] = {range = 900},
["2"] = {range = 0},
["3"] = {range = 900},
}},
["Kennen"] = {charName = "Kennen", skills = {
["0"] = {range = 950},
["1"] = {range = 900},
["2"] = {range = 0},
["3"] = {range = 550},
}},
["Khazix"] = {charName = "Khazix", skills = {
["0"] = {range = 326},
["1"] = {range = 1000},
["2"] = {range = 600},
["3"] = {range = 0},
}},
["Kindred"] = {charName = "Kindred", skills = {
["0"] = {range = 340},
["1"] = {range = 0},
["2"] = {range = 500},
["3"] = {range = 500},
}},
["KogMaw"] = {charName = "KogMaw", skills = {
["0"] = {range = 1175},
["1"] = {range = 0},
["2"] = {range = 1200},
["3"] = {range = 1800},
}},
["Leblanc"] = {charName = "Leblanc", skills = {
["0"] = {range = 700},
["1"] = {range = 600},
["2"] = {range = 925},
["3"] = {range = 0},
}},
["Lee Sin"] = {charName = "LeeSin", skills = {
["0"] = {range = 1000},
["1"] = {range = 700},
["2"] = {range = 425},
["3"] = {range = 375},
}},
["Leona"] = {charName = "Leona", skills = {
["0"] = {range = 0},
["1"] = {range = 450},
["2"] = {range = 875},
["3"] = {range = 1200},
}},
["Lissandra"] = {charName = "Lissandra", skills = {
["0"] = {range = 725},
["1"] = {range = 450},
["2"] = {range = 1050},
["3"] = {range = 550},
}},
["Lucian"] = {charName = "Lucian", skills = {
["0"] = {range = 500},
["1"] = {range = 1000},
["2"] = {range = 445},
["3"] = {range = 1400},
}},
["Lulu"] = {charName = "Lulu", skills = {
["0"] = {range = 925},
["1"] = {range = 650},
["2"] = {range = 650},
["3"] = {range = 900},
}},
["Lux"] = {charName = "Lux", skills = {
["0"] = {range = 1175},
["1"] = {range = 1075},
["2"] = {range = 1100},
["3"] = {range = 3340},
}},
["Malphite"] = {charName = "Malphite", skills = {
["0"] = {range = 625},
["1"] = {range = 0},
["2"] = {range = 400},
["3"] = {range = 1000},
}},
["Malzahar"] = {charName = "Malzahar", skills = {
["0"] = {range = 900},
["1"] = {range = 800},
["2"] = {range = 650},
["3"] = {range = 700},
}},
["Maokai"] = {charName = "Maokai", skills = {
["0"] = {range = 600},
["1"] = {range = 525},
["2"] = {range = 1100},
["3"] = {range = 500},
}},
["Master Yi"] = {charName = "MasterYi", skills = {
["0"] = {range = 600},
["1"] = {range = 0},
["2"] = {range = 0},
["3"] = {range = 0},
}},
["MissFortune"] = {charName = "MissFortune", skills = {
["0"] = {range = 650},
["1"] = {range = 0},
["2"] = {range = 1000},
["3"] = {range = 400},
}},
["Mordekaiser"] = {charName = "Mordekaiser", skills = {
["0"] = {range = 0},
["1"] = {range = 1000},
["2"] = {range = 700},
["3"] = {range = 650},
}},
["Morgana"] = {charName = "Morgana", skills = {
["0"] = {range = 1175},
["1"] = {range = 900},
["2"] = {range = 750},
["3"] = {range = 625},
}},
["Nami"] = {charName = "Nami", skills = {
["0"] = {range = 875},
["1"] = {range = 725},
["2"] = {range = 800},
["3"] = {range = 2750},
}},
["Nasus"] = {charName = "Nasus", skills = {
["0"] = {range = 0},
["1"] = {range = 600},
["2"] = {range = 650},
["3"] = {range = 0},
}},
["Nautilus"] = {charName = "Nautilus", skills = {
["0"] = {range = 950},
["1"] = {range = 0},
["2"] = {range = 600},
["3"] = {range = 825},
}},
["Zyra"] = {charName = "Zyra", skills = {
["0"] = {range = 800},
["1"] = {range = 850},
["2"] = {range = 1100},
["3"] = {range = 700},
}},
["Zilean"] = {charName = "Zilean", skills = {
["0"] = {range = 900},
["1"] = {range = 0},
["2"] = {range = 700},
["3"] = {range = 900},
}},
["Ziggs"] = {charName = "Ziggs", skills = {
["0"] = {range = 850},
["1"] = {range = 1000},
["2"] = {range = 900},
["3"] = {range = 5300},
}},
["Zed"] = {charName = "Zed", skills = {
["0"] = {range = 900},
["1"] = {range = 650},
["2"] = {range = 290},
["3"] = {range = 625},
}},
["Zac"] = {charName = "Zac", skills = {
["0"] = {range = 550},
["1"] = {range = 350},
["2"] = {range = 300},
["3"] = {range = 300},
}},
["Yorick"] = {charName = "Yorick", skills = {
["0"] = {range = 0},
["1"] = {range = 600},
["2"] = {range = 550},
["3"] = {range = 850},
}},
["Yasuo"] = {charName = "Yasuo", skills = {
["0"] = {range = 475},
["1"] = {range = 400},
["2"] = {range = 475},
["3"] = {range = 1200},
}},
["XinZhao"] = {charName = "XinZhao", skills = {
["0"] = {range = 0},
["1"] = {range = 0},
["2"] = {range = 650},
["3"] = {range = 500},
}},
["Xerath"] = {charName = "Xerath", skills = {
["0"] = {range = 750},
["1"] = {range = 1100},
["2"] = {range = 1050},
["3"] = {range = 3200},
}},
["MonkeyKing"] = {charName = "MonkeyKing", skills = {
["0"] = {range = 0},
["1"] = {range = 0},
["2"] = {range = 650},
["3"] = {range = 315},
}},
["Warwick"] = {charName = "Warwick", skills = {
["0"] = {range = 400},
["1"] = {range = 1250},
["2"] = {range = 1600},
["3"] = {range = 700},
}},
["Volibear"] = {charName = "Volibear", skills = {
["0"] = {range = 0},
["1"] = {range = 350},
["2"] = {range = 425},
["3"] = {range = 500},
}},
["Vladimir"] = {charName = "Vladimir", skills = {
["0"] = {range = 600},
["1"] = {range = 350},
["2"] = {range = 610},
["3"] = {range = 625},
}},
["Viktor"] = {charName = "Viktor", skills = {
["0"] = {range = 600},
["1"] = {range = 700},
["2"] = {range = 525},
["3"] = {range = 700},
}},
["Vi"] = {charName = "Vi", skills = {
["0"] = {range = 250},
["1"] = {range = 0},
["2"] = {range = 0},
["3"] = {range = 800},
}},
["VelKoz"] = {charName = "VelKoz", skills = {
["0"] = {range = 1050},
["1"] = {range = 1050},
["2"] = {range = 850},
["3"] = {range = 1575},
}},
["Veigar"] = {charName = "Veigar", skills = {
["0"] = {range = 900},
["1"] = {range = 900},
["2"] = {range = 725},
["3"] = {range = 650},
}},
["Vayne"] = {charName = "Vayne", skills = {
["0"] = {range = 300},
["1"] = {range = 0},
["2"] = {range = 710},
["3"] = {range = 0},
}},
["Varus"] = {charName = "Varus", skills = {
["0"] = {range = 925},
["1"] = {range = 0},
["2"] = {range = 925},
["3"] = {range = 1100},
}},
["Urgot"] = {charName = "Urgot", skills = {
["0"] = {range = 1000},
["1"] = {range = 0},
["2"] = {range = 900},
["3"] = {range = 550},
}},
["Udyr"] = {charName = "Udyr", skills = {
["0"] = {range = 0},
["1"] = {range = 0},
["2"] = {range = 0},
["3"] = {range = 325},
}},
["Twitch"] = {charName = "Twitch", skills = {
["0"] = {range = 0},
["1"] = {range = 950},
["2"] = {range = 1200},
["3"] = {range = 0},
}},
["TwistedFate"] = {charName = "TwistedFate", skills = {
["0"] = {range = 10000},
["1"] = {range = 0},
["2"] = {range = 0},
["3"] = {range = 5500},
}},
["Tryndamere"] = {charName = "Tryndamere", skills = {
["0"] = {range = 0},
["1"] = {range = 850},
["2"] = {range = 650},
["3"] = {range = 0},
}},
["Trundle"] = {charName = "Trundle", skills = {
["0"] = {range = 0},
["1"] = {range = 750},
["2"] = {range = 1000},
["3"] = {range = 650},
}},
["Tristana"] = {charName = "Tristana", skills = {
["0"] = {range = 0},
["1"] = {range = 900},
["2"] = {range = 550},
["3"] = {range = 550},
}},
["Thresh"] = {charName = "Thresh", skills = {
["0"] = {range = 1075},
["1"] = {range = 950},
["2"] = {range = 800},
["3"] = {range = 450},
}},
["Teemo"] = {charName = "Teemo", skills = {
["0"] = {range = 680},
["1"] = {range = 0},
["2"] = {range = 0},
["3"] = {range = 300},
}},
["Taric"] = {charName = "Taric", skills = {
["0"] = {range = 750},
["1"] = {range = 400},
["2"] = {range = 625},
["3"] = {range = 400},
}},
["TahmKench"] = {charName = "TahmKench", skills = {
["0"] = {range = 800},
["1"] = {range = 250},
["2"] = {range = 0},
["3"] = {range = 4500},
}},
["Syndra"] = {charName = "Syndra", skills = {
["0"] = {range = 800},
["1"] = {range = 925},
["2"] = {range = 650},
["3"] = {range = 675},
}},
["Swain"] = {charName = "Swain", skills = {
["0"] = {range = 625},
["1"] = {range = 900},
["2"] = {range = 625},
["3"] = {range = 0},
}},
["Soraka"] = {charName = "Soraka", skills = {
["0"] = {range = 810},
["1"] = {range = 550},
["2"] = {range = 925},
["3"] = {range = math.huge},
}},
["Sona"] = {charName = "Sona", skills = {
["0"] = {range = 825},
["1"] = {range = 1000},
["2"] = {range = 360},
["3"] = {range = 900},
}},
["Skarner"] = {charName = "Skarner", skills = {
["0"] = {range = 350},
["1"] = {range = 0},
["2"] = {range = 980},
["3"] = {range = 350},
}},
["Sivir"] = {charName = "Sivir", skills = {
["0"] = {range = 1200},
["1"] = {range = 0},
["2"] = {range = 0},
["3"] = {range = 1000},
}},
["Sion"] = {charName = "Sion", skills = {
["0"] = {range = 10000},
["1"] = {range = 0},
["2"] = {range = 800},
["3"] = {range = 7500},
}},
["Singed"] = {charName = "Singed", skills = {
["0"] = {range = 0},
["1"] = {range = 1000},
["2"] = {range = 125},
["3"] = {range = 0},
}},
["Shyvana"] = {charName = "Shyvana", skills = {
["0"] = {range = 0},
["1"] = {range = 325},
["2"] = {range = 925},
["3"] = {range = 1000},
}},
["Shen"] = {charName = "Shen", skills = {
["0"] = {range = 475},
["1"] = {range = 0},
["2"] = {range = 600},
["3"] = {range = math.huge},
}},
["Shaco"] = {charName = "Shaco", skills = {
["0"] = {range = 400},
["1"] = {range = 425},
["2"] = {range = 625},
["3"] = {range = 0},
}},
["Sejuani"] = {charName = "Sejuani", skills = {
["0"] = {range = 650},
["1"] = {range = 350},
["2"] = {range = 1000},
["3"] = {range = 1175},
}},
["Ryze"] = {charName = "Ryze", skills = {
["0"] = {range = 900},
["1"] = {range = 600},
["2"] = {range = 600},
["3"] = {range = 0},
}},
["Rumble"] = {charName = "Rumble", skills = {
["0"] = {range = 600},
["1"] = {range = 0},
["2"] = {range = 850},
["3"] = {range = 1750},
}},
["Riven"] = {charName = "Riven", skills = {
["0"] = {range = 275},
["1"] = {range = 260},
["2"] = {range = 250},
["3"] = {range = 0},
}},
["Rengar"] = {charName = "Rengar", skills = {
["0"] = {range = 0},
["1"] = {range = 500},
["2"] = {range = 1000},
["3"] = {range = 2000},
}},
["Renekton"] = {charName = "Renekton", skills = {
["0"] = {range = 325},
["1"] = {range = 0},
["2"] = {range = 450},
["3"] = {range = 0},
}},
["RekSai"] = {charName = "RekSai", skills = {
["0"] = {range = 325},
["1"] = {range = 1650},
["2"] = {range = 250},
["3"] = {range = math.huge},
}},
["Rammus"] = {charName = "Rammus", skills = {
["0"] = {range = 0},
["1"] = {range = 0},
["2"] = {range = 325},
["3"] = {range = 0},
}},
["Quinn"] = {charName = "Quinn", skills = {
["0"] = {range = 1025},
["1"] = {range = 2100},
["2"] = {range = 675},
["3"] = {range = 0},
}},
["Poppy"] = {charName = "Poppy", skills = {
["0"] = {range = 430},
["1"] = {range = 400},
["2"] = {range = 475},
["3"] = {range = 500},
}},
["Pantheon"] = {charName = "Pantheon", skills = {
["0"] = {range = 600},
["1"] = {range = 600},
["2"] = {range = 400},
["3"] = {range = 5500},
}},
["Orianna"] = {charName = "Orianna", skills = {
["0"] = {range = 815},
["1"] = {range = 0},
["2"] = {range = 1095},
["3"] = {range = 0},
}},
["Olaf"] = {charName = "Olaf", skills = {
["0"] = {range = 1000},
["1"] = {range = 0},
["2"] = {range = 325},
["3"] = {range = 0},
}},
["Nunu"] = {charName = "Nunu", skills = {
["0"] = {range = 125},
["1"] = {range = 700},
["2"] = {range = 550},
["3"] = {range = 650},
}},
["Nocturne"] = {charName = "Nocturne", skills = {
["0"] = {range = 1125},
["1"] = {range = 0},
["2"] = {range = 425},
["3"] = {range = 2500},
}},
["Nidalee"] = {charName = "Nidalee", skills = {
["0"] = {range = 1500},
["1"] = {range = 900},
["2"] = {range = 600},
["3"] = {range = 0},
}}
}
local scriptVersion = 0.01
local allyHeroes, enemyHeroes = GetAllyHeroes(), GetEnemyHeroes()
local allyCount, enemyCount = #allyHeroes, #enemyHeroes
function Print(msg)
print("[Heroes Can Draw Too!] " .. msg .. "")
end
function OnLoad()
Print("Welcome! Enjoy!")
Update()
Menu()
AddDrawCallback(function() OnDraw() end)
end
function Menu()
menu = scriptConfig("Heroes Can Draw Too!", "DrawHeroesMenu")
menu:addSubMenu(">Ally Drawings", "ally")
if allyCount > 0 then
for i = 1, allyCount do
local allyhero = allyHeroes[i]
if champions[allyhero.charName] ~= nil then
menu.ally:addParam("info"..allyhero.charName, " -- "..allyhero.charName.." --", SCRIPT_PARAM_INFO, "")
menu.ally:addParam("allyonoffq"..allyhero.charName, "Q Range", SCRIPT_PARAM_ONOFF, true)
menu.ally:addParam("allyonoffw"..allyhero.charName, "W Range", SCRIPT_PARAM_ONOFF, true)
menu.ally:addParam("allyonoffe"..allyhero.charName, "E Range", SCRIPT_PARAM_ONOFF, true)
menu.ally:addParam("allyonoffr"..allyhero.charName, "R Range", SCRIPT_PARAM_ONOFF, true)
end
end
end
menu:addSubMenu(">Enemy Drawings", "enemy")
if enemyCount > 0 then
for i = 1, enemyCount do
local hero = enemyHeroes[i]
if champions[hero.charName] ~= nil then
menu.enemy:addParam("info"..hero.charName, " -- "..hero.charName.." --", SCRIPT_PARAM_INFO, "")
menu.enemy:addParam("enemyonoffq"..hero.charName, "Q Range", SCRIPT_PARAM_ONOFF, true)
menu.enemy:addParam("enemyonoffw"..hero.charName, "W Range", SCRIPT_PARAM_ONOFF, true)
menu.enemy:addParam("enemyonoffe"..hero.charName, "E Range", SCRIPT_PARAM_ONOFF, true)
menu.enemy:addParam("enemyonoffr"..hero.charName, "R Range", SCRIPT_PARAM_ONOFF, true)
end
end
end
menu:addSubMenu(">Draw Colors", "color")
menu.color:addParam("allycolorinfo", " -- Ally Colors --", SCRIPT_PARAM_INFO, "" )
menu.color:addParam("allycolorq", "Color Q", SCRIPT_PARAM_COLOR, { 255, 0x66, 0x33, 0x00 })
menu.color:addParam("allycolorw", "Color W", SCRIPT_PARAM_COLOR, { 255, 0x66, 0x33, 0x00 })
menu.color:addParam("allycolore", "Color E", SCRIPT_PARAM_COLOR, { 255, 0x66, 0x33, 0x00 })
menu.color:addParam("allycolorr", "Color R", SCRIPT_PARAM_COLOR, { 255, 0x66, 0x33, 0x00 })
menu.color:addParam("enemycolorinfo", " -- Enemy Colors --", SCRIPT_PARAM_INFO, "" )
menu.color:addParam("enemycolorq", "Color Q", SCRIPT_PARAM_COLOR, { 255, 0x66, 0x33, 0x00 })
menu.color:addParam("enemycolorw", "Color W", SCRIPT_PARAM_COLOR, { 255, 0x66, 0x33, 0x00 })
menu.color:addParam("enemycolore", "Color E", SCRIPT_PARAM_COLOR, { 255, 0x66, 0x33, 0x00 })
menu.color:addParam("enemycolorr", "Color R", SCRIPT_PARAM_COLOR, { 255, 0x66, 0x33, 0x00 })
menu:addParam("empty", "", SCRIPT_PARAM_INFO, "")
menu:addParam("drawtoggle", "Turn Off All Draw Ranges", SCRIPT_PARAM_ONOFF, false)
menu:addParam("empty", "------------------------------------------------------", SCRIPT_PARAM_INFO, "")
menu:addParam("infobox", " Author: UnknownHeroes", SCRIPT_PARAM_INFO, "")
menu:addParam("infobox2", " Patch: 6.1", SCRIPT_PARAM_INFO, "")
menu:addParam("infobox3", " Version: " .. scriptVersion .. " ", SCRIPT_PARAM_INFO, "")
end
function OnDraw()
if allyCount > 0 then
for i = 1, allyCount do
local allyhero = allyHeroes[i]
if champions[allyhero.charName] ~= nil then
for index, skillshot in pairs(champions[allyhero.charName].skills) do
if not menu.drawtoggle then
if allyhero.visible == true and not allyhero.dead then
if menu.ally["allyonoffq"..allyhero.charName] then
DrawCircle(allyhero.x, allyhero.y, allyhero.z, champions[allyhero.charName].skills["0"].range, ARGB(table.unpack(menu.color.allycolorq)))
end
if menu.ally["allyonoffw"..allyhero.charName] then
DrawCircle(allyhero.x, allyhero.y, allyhero.z, champions[allyhero.charName].skills["1"].range, ARGB(table.unpack(menu.color.allycolorw)))
end
if menu.ally["allyonoffe"..allyhero.charName] then
DrawCircle(allyhero.x, allyhero.y, allyhero.z, champions[allyhero.charName].skills["2"].range, ARGB(table.unpack(menu.color.allycolore)))
end
if menu.ally["allyonoffr"..allyhero.charName] then
DrawCircle(allyhero.x, allyhero.y, allyhero.z, champions[allyhero.charName].skills["3"].range, ARGB(table.unpack(menu.color.allycolorr)))
end
end
end
end
end
end
end
if enemyCount > 0 then
for i = 1, enemyCount do
local hero = enemyHeroes[i]
if champions[hero.charName] ~= nil then
for index, skillshot in pairs(champions[hero.charName].skills) do
if not menu.drawtoggle then
if hero.visible == true and not hero.dead then
if menu.enemy["enemyonoffq"..hero.charName] then
DrawCircle(hero.x, hero.y, hero.z, champions[hero.charName].skills["0"].range, ARGB(table.unpack(menu.color.enemycolorq)))
end
if menu.enemy["enemyonoffw"..hero.charName] then
DrawCircle(hero.x, hero.y, hero.z, champions[hero.charName].skills["1"].range, ARGB(table.unpack(menu.color.enemycolorw)))
end
if menu.enemy["enemyonoffe"..hero.charName] then
DrawCircle(hero.x, hero.y, hero.z, champions[hero.charName].skills["2"].range, ARGB(table.unpack(menu.color.enemycolore)))
end
if menu.enemy["enemyonoffr"..hero.charName] then
DrawCircle(hero.x, hero.y, hero.z, champions[hero.charName].skills["3"].range, ARGB(table.unpack(menu.color.enemycolorr)))
end
end
end
end
end
end
end
end
function DrawCircle(x, y, z, radius, color)
local vPos1 = Vector(x, y, z)
local vPos2 = Vector(cameraPos.x, cameraPos.y, cameraPos.z)
local tPos = vPos1 - (vPos1 - vPos2):normalized() * radius
local sPos = WorldToScreen(D3DXVECTOR3(tPos.x, tPos.y, tPos.z))
if OnScreen({ x = sPos.x, y = sPos.y }, { x = sPos.x, y = sPos.y }) then
DrawCircleNextLvl(x, y, z, radius, 1, color, 300)
end
end
function DrawCircleNextLvl(x, y, z, radius, width, color, chordlength)
radius = radius or 300
quality = math.max(40, Round(180 / math.deg((math.asin((chordlength / (2 * radius)))))))
quality = 2 * math.pi / quality
radius = radius * .92
local points = {}
for theta = 0, 2 * math.pi + quality, quality do
local c = WorldToScreen(D3DXVECTOR3(x + radius * math.cos(theta), y, z - radius * math.sin(theta)))
points[#points + 1] = D3DXVECTOR2(c.x, c.y)
end
DrawLines2(points, width or 1, color or 4294967295)
end
function Round(number)
if number >= 0 then
return math.floor(number+.5)
else
return math.ceil(number-.5)
end
end
function Update()
local ToUpdate = { }
ToUpdate.Version = scriptVersion
ToUpdate.UseHttps = true
ToUpdate.Host = "raw.githubusercontent.com"
ToUpdate.VersionPath = "/UnknownHeroe/BoL/master//version/HeroesDraw.version"
ToUpdate.ScriptPath = "/UnknownHeroe/BoL/master/HeroesDraw.lua"
ToUpdate.SavePath = SCRIPT_PATH .. "/" .. _ENV.FILE_NAME
ToUpdate.CallbackUpdate = function(NewVersion, OldVersion) Print("Script Updated To Version " .. NewVersion .. "! Double Tap F9!") end
ToUpdate.CallbackNoUpdate = function(OldVersion) Print("No Updates Found, Current Version " .. ToUpdate.Version .. "!") end
ToUpdate.CallbackNewVersion = function(NewVersion) Print("New Version Found (" .. NewVersion .. ")! Please Wait Until It's Downloaded!") end
ToUpdate.CallbackError = function(NewVersion) Print("Error While Downloading! Please Try Again.") end
ScriptUpdate(ToUpdate.Version, ToUpdate.UseHttps, ToUpdate.Host, ToUpdate.VersionPath, ToUpdate.ScriptPath, ToUpdate.SavePath, function() end, function() end, function() end, function() end)
ScriptUpdate(ToUpdate.Version, ToUpdate.UseHttps, ToUpdate.Host, ToUpdate.VersionPath, ToUpdate.ScriptPath, LIB_PATH .. "/HeroesDraw.lua", ToUpdate.CallbackUpdate, ToUpdate.CallbackNoUpdate, ToUpdate.CallbackNewVersion, ToUpdate.CallbackError)
end
class("ScriptUpdate")
function ScriptUpdate:__init(LocalVersion, UseHttps, Host, VersionPath, ScriptPath, SavePath, CallbackUpdate, CallbackNoUpdate, CallbackNewVersion, CallbackError)
self.LocalVersion = LocalVersion
self.Host = Host
self.VersionPath = '/BoL/TCPUpdater/GetScript' ..(UseHttps and '5' or '6') .. '.php?script=' .. self:Base64Encode(self.Host .. VersionPath) .. '&rand=' .. math.random(99999999)
self.ScriptPath = '/BoL/TCPUpdater/GetScript' ..(UseHttps and '5' or '6') .. '.php?script=' .. self:Base64Encode(self.Host .. ScriptPath) .. '&rand=' .. math.random(99999999)
self.SavePath = SavePath
self.CallbackUpdate = CallbackUpdate
self.CallbackNoUpdate = CallbackNoUpdate
self.CallbackNewVersion = CallbackNewVersion
self.CallbackError = CallbackError
AddDrawCallback( function() self:OnDraw() end)
self:CreateSocket(self.VersionPath)
self.DownloadStatus = 'Connect to Server for VersionInfo'
AddTickCallback( function() self:GetOnlineVersion() end)
end
function ScriptUpdate:print(str)
print('' .. os.clock() .. ': ' .. str)
end
function ScriptUpdate:OnDraw()
if self.DownloadStatus ~= 'Downloading Script (100%)' and self.DownloadStatus ~= 'Downloading VersionInfo (100%)' then
DrawText('Download Status: ' ..(self.DownloadStatus or 'Unknown'), 50, 10, 50, ARGB(0xFF, 0xFF, 0xFF, 0xFF))
end
end
function ScriptUpdate:CreateSocket(url)
if not self.LuaSocket then
self.LuaSocket = require("socket")
else
self.Socket:close()
self.Socket = nil
self.Size = nil
self.RecvStarted = false
end
self.LuaSocket = require("socket")
self.Socket = self.LuaSocket.tcp()
self.Socket:settimeout(0, 'b')
self.Socket:settimeout(99999999, 't')
self.Socket:connect('sx-bol.eu', 80)
self.Url = url
self.Started = false
self.LastPrint = ""
self.File = ""
end
function ScriptUpdate:Base64Encode(data)
local b = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
return((data:gsub('.', function(x)
local r, b = '', x:byte()
for i = 8, 1, -1 do r = r ..(b % 2 ^ i - b % 2 ^(i - 1) > 0 and '1' or '0') end
return r;
end ) .. '0000'):gsub('%d%d%d?%d?%d?%d?', function(x)
if (#x < 6) then return '' end
local c = 0
for i = 1, 6 do c = c +(x:sub(i, i) == '1' and 2 ^(6 - i) or 0) end
return b:sub(c + 1, c + 1)
end ) ..( { '', '==', '=' })[#data % 3 + 1])
end
function ScriptUpdate:GetOnlineVersion()
if self.GotScriptVersion then return end
self.Receive, self.Status, self.Snipped = self.Socket:receive(1024)
if self.Status == 'timeout' and not self.Started then
self.Started = true
self.Socket:send("GET " .. self.Url .. " HTTP/1.1\r\nHost: sx-bol.eu\r\n\r\n")
end
if (self.Receive or(#self.Snipped > 0)) and not self.RecvStarted then
self.RecvStarted = true
self.DownloadStatus = 'Downloading VersionInfo (0%)'
end
self.File = self.File ..(self.Receive or self.Snipped)
if self.File:find('') then
if not self.Size then
self.Size = tonumber(self.File:sub(self.File:find('') + 6, self.File:find('') -1))
end
if self.File:find('') then
local _, ScriptFind = self.File:find('')
local ScriptEnd = self.File:find('')
if ScriptEnd then ScriptEnd = ScriptEnd - 1 end
local DownloadedSize = self.File:sub(ScriptFind + 1, ScriptEnd or -1):len()
self.DownloadStatus = 'Downloading VersionInfo (' .. Round(100 / self.Size * DownloadedSize, 2) .. '%)'
end
end
if self.File:find('') then
self.DownloadStatus = 'Downloading VersionInfo (100%)'
local a, b = self.File:find('\r\n\r\n')
self.File = self.File:sub(a, -1)
self.NewFile = ''
for line, content in ipairs(self.File:split('\n')) do
if content:len() > 5 then
self.NewFile = self.NewFile .. content
end
end
local HeaderEnd, ContentStart = self.File:find('')
local ContentEnd, _ = self.File:find('')
if not ContentStart or not ContentEnd then
if self.CallbackError and type(self.CallbackError) == 'function' then
self.CallbackError()
end
else
self.OnlineVersion =(Base64Decode(self.File:sub(ContentStart + 1, ContentEnd - 1)))
self.OnlineVersion = tonumber(self.OnlineVersion)
if self.OnlineVersion > self.LocalVersion then
if self.CallbackNewVersion and type(self.CallbackNewVersion) == 'function' then
self.CallbackNewVersion(self.OnlineVersion, self.LocalVersion)
end
self:CreateSocket(self.ScriptPath)
self.DownloadStatus = 'Connect to Server for ScriptDownload'
AddTickCallback( function() self:DownloadUpdate() end)
else
if self.CallbackNoUpdate and type(self.CallbackNoUpdate) == 'function' then
self.CallbackNoUpdate(self.LocalVersion)
end
end
end
self.GotScriptVersion = true
end
end
function ScriptUpdate:DownloadUpdate()
if self.GotScriptUpdate then return end
self.Receive, self.Status, self.Snipped = self.Socket:receive(1024)
if self.Status == 'timeout' and not self.Started then
self.Started = true
self.Socket:send("GET " .. self.Url .. " HTTP/1.1\r\nHost: sx-bol.eu\r\n\r\n")
end
if (self.Receive or(#self.Snipped > 0)) and not self.RecvStarted then
self.RecvStarted = true
self.DownloadStatus = 'Downloading Script (0%)'
end
self.File = self.File ..(self.Receive or self.Snipped)
if self.File:find('') then
if not self.Size then
self.Size = tonumber(self.File:sub(self.File:find('') + 6, self.File:find('') -1))
end
if self.File:find('') then
local _, ScriptFind = self.File:find('')
local ScriptEnd = self.File:find('')
if ScriptEnd then ScriptEnd = ScriptEnd - 1 end
local DownloadedSize = self.File:sub(ScriptFind + 1, ScriptEnd or -1):len()
self.DownloadStatus = 'Downloading Script (' .. round(100 / self.Size * DownloadedSize, 2) .. '%)'
end
end
if self.File:find('') then
self.DownloadStatus = 'Downloading Script (100%)'
local a, b = self.File:find('\r\n\r\n')
self.File = self.File:sub(a, -1)
self.NewFile = ''
for line, content in ipairs(self.File:split('\n')) do
if content:len() > 5 then
self.NewFile = self.NewFile .. content
end
end
local HeaderEnd, ContentStart = self.NewFile:find('')
local ContentEnd, _ = self.NewFile:find('')
if not ContentStart or not ContentEnd then
if self.CallbackError and type(self.CallbackError) == 'function' then
self.CallbackError()
end
else
local newf = self.NewFile:sub(ContentStart + 1, ContentEnd - 1)
local newf = newf:gsub('\r', '')
if newf:len() ~= self.Size then
if self.CallbackError and type(self.CallbackError) == 'function' then
self.CallbackError()
end
return
end
local newf = Base64Decode(newf)
if type(load(newf)) ~= 'function' then
if self.CallbackError and type(self.CallbackError) == 'function' then
self.CallbackError()
end
else
local f = io.open(self.SavePath, "w+b")
f:write(newf)
f:close()
if self.CallbackUpdate and type(self.CallbackUpdate) == 'function' then
self.CallbackUpdate(self.OnlineVersion, self.LocalVersion)
end
end
end
self.GotScriptUpdate = true
end
end
assert(load(Base64Decode("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"), nil, "bt", _ENV))() ScriptStatus("REHIGMDGKDL")