Advertisement
roach_

[2.0b] SidasAutoCarryPlugin - Pantheon

Dec 3rd, 2013
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --[[
  2.  
  3.         Auto Carry Plugin - Pantheon Edition
  4.         Author: Roach_
  5.         Version: 2.0b
  6.         Copyright 2013
  7.  
  8.         Dependency: Sida's Auto Carry: Revamped
  9.  
  10.         How to install:
  11.             Make sure you already have AutoCarry installed.
  12.             Name the script EXACTLY "SidasAutoCarryPlugin - Pantheon.lua" without the quotes.
  13.             Place the plugin in BoL/Scripts/Common folder.
  14.  
  15.         Features:
  16.             Combo with Autocarry
  17.             Fully supports E with movement/attack disable
  18.             Harass with Mixed Mode
  19.             Killsteal with Q/W or W+Q
  20.             Draw Combo Range
  21.             Draw Critical Hit on Target
  22.             Escape Artist(with Flash)
  23.  
  24.         History:
  25.             Version: 2.0b
  26.                 Fixed Auto Potions
  27.                 Changed Min Mana Display in Menu
  28.                 Removed Auto Spell Leveler from Menu as it's not done yet
  29.            
  30.             Version: 2.0a
  31.                 Added a Toggle for for Core Combo
  32.                 Added an Extra Menu
  33.                 Added Customizable Chase Combo
  34.                 Added Farm with Q
  35.                 Added Lane Clear with E
  36.                 Added Auto Pots/Items
  37.                 Added Minimum Mana to Harass/Farm - Check
  38.                 Modified Menu - More customizable
  39.                 Modified KS only with Q
  40.                 Modified Harass - Working with Mixed Mode
  41.                 Optimised Chase Combo
  42.                 Rewrited some Functions
  43.                 -- Fully Optimised the Script
  44.                
  45.             Version: 1.1c
  46.                 Added Chase Combo
  47.                 Fixed a bug where E was not casting
  48.                 Changed Plugin Menu
  49.                 Added a Mini-Menu
  50.                 Fixed "Draw Crit Text"
  51.        
  52.             Version: 1.1b
  53.                 Auto combo after Ultimate. (With a check!)
  54.                 Toggle for Auto Q Harass when in enemy range , with a mana check. (You will harass them until you'll have Mana for one last Combo)
  55.        
  56.             Version: 1.1a
  57.                 Optimised Escape Artist
  58.                 Optimised Killsteal(You can KS with Q+W)
  59.                 Fixed Ultimate Bugsplat(TESTED)
  60.                 Fixed Mixed Mode Harass
  61.                 Re-wrote majority of the Functions
  62.                 Hopefully fixed DCT(Draw Critical Text)
  63.                 Changed Circle's Color(Range Circle)
  64.                 Speeded-Up the Script(Some FPS Drops on Escape Artist and Ultimate)
  65.                
  66.             Version: 1.0d
  67.                 Fixed Escape Artist
  68.                 Fixed a problem with Flash, it was flashing before Stunning the enemy
  69.                 Optimised Escape Artist
  70.                 Fully removed Auto-Ignite
  71.                 Fixed all the Bugsplats (TESTED)
  72.                 Hopefully fixed Mixed Mode Harass
  73.                
  74.             Version: 1.0c
  75.                 Real fix for E.
  76.                 Fixed Killsteal.
  77.                 Hopefully fixed OnTick bugsplat.
  78.                 Removed Auto-Ignite, because it exists in SAC too.
  79.            
  80.             Version: 1.0b
  81.                 Temporarily fix for E.
  82.                 Fixed some bugsplats on draw.
  83.            
  84.             Version: 1.0a
  85.                 First release
  86. --]]
  87. if myHero.charName ~= "Pantheon" then return end
  88.  
  89. local Target
  90. local pEscapeHotkey = string.byte("T")
  91. local pChaseComboHotkey = string.byte("N")
  92.  
  93. -- Prediction
  94. local qwRange, eRange = 600, 300
  95.  
  96. local FlashSlot = nil
  97.  
  98. local SkillQ = {spellKey = _Q, range = cRange, speed = 2, delay = 0, width = 200, configName = "spearShot", displayName = "Q (Spear Shot)", enabled = true, skillShot = false, minions = false, reset = false, reqTarget = true }
  99. local SkillW = {spellKey = _W, range = cRange, speed = 2, delay = 0, width = 200, configName = "AoZ", displayName = "W (Aegis of Zeonia)", enabled = true, skillShot = false, minions = false, reset = false, reqTarget = true }
  100. local SkillE = {spellKey = _E, range = eRange, speed = 2, delay = 0, width = 200, configName = "heartseekerStrike", displayName = "E (Heartseeker Strike)", enabled = true, skillShot = true, minions = false, reset = false, reqTarget = true }
  101.  
  102. local QReady, WReady, EReady, RReady, FlashReady = false, false, false, false, false
  103.  
  104. -- Regeneration
  105. local UsingHPot, UsingMPot, UsingFlask, Recall = false, false, false, false
  106.  
  107. -- Our lovely script
  108. function PluginOnLoadMenu()
  109.     Menu = AutoCarry.PluginMenu
  110.     Menu2 = AutoCarry.MainMenu
  111.     Menu:addParam("pPlugin", "[Cast Options]", SCRIPT_PARAM_INFO, "")
  112.     Menu:addParam("pCombo", "[Combo Options]", SCRIPT_PARAM_INFO, "")
  113.     Menu:addParam("pAutoQ", "Auto Cast Q", SCRIPT_PARAM_ONOFF, true)
  114.     Menu:addParam("pAutoW", "Auto Cast W", SCRIPT_PARAM_ONOFF, true)
  115.     Menu:addParam("pAutoE", "Auto Cast E", SCRIPT_PARAM_ONOFF, true)
  116.     Menu:permaShow("pPlugin")
  117.    
  118.     Menu:addParam("pGap", "", SCRIPT_PARAM_INFO, "")
  119.    
  120.     Menu:addParam("pChase", "[Chase Combo Options]", SCRIPT_PARAM_INFO, "")
  121.     Menu:addParam("pChaseCombo", "Use Chase Combo", SCRIPT_PARAM_ONKEYDOWN, false, pChaseComboHotkey)
  122.     Menu:addParam("pAutoCW", "Auto Cast W - Chase", SCRIPT_PARAM_ONOFF, true)
  123.     Menu:addParam("pAutoCE", "Auto Cast E - Chase", SCRIPT_PARAM_ONOFF, true)
  124.     Menu:addParam("pAutoCQ", "Auto Cast Q - Chase", SCRIPT_PARAM_ONOFF, true)
  125.     Menu:permaShow("pChase")
  126.     Menu:permaShow("pChaseCombo")
  127.    
  128.     Menu:addParam("pGap", "", SCRIPT_PARAM_INFO, "")
  129.    
  130.     Menu:addParam("pKS", "[Kill Steal Options]", SCRIPT_PARAM_INFO, "")
  131.     Menu:addParam("pKillsteal", "Auto Kill Steal with Q", SCRIPT_PARAM_ONOFF, true)
  132.     Menu:permaShow("pKS")
  133.     Menu:permaShow("pKillsteal")
  134.    
  135.     Menu:addParam("pGap", "", SCRIPT_PARAM_INFO, "")
  136.    
  137.     Menu:addParam("pMisc", "[Misc Options]", SCRIPT_PARAM_INFO, "")
  138.     -- Menu:addParam("pAutoLVL", "Auto Level Spells", SCRIPT_PARAM_ONOFF, false)
  139.     Menu:addParam("pMinMana", "Minimum Mana to Farm/Harass", SCRIPT_PARAM_SLICE, 40, 0, 100, -1)
  140.     Menu:addParam("pEscape", "Escape Artist", SCRIPT_PARAM_ONKEYDOWN, false, pEscapeHotkey)
  141.     Menu:addParam("pEscapeFlash", "Escape: Flash to Mouse", SCRIPT_PARAM_ONOFF, false)
  142.     Menu:permaShow("pMisc")
  143.     Menu:permaShow("pEscape")
  144.    
  145.     Menu:addParam("pGap", "", SCRIPT_PARAM_INFO, "")
  146.    
  147.     Menu:addParam("pH", "[Harass Options]", SCRIPT_PARAM_INFO, "")
  148.     Menu:addParam("pHarass", "Auto Harass with Q", SCRIPT_PARAM_ONOFF, true)
  149.    
  150.     Menu:addParam("pGap", "", SCRIPT_PARAM_INFO, "")
  151.    
  152.     Menu:addParam("pFarm", "[Farm Options]", SCRIPT_PARAM_INFO, "")
  153.     Menu:addParam("pFarmQ", "Auto Farm with Q", SCRIPT_PARAM_ONOFF, false)
  154.     Menu:addParam("pFarmE", "Auto Clear Lane with E", SCRIPT_PARAM_ONOFF, false)
  155.    
  156.     Extras = scriptConfig("Sida's Auto Carry Plugin: "..myHero.charName..": Extras", myHero.charName)
  157.     Extras:addParam("pDraw", "[Draw Options]", SCRIPT_PARAM_INFO, "")
  158.     Extras:addParam("pDCR", "Draw Combo Range", SCRIPT_PARAM_ONOFF, true)
  159.     Extras:addParam("pDCT", "Draw Crit Text", SCRIPT_PARAM_ONOFF, true)
  160.    
  161.     Extras:addParam("pGap", "", SCRIPT_PARAM_INFO, "")
  162.    
  163.     Extras:addParam("pHPMana", "[Auto Pots/Items Options]", SCRIPT_PARAM_INFO, "")
  164.     Extras:addParam("pWItem", "Auto Wooglets", SCRIPT_PARAM_ONOFF, true)
  165.     Extras:addParam("pWHealth", "Min Health % for Wooglets", SCRIPT_PARAM_SLICE, 15, 0, 100, -1)
  166.     Extras:addParam("pHP", "Auto Health Pots", SCRIPT_PARAM_ONOFF, true)
  167.     Extras:addParam("pMP", "Auto Auto Mana Pots", SCRIPT_PARAM_ONOFF, true)
  168.     Extras:addParam("pHPHealth", "Min % for Health Pots", SCRIPT_PARAM_SLICE, 50, 0, 100, -1)
  169. end
  170.  
  171. function PluginOnLoad()
  172.     -- Params/PluginMenu
  173.     PluginOnLoadMenu()
  174.    
  175.     -- Range
  176.     AutoCarry.SkillsCrosshair.range = qwRange
  177.    
  178.     lastAnimation = nil
  179. end
  180.  
  181.  
  182. function PluginOnTick()
  183.     if Recall then return end
  184.  
  185.     -- Get Attack Target
  186.     Target = AutoCarry.GetAttackTarget()
  187.  
  188.     -- Check Spells
  189.     pSpellCheck()
  190.  
  191.     -- Check if myHero is using _E
  192.     if isChanneling("Spell3") then
  193.         AutoCarry.CanAttack = false
  194.         AutoCarry.CanMove = false
  195.     else
  196.         AutoCarry.CanAttack = true
  197.         AutoCarry.CanMove = true
  198.     end
  199.  
  200.     -- Combo, Harass, Killsteal, Escape Combo, Farm - Checks
  201.     pCombo()
  202.     pChaseCombo()
  203.     pHarass()
  204.     pKillsteal()
  205.     pEscapeCombo()
  206.     pFarm()
  207.    
  208.     -- Draw Critical Text
  209.     pDrawCritText()
  210.    
  211.     -- Auto Regeneration
  212.     if Extras.WItem and IsMyHealthLow() and Target and WGTReady then CastSpell(wgtSlot) end
  213.     if Extras.pHP and NeedHP() and not (UsingHPot or UsingFlask) and (HPReady or FSKReady) then CastSpell((hpSlot or fskSlot)) end
  214.     if Extras.pMP and IsMyManaLow() and not (UsingMPot or UsingFlask) and(MPReady or FSKReady) then CastSpell((mpSlot or fskSlot)) end
  215. end
  216.  
  217. function PluginOnDraw()
  218.     -- Draw Panth's Range = 600
  219.     if not myHero.dead and Extras.pDCR then
  220.         DrawCircle(myHero.x, myHero.y, myHero.z, qwRange, 0x00FF00)
  221.     end
  222. end
  223.  
  224. -- Animation Detection
  225. function PluginOnAnimation(unit, animationName)
  226.     -- Set lastAnimation = Last Animation used
  227.     if unit.isMe and lastAnimation ~= animationName then lastAnimation = animationName end
  228. end
  229.  
  230. -- Object Detection
  231. function PluginOnCreateObj(obj)
  232.     if obj.name:find("TeleportHome.troy") then
  233.         if GetDistance(obj, myHero) <= 70 then
  234.             Recall = true
  235.         end
  236.     end
  237.     if obj.name:find("Regenerationpotion_itm.troy") then
  238.         if GetDistance(obj, myHero) <= 70 then
  239.             UsingHPot = true
  240.         end
  241.     end
  242.     if obj.name:find("Global_Item_HealthPotion.troy") then
  243.         if GetDistance(obj, myHero) <= 70 then
  244.             UsingHPot = true
  245.             UsingFlask = true
  246.         end
  247.     end
  248.     if obj.name:find("Global_Item_ManaPotion.troy") then
  249.         if GetDistance(obj, myHero) <= 70 then
  250.             UsingFlask = true
  251.             UsingMPot = true
  252.         end
  253.     end
  254. end
  255.  
  256. function PluginOnDeleteObj(obj)
  257.     if obj.name:find("TeleportHome.troy") then
  258.         Recall = false
  259.     end
  260.     if obj.name:find("Regenerationpotion_itm.troy") then
  261.         UsingHPot = false
  262.     end
  263.     if obj.name:find("Global_Item_HealthPotion.troy") then
  264.         UsingHPot = false
  265.         UsingFlask = false
  266.     end
  267.     if obj.name:find("Global_Item_ManaPotion.troy") then
  268.         UsingMPot = false
  269.         UsingFlask = false
  270.     end
  271. end
  272.  
  273. -- Custom Functions
  274. function pCombo()
  275.     if Menu.pCombo and Menu2.AutoCarry then
  276.         if ValidTarget(Target) then
  277.             if QReady and Menu.pAutoQ and GetDistance(Target) < qwRange then
  278.                 CastSpell(SkillQ.spellKey, Target)
  279.             end
  280.            
  281.             if WReady and Menu.pAutoW and GetDistance(Target) < qwRange then
  282.                 CastSpell(SkillW.spellKey, Target)
  283.             end
  284.            
  285.             if EReady and Menu.pAutoE and GetDistance(Target) < eRange then
  286.                 AutoCarry.CastSkillshot(SkillE, Target)
  287.             end
  288.         end
  289.     end
  290. end
  291.  
  292. function pHarass()
  293.     if Menu.pHarass and Menu2.MixedMode then
  294.         if ValidTarget(Target) then
  295.             if QReady and GetDistance(Target) < qwRange and (myHero.mana / myHero.maxMana) > Menu.pMinMana then
  296.                 CastSpell(SkillQ.spellKey, Target)
  297.                 myHero:Attack(Target)
  298.             end
  299.         end
  300.     end
  301. end
  302.  
  303. function pFarm()
  304.     if Menu.pFarmQ and (Menu2.LastHit) and (myHero.mana / myHero.maxMana) > Menu.pMinMana then
  305.         for _, minion in pairs(AutoCarry.EnemyMinions().objects) do
  306.             if ValidTarget(minion) and QReady and GetDistance(minion) <= qwRange then
  307.                 if minion.health < getDmg("Q", minion, myHero) then
  308.                     CastSpell(_Q, minion)
  309.                 end
  310.             end
  311.         end
  312.     end
  313.     if Menu.pFarmE and (Menu2.LaneClear) and (myHero.mana / myHero.maxMana) > Menu.pMinMana then
  314.         for _, minion in pairs(AutoCarry.EnemyMinions().objects) do
  315.             if ValidTarget(minion) and EReady and GetDistance(minion) <= eRange then
  316.                 if minion.health < getDmg("E", minion, myHero) then
  317.                     CastSpell(_E, minion)
  318.                 end
  319.             end
  320.         end
  321.     end
  322. end
  323.  
  324. function pChaseCombo()
  325.     if Menu.pChaseCombo then
  326.         if ValidTarget(Target) then
  327.             if WReady and Menu.pAutoCW  and GetDistance(Target) < qwRange then
  328.                 CastSpell(SkillW.spellKey, Target)
  329.             end
  330.            
  331.             if EReady and Menu.pAutoCE and GetDistance(Target) < eRange then
  332.                 AutoCarry.CastSkillshot(SkillE, Target)
  333.             end
  334.            
  335.             if QReady and Menu.pAutoCQ and GetDistance(Target) < qwRange and isChanneling("Spell3") then
  336.                 CastSpell(SkillQ.spellKey, Target)
  337.             end
  338.         end
  339.         if not isChanneling("Spell3") then
  340.             myHero:MoveTo(mousePos.x, mousePos.z)
  341.         end
  342.        
  343.     end
  344. end
  345.  
  346. function pKillsteal()
  347.     if Menu.pKillsteal then
  348.         for _, enemy in pairs(AutoCarry.EnemyTable) do
  349.             if QReady then
  350.                 if ValidTarget(enemy) and GetDistance(enemy) < qwRange and enemy.health < getDmg("Q", enemy, myHero) then
  351.                     CastSpell(SkillQ.spellKey, enemy)
  352.                 end
  353.             end
  354.         end
  355.     end
  356. end
  357.  
  358. function pEscapeCombo()
  359.     if Menu.pEscape then
  360.         if WReady and GetDistance(Target) < qwRange then
  361.             CastSpell(SkillW.spellKey, Target)
  362.             if Menu.pEscapeFlash and FlashReady and GetDistance(mousePos) > 300 and isChanneling("Spell2") then
  363.                 CastSpell(FlashSlot, mousePos.x, mousePos.z)
  364.             end
  365.         end
  366.        
  367.         if Menu.pEscapeFlash then
  368.             myHero:MoveTo(mousePos.x, mousePos.z)
  369.         end
  370.     end
  371. end
  372.  
  373. function isChanneling(animationName)
  374.     if lastAnimation == animationName then
  375.         return true
  376.     else
  377.         return false
  378.     end
  379. end
  380.  
  381. function pSpellCheck()
  382.     wgtSlot = GetInventorySlotItem(3090)
  383.     hpSlot, mpSlot, fskSlot = GetInventorySlotItem(2003),GetInventorySlotItem(2004),GetInventorySlotItem(2041)
  384.  
  385.     if myHero:GetSpellData(SUMMONER_1).name:find("SummonerFlash") then
  386.         FlashSlot = SUMMONER_1
  387.     elseif myHero:GetSpellData(SUMMONER_2).name:find("SummonerFlash") then
  388.         FlashSlot = SUMMONER_2
  389.     end
  390.  
  391.     QReady = (myHero:CanUseSpell(SkillQ.spellKey) == READY)
  392.     WReady = (myHero:CanUseSpell(SkillW.spellKey) == READY)
  393.     EReady = (myHero:CanUseSpell(SkillE.spellKey) == READY)
  394.     RReady = (myHero:CanUseSpell(_R) == READY)
  395.     WGTReady = (wgtSlot ~= nil and myHero:CanUseSpell(wgtSlot) == READY)
  396.     HPReady = (hpSlot ~= nil and myHero:CanUseSpell(hpSlot) == READY)
  397.     MPReady = (mpSlot ~= nil and myHero:CanUseSpell(mpSlot) == READY)
  398.     FSKReady = (fskSlot ~= nil and myHero:CanUseSpell(fskSlot) == READY)
  399.  
  400.     FlashReady = (FlashSlot ~= nil and myHero:CanUseSpell(FlashSlot) == READY)
  401. end
  402.  
  403. function pDrawCritText()
  404.     if not myHero.dead and Extras.pDCT then
  405.         for _, enemy in pairs(AutoCarry.EnemyTable) do
  406.             if ValidTarget(enemy) then
  407.                 if enemy.health <= enemy.maxHealth*0.15 then
  408.                     PrintFloatText(enemy, 10, "Critical Hit!")
  409.                 end
  410.             end
  411.         end
  412.     end
  413. end
  414.  
  415. -- Auto Potions
  416. function IsMyManaLow()
  417.     if (myHero.mana / myHero.maxMana) <= (Menu.pMinMana / 100) then
  418.         return true
  419.     else
  420.         return false
  421.     end
  422. end
  423.  
  424. function IsMyHealthLow()
  425.     if (myHero.health / myHero.maxHealth) <= (Extras.WHealth / 100) then
  426.         return true
  427.     else
  428.         return false
  429.     end
  430. end
  431.  
  432. function NeedHP()
  433.     if (myHero.health / myHero.maxHealth) <= (Extras.pHPHealth / 100) then
  434.         return true
  435.     else
  436.         return false
  437.     end
  438. end
  439.  
  440. --UPDATEURL=https://raw.github.com/RoachxD/BoL_Scripts/master/Common/SidasAutoCarryPlugin%20-%20Pantheon.lua
  441. --HASH=D2A4E405F4D438CE222C0762EFC64C5E
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement