Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if myHero.charName ~= 'Shen' then return end
- assert(load(Base64Decode("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"), nil, "bt", _ENV))() ScriptStatus("XKNLRQORKLR")
- --Changelog 1.4 Added check enemies in range count before ult
- require "SxOrbWalk"
- require "VPrediction"
- require "SourceLib"
- local Q = {range = 475, IsReady = function() return myHero:CanUseSpell(_Q) == READY end}
- local W = {range = 150, IsReady = function() return myHero:CanUseSpell(_W) == READY end}
- local E = {range = 600, delay = 0.25, speed = 1200, width = 40,IsReady = function() return myHero:CanUseSpell(_E) == READY end}
- local R = {range = 20000, IsReady = function() return myHero:CanUseSpell(_R) == READY end}
- local ignite = nil
- local iDmg = 0
- local target = nil
- local ts
- local ts = TargetSelector(TARGET_LESS_CAST_PRIORITY, 1000, DAMAGE_PHYSICAL, true)
- local lastAttack, lastAttackCD, lastWindUpTime = 0, 0, 0
- local ADC, lowguy
- function GetCustomTarget()
- ts:update()
- if _G.AutoCarry and ValidTarget(_G.AutoCarry.Crosshair:GetTarget()) then return _G.AutoCarry.Crosshair:GetTarget() end
- if not _G.Reborn_Loaded then return ts.target end
- return ts.target
- end
- function OnLoad()
- PrintChat("<font color=\"#00FF00\">Shen by Fukdapolice.</font>")
- IgniteCheck()
- FLoadLib()
- VP = VPrediction(true)
- Minions = minionManager(MINION_ENEMY, E.range, myHero, MINION_SORT_MAXHEALTH_ASC)
- end
- function OnTick()
- target = GetCustomTarget()
- Checks()
- save()
- end
- function OnDraw()
- if HazMenu.Draw.drawq then
- DrawCircle(myHero.x,myHero.y,myHero.z,475,0xFFFF0000)
- end
- if HazMenu.Draw.draww then
- DrawCircle(myHero.x,myHero.y,myHero.z,150,0xFFFF0000)
- end
- if HazMenu.Draw.drawe then
- DrawCircle(myHero.x,myHero.y,myHero.z,600,0xFFFF0000)
- end
- if HazMenu.Draw.drawr then
- DrawCircle(myHero.x,myHero.y,myHero.z,20000,0xFFFF0000)
- end
- end
- function Checks()
- IREADY = (ignite ~= nil and myHero:CanUseSpell(ignite) == READY)
- QREADY = (myHero:CanUseSpell(_Q) == READY)
- WREADY = (myHero:CanUseSpell(_W) == READY)
- EREADY = (myHero:CanUseSpell(_E) == READY)
- RREADY = (myHero:CanUseSpell(_R) == READY)
- if ValidTarget(target) then
- if HazMenu.Misc.KS then KS(target) end
- if HazMenu.Misc.Ignite then AutoIgnite(target) end
- end
- if HazMenu.combokey then
- Combo()
- end
- if HazMenu.harasskey then
- Poke()
- end
- if HazMenu.farmkey then
- Farm()
- end
- end
- function IgniteCheck()
- 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
- function FLoadLib()
- FMenu()
- end
- function FMenu()
- HazMenu = scriptConfig("Shen", "Shen")
- HazMenu:addParam("combokey", "Combo key(Space)", SCRIPT_PARAM_ONKEYDOWN, false, 32)
- HazMenu:addParam("harasskey", "Harass key(C)", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("C"))
- HazMenu:addTS(ts)
- HazMenu:addSubMenu("Combo", "Combo")
- HazMenu.Combo:addParam("comboQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Combo:addParam("comboW", "Use W", SCRIPT_PARAM_ONOFF, false)
- HazMenu.Combo:addParam("comboE", "Use E", SCRIPT_PARAM_ONOFF, true)
- HazMenu:addSubMenu("Harass", "Harass")
- HazMenu.Harass:addParam("harassQ", "Use Q", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Harass:addParam("harassE", "Use E", SCRIPT_PARAM_ONOFF, true)
- HazMenu:addSubMenu("Misc", "Misc")
- HazMenu.Misc:addParam("KS", "KillSteal with Q", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Misc:addParam("Ignite", "Use Auto Ignite", SCRIPT_PARAM_ONOFF, true)
- HazMenu:addSubMenu("Ultimate", "Ultimate")
- HazMenu.Ultimate:addParam("Enabled", "AutoUlti on low ally ",SCRIPT_PARAM_ONOFF, true)
- HazMenu:addSubMenu("Draw","Draw")
- HazMenu.Draw:addParam("drawq", "Draw Q", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Draw:addParam("draww", "Draw W", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Draw:addParam("drawe", "Draw E", SCRIPT_PARAM_ONOFF, true)
- HazMenu.Draw:addParam("drawr", "Draw R", SCRIPT_PARAM_ONOFF, true)
- if _G.Reborn_Loaded then
- DelayAction(function()
- PrintChat("<font color = \"#FFFFFF\">[Shen] </font><font color = \"#FF0000\">SAC Status:</font> <font color = \"#FFFFFF\">Successfully integrated.</font> </font>")
- HazMenu:addParam("SACON","[Shen] SAC:R support is active.", 5, "")
- isSAC = true
- end, 10)
- elseif not _G.Reborn_Loaded then
- PrintChat("<font color = \"#FFFFFF\">[Shen] </font><font color = \"#FF0000\">Orbwalker not found:</font> <font color = \"#FFFFFF\">SxOrbWalk integrated.</font> </font>")
- HazMenu:addSubMenu("Orbwalker", "SxOrb")
- SxOrb:LoadToMenu(HazMenu.SxOrb)
- isSX = true
- end
- HazMenu:permaShow("combokey")
- HazMenu:permaShow("harasskey")
- end
- function KS(enemy) -- cambiare o aggiunger per ksare
- if Q.IsReady() and getDmg("Q", enemy, myHero) > enemy.health then
- if GetDistance(enemy) <= Q.range and HazMenu.Misc.KS then --prende la distanza da Q = 600
- CastSpell(_Q, enemy)
- end
- end
- end
- function AutoIgnite(enemy)
- iDmg = ((IREADY and getDmg("IGNITE", enemy, myHero)) or 0)
- if enemy.health <= iDmg and GetDistance(enemy) <= 600 and ignite ~= nil
- then
- if IREADY then CastSpell(ignite, enemy) end
- end
- end
- function Combo()
- if ValidTarget(target) then --Qui meterci la combo desiderata
- if E.IsReady() and HazMenu.Combo.comboE then
- local CastPosition, HitChance, CastPos = VP:GetLineCastPosition(target, E.delay, E.width, E.range, E.speed, myHero, false)
- if HitChance >= 2 and GetDistance(CastPosition) <= E.range and E.IsReady() then
- CastSpell(_E, CastPosition.x, CastPosition.z)
- end
- end
- if QREADY and HazMenu.Combo.comboQ then
- if GetDistance(target) <= Q.range then
- CastSpell(_Q, target)
- end
- end
- if W.IsReady() and HazMenu.Combo.comboW then
- if GetDistance(target) <= W.range then
- CastSpell(_W)
- end
- end
- end
- end
- function Poke()
- if ValidTarget(target) then --Qui facci la c poke
- if E.IsReady() and HazMenu.Harass.harassE then
- local CastPosition, HitChance, CastPos = VP:GetLineCastPosition(target, E.delay, E.width, E.range, E.speed, myHero, false)
- if HitChance >= 2 and GetDistance(CastPosition) <= E.range and E.IsReady() then
- CastSpell(_E, CastPosition.x, CastPosition.z)
- end
- end
- if Q.IsReady() and HazMenu.Harass.harassQ then
- if GetDistance(target) <= Q.range then
- CastSpell(_Q, target)
- end
- end
- end
- end
- local mostDamage = 0
- local lowestHealth = math.huge
- function save()
- if HazMenu.Ultimate.Enabled and R.IsReady then
- for i=1, heroManager.iCount do
- local ally = heroManager:getHero(i)
- if ally.health < lowestHealth and ally.team ~= TEAM_ENEMY and GetDistance(myHero, ally) < 20000 and R.IsReady then --
- lowGuy = ally
- lowestHealth = ally.health
- end
- end
- if R.IsReady and HazMenu.Ultimate.Enabled and lowGuy ~= nil and lowGuy.maxHealth * .16 >= lowGuy.health then
- if CountEnemyHeroInRange(lowguy) >= 1 then
- CastSpell(_R, lowGuy)
- end
- end
- end
- end
- function OnProcessSpell(object, spell)
- if object == myHero then
- if spell.name:lower():find("attack") then
- lastAttack = GetTickCount() - GetLatency()/2
- lastWindUpTime = spell.windUpTime*1000
- lastAttackCD = spell.animationTime*1000
- end
- end
- end
- function timeToShoot()
- return (GetTickCount() + GetLatency()/2 > lastAttack + lastAttackCD)
- end
- function CountEnemyHeroInRange(range)
- local enemyInRange = 0
- for i = 1, heroManager.iCount, 1 do
- local hero = heroManager:getHero(i)
- if ValidTarget(hero,range) then
- enemyInRange = enemyInRange + 1
- end
- end
- return enemyInRange
- end
Advertisement
Add Comment
Please, Sign In to add comment