if myHero.charName ~= "Rengar" then return end
local LoLVer = "7.1"
local ScrVer = 6
local function Rengar_Update(data)
if tonumber(data) > ScrVer then
PrintChat("[Shulepin][Rengar] New version found! " .. data)
PrintChat("[Shulepin][Rengar] Downloading update, please wait...")
DownloadFileAsync("https://raw.githubusercontent.com/BluePrinceEB/GoS/master/Rengar.lua", SCRIPT_PATH .. "Rengar.lua", function() PrintChat("[Shulepin][Rengar] Update Complete, please 2x F6!") return end)
else
PrintChat("[Shulepin][Rengar] No updates found!")
end
end
GetWebResultAsync("https://raw.githubusercontent.com/BluePrinceEB/GoS/master/Rengar.version", Rengar_Update)
local UltActive = false
local Dash = false
local Tick = 0
local Config = MenuConfig("Rengar", "Rengar")
local CCType = { [5] = "Stun", [8] = "Taunt", [11] = "Snare", [21] = "Fear", [22] = "Charm", [24] = "Suppression", }
local Skin_Table = { ["Rengar"] = {"Classic", "Headhunter", "Night Hunter", "SSW"} }
Config:SubMenu("P", "Priority Config")
Config.P:DropDown("P", "Prioritize", 1, {"Q","E"})
Config.P:KeyBinding("K", "Priority Switcher", string.byte("T"))
Config:SubMenu("C", "Combo")
Config.C:Boolean("I", "Use Items", true)
Config.C:Boolean("Q", "Use Q", true)
Config.C:Boolean("W", "Use W", true)
Config.C:Boolean("E", "Use E", true)
Config:SubMenu("H", "Harass")
Config.H:Boolean("Q", "Use Q", true)
Config.H:Boolean("W", "Use W", true)
Config.H:Boolean("E", "Use E", true)
Config:SubMenu("L", "LastHit")
Config.L:Boolean("Q", "Use Q", true)
Config:SubMenu("J", "Clear")
Config.J:Boolean("Q", "Use Q", true)
Config.J:Boolean("W", "Use W", true)
Config.J:Boolean("E", "Use E", true)
Config:SubMenu("_C", "Cleanse")
DelayAction(function()
for n,m in pairs(CCType) do
Config._C:Boolean(n,"Cleanse "..m, true)
end
end, 0.1)
Config:SubMenu("Skin", "Skin Changer")
Config.Skin:DropDown('skin', myHero.charName.. " Skins", 1, Skin_Table[myHero.charName],
function(model) HeroSkinChanger(myHero, model - 1) print(Skin_Table[myHero.charName][model] .." ".. myHero.charName .. " Loaded!") end, true)
Config:SubMenu("D", "Draw Config")
Config.D:Boolean("HP", "Draw Damage Indicator", true)
Config.D:Boolean("Q", "Draw Q Range", true)
Config.D:Boolean("W", "Draw W Range", true)
Config.D:Boolean("E", "Draw E Range", true)
local Q = { delay = .25, speed = 1500 , width = 70 , range = 525 }
local W = { delay = .25, speed = math.huge , width = nil , range = 500 }
local E = { delay = .25, speed = 1500 , width = 70 , range = 1000 }
local R = { delay = .25, speed = math.huge , width = nil , range = 500 }
local function Mode()
if IOW_Loaded then
return IOW:Mode()
elseif DAC_Loaded then
return DAC:Mode()
elseif PW_Loaded then
return PW:Mode()
elseif GoSWalkLoaded and GoSWalk.CurrentMode then
return ({"Combo", "Harass", "LaneClear", "LastHit"})[GoSWalk.CurrentMode+1]
elseif AutoCarry_Loaded then
return DACR:Mode()
elseif _G.SLW_Loaded then
return SLW:Mode()
elseif EOW_Loaded then
return EOW:Mode()
end
return ""
end
local function Rengar_CalcDmg(i, target)
local dmg={
["Q"] = 20+20*GetCastLevel(myHero, _Q)+GetBonusDmg(myHero)*((20+10*GetCastLevel(myHero, _Q))/100),
["QE"] = 104+16*GetLevel(myHero)+GetBonusDmg(myHero)*2.4,
["W"] = 20+30*GetCastLevel(myHero, _W)+GetBonusAP(myHero)*.8,
["WE"] = 40+10*GetLevel(myHero),
["E"] = 0+50*GetCastLevel(myHero, _E)+GetBonusDmg(myHero)*.7,
["EE"] = 35+15*GetLevel(myHero)
}
return dmg[i]
end
local function Rengar_WndMsg(msg, key)
if msg == WM_LBUTTONDOWN and not myHero.dead then
for _, Enemy in ipairs(GetEnemyHeroes()) do
if GetDistance(GetMousePos(), Enemy) <= 150 and ValidTarget(Enemy) and not Enemy.dead then
if Focus ~= Enemy then
Focus = Enemy
print("Target Selected: "..Enemy.charName)
else
Focus = nil
print("Target Unselected: "..Enemy.charName)
end
end
end
end
end
local function Rengar_GetTarget(range)
local SelectedTarget = Focus
if SelectedTarget ~= nil then
if SelectedTarget.type == myHero.type and SelectedTarget.team ~= myHero.team and ValidTarget(SelectedTarget, range+100) and not SelectedTarget.dead then
return SelectedTarget
end
end
local GetTarget, LC = nil, 0
for i = 1, #GetEnemyHeroes() do
local Enemy = GetEnemyHeroes()[i]
if ValidTarget(Enemy, range) then
local A = (Enemy.armor+100)/100
local K = A*Enemy.health
if K <= LC or LC == 0 then
GetTarget = Enemy
LC = K
end
end
end
return GetTarget
end
local function Rengar_UpdateBuff(unit, buff)
if not unit or not buff then return end
local target = GetCurrentTarget()
if unit.isMe and buff.Name:lower() == "rengarr" then
UltActive = true
end
if unit.isMe and buff.Name == "rengarpassivebuff" then
Dash = true
end
if unit.isMe and CCType[buff.Type] and Config._C[buff.Type]:Value() then
if Ready(_W) and GetCurrentMana(myHero) == 4 then CastSpell(_W) end
end
end
local function Rengar_RemoveBuff(unit, buff)
if unit.isMe and buff.Name:lower() == "rengarr" then
UltActive = false
end
if unit.isMe and buff.Name == "rengarpassivebuff" then
Dash = false
end
end
local function Rengar_GetHPBarPos(enemy)
local barPos = GetHPBarPos(enemy)
local BarPosOffsetX = -50
local BarPosOffsetY = 46
local CorrectionY = 39
local StartHpPos = 31
local StartPos = Vector(barPos.x , barPos.y, 0)
local EndPos = Vector(barPos.x + 108 , barPos.y , 0)
return Vector(StartPos.x, StartPos.y, 0), Vector(EndPos.x, EndPos.y, 0)
end
local function Rengar_DrawLineHPBar(damage, text, unit, team)
if unit.dead or not unit.visible then return end
local p = WorldToScreen(0, Vector(unit.x, unit.y, unit.z))
local thedmg = 0
local line = 2
local linePosA = { x = 0, y = 0 }
local linePosB = { x = 0, y = 0 }
local TextPos = { x = 0, y = 0 }
if damage >= unit.health then
thedmg = unit.health - 1
text = "KILLABLE!"
else
thedmg = damage
text = "Possible Damage"
end
thedmg = math.round(thedmg)
local StartPos, EndPos = Rengar_GetHPBarPos(unit)
local Real_X = StartPos.x + 24
local Offs_X = (Real_X + ((unit.health - thedmg) / unit.maxHealth) * (EndPos.x - StartPos.x - 2))
if Offs_X < Real_X then Offs_X = Real_X end
local mytrans = 350 - math.round(255*((unit.health-thedmg)/unit.maxHealth))
if mytrans >= 255 then mytrans=254 end
local my_bluepart = math.round(400*((unit.health-thedmg)/unit.maxHealth))
if my_bluepart >= 255 then my_bluepart=254 end
if team then
linePosA.x = Offs_X - 24
linePosA.y = (StartPos.y-(30+(line*15)))
linePosB.x = Offs_X - 24
linePosB.y = (StartPos.y+10)
TextPos.x = Offs_X - 20
TextPos.y = (StartPos.y-(30+(line*15)))
else
linePosA.x = Offs_X-125
linePosA.y = (StartPos.y-(30+(line*15)))
linePosB.x = Offs_X-125
linePosB.y = (StartPos.y-15)
TextPos.x = Offs_X-122
TextPos.y = (StartPos.y-(30+(line*15)))
end
DrawLine(linePosA.x, linePosA.y, linePosB.x, linePosB.y , 2, ARGB(mytrans, 255, my_bluepart, 0))
DrawText(tostring(thedmg).." "..tostring(text), 15, TextPos.x, TextPos.y , ARGB(mytrans, 255, my_bluepart, 0))
end
local function Rengar_OnProcessSpellComplete(unit, spell)
if not unit or not spell then return end
if unit.isMe and spell.name:lower():find("attack") and (Mode() == "Combo" or Mode() == "LaneClear") and Config.C.I:Value() then
if GetItemSlot(myHero, 3748) > 0 and Ready(GetItemSlot(myHero,3748)) then
CastSpell(GetItemSlot(myHero,3748))
end
end
end
local function Rengar_Draw()
if Config.D.Q:Value() and Ready(_Q) then DrawCircle(GetOrigin(myHero),Q.range,1,255,ARGB(80,220,220,220)) end
if Config.D.W:Value() and Ready(_W) then DrawCircle(GetOrigin(myHero),W.range,1,255,ARGB(80,220,220,220)) end
if Config.D.E:Value() and Ready(_E) then DrawCircle(GetOrigin(myHero),E.range,1,255,ARGB(80,220,220,220)) end
if not myHero.dead then if Config.P.P:Value() == 1 then DrawText("Prioritize: Q",22,GetHPBarPos(myHero).x,GetHPBarPos(myHero).y+180,GoS.White) else DrawText("Prioritize: E",22,GetHPBarPos(myHero).x,GetHPBarPos(myHero).y+180,GoS.White) end end
for i, Enemy in pairs(GetEnemyHeroes()) do
if not Enemy.dead and Enemy.visible and Config.D.HP:Value() then
local dmg = GetBonusDmg(myHero)+GetBaseDamage(myHero)
if Ready(_Q) and not Enemy.dead then
dmg = dmg + Rengar_CalcDmg("Q", Enemy)
end
if Ready(_Q) and not Enemy.dead and GetCurrentMana(myHero) == 4 then
dmg = dmg + Rengar_CalcDmg("QE", Enemy)
end
if Ready(_W) and not Enemy.dead then
dmg = dmg + Rengar_CalcDmg("W", Enemy)
end
if Ready(_E) and not Enemy.dead then
dmg = dmg + Rengar_CalcDmg("E", Enemy)
end
Rengar_DrawLineHPBar(dmg, "", Enemy, Enemy.team)
end end
local target = Focus
if target == nil or target.dead then return end
if target.type == myHero.type and target.team ~= myHero.team then
DrawCircle(GetOrigin(target),75,1,255,GoS.White)
end
end
local function Rengar_CastQ(target)
if Config.P.P:Value() == 2 and GetCurrentMana(myHero) == 4 then return end
if Ready(_Q) and ValidTarget(target, Q.range) then
local Prediction = GetPredictionForPlayer(myHero,target,GetMoveSpeed(target),Q.speed,Q.delay,Q.range,Q.width,false,true)
if Prediction.HitChance == 1 then CastSkillShot(_Q, Prediction.PredPos) IOW:ResetAA() end
end
end
local function Rengar_CastW(target)
if Ready(_W) and ValidTarget(target, W.range) then
if GetCurrentMana(myHero) == 4 then return end
CastSpell(_W)
end
end
local function Rengar_CastE(target)
if Config.P.P:Value() == 1 and GetCurrentMana(myHero) == 4 then return end
if Ready(_E) and ValidTarget(target, E.range) then
local Prediction = GetPredictionForPlayer(myHero,target,GetMoveSpeed(target),E.speed,E.delay,E.range,E.width,true,true)
if Prediction.HitChance == 1 then CastSkillShot(_E, Prediction.PredPos) end
end
end
local function Rengar_Items()
if Config.C.I:Value() then
if GetItemSlot(myHero, 3142) > 0 and Ready(GetItemSlot(myHero,3142)) and EnemiesAround(myHero, 1000) > 0 then
CastSpell(GetItemSlot(myHero,3142))
end
if GetItemSlot(myHero, 3077) > 0 and Ready(GetItemSlot(myHero,3077)) then
CastSpell(GetItemSlot(myHero,3077))
end
if GetItemSlot(myHero, 3074) > 0 and Ready(GetItemSlot(myHero,3074)) then
CastSpell(GetItemSlot(myHero,3074))
end end
end
local function Rengar_Switch()
if Config.P.K:Value() then
if Tick+200 < GetTickCount() then
if Config.P.P:Value() == 1 then
Config.P.P:Value(2)
elseif Config.P.P:Value() == 2 then
Config.P.P:Value(1)
end
Tick = GetTickCount()
end
end
end
local function Rengar_Combo(target)
if UltActive == true or Dash == true then return end
if Mode() == "Combo" then
if ValidTarget(target, 200) then Rengar_Items() end
if Config.C.Q:Value() then Rengar_CastQ(target) end
if Config.C.W:Value() then Rengar_CastW(target) end
if Config.C.E:Value() then Rengar_CastE(target) end
end
end
local function Rengar_Harass(target)
if UltActive == true or GetCurrentMana(myHero) == 4 then return end
if Mode() == "Harass" then
if Config.H.Q:Value() then Rengar_CastQ(target) end
if Config.H.W:Value() then Rengar_CastW(target) end
if Config.H.E:Value() then Rengar_CastE(target) end
end
end
local function Rengar_LastHit(target)
if UltActive == true then return end
if Mode() == "LastHit" then
if target.team ~= myHero.team and ValidTarget(target, Q.range) and GetCurrentHP(target) < Rengar_CalcDmg("Q", target) then
if Config.L.Q:Value() then CastSkillShot(_Q, target) end
end
end
end
local function Rengar_Clear(target)
if UltActive == true or GetCurrentMana(myHero) == 4 then return end
if Mode() == "LaneClear" then
if target.team ~= myHero.team and ValidTarget(target, E.range) then
if Config.J.Q:Value() then CastSkillShot(_Q, target) end
if Config.J.W:Value() and MinionsAround(myHero, W.range) >= 3 then Rengar_CastW(target) end
if Config.J.E:Value() then CastSkillShot(_E, target) end
end
end
end
local function Rengar_Dash(target)
if UltActive == true then return end
if Mode() == "Combo" and Dash == true then
if Config.C.E:Value() then Rengar_CastE(target) end
if ValidTarget(target, 200) then Rengar_Items() end
if Config.C.W:Value() then Rengar_CastW(target) end
if Config.C.Q:Value() then Rengar_CastQ(target) end
end
end
local function Rengar_Tick()
if not myHero.dead then
local target = Rengar_GetTarget(E.range+250)
Rengar_Combo(target)
Rengar_Harass(target)
for _, target in pairs(minionManager.objects) do Rengar_LastHit(target) Rengar_Clear(target) end
Rengar_Dash(target)
Rengar_Switch()
end
end
OnLoad(function()
OnTick(Rengar_Tick)
OnWndMsg(Rengar_WndMsg)
OnDraw(Rengar_Draw)
OnUpdateBuff(Rengar_UpdateBuff)
OnRemoveBuff(Rengar_RemoveBuff)
OnProcessSpellComplete(Rengar_OnProcessSpellComplete)
print("[Shulepin][Rengar] Successfully Loaded!")
print("[Shulepin][Rengar] Current Version: "..LoLVer)
print("[Shulepin][Rengar] Have Fun, "..GetUser().." !")
end)