Ir para conteúdo

Getcreatureinrange(Type, Frompos, Topos, Toget)


Posts Recomendados

Testado no TFS 0.3.6

A função faz pega tal coisa dentre de uma posição

 

function getCreatureInRange(type, fromPos, toPos, toGet, itemid)

local types = 
{
["player"] = isPlayer,
["monster"] = isMonster,
["npc"] = isNpc,
["creature"] = isCreature
}
local tmp = {}

local type = types[type]
if(not type) then
	print('[getCreatureInRange]>> Unknow type')
	return 0
end

local thing = nil
for x = fromPos.x, toPos.x do
	for y = fromPos.y, toPos.y do
		for z = fromPos.z, toPos.z do
			for s = 1, 253 do
				local position = {x = x, y = y, z = z, stackpos = s}
				thing = getTileThingByPos(position)
				if(type(thing.uid) == true) then
					table.insert(tmp, thing.uid)
				end
			end
		end
	end
end
if(toGet == "count") then
	return table.maxn(tmp)
elseif(toGet == "name") then
	return tmp
else
	print('[getCreatureInRange]>> Unknow creature to get')
	return 0
end
return true
end

 

Como Usar:

local fromPos = {x = 100, y = 100, z = 7, stackpos = 1}
local toPos = {x = 150, y = 150, z = 7, stackpos = 1}

local t = getCreatureInRange("monster", fromPos, toPos, "count")

print('>> There are ' .. t .. ' monsters)

 

Exemplo como vai retornar:

>> There are 3 monsters

 


local fromPos = {x = 100, y = 100, z = 7, stackpos = 1}
local toPos = {x = 150, y = 150, z = 7, stackpos = 1}

local t = getCreatureInRange("monster", fromPos, toPos, "name")

for i = 1, table.maxn(t) do
print('>> The names are ' .. getCreatureName(t[i]))
end

 

Exemplo como vai retornar:

>> The names are Demon

>> The names are Troll

>> The names are Fire Elemental

 

 

Creditos:

darkhaos

Editado por SkyDangerous
Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...