arthasdk icon

Auto Timat/Ravenous Hydra v1.0a

arthasdk | PRO | 01/06/13 05:10:41 AM UTC | 0 ⭐ | 140 👁️ | Never ⏰ | []
text |

5.04 KB

|

None

|

0 👍

/

0 👎

--[[Auto RavenousHydra/Tiamat v1.0 by ArthasDK (with help of minionArray from Sida's Auto Carry)]] 
 local enemyMinions=0	--range =400
local enemyChampCount=0
local minChamps = 1
local minCreeps = 4
-- #################################### Minion Array ###################################
 minionArray = { team_ally ="##", team_ennemy ="##" }
 function minionArray.OnLoad()
	map = GetMap()
	minionArray.jungleCreeps = {}
	minionArray.ennemyMinion = {}
	minionArray.allyMinion = {}
	for i = 1, objManager.maxObjects do
		local object = objManager:getObject(i)
		minionArray.OnCreateObj(object)
	end
	if map.index ~= 4 then
		minionArray.team_ally = "Minion_T"..player.team
		minionArray.team_ennemy = "Minion_T"..(player.team == TEAM_BLUE and TEAM_RED or TEAM_BLUE)
	else
		minionArray.team_ally = (player.team == TEAM_BLUE and "Blue" or "Red")
		minionArray.team_ennemy = (player.team == TEAM_BLUE and "Red" or "Blue")
	end
end
 function minionArray.OnCreateObj(object)
	if object ~= nil and object.type == "obj_AI_Minion" and not object.dead then
		if minionArray.allyMinion[object.name] ~= nil or minionArray.ennemyMinion[object.name] ~= nil or minionArray.allyMinion[object.name] ~= nil then return end
		if string.find(object.name,minionArray.team_ally) then minionArray.allyMinion[object.name] = object
		elseif string.find(object.name,minionArray.team_ennemy) then minionArray.ennemyMinion[object.name] = object
		else minionArray.jungleCreeps[object.name] = object
		end
	end
end
 function minionArray.OnDeleteObj(object)
	if object ~= nil and object.type == "obj_AI_Minion" and object.name ~= nil then
		if minionArray.jungleCreeps[object.name] ~= nil then minionArray.jungleCreeps[object.name] = nil
		elseif minionArray.ennemyMinion[object.name] ~= nil then minionArray.ennemyMinion[object.name] = nil
		elseif minionArray.allyMinion[object.name] ~= nil then minionArray.allyMinion[object.name] = nil
		end
	end
end
 function minionArray.objectInRange(objectTable, fromPos, range)
	local objectRanged = {}
	for name,objectTableObject in pairs(minionArray[objectTable]) do
		if objectTableObject ~= nil and objectTableObject.dead == false and objectTableObject.visible and GetDistance2D(fromPos,objectTableObject) <= range then
			table.insert(objectRanged, objectTableObject)
		end
	end
	return #objectRanged, objectRanged
end
 function minionArray.jungleCreepsInRange(fromPos, range)
	return minionArray.objectInRange("jungleCreeps", fromPos, range)
end
 function minionArray.ennemyMinionInRange(fromPos, range)
	return minionArray.objectInRange("ennemyMinion", fromPos, range)
end
 function minionArray.allyMinionInRange(fromPos, range)
	return minionArray.objectInRange("allyMinion", fromPos, range)
end
 -- #################################### Minion Array ends here ###################################
  function OnCreateObj(obj) 
	if myHero.dead then return end
	minionArray.OnCreateObj(obj)
end
 function OnDeleteObj(obj) 
	minionArray.OnDeleteObj(obj)
end
 function GetEnemyChampsCount(range)
	local count=0
	for i=1, heroManager.iCount do
        local target = heroManager:GetHero(i)
        if target ~= nil and target.dead == false and target.team ~= player.team and target.visible == true and player:GetDistance(target) < range then--385 then
        count=count+1
		end
	end
	return count
end
 function OnTick()
	if myHero.dead then return end
	enemyMinions = minionArray.ennemyMinionInRange(myHero, 400)
	enemyChampCount = GetEnemyChampsCount(400)
	TiamatSlot = GetInventorySlotItem(3077)
	RavenousHydraSlot = GetInventorySlotItem(3074)
 	if TiamatSlot then
		if enemyChampCount >= minChamps then
			if myHero:CanUseSpell(TiamatSlot) == READY then
				CastSpell(TiamatSlot)
			end
		end
		if enemyMinions>=minCreeps then
			if myHero:CanUseSpell(TiamatSlot) == READY then
				CastSpell(TiamatSlot)
			end
		end	
    end
 	if RavenousHydraSlot then
		if enemyChampCount >= minChamps then
			if myHero:CanUseSpell(RavenousHydraSlot) == READY then
				CastSpell(RavenousHydraSlot)
			end
		end
		if enemyMinions>=minCreeps then
			if myHero:CanUseSpell(RavenousHydraSlot) == READY then
			CastSpell(RavenousHydraSlot)
			end
		end
    end
end
 function OnLoad() 
	minionArray.OnLoad()	
	PrintChat("AutoTiamat/Revenous Hydra by ArthasDK (help Sida, Anonymous) Loaded!")
	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)")
end
 function OnSendChat(text)
	if string.find(text,".m") then
		BlockChat()
		for i=1,10,1 do 
			local str=".m"..tostring(i)
			if text == str then
				minCreeps=i
				PrintChat("Minimum Number of Creeps Present for Ravenous Hydra/Tiamat :"..tostring(minCreeps))
			end
		end
	end
 	if string.find(text,".c") then
		BlockChat()
		for i=1,5,1 do 
			local str=".c"..tostring(i)
			if text == str then
				minChamps=i
				PrintChat("Minimum Number of Champs Present for Ravenous Hydra/Tiamat :"..tostring(minChamps))
			end
		end
	end
end

Comments