Tem uma funcao que pega todos os stacks ocupados do tile, nao me lembro bem o nome e algo como getTileThings, algo assim
dai ele te retorna uma lista delas, vai ser a melhor forma de fazer isso, pois nao vai precisar iterar mais do que o numero existente de things no tile.





info
Grupo: Campones
Registrado: 16/04/13
Posts: 44
Reputação: +2
Tipo: creatureevents
Versão: 8.6
Servidor: OTX 2.81 based in TFS 0.3.7
Descrição:
Então.. Eu fiz um script que quando o monstro morre, ele tem a chance de receber alguma coisa no corpo.. O problema é na hora de buscar o corpo desse monstro..
Quando o monstro não tem corpo, ou então o corpo do monstro é um item qualquer (ou até um teleport, no caso de alguns monstros do meu servidor), o script que fiz trava o servidor, pois procura algo e tenta usar as informações que não existem..
A função que fiz pra pegar o corpo do monstro é essa:
function getCorpse(pos) local item position = {x= pos.x, y= pos.y, z= pos.z, stackpos = 0} for stack = STACKPOS_GROUND, STACKPOS_TOP_MOVABLE_ITEM_OR_CREATURE do position.stackpos = stack item = getThingFromPos(position) if item.uid ~= nil then if (isCorpse(item.uid)) then return item end end end return false endSe o monstro for um item que não tem um corpseType (o que é usado nessa função isCorpse), o script acaba travando o server, fazendo todas 255 checagens de stacks lentamente...
Alguem saberia um jeito de me ajudar a melhorar o script?
Editado Janeiro 10 por BreisPodeu