diegander How do I cheat?
Reputation: 0
Joined: 27 Feb 2014 Posts: 2
|
Posted: Thu Feb 27, 2014 11:20 am Post subject: want to inject lua script in a game how |
|
|
hi i want to inject my lua script in league of legends game and i dont know how inject it pls help
[code:1:8d533786dd]--[[
Sida's Auto Carry: Revamped
v4.9
]]--
--[[ Configuration ]]--
local AutoCarryKey = 32
local LastHitKey = string.byte("X")
local MixedModeKey = string.byte("C")
local LaneClearKey = string.byte("V")
------------ > Don't touch anything below here < --------------
--[[ Vars ]] --
local projSpeed = 0
local startAttackSpeed = 0.665
local attackDelayOffset = 600
local lastAttack = 0
local projAt = 0
local Skills
local enemyMinions
local allyMinions
local lastEnemy
local lastRange
local killableMinion
local pluginMinion
local minionInfo = {}
local incomingDamage = {}
local jungleMobs = {}
local turretMinion = {timeToHit = 0, obj = nil}
local isMelee = myHero.range < 300
local movementStopped = false
local hasPlugin = false
local nextClick = 500
local TimedMode = false
local Tristana = false
local hudDisabled = false
local ChampInfo = {}
local useVIPCol = false
local lastAttacked = nil
local previousWindUp = 0
local previousAttackCooldown = 0
_G.AutoCarry = _G
--[[ Global Vars : Can be used by plugins ]]--
AutoCarry.Orbwalker = nil
AutoCarry.SkillsCrosshair = nil
AutoCarry.CanMove = true
AutoCarry.CanAttack = true
AutoCarry.MainMenu = nil
AutoCarry.PluginMenu = nil
AutoCarry.EnemyTable = nil
AutoCarry.shotFired = false
AutoCarry.OverrideCustomChampionSupport = false
AutoCarry.CurrentlyShooting = false
--[[ Global Functions ]]--
function getTrueRange()
return myHero.range + GetDistance(myHero.minBBox)
end
function attackEnemy(enemy)
if CustomAttackEnemy then CustomAttackEnemy(enemy) return end
if enemy.dead or not enemy.valid or not AutoCarry.CanAttack then return end
myHero:Attack(enemy)
lastAttacked = enemy
AutoCarry.shotFired = true
end
function getHitBoxRadius(target)
return GetDistance(target.minBBox, target.maxBBox)/2
end
function timeToShoot()
return (GetTickCount() + GetLatency()/2 > lastAttack + previousAttackCooldown)
end
function attackedSuccessfully()
projAt = GetTickCount()
if OnAttacked then OnAttacked() end
end
function heroCanMove()
return (GetTickCount() + GetLatency()/2 > lastAttack + previousWindUp + 20 + 30)
end
function setMovement()
if GetDistance(mousePos) <= AutoCarry.MainMenu.HoldZone and (AutoCarry.MainMenu.AutoCarry or AutoCarry.MainMenu.LastHit or AutoCarry.MainMenu.MixedMode or AutoCarry.MainMenu.LaneClear) then
if not movementStopped then
myHero:HoldPosition()
movementStopped = true
end
AutoCarry.CanMove = false
else
movementStopped = false
AutoCarry.CanMove = true
end
end
function moveToCursor(range)
if not disableMovement and AutoCarry.CanMove then
local moveDist = 480 + (GetLatency()/10)
if not range then
if isMelee and AutoCarry.Orbwalker.target and AutoCarry.Orbwalker.target.type == myHero.type and GetDistance(AutoCarry.Orbwalker.target) < 80 then
attackEnemy(AutoCarry.Orbwalker.target)
return
elseif GetDistance(mousePos) < moveDist and GetDistance(mousePos) > 100 then
moveDist = GetDistance(mousePos)
end
end
local moveSqr = math.sqrt((mousePos.x - myHero.x)^2+(mousePos.z - myHero.z)^2)
local moveX = myHero.x + (range and range or moveDist)*((mousePos.x - myHero.x)/moveSqr)
local moveZ = myHero.z + (range and range or moveDist)*((mousePos.z - myHero.z)/moveSqr)
if StreamingMenu.MinRand > StreamingMenu.MaxRand then
PrintChat("You must set Max higher than Min in streaming menu")
elseif StreamingMenu.ShowClick and GetTickCount() > nextClick then
if StreamingMenu.Colour == 0 then
ShowGreenClick(mousePos)
else
ShowRedClick(mousePos)
end
nextClick = GetTickCount() + math.random(StreamingMenu.MinRand, StreamingMenu.MaxRand)
end
myHero:MoveTo(moveX, moveZ)
end
end
--[[ Orbwalking ]]--
function OrbwalkingOnLoad()
AutoCarry.Orbwalker = TargetSelector(TARGET_LOW_HP_PRIORITY, getTrueRange(), DAMAGE_PHYSICAL, false)
AutoCarry.Orbwalker:SetBBoxMode(true)
AutoCarry.Orbwalker:SetDamages(0, myHero.totalDamage, 0)
AutoCarry.Orbwalker.name = "AutoCarry"
lastRange = getTrueRange()
if ChampInfo ~= nil then
if ChampInfo.projSpeed ~= nil then
projSpeed = ChampInfo.projSpeed
end
end
end
function OrbwalkingOnTick()
AutoCarry.Orbwalker.targetSelected = AutoCarry.MainMenu.Focused
if GetTickCount() + GetLatency()/2 > lastAttack + previousWindUp + 20 and GetTickCount() + GetLatency()/2 < lastAttack + previousWindUp + 400 then attackedSuccessfully() end
isMelee = myHero.range < 300
if myHero.range ~= lastRange then
AutoCarry.Orbwalker.range = myHero.range
lastRange = myHero.range
end
AutoCarry.Orbwalker:update()
end
function OrbwalkingOnProcessSpell(unit, spell)
if myHero.dead then return end
if unit.isMe and (spell.name:lower():find("attack") or isSpellAttack(spell.name)) and not isNotAttack(spell.name) then
lastAttack = GetTickCount() - GetLatency()/2
previousWindUp = spell.windUpTime*1000
previousAttackCooldown = spell.animationTime*1000
elseif unit.isMe and refreshAttack(spell.name) then
lastAttack = GetTickCount() - GetLatency()/2 - previousAttackCooldown
end
end
function refreshAttack(spellName)
return (
--Blitzcrank
spellName == "PowerFist"
--Darius
or spellName == "DariusNoxianTacticsONH"
--Nidalee
or spellName == "Takedown"
--Sivir
or spellName == "Ricochet"
--Teemo
or spellName == "BlindingDart"
--Vayne
or spellName == "VayneTumble"
--Jax
or spellName == "JaxEmpowerTwo"
--Mordekaiser
or spellName == "MordekaiserMaceOfSpades"
--Nasus
or spellName == "SiphoningStrikeNew"
--Rengar
or spellName == "RengarQ"
--Wukong
or spellName == "MonkeyKingDoubleAttack"
--Yorick
or spellName == "YorickSpectral"
--Vi
or spellName == "ViE"
--Garen
or spellName == "GarenSlash3"
--Hecarim
or spellName == "HecarimRamp"
--XinZhao
or spellName == "XenZhaoComboTarget"
--Leona
or spellName == "LeonaShieldOfDaybreak"
--Shyvana
or spellName == "ShyvanaDoubleAttack"
or spellName == "shyvanadoubleattackdragon"
--Talon
or spellName == "TalonNoxianDiplomacy"
--Trundle
or spellName == "TrundleTrollSmash"
--Volibear
or spellName == "VolibearQ"
--Poppy
or spellName == "PoppyDevastatingBlow"
)
end
function isSpellAttack(spellName)
return (
--Ashe
spellName == "frostarrow"
--Caitlyn
or spellName == "CaitlynHeadshotMissile"
--Kennen
or spellName == "KennenMegaProc"
--Quinn
or spellName == "QuinnWEnhanced"
--Trundle
or spellName == "TrundleQ"
--XinZhao
or spellName == "XenZhaoThrust"
or spellName == "XenZhaoThrust2"
or spellName == "XenZhaoThrust3"
--Garen
or spellName == "GarenSlash2"
--Renekton
or spellName == "RenektonExecute"
or spellName == "RenektonSuperExecute"
--Yi
or spellName == "MasterYiDoubleStrike"
)
end
function isNotAttack(spellName)
return (
--Shyvana
spellName == "shyvanadoubleattackdragon"
or spellName == "ShyvanaDoubleAttack"
--MonkeyKing
or spellName == "MonkeyKingDoubleAttack"
--JarvanIV
--or spellName == "JarvanIVCataclysmAttack"
--or spellName == "jarvanivcataclysmattack"
)
end
function OrbwalkingOnDraw()
if DisplayMenu.target and AutoCarry.Orbwalker.target ~= nil then
for j=0, 5 do
DrawCircle(AutoCarry.Orbwalker.target.x, AutoCarry.Orbwalker.target.y, AutoCarry.Orbwalker.target.z, 100 + j, 0x00FF00)
end
DrawCircle(AutoCarry.Orbwalker.target.x, AutoCarry.Orbwalker.target.y, AutoCarry.Orbwalker.target.z, GetDistance(AutoCarry.Orbwalker.target, AutoCarry.Orbwalker.target.minBBox), 0xFFFFFF)
elseif DisplayMenu.target and AutoCarry.SkillsCrosshair.target then
for j=0, 5 do
DrawCircle(AutoCarry.SkillsCrosshair.target.x, AutoCarry.SkillsCrosshair.target.y, AutoCarry.SkillsCrosshair.target.z, 100 + j, 0x990000)
end
DrawCircle(AutoCarry.SkillsCrosshair.target.x, AutoCarry.SkillsCrosshair.target.y, AutoCarry.SkillsCrosshair.target.z, GetDistance(AutoCarry.SkillsCrosshair.target, AutoCarry.SkillsCrosshair.target.minBBox), 0xFFFFFF)
end
end
function EnemyInRange(enemy)
if ValidBBoxTarget(enemy, getTrueRange()) then
return true
end
return false
end
--[[ Last Hitting ]]--
function LastHitOnLoad()
minionInfo[(myHero.team == 100 and "Blue" or "Red").."_Minion_Basic"] = { aaDelay = 400, projSpeed = 0 }
minionInfo[(myHero.team == 100 and "Blue" or "Red").."_Minion_Caster"] = { aaDelay = 484, projSpeed = 0.68 }
minionInfo[(myHero.team == 100 and "Blue" or "Red").."_Minion_Wizard"] = { aaDelay = 484, projSpeed = 0.68 }
minionInfo[(myHero.team == 100 and "Blue" or "Red").."_Minion_MechCannon"] = { aaDelay = 365, projSpeed = 1.18 }
minionInfo.obj_AI_Turret = { aaDelay = 150, projSpeed = 1.14 }
for i = 0, objManager.maxObjects do
local obj = objManager:getObject(i)
for _, mob in pairs(getJungleMobs()) do
if obj and obj.valid and obj.name:find(mob) then
table.insert(jungleMobs, obj)
end
end
end
end
function LastHitOnTick()
if AutoCarry.MainMenu.LastHit or AutoCarry.MainMenu.MixedMode or AutoCarry.MainMenu.LaneClear then
enemyMinions:update()
allyMinions:update()
end
end
function LastHitOnProcessSpell(object, spell)
if not isMelee and isAllyMinionInRange(object) then
for i,minion in pairs(enemyMinions.objects) do
if ValidTarget(minion) and minion ~= nil and GetDistance(minion, spell.endPos) < 3 then
if object ~= nil and (minionInfo[object.charName] or object.type == "obj_AI_turret") then
incomingDamage[object.name] = getNewAttackDetails(object, minion)
end
--if object.type == "obj_AI_Turret" and object.team == myHero.team then
--if FarmMenu.Predict then
--handleTurretShot(object, minion)
--end
--end
end
end
end
end
function LastHitOnCreateObj(obj)
for _, mob in pairs(getJungleMobs()) do
if obj.name:find(mob) then
table.insert(jungleMobs, obj)
end
end
end
function LastHitOnDeleteObj(obj)
for i, mob in pairs(getJungleMobs()) do
if obj and obj.valid and mob and mob.valid and obj.name:find(mob.name) then
table.remove(jungleMobs, i)
end
end
end
function getJungleMinion()
for _, mob in pairs(jungleMobs) do
if ValidTarget(mob) and GetDistance(mob) <= getTrueRange() then return mob end
end
return nil
end
function LastHitOnDraw()
if DisplayMenu.minion and enemyMinions.objects[1] and ValidTarget(enemyMinions.objects[1]) and not isMelee then
DrawCircle(enemyMinions.objects[1].x, enemyMinions.objects[1].y, enemyMinions.objects[1].z, 100, 0x19A712)
end
end
function getTimeToHit(enemy, speed)
return (( GetDistance(enemy) / speed ) + GetLatency()/2)
end
function isAllyMinionInRange(minion)
if minion ~= nil and minion.team == myHero.team
and (minion.type == "obj_AI_Minion" or minion.type == "obj_AI_Turret")
and GetDistance(minion) <= 2000 then return true
else return false end
end
function getMinionDelay(minion)
return ( minion.type == "obj_AI_Turret" and minionInfo.obj_AI_Turret.aaDelay or minionInfo[minion.charName].aaDelay )
end
function getMinionProjSpeed(minion)
return ( minion.type == "obj_AI_Turret" and minionInfo.obj_AI_Turret.projSpeed or minionInfo[minion.charName].projSpeed )
end
function minionSpellStillViable(attack)
if attack == nil then return false end
local sourceMinion = getAllyMinion(attack.sourceName)
local targetMinion = getEnemyMinion(attack.targetName)
if sourceMinion == nil or targetMinion == nil then return false end
if sourceMinion.dead or targetMinion.dead or GetDistance(sourceMinion, attack.origin) > 3 then return false else return true end
end
function getAllyMinion(name)
for i, minion in pairs(allyMinions.objects) do
if minion ~= nil and minion.valid and minion.name == name then
return minion
end
end
return nil
end
function getEnemyMinion(name)
for i, minion in pairs(enemyMinions.objects) do
if minion ~= nil and ValidTarget(minion) and minion.name == name then
return minion
end
end
return nil
end
function isSameMinion(minion1, minion2)
if minion1.networkID == minion2.networkID then return true
else return false end
end
function getMinionTimeToHit(minion, attack)
local sourceMinion = getAllyMinion(attack.sourceName)
return ( attack.speed == 0 and ( attack.delay ) or ( attack.delay + GetDistance(sourceMinion, minion) / attack.speed ) )
end
function getNewAttackDetails(source, target)
return {
sourceName = source.name,
targetName = target.name,
damage = source:CalcDamage(target),
started = GetTickCount(),
origin = { x = source.x, z = source.z },
delay = getMinionDelay(source),
speed = getMinionProjSpeed(source),
sourceType = source.type}
end
function getPredictedDamage(counter, minion, attack)
if not minionSpellStillViable(attack) then
incomingDamage[counter] = nil
elseif isSameMinion(minion, getEnemyMinion(attack.targetName)) then
local myTimeToHit = getTimeToHit(minion, projSpeed)
minionTimeToHit = getMinionTimeToHit(minion, attack)
if GetTickCount() >= (attack.started + minionTimeToHit) then
incomingDamage[counter] = nil
elseif GetTickCount() + myTimeToHit > attack.started + minionTimeToHit then
return attack.damage
end
end
return 0
end
function getKillableCreep(iteration)
if isMelee then return meleeLastHit() end
local minion = enemyMinions.objects[iteration]
if minion ~= nil then
local distanceToMinion = GetDistance(minion)
local predictedDamage = 0
if distanceToMinion < getTrueRange() then
if FarmMenu.Predict then
for l, attack in pairs(incomingDamage) do
predictedDamage = predictedDamage + getPredictedDamage(l, minion, attack)
end
end
local myDamage = myHero:CalcDamage(minion, myHero.totalDamage) + getBonusLastHitDamage(minion) + LastHitPassiveDamage()
myDamage = (MasteryMenu.Executioner and myDamage * 1.05 or myDamage)
myDamage = myDamage - 10
--if minion.health - predictedDamage <= 0 then
--return getKillableCreep(iteration + 1)
if minion.health + 1.2 - predictedDamage < myDamage then
return minion
--elseif minion.health + 1.2 - predictedDamage < myDamage + (0.5 * predictedDamage) then
-- return nil
end
end
end
return nil
end
function getBonusLastHitDamage(minion)
if PluginBonusLastHitDamage then
return PluginBonusLastHitDamage(minion)
elseif BonusLastHitDamage then
return BonusLastHitDamage(minion)
else
return 0
end
end
function meleeLastHit()
for _, minion in pairs(enemyMinions.objects) do
local aDmg = getDmg("AD", minion, myHero)
if GetDistance(minion) <= (myHero.range + 75) then
if minion.health < aDmg then
return minion
end
end
end
end
function LastHitPassiveDamage(minion)
if PluginLastHitPassiveDamage then return PluginLastHitPassiveDamage(minion) end
local bonus = 0
if GetInventoryHaveItem(3153) then
if ValidTarget(minion) then
bonus = minion.health / 20
if bonus >= 60 then
bonus = 60
end
end
end
bonus = bonus + (MasteryMenu.Butcher * 2)
bonus = (MasteryMenu.Spellblade and bonus + (myHero.ap * 0.05) or 0)
return bonus
end
function getHighestMinion()
if GetTarget() ~= nil then
local currentTarget = GetTarget()
local validTarget = false
validTarget = ValidTarget(currentTarget, getTrueRange(), player.enemyTeam)
if validTarget and (currentTarget.type == "obj_BarracksDampener" or currentTarget.type == "obj_HQ" or currentTarget.type == "obj_AI_Turret") then
return currentTarget
end
end
local highestHp = {obj = nil, hp = 0}
for _, tMinion in pairs(enemyMinions.objects) do
if GetDistance(tMinion) <= getTrueRange() and tMinion.health > highestHp.hp then
highestHp = {obj = tMinion, hp = tMinion.health}
end
end
return highestHp.obj
end
function getPredictedDamageOnMinion(minion)
local predictedDamage = 0
if minion ~= nil then
local distanceToMinion = GetDistance(minion)
if distanceToMinion < getTrueRange() then
for l, attack in pairs(incomingDamage) do
if attack.sourceType ~= "obj_AI_Turret" then
predictedDamage = predictedDamage + getPredictedDamage(l, minion, attack)
end
end
end
end
return predictedDamage
end
function handleTurretShot(turret, minion)
local dmg = turret:CalcDamage(minion)
local myDmg = myHero:CalcDamage(minion, myHero.totalDamage) + (BonusLastHitDamage and BonusLastHitDamage(minion) or 0) + LastHitPassiveDamage()
myDmg = (MasteryMenu.Executioner and myDmg * 1.05 or myDmg)
local predic = getPredictedDamageOnMinion(minion)
if minion.health > myDmg + dmg + predic and minion.health < (myDmg * 2) + dmg + predic then
turretMinion = {timeToHit = minionInfo.obj_AI_Turret.aaDelay + GetDistance(turret, minion) / minionInfo.obj_AI_Turret.projSpeed, obj = minion }
end
end
--[[ Abilities ]]--
function SkillsOnLoad()
Skills = getSpellList()
if Skills == nil then
AutoCarry.SkillsCrosshair = TargetSelector(TARGET_LOW_HP_PRIORITY, 0, DAMAGE_PHYSICAL, false)
return
end
local maxRange = 0
for _, skill in pairs(Skills) do
if skill.range > maxRange then maxRange = skill.range end
end
AutoCarry.SkillsCrosshair = TargetSelector(TARGET_LOW_HP_PRIORITY, maxRange, DAMAGE_PHYSICAL, false)
end
function SkillsOnTick()
if Skills == nil then return end
local target = AutoCarry.GetAttackTarget()
if ValidTarget(target) and target.type == myHero.type then
for _, skill in pairs(Skills) do
if (AutoCarry.MainMenu.AutoCarry and SkillsMenu[skill.configName.."AutoCarry"]) or
(AutoCarry.MainMenu.MixedMode and SkillsMenu[skill.configName.."MixedMode"]) then
if not skill.reset or (skill.reset and GetTickCount() < projAt + 400) then
if skill.skillShot then
AutoCarry.CastSkillshot(skill, target)
elseif skill.reqTarget == false and not skill.atMouse then
CastSelf(skill, target)
elseif skill.reqTarget == false and skill.atMouse then
CastMouse(skill)
else
CastTargettedSpell(skill, target)
end
end
end
end
end
end
AutoCarry.GetCollision = function (skill, source, destination)
if VIP_USER and useVIPCol then
local col = Collision(skill.range, skill.speed*1000, skill.delay/1000, skill.width)
return col:GetMinionCollision(source, destination)
else
return willHitMinion(destination, skill.width)
end
end
AutoCarry.CastSkillshot = function (skill, target)
if VIP_USER then
pred = TargetPredictionVIP(skill.range, skill.speed*1000, skill.delay/1000, skill.width)
elseif not VIP_USER then
pred = TargetPrediction(skill.range, skill.speed, skill.delay, skill.width)
end
local predPos = pred:GetPrediction(target)
if predPos and GetDistance(predPos) <= skill.range then
if VIP_USER and pred:GetHitChance(target) > SkillsMenu.hitChance/100 then
if not skill.minions or not AutoCarry.GetCollision(skill, myHero, predPos) then
CastSpell(skill.spellKey, predPos.x, predPos.z)
end
elseif not VIP_USER then
if not skill.minions or not AutoCarry.GetCollision(skill, myHero, predPos) then
CastSpell(skill.spellKey, predPos.x, predPos.z)
end
end
end
end
AutoCarry.GetPrediction = function(skill, target)
if VIP_USER then
pred = TargetPredictionVIP(skill.range, skill.speed*1000, skill.delay/1000, skill.width)
elseif not VIP_USER then
pred = TargetPrediction(skill.range, skill.speed, skill.delay, skill.width)
end
return pred:GetPrediction(target)
end
AutoCarry.IsValidHitChance = function(skill, target)
if VIP_USER then
pred = TargetPredictionVIP(skill.range, skill.speed*1000, skill.delay/1000, skill.width)
return pred:GetHitChance(target) > SkillsMenu.hitChance/100 and true or false
elseif not VIP_USER then
return true
end
end
AutoCarry.GetNextAttackTime = function()
return (lastAttack + previousAttackCooldown) - GetLatency()/2
end
function CastTargettedSpell(skill, target)
if GetDistance(target) <= skill.range then
CastSpell(skill.spellKey, target)
end
end
function CastMouse(skill)
CastSpell(skill.spellKey, mousePos.x, mousePos.z)
end
function CastSelf(skill, target)
if not skill.forceRange or (skill.forceRange and GetDistance(target) - (skill.forceToHitBox and GetDistance(target, target.minBBox) or 0) <= skill.range) then
CastSpell(skill.spellKey)
end
end
function getPrediction(speed, delay, target)
if target == nil then return nil end
local travelDuration = (delay + GetDistance(myHero, target)/speed)
travelDuration = (delay + GetDistance(GetPredictionPos(target, travelDuration))/speed)
travelDuration = (delay + GetDistance(GetPredictionPos(target, travelDuration))/speed)
travelDuration = (delay + GetDistance(GetPredictionPos(target, travelDuration))/speed)
return GetPredictionPos(target, travelDuration)
end
function willHitMinion(predic, width)
for _, minion in pairs(enemyMinions.objects) do
if minion ~= nil and minion.valid and string.find(minion.name,"Minion_") == 1 and minion.team ~= player.team and minion.dead == false then
if predic ~= nil then
ex = player.x
ez = player.z
tx = predic.x
tz = predic.z
dx = ex - tx
dz = ez - tz
if dx ~= 0 then
m = dz/dx
c = ez - m*ex
end
mx = minion.x
mz = minion.z
distanc = (math.abs(mz - m*mx - c))/(math.sqrt(m*m+1))
if distanc < width and math.sqrt((tx - ex)*(tx - ex) + (tz - ez)*(tz - ez)) > math.sqrt((tx - mx)*(tx - mx) + (tz - mz)*(tz - mz)) then
return true
end
end
end
end
return false
end
--[[ Champion Specific ]]--
function LoadCustomChampionSupport()
-- >> Vayne << --
if myHero.charName == "Vayne" then
function BonusLastHitDamage()
if myHero:GetSpellData(_Q).level > 0 and myHero:CanUseSpell(_Q) == SUPRESSED then
return math.round( ((0.05*myHero:GetSpellData(_Q).level) + 0.25 )*myHero.totalDamage )
end
return 0
end
-- >> Teemo << --
elseif myHero.charName == "Teemo" then
function BonusLastHitDamage()
if myHero:GetSpellData(_E).level > 0 then
return math.floor( (myHero:GetSpellData(_E).level * 10) + (myHero.ap * 0.3) )
end
return 0
end
-- >> Corki << --
elseif myHero.charName == "Corki" then
function BonusLastHitDamage()
return myHero.totalDamage/10
end
-- >> Varus << --
elseif myHero.charName == "Varus" then
function BonusLastHitDamage()
if myHero:GetSpellData(_W).level > 0 then
return (6 + (myHero:GetSpellData(_W).level * 4) + (myHero.ap * 0.25))
end
return 0
end
-- >> Caitlyn << --
elseif myHero.charName == "Caitlyn" then
local headShotPart
function CustomOnCreateObj(obj)
if GetDistance(obj) < 100 and obj.name:lower():find("caitlyn_headshot_rdy") then
headShotPart = obj
end
end
function BonusLastHitDamage(minion)
if headShotPart and headShotPart.valid and minion and ValidTarget(minion) then
return myHero:CalcDamage(minion, myHero.totalDamage) * 1.5
end
return 0
end
-- >> Tristana << --
elseif myHero.charName == "Tristana" then
function CustomOnTick()
Skills[2].range = myHero.range
end
-- >> KogMaw << --
elseif myHero.charName == "KogMaw" then
function CustomOnTick()
Skills[2].range = getTrueRange() + 110 + (myHero:GetSpellData(_W).level * 20)
if myHero:GetSpellData(_R).level == 1 then
Skills[4].range = 1400
elseif myHero:GetSpellData(_R).level == 2 then
Skills[4].range = 1700
elseif myHero:GetSpellData(_R).level == 3 then
Skills[4].range = 2200
end
end
-- >> Twisted Fate << --
elseif myHero.charName == "TwistedFate" then
local tfLastUse = 0
TFConfig = scriptConfig("Sida's Auto Carry: Twisted Fate Edition", "autocarrytf")
TFConfig:addParam("selectgold", "Select Gold", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("W"))
TFConfig:addParam("selectblue", "Select Blue", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("E"))
TFConfig:addParam("selectred", "Select Red", SCRIPT_PARAM_ONKEYDOWN, false, string.byte("V"))
TFConfig:addParam("qStunned", "Auto Q Stunned Enemies", SCRIPT_PARAM_ONOFF, true)
function CustomOnTick()
PickACard()
if TFConfig.qStunned then
for _, enemy in pairs(AutoCarry.EnemyTable) do
if ValidTarget(enemy) and not enemy.canMove and GetDistance(enemy) < 1350 then
CastSpell(_Q, enemy.x, enemy.z)
end
end
end
end
function PickACard()
if myHero:CanUseSpell(_W) == READY and GetTickCount()-tfLastUse <= 2300 then
if myHero:GetSpellData(_W).name == selected then CastSpellEx(_W) end
end
if myHero:CanUseSpell(_W) == READY and GetTickCount()-tfLastUse >= 2400 then
if TFConfig.selectgold then selected = "goldcardlock"
elseif TFConfig.selectblue then selected = "bluecardlock"
elseif TFConfig.selectred then selected = "redcardlock"
else return end
CastSpellEx(_W)
tfLastUse = GetTickCount()
end
end
-- >> Draven << --
elseif myHero.charName == "Draven" then
local reticles = {}
local qStacks = 0
local closestReticle
local qBuff = 0
local stopped = false
local qRad = 150
disableRangeDraw = true
local qParticles = {"Draven_Q_mis",
"Draven_Q_mis_bloodless",
"Draven_Q_mis_shadow",
"Draven_Q_mis_shadow_bloodless",
"Draven_Qcrit_mis",
"Draven_Qcrit_mis_bloodless",
"Draven_Qcrit_mis_shadow",
"Draven_Qcrit_mis_shadow_bloodless" }
DravenConfig = scriptConfig("Sida's Auto Carry: Draven Edition", "autocarrdraven")
DravenConfig:addParam("HoldRange", "Stand Zone", SCRIPT_PARAM_SLICE, 130, 0, 450, 0)
DravenConfig:addParam("CatchRange", "Catch Axe Range", SCRIPT_PARAM_SLICE, 575, 0, 2000, 0)
DravenConfig:addParam("AutoW", "Keep W Buff Active Against Enemy", SCRIPT_PARAM_ONOFF, true)
DravenConfig:addParam("AutoCarry", "Use / Catch Axes: Auto Carry Mode", SCRIPT_PARAM_ONOFF, true)
DravenConfig:addParam("LastHit", "Use / Catch Axes: Last Hit Mode", SCRIPT_PARAM_ONOFF, true)
DravenConfig:addParam("LaneClear", "Use / Catch Axes: Lane Clear Mode", SCRIPT_PARAM_ONOFF, true)
DravenConfig:addParam("MixedMode", "Use / Catch Axes: Mixed Mode Mode", SCRIPT_PARAM_ONOFF, true)
DravenConfig:addParam("Reminder", "Display Reminder Text", SCRIPT_PARAM_ONOFF, true)
function Move(pos)
local moveSqr = math.sqrt((pos.x - myHero.x)^2+(pos.z - myHero.z)^2)
local moveX = myHero.x + 200*((pos.x - myHero.x)/moveSqr)
local moveZ = myHero.z + 200*((pos.z - myHero.z)/moveSqr)
myHero:MoveTo(moveX, moveZ)
end
function CustomOnProcessSpell(unit, spell)
if unit.isMe and spell.name == "dravenspinning" then
qStacks = qStacks + 1
end
end
function CustomOnCreateObj(obj)
if obj.name == "Draven_Q_buf.troy" then
qBuff = qBuff + 1
end
for _, particle in pairs(qParticles) do
if obj ~= nil and obj.valid and obj.name:lower():find(particle:lower()) and GetDistance(obj) < 333 then
attackedSuccessfully()
end
end
if obj ~= nil and obj.name ~= nil and obj.x ~= nil and obj.z ~= nil then
if obj.name == "Draven_Q_reticle_self.troy" then
table.insert(reticles, {object = obj, created = GetTickCount()})
elseif obj.name == "draven_spinning_buff_end_sound.troy" then
qStacks = 0
end
end
end
function CustomOnDeleteObj(obj)
if obj.name == "Draven_Q_reticle_self.troy" then
if GetDistance(obj) > qRad then
qStacks = qStacks - 1
end
for i, reticle in ipairs(reticles) do
if obj and obj.valid and reticle.object and reticle.object.valid and obj.x == reticle.object.x and obj.z == reticle.object.z then
table.remove(reticles, i)
end
end
elseif obj.name == "Draven_Q_buf.troy" then
qBuff = qBuff - 1
end
end
function axesActive()
if (AutoCarry.MainMenu.AutoCarry and DravenConfig.AutoCarry)
or (AutoCarry.MainMenu.LastHit and DravenConfig.LastHit)
or (AutoCarry.MainMenu.MixedMode and DravenConfig.MixedMode)
or (AutoCarry.MainMenu.LaneClear and DravenConfig.LaneClear) then
return true
end
return false
end
function CustomAttackEnemy(enemy)
if enemy.dead or not enemy.valid or disableAttacks then return end
if axesActive() and GetDistance(mousePos) <= DravenConfig.CatchRange then
if qStacks < 2 then CastSpell(_Q) end
end
myHero:Attack(enemy)
AutoCarry.shotFired = true
end
function CustomOnTick()
if myHero.dead then return end
if (AutoCarry.MainMenu.AutoCarry or AutoCarry.MainMenu.MixedMode) and DravenConfig.AutoW and ValidTarget(AutoCarry.Orbwalker.target) and not TargetHaveBuff("dravenfurybuff" , myHero) then
CastSpell(_W)
end
for _, particle in pairs(reticles) do
if closestReticle and closestReticle.object.valid and particle.object and particle.object.valid then
if GetDistance(particle.object) > GetDistance(closestReticle.object) then
closestReticle = particle
end
else
closestReticle = particle
end
end
if GetDistance(mousePos) <= DravenConfig.HoldRange and axesActive() then
if not stopped then
myHero:HoldPosition()
stopped = true
end
disableMovement = true
else
stopped = false
end
function doMovement()
disableMovement = true
disableAttacks = true
if myHero.canMove then Move({x = closestReticle.object.x, z = closestReticle.object.z}) end
end
if axesActive() and closestReticle and closestReticle.object and closestReticle.object.valid then
if GetDistance(mousePos) <= DravenConfig.CatchRange and ((AutoCarry.MainMenu.AutoCarry and ShouldCatch(closestReticle.object)) or (not AutoCarry.MainMenu.AutoCarry)) then
if GetDistance(closestReticle.object) > qRad then
doMovement()
else
disableMovement = true
disableAttacks = false
end
else
disableMovement = false
disableAttacks = false
end
elseif GetDistance(mousePos) <= DravenConfig.HoldRange then
disableMovement = true
disableAttacks = false
else
disableMovement = false
disableAttacks = false
end
end
function ShouldCatch(reticle)
local enemy
if AutoCarry.Orbwalker.target ~= nil then enemy = AutoCarry.Orbwalker.target
elseif AutoCarry.SkillsCrosshair.target ~= nil then enemy = AutoCarry.SkillsCrosshair.target
else return true end
if not reticle then return false end
if GetDistance(mousePos, enemy) > GetDistance(enemy) then
if GetDistance(reticle, enemy) < GetDistance(enemy) then
return false
end
return true
else
local closestEnemy
for _, thisEnemy in pairs(AutoCarry.EnemyTable) do
if not closestEnemy then closestEnemy = thisEnemy
elseif GetDistance(thisEnemy) < GetDistance(closestEnemy) then closestEnemy = thisEnemy end
end
if closestEnemy then
local predPos = getPrediction(1.9, 100, closestEnemy)
if not predPos then return true end
if GetDistance(reticle, predPos) > getTrueRange() + getHitBoxRadius(closestEnemy) then
return false
end
return true
else
return true
end
end
end
function BonusLastHitDamage(minion)
if myHero:GetSpellData(_Q).level > 0 and qBuff > 0 then
return ((myHero.damage + myHero.addDamage) * (0.35 + (0.1 * myHero:GetSpellData(_Q).level)))
end
return 0
end
function CustomOnDraw()
DrawCircle(myHero.x, myHero.y, myHero.z, DravenConfig.HoldRange, 0xFFFFFF)
DrawCircle(myHero.x, myHero.y, myHero.z, DravenConfig.HoldRange-1, 0xFFFFFF)
DrawCircle(myHero.x, myHero.y, myHero.z, DravenConfig.CatchRange-1, 0x19A712)
if axesActive() and DravenConfig.Reminder then
if GetDistance(mousePos) <= DravenConfig.HoldRange then
DrawText("Holding Position & Catching",16,100, 100, 0xFF00FF00)
elseif GetDistance(mousePos) <= DravenConfig.CatchRange then
DrawText("Orbwalking & Catching",16,100, 100, 0xFF00FF00)
else
DrawText("Only Orbwalking",16,100, 100, 0xFF00FF00)
end
end
end
end
end
--[[ Items ]]--
local items =
{
{name = "Blade of the Ruined King", menu = "BRK", id=3153, range = 450, reqTarget = true, slot = nil },
{name = "Bilgewater Cutlass", menu = "BWC", id=3144, range = 450, reqTarget = true, slot = nil },
{name = "Deathfire Grasp", menu = "DFG", id=3128, range = 750, reqTarget = true, slot = nil },
{name = "Hextech Gunblade", menu = "HGB", id=3146, range = 400, reqTarget = true, slot = nil },
{name = "Ravenous Hydra", menu = "RSH", id=3074, range = 350, reqTarget = false, slot = nil},
{name = "Sword of the Divine", menu = "STD", id=3131, range = 350, reqTarget = false, slot = nil},
{name = "Tiamat", menu = "TMT", id=3077, range = 350, reqTarget = false, slot = nil},
{name = "Entropy", menu = "ETR", id=3184, range = 350, reqTarget = false, slot = nil},
{name = "Youmuu's Ghostblade", menu = "YGB", id=3142, range = 350, reqTarget = false, slot = nil}
}
function UseItemsOnTick()
if AutoCarry.Orbwalker.target then
for _,item in pairs(items) do
item.slot = GetInventorySlotItem(item.id)
if item.slot ~= nil then
if item.reqTarget and GetDistance(AutoCarry.Orbwalker.target) <= item.range and item.menu ~= "BRK" then
CastSpell(item.slot, AutoCarry.Orbwalker.target)
elseif item.reqTarget and GetDistance(AutoCarry.Orbwalker.target) <= item.range and item.menu == "BRK" then
if myHero.health <= myHero.maxHealth*0.65 or GetDistance(AutoCarry.Orbwalker.target) > 400 then
CastSpell(item.slot, AutoCarry.Orbwalker.target)
end
elseif not item.reqTarget then
CastSpell(item.slot)
end
end
end
end
end
function SetMuramana()
if AutoCarry.Orbwalker.target ~= nil and ItemMenu.muraMana and not MuramanaIsActive() and (AutoCarry.MainMenu.AutoCarry or AutoCarry.MainMenu.MixedMode) then
MuramanaOn()
elseif AutoCarry.Orbwalker.target == nil and ItemMenu.muraMana and MuramanaIsActive() then
MuramanaOff()
end
end
--[[ Summoner Spells ]]--
local ignite, barrier, healthBefore, healthBeforeTimer, nextUpdate, nextCheck = nil, nil, 0, 0, 0, 0, 0
function SummonerOnLoad()
ignite = (player:GetSpellData(SUMMONER_1).name == "SummonerDot" and SUMMONER_1 or (player:GetSpellData(SUMMONER_2).name == "SummonerDot" and SUMMONER_2 or nil))
barrier = (player:GetSpellData(SUMMONER_1).name == "SummonerBarrier" and SUMMONER_1 or (player:GetSpellData(SUMMONER_2).name == "SummonerBarrier" and SUMMONER_2 or nil))
end
function SummonerOnTick()
if ignite and SummonerMenu.Ignite and myHero:CanUseSpell(ignite) == READY then
for _, enemy in pairs(GetEnemyHeroes()) do
if ValidTarget(enemy, 600) and enemy.health <= 50 + (20 * player.level) then
CastSpell(ignite, enemy)
end
end
end
if barrier and SummonerMenu.Barrier and myHero:CanUseSpell(barrier) == READY then
if GetTickCount() >= nextCheck then
local co = ((myHero.health / myHero.maxHealth * 100) - 20)*(0.3-0.1)/(100-20)+0.1
local proc = myHero.maxHealth * co
if healthBefore - myHero.health > proc and myHero.health < myHero.maxHealth * 0.3 then
CastSpell(barrier)
end
nextCheck = GetTickCount() + 100
if GetTickCount() >= nextUpdate then
healthBefore = myHero.health
healthBeforeTimer = GetTickCount()
nextUpdate = GetTickCount() + 1000
end
end
end
end
--[[ Plugins ]]--
if FileExist(LIB_PATH .."SidasAutoCarryPlugin - "..myHero.charName..".lua") then
hasPlugin = true
end
AutoCarry.GetAttackTarget = function(isCaster)
if not isCaster and ValidTarget(AutoCarry.Orbwalker.target) then
return AutoCarry.Orbwalker.target
else
AutoCarry.SkillsCrosshair:update()
return AutoCarry.SkillsCrosshair.target
end
end
AutoCarry.GetKillableMinion = function()
return killableMinion
end
AutoCarry.GetMinionTarget = function()
if killableMinion then
return killableMinion
elseif pluginMinion then
return pluginMinion
else
return nil
end
end
AutoCarry.EnemyMinions = function()
return enemyMinions
end
AutoCarry.AllyMinions = function()
return allyMinions
end
AutoCarry.GetJungleMobs = function()
return jungleMobs
end
AutoCarry.GetLastAttacked = function()
return lastAttacked
end
function OnApplyParticle(Unit, Particle)
if PluginOnApplyParticle then PluginOnApplyParticle(Unit, Particle) end
end
--[[ Callbacks ]]--
function OnLoad()
enemyMinions = minionManager(MINION_ENEMY, 2000, player, MINION_SORT_HEALTH_ASC)
allyMinions = minionManager(MINION_ALLY, 2000, player, MINION_SORT_HEALTH_ASC)
if getChampTable()[myHero.charName] then
ChampInfo = getChampTable()[myHero.charName]
end
OrbwalkingOnLoad()
SkillsOnLoad()
LastHitOnLoad()
SummonerOnLoad()
AutoCarry.EnemyTable = GetEnemyHeroes()
PriorityOnLoad()
setMenus()
StreamingMenu.DisableDrawing = false
if VIP_USER and PerformanceMenu.VipCol then
require "Collision"
PrintChat(">> Sida's Auto Carry: VIP Collision Enabled")
useVIPCol = true
end
if PluginOnLoad then PluginOnLoad() end
if not AutoCarry.OverrideCustomChampionSupport then LoadCustomChampionSupport() end
if CustomOnLoad then CustomOnLoad() end
PrintChat(">> Sida's Auto Carry: Revamped!")
end
function OnTick()
OrbwalkingOnTick()
LastHitOnTick()
SkillsOnTick()
SummonerOnTick()
setMovement()
SetMuramana()
if PluginOnTick then PluginOnTick() end
AutoCarry.CurrentlyShooting = (GetTickCount() + GetLatency()/2 < lastAttack + previousWindUp + 20 + 30)
if StreamingMenu.DisableDrawing and not hudDisabled then
for i = 0, 10 do
PrintChat("")
end
hudDisabled = true
DisableOverlay()
end
if (AutoCarry.MainMenu.AutoCarry and ItemMenu.UseItemsAC) or (AutoCarry.MainMenu.LastHit and ItemMenu.UseItemsLastHit) or (AutoCarry.MainMenu.MixedMode and ItemMenu.UseItemsMixed) then
UseItemsOnTick()
end
if AutoCarry.MainMenu.AutoCarry then
if AutoCarry.Orbwalker.target ~= nil and EnemyInRange(AutoCarry.Orbwalker.target) then
if timeToShoot() and AutoCarry.CanAttack then
attackEnemy(AutoCarry.Orbwalker.target)
elseif heroCanMove() then
moveToCursor()
end
elseif heroCanMove() then
moveToCursor()
end
end
if AutoCarry.MainMenu.LastHit then
if not ValidTarget(killableMinion) then killableMinion = getKillableCreep(1) end
if ValidTarget(killableMinion) and timeToShoot() and AutoCarry.CanAttack then
attackEnemy(killableMinion)
--elseif ValidTarget(turretMinion.obj) and timeToShoot() and AutoCarry.CanAttack and turretMinion.timeToHit > getTimeToHit(turretMinion.obj, projSpeed) then
-- attackEnemy(turretMinion.obj)
elseif heroCanMove() and FarmMenu.moveLastHit then
moveToCursor()
end
end
if AutoCarry.MainMenu.MixedMode then
if AutoCarry.Orbwalker.target ~= nil and EnemyInRange(AutoCarry.Orbwalker.target) then
if timeToShoot() and AutoCarry.CanAttack then
attackEnemy(AutoCarry.Orbwalker.target)
elseif heroCanMove() then
moveToCursor()
end
else
if not ValidTarget(killableMinion) then killableMinion = getKillableCreep(1) end
if ValidTarget(killableMinion) and timeToShoot() and AutoCarry.CanAttack then
attackEnemy(killableMinion)
elseif heroCanMove() and FarmMenu.moveMixed then
moveToCursor()
end
end
end
if AutoCarry.MainMenu.LaneClear then
if not ValidTarget(killableMinion) then killableMinion = getKillableCreep(1) end
if ValidTarget(killableMinion) and timeToShoot() and AutoCarry.CanAttack then
attackEnemy(killableMinion)
else
local tMinion = getHighestMinion()
if tMinion and ValidTarget(tMinion) and timeToShoot() and AutoCarry.CanAttack then
pluginMinion = tMinion
attackEnemy(tMinion)
else
if PerformanceMenu.JungleFarm then
local tMinion = getJungleMinion()
if tMinion and ValidTarget(tMinion) and timeToShoot() and AutoCarry.CanAttack then
pluginMinion = tMinion
attackEnemy(tMinion)
elseif heroCanMove() and FarmMenu.moveClear then
moveToCursor()
end
elseif heroCanMove() and FarmMenu.moveClear then
moveToCursor()
end
end
end
end
if CustomOnTick then CustomOnTick() end
end
function OnProcessSpell(unit, spell)
OrbwalkingOnProcessSpell(unit, spell)
LastHitOnProcessSpell(unit, spell)
if CustomOnProcessSpell then CustomOnProcessSpell(unit, spell) end
if PluginOnProcessSpell then PluginOnProcessSpell(unit, spell) end
end
function OnCreateObj(obj)
if myHero.dead or ChampInfo == nil then return end
if PerformanceMenu.JungleFarm then LastHitOnCreateObj(obj) end
if CustomOnCreateObj then CustomOnCreateObj(obj) end
if PluginOnCreateObj then PluginOnCreateObj(obj) end
end
function OnDeleteObj(obj)
if PerformanceMenu.JungleFarm then LastHitOnDeleteObj(obj) end
if CustomOnDeleteObj then CustomOnDeleteObj(obj) end
if PluginOnDeleteObj then PluginOnDeleteObj(obj) end
end
function OnAnimation(unit, animation)
if PluginOnAnimation then PluginOnAnimation(unit, animation) end
end
--function OnSendPacket(packet)
-- if PluginOnSendPacket then PluginOnSendPacket(packet) end
--end
function OnDraw()
if not DisplayMenu.disableAllDrawing then
if DisplayMenu.myRange and not disableRangeDraw then
DrawCircle(myHero.x, myHero.y, myHero.z, getTrueRange(), 0x19A712)
end
DrawCircle(myHero.x, myHero.y, myHero.z, AutoCarry.MainMenu.HoldZone, 0xFFFFFF)
OrbwalkingOnDraw()
LastHitOnDraw()
if CustomOnDraw then CustomOnDraw() end
if PluginOnDraw then PluginOnDraw() end
end
end
function OnWndMsg(msg, key)
if PluginOnWndMsg then PluginOnWndMsg(msg, key) end
end
--[[ Data ]]--
function getChampTable()
return {
Ahri = { projSpeed = 1.6},
Anivia = { projSpeed = 1.05},
Annie = { projSpeed = 1.0},
Ashe = { projSpeed = 2.0},
Brand = { projSpeed = 1.975},
Caitlyn = { projSpeed = 2.5},
Cassiopeia = { projSpeed = 1.22},
Corki = { projSpeed = 2.0},
Draven = { projSpeed = 1.4},
Ezreal = { projSpeed = 2.0},
FiddleSticks = { projSpeed = 1.75},
Graves = { projSpeed = 3.0},
Heimerdinger = { projSpeed = 1.4},
Janna = { projSpeed = 1.2},
Jayce = { projSpeed = 2.2},
Karma = { projSpeed = 1.2},
Karthus = { projSpeed = 1.25},
Kayle = { projSpeed = 1.8},
Kennen = { projSpeed = 1.35},
KogMaw = { projSpeed = 1.8},
Leblanc = { projSpeed = 1.7},
Lucian = { projSpeed = 2.0},
Lulu = { projSpeed = 2.5},
Lux = { projSpeed = 1.55},
Malzahar = { projSpeed = 1.5},
MissFortune = { projSpeed = 2.0},
Morgana = { projSpeed = 1.6},
Nidalee = { projSpeed = 1.7},
Orianna = { projSpeed = 1.4},
Quinn = { projSpeed = 1.85},
Ryze = { projSpeed = 2.4},
Sivir = { projSpeed = 1.4},
Sona = { projSpeed = 1.6},
Soraka = { projSpeed = 1.0},
Swain = { projSpeed = 1.6},
Syndra = { projSpeed = 1.2},
Teemo = { projSpeed = 1.3},
Tristana = { projSpeed = 2.25},
TwistedFate = { projSpeed = 1.5},
Twitch = { projSpeed = 2.5},
Urgot = { projSpeed = 1.3},
Vayne = { projSpeed = 2.0},
Varus = { projSpeed = 2.0},
Veigar = { projSpeed = 1.05},
Viktor = { projSpeed = 2.25},
Vladimir = { projSpeed = 1.4},
Xerath = { projSpeed = 1.2},
Ziggs = { projSpeed = 1.5},
Zilean = { projSpeed = 1.25},
Zyra = { projSpeed = 1.7},
}
end
function getSpellList()
local spellArray = nil
if myHero.charName == "Ezreal" then
spellArray = {
{ spellKey = _Q, range = 1100, speed = 2.0, delay = 250, width = 70, configName = "mysticShot", displayName = "Q (Mystic Shot)", enabled = true, skillShot = true, minions = true, reset = false, reqTarget = true },
{ spellKey = _W, range = 1050, speed = 1.6, delay = 250, width = 90, configName = "essenceFlux", displayName = "W (Essence Flux)", enabled = true, skillShot = true, minions = false, reset = false, reqTarget = true },
}
elseif myHero.charName == "KogMaw" then
spellArray = {
{ spellKey = _Q, range = 625, speed = 1.3, delay = 260, width = 200, configName = "causticSpittle", displayName = "Q (Caustic Spittle)", enabled = true, skillShot = false, minions = false, reset = true, reqTarget = true },
{ spellKey = _W, range = 625, speed = 1.3, delay = 260, width = 200, configName = "bioArcaneBarrage", displayName = "W (Bio-Arcane Barrage)", enabled = true, forceRange = true, forceToHitBox = true, skillShot = false, minions = false, reset = false, reqTarget = false },
{ spellKey = _E, range = 850, speed = 1.3, delay = 260, width = 200, configName = "voidOoze", displayName = "E (Void Ooze)", enabled = true, skillShot = true, minions = false, reset = false, reqTarget = true },
{ spellKey = _R, range = 1700, speed = math.huge, delay = 1000, width = 200, configName = "livingArtillery", displayName = "R (Living Artillery)", enabled = true, skillShot = true, minions = false, reset = false, reqTarget = true },
}
elseif myHero.charName == "Sivir" then
spellArray = {
{ spellKey = _Q, range = 1000, speed = 1.33, delay = 250, width = 120, configName = "boomerangBlade", displayName = "Q (Boomerang Blade)", enabled = true, skillShot = true, minions = false, reset = false, reqTarget = true },
{ spellKey = _W, range = getTrueRange(), speed = 1, delay = 0, width = 200, configName = "Ricochet", displayName = "W (Ricochet)", enabled = true, skillShot = false, minions = false, reset = true, reqTarget = true },
}
elseif myHero.charName == "Graves" then
spellArray = {
{ spellKey = _Q, range = 750, speed = 2, delay = 250, width = 200, configName = "buckShot", displayName = "Q (Buck Shot)", enabled = true, skillShot = true, minions = false, reset = false, reqTarget = true },
{ spellKey = _W, range = 700, speed = 1400, delay = 300, width = 500, configName = "smokeScreen", displayName = "W (Smoke Screen)", enabled = false, skillShot = true, minions = false, reset = false, reqTarget = true },
{ spellKey = _E, range = 580, speed = 1450, delay = 250, width = 200, configName = "quickDraw", displayName = "E (Quick Draw)", enabled = true, skillShot = false, minions = false, reset = true, reqTarget = false, atMouse = true },
}
elseif myHero.charName == "Corki" then
spellArray = {
{ spellKey = _Q, range = 600, speed = 2, delay = 200, width = 500, configName = "phosphorusBomb", displayName = "Q (Phosphorus Bomb)", enabled = true, skillShot = true, minions = false, reset = false, reqTarget = true },
{ spellKey = _R, range = 1225, speed = 2, delay = 200, width = 50, configName = "missileBarrage", displayName = "R (Missile Barrage)", enabled = true, skillShot = true, minions = true, reset = false, reqTarget = true },
}
elseif myHero.charName == "Teemo" then
spellArray = {
{ spellKey = _Q, range = 580, speed = 2, delay = 0, width = 200, configName = "blindingDart", displayName = "Q (Blinding Dart)", enabled = true, skillShot = false, minions = false, reset = false, reqTarget = true },
}
elseif myHero.charName == "TwistedFate" then
spellArray = {
{ spellKey = _Q, range = 1200, speed = 1.45, delay = 250, width = 200, configName = "wildCards", displayName = "Q (Wild Cards)", enabled = true, skillShot = true, minions = false, reset = false, reqTarget = true },
}
elseif myHero.charName == "Vayne" then
spellArray = {
{ spellKey = _Q, range = 580, speed = 1.45, delay = 250, width = 200, configName = "tumble", displayName = "Q (Tumble)", enabled = true, skillShot = false, minions = false, reset = true, reqTarget = false, atMouse = true },
{ spellKey = _R, range = 580, speed = 1.45, delay = 250, width = 200, configName = "finalHour", displayName = "R (Final Hour)", enabled = true, skillShot = false, minions = false, reset = false, reqTarget = false},
}
elseif myHero.charName == "MissFortune" then
spellArray = {
{ spellKey = _Q, range = 650, speed = 1.45, delay = 250, width = 200, configName = "doubleUp", displayName = "Q (Double Up)", enabled = true, skillShot = false, minions = false, reset = true, reqTarget = true},
{ spellKey = _W, range = 580, speed = 1.45, delay = 250, width = 200, configName = "impureShots", displayName = "W (Impure Shots)", enabled = true, skillShot = false, minions = false, reset = false, reqTarget = false},
{ spellKey = _E, range = 800, speed = math.huge, delay = 500, width = 500, configName = "makeItRain", displayName = "E (Make It Rain)", enabled = false, skillShot = true, minions = false, reset = false, reqTarget = true },
}
elseif myHero.charName == "Tristana" then
spellArray = {
{ spellKey = _Q, range = 580, speed = 1.45, delay = 250, width = 200, configName = "rapidFire", displayName = "Q (Rapid Fire)", enabled = true, skillShot = false, minions = false, reset = false, reqTarget = false},
{ spellKey = _E, range = 550, speed = 1.45, delay = 250, width = 200, configName = "explosiveShot", displayName = "E (Explosive Shot)", enabled = true, skillShot = false, minions = false, reset = false, reqTarget = true},
}
elseif myHero.charName == "Draven" then
spellArray = {
{ spellKey = _E, range = 950, speed = 1.37, delay = 300, width = 130, configName = "standAside", displayName = "E (Stand Aside)", enabled = true, skillShot = true, minions = false, reset = false, reqTarget = true},
}
--[[ Added Champs ]]
elseif myHero.charName == "Kennen" then
spellArray = {
{ spellKey = _Q, range = 1050, speed = 1.65, delay = 180, width = 80, configName = "thunderingShuriken", displayName = "Q (Thundering Shuriken)", enabled = true, skillShot = true, minions = true, reset = false, reqTarget = true },
}
elseif myHero.charName == "Ashe" then
spellArray = {
{ spellKey = _W, range = 1200, speed = 2.0, delay = 120, width = 85, configName = "Volley", displayName = "W (Volley)", enabled = true, skillShot = true, minions = true, reset = false, reqTarget = true }
_________________
help me inject lua scripts in lol |
|