Oneshot 732 Postado Janeiro 8, 2013 Share Postado Janeiro 8, 2013 (editado) Como eu acho que a função getSpectators é um pouco complicadinha de mexer, pois precisa de vários parâmetros, digamos, complicados, fiz ela um pouco mais versátil, precisando apenas da posição superior-esquerda e da posição inferior-direita. function getSpectatorsFromArea(fromPosition, toPosition, multifloor) local lenght = ((math.max(fromPosition.x, toPosition.x) - math.min(fromPosition.x, toPosition.x)) * 0.5) + 1 local width = ((math.max(fromPosition.y, toPosition.y) - math.min(fromPosition.y, toPosition.y)) * 0.5) + 1 if multifloor == true then local ret = {} for f = math.min(fromPosition.z, toPosition.z), math.max(fromPosition.z, toPosition.z) do local tmp = getSpectators({x = math.min(fromPosition.x, toPosition.x) + lenght, y = math.min(fromPosition.y, toPosition.y) + width, z = f}, lenght, width, false) for k = 1, #tmp do table.insert(ret, tmp[k]) end end return ret end return getSpectators({x = math.min(fromPosition.x, toPosition.x) + lenght, y = math.min(fromPosition.y, toPosition.y) + width, z = fromPosition.z}, lenght, width, false) end Caso você use a opção multifloor, a função retorna uma tabela com todos os spectators do intervalo dos floors das posições. getSpectators({x = 100, y = 100, z = 7}, {x = 200, y = 200, z = 11}, true) No caso acima retornaria todos os spectators do floor 7 ao floor 11 Abraços. Editado Janeiro 8, 2013 por Oneshot Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados