Advertisement
Guest User

Untitled

a guest
Aug 1st, 2014
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 30.80 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.EnemyMinionManager = nil
  263.     self.JungleMinionManager = nil
  264.  
  265.     self.Q = getSpellData('Q')
  266.     self.W = getSpellData('W')
  267.     self.E = getSpellData('E')
  268.     self.R = getSpellData('R')
  269.  
  270.     self.ToInterrupt = {}
  271.     self.InterruptTable = {
  272.         { charName = "FiddleSticks",    spellName = "Crowstorm"                     },
  273.         { charName = "MissFortune",     spellName = "MissFortuneBulletTime"         },
  274.         { charName = "Nunu",            spellName = "AbsoluteZero"                  },
  275.         { charName = "Caitlyn",         spellName = "CaitlynAceintheHole"           },
  276.         { charName = "Katarina",        spellName = "KatarinaR"                     },
  277.         { charName = "Karthus",         spellName = "FallenOne"                     },
  278.         { charName = "Malzahar",        spellName = "AlZaharNetherGrasp"            },
  279.         { charName = "Galio",           spellName = "GalioIdolOfDurand"             },
  280.         { charName = "Darius",          spellName = "DariusExecute"                 },
  281.         { charName = "MonkeyKing",      spellName = "MonkeyKingSpinToWin"           },
  282.         { charName = "Vi",              spellName = "ViR"                           },
  283.         { charName = "Shen",            spellName = "ShenStandUnited"               },
  284.         { charName = "Urgot",           spellName = "UrgotSwap2"                    },
  285.         { charName = "Pantheon",        spellName = "Pantheon_GrandSkyfall_Jump"    },
  286.         { charName = "Lucian",          spellName = "LucianR"                       },
  287.         { charName = "Warwick",         spellName = "InfiniteDuress"                },
  288.         { charName = "Xerath",          spellName = "XerathLocusOfPower2"           },
  289.         { charName = "Velkoz",          spellName = "VelkozR"                       },
  290.         { charName = "Skarner",         spellName = "SkarnerImpale"                 }
  291.     }
  292.  
  293.     self.EnemyMinionManager = minionManager(MINION_ENEMY, self.Q.range, myHero, MINION_SORT_MAXHEALTH_DEC)
  294.     self.JungleMinionManager = minionManager(MINION_JUNGLE, self.Q.range, myHero, MINION_SORT_MAXHEALTH_DEC)
  295.  
  296.     if Rready then self.ts = TargetSelector(TARGET_LESS_CAST,self.R.range,DAMAGE_MAGICAL) else
  297.     self.ts = TargetSelector(TARGET_LESS_CAST,self.Q.range,DAMAGE_MAGICAL) end
  298.  
  299.     AddTickCallback(function() self:OnTick() end)
  300.     AddDrawCallback(function() self:OnDraw() end)
  301.     AddProcessSpellCallback(function(unit, spell) self:OnProcessSpell(unit, spell) end)
  302. end
  303.  
  304. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  305.  
  306. function Malphite:LoadMenu()
  307.  
  308.     self:LoadMainMenu()
  309.     self:LoadDrawMenu()
  310.  
  311. end
  312. function Malphite:LoadMainMenu()
  313.     mainmenu.combo:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  314.     mainmenu.combo:addParam("useW", "Use W", SCRIPT_PARAM_ONOFF, true)
  315.     mainmenu.combo:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, true)
  316.     mainmenu.combo:addParam("useR", "Use R", SCRIPT_PARAM_ONOFF, true)
  317.     mainmenu.combo:addParam("line", "", SCRIPT_PARAM_INFO, "")
  318.     mainmenu.combo:addParam("count", "Use R on", SCRIPT_PARAM_LIST, 1, { "1+ target", "2+ targets", "3+ targets", "4+ targets", "5+ targets" })
  319.     mainmenu.combo:addParam("line", "", SCRIPT_PARAM_INFO, "")
  320.     mainmenu.combo:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true)
  321.  
  322.     mainmenu.harass:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  323.     mainmenu.harass:addParam("useW", "Use W", SCRIPT_PARAM_ONOFF, false)
  324.     mainmenu.harass:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, true)
  325.     mainmenu.harass:addParam("line", "", SCRIPT_PARAM_INFO, "")
  326.     mainmenu.harass:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true)
  327.     mainmenu.harass:addParam("line", "", SCRIPT_PARAM_INFO, "")
  328.     mainmenu.harass:addParam("mana", "Dont Harass if Mana < X %", SCRIPT_PARAM_SLICE, 0, 0, 100)
  329.  
  330.     mainmenu.lasthit:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  331.     mainmenu.lasthit:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, false)
  332.     mainmenu.lasthit:addParam("line", "", SCRIPT_PARAM_INFO, "")
  333.     mainmenu.lasthit:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true)
  334.     mainmenu.lasthit:addParam("line", "", SCRIPT_PARAM_INFO, "")
  335.     mainmenu.lasthit:addParam("mana", "Dont LastHit if Mana < X %", SCRIPT_PARAM_SLICE, 0, 0, 100)
  336.  
  337.     mainmenu.laneclear:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  338.     mainmenu.laneclear:addParam("useW", "Use W", SCRIPT_PARAM_ONOFF, true)
  339.     mainmenu.laneclear:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, true)
  340.     mainmenu.laneclear:addParam("line", "", SCRIPT_PARAM_INFO, "")
  341.     mainmenu.laneclear:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true)
  342.     mainmenu.laneclear:addParam("line", "", SCRIPT_PARAM_INFO, "")
  343.     mainmenu.laneclear:addParam("mana", "Dont LaneClear if Mana < X %", SCRIPT_PARAM_SLICE, 0, 0, 100)
  344.  
  345.     mainmenu.jungleclear:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  346.     mainmenu.jungleclear:addParam("useW", "Use W", SCRIPT_PARAM_ONOFF, true)
  347.     mainmenu.jungleclear:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, true)
  348.     mainmenu.jungleclear:addParam("line", "", SCRIPT_PARAM_INFO, "")
  349.     mainmenu.jungleclear:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true)
  350.     mainmenu.jungleclear:addParam("line", "", SCRIPT_PARAM_INFO, "")
  351.     mainmenu.jungleclear:addParam("mana", "Dont JungleClear if Mana < X %", SCRIPT_PARAM_SLICE, 0, 0, 100)
  352.  
  353.     mainmenu.flee:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  354.     mainmenu.flee:addParam("useW", "Use W", SCRIPT_PARAM_ONOFF, true)
  355.     mainmenu.flee:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, true)
  356.     mainmenu.flee:addParam("line", "", SCRIPT_PARAM_INFO, "")
  357.     mainmenu.flee:addParam("useItems", "Use Items", SCRIPT_PARAM_ONOFF, true)
  358.  
  359.     mainmenu.ks:addParam("useQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
  360.     mainmenu.ks:addParam("useE", "Use E", SCRIPT_PARAM_ONOFF, true)
  361.     mainmenu.ks:addParam("useR", "Use R", SCRIPT_PARAM_ONOFF, false)
  362.  
  363.     mainmenu:addSubMenu("Auto Interruptions", "inter")
  364.         mainmenu.inter:addParam("activate", "Interrupt Skils with Ultimate.", SCRIPT_PARAM_ONOFF, true)
  365.         mainmenu.inter:addParam("line", "", SCRIPT_PARAM_INFO, "")
  366.         for i, enemy in ipairs(GetEnemyHeroes()) do
  367.             for _, champ in pairs(self.InterruptTable) do
  368.                 if enemy.charName == champ.charName then
  369.                     table.insert(self.ToInterrupt, {charName = champ.charName, spellName = champ.spellName})
  370.                 end
  371.             end
  372.         end
  373.         if #self.ToInterrupt > 0 then
  374.             for _, Inter in pairs(self.ToInterrupt) do
  375.                 mainmenu.inter:addParam(Inter.spellName, "Stop "..Inter.charName.." "..Inter.spellName, SCRIPT_PARAM_ONOFF, true)
  376.             end
  377.         else
  378.             mainmenu.inter:addParam("inter3", "No supported skills to interupt.", SCRIPT_PARAM_INFO, "")
  379.         end
  380. end
  381. function Malphite:LoadDrawMenu()
  382.     drawmenu.ks:addParam("activate1", "Draw Q KS", SCRIPT_PARAM_ONOFF, true)
  383.     drawmenu.ks:addParam("colour1", "Colour Q KS", SCRIPT_PARAM_COLOR, {255,84,84,84})
  384.     drawmenu.ks:addParam("line", "", SCRIPT_PARAM_INFO, "")
  385.     drawmenu.ks:addParam("activate2", "Draw E KS", SCRIPT_PARAM_ONOFF, true)
  386.     drawmenu.ks:addParam("colour2", "Colour E KS", SCRIPT_PARAM_COLOR, {255,172,86,86})
  387.     drawmenu.ks:addParam("line", "", SCRIPT_PARAM_INFO, "")
  388.     drawmenu.ks:addParam("activate3", "Draw R KS", SCRIPT_PARAM_ONOFF, true)
  389.     drawmenu.ks:addParam("colour3", "Colour R KS", SCRIPT_PARAM_COLOR, {255,255,0,0})
  390.  
  391.     drawmenu:addSubMenu("Farm", "farm")
  392.         drawmenu.farm:addParam("activate1", "Draw Circle if Minion killable", SCRIPT_PARAM_LIST, 2, { "Never", "OnKeyDown", "Always" })
  393.         drawmenu.farm:addParam("colour1", "Circle Color", SCRIPT_PARAM_COLOR, {255, 230, 230, 230})
  394.         drawmenu.farm:addParam("line", "", SCRIPT_PARAM_INFO, "")
  395.         drawmenu.farm:addParam("info", "Set SAME keys as your Orbwalker!", SCRIPT_PARAM_INFO, "")
  396.         drawmenu.farm:addParam("key1", "Freeze", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("X"))
  397.         drawmenu.farm:addParam("key2", "Mixed Mode", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("C"))
  398.         drawmenu.farm:addParam("key3", "Laneclear", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
  399.         drawmenu.farm:addParam("key4", "Jungleclear", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
  400. end
  401.  
  402. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  403.  
  404. function Malphite:OnTick()
  405.  
  406.     if myHero.dead then return end
  407.    
  408.     self.ts:update()
  409.     target = self.ts.target
  410.  
  411.     self.EnemyMinionManager:update()
  412.     self.JungleMinionManager:update()
  413.  
  414.     self:Combo()
  415.     self:Harass()
  416.     self:LastHit()
  417.     self:LaneClear()
  418.     self:JungleClear()
  419.     self:Flee()
  420.     self:Killsteal()
  421.  
  422. end
  423.  
  424. function Malphite:Combo()
  425.     if mainmenu.combo.activate and target then
  426.         if mainmenu.combo.useQ then
  427.             print("CastQ")
  428.             self:CastQ(target)
  429.         end
  430.         if mainmenu.combo.useW then
  431.             print("CastW")
  432.             self:CastW(target)
  433.         end
  434.         if mainmenu.combo.useE then
  435.             print("CastE")
  436.             self:CastE(target)
  437.         end
  438.         if mainmenu.combo.useR then
  439.             print("CastR")
  440.             self:CastR(target)
  441.         end
  442.     end
  443. end
  444. function Malphite:Harass()
  445.     if mainmenu.harass.activate and not self:manaharass() and target then
  446.         if mainmenu.harass.useQ then
  447.             self:CastQ(target)
  448.         end
  449.         if mainmenu.harass.useW then
  450.             self:CastW(target)
  451.         end
  452.         if mainmenu.harass.useE then
  453.             self:CastE(target)
  454.         end
  455.     end
  456. end
  457. function Malphite:LastHit()
  458.     for i, minion in pairs(self.EnemyMinionManager.objects) do
  459.         if mainmenu.lasthit.activate and not self:manalasthit() and minion and GetDistance(minion, myHero) > AArange then
  460.             if mainmenu.lasthit.useQ then
  461.                 if getDmg("Q",minion,myHero) > minion.health and not minion.dead then
  462.                     self:CastQ(minion)
  463.                 end
  464.             end
  465.             if mainmenu.lasthit.useE then
  466.                 if getDmg("E",minion,myHero) > minion.health and not minion.dead then
  467.                     self:CastE(minion)
  468.                 end
  469.             end
  470.         end
  471.     end
  472. end
  473. function Malphite:LaneClear()
  474.     for i, minion in pairs(self.EnemyMinionManager.objects) do
  475.         if mainmenu.laneclear.activate and not self:manalaneclear() and minion then
  476.             if mainmenu.laneclear.useQ then
  477.                 if getDmg("Q",minion,myHero) > minion.health and not minion.dead then
  478.                     self:CastQ(minion)
  479.                 end
  480.             end
  481.             if mainmenu.laneclear.useW then
  482.                 self:CastW(minion)
  483.             end
  484.             if mainmenu.laneclear.useE then
  485.                 if getDmg("E",minion,myHero) > minion.health and not minion.dead then
  486.                     self:CastE(minion)
  487.                 end
  488.             end
  489.         end
  490.     end
  491. end
  492. function Malphite:JungleClear()
  493.     for i, minion in pairs(self.EnemyMinionManager.objects) do
  494.         if mainmenu.jungleclear.activate and not self:manajungleclear() and minion then
  495.             if mainmenu.jungleclear.useQ then
  496.                 self:CastQ(minion)
  497.             end
  498.             if mainmenu.jungleclear.useW then
  499.                 self:CastW(minion)
  500.             end
  501.             if mainmenu.jungleclear.useE then
  502.                 self:CastE(minion)
  503.             end
  504.         end
  505.     end
  506. end
  507. function Malphite:Flee()
  508.     if mainmenu.flee.FleeKey then
  509.         if mainmenu.flee.mouse then
  510.             myHero:MoveTo(mousePos.x, mousePos.z)
  511.         end
  512.         for i, minion in pairs(self.EnemyMinionManager.objects) do
  513.             if target and minion or target then
  514.                 if mainmenu.flee.useQ then
  515.                     self:CastQ(target)
  516.                 end
  517.                 if mainmenu.flee.useW then
  518.                     self:CastW(target)
  519.                 end
  520.                 if mainmenu.flee.useE then
  521.                     self:CastE(target)
  522.                 end
  523.             elseif minion and not target then
  524.                 if mainmenu.flee.useQ then
  525.                     self:CastQ(minion)
  526.                 end
  527.                 if mainmenu.flee.useW then
  528.                     self:castW(minion)
  529.                 end        
  530.             end
  531.         end
  532.     end
  533. end
  534. function Malphite:Killsteal()
  535.     for i, enemy in pairs(GetEnemyHeroes()) do
  536.         if enemy and not enemy.dead then
  537.             if mainmenu.ks.useQ then
  538.                 if GetDistance(enemy) <= self.Q.range then
  539.                     if getDmg("Q",enemy,myHero) > enemy.health then
  540.                         CastSpell(_Q, enemy)
  541.                     end
  542.                 end
  543.             end
  544.             if mainmenu.ks.useE then
  545.                 if GetDistance(enemy) <= self.E.range then
  546.                     if getDmg("E",enemy,myHero) > enemy.health then
  547.                         CastSpell(_E)
  548.                     end
  549.                 end
  550.             end
  551.             if mainmenu.ks.useR then
  552.                 if GetDistance(enemy) <= self.R.range then
  553.                     if getDmg("R",enemy,myHero) > enemy.health then
  554.                         CastSpell(_R, enemy.x, enemy.z)
  555.                     end
  556.                 end
  557.             end
  558.         end
  559.     end
  560. end
  561.  
  562. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  563.  
  564. function Malphite:OnDraw() 
  565.     for i, enemy in pairs(GetEnemyHeroes()) do
  566.         if enemy and not enemy.dead then
  567.             if GetDistance(enemy) <= 2000 then
  568.                 if Qready and getDmg("Q", enemy, myHero) > enemy.health then
  569.                     if drawmenu.ks.activate1 then
  570.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 250, TARGB(drawmenu.ks.colour1))
  571.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 253, TARGB(drawmenu.ks.colour1))
  572.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 247, TARGB(drawmenu.ks.colour1))
  573.                     end
  574.                 end
  575.                 if Eready and getDmg("E",enemy,myHero) > enemy.health then
  576.                     if drawmenu.ks.activate2 then
  577.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 247, TARGB(drawmenu.ks.colour2))
  578.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 250, TARGB(drawmenu.ks.colour2))
  579.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 253, TARGB(drawmenu.ks.colour2))
  580.                     end
  581.                 end
  582.                 if Rready and getDmg("R",enemy,myHero) > enemy.health then
  583.                     if drawmenu.ks.activate3 then
  584.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 247, TARGB(drawmenu.ks.colour3))
  585.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 250, TARGB(drawmenu.ks.colour3))
  586.                         DrawCircle2(enemy.x, enemy.y, enemy.z, 253, TARGB(drawmenu.ks.colour3))
  587.                     end
  588.                 end
  589.             end
  590.         end
  591.     end
  592. end
  593.  
  594. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  595.  
  596. function Malphite:CastQ(target)
  597.     if Qready and ValidTarget(target, self.Q.range) then
  598.         if VIP_USER and mainmenu.extra.packetCast then
  599.             Packet("S_CAST", {spellId = _Q, targetNetworkId = target.networkID}):send()
  600.         else
  601.             CastSpell(_Q, target)
  602.         end
  603.     end
  604. end
  605. function Malphite:CastW(target)
  606.     if Wready and ValidTarget(target, self.E.range) then
  607.         if VIP_USER and mainmenu.extra.packetCast then
  608.             Packet("S_CAST", {spellId = _W}):send()
  609.         else
  610.             CastSpell(_W)
  611.         end
  612.     end
  613. end
  614. function Malphite:CastE(target)
  615.     if Eready and ValidTarget(target, self.E.range) then
  616.         if VIP_USER and mainmenu.extra.packetCast then
  617.             Packet("S_CAST", {spellId = _E}):send()
  618.         else
  619.             CastSpell(_E)
  620.         end
  621.     end
  622. end
  623. function Malphite:CastR(target)
  624. end
  625. function Malphite:CastQ(minion)
  626.     if Qready and ValidTarget(minion, self.Q.range) then
  627.         if VIP_USER and mainmenu.extra.packetCast then
  628.             Packet("S_CAST", {spellId = _Q, targetNetworkId = minion.networkID}):send()
  629.         else
  630.             CastSpell(_Q, minion)
  631.         end
  632.     end
  633. end
  634. function Malphite:CastW(minion)
  635.     if Wready and ValidTarget(minion, self.E.range) then
  636.         if VIP_USER and mainmenu.extra.packetCast then
  637.             Packet("S_CAST", {spellId = _W}):send()
  638.         else
  639.             CastSpell(_W)
  640.         end
  641.     end
  642. end
  643. function Malphite:CastE(minion)
  644.     if Eready and ValidTarget(minion, self.E.range) then
  645.         if VIP_USER and mainmenu.extra.packetCast then
  646.             Packet("S_CAST", {spellId = _E}):send()
  647.         else
  648.             CastSpell(_E)
  649.         end
  650.     end
  651. end
  652. function Malphite:OnProcessSpell(unit, spell)
  653.     if mainmenu.inter.activate and Rready then
  654.         if #self.ToInterrupt > 0 then
  655.             for _, Inter in pairs(self.ToInterrupt) do
  656.                 if spell and spell.name == Inter.spellName and unit.team ~= myHero.team then
  657.                     if mainmenu.inter[Inter.spellName] and ValidTarget(unit, self.R.range) then
  658.                         CastSpell(_R, unit.visionPos.x, unit.visionPos.z)
  659.                     end
  660.                 end
  661.             end
  662.         end
  663.     end
  664. end
  665. function Malphite:manaharass()
  666.     return myHero.mana < (myHero.maxMana * ( mainmenu.harass.mana / 100))
  667. end
  668. function Malphite:manalasthit()
  669.      return myHero.mana < (myHero.maxMana * ( mainmenu.lasthit.mana / 100))
  670. end
  671. function Malphite:manalaneclear()
  672.      return myHero.mana < (myHero.maxMana * ( mainmenu.laneclear.mana / 100))
  673. end
  674. function Malphite:manajungleclear()
  675.      return myHero.mana < (myHero.maxMana * ( mainmenu.jungleclear.mana / 100))
  676. end
  677.  
  678.  
  679. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  680. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  681. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  682. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  683. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  684. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  685. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  686. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  687. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  688. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  689.  
  690. class "Irelia"
  691.  
  692. function Irelia:__init()
  693. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement