Ir para conteúdo
  • 0

Otimizar function [HELP]


New'gadu

Pergunta

Alguém me ajuda a otimizar essa function para otx 2.12, ela funciona porém ao roda a function o servidor "congela" e após a function completar sua verificação o servidor "descongela"

 

	addEvent(function (removeMonsterInArea)
						if not isCreature(cid) then
							return
						end
						local positionsCheck = {}
						for i = config.from.x, config.to.x do
							positionsCheck[#positionsCheck+1] = {x=i, y = config.from.y, z = config.from.z, stackpos = 0}
							for j = config.from.y+1, config.to.y do
								positionsCheck[#positionsCheck+1] = {x=i, y = j, z = config.from.z, stackpos = 0}
							end
						end
						for j=1, #positionsCheck do
							for i = 0, 255 do
								positionsCheck[j].stackpos = i
								local tile = getTileThingByPos(positionsCheck[j])
								if isMonster(tile.uid) then
									doRemoveCreature(tile.uid)
								end
							end
						end
						return true
					end, config.time*60*1000, cid)

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Realmente é uma função que pode pesar se vc configurar um área muito grande.

 

Acho que a tentativa mais fácil aqui é vc verificar se esse for

for i = 0, 255 do

é realmente necessário... as vezes os monstros ficam em um só stackpos, porque monstros não andam um sobre os outros, e player tbm não pode atravessar monstro, acho que só empilharia (usaria mais de um stack) se tivesse uma escada descendo nessa área, algo assim. Só não lembro pra te dizer em qual stackpos os monstros ficam por padrão.

 

Se você souber, e não tiver escadas nessa área, sugiro com primeira tentativa, configurar o stackpos e tirar esse for.

 

Como segunda tentativa, o ideal seria rever como surgem esses monstros que voce está removendo, se for spawn normal acho que não teria como, mas se esses monstros  surgirem com uma alavanca daria pra salvar o ID deles e depois remover por ID, em vez de scanear o mapa atrás dele, mas aqui teria uma pouco mais de trabalho

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...