--[[ JAX the Rapist by jbman new Menu, AutoUlti added (rather copy-pasted) by ArthasDK from HeX's Wukong Combo and extragoz scripts ]] if myHero.charName == "Jax" then PrintChat(" >> Jax the Rapist loaded! With Items and Menu") --require "AllClass" --SETTINGS --local showRanges = true local focusedTarget = true local RefreshRate = 50 local targetCircle = 100 --Attack Cast local lastBasicAttack = 0 local swingDelay = 0.15 local swing = 0 -- Target Prediction local range = 710 local ETriggerRange = 600 local targetSelected = true --[[ Code ]] local ts = TargetSelector(TARGET_LOW_HP, range,DAMAGE_PHYSICAL) function OnProcessSpell(unit, spell) if unit.isMe and (spell.name:find("BasicAttack" or "CritAttack") ~= nil) then swing = 1 lastBasicAttack = os.clock() end end -- SCRIPT--- --arthasdk edit start local BRKSlot, HXGSlot, BWCSlot, TiaSlot, RavHSlot, RanduinSlot = nil, nil, nil, nil, nil, nil local ignite = nil function GetEnemyChampsCount(range) local count=0 for i=1, heroManager.iCount do local target = heroManager:GetHero(i) if target ~= nil and target.dead == false and target.team ~= player.team and target.visible == true and player:GetDistance(target) < range then--385 then count=count+1 end end return count end function OnLoad() local maxEnemyChamps=0 for i=1, heroManager.iCount do local champ = heroManager:GetHero(i) if champ.team ~= player.team then maxEnemyChamps=maxEnemyChamps+1 end end JaxMenu = scriptConfig("Jax SBTW by jbman", "jaxcombo") JaxMenu:addParam("scriptActive", "Combo", SCRIPT_PARAM_ONKEYDOWN, false, 32) JaxMenu:addParam("drawcirclesSelf", "Draw Circles(Self)", SCRIPT_PARAM_ONOFF, false) JaxMenu:addParam("useUlt", "Use Ultimate in Combo", SCRIPT_PARAM_ONOFF, false) JaxMenu:addParam("minChamps", "Min. Champ for Auto Ulti", SCRIPT_PARAM_SLICE, 2, 1, 5, 0) JaxMenu:addParam("autoignite", "Auto Ignite", SCRIPT_PARAM_ONOFF, true) JaxMenu:permaShow("scriptActive") ts.name = "Jax" JaxMenu:addTS(ts) if myHero:GetSpellData(SUMMONER_1).name:find("SummonerDot") then ignite = SUMMONER_1 elseif myHero:GetSpellData(SUMMONER_2).name:find("SummonerDot") then ignite = SUMMONER_2 end end --arthasdk edit end function OnTick() if myHero.dead then return end if os.clock() > lastBasicAttack + 0.5 then swing = 0 end --arthasdk edit end BRKSlot, HXGSlot, BWCSlot = GetInventorySlotItem(3153), GetInventorySlotItem(3146), GetInventorySlotItem(3144) TiamatSlot, RavenousHydraSlot, RanduinSlot = GetInventorySlotItem(3077), GetInventorySlotItem(3074), GetInventorySlotItem(3143) DFGREADY = (DFGSlot ~= nil and myHero:CanUseSpell(DFGSlot) == READY) HXGREADY = (HXGSlot ~= nil and myHero:CanUseSpell(HXGSlot) == READY) BWCREADY = (BWCSlot ~= nil and myHero:CanUseSpell(BWCSlot) == READY) BRKREADY = (BRKSlot ~= nil and myHero:CanUseSpell(BRKSlot) == READY) TIAREADY = (TiamatSlot ~= nil and myHero:CanUseSpell(TiamatSlot) == READY) RHREADY = (RavenousHydraSlot ~= nil and myHero:CanUseSpell(RavenousHydraSlot) == READY) ROREADY = (RanduinSlot ~= nil and myHero:CanUseSpell(RanduinSlot) == READY) --arthasdk edit end ts:update() if IsKeyDown(88) then if swing == 0 and ValidTarget(ts.target, range) then myHero:Attack(ts.target) CastSpell(_Q, ts.target) end if swing == 1 then if ValidTarget(ts.target, range) and myHero:CanUseSpell(_Q) == READY and os.clock() - lastBasicAttack > swingDelay then CastSpell(_Q, ts.target) elseif myHero:CanUseSpell(_W) == READY and player:CanUseSpell(_Q) == COOLDOWN and os.clock() - lastBasicAttack > swingDelay then CastSpell(_W) end end end if IsKeyDown(90) then if ValidTarget(ts.target, range) then myHero:Attack(ts.target) end if swing == 1 then if ValidTarget(ts.target, range) and myHero:CanUseSpell(_Q) == READY and os.clock() - lastBasicAttack > swingDelay then CastSpell(_Q) elseif myHero:CanUseSpell(_W) == READY and player:CanUseSpell(_Q) == COOLDOWN and os.clock() - lastBasicAttack > swingDelay then CastSpell(_W) end end end --[[if IsKeyDown(32) then --SBTW part if swing == 0 and ValidTarget(ts.target, range) then myHero:Attack(ts.target) CastSpell(_Q, ts.target) if swing == 0 and ValidTarget(ts.target, ETriggerRange) and player:CanUseSpell(_E) == READY then CastSpell(_E) end end if swing == 1 then if myHero:CanUseSpell(_E) == READY and os.clock() - lastBasicAttack > swingDelay then CastSpell(_E) elseif myHero:CanUseSpell(_W) == READY and player:CanUseSpell(_E) == COOLDOWN and os.clock() - lastBasicAttack > swingDelay then CastSpell(_W) end end end]] if JaxMenu.scriptActive and ts.target ~= nil then if DFGREADY then CastSpell(DFGSlot, ts.target) end if HXGREADY then CastSpell(HXGSlot, ts.target) end if BWCREADY then CastSpell(BWCSlot, ts.target) end if BRKREADY then CastSpell(BRKSlot, ts.target) end if GetDistance(ts.target) < 400 then if TIAREADY then CastSpell(TiamatSlot) end if RHREADY then CastSpell(RavenousHydraSlot) end end if GetDistance(ts.target) < 500 then if ROREADY then CastSpell(RanduinSlot) end end local enemyChampCount=GetEnemyChampsCount(range) if JaxMenu.useUlt and ( enemyChampCount>=JaxMenu.minChamps or player.Health<=.7*player.maxHealth ) and player:CanUseSpell(_R) == READY then CastSpell(_R) end if swing == 0 and ValidTarget(ts.target, range) then myHero:Attack(ts.target) CastSpell(_Q, ts.target) if swing == 0 and ValidTarget(ts.target, ETriggerRange) and player:CanUseSpell(_E) == READY then CastSpell(_E) end end if swing == 1 then if myHero:CanUseSpell(_E) == READY and os.clock() - lastBasicAttack > swingDelay then CastSpell(_E) elseif myHero:CanUseSpell(_W) == READY and player:CanUseSpell(_E) == COOLDOWN and os.clock() - lastBasicAttack > swingDelay then CastSpell(_W) end end end --arthasdk copy pasted code if ignite ~= nil and myHero:CanUseSpell(ignite) == READY then if IREADY then local ignitedmg = 0 for j = 1, heroManager.iCount, 1 do local enemyhero = heroManager:getHero(j) if ValidTarget(enemyhero,600) then ignitedmg = 50 + 20 * myHero.level if enemyhero.health <= (ignitedmg - 50) then CastSpell(ignite, enemyhero) end end end end end --arthasdk copy pasted code end function OnDraw() if myHero.dead then return end if focusedTarget then if ValidTarget(ts.target) then DrawCircle(ts.target.x, ts.target.y, ts.target.z, targetCircle, 0xFFFF0000) end end --[[if showRanges then if myHero:CanUseSpell(_Q) == READY then DrawCircle(myHero.x, myHero.y, myHero.z, range, 0xFF00FF00) end end]] if JaxMenu.drawcirclesSelf then if myHero:CanUseSpell(_Q) == READY then DrawCircle(myHero.x, myHero.y, myHero.z, range, 0xFF00FF00) end end end end