Advertisement
arthasdk

Auto Timat/Ravenous Hydra v1.0a

Jan 6th, 2013
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.04 KB | None | 0 0
  1. --[[Auto RavenousHydra/Tiamat v1.0 by ArthasDK (with help of minionArray from Sida's Auto Carry)]]
  2.  
  3. local enemyMinions=0 --range =400
  4. local enemyChampCount=0
  5. local minChamps = 1
  6. local minCreeps = 4
  7. -- #################################### Minion Array ###################################
  8.  
  9. minionArray = { team_ally ="##", team_ennemy ="##" }
  10.  
  11. function minionArray.OnLoad()
  12. map = GetMap()
  13. minionArray.jungleCreeps = {}
  14. minionArray.ennemyMinion = {}
  15. minionArray.allyMinion = {}
  16. for i = 1, objManager.maxObjects do
  17. local object = objManager:getObject(i)
  18. minionArray.OnCreateObj(object)
  19. end
  20. if map.index ~= 4 then
  21. minionArray.team_ally = "Minion_T"..player.team
  22. minionArray.team_ennemy = "Minion_T"..(player.team == TEAM_BLUE and TEAM_RED or TEAM_BLUE)
  23. else
  24. minionArray.team_ally = (player.team == TEAM_BLUE and "Blue" or "Red")
  25. minionArray.team_ennemy = (player.team == TEAM_BLUE and "Red" or "Blue")
  26. end
  27. end
  28.  
  29. function minionArray.OnCreateObj(object)
  30. if object ~= nil and object.type == "obj_AI_Minion" and not object.dead then
  31. if minionArray.allyMinion[object.name] ~= nil or minionArray.ennemyMinion[object.name] ~= nil or minionArray.allyMinion[object.name] ~= nil then return end
  32. if string.find(object.name,minionArray.team_ally) then minionArray.allyMinion[object.name] = object
  33. elseif string.find(object.name,minionArray.team_ennemy) then minionArray.ennemyMinion[object.name] = object
  34. else minionArray.jungleCreeps[object.name] = object
  35. end
  36. end
  37. end
  38.  
  39. function minionArray.OnDeleteObj(object)
  40. if object ~= nil and object.type == "obj_AI_Minion" and object.name ~= nil then
  41. if minionArray.jungleCreeps[object.name] ~= nil then minionArray.jungleCreeps[object.name] = nil
  42. elseif minionArray.ennemyMinion[object.name] ~= nil then minionArray.ennemyMinion[object.name] = nil
  43. elseif minionArray.allyMinion[object.name] ~= nil then minionArray.allyMinion[object.name] = nil
  44. end
  45. end
  46. end
  47.  
  48. function minionArray.objectInRange(objectTable, fromPos, range)
  49. local objectRanged = {}
  50. for name,objectTableObject in pairs(minionArray[objectTable]) do
  51. if objectTableObject ~= nil and objectTableObject.dead == false and objectTableObject.visible and GetDistance2D(fromPos,objectTableObject) <= range then
  52. table.insert(objectRanged, objectTableObject)
  53. end
  54. end
  55. return #objectRanged, objectRanged
  56. end
  57.  
  58. function minionArray.jungleCreepsInRange(fromPos, range)
  59. return minionArray.objectInRange("jungleCreeps", fromPos, range)
  60. end
  61.  
  62. function minionArray.ennemyMinionInRange(fromPos, range)
  63. return minionArray.objectInRange("ennemyMinion", fromPos, range)
  64. end
  65.  
  66. function minionArray.allyMinionInRange(fromPos, range)
  67. return minionArray.objectInRange("allyMinion", fromPos, range)
  68. end
  69.  
  70. -- #################################### Minion Array ends here ###################################
  71.  
  72.  
  73. function OnCreateObj(obj)
  74. if myHero.dead then return end
  75. minionArray.OnCreateObj(obj)
  76. end
  77.  
  78. function OnDeleteObj(obj)
  79. minionArray.OnDeleteObj(obj)
  80. end
  81.  
  82. function GetEnemyChampsCount(range)
  83. local count=0
  84. for i=1, heroManager.iCount do
  85. local target = heroManager:GetHero(i)
  86. if target ~= nil and target.dead == false and target.team ~= player.team and target.visible == true and player:GetDistance(target) < range then--385 then
  87. count=count+1
  88. end
  89. end
  90. return count
  91. end
  92.  
  93. function OnTick()
  94. if myHero.dead then return end
  95. enemyMinions = minionArray.ennemyMinionInRange(myHero, 400)
  96. enemyChampCount = GetEnemyChampsCount(400)
  97. TiamatSlot = GetInventorySlotItem(3077)
  98. RavenousHydraSlot = GetInventorySlotItem(3074)
  99.  
  100. if TiamatSlot then
  101. if enemyChampCount >= minChamps then
  102. if myHero:CanUseSpell(TiamatSlot) == READY then
  103. CastSpell(TiamatSlot)
  104. end
  105. end
  106. if enemyMinions>=minCreeps then
  107. if myHero:CanUseSpell(TiamatSlot) == READY then
  108. CastSpell(TiamatSlot)
  109. end
  110. end
  111. end
  112.  
  113. if RavenousHydraSlot then
  114. if enemyChampCount >= minChamps then
  115. if myHero:CanUseSpell(RavenousHydraSlot) == READY then
  116. CastSpell(RavenousHydraSlot)
  117. end
  118. end
  119. if enemyMinions>=minCreeps then
  120. if myHero:CanUseSpell(RavenousHydraSlot) == READY then
  121. CastSpell(RavenousHydraSlot)
  122. end
  123. end
  124. end
  125. end
  126.  
  127. function OnLoad()
  128. minionArray.OnLoad()
  129. PrintChat("AutoTiamat/Revenous Hydra by ArthasDK (help Sida, Anonymous) Loaded!")
  130. PrintChat("Current Minimum Champs/Minions need for AutoCast ["..tostring(minChamps).."/"..tostring(minCreeps).."] to change this type .m# (minions 1-10) or .c# (champs 1-5)")
  131. end
  132.  
  133. function OnSendChat(text)
  134. if string.find(text,".m") then
  135. BlockChat()
  136. for i=1,10,1 do
  137. local str=".m"..tostring(i)
  138. if text == str then
  139. minCreeps=i
  140. PrintChat("Minimum Number of Creeps Present for Ravenous Hydra/Tiamat :"..tostring(minCreeps))
  141. end
  142. end
  143. end
  144.  
  145. if string.find(text,".c") then
  146. BlockChat()
  147. for i=1,5,1 do
  148. local str=".c"..tostring(i)
  149. if text == str then
  150. minChamps=i
  151. PrintChat("Minimum Number of Champs Present for Ravenous Hydra/Tiamat :"..tostring(minChamps))
  152. end
  153. end
  154. end
  155. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement