omg thanks dude <3Hi everyone,
I saw someone on the forum posting this so I decided to share it with the lpreborn developers.
If they could test to see if it can be deployed in lpreborn it would be great.
[
lass "Gangplank"
function Gangplank:__init()
MenuG = MenuConfig("Gangplank", "Gangplank")
MenuG:Menu("c", "Combo")
MenuG.c:Section("h", "Defaults")
MenuG.c.h:Boolean("Q", "Use Q", true)
MenuG.c.h:Boolean("QB", "Use Q on Barrel", true)
MenuG.c.h:Boolean("W", "Use W", true)
MenuG.c.h:Boolean("E", "Use E", true)
MenuG.c.h:Slider("BarrelLinkM", "Minimum Barrel Link", 2, 1, 5)
MenuG:Menu("f", "Farm")
MenuG.f:Section("lh", "LastHit")
MenuG.f.lh:Boolean("Q", "Use Q La****", true)
MenuG.f:Section("l", "LaneClear")
MenuG.f.l:Boolean("Q", "Use Q LaneClear", true)
MenuG.f.l:Boolean("QB", "Use Q on Barrel", true)
MenuG.f.l:Boolean("E", "Use E LaneClear", true)
MenuG.f.l:Slider("BarrelLinkM", "Minimum Barrel Link", 2, 1, 5)
MenuG:Menu("m", "Misc")
MenuG.m:Section("m", "Others")
MenuG.m.m:Boolean("AQ", "Use Q Farm Auto", false)
MenuG.m.m:Boolean("AR", "Auto KS ult", false)
MenuG.m.m:Boolean("ARR", "Auto R if Enemies >= x", false)
MenuG.m.m:Slider("ARRS", "Auto R Minimum Enemies", 3, 1, 5)
BarrelPred = { delay = 0.25, speed = 1700, width = 400, range = 630 }
BarrelCount = 0
Killablebarrels = {}
Killablebarrels2 = {}
Callback.Add("Tick", function() self:Loop() end)
Callback.Add("CreateObj", function(Object) self:CreateObj(Object) end)
Callback.Add("DeleteObj", function(Object) selfeleteObj(Object) end)
LoadIOW()
end
function Gangplank:Loop()
if IOW:Mode() == "Combo" then
self:Combo()
end
if IOW:Mode() == "LastHit" and MenuG.f.lh.Q:Value() then
self:LastHit()
end
if IOW:Mode() == "LaneClear" and (MenuG.f.l.Q:Value() or MenuG.f.l.E:Value()) then
self:LaneClear()
end
unit = GetCurrentTarget()
if BarrelCount > 0 then
self:AddingBarrel()
elseif BarrelCount <= 0 then
self:RemoveBarrel()
end
if MenuG.m.m.AQ:Value() then
self:AuotQ()
end
if MenuG.m.m.AR:Value() then
self:AutoRKs()
end
if MenuG.m.m.ARR:Value() then
self:AutoRR()
end
end
function Gangplank:Combo()
IOW.forceTarget = nil
local Ori = ClosestBarrel(GetOrigin(myHero))
for _,Killablebarrel in pairs(Killablebarrels2) do
if MenuG.c.h.QB:Value() and Ori ~= nil and CanUseSpell(myHero, _Q) == READY and GetDistance(GetOrigin(unit), GetOrigin(Killablebarrel)) <=380 and BarrelCount >= MenuG.c.h.BarrelLinkM:Value() then
CastTargetSpell(Ori, _Q)
elseif Ori and GetDistance(GetOrigin(myHero), GetOrigin(Ori)) <=GetRange(myHero) and GetDistance(GetOrigin(unit), GetOrigin(Ori)) <=400 then
IOW.forceTarget = Ori
end
if MenuG.c.h.E:Value() and CanUseSpell(myHero, _E) == READY and ValidTarget(unit, 1000) then
PredPos = GetCircularAOEPrediction(unit, BarrelPred, GetOrigin(Ori))
CastSkillShot(_E, PredPos)
elseif CanUseSpell(myHero, _E) ~= READY and ValidTarget(unit, 650) and BarrelCount <=0 then
CastTargetSpell(unit, _Q)
end
end
end
function Gangplank:AutoRKs()
for i,enemy in pairs(GetEnemyHeroes()) do
local z = (GetCastLevel(myHero, _Q)*240)+(GetBonusAP(myHero)*1.20)+(GetBaseDamage(myHero))
local Dmg = myHero:CalcDamage(enemy, z)
if CanUseSpell(myHero, _R) == READY and ValidTarget(enemy, 100000) and Dmg > enemy.health then
CastSkillShot(_R, GetOrigin(enemy))
end
end
end
function Gangplank:AutoRR()
for i,enemy in pairs(GetEnemyHeroes()) do
if CanUseSpell(myHero, _R) == READY and ValidTarget(enemy, 100000) then
end
end
end
function Gangplank:LastHit()
for _,minion in pairs(minionManager.objects) do
if GetTeam(minion) == MINION_ENEMY then
local MHP = minion.health
local z = (GetCastLevel(myHero, _Q)*25)+(GetBonusDmg(myHero)*.9)+(GetBaseDamage(myHero))
local Dmg = myHero:CalcDamage(minion, z)
if CanUseSpell(myHero, _Q) == READY and ValidTarget(minion, 625) and MHP <= Dmg then
CastTargetSpell(minion, _Q)
end
end
end
end
function Gangplank:LaneClear()
for _,minion in pairs(minionManager.objects) do
if GetTeam(minion) == MINION_ENEMY then
local MHP = minion.health
local z = (GetCastLevel(myHero, _Q)*25)+(GetBonusDmg(myHero)*.9)+(GetBaseDamage(myHero))
local Dmg = myHero:CalcDamage(minion, z)
local Ori = ClosestBarrel(GetOrigin(myHero))
if CanUseSpell(myHero, _Q) == READY and ValidTarget(minion, 625) and MHP <= Dmg and BarrelCount <= 0 and MenuG.f.l.Q:Value() then
CastTargetSpell(minion, _Q)
elseif BarrelCount >= 1 and CanUseSpell(myHero, _Q) == READY and GetDistance(GetOrigin(minion), GetOrigin(Killablebarrel)) <=380 and GetDistance(GetOrigin(myHero), GetOrigin(Ori)) >=GetRange(myHero) and BarrelCount >= MenuG.f.l.BarrelLinkM:Value() then
CastTargetSpell(Ori, _Q)
elseif BarrelCount >= 1 and CanUseSpell(myHero, _Q) == READY and GetDistance(GetOrigin(minion), GetOrigin(Killablebarrel)) <=380 and GetDistance(GetOrigin(myHero), GetOrigin(Ori)) <=GetRange(myHero) and BarrelCount >= MenuG.f.l.BarrelLinkM:Value() then
IOW.forceTarget = Ori
else
IOW.forceTarget = nil
end
if CanUseSpell(myHero, _E) == READY and ValidTarget(minion, 650) and MenuG.f.l.E:Value() then
CastSkillShot(_E, GetOrigin(minion))
end
end
end
end
function Gangplank:AuotQ()
for _,minion in pairs(minionManager.objects) do
if GetTeam(minion) == MINION_ENEMY then
local MHP = minion.health
local z = (GetCastLevel(myHero, _Q)*25)+(GetBonusDmg(myHero)*.9)+(GetBaseDamage(myHero))
local Dmg = myHero:CalcDamage(minion, z)
if CanUseSpell(myHero, _Q) == READY and ValidTarget(minion, 625) and MHP <= Dmg then
CastTargetSpell(minion, _Q)
end
end
end
end
function Gangplank:CreateObj(Object)
if GetObjectBaseName(Object) == "Barrel" then
BarrelCount = BarrelCount + 1
table.insert(Killablebarrels, Object)
end
end
function Gangplank:AddingBarrel()
for i, Killablebarrel in pairs(Killablebarrels) do
if GetPercentHP(Killablebarrel) <= 34 then
table.insert(Killablebarrels2, Killablebarrel)
end
end
end
function Gangplank:RemoveBarrel()
for i, Killablebarrel in pairs(Killablebarrels2) do
Killablebarrels2 = nil
end
end
function GangplankeleteObj(Object)
if GetObjectBaseName(Object) == "Gangplank_Base_E_AoE_Green.troy" then
BarrelCount = BarrelCount - 1
table.remove(Killablebarrels, 1)
self:RemoveBarrel()
end
end
function ClosestBarrel(pos) -- Inspired all credits and shiz. Main reason is travel speed to closest barrel so we shoot that.
local bArrel = nil
for _,v in pairs(Killablebarrels2) do
if not bArrel and v then bArrel = v end
if bArrel and v and GetDistanceSqr(GetOrigin(bArrel),pos) > GetDistanceSqr(GetOrigin(v),pos) then
bArrel = v
end
end
return bArrel
end
if _G[GetObjectName(myHero)] then
_G[GetObjectName(myHero)]()
end
]
[
if myHero.charName ~= "Gangplank" then return end
function Menu()
Menuconf = AutoCarry.PluginMenu
Menuconf:addSubMenu("Combo Settings", "comboConfig")
Menuconf.comboConfig:addParam("USEE", "Use E in Combo", SCRIPT_PARAM_ONOFF, true)
Menuconf.comboConfig:addParam("USEQ", "Use Q in Combo", SCRIPT_PARAM_ONOFF, true)
Menuconf.comboConfig:addParam("HARRASQ", "Harras Enemy Q (Key: T)", SCRIPT_PARAM_ONKEYTOGGLE, true, GetKey("T"))
Menuconf.comboConfigermaShow("HARRASQ")
Menuconf:addSubMenu("KS Settings" , "ksConfig")
Menuconf.ksConfig:addParam("IGN", "KS Ignite (Key: U)", SCRIPT_PARAM_ONKEYTOGGLE, true, GetKey("U"))
Menuconf.ksConfig:addParam("KSULT", "KS Ultimate (Key: I)", SCRIPT_PARAM_ONKEYTOGGLE, true, GetKey("I"))
Menuconf.ksConfig:addParam("ULTHITS", "Ult hit times:", SCRIPT_PARAM_SLICE, 2, 1, 6, 0)
Menuconf.ksConfig:addParam("KSQ", "KS Q (Key: O)", SCRIPT_PARAM_ONKEYTOGGLE, true, GetKey("O"))
Menuconf.ksConfigermaShow("IGN")
Menuconf.ksConfigermaShow("KSULT")
Menuconf.ksConfigermaShow("KSQ")
Menuconf:addSubMenu("Spell & Farm" , "farmConfig")
Menuconf.farmConfig:addParam("FARMQJUNGLE", "Farm With Q In Jungle (Key: G)", SCRIPT_PARAM_ONKEYTOGGLE, true, GetKey("G"))
Menuconf.farmConfig:addParam("FARMQ", "Farm With Q (Key: J)", SCRIPT_PARAM_ONKEYTOGGLE, true, GetKey("J"))
Menuconf.farmConfig:addParam("FARMAA", "Farm With AA (Key: K)", SCRIPT_PARAM_ONKEYTOGGLE, true, GetKey("K"))
Menuconf.farmConfig:addParam("CC", "Anty CC (Key: H)", SCRIPT_PARAM_ONKEYTOGGLE, true, GetKey("H"))
Menuconf.farmConfig:addParam("HEAL", "Auto W (Key: L)", SCRIPT_PARAM_ONKEYTOGGLE, true, GetKey("L"))
Menuconf.farmConfig:addParam("MINHPTOW", "Min % HP To Heal", SCRIPT_PARAM_SLICE, 60, 0, 100, 2)
Menuconf.farmConfig:addParam("MINMPTOW", "Min % MP To Heal", SCRIPT_PARAM_SLICE, 70, 0, 100, 2)
Menuconf.farmConfigermaShow("FARMQJUNGLE")
Menuconf.farmConfigermaShow("FARMQ")
Menuconf.farmConfigermaShow("FARMAA")
Menuconf.farmConfigermaShow("CC")
Menuconf.farmConfigermaShow("HEAL")
Menuconf:addSubMenu("Drawing Settings", "drawConfig")
Menuconf.drawConfig:addParam("DQR", "Draw Q Range", SCRIPT_PARAM_ONOFF, true)
Menuconf.drawConfig:addParam("DER", "Draw E Range", SCRIPT_PARAM_ONOFF, true)
end
function PluginOnLoad()
Menu()
IgniteKey = nil;
if myHero:GetSpellData(SUMMONER_1).name:find("SummonerDot") then
IgniteKey = SUMMONER_1
elseif myHero:GetSpellData(SUMMONER_2).name:find("SummonerDot") then
IgniteKey = SUMMONER_2
else
IgniteKey = nil
end
ultDmg = 0
end
function PluginOnTick()
Target = AutoCarry.GetAttackTarget(true)
Qrdy = (myHero:CanUseSpell(_Q) == READY)
Wrdy = (myHero:CanUseSpell(_W) == READY)
Erdy = (myHero:CanUseSpell(_E) == READY)
Rrdy = (myHero:CanUseSpell(_R) == READY)
--KSULT--
if Menuconf.ksConfig.KSULT then
players = heroManager.iCount
for i = 1, players, 1 do
target = heroManager:getHero(i)
ultDmg = getDmg("R", myHero, target) * Menuconf.ksConfig.ULTHITS + (myHero.ap * 0.2)
if target ~= nil and target.team ~= player.team and target.visible and not target.dead then
if Rrdy and ultDmg > target.health then
CastSpell(_R, target.x, target.z)
end
end
end
end
--KSQ--
if Menuconf.ksConfig.KSQ and Qrdy then
if ValidTarget(Target) and Target.health < getDmg("Q", myHero, Target) then
CastSpell(_Q, Target)
end
end
--KSIGNITE--
if Menuconf.ksConfig.KSIGNITE and Target ~= nil and IgniteKey ~= nil then
if Target.health < getDmg("IGNITE", myHero, Target) then
CastSpell(IgniteKey, Target)
end
end
--COMBO--
if AutoCarry.MainMenu.AutoCarry and Target ~= nil then
if Qrdy and Menuconf.comboConfig.USEQ and ValidTarget(Target, 625) then
CastSpell(_Q, Target.x, Target.z)
end
if Erdy and Menuconf.comboConfig.USEE then
CastSpell(_E)
end
end
--HEAL--
if Menuconf.farmConfig.HEAL and not Recall then
if ((myHero.mana/myHero.maxMana)*100) > Menuconf.farmConfig.MINMPTOW and ((myHero.health/myHero.maxHealth)*100) < Menuconf.farmConfig.MINHPTOW then
CastSpell(_W)
end
end
--HARRASQ--
if Menuconf.comboConfig.HARRASQ and ValidTarget(Target) and Qrdy then
CastSpell(_Q, Target)
end
--FARMWITHQ--
if Menuconf.farmConfig.FARMQ and Qrdy then
for index, minion in pairs(minionManager(MINION_ENEMY, 625, player, MINION_SORT_HEALTH_ASC).objects) do
local qDmg = getDmg("Q",minion, GetMyHero()) + getDmg("AD",minion, GetMyHero())
local MinionHealth_ = minion.health
if qDmg >= MinionHealth_ then
CastSpell(_Q, minion)
end
end
end
--FARMWITHQJUNGLE--
if Menuconf.farmConfig.FARMQJUNGLE and Qrdy then
for index, minion in pairs(minionManager(MINION_JUNGLE, 625, player, MINION_SORT_HEALTH_ASC).objects) do
local qDmg = getDmg("Q",minion, GetMyHero()) + getDmg("AD",minion, GetMyHero())
local MinionHealth_ = minion.health
if qDmg >= MinionHealth_ then
CastSpell(_Q, minion)
end
end
end
--FARMWITHAA--
if Menuconf.farmConfig.FARMAA then
for index, minion in pairs(minionManager(MINION_ENEMY, myHero.range+75, player, MINION_SORT_HEALTH_ASC).objects) do
local aDmg = getDmg("AD", minion, myHero)
if minion.health <= aDmg and GetDistance(minion) <= (myHero.range+75) then
myHero:Attack(minion)
end
end
end
--ANTYCC--
if Menuconf.farmConfig.CC and Wrdy then
myPlayer = GetMyHero()
if myPlayer.canMove == false then
CastSpell(_W)
end
if myPlayer.isTaunted == true then
CastSpell(_W)
end
if myPlayer.isFleeing == true then
CastSpell(_W)
end
end
--DRAWING--
function PluginOnDraw()
if Menuconf.drawConfig.DQR and Qrdy then
DrawCircle(myHero.x, myHero.y, myHero.z, 625, ARGB(255,0,0,255))
end
if Menuconf.drawConfig.DER and Erdy then
DrawCircle(myHero.x, myHero.y, myHero.z, 1300, ARGB(255,255,0,0))
end
end
function OnCreateObj(object)
if object.name:find("TeleportHome") then
Recall = true
end
end[
function OnDeleteObj(object)
if object.name:find("TeleportHome") or (Recall == nil and object.name == Recall.name) then
Recall = false
end
end
end