GN

[Resolvido] ITEM QUE SOLTA X ITEM NO CHÃO

Por GniusP, 09 de fev. de 2019 em Resolvidos

10
1.7k
GniusPG
09 de fevereiro de 2019 às 21:11

Olá galera, eu estava precisando de uma script onde um player tem um item e com ao clicar com lado direito nesse item e clicar em x piso ele soltaria um outro item

Por exemplo:Tenho 1 item e clico com lado direito nesse item e clico em algum local do piso(chão) e aonde eu clicar aparecia um item

Esse item ficaria 10segundos e depois sumiria

XZeroX
10 de fevereiro de 2019 às 01:19

Não cheguei a testar mas olha ai:

Spoiler

function onUse(cid, item, frompos, item2, topos)
    local itema = 0 ---- ID DO ITEM QUE VAI SER USADO
    local itemb = 0 ---- ID DO ITEM QUE VAI SER CRIADO
    local pos = {x=0, y=0, z=0} ---- POSIÇÃO DO TILE
    local tempo = 0 ---- TEMPO EM SEGUNDOS QUE O ITEM TEM ATÉ DESAPARECER
    
    local function tempodoitem(pos, itemb)
        local tile = getTileItemById(pos, itemb).uid
        if tile then
            doRemoveItem(tile, 1)
        end
    end

    if item.itemid == itema then
        if getThingPos(item2.uid) == pos then
            doCreateItem(itemb, 1, pos)
            doRemoveItem(item.uid, 1)
            addEvent(tempodoitem, tempo*1000, pos, itemb)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este nao e o local certo.")
        end
    end

    return true
end

 

GniusPG
10 de fevereiro de 2019 às 01:49
30 minutos atrás, XZero disse:

Não cheguei a testar mas olha ai:

  Ocultar conteúdo

function onUse(cid, item, frompos, item2, topos)
    local itema = 0 ---- ID DO ITEM QUE VAI SER USADO
    local itemb = 0 ---- ID DO ITEM QUE VAI SER CRIADO
    local pos = {x=0, y=0, z=0} ---- POSIÇÃO DO TILE
    local tempo = 0 ---- TEMPO EM SEGUNDOS QUE O ITEM TEM ATÉ DESAPARECER
    
    local function tempodoitem(pos, itemb)
        local tile = getTileItemById(pos, itemb).uid
        if tile then
            doRemoveItem(tile, 1)
        end
    end

    if item.itemid == itema then
        if getThingPos(item2.uid) == pos then
            doCreateItem(itemb, 1, pos)
            doRemoveItem(item.uid, 1)
            addEvent(tempodoitem, tempo*1000, pos, itemb)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este nao e o local certo.")
        end
    end

    return true
end

 

Eu n queria q fosse um local definido, queria que o player pudesse selecionar aonde ele quisesse que esse item seja criado

XZeroX
10 de fevereiro de 2019 às 01:59
9 minutos atrás, GniusP disse:

Eu n queria q fosse um local definido, queria que o player pudesse selecionar aonde ele quisesse que esse item seja criado

Mas esse funcionou normal ?

GniusPG
10 de fevereiro de 2019 às 02:02
Agora, XZero disse:

Mas esse funcionou normal ?

Não, e também não deu erro na distro

XZeroX
10 de fevereiro de 2019 às 02:04
2 minutos atrás, GniusP disse:

Não, e também não deu erro na distro

manda o erro

GniusPG
10 de fevereiro de 2019 às 02:06

Como havia dito não deu erro nenhum, mas também não funcionou

XZeroX
10 de fevereiro de 2019 às 02:22
Melhor resposta

Tenta: 

Spoiler

function onUse(cid, item, frompos, item2, topos)
    local itema = 0 ---- ID DO ITEM QUE VAI SER USADO
    local itemb = 0 ---- ID DO ITEM QUE VAI SER CRIADO
    local tempo = 0 ---- TEMPO EM SEGUNDOS QUE O ITEM TEM ATÉ DESAPARECER
    local pos = getThingPos(item2.uid)
    
    local function tempodoitem(pos, itemb)
        local tile = getTileItemById(pos, itemb).uid
        if tile then
            doRemoveItem(tile, 1)
        end
    end

    if item.itemid == itema then
        doCreateItem(itemb, 1, pos)
        doRemoveItem(item.uid, 1)
        addEvent(tempodoitem, tempo*1000, pos, itemb)
    end

    return true
end

 

GniusPG
10 de fevereiro de 2019 às 02:23

Corrigindo, a script funcionou entre aspas, mesmo eu colocando a posição certa aparece a mensagem

Este nao e o local certo.
 

12 minutos atrás, XZero disse:

Tenta: 

  Mostrar conteúdo oculto

function onUse(cid, item, frompos, item2, topos)
    local itema = 0 ---- ID DO ITEM QUE VAI SER USADO
    local itemb = 0 ---- ID DO ITEM QUE VAI SER CRIADO
    local tempo = 0 ---- TEMPO EM SEGUNDOS QUE O ITEM TEM ATÉ DESAPARECER
    local pos = getThingPos(item2.uid)
    
    local function tempodoitem(pos, itemb)
        local tile = getTileItemById(pos, itemb).uid
        if tile then
            doRemoveItem(tile, 1)
        end
    end

    if item.itemid == itema then
        doCreateItem(itemb, 1, pos)
        doRemoveItem(item.uid, 1)
        addEvent(tempodoitem, tempo*1000, pos, itemb)
    end

    return true
end

 

Funcionou perfeitamente, amanhã dou +1 rep++(não posso dar mais hoje)

Pode deixar, consegui, vlw mano me ajudou d+

Editado Fevereiro 10 por GniusP

MarshmelloM
10 de fevereiro de 2019 às 09:29
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.