Advertisement
Guest User

Untitled

a guest
Aug 1st, 2014
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 30.54 KB | None | 0 0
  1. if myHero.charName ~= "Irelia" and myHero.charName ~= "Malphite" then return end
  2.  
  3.     local SCRIPT_NAME = "Better Nerf Series"
  4.     local SCRIPT_VERSION = "0.1"
  5.     local Author = "si7ziTV"
  6.  
  7.     local menuvar = false
  8.     local mainmenu = nil
  9.     local drawmenu = nil
  10.  
  11.     local Qready = false
  12.     local Wready = false
  13.     local Eready = false
  14.     local Rready = false
  15.  
  16.     local AArange = myHero.range + 1.9 * 65
  17.  
  18.     local spellTable = {
  19.         Malphite = {
  20.             { range = 625,  width = 0,   speed = 1200,      delay =  .5, draw = true,  spellSlot = "Q", displayName = "Q  (Seismic Shard)"       },
  21.             { range = 0,    width = 0,   speed = math.huge, delay =  .5, draw = false, spellSlot = "W", displayName = "W (Brutal Strikes)"       },
  22.             { range = 400,  width = 400, speed = math.huge, delay =  .5, draw = true,  spellSlot = "E", displayName = "E  (Ground Slam)"         },
  23.             { range = 1000, width = 270, speed = 700,       delay =  .5, draw = true,  spellSlot = "R", displayName = "R  (Unstoppable Force)"   }
  24.         },
  25.         Irelia = {
  26.             { range = 650,  width = 0,   speed = 2200,      delay =   0, draw = true,  spellSlot = "Q", displayName = "Q  (Bladesurge)"          },
  27.             { range = 0,    width = 0,   speed = 347,       delay = .23, draw = false, spellSlot = "W", displayName = "W (Hiten Style)"          },
  28.             { range = 425,  width = 0,   speed = math.huge, delay =  .5, draw = true,  spellSlot = "E", displayName = "E  (Equilibrium Strike)"  },
  29.             { range = 1000, width = 40,  speed = 779,       delay =  .5, draw = true,  spellSlot = "R", displayName = "R  (Transcendent Blades)" }
  30.         }
  31.     }
  32.  
  33. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  34.  
  35. function OnLoad()
  36.  
  37.     hero = _G[myHero.charName]()
  38.  
  39.     Menu()
  40.  
  41.     hero:LoadMenu()
  42.  
  43.     print("<font color=\"#FE2E2E\"><b>"..SCRIPT_NAME..": "..myHero.charName.." "..hero.version.."</b></font> <font color=\"#FBEFEF\">Loaded successfully. Happy Fragging '"..GetUser().."'!</font>")
  44.  
  45. end
  46.  
  47. function Menu()
  48.     MainMenu()
  49.     DrawMenu()
  50. end
  51.  
  52. function MainMenu()
  53.     mainmenu = scriptConfig(""..SCRIPT_NAME..": "..myHero.charName.."", "main")
  54.  
  55.         mainmenu:addSubMenu("Combo", "combo")
  56.             mainmenu.combo:addParam("activate", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32)
  57.             mainmenu.combo:addParam("line", "", SCRIPT_PARAM_INFO, "")
  58.  
  59.         mainmenu:addSubMenu("Harass", "harass")
  60.             mainmenu.harass:addParam("activate", "Harass", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("C"))
  61.             mainmenu.harass:addParam("line", "", SCRIPT_PARAM_INFO, "")
  62.  
  63.         mainmenu:addSubMenu("LastHit", "lasthit")
  64.             mainmenu.lasthit:addParam("activate", "LastHit", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("X"))
  65.             mainmenu.lasthit:addParam("line", "", SCRIPT_PARAM_INFO, "")
  66.  
  67.         mainmenu:addSubMenu("LaneClear", "laneclear")
  68.             mainmenu.laneclear:addParam("activate", "LaneClear", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
  69.             mainmenu.laneclear:addParam("line", "", SCRIPT_PARAM_INFO, "")
  70.  
  71.         mainmenu:addSubMenu("JungleClear", "jungleclear")
  72.             mainmenu.jungleclear:addParam("activate", "JungleClear", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
  73.             mainmenu.jungleclear:addParam("line", "", SCRIPT_PARAM_INFO, "")
  74.  
  75.         mainmenu:addSubMenu("Flee", "flee")
  76.             mainmenu.flee:addParam("FleeKey", "Flee", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("T"))
  77.             mainmenu.flee:addParam("mouse", "Move to Mouse", SCRIPT_PARAM_ONOFF, true)
  78.             mainmenu.flee:addParam("line", "", SCRIPT_PARAM_INFO, "")
  79.  
  80.         mainmenu:addSubMenu("Killsteal", "ks")
  81.  
  82.         mainmenu:addSubMenu("Extra", "extra")      
  83.             if VIP_USER then mainmenu.extra:addSubMenu("Packet Cast", "packetCast")
  84.                 mainmenu.extra.packetCast:addParam("exploit1", "Use directional Exploit", SCRIPT_PARAM_ONOFF, false) end
  85.             mainmenu.extra:addSubMenu("Auto Level", "autolevel")
  86.                 mainmenu.extra.autolevel:addParam("activate", "Use Auto Level Spells", SCRIPT_PARAM_ONOFF, false)
  87.  
  88.         mainmenu:addParam("Version", ""..myHero.charName..": Version", SCRIPT_PARAM_INFO, hero.version)
  89.  
  90.         --mainmenu:addTS(ts)
  91. end
  92. function DrawMenu()
  93.     drawmenu = scriptConfig("Better Nerf Series: Draw Settings", "draw")
  94.  
  95.         drawmenu:addSubMenu("Circle Configuration", "Hero")
  96.             drawmenu.Hero:addSubMenu("Champion Range", "AA")
  97.                 drawmenu.Hero.AA:addParam("activate1", "Champion Range Circle", SCRIPT_PARAM_ONOFF, true)
  98.                 drawmenu.Hero.AA:addParam("colour1", "Colour", SCRIPT_PARAM_COLOR, {255, 0, 255, 0})
  99.                 drawmenu.Hero.AA:addParam("line", "", SCRIPT_PARAM_INFO, "")
  100.                 drawmenu.Hero.AA:addParam("activate2", "Enemy in Champion Range", SCRIPT_PARAM_ONOFF, true)
  101.                 drawmenu.Hero.AA:addParam("colour2", "Colour", SCRIPT_PARAM_COLOR, {255, 255, 0, 0})
  102.  
  103.         for _, spell in ipairs(spellTable[myHero.charName]) do
  104.             if spell.draw then
  105.  
  106.             drawmenu.Hero:addSubMenu(spell.displayName, spell.spellSlot)
  107.                 drawmenu.Hero[spell.spellSlot]:addParam("activate1", "Champion Range Circle", SCRIPT_PARAM_ONOFF, true)
  108.                 drawmenu.Hero[spell.spellSlot]:addParam("colour1", "Colour", SCRIPT_PARAM_COLOR, {255, 0, 255, 255})
  109.                 drawmenu.Hero[spell.spellSlot]:addParam("line", "", SCRIPT_PARAM_INFO, "")
  110.                 drawmenu.Hero[spell.spellSlot]:addParam("activate2", "Enemy in Champion Range", SCRIPT_PARAM_ONOFF, true)
  111.                 drawmenu.Hero[spell.spellSlot]:addParam("colour2", "Colour", SCRIPT_PARAM_COLOR, {255, 255, 0, 255})
  112.  
  113.             end
  114.         end
  115.  
  116.             drawmenu.Hero:addParam("line", "", SCRIPT_PARAM_INFO, "")
  117.             drawmenu.Hero:addParam("ADCmode", "Draw AA Range only", SCRIPT_PARAM_ONOFF, false)
  118.             drawmenu.Hero:addParam("alpha", "Transparence in % (Spell on CD)", SCRIPT_PARAM_SLICE, 30, 0, 100) 
  119.  
  120.         drawmenu:addSubMenu("Killsteal", "ks")
  121.  
  122.         drawmenu:addParam("line", "", SCRIPT_PARAM_INFO, "")
  123.         drawmenu:addParam("drawpreddmg", "Draw Predicted Damage", SCRIPT_PARAM_ONOFF, true)
  124.         drawmenu:addParam("lfc", "Use Low FPS Circles", SCRIPT_PARAM_ONOFF, true)
  125.         drawmenu:addParam("disable", "Disable Drawings", SCRIPT_PARAM_ONOFF, false)
  126. end
  127.  
  128. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  129.  
  130. function OnTick()
  131.     if myHero.dead then return end
  132.     checks()
  133. end
  134.  
  135. function checks()
  136.     Qready = (myHero:CanUseSpell(_Q) == READY)
  137.     Wready = (myHero:CanUseSpell(_W) == READY)
  138.     Eready = (myHero:CanUseSpell(_E) == READY)
  139.     Rready = (myHero:CanUseSpell(_R) == READY)
  140.     --menu var ADCmode /onoff
  141.     if menuvar == false and drawmenu.Hero.ADCmode then
  142.         for i, spell in ipairs(spellTable[myHero.charName]) do
  143.             if spell.draw then
  144.                 drawmenu.Hero[spell.spellSlot].activate1 = false
  145.                 menuvar = true
  146.             end
  147.         end
  148.     end
  149.     if menuvar == true then
  150.         for i, spell in ipairs(spellTable[myHero.charName]) do
  151.             if spell.draw and drawmenu.Hero[spell.spellSlot].activate1 then
  152.                 drawmenu.Hero.ADCmode = false
  153.                 menuvar = false
  154.             end
  155.         end
  156.     end
  157. end
  158. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  159.  
  160. function OnDraw()
  161.     if myHero.dead or drawmenu.disable then return end
  162.     --AA
  163.     local colourAA = TARGB(drawmenu.Hero.AA.colour1)
  164.     if drawmenu.Hero.AA.activate2 then
  165.         for _, enemy in pairs(GetEnemyHeroes()) do
  166.             if GetDistance(enemy) < AArange and not enemy.dead and enemy.visible then
  167.                 colourAA = TARGB(drawmenu.Hero.AA.colour2)
  168.                 break
  169.             end
  170.         end
  171.     end
  172.     if drawmenu.Hero.AA.activate1 then
  173.         if drawmenu.lfc then
  174.             DrawCircle2(myHero.x, myHero.y, myHero.z, AArange, colourAA)
  175.         else
  176.             DrawCircle(myHero.x, myHero.y, myHero.z, AArange, colourAA)
  177.         end
  178.     end
  179.     --Spells
  180.     for i, spell in ipairs(spellTable[myHero.charName]) do
  181.         if spell.draw then
  182.             local spellStatus = {Qready, Wready, Eready, Rready}
  183.             local colour = ARGB(spellStatus[i] and 255 or (drawmenu.Hero.alpha*2.55),  drawmenu.Hero[spell.spellSlot].colour1[2], drawmenu.Hero[spell.spellSlot].colour1[3], drawmenu.Hero[spell.spellSlot].colour1[4])
  184.             if drawmenu.Hero[spell.spellSlot].activate2 then
  185.                 for _, enemy in pairs(GetEnemyHeroes()) do
  186.                     if GetDistance(enemy) < spell.range and not enemy.dead and enemy.visible then
  187.                         colour = ARGB(spellStatus[i] and 255 or (drawmenu.Hero.alpha*2.55),  drawmenu.Hero[spell.spellSlot].colour2[2], drawmenu.Hero[spell.spellSlot].colour2[3], drawmenu.Hero[spell.spellSlot].colour2[4])                      
  188.                         break
  189.                     end
  190.                 end
  191.             end
  192.             if drawmenu.Hero[spell.spellSlot].activate1 then
  193.                 if drawmenu.lfc then
  194.                     DrawCircle2(myHero.x, myHero.y, myHero.z, spell.range, colour)
  195.                 else
  196.                     DrawCircle(myHero.x, myHero.y, myHero.z, spell.range, colour)
  197.                 end
  198.             end
  199.         end
  200.     end
  201. end
  202.  
  203. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  204.  
  205. function getSpellData(spellSlot)
  206.  for i, spell in pairs(spellTable[myHero.charName]) do
  207.   if spell.spellSlot == spellSlot then
  208.    return spell
  209.   end
  210.  end
  211. end
  212.  
  213. -- Low fps circles by barasia, vadash and viseversa
  214. function DrawCircleNextLvl(x, y, z, radius, width, color, chordlength)
  215.     radius = radius or 300
  216.     quality = math.max(8,round(90/math.deg((math.asin((chordlength/(2*radius)))))))
  217.     quality = 2 * math.pi / (radius / 5)
  218.     radius = radius*.92
  219.     local points = {}
  220.     for theta = 0, 2 * math.pi + quality, quality do
  221.         local c = WorldToScreen(D3DXVECTOR3(x + radius * math.cos(theta), y, z - radius * math.sin(theta)))
  222.         points[#points + 1] = D3DXVECTOR2(c.x, c.y)
  223.     end
  224.     DrawLines2(points, width or 1, color or 4294967295)
  225. end
  226. function round(num)
  227.     if num >= 0 then
  228.         return math.floor(num+.5)
  229.     else return math.ceil(num-.5)
  230.     end
  231. end
  232. function DrawCircle2(x, y, z, radius, color)
  233.     local vPos1 = Vector(x, y, z)
  234.     local vPos2 = Vector(cameraPos.x, cameraPos.y, cameraPos.z)
  235.     local tPos = vPos1 - (vPos1 - vPos2):normalized() * radius
  236.     local sPos = WorldToScreen(D3DXVECTOR3(tPos.x, tPos.y, tPos.z))
  237.     if OnScreen({ x = sPos.x, y = sPos.y }, { x = sPos.x, y = sPos.y })  then
  238.         DrawCircleNextLvl(x, y, z, radius, 1, color, 75)
  239.     end
  240. end
  241.  
  242. function TARGB(colorTable)
  243.     return ARGB(colorTable[1], colorTable[2], colorTable[3], colorTable[4])
  244. end
  245.  
  246. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  247. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  248. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  249. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  250. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  251. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  252. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  253. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  254. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  255. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  256.  
  257. class "Malphite"
  258.  
  259. function Malphite:__init()
  260.     self.version = "0.1"
  261.  
  262.     self.Q = getSpellData('Q')
  263.     self.W = getSpellData('W')
  264.     self.E = getSpellData('E')
  265.     self.R = getSpellData('R')
  266.  
  267.     self.ToInterrupt = {}
  268.     self.InterruptTable = {
  269.         { charName = "FiddleSticks",    spellName = "Crowstorm"                     },
  270.         { charName = "MissFortune",     spellName = "MissFortuneBulletTime"         },
  271.         { charName = "Nunu",            spellName = "AbsoluteZero"                  },
  272.         { charName = "Caitlyn",         spellName = "CaitlynAceintheHole"           },
  273.         { charName = "Katarina",        spellName = "KatarinaR"                     },
  274.         { charName = "Karthus",         spellName = "FallenOne"                     },
  275.         { charName = "Malzahar",        spellName = "AlZaharNetherGrasp"            },
  276.         { charName = "Galio",           spellName = "GalioIdolOfDurand"             },
  277.         { charName = "Darius",          spellName = "DariusExecute"                 },
  278.         { charName = "MonkeyKing",      spellName = "MonkeyKingSpinToWin"           },
  279.         { charName = "Vi",              spellName = "ViR"                           },
  280.         { charName = "Shen",            spellName = "ShenStandUnited"               },
  281.         { charName = "Urgot",           spellName = "UrgotSwap2"                    },
  282.         { charName = "Pantheon",        spellName = "Pantheon_GrandSkyfall_Jump"    },
  283.         { charName = "Lucian",          spellName = "LucianR"                       },
  284.         { charName = "Warwick",         spellName = "InfiniteDuress"                },
  285.         { charName = "Xerath",          spellName = "XerathLocusOfPower2"           },
  286.         { charName = "Velkoz",          spellName = "VelkozR"                       },
  287.         { charName = "Skarner",         spellName = "SkarnerImpale"                 }
  288.     }
  289.  
  290.     self.EnemyMinionManager = minionManager(MINION_ENEMY, self.Q.range, myHero, MINION_SORT_MAXHEALTH_DEC)
  291.     self.JungleMinionManager = minionManager(MINION_JUNGLE, self.Q.range, myHero, MINION_SORT_MAXHEALTH_DEC)
  292.  
  293.     if Rready then self.ts = TargetSelector(TARGET_LESS_CAST,self.R.range,DAMAGE_MAGICAL) else
  294.     self.ts = TargetSelector(TARGET_LESS_CAST,self.Q.range,DAMAGE_MAGICAL) end
  295.  
  296.     AddTickCallback(function() self:OnTick() end)
  297.     AddDrawCallback(function() self:OnDraw() end)
  298.     AddProcessSpellCallback(function(unit, spell) self:OnProcessSpell(unit, spell) end)
  299. end
  300.  
  301. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  302.  
  303. function Malphite:LoadMenu()
  304.  
  305.     self:LoadMainMenu()
  306.     self:LoadDrawMenu()
  307.  
  308. end
  309. function Malphite:LoadMainMenu()
  310.     mainmenu.combo:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  311.     mainmenu.combo:addParam("useW", "Use W", SCRIPT_PARAM_ONOFF, true)
  312.     mainmenu.combo:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, true)
  313.     mainmenu.combo:addParam("useR", "Use R", SCRIPT_PARAM_ONOFF, true)
  314.     mainmenu.combo:addParam("line", "", SCRIPT_PARAM_INFO, "")
  315.     mainmenu.combo:addParam("count", "Use R on", SCRIPT_PARAM_LIST, 1, { "1+ target", "2+ targets", "3+ targets", "4+ targets", "5+ targets" })
  316.     mainmenu.combo:addParam("line", "", SCRIPT_PARAM_INFO, "")
  317.     mainmenu.combo:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true)
  318.  
  319.     mainmenu.harass:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  320.     mainmenu.harass:addParam("useW", "Use W", SCRIPT_PARAM_ONOFF, false)
  321.     mainmenu.harass:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, true)
  322.     mainmenu.harass:addParam("line", "", SCRIPT_PARAM_INFO, "")
  323.     mainmenu.harass:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true)
  324.     mainmenu.harass:addParam("line", "", SCRIPT_PARAM_INFO, "")
  325.     mainmenu.harass:addParam("mana", "Dont Harass if Mana < X %", SCRIPT_PARAM_SLICE, 0, 0, 100)
  326.  
  327.     mainmenu.lasthit:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  328.     mainmenu.lasthit:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, false)
  329.     mainmenu.lasthit:addParam("line", "", SCRIPT_PARAM_INFO, "")
  330.     mainmenu.lasthit:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true)
  331.     mainmenu.lasthit:addParam("line", "", SCRIPT_PARAM_INFO, "")
  332.     mainmenu.lasthit:addParam("mana", "Dont LastHit if Mana < X %", SCRIPT_PARAM_SLICE, 0, 0, 100)
  333.  
  334.     mainmenu.laneclear:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  335.     mainmenu.laneclear:addParam("useW", "Use W", SCRIPT_PARAM_ONOFF, true)
  336.     mainmenu.laneclear:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, true)
  337.     mainmenu.laneclear:addParam("line", "", SCRIPT_PARAM_INFO, "")
  338.     mainmenu.laneclear:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true)
  339.     mainmenu.laneclear:addParam("line", "", SCRIPT_PARAM_INFO, "")
  340.     mainmenu.laneclear:addParam("mana", "Dont LaneClear if Mana < X %", SCRIPT_PARAM_SLICE, 0, 0, 100)
  341.  
  342.     mainmenu.jungleclear:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  343.     mainmenu.jungleclear:addParam("useW", "Use W", SCRIPT_PARAM_ONOFF, true)
  344.     mainmenu.jungleclear:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, true)
  345.     mainmenu.jungleclear:addParam("line", "", SCRIPT_PARAM_INFO, "")
  346.     mainmenu.jungleclear:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true)
  347.     mainmenu.jungleclear:addParam("line", "", SCRIPT_PARAM_INFO, "")
  348.     mainmenu.jungleclear:addParam("mana", "Dont JungleClear if Mana < X %", SCRIPT_PARAM_SLICE, 0, 0, 100)
  349.  
  350.     mainmenu.flee:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  351.     mainmenu.flee:addParam("useW", "Use W", SCRIPT_PARAM_ONOFF, true)
  352.     mainmenu.flee:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, true)
  353.     mainmenu.flee:addParam("line", "", SCRIPT_PARAM_INFO, "")
  354.     mainmenu.flee:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true)
  355.  
  356.     mainmenu.ks:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  357.     mainmenu.ks:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, true)
  358.     mainmenu.ks:addParam("useR", "Use R", SCRIPT_PARAM_ONOFF, false)
  359.  
  360.     mainmenu:addSubMenu("Auto Interruptions", "inter")
  361.         mainmenu.inter:addParam("activate", "Interrupt Skils with Ultimate.", SCRIPT_PARAM_ONOFF, true)
  362.         mainmenu.inter:addParam("line", "", SCRIPT_PARAM_INFO, "")
  363.         for i, enemy in ipairs(GetEnemyHeroes()) do
  364.             for _, champ in pairs(self.InterruptTable) do
  365.                 if enemy.charName == champ.charName then
  366.                     table.insert(self.ToInterrupt, {charName = champ.charName, spellName = champ.spellName})
  367.                 end
  368.             end
  369.         end
  370.         if #self.ToInterrupt > 0 then
  371.             for _, Inter in pairs(self.ToInterrupt) do
  372.                 mainmenu.inter:addParam(Inter.spellName, "Stop "..Inter.charName.." "..Inter.spellName, SCRIPT_PARAM_ONOFF, true)
  373.             end
  374.         else
  375.             mainmenu.inter:addParam("inter3", "No supported skills to interupt.", SCRIPT_PARAM_INFO, "")
  376.         end
  377. end
  378. function Malphite:LoadDrawMenu()
  379.     drawmenu.ks:addParam("activate1", "Draw Q KS", SCRIPT_PARAM_ONOFF, true)
  380.     drawmenu.ks:addParam("colour1", "Colour Q KS", SCRIPT_PARAM_COLOR, {255,84,84,84})
  381.     drawmenu.ks:addParam("line", "", SCRIPT_PARAM_INFO, "")
  382.     drawmenu.ks:addParam("activate2", "Draw E KS", SCRIPT_PARAM_ONOFF, true)
  383.     drawmenu.ks:addParam("colour2", "Colour E KS", SCRIPT_PARAM_COLOR, {255,172,86,86})
  384.     drawmenu.ks:addParam("line", "", SCRIPT_PARAM_INFO, "")
  385.     drawmenu.ks:addParam("activate3", "Draw R KS", SCRIPT_PARAM_ONOFF, true)
  386.     drawmenu.ks:addParam("colour3", "Colour R KS", SCRIPT_PARAM_COLOR, {255,255,0,0})
  387.  
  388.     drawmenu:addSubMenu("Farm", "farm")
  389.         drawmenu.farm:addParam("activate1", "Draw Circle if Minion killable", SCRIPT_PARAM_LIST, 2, { "Never", "OnKeyDown", "Always" })
  390.         drawmenu.farm:addParam("colour1", "Circle Color", SCRIPT_PARAM_COLOR, {255, 230, 230, 230})
  391.         drawmenu.farm:addParam("line", "", SCRIPT_PARAM_INFO, "")
  392.         drawmenu.farm:addParam("info", "Set SAME keys as your Orbwalker!", SCRIPT_PARAM_INFO, "")
  393.         drawmenu.farm:addParam("key1", "Freeze", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("X"))
  394.         drawmenu.farm:addParam("key2", "Mixed Mode", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("C"))
  395.         drawmenu.farm:addParam("key3", "Laneclear", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
  396.         drawmenu.farm:addParam("key4", "Jungleclear", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
  397. end
  398.  
  399. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  400.  
  401. function Malphite:OnTick()
  402.  
  403.     if myHero.dead then return end
  404.     self:Combo()
  405.     self:Harass()
  406.     self:LastHit()
  407.     self:LaneClear()
  408.     self:JungleClear()
  409.     self:Flee()
  410.     self:Killsteal()
  411.  
  412. end
  413.  
  414. function Malphite:Combo()
  415.     if mainmenu.combo.activate and target then
  416.         if mainmenu.combo.useQ then
  417.             self:CastQ(target)
  418.         end
  419.         if mainmenu.combo.useW then
  420.             self:CastW(target)
  421.         end
  422.         if mainmenu.combo.useE then
  423.             self:CastE(target)
  424.         end
  425.         if mainmenu.combo.useR then
  426.             self:CastR(target)
  427.         end
  428.     end
  429. end
  430. function Malphite:Harass()
  431.     if mainmenu.harass.activate and not self:manaharass() and target then
  432.         if mainmenu.harass.useQ then
  433.             self:CastQ(target)
  434.         end
  435.         if mainmenu.harass.useW then
  436.             self:CastW(target)
  437.         end
  438.         if mainmenu.harass.useE then
  439.             self:CastE(target)
  440.         end
  441.     end
  442. end
  443. function Malphite:LastHit()
  444.     for i, minion in pairs(self.EnemyMinionManager.objects) do
  445.         if mainmenu.lasthit.activate and not self:manalasthit() and minion and GetDistance(minion, myHero) > AArange then
  446.             if mainmenu.lasthit.useQ then
  447.                 if getDmg("Q",minion,myHero) > minion.health and not minion.dead then
  448.                     self:CastQ(minion)
  449.                 end
  450.             end
  451.             if mainmenu.lasthit.useE then
  452.                 if getDmg("E",minion,myHero) > minion.health and not minion.dead then
  453.                     self:CastE(minion)
  454.                 end
  455.             end
  456.         end
  457.     end
  458. end
  459. function Malphite:LaneClear()
  460.     for i, minion in pairs(self.EnemyMinionManager.objects) do
  461.         if mainmenu.laneclear.activate and not self:manalaneclear() and minion then
  462.             if mainmenu.laneclear.useQ then
  463.                 if getDmg("Q",minion,myHero) > minion.health and not minion.dead then
  464.                     self:CastQ(minion)
  465.                 end
  466.             end
  467.             if mainmenu.laneclear.useW then
  468.                 self:CastW(minion)
  469.             end
  470.             if mainmenu.laneclear.useE then
  471.                 if getDmg("E",minion,myHero) > minion.health and not minion.dead then
  472.                     self:CastE(minion)
  473.                 end
  474.             end
  475.         end
  476.     end
  477. end
  478. function Malphite:JungleClear()
  479.     for i, minion in pairs(self.EnemyMinionManager.objects) do
  480.         if mainmenu.jungleclear.activate and not self:manajungleclear() and minion then
  481.             if mainmenu.jungleclear.useQ then
  482.                 self:CastQ(minion)
  483.             end
  484.             if mainmenu.jungleclear.useW then
  485.                 self:CastW(minion)
  486.             end
  487.             if mainmenu.jungleclear.useE then
  488.                 self:CastE(minion)
  489.             end
  490.         end
  491.     end
  492. end
  493. function Malphite:Flee()
  494.     if mainmenu.flee.FleeKey then
  495.         if mainmenu.flee.mouse then
  496.             myHero:MoveTo(mousePos.x, mousePos.z)
  497.         end
  498.         for i, minion in pairs(self.EnemyMinionManager.objects) do
  499.             if target and minion or target then
  500.                 if mainmenu.flee.useQ then
  501.                     self:CastQ(target)
  502.                 end
  503.                 if mainmenu.flee.useW then
  504.                     self:CastW(target)
  505.                 end
  506.                 if mainmenu.flee.useE then
  507.                     self:CastE(target)
  508.                 end
  509.             elseif minion and not target then
  510.                 if mainmenu.flee.useQ then
  511.                     self:CastQ(minion)
  512.                 end
  513.                 if mainmenu.flee.useW then
  514.                     self:castW(minion)
  515.                 end        
  516.             end
  517.         end
  518.     end
  519. end
  520. function Malphite:Killsteal()
  521.     for i, enemy in pairs(GetEnemyHeroes()) do
  522.         if enemy and not enemy.dead then
  523.             if mainmenu.ks.useQ then
  524.                 if GetDistance(enemy) <= self.Q.range then
  525.                     if getDmg("Q",enemy,myHero) > enemy.health then
  526.                         CastSpell(_Q, enemy)
  527.                     end
  528.                 end
  529.             end
  530.             if mainmenu.ks.useE then
  531.                 if GetDistance(enemy) <= self.E.range then
  532.                     if getDmg("E",enemy,myHero) > enemy.health then
  533.                         CastSpell(_E)
  534.                     end
  535.                 end
  536.             end
  537.             if mainmenu.ks.useR then
  538.                 if GetDistance(enemy) <= self.R.range then
  539.                     if getDmg("R",enemy,myHero) > enemy.health then
  540.                         CastSpell(_R, enemy.x, enemy.z)
  541.                     end
  542.                 end
  543.             end
  544.         end
  545.     end
  546. end
  547.  
  548. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  549.  
  550. function Malphite:OnDraw() 
  551.     for i, enemy in pairs(GetEnemyHeroes()) do
  552.         if enemy and not enemy.dead then
  553.             if GetDistance(enemy) <= 2000 then
  554.                 if Qready and getDmg("Q", enemy, myHero) > enemy.health then
  555.                     if drawmenu.ks.activate1 then
  556.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 250, TARGB(drawmenu.ks.colour1))
  557.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 253, TARGB(drawmenu.ks.colour1))
  558.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 247, TARGB(drawmenu.ks.colour1))
  559.                     end
  560.                 end
  561.                 if Eready and getDmg("E",enemy,myHero) > enemy.health then
  562.                     if drawmenu.ks.activate2 then
  563.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 247, TARGB(drawmenu.ks.colour2))
  564.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 250, TARGB(drawmenu.ks.colour2))
  565.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 253, TARGB(drawmenu.ks.colour2))
  566.                     end
  567.                 end
  568.                 if Rready and getDmg("R",enemy,myHero) > enemy.health then
  569.                     if drawmenu.ks.activate3 then
  570.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 247, TARGB(drawmenu.ks.colour3))
  571.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 250, TARGB(drawmenu.ks.colour3))
  572.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 253, TARGB(drawmenu.ks.colour3))
  573.                     end
  574.                 end
  575.             end
  576.         end
  577.     end
  578. end
  579.  
  580. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  581.  
  582. function Malphite:CastQ(target)
  583.     if Qready and ValidTarget(target, self.Q.range) then
  584.         if VIP_USER and mainmenu.extra.packetCast then
  585.             Packet("S_CAST", {spellId = _Q, targetNetworkId = target.networkID}):send()
  586.         else
  587.             CastSpell(_Q, target)
  588.         end
  589.     end
  590. end
  591. function Malphite:CastW(target)
  592.     if Wready and ValidTarget(target, self.E.range) then
  593.         if VIP_USER and mainmenu.extra.packetCast then
  594.             Packet("S_CAST", {spellId = _W}):send()
  595.         else
  596.             CastSpell(_W)
  597.         end
  598.     end
  599. end
  600. function Malphite:CastE(target)
  601.     if Eready and ValidTarget(target, self.E.range) then
  602.         if VIP_USER and mainmenu.extra.packetCast then
  603.             Packet("S_CAST", {spellId = _E}):send()
  604.         else
  605.             CastSpell(_E)
  606.         end
  607.     end
  608. end
  609. function Malphite:CastR(target)
  610. end
  611. function Malphite:CastQ(minion)
  612.     if Qready and ValidTarget(minion, self.Q.range) then
  613.         if VIP_USER and mainmenu.extra.packetCast then
  614.             Packet("S_CAST", {spellId = _Q, targetNetworkId = minion.networkID}):send()
  615.         else
  616.             CastSpell(_Q, minion)
  617.         end
  618.     end
  619. end
  620. function Malphite:CastW(minion)
  621.     if Wready and ValidTarget(minion, self.E.range) then
  622.         if VIP_USER and mainmenu.extra.packetCast then
  623.             Packet("S_CAST", {spellId = _W}):send()
  624.         else
  625.             CastSpell(_W)
  626.         end
  627.     end
  628. end
  629. function Malphite:CastE(minion)
  630.     if Eready and ValidTarget(minion, self.E.range) then
  631.         if VIP_USER and mainmenu.extra.packetCast then
  632.             Packet("S_CAST", {spellId = _E}):send()
  633.         else
  634.             CastSpell(_E)
  635.         end
  636.     end
  637. end
  638. function Malphite:OnProcessSpell(unit, spell)
  639.     if mainmenu.inter.activate and Rready then
  640.         if #self.ToInterrupt > 0 then
  641.             for _, Inter in pairs(self.ToInterrupt) do
  642.                 if spell and spell.name == Inter.spellName and unit.team ~= myHero.team then
  643.                     if mainmenu.inter[Inter.spellName] and ValidTarget(unit, self.R.range) then
  644.                         CastSpell(_R, unit.visionPos.x, unit.visionPos.z)
  645.                     end
  646.                 end
  647.             end
  648.         end
  649.     end
  650. end
  651. function Malphite:manaharass()
  652.     return myHero.mana < (myHero.maxMana * ( mainmenu.harass.mana / 100))
  653. end
  654. function Malphite:manalasthit()
  655.      return myHero.mana < (myHero.maxMana * ( mainmenu.lasthit.mana / 100))
  656. end
  657. function Malphite:manalaneclear()
  658.      return myHero.mana < (myHero.maxMana * ( mainmenu.laneclear.mana / 100))
  659. end
  660. function Malphite:manajungleclear()
  661.      return myHero.mana < (myHero.maxMana * ( mainmenu.jungleclear.mana / 100))
  662. end
  663.  
  664.  
  665. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  666. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  667. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  668. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  669. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  670. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  671. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  672. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  673. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  674. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  675.  
  676. class "Irelia"
  677.  
  678. function Irelia:__init()
  679. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement