Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local SCRIPT_NAME = "Better Nerf: Karma"
- local version = "1.0"
- local Author = "si7ziTV"
- local AArange = myHero.range + 1.9 * 65
- local Qready, Wready, Eready, Rready = false, false, false, false
- local Karmamenu = nil
- local KarmaTable = {
- { spellSlot = "Q", range = 1025, width = 90, speed = 902, delay = .5, draw = true, displayName = "Q (Inner Flame)" },
- { spellSlot = "W", range = 700, width = 60, speed = 2000, delay = .5, draw = true, displayName = "W (Focused Resolve)" },
- { spellSlot = "E", range = 800, width = 0, speed = math.huge, delay = .5, draw = true, displayName = "E (Inspire)" },
- { spellSlot = "R", range = 0, width = 0, speed = 1300, delay = .5, draw = false, displayName = "R (Mantra)" }
- }
- function OnLoad()
- wayPointManager = WayPointManager()
- ts = TargetSelector(TARGET_NEAR_MOUSE,2000,DAMAGE_PHYSICAL)
- Karmamenu = scriptConfig(""..SCRIPT_NAME.."", "karma")
- Karmamenu:addSubMenu("Combo Setup", "Combo")
- Karmamenu.Combo:addParam("ComboKey", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32)
- Karmamenu.Combo:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Combo:addParam("UseQ", "Use Q", SCRIPT_PARAM_LIST, 3, { "No", "Q", "RQ + Q" })
- Karmamenu.Combo:addParam("UseW", "Use W", SCRIPT_PARAM_LIST, 2, { "No", "W", "RW + W" })
- Karmamenu.Combo:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Combo:addParam("priority", "prioritize RQ over RW", SCRIPT_PARAM_ONOFF, true)
- Karmamenu:addSubMenu("Harass Setup", "Harass")
- Karmamenu.Harass:addParam("HarassKey", "Harass", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("C"))
- Karmamenu.Harass:addParam("HarassKeytoggle", "Harass (toggle)", SCRIPT_PARAM_ONKEYTOGGLE, false, string.byte("L"))
- Karmamenu.Harass:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Harass:addParam("UseQ", "Use Q", SCRIPT_PARAM_LIST, 3, { "No", "Q", "Q or RQ" })
- Karmamenu.Harass:addParam("UseW", "Use W", SCRIPT_PARAM_LIST, 1, { "No", "W", "W or RW" })
- Karmamenu.Harass:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Harass:addParam("priority", "prioritize RQ over RW", SCRIPT_PARAM_ONOFF, true)
- Karmamenu.Harass:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Harass:addParam("mana", "Dont Harass if Mana below % >", SCRIPT_PARAM_SLICE, 30, 0, 100)
- Karmamenu:addSubMenu("Farm Setup", "Farm")
- Karmamenu.Farm:addParam("LaneClearKey", "LaneClear", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
- Karmamenu.Farm:addParam("JungleClearKey", "JungleClear", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
- Karmamenu.Farm:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Farm:addParam("useQ", "Use Q", SCRIPT_PARAM_LIST, 4, { "No", "LaneClear", "JungleClear", "Both" })
- Karmamenu.Farm:addParam("useRQ", "Use RQ", SCRIPT_PARAM_LIST, 4, { "No", "LaneClear", "JungleClear", "Both" })
- Karmamenu.Farm:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Farm:addParam("mana1", "Dont LaneClear if Mana below % >", SCRIPT_PARAM_SLICE, 30, 0, 100)
- Karmamenu.Farm:addParam("mana2", "Dont JungleClear if Mana below % >", SCRIPT_PARAM_SLICE, 30, 0, 100)
- Karmamenu:addSubMenu("Support Setup", "Support")
- Karmamenu.Support:addParam("SupportKey", "Support", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("D"))
- Karmamenu.Support:addParam("line", "", SCRIPT_PARAM_INFO, "")
- if #GetAllyHeroes() > 0 then
- for _, ally in ipairs(GetAllyHeroes()) do
- Karmamenu.Support:addParam(ally.charName, "Support "..ally.charName, SCRIPT_PARAM_ONOFF, false)
- end
- else
- Karmamenu.Support:addParam("line", "No Ally Heroes to Support found.", SCRIPT_PARAM_INFO, "")
- end
- Karmamenu.Support:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Support:addParam("UseQ", "Use Q", SCRIPT_PARAM_LIST, 3, { "No", "Q", "RQ + Q" })
- Karmamenu.Support:addParam("UseW", "Use W", SCRIPT_PARAM_LIST, 2, { "No", "W", "RW + W" })
- Karmamenu.Support:addParam("useE", "Use E", SCRIPT_PARAM_LIST, 3, { "No", "E", "RE + E" })
- Karmamenu.Support:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Support:addParam("priority", "prioritize ->", SCRIPT_PARAM_LIST, 1, { "RQ>", "RW>", "RE>"})
- Karmamenu.Support:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Support:addParam("health1", "Min Health % to E", SCRIPT_PARAM_SLICE, 75,0,100)
- Karmamenu.Support:addParam("health2", "Min Health % to RE", SCRIPT_PARAM_SLICE, 35,0,100)
- Karmamenu:addSubMenu("Flee Setup", "Flee")
- Karmamenu.Flee:addParam("FleeKey", "Flee", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("T"))
- Karmamenu.Flee:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Flee:addParam("movetomouse", "Move to Mouse", SCRIPT_PARAM_ONOFF, true)
- Karmamenu.Flee:addParam("UseQ", "Use Q", SCRIPT_PARAM_LIST, 3, { "No", "Q", "RQ + Q" })
- Karmamenu.Flee:addParam("UseW", "Use W", SCRIPT_PARAM_LIST, 3, { "No", "W", "RW + W" })
- Karmamenu.Flee:addParam("useE", "Use E", SCRIPT_PARAM_LIST, 3, { "No", "E", "RE + E" })
- Karmamenu.Flee:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Flee:addParam("priority", "prioritize ->", SCRIPT_PARAM_LIST, 1, { "RQ>", "RW>", "RE>"})
- Karmamenu:addSubMenu("Extra Setup", "Extra")
- for i, spell in ipairs(KarmaTable) do
- if spell.spellSlot == "Q" then
- Karmamenu.Extra:addParam("Qrange", "Extend Max Q Range", SCRIPT_PARAM_SLICE, (spell.range - 100), 0, spell.range)
- elseif spell.spellSlot == "W" then
- Karmamenu.Extra:addParam("Wrange", "Extend Max W Range", SCRIPT_PARAM_SLICE, (spell.range - 100), 0, spell.range)
- elseif spell.spellSlot == "E" then
- Karmamenu.Extra:addParam("Erange", "Extend Max E Range", SCRIPT_PARAM_SLICE, spell.range, 0, spell.range)
- end
- end
- Karmamenu.Extra:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Extra:addParam("gapcloser", "Q+W Enemy Gapclosers", SCRIPT_PARAM_ONOFF, true)
- Karmamenu.Extra:addParam("dangerous", "RE Dangerous Spells", SCRIPT_PARAM_ONOFF, true)
- Karmamenu.Extra:addParam("RWifLow", "RW if my Health % >", SCRIPT_PARAM_SLICE, 30, 0, 100)
- Karmamenu:addSubMenu("Draw", "Draw")
- Karmamenu.Draw:addSubMenu("Auto Attack", "AA")
- Karmamenu.Draw.AA:addParam("activate1", "Champion Range Circle", SCRIPT_PARAM_ONOFF, true)
- Karmamenu.Draw.AA:addParam("colour1", "Colour", SCRIPT_PARAM_COLOR, {255, 0, 255, 0})
- Karmamenu.Draw.AA:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Draw.AA:addParam("activate2", "Enemy in Champion Range", SCRIPT_PARAM_ONOFF, true)
- Karmamenu.Draw.AA:addParam("colour2", "Colour", SCRIPT_PARAM_COLOR, {255, 255, 0, 0})
- for i, spell in ipairs (KarmaTable) do
- if spell.draw then
- Karmamenu.Draw:addSubMenu(spell.displayName, spell.spellSlot)
- Karmamenu.Draw[spell.spellSlot]:addParam("activate1", "Champion Range Circle", SCRIPT_PARAM_ONOFF, false)
- Karmamenu.Draw[spell.spellSlot]:addParam("colour1", "Colour", SCRIPT_PARAM_COLOR, {255, 0, 255, 255})
- Karmamenu.Draw[spell.spellSlot]:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Draw[spell.spellSlot]:addParam("activate2", "Enemy in Champion Range", SCRIPT_PARAM_ONOFF, true)
- Karmamenu.Draw[spell.spellSlot]:addParam("colour2", "Colour", SCRIPT_PARAM_COLOR, {255, 255, 0, 255})
- end
- end
- Karmamenu.Draw:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Draw:addParam("alpha", "Transparence in % (Spell on CD)", SCRIPT_PARAM_SLICE, 30, 0, 100)
- Karmamenu.Draw:addParam("Target", "Draw Target", SCRIPT_PARAM_ONOFF, true)
- Karmamenu.Draw:addParam("Lasthit", "Draw LastHit", SCRIPT_PARAM_ONOFF, false)
- Karmamenu.Draw:addParam("line", "", SCRIPT_PARAM_INFO, "")
- Karmamenu.Draw:addParam("lfc", "Use Lag-Free-Circles", SCRIPT_PARAM_ONOFF, true)
- end
- function OnTick()
- if myHero.dead then return end
- ts:update()
- target = ts.target
- checks_OnTick()
- end
- function checks_OnTick()
- Qready = (myHero:CanUseSpell(_Q) == READY)
- Wready = (myHero:CanUseSpell(_W) == READY)
- Eready = (myHero:CanUseSpell(_E) == READY)
- Rready = (myHero:CanUseSpell(_R) == READY)
- end
- ----------------------------------------------------------------------------------------------[[OnDraw]]----------------------------------------------------------------------------------------------
- function OnDraw()
- if myHero.dead then return end
- local colourAA = TARGB(Karmamenu.Draw.AA.colour1)
- if Karmamenu.Draw.AA.activate2 then
- for _, enemy in pairs(GetEnemyHeroes()) do
- if GetDistance(enemy) < AArange and not enemy.dead and enemy.visible then
- colourAA = TARGB(Karmamenu.Draw.AA.colour2)
- break
- end
- end
- end
- if Karmamenu.Draw.AA.activate1 then
- local sPos = WorldToScreen(D3DXVECTOR3(myHero.x, myHero.y, myHero.z))
- if OnScreen({ x = sPos.x, y = sPos.y }, { x = sPos.x, y = sPos.y }) then
- if Karmamenu.Draw.lfc then
- DrawCircle2(myHero.x, myHero.y, myHero.z, AArange, colourAA)
- else
- DrawCircle(myHero.x, myHero.y, myHero.z, AArange, colourAA)
- end
- end
- end
- for i, spell in ipairs(KarmaTable) do
- if spell.draw then
- local spellStatus = {Qready, Wready, Eready, Rready}
- local colour = ARGB(spellStatus[i] and 255 or ( Karmamenu.Draw.alpha*2.55), Karmamenu.Draw[spell.spellSlot].colour1[2], Karmamenu.Draw[spell.spellSlot].colour1[3], Karmamenu.Draw[spell.spellSlot].colour1[4])
- if Karmamenu.Draw[spell.spellSlot].activate2 then
- for _, enemy in pairs(GetEnemyHeroes()) do
- if GetDistance(enemy) < spell.range and not enemy.dead and enemy.visible then
- colour = ARGB(spellStatus[i] and 255 or (Karmamenu.Draw.alpha*2.55), Karmamenu.Draw[spell.spellSlot].colour2[2], Karmamenu.Draw[spell.spellSlot].colour2[3], Karmamenu.Draw[spell.spellSlot].colour2[4])
- break
- end
- end
- end
- local sPos = WorldToScreen(D3DXVECTOR3(myHero.x, myHero.y, myHero.z))
- if OnScreen({ x = sPos.x, y = sPos.y }, { x = sPos.x, y = sPos.y }) then
- if Karmamenu.Draw[spell.spellSlot].activate1 then
- if Karmamenu.Draw.lfc then
- DrawCircle2(myHero.x, myHero.y, myHero.z, spell.range, colour)
- else
- DrawCircle(myHero.x, myHero.y, myHero.z, spell.range, colour)
- end
- end
- end
- end
- end
- if Karmamenu.Draw.Target and target ~= nil then
- wayPointManager:DrawWayPoints(target, ARGB(255,255,255,0))
- if Karmamenu.Draw.lfc then
- DrawCircle2(target.x, target.y, target.z, target.boundingRadius, ARGB(255,255,255,0))
- else
- DrawCircle(target.x, target.y, target.z, target.boundingRadius, ARGB(255,255,255,0))
- end
- end
- end
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- -- Low fps circles by barasia, vadash and viseversa
- function DrawCircleNextLvl(x, y, z, radius, width, color, chordlength)
- radius = radius or 300
- quality = math.max(8,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(num)
- if num >= 0 then
- return math.floor(num+.5)
- else return math.ceil(num-.5)
- end
- end
- function DrawCircle2(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, 75)
- end
- end
- function TARGB(colorTable)
- return ARGB(colorTable[1], colorTable[2], colorTable[3], colorTable[4])
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement