Legal cara, eu nem manjava isso, acredito que irá me ajudar no futuro.
Valeu ae...
Abraços :smile_positivo:
info
Grupo: Conde
Registrado: 16/09/07
Posts: 600
Reputação: +151
Gênero: Masculino
Char no Tibia: NãoJogoMais

Legal cara, eu nem manjava isso, acredito que irá me ajudar no futuro.
Valeu ae...
Abraços :smile_positivo:
info
Grupo: Visconde
Registrado: 17/01/11
Posts: 343
Reputação: +46
Char no Tibia: Zodriac

só uma curiosidade se eu fizer um TP e na posição para onde o player vai eu botar:
{x=160, y=50, z=7, stackpos=2}
E nesse tile tiver por exemplo um gold,
O player vai ficar embaixo do gold? ![]()
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Não, você não pode manipular stackpos usando a função doTeleportThing.
info
Grupo: Campones
Registrado: 26/07/11
Posts: 12
Reputação: +13

Muito bom, eu sempre me perguntava para quê servia o stackpos quando eu via uma tabela com positions.
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder
Faaaaala galerinha! A pedido do usuário PsyMcKenzie estou aqui para postar este tutorial. Espero que seja útil para todos que tem alguma dúvida quanto ao Stackpos. Eu sinceramente não domino completamente a magia dos stackpos, mas espero poder tirar algumas dúvidas de quem sabe e ensinar quem ainda não sabe. Vamos logo ao tutorial:
Stackpos
• Introdução
Stackpos é um dos index da tabela que guarda posições. Toda posição é uma tabela, exemplo: {x=160, y=50, z=7}, mas o que pouca gente sabe, é que o stackpos também faz parte desta tabela. Todos sabem que em uma unica posição podem haver vários itens, formando uma pilha de itens, portanto, para diferenciar a posição de um item da pilha para o outro foi criado o stackpos, que é o número que diz em qual lugar da pilha está o item.
• Descobrindo o Stackpos
O stackpos segue um padrão, ou seja, uma ordem. Vou mostrar primeiramente os stackpos especiais:
0 - O stackpos 0 de uma posição é sempre o tile, ou seja, o chão.
253 - Este número refere-se ao stackpos das criaturas que estão na posição, sejam monstros, players ou npcs.
255 - O item mais alto de um pilha tem o stackpos 255, além do stackpos normal dela.
Agora vou mostrar como descobrir o stackpos de um item apenas olhando para a pilha. Considere a seguinte pilha:
Primeiro vamos contar quantos itens tem a pilha. Neste caso, em um total de 4 itens (tile, table, chair, coin).
Tile sempre terá o stackpos 0.
Agora os outros recebem o stackpos contrário da ordem deles acima do chão.
Coin receberá o stackpos 1 e 255.
Chair receberá o stackpos 2.
Table receberá o stackpos 3.
Simples não? É sempre ao contrário da ordem deles acima do chão. Vamos a mais um exemplo para ficar bem claro, considere a seguinte pilha:
Tile receberá o stackpos 0.
Ring receberá o stackpos 1 e 255.
Hammer receberá o stackpos 2.
Coin receberá o stackpos 3.
Chair receberá o stackpos 4.
Table receberá o stackpos 5.
• Montando uma Tabela com Stackpos
Eu havia tido anteriormente que toda posição é uma tabela. Para montarmos uma posição com o index stackpos, simplesmente adicionamos ele no final, exemplo:
{x=160, y=50, z=7, stackpos=253}Simples, não é mesmo?
• Funções Auxiliares
Sempre que preciso descobrir o stackpos através de um script, uso as seguintes funções:
Pegar o stackpos pela posição e id do item.
function getItemStackpos(position, id) if getTileItemById(position, id).itemid == 0 then return nil end for i = 0, 255 do local pos = getThingFromPos({x=position.x, y=position.y, z=position.z, stackpos=i}) if pos.itemid == id then return i end end endPara pegar o stackpos pelo uid do item, usamos a função getThingPos(uid), a qual já retorna uma tabela com o stackpos do item.
É isso galera, qualquer dúvida só perguntar. Até mais.