DA

getCreaturesInRetangleArea(pos_init, pos_final)

Por dalvorsn, 16 de mar. de 2013 em Mods, funções e outros

4
987
dalvorsnD
16 de março de 2013 às 11:24

Autor: Dalvo

Servidor Testado: TFS 0.4

Observações:

• Nome auto-explicativo;

• Fiz essa função por achar o getSpectators muito pesado, pois salva muitos uids e também apos ler uma duvida.

• preguiça de formatar o topico direito, outra hora quem sabe.

 

 

getCreaturesInRetangleArea(pos_init, pos_final)

 

zWqJYcXT

[/pastebin]

caoticC
16 de março de 2013 às 12:02

De qualquer maneira a função vai ficar muita pesada se for usada "abusadamente".

Repetir cada pos usando um for para verificar uma única criatura isto e bem pesadinho.

E normalmente a função e usada para eventos ou seja ja ta rolando um grande processamento.

Prefiro não abusar muita da função

 

Se não me engano existe varias outras "reconstrução" da função getSpectators.

16 de março de 2013 às 23:22

Coloca um terceiro parâmetro para escolher entre player, monstro, npc...

dalvorsnD
17 de março de 2013 às 07:12

De qualquer maneira a função vai ficar muita pesada se for usada "abusadamente".

Repetir cada pos usando um for para verificar uma única criatura isto e bem pesadinho.

E normalmente a função e usada para eventos ou seja ja ta rolando um grande processamento.

Prefiro não abusar muita da função

 

Se não me engano existe varias outras "reconstrução" da função getSpectators.

testei com numa area 30x30 no meu notebook que é ruim, deu 188ms +/-

 

eu fui ler a função getSpectators no distro, e notei que ela usa o mesmo principio da minha, acabou que a minha ficou mais lenta por lua ser mais lenta

a iteração não é tão grande porque voce tem como acessar quantos things tem em cada tile, tornando desnecessário o loop em 255 stacks

 

Coloca um terceiro parâmetro para escolher entre player, monstro, npc...

 

Acho que nem compensa fazer isso, é melhor mesmo usar o getSpectators

Mas uma possivel função que poderia ser feita desse modo ai é um "get_all_things_in_area"

de qualquer maneira vou deixar a função do jeito que está, pode ajudar alguém como exemplo de uso de alguma função e etc.