Postado Agosto 20, 2021 3 anos Estou tentando fazer com que o player só possa usar um item em determinada position, só que meu getCreaturePosition(cid) não está me retornando nada (coloquei para enviar uma msg com ele), enfim esse é o código: function onUse(cid, item, fromPosition, item2, toPosition) local potID = 13762 -- ID do item a ser sacrificado local tab = { -- Posição de usar a potion pos1 = {x=33, y=307, z=11, stackpos=253}, pos2 = {x=32, y = 307, z = 11, stackpos=253}, storage = 120020 } if item.itemid == potID and isPlayer(cid) then doPlayerSendTextMessage(cid, 27, getCreaturePosition(cid)) if (getGlobalStorageValue(tab.storage) ~= 0) then if getCreaturePosition(cid) == tab.pos1 or getCreaturePosition(cid) == tab.pos2 then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_EXPLOSIONHIT) --setGlobalStorageValue(storage) doPlayerRemoveItem(cid, potID, 1) else doPlayerSendTextMessage(cid, 27, "Nao ha nada aqui") end else doPlayerSendTextMessage(cid, 27, "O item ja foi colocado antes.") end end return true end Na parte que eu coloquei a msg com a position antes do if de checagem, aparece isso:
Postado Agosto 20, 2021 3 anos 6 horas atrás, Lucce disse: Estou tentando fazer com que o player só possa usar um item em determinada position, só que meu getCreaturePosition(cid) não está me retornando nada (coloquei para enviar uma msg com ele), enfim esse é o código: function onUse(cid, item, fromPosition, item2, toPosition) local potID = 13762 -- ID do item a ser sacrificado local tab = { -- Posição de usar a potion pos1 = {x=33, y=307, z=11, stackpos=253}, pos2 = {x=32, y = 307, z = 11, stackpos=253}, storage = 120020 } if item.itemid == potID and isPlayer(cid) then doPlayerSendTextMessage(cid, 27, getCreaturePosition(cid)) if (getGlobalStorageValue(tab.storage) ~= 0) then if getCreaturePosition(cid) == tab.pos1 or getCreaturePosition(cid) == tab.pos2 then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_EXPLOSIONHIT) --setGlobalStorageValue(storage) doPlayerRemoveItem(cid, potID, 1) else doPlayerSendTextMessage(cid, 27, "Nao ha nada aqui") end else doPlayerSendTextMessage(cid, 27, "O item ja foi colocado antes.") end end return true end Na parte que eu coloquei a msg com a position antes do if de checagem, aparece isso: eu passei por um problema parecido quando fui me aventurar nesse código aqui o que acontece é que a função "getCreaturePosition(cid)" retorna uma tabela, se você passar ela para string e logo após enviar na tela do computador, vai poder ver isso perfeitamente, (doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, tostring(getCreaturePosition(cid))). e como você compara a posição de uma tabela que muda a todo momento, com outra tabela (algo como uma comparação do tipo if [table123123=table12121212] sempre vai retornar false e nunca entrará naquele bloco de código a solução é bem simples, como ela retorna uma tabela, basta acessar o valor dela "getCreaturePosition(cid).x" e agora sim, vai retornar a posição no eixo x do jogador, agora basta comparar código final: Spoiler function onUse(cid, item, fromPosition, item2, toPosition) local potID = 13762 -- ID do item a ser sacrificado local tab = { -- Posição de usar a potion pos1 = {x=33, y=307, z=11, stackpos=253}, pos2 = {x=32, y = 307, z = 11, stackpos=253}, storage = 120020 } local ppos = getCreaturePosition(cid) if item.itemid == potID and isPlayer(cid) then doPlayerSendTextMessage(cid, 27, tostring(getCreaturePosition(cid))) if (getGlobalStorageValue(tab.storage) ~= 0) then if(ppos.x == tab.pos1.x and ppos.y == tab.pos1.y and ppos.z == tab.pos1.z or ppos.x == tab.pos2.x and ppos.y == tab.pos2.y and ppos.z == tab.pos2.z) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_EXPLOSIONHIT) --setGlobalStorageValue(storage) doPlayerRemoveItem(cid, potID, 1) else doPlayerSendTextMessage(cid, 27, "Nao ha nada aqui") end else doPlayerSendTextMessage(cid, 27, "O item ja foi colocado antes.") end end return true end
Postado Agosto 20, 2021 3 anos Autor Vou testar, mas mesmo se n funcionar, por essa explicação ja merece Rep+ ? Deu muito certo!! Obg Editado Agosto 20, 2021 3 anos por Lucce (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.