Advertisement
Guest User

Untitled

a guest
Jul 25th, 2014
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 11.84 KB | None | 0 0
  1. local SCRIPT_NAME = "Better Nerf: Karma"
  2. local version = "1.0"
  3. local Author = "si7ziTV"
  4.  
  5. local AArange = myHero.range + 1.9 * 65
  6. local Qready, Wready, Eready, Rready = false, false, false, false
  7.  
  8. local Karmamenu = nil
  9.  
  10. local KarmaTable = {
  11.    
  12.     { spellSlot = "Q", range = 1025, width = 90, speed = 902,       delay = .5, draw = true,  displayName = "Q  (Inner Flame)"      },
  13.     { spellSlot = "W", range = 700,  width = 60, speed = 2000,      delay = .5, draw = true,  displayName = "W (Focused Resolve)"   },
  14.     { spellSlot = "E", range = 800,  width = 0,  speed = math.huge, delay = .5, draw = true,  displayName = "E  (Inspire)"          },
  15.     { spellSlot = "R", range = 0,    width = 0,  speed = 1300,      delay = .5, draw = false, displayName = "R  (Mantra)"           }
  16.  
  17. }
  18.  
  19. function OnLoad()
  20.  
  21.     wayPointManager = WayPointManager()
  22.     ts = TargetSelector(TARGET_NEAR_MOUSE,2000,DAMAGE_PHYSICAL)
  23.  
  24.     Karmamenu = scriptConfig(""..SCRIPT_NAME.."", "karma")
  25.  
  26.     Karmamenu:addSubMenu("Combo Setup", "Combo")
  27.         Karmamenu.Combo:addParam("ComboKey", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32)
  28.         Karmamenu.Combo:addParam("line", "", SCRIPT_PARAM_INFO, "")
  29.         Karmamenu.Combo:addParam("UseQ", "Use Q", SCRIPT_PARAM_LIST, 3, { "No", "Q", "RQ + Q" })
  30.         Karmamenu.Combo:addParam("UseW", "Use W", SCRIPT_PARAM_LIST, 2, { "No", "W", "RW + W" })
  31.         Karmamenu.Combo:addParam("line", "", SCRIPT_PARAM_INFO, "")
  32.         Karmamenu.Combo:addParam("priority", "prioritize RQ over RW", SCRIPT_PARAM_ONOFF, true)
  33.  
  34.     Karmamenu:addSubMenu("Harass Setup", "Harass")
  35.         Karmamenu.Harass:addParam("HarassKey", "Harass", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("C"))
  36.         Karmamenu.Harass:addParam("HarassKeytoggle", "Harass (toggle)", SCRIPT_PARAM_ONKEYTOGGLE, false, string.byte("L"))
  37.         Karmamenu.Harass:addParam("line", "", SCRIPT_PARAM_INFO, "")
  38.         Karmamenu.Harass:addParam("UseQ", "Use Q", SCRIPT_PARAM_LIST, 3, { "No", "Q", "Q or RQ" })
  39.         Karmamenu.Harass:addParam("UseW", "Use W", SCRIPT_PARAM_LIST, 1, { "No", "W", "W or RW" })
  40.         Karmamenu.Harass:addParam("line", "", SCRIPT_PARAM_INFO, "")
  41.         Karmamenu.Harass:addParam("priority", "prioritize RQ over RW", SCRIPT_PARAM_ONOFF, true)
  42.         Karmamenu.Harass:addParam("line", "", SCRIPT_PARAM_INFO, "")
  43.         Karmamenu.Harass:addParam("mana", "Dont Harass if Mana below % >", SCRIPT_PARAM_SLICE, 30, 0, 100)
  44.  
  45.     Karmamenu:addSubMenu("Farm Setup", "Farm")
  46.         Karmamenu.Farm:addParam("LaneClearKey", "LaneClear", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
  47.         Karmamenu.Farm:addParam("JungleClearKey", "JungleClear", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
  48.         Karmamenu.Farm:addParam("line", "", SCRIPT_PARAM_INFO, "")
  49.         Karmamenu.Farm:addParam("useQ", "Use Q", SCRIPT_PARAM_LIST, 4, { "No", "LaneClear", "JungleClear", "Both" })
  50.         Karmamenu.Farm:addParam("useRQ", "Use RQ", SCRIPT_PARAM_LIST, 4, { "No", "LaneClear", "JungleClear", "Both" })
  51.         Karmamenu.Farm:addParam("line", "", SCRIPT_PARAM_INFO, "")
  52.         Karmamenu.Farm:addParam("mana1", "Dont LaneClear if Mana below % >", SCRIPT_PARAM_SLICE, 30, 0, 100)
  53.         Karmamenu.Farm:addParam("mana2", "Dont JungleClear if Mana below % >", SCRIPT_PARAM_SLICE, 30, 0, 100)
  54.  
  55.     Karmamenu:addSubMenu("Support Setup", "Support")
  56.         Karmamenu.Support:addParam("SupportKey", "Support", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("D"))
  57.         Karmamenu.Support:addParam("line", "", SCRIPT_PARAM_INFO, "")
  58.  
  59.         if #GetAllyHeroes() > 0 then
  60.             for _, ally in ipairs(GetAllyHeroes()) do
  61.                 Karmamenu.Support:addParam(ally.charName, "Support "..ally.charName, SCRIPT_PARAM_ONOFF, false)
  62.             end
  63.         else
  64.             Karmamenu.Support:addParam("line", "No Ally Heroes to Support found.", SCRIPT_PARAM_INFO, "")
  65.         end
  66.         Karmamenu.Support:addParam("line", "", SCRIPT_PARAM_INFO, "")
  67.         Karmamenu.Support:addParam("UseQ", "Use Q", SCRIPT_PARAM_LIST, 3, { "No", "Q", "RQ + Q" })
  68.         Karmamenu.Support:addParam("UseW", "Use W", SCRIPT_PARAM_LIST, 2, { "No", "W", "RW + W" })
  69.         Karmamenu.Support:addParam("useE", "Use E", SCRIPT_PARAM_LIST, 3, { "No", "E", "RE + E" })
  70.         Karmamenu.Support:addParam("line", "", SCRIPT_PARAM_INFO, "")
  71.         Karmamenu.Support:addParam("priority", "prioritize ->", SCRIPT_PARAM_LIST, 1, { "RQ>", "RW>", "RE>"})
  72.         Karmamenu.Support:addParam("line", "", SCRIPT_PARAM_INFO, "")
  73.         Karmamenu.Support:addParam("health1", "Min Health % to E", SCRIPT_PARAM_SLICE, 75,0,100)
  74.         Karmamenu.Support:addParam("health2", "Min Health % to RE", SCRIPT_PARAM_SLICE, 35,0,100)
  75.  
  76.     Karmamenu:addSubMenu("Flee Setup", "Flee")
  77.         Karmamenu.Flee:addParam("FleeKey", "Flee", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("T"))
  78.         Karmamenu.Flee:addParam("line", "", SCRIPT_PARAM_INFO, "")
  79.         Karmamenu.Flee:addParam("movetomouse", "Move to Mouse", SCRIPT_PARAM_ONOFF, true)
  80.         Karmamenu.Flee:addParam("UseQ", "Use Q", SCRIPT_PARAM_LIST, 3, { "No", "Q", "RQ + Q" })
  81.         Karmamenu.Flee:addParam("UseW", "Use W", SCRIPT_PARAM_LIST, 3, { "No", "W", "RW + W" })
  82.         Karmamenu.Flee:addParam("useE", "Use E", SCRIPT_PARAM_LIST, 3, { "No", "E", "RE + E" })
  83.         Karmamenu.Flee:addParam("line", "", SCRIPT_PARAM_INFO, "")
  84.         Karmamenu.Flee:addParam("priority", "prioritize ->", SCRIPT_PARAM_LIST, 1, { "RQ>", "RW>", "RE>"})
  85.  
  86.     Karmamenu:addSubMenu("Extra Setup", "Extra")
  87.         for i, spell in ipairs(KarmaTable) do
  88.             if spell.spellSlot == "Q" then
  89.         Karmamenu.Extra:addParam("Qrange", "Extend Max Q  Range", SCRIPT_PARAM_SLICE, (spell.range - 100), 0, spell.range)
  90.             elseif spell.spellSlot == "W" then
  91.         Karmamenu.Extra:addParam("Wrange", "Extend Max W Range", SCRIPT_PARAM_SLICE, (spell.range - 100), 0, spell.range)
  92.             elseif spell.spellSlot == "E" then
  93.         Karmamenu.Extra:addParam("Erange", "Extend Max E  Range", SCRIPT_PARAM_SLICE, spell.range, 0, spell.range)
  94.             end
  95.         end
  96.         Karmamenu.Extra:addParam("line", "", SCRIPT_PARAM_INFO, "")
  97.         Karmamenu.Extra:addParam("gapcloser", "Q+W Enemy Gapclosers", SCRIPT_PARAM_ONOFF, true)
  98.         Karmamenu.Extra:addParam("dangerous", "RE Dangerous Spells", SCRIPT_PARAM_ONOFF, true)
  99.         Karmamenu.Extra:addParam("RWifLow", "RW if my Health % >", SCRIPT_PARAM_SLICE, 30, 0, 100)
  100.  
  101.     Karmamenu:addSubMenu("Draw", "Draw")
  102.  
  103.         Karmamenu.Draw:addSubMenu("Auto Attack", "AA")
  104.             Karmamenu.Draw.AA:addParam("activate1", "Champion Range Circle", SCRIPT_PARAM_ONOFF, true)
  105.             Karmamenu.Draw.AA:addParam("colour1", "Colour", SCRIPT_PARAM_COLOR, {255, 0, 255, 0})
  106.             Karmamenu.Draw.AA:addParam("line", "", SCRIPT_PARAM_INFO, "")
  107.             Karmamenu.Draw.AA:addParam("activate2", "Enemy in Champion Range", SCRIPT_PARAM_ONOFF, true)
  108.             Karmamenu.Draw.AA:addParam("colour2", "Colour", SCRIPT_PARAM_COLOR, {255, 255, 0, 0})
  109.  
  110.         for i, spell in ipairs (KarmaTable) do
  111.             if spell.draw then
  112.                
  113.         Karmamenu.Draw:addSubMenu(spell.displayName, spell.spellSlot)
  114.             Karmamenu.Draw[spell.spellSlot]:addParam("activate1", "Champion Range Circle", SCRIPT_PARAM_ONOFF, false)
  115.             Karmamenu.Draw[spell.spellSlot]:addParam("colour1", "Colour", SCRIPT_PARAM_COLOR, {255, 0, 255, 255})
  116.             Karmamenu.Draw[spell.spellSlot]:addParam("line", "", SCRIPT_PARAM_INFO, "")
  117.             Karmamenu.Draw[spell.spellSlot]:addParam("activate2", "Enemy in Champion Range", SCRIPT_PARAM_ONOFF, true)
  118.             Karmamenu.Draw[spell.spellSlot]:addParam("colour2", "Colour", SCRIPT_PARAM_COLOR, {255, 255, 0, 255})
  119.  
  120.             end
  121.         end
  122.  
  123.         Karmamenu.Draw:addParam("line", "", SCRIPT_PARAM_INFO, "")
  124.         Karmamenu.Draw:addParam("alpha", "Transparence in % (Spell on CD)", SCRIPT_PARAM_SLICE, 30, 0, 100)
  125.         Karmamenu.Draw:addParam("Target", "Draw Target", SCRIPT_PARAM_ONOFF, true)
  126.         Karmamenu.Draw:addParam("Lasthit", "Draw LastHit", SCRIPT_PARAM_ONOFF, false)
  127.         Karmamenu.Draw:addParam("line", "", SCRIPT_PARAM_INFO, "")
  128.         Karmamenu.Draw:addParam("lfc", "Use Lag-Free-Circles", SCRIPT_PARAM_ONOFF, true)
  129.  
  130. end
  131.  
  132. function OnTick()
  133.     if myHero.dead then return end
  134.     ts:update()
  135.     target = ts.target
  136.     checks_OnTick()
  137. end
  138. function checks_OnTick()
  139.     Qready = (myHero:CanUseSpell(_Q) == READY)
  140.     Wready = (myHero:CanUseSpell(_W) == READY)
  141.     Eready = (myHero:CanUseSpell(_E) == READY)
  142.     Rready = (myHero:CanUseSpell(_R) == READY)
  143. end
  144.  
  145. ----------------------------------------------------------------------------------------------[[OnDraw]]----------------------------------------------------------------------------------------------
  146.  
  147. function OnDraw()
  148.     if myHero.dead then return end
  149.     local colourAA = TARGB(Karmamenu.Draw.AA.colour1)
  150.     if Karmamenu.Draw.AA.activate2 then
  151.         for _, enemy in pairs(GetEnemyHeroes()) do
  152.             if GetDistance(enemy) < AArange and not enemy.dead and enemy.visible then
  153.                 colourAA = TARGB(Karmamenu.Draw.AA.colour2)
  154.                 break
  155.             end
  156.         end
  157.     end
  158.     if Karmamenu.Draw.AA.activate1 then
  159.         local sPos = WorldToScreen(D3DXVECTOR3(myHero.x, myHero.y, myHero.z))
  160.         if OnScreen({ x = sPos.x, y = sPos.y }, { x = sPos.x, y = sPos.y }) then
  161.             if Karmamenu.Draw.lfc then
  162.                 DrawCircle2(myHero.x, myHero.y, myHero.z, AArange, colourAA)
  163.             else
  164.                 DrawCircle(myHero.x, myHero.y, myHero.z, AArange, colourAA)
  165.             end
  166.         end
  167.     end
  168.     for i, spell in ipairs(KarmaTable) do
  169.         if spell.draw then
  170.             local spellStatus = {Qready, Wready, Eready, Rready}
  171.             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])
  172.             if Karmamenu.Draw[spell.spellSlot].activate2 then
  173.                 for _, enemy in pairs(GetEnemyHeroes()) do
  174.                     if GetDistance(enemy) < spell.range and not enemy.dead and enemy.visible then
  175.                         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])                      
  176.                         break
  177.                     end
  178.                 end
  179.             end
  180.             local sPos = WorldToScreen(D3DXVECTOR3(myHero.x, myHero.y, myHero.z))
  181.             if OnScreen({ x = sPos.x, y = sPos.y }, { x = sPos.x, y = sPos.y }) then
  182.                 if Karmamenu.Draw[spell.spellSlot].activate1 then
  183.                     if Karmamenu.Draw.lfc then
  184.                         DrawCircle2(myHero.x, myHero.y, myHero.z, spell.range, colour)
  185.                     else
  186.                         DrawCircle(myHero.x, myHero.y, myHero.z, spell.range, colour)
  187.                     end
  188.                 end
  189.             end
  190.         end
  191.     end
  192.     if Karmamenu.Draw.Target and target ~= nil then
  193.         wayPointManager:DrawWayPoints(target, ARGB(255,255,255,0))
  194.         if Karmamenu.Draw.lfc then
  195.             DrawCircle2(target.x, target.y, target.z, target.boundingRadius, ARGB(255,255,255,0))
  196.         else
  197.             DrawCircle(target.x, target.y, target.z, target.boundingRadius, ARGB(255,255,255,0))
  198.         end
  199.     end
  200. end
  201.  
  202. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  203.  
  204. -- Low fps circles by barasia, vadash and viseversa
  205. function DrawCircleNextLvl(x, y, z, radius, width, color, chordlength)
  206.     radius = radius or 300
  207.     quality = math.max(8,round(180/math.deg((math.asin((chordlength/(2*radius)))))))
  208.     quality = 2 * math.pi / quality
  209.     radius = radius*.92
  210.     local points = {}
  211.     for theta = 0, 2 * math.pi + quality, quality do
  212.         local c = WorldToScreen(D3DXVECTOR3(x + radius * math.cos(theta), y, z - radius * math.sin(theta)))
  213.         points[#points + 1] = D3DXVECTOR2(c.x, c.y)
  214.     end
  215.     DrawLines2(points, width or 1, color or 4294967295)
  216. end
  217. function round(num)
  218.     if num >= 0 then
  219.         return math.floor(num+.5)
  220.     else return math.ceil(num-.5)
  221.     end
  222. end
  223. function DrawCircle2(x, y, z, radius, color)
  224.     local vPos1 = Vector(x, y, z)
  225.     local vPos2 = Vector(cameraPos.x, cameraPos.y, cameraPos.z)
  226.     local tPos = vPos1 - (vPos1 - vPos2):normalized() * radius
  227.     local sPos = WorldToScreen(D3DXVECTOR3(tPos.x, tPos.y, tPos.z))
  228.     if OnScreen({ x = sPos.x, y = sPos.y }, { x = sPos.x, y = sPos.y })  then
  229.         DrawCircleNextLvl(x, y, z, radius, 1, color, 75)   
  230.     end
  231. end
  232. function TARGB(colorTable)
  233.     return ARGB(colorTable[1], colorTable[2], colorTable[3], colorTable[4])
  234. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement