Advertisement
mwow

Sida Orbwalking + Lasthit

Nov 13th, 2012
472
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 25.94 KB | None | 0 0
  1. -- ###################################################################################################### --
  2. -- #                                                                                                    # --
  3. -- #                                    Auto Carry - Extreme Orbwalking                                 # --
  4. -- #                                                by Sida                                             # --
  5. -- #                                                                                                    # --
  6. -- ###################################################################################################### --
  7.  
  8. if myHero == nil then myHero = GetMyHero() end
  9. require "AllClass"
  10. require "minionArray"
  11.  
  12. -- ########### Configuration ############
  13.  
  14. autoCarryKey = string.byte("F") -- The hotkey you will press to Orbwalk
  15. lastHitHarrassKey = string.byte("C") -- The hotkey you will press to Orbwalk
  16. rangeBuffer = 75 -- The range to use as your "buffer". This is the blue marker in-game. You will orbwalk towards an enemy until they hit your buffer range.
  17. safeRange = 250 -- Your "OSHIT" range. This is the red marker in-game. If an enemy is within this range and your mouse is aiming away from them, you'll just run the hell away until they are out of this range.
  18. targetClosest = true -- Always target closest enemy
  19. adjustRange = true -- Adjust our range indicator to show where our target is
  20.  
  21. -- ########### End Configuration ############
  22.  
  23. startAttackSpeed = 0.625
  24. local lastAttack = GetTickCount()
  25. local shotFired = false
  26. local shotFiredAt = GetTickCount()
  27. local range = 999
  28. local greenRange = 0
  29. local isMoving = false
  30. local tp
  31. local ts
  32.  
  33. -- ########### Lasthit ############
  34. local minionTable, abilityminionTable = {}, {}
  35. local incDmg = {}
  36. local objminionTable = {}
  37. local scanAdditionalRange = 100
  38. local units = {}
  39. local unitCount = 0
  40. local killableCreep = nil
  41.  
  42. -- ########### Range Bonus ############
  43. local attackRangeBonus = 0
  44. local attackRangeBonusTimeout = 0
  45. local lastAttackRange = myHero.range
  46.  
  47. local weAtBottom = ( myHero.team == 100 )
  48. local minionInfo = {}
  49. minionInfo[(weAtBottom and "Blue" or "Red").."_Minion_Basic"] =      { aaDelay = 400, projSpeed = 0    }
  50. minionInfo[(weAtBottom and "Blue" or "Red").."_Minion_Caster"] =     { aaDelay = 484, projSpeed = 0.68 }
  51. minionInfo[(weAtBottom and "Blue" or "Red").."_Minion_Wizard"] =     { aaDelay = 484, projSpeed = 0.68 }
  52. minionInfo[(weAtBottom and "Blue" or "Red").."_Minion_MechCannon"] = { aaDelay = 365, projSpeed = 1.18 }
  53. minionInfo.obj_AI_Turret =                                           { aaDelay = 150, projSpeed = 1.14 }
  54. -- ########### ############
  55.  
  56. function attackEnemy(enemy) -- Commands our hero to attack the target
  57.     myHero:Attack(enemy)
  58.     lastAttack = GetTickCount()
  59.     shotFired = false
  60. end
  61.  
  62. function timeToShoot() -- Returns if it's time for us to attack
  63.     if GetTickCount() >= getNextAttackTime() then return true
  64.     else return false end
  65. end
  66.  
  67. function getNextAttackTime() -- Returns when we should next attack
  68.     return getLastAttackTime() + (1000/getAttackSpeed())
  69. end
  70.  
  71. function getLastAttackTime() -- Returns when we last attacked
  72.     return lastAttack
  73. end
  74.  
  75. function updateRange()
  76.     if KCConfig.targetClosest then
  77.         local closestEnemy = findClosestEnemy()
  78.         if closestEnemy ~= nil then
  79.             if isEnemyInAttackRange(closestEnemy) then
  80.                 range = GetDistance(closestEnemy)
  81.                 if getDistanceOffset(closestEnemy) > 0 then
  82.                     greenRange = (GetDistance(closestEnemy) + getDistanceOffset(closestEnemy)) - getHitBoxRadius(closestEnemy)
  83.                 else
  84.                     range = getMyTrueRange()
  85.                     greenRange = getMyTrueRange()
  86.                 end
  87.             else
  88.                 range = getMyTrueRange()
  89.                 greenRange = getMyTrueRange()
  90.             end
  91.         else
  92.             range = getMyTrueRange()
  93.             greenRange = getMyTrueRange()
  94.         end
  95.     else
  96.         range = getMyTrueRange()
  97.         greenRange = getMyTrueRange()
  98.     end
  99.     if player.charName == "Tristana" then
  100.         attackRangeBonus = player.level*9
  101.     elseif player.charName == "Twitch" then
  102.         if attackRangeBonusTimeout > GetTickCount() then
  103.             attackRangeBonus = 300
  104.         else
  105.             attackRangeBonus = 0
  106.         end
  107.     end
  108.     ts = TargetSelector(TARGET_LOW_HP, range+attackRangeBonus, DAMAGE_PHYSICAL or DAMAGE_MAGIC, false)
  109.     ts:update()
  110. end
  111.  
  112. function getDistanceOffset(enemy)
  113.     distance = GetDistance(enemy) - getHitBoxRadius(enemy) + 60
  114.     distanceRange = getMyTrueRange()
  115.     if distance > distanceRange then return 0 end
  116.     return distance / 9.85
  117. end
  118.  
  119. function getMinimumRunTimeWhenChasing() -- Returns the minimum amount of time we will run for before shooting if we are chasing
  120.     return 300
  121. end
  122.  
  123. function getMinimumRunTimeWhenFleeing() -- Returns the minimum amount of time we will run for before shooting if we are fleeing
  124.     return 1000
  125. end
  126.  
  127. function getSafeRange() -- Return the range we consider a "safe" range from the closest enemy
  128.     return safeRange
  129. end
  130.  
  131.  
  132. function isEnemyInAttackRange(enemy) -- Check if we can attack enemy
  133.     local enemyDistance, enemyTrueDistance
  134.     if enemy ~= nil then
  135.         enemyDistance = GetDistance(enemy)
  136.         enemyTrueDistance = enemyDistance - getHitBoxRadius(enemy)
  137.         if enemyTrueDistance <= getMyTrueRange() then return true
  138.         else return false end
  139.     end
  140. end
  141.  
  142. function findClosestEnemy() -- Find the closest enemy
  143.     local closestEnemy = nil
  144.     local currentEnemy = nil
  145.    
  146.     for i=1, heroManager.iCount do
  147.         currentEnemy = heroManager:GetHero(i)
  148.         if currentEnemy.team ~= myHero.team and not currentEnemy.dead and currentEnemy.visible then
  149.             if closestEnemy == nil then
  150.                 closestEnemy = currentEnemy
  151.             elseif GetDistance(currentEnemy) < GetDistance(closestEnemy) then
  152.                 closestEnemy = currentEnemy
  153.             end
  154.         end
  155.     end
  156.    
  157.     return closestEnemy
  158. end
  159.  
  160. function areEnemiesInSafeZone() -- Check if any enemies are in range
  161.     for i=1, heroManager.iCount do
  162.     local enemy = heroManager:GetHero(i)
  163.         if enemy.team ~= myHero.team and GetDistance(enemy) <  getSafeRange() then return true end
  164.     end
  165.     return false
  166. end
  167.  
  168. function getTargetMovementDirection() -- See if target is running towards us or away
  169.     local movementPrediction =  getTargetNewLocation(getTargetMovementLocation())
  170.    
  171.     if GetDistance(ts.target) > movementPrediction then return "FLEEING"        -- Target is running away!
  172.     elseif GetDistance(ts.target) < movementPrediction then return "CHASING"  -- Target is running towards us...GTFO!
  173.     else return "NONE"                                                      -- Target isn't moving
  174.     end
  175. end
  176.  
  177. function getTargetNewLocation(target)
  178.     return math.sqrt((myHero.x-target.x)^2+(myHero.z-target.z)^2)
  179. end
  180.  
  181. function getTargetMovementLocation() -- Find out where our target will move to
  182.     return tp:GetPrediction(ts.target)
  183. end
  184.  
  185. function getCursorDirection(enemy) -- See if we are trying to run towards or away from enemy
  186.     local meToEnemy = GetDistance(enemy)
  187.     local cursorToEnemy = GetDistance(enemy, mousePos)
  188.    
  189.     if meToEnemy > cursorToEnemy then return "TOWARDS"
  190.     elseif meToEnemy < cursorToEnemy then return "AWAY"
  191.     else return nil end
  192. end
  193.  
  194. function doNextAction() -- Perform our next action
  195.     local moveDirection = getCursorDirection(ts.target)
  196.     if moveDirection ~= nil then
  197.         if not timeToShoot() and heroCanMove() and moveDirection == "TOWARDS" and not areEnemiesInSafeZone() then
  198.             moveTowardsEnemy()
  199.         elseif targetInSafeZone() and moveDirection == "AWAY" then
  200.             moveToCursor()
  201.         elseif areEnemiesInSafeZone() and moveDirection == "AWAY" then
  202.         moveToCursor()
  203.         elseif not timeToShoot() and heroCanMove() and moveDirection == "AWAY" then
  204.             moveAwayFromEnemy()
  205.         else
  206.             attackEnemy(ts.target)
  207.         end
  208.     end
  209. end
  210.  
  211. function getBufferRange()
  212.     return getMyTrueRange() - rangeBuffer
  213. end
  214.  
  215. function targetInBufferZone() -- Is target in our buffer zone?
  216.     local targetDistance = GetDistance(ts.target)
  217.     if targetDistance >= getBufferRange() and targetDistance <= getMyTrueRange() then return true
  218.     else return false end
  219. end
  220.  
  221. function targetInNormalZone() -- Is the target in our "normal" zone?
  222.     local targetDistance = GetDistance(ts.target)
  223.     if targetDistance >= getSafeRange() and targetDistance < getBufferRange() then return true
  224.     else return false end
  225. end
  226.  
  227. function targetInSafeZone() -- Is the target in our "Safe" zone?
  228.     if GetDistance(ts.target) < getSafeRange() then
  229.         return true
  230.     else return false end
  231. end
  232.  
  233. function moveTowardsEnemy() -- Move towards enemy if we can
  234.     if targetInSafeZone() then stopMoving()
  235.     elseif targetInNormalZone() then stopMoving()
  236.     elseif targetInBufferZone() then moveToCursor()
  237.     end
  238. end
  239.  
  240. function moveAwayFromEnemy() -- Move away from enemy
  241.     if targetInSafeZone() then moveToCursor()
  242.     elseif targetInNormalZone() then moveToCursor()
  243.     elseif targetInBufferZone() then moveToCursor() end
  244. end
  245.  
  246. function stopMoving()
  247.     if isMoving then myHero:HoldPosition() end
  248.     isMoving = false
  249. end
  250.  
  251. function moveToCursor()
  252.     isMoving = true
  253.     myHero:MoveTo(mousePos.x, mousePos.z)
  254. end
  255.  
  256. function heroCanMove() -- Check if our shot has fired
  257.     if shotFired then return true
  258.     else return false end
  259. end
  260.  
  261. function attackedSuccessfully() -- Our attack particle was fired
  262.     shotFired = true
  263.     shotFiredAt = GetTickCount()
  264. end
  265.  
  266. function getMyTrueRange()
  267.     return getRange() + GetDistance(myHero, myHero.minBBox)
  268. end
  269.  
  270. function getTargetHitboxRange()
  271.     return GetDistance(ts.target) - GetDistance(ts.target.minBBox)
  272. end
  273.  
  274. function OnCreateObj(obj) -- Check if the new object is our attack particle
  275.     minionArray.OnCreateObj(obj)
  276.     if myHero.dead then return end
  277.     if not shotFired then
  278.         for _, v in pairs(aaParticles) do
  279.             if obj.name:lower():find(v:lower()) then
  280.                 attackedSuccessfully()
  281.             end
  282.         end
  283.     end
  284. end
  285.  
  286. function OnDeleteObj(obj)
  287.     minionArray.OnDeleteObj(obj)
  288. end
  289.  
  290. function getRange() -- Return our hero's range
  291.     return myHero.range + attackRangeBonus
  292. end
  293.  
  294. function getAttackSpeed() -- Returns our heros attack speed
  295.     return myHero.attackSpeed/(1/startAttackSpeed)
  296. end
  297.  
  298. function getKillableCreep()
  299.     for i, unit in pairs(units) do
  300.         if unit ~= nil then
  301.             local predictedDmg = 0
  302.             local unitDistance = GetDistance(unit)
  303.             if unitDistance < getMyTrueRange() then
  304.                 if KCConfig.predictDmg then
  305.                     local timeToHit = (( unitDistance / projSpeed ) + GetLatency()/2)
  306.                     for k, dmg in pairs(incDmg) do
  307.                         if ( dmg == nil or dmg.sourceObj == nil or dmg.sourceObj.dead or dmg.targetObj == nil or dmg.targetObj.dead)
  308.                         or (dmg.sourceObj.x ~= dmg.aaPos.x or dmg.sourceObj.z ~= dmg.aaPos.z) then
  309.                             incDmg[k] = nil
  310.                         elseif unit.networkID == dmg.targetObj.networkID then
  311.                             dmg.timeToHit = ( dmg.projSpeed == 0 and ( dmg.aaDelay ) or ( dmg.aaDelay + GetDistance2D(dmg.sourceObj,unit) / dmg.projSpeed ) )
  312.                             if GetTickCount() >= (dmg.startTick + dmg.timeToHit) then
  313.                                 incDmg[k] = nil
  314.                             elseif GetTickCount() + timeToHit > (dmg.startTick + dmg.timeToHit) then
  315.                                 predictedDmg = predictedDmg + dmg.amount
  316.                             end
  317.                         end
  318.                     end
  319.                 end
  320.                 local damage = myHero:CalcDamage(unit, myHero.totalDamage)
  321.                
  322.                 if unit.health - predictedDmg < damage then
  323.                     return unit
  324.                 end
  325.             end
  326.         end
  327.     end
  328.     return nil
  329. end
  330.  
  331. function OnProcessSpell(object, spell)
  332.     if object ~= nil and object.isMe then
  333.         if isAttackResetSpell(spell) then
  334.             lastAttack = lastAttack-(1000/getAttackSpeed())
  335.         elseif (spell.name == "FullAutomatic") then
  336.             attackRangeBonus = 300
  337.             attackRangeBonusTimeout = GetTickCount()+7000
  338.         end
  339.     end
  340.     if KCConfig.predictDmg then
  341.         OnProcessMinionsSpell(object, spell)
  342.     end
  343. end
  344.  
  345. function isAttackResetSpell(spell)
  346.         if (spell.name == "Ricochet"
  347.         or spell.name == "VayneTumble"
  348.         or spell.name == "DariusNoxianTacticsONH"
  349.         or spell.name == "BlindingDart"
  350.         or spell.name == "EzrealMysticShot"
  351.         or spell.name == "GravesBuckShot") then
  352.             return true
  353.         end
  354.         return false
  355. end
  356.  
  357. function OnProcessMinionsSpell(object,spell)
  358.     if object ~= nil and object.team == myHero.team
  359.     and (object.type == "obj_AI_Minion" or object.type == "obj_AI_Turret")
  360.     and GetDistance(object) < getMyTrueRange() + scanAdditionalRange * 3 then
  361.         local x1 = spell.startPos.x
  362.         local z1 = spell.startPos.z
  363.         local x2 = spell.endPos.x
  364.         local z2 = spell.endPos.z
  365.         for i,unit in pairs(units) do
  366.             if unit ~= nil and unit.x == x1 and unit.z == z1 then
  367.                 if object ~= nil and minionInfo[object.charName] ~= nil then
  368.                     m_aaD = ( object.type == "obj_AI_Turret" and minionInfo.obj_AI_Turret.aaDelay or minionInfo[object.charName].aaDelay )
  369.                     m_pS = ( object.type == "obj_AI_Turret" and minionInfo.obj_AI_Turret.projSpeed or minionInfo[object.charName].projSpeed )
  370.                     incDmg[object.name] = { sourceObj = object, targetObj = unit, amount = object:CalcDamage(unit), startTick = GetTickCount(), aaPos = { x = object.x, z = object.z }, aaDelay = m_aaD, projSpeed = m_pS }
  371.                 end
  372.             end
  373.         end
  374.     end
  375. end
  376.  
  377. function getHitBoxDiameter(target)
  378.     return GetDistance(target.minBBox, target.maxBBox)
  379. end
  380.  
  381. function getHitBoxRadius(target)
  382.     return GetDistance(target.minBBox, target.maxBBox)/2
  383. end
  384.  
  385. function drawChampionHitBoxes()
  386.     for i=1, heroManager.iCount do
  387.         enemy = heroManager:GetHero(i)
  388.         if enemy.team ~= myHero.team and not enemy.dead and enemy.visible then
  389.             DrawCircle(enemy.x, enemy.y, enemy.z, getHitBoxRadius(enemy), 0x19A712)
  390.         end
  391.     end
  392. end
  393.  
  394. function OnTick()
  395.     if myHero.dead then return end
  396.     TargetPrediction__OnTick()
  397.     updateRange()
  398.     unitCount,units = minionArray.ennemyMinionInRange(myHero, getMyTrueRange())
  399.     if unitCount == 0 then
  400.         killableCreep = nil
  401.     elseif not ValidTarget(killableCreep,getMyTrueRange()) then
  402.         killableCreep = getKillableCreep()
  403.     end
  404.     if KCConfig.AutoCarry or KCConfig.lastHitHarrass then
  405.         if ts.target ~= nil then
  406.             doNextAction()
  407.         elseif KCConfig.lastHitHarrass and timeToShoot() and killableCreep then
  408.                 attackEnemy(killableCreep)
  409.         elseif heroCanMove() or timeToShoot() then
  410.             moveToCursor()
  411.         end
  412.     end
  413. end
  414.  
  415. function OnDraw()
  416.     if not myHero.dead then
  417.         if KCConfig.adjustRange then
  418.             DrawCircle(myHero.x, myHero.y, myHero.z, greenRange, 0x19A712)
  419.         else
  420.             DrawCircle(myHero.x, myHero.y, myHero.z, getMyTrueRange(), 0x19A712)
  421.         end
  422.         DrawCircle(myHero.x, myHero.y, myHero.z, getBufferRange(), 0xFFFFFF)
  423.         for j=0, 3 do
  424.             DrawCircle(myHero.x, myHero.y, myHero.z, getSafeRange()+ j*1.5, 0xFF0000)
  425.         end
  426.        
  427.         if ts ~= nil and ts.target ~= nil then
  428.             for j=0, 10 do
  429.                 DrawCircle(ts.target.x, ts.target.y, ts.target.z, 40 + j*1.5, 0x00FF00)
  430.             end
  431.         end
  432.        
  433.         drawChampionHitBoxes()
  434.     end
  435.     SC__OnDraw()
  436. end
  437.  
  438. function OnWndMsg(msg,key)
  439.     SC__OnWndMsg(msg,key)
  440. end
  441.  
  442. function OnLoad()
  443.     KCConfig = scriptConfig("Sida's Auto Carry", "autocarry")
  444.     KCConfig:addParam("AutoCarry", "AutoCarry", SCRIPT_PARAM_ONKEYDOWN, false, autoCarryKey)
  445.     KCConfig:addParam("lastHitHarrass", "lastHit and Harrass", SCRIPT_PARAM_ONKEYDOWN, false, lastHitHarrassKey)
  446.     KCConfig:addParam("predictDmg", "Predict minion Damage", SCRIPT_PARAM_ONOFF, true)
  447.     KCConfig:addParam("targetClosest", "Always target closest enemy", SCRIPT_PARAM_ONOFF, targetClosest)
  448.     KCConfig:addParam("adjustRange", "Green marker scales to current range", SCRIPT_PARAM_ONOFF, adjustRange)
  449.     KCConfig:permaShow("AutoCarry")
  450.     ts = TargetSelector(TARGET_LOW_HP, getMyTrueRange(), DAMAGE_PHYSICAL or DAMAGE_MAGIC, false)
  451.     ts.name = "AutoCarry"
  452.     KCConfig:addTS(ts)
  453.     tp = TargetPrediction(getMyTrueRange() + 100,99,0,1)
  454.     range = getMyTrueRange()
  455.     greenRange = getMyTrueRange()
  456.     projSpeed = 1
  457.    
  458.     minionArray.OnLoad()
  459.  
  460.     if myHero.charName == "Ahri" then
  461.         aaParticles = {"Ahri_BasicAttack_mis", "Ahri_BasicAttack_tar"}
  462.         aaSpellName = "ahribasicattack"
  463.         startAttackSpeed = "0.668"
  464.  
  465.     elseif myHero.charName == "Anivia" then
  466.         aaParticles = {"cryo_BasicAttack_mis", "cryo_BasicAttack_tar"}
  467.         aaSpellName = "aniviabasicattack"
  468.         startAttackSpeed = "0.625"
  469.  
  470.     elseif myHero.charName == "Annie" then
  471.         aaParticles = {"AnnieBasicAttack_tar", "AnnieBasicAttack_tar_frost", "AnnieBasicAttack2_mis", "AnnieBasicAttack3_mis"}
  472.         aaSpellName = "anniebasicattack"
  473.         startAttackSpeed = "0.579"
  474.  
  475.     elseif myHero.charName == "Ashe" then
  476.         aaParticles = {"bowmaster_BasicAttack_tar", "bowmaster_frostShot_cas", "bowmaster_frostShot_mis", "bowmasterbasicattack_mis"}
  477.         aaSpellName = "ashebasicattack"
  478.         startAttackSpeed = "0.658"
  479.  
  480.     elseif myHero.charName == "Brand" then
  481.         aaParticles = {"BrandBasicAttack_cas", "BrandBasicAttack_Frost_tar", "BrandBasicAttack_mis", "BrandBasicAttack_tar", "BrandCritAttack_mis", "BrandCritAttack_tar", "BrandCritAttack_tar"}
  482.         aaSpellName = "brandbasicattack"
  483.         startAttackSpeed = "0.625"
  484.  
  485.     elseif myHero.charName == "Caitlyn" then
  486.         aaParticles = {"caitlyn_basicAttack_cas", "caitlyn_headshot_tar", "caitlyn_mis_04"}
  487.         aaSpellName = "caitlynbasicattack"
  488.         startAttackSpeed = "0.668"
  489.  
  490.     elseif myHero.charName == "Cassiopeia" then
  491.         aaParticles = {"CassBasicAttack_mis"}
  492.         aaSpellName = "cassiopeiabasicattack"
  493.         startAttackSpeed = "0.644"
  494.  
  495.     elseif myHero.charName == "Corki" then
  496.         aaParticles = {"corki_basicAttack_cas", "corki_basicAttack_mis", "corki_basicAttack_tar", "Corki_crit_mis"}
  497.         aaSpellName = "corkibasicattack"
  498.         startAttackSpeed = "0.658"
  499.            
  500.     elseif myHero.charName == "Draven" then
  501.         aaParticles = {"Draven_BasicAttack_mis", "Draven_BasicAttack_tar", "Draven_BasicAttack_tar_bloodless", "Draven_BasicAttack_tar_shadow", "Draven_BasicAttack_tar_shadow_bloodless", "Draven_crit_mis", "Draven_crit_tar", "Draven_crit_tar_bloodless", "Draven_crit_tar_shadow", "Draven_crit_tar_shadow_bloodless", "Draven_Q_tar", "Draven_Q_tar_bloodless", "Draven_Q_tar_shadow", "Draven_Q_tar_shadow_bloodless", "Draven_Qcrit_mis"}
  502.         aaSpellName = "corkibasicattack"
  503.         startAttackSpeed = "0.679"
  504.            
  505.     elseif myHero.charName == "Ezreal" then
  506.         aaParticles = {"Ezreal_BasicAttack_Cas", "Ezreal_basicattack_mis", "Ezreal_critattack_mis"}
  507.         aaSpellName = "corkibasicattack"
  508.         startAttackSpeed = "0.665"
  509.         projSpeed = 1.9
  510.  
  511.     elseif myHero.charName == "Fiddlesticks" then
  512.         aaParticles = {"FiddleSticks_cas", "FiddleSticks_mis", "FiddleSticksBasicAttack_tar"}
  513.         aaSpellName = "fiddlesticksbasicattack"
  514.         startAttackSpeed = "0.625"
  515.            
  516.     elseif myHero.charName == "Graves" then
  517.         aaParticles = {"Graves_BasicAttack_cas", "Graves_BasicAttack_mis", "Graves_BasicAttack_tar", "Graves_CritAttack_cas_smoke"}
  518.         aaSpellName = "fiddlesticksbasicattack"
  519.         startAttackSpeed = "0.625"
  520.            
  521.     elseif myHero.charName == "Heimerdinger" then
  522.         aaParticles = {"heimerdinger_basicAttack_mis", "heimerdinger_basicAttack_tar"}
  523.         aaSpellName = "fiddlesticksbasicattack"
  524.         startAttackSpeed = "0.625"
  525.  
  526.     elseif myHero.charName == "Janna" then
  527.         aaParticles = {"JannaBasicAttack_mis", "JannaBasicAttack_tar", "JannaBasicAttackFrost_tar"}
  528.         aaSpellName = "jannabasicattack"
  529.         startAttackSpeed = "0.625"
  530.            
  531.     elseif myHero.charName == "Jayce" then
  532.         aaParticles = {"Jayce_Range_Basic_mis", "Jayce_Range_Basic_Crit"}
  533.         aaSpellName = "jaycebasicattack"
  534.         startAttackSpeed = "0.658"
  535.            
  536.     elseif myHero.charName == "Karma" then
  537.         aaParticles = {"karma_basicAttack_cas", "karma_basicAttack_mis", "karma_crit_mis"}
  538.         aaSpellName = "jannabasicattack"
  539.         startAttackSpeed = "0.658"
  540.            
  541.     elseif myHero.charName == "Karthus" then
  542.         aaParticles = {"LichBasicAttack_cas", "LichBasicAttack_glow", "LichBasicAttack_mis", "LichBasicAttack_tar"}
  543.         aaSpellName = "karthusbasicattack"
  544.         startAttackSpeed = "0.625"
  545.            
  546.     elseif myHero.charName == "Kayle" then
  547.         aaParticles = {"JudicatorBasicAttack_tar"}
  548.         aaSpellName = "karthusbasicattack"
  549.         startAttackSpeed = "0.638"
  550.  
  551.     elseif myHero.charName == "Kennen" then
  552.         aaParticles = {"KennenBasicAttack_mis"}
  553.         aaSpellName = "kennenbasicattack"
  554.         startAttackSpeed = "0.690"
  555.  
  556.     elseif myHero.charName == "KogMaw" then
  557.         aaParticles = {"KogMawBasicAttack_cas", "KogMawBasicAttack_mis", "KogMawBioArcaneBarrage_cas", "KogMawBioArcaneBarrage_mis"}
  558.         aaSpellName = "kogmawbasicattack"
  559.         startAttackSpeed = "0.665"
  560.  
  561.     elseif myHero.charName == "Leblanc" then
  562.         aaParticles = {"leBlanc_basicAttack_cas", "leBlancBasicAttack_mis"}
  563.         aaSpellName = "leblancbasicattack"
  564.         startAttackSpeed = "0.625"
  565.  
  566.     elseif myHero.charName == "Lulu" then
  567.         aaParticles = {"lulu_attack_cas", "LuluBasicAttack", "LuluBasicAttack_tar"}
  568.         aaSpellName = "lulubasicattack"
  569.         startAttackSpeed = "0.625"
  570.  
  571.     elseif myHero.charName == "Lux" then
  572.         aaParticles = {"LuxBasicAttack_mis", "LuxBasicAttack_tar", "LuxBasicAttack01"}
  573.         aaSpellName = "luxbasicattack"
  574.         startAttackSpeed = "0.625"
  575.  
  576.     elseif myHero.charName == "Malzahar" then
  577.         aaParticles = {"AlzaharBasicAttack_cas", "AlZaharBasicAttack_mis"}
  578.         aaSpellName = "malzaharbasicattack"
  579.         startAttackSpeed = "0.625"
  580.    
  581.     elseif myHero.charName == "Miss Fortune" then
  582.         aaParticles = {"missFortune_basicAttack_cas", "missFortune_basicAttack_left_cas", "missFortune_basicAttack_mis", "missFortune_crit_cas", "missFortune_crit_mis"}
  583.         aaSpellName = "malzaharbasicattack"
  584.         startAttackSpeed = "0.658"
  585.  
  586.     elseif myHero.charName == "Morgana" then
  587.         aaParticles = {"FallenAngelBasicAttack_mis", "FallenAngelBasicAttack_tar", "FallenAngelBasicAttack2_mis"}
  588.         aaSpellName = "Morganabasicattack"
  589.         startAttackSpeed = "0.579"
  590.  
  591.     elseif myHero.charName == "Nidalee" then
  592.         aaParticles = {"nidalee_javelin_birth", "nidalee_javelin_empty", "nidalee_javelin_mis"}
  593.         aaSpellName = "nidaleebasicattack"
  594.         startAttackSpeed = "0.672"
  595.  
  596.     elseif myHero.charName == "Orianna" then
  597.         aaParticles = {"OrianaBasicAttack_mis", "OrianaBasicAttack_tar"}
  598.         aaSpellName = "oriannabasicattack"
  599.         startAttackSpeed = "0.658"
  600.  
  601.     elseif myHero.charName == "Ryze" then
  602.         aaParticles = {"rhyzebasicattack2_mis", "RyzeBasicAttack_mis", "RyzeBasicAttack_hit"}
  603.         aaSpellName = "ryzebasicattack"
  604.         startAttackSpeed = "0.625"
  605.  
  606.     elseif myHero.charName == "Sivir" then
  607.         aaParticles = {"Ricochet_mis", "Ricochet_tar", "sivirbasicattack_mis", "sivirbasicattack_mis", "sivirbasicattack2_mis", "SivirBasicAttack_tar", "SivirCriticalAttack_tar", "SivirRicochetAttack_tar", "SivirRicochetAttack_mis"}
  608.         aaSpellName = "sivirbasicattack"
  609.         startAttackSpeed = "0.658"
  610.  
  611.     elseif myHero.charName == "Sona" then
  612.         aaParticles = {"SonaBasicAttack_mis", "SonaBasicAttack_tar", "SonaCritAttack_mis", "SonaPowerChord_AriaofPerseverance_mis", "SonaPowerChord_AriaofPerseverance_tar", "SonaPowerChord_HymnofValor_mis", "SonaPowerChord_HymnofValor_tar", "SonaPowerChord_SongOfSelerity_mis", "SonaPowerChord_SongOfSelerity_tar", "SonaPowerChord_mis", "SonaPowerChord_tar"}
  613.         aaSpellName = "sonabasicattack"
  614.         startAttackSpeed = "0.644"
  615.  
  616.     elseif myHero.charName == "Soraka" then
  617.         aaParticles = {"SorakaBasicAttack_mis", "SorakaBasicAttack_tar"}
  618.         aaSpellName = "sorakabasicattack"
  619.         startAttackSpeed = "0.625"
  620.            
  621.     elseif myHero.charName == "Swain" then
  622.         aaParticles = {"swain_basicAttack_bird_cas", "swain_basicAttack_cas", "swainBasicAttack_mis"}
  623.         aaSpellName = "sorakabasicattack"
  624.         startAttackSpeed = "0.625"
  625.            
  626.     elseif myHero.charName == "Syndra" then
  627.         aaParticles = {"Syndra_attack_hit", "Syndra_attack_mis"}
  628.         aaSpellName = "sorakabasicattack"
  629.         startAttackSpeed = "0.625"
  630.  
  631.     elseif myHero.charName == "Teemo" then
  632.         aaParticles = {"TeemoBasicAttack_mis", "TeemoBasicAttack_tar", "ToxicShot_cas", "Toxicshot_mis", "Toxicshot_tar"}
  633.         aaSpellName = "teemobasicattack"
  634.         startAttackSpeed = "0.690"
  635.  
  636.     elseif myHero.charName == "Tristana" then
  637.         aaParticles = {"TristanaBasicAttack_tar"}
  638.         aaSpellName = "tristanabasicattack"
  639.         startAttackSpeed = "0.658"
  640.  
  641.     elseif myHero.charName == "Twistedfate" then
  642.         aaParticles = {"CardmasterBasicAttack_tar", "CardmasterStackAttack_tar", "TwistedFateBasicAttack_hit", "TwistedFateBasicAttack_mis", "TwistedFateStackAttack_mis"}
  643.         aaSpellName = "twistedfatebasicattack"
  644.         startAttackSpeed = "0.651"
  645.  
  646.     elseif myHero.charName == "Twitch" then
  647.         aaParticles = {"twitch_basicAttack_cas", "twitch_basicAttack_mis", "twitch_gangster_sprayandPray_tar", "twitch_punk_sprayandPray_tar", "twitch_sprayandPray_tar", "twitch_sprayandPray_mis"}
  648.         startAttackSpeed = "0.679"
  649.         projSpeed = 1.9
  650.    
  651.     elseif myHero.charName == "Urgot" then
  652.         aaParticles = {"Urgot_Battlecast_BasicAttack_Vent", "UrgotBasicAttack_cas", "UrgotBasicAttack_mis", "UrgotBasicAttack_tar"}
  653.         aaSpellName = "twitchbasicattack"
  654.         startAttackSpeed = "0.644"
  655.  
  656.     elseif myHero.charName == "Varus" then
  657.         aaParticles = {"Varus_basicAttack_charge", "Varus_basicAttack_charge2", "Varus_basicAttack_hit", "Varus_basicAttack_mis", "Varus_critAttack_mis", "Varus_critAttack_hit"}
  658.         aaSpellName = "varusbasicattack"
  659.         startAttackSpeed = "0.658"
  660.            
  661.     elseif myHero.charName == "Vayne" then
  662.         aaParticles = {"vayne_basicAttack_mis", "vayne_critAttack_mis", "vayne_critAttack_tar"}
  663.         aaSpellName = "vaynebasicattack"
  664.         startAttackSpeed = "0.658"
  665.  
  666.     elseif myHero.charName == "Veigar" then
  667.         aaParticles = {"ahri_basicattack_mis"}
  668.         aaSpellName = "veigarbasicattack"
  669.         startAttackSpeed = "0.625"
  670.  
  671.     elseif myHero.charName == "Viktor" then
  672.         aaParticles = {"ViktorBasicAttack_cas", "ViktorBasicAttack_mis", "ViktorBasicAttack_tar"}
  673.         aaSpellName = "viktorbasicattack"
  674.         startAttackSpeed = "0.625"
  675.  
  676.     elseif myHero.charName == "Vladimir" then
  677.         aaParticles = {"VladBasicAttack_mis", "VladBasicAttack_mis_bloodless", "VladBasicAttack_tar", "VladBasicAttack_tar_bloodless"}
  678.         aaSpellName = "vladimirbasicattack"
  679.         startAttackSpeed = "0.658"
  680.  
  681.     elseif myHero.charName == "Xerath" then
  682.         aaParticles = {"XerathBasicAttack_mis", "XerathBasicAttack_tar"}
  683.         aaSpellName = "xerathbasicattack"
  684.         startAttackSpeed = "0.625"
  685.  
  686.     elseif myHero.charName == "Ziggs" then
  687.         aaParticles = {"ZiggsBasicAttack_cas", "ZiggsBasicAttack_mis", "ZiggsBasicAttack_tar"}
  688.         aaSpellName = "ziggsbasicattack"
  689.         startAttackSpeed = "0.656"
  690.  
  691.     elseif myHero.charName == "Zilean" then
  692.         aaParticles = {"ChronoBasicAttack_mis"}
  693.         aaSpellName = "zileanbasicattack"
  694.         startAttackSpeed = "0.625"
  695.            
  696.     elseif myHero.charName == "Zyra" then
  697.         aaParticles = {"Zyra_basicAttack_cas", "Zyra_basicAttack_cas_02", "Zyra_basicAttack_mis", "Zyra_basicAttack_tar", "Zyra_basicAttack_tar_hellvine"}
  698.         aaSpellName = "zileanbasicattack"
  699.         startAttackSpeed = "0.625"
  700.     end
  701. end
  702.  
  703. PrintChat(">> Sida's Auto Carry Loaded!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement