Ir para conteúdo
  • Cadastre-se

(Resolvido)Aparecer item em 'pos'


Ir para solução Resolvido por Wakon,

Posts Recomendados

Bom Gente seguinte, eu tenho esse sistema aqui que é tipo uma quest, você clica e ganha o item, o sistema consiste em (colocar um item pelo RME dentro do bau, e a actio) e então vira a quest (sem storage propositalmente, para fazer quantas vezes quiser.) mas o que eu realmente queria era que inves de apenas adicionar o item no inventario cada vez que clicasse, era que o item aparessese no lugar do bau.

Pedido: Fazer com que o bau suma e o item de dentro do bau apareça no lugar.

Spoiler


function onUse(cid, item, fromPosition, itemEx, toPosition)
    

    local items = {}
    local reward = 0

    local size = isContainer(item.uid) and getContainerSize(item.uid) or 0
    if(size == 0) then
        reward = doCopyItem(item, false)
    else
        for i = 0, size do
            local tmp = getContainerItem(item.uid, i)
            if(tmp.itemid > 0) then
                table.insert(items, tmp)
            end
        end
    end

    size = table.maxn(items)
    if(size == 1) then
        reward = doCopyItem(items[1], true)
    end

    local result = ""

    

    if(doPlayerAddItemEx(cid, reward.uid, false) ~= RETURNVALUE_NOERROR) then
        result = "[Warning] It is too heavy or you have not enough space."
    else
        result = "You have found " .. result .. "."
    end

    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, result)
    return true
end
 

 

eu consigo fazer o bau sumir, mas não sei como fazer para que o item apareça na 'pos' do bau depois que ele sumir

qualquer coisa é so falar que vejo o que sei. Obrigado :D

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites

Poderia colocar assim

local doorPosition = {x = 1056, y = 1046, z = 5}  
local doorID = 13099
 
doCreateItem(doorID, 1, doorPosition)

 

Melhor dar só dar uma luz mesmo, só assim você vai aprendendo ^^

Link para o post
Compartilhar em outros sites
12 minutos atrás, Noob II disse:

Poderia colocar assim

 


local doorPosition = {x = 1056, y = 1046, z = 5}  
local doorID = 13099
 
doCreateItem(doorID, 1, doorPosition)

 

 

Melhor dar só dar uma luz mesmo, só assim você vai aprendendo ^^


Bom, dei uma modificada e consegui, agora so preciso saber a variavel que esta gravado o item de dentro do bau. 

 

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites
8 minutos atrás, pablobion disse:


Bom, dei uma modificada e consegui, agora so preciso saber a variavel que esta gravado o item de dentro do bau. 

 

 

Como assim variavel que está gravando o item dentro do bau? 

Link para o post
Compartilhar em outros sites
6 minutos atrás, Noob II disse:

 

Como assim variavel que está gravando o item dentro do bau? 

ele chega o que tem dentro do bau, para dar como quest.

se eu colocasse por id no script ia dar muito trabalho pois eu quero fazer (100+ tipos de bau desse, com ids diferentes) ia ter q fazer 100 script diferentes so mudando id, então eu consegui fazer com que o script checasse e desse como premio o que tinha dentro.

mas quero q inves de colocar o item na bp ele aparecesse na pos do bau.

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites
  • Solução
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local items = {}
    local reward = 0

    local size = isContainer(item.uid) and getContainerSize(item.uid) or 0
    if(size == 0) then
        reward = doCopyItem(item, false)
    else
        for i = 0, size do
            local tmp = getContainerItem(item.uid, i)
            if(tmp.itemid > 0) then
                table.insert(items, tmp)
            end
        end
    end

    size = table.maxn(items)
    if(size >= 1) then
        reward = doCopyItem(items[1], true)
        doCreateItem(reward.itemid, 1, fromPosition)
        doCreatureSay(cid, "You found a ".. getItemNameById(reward.itemid) ..".", TALKTYPE_MONSTER)
        doSendMagicEffect(fromPosition, CONST_ME_MAGIC_BLUE)
        doRemoveItem(item.uid, 1)
    else
        doSendMagicEffect(fromPosition, CONST_ME_POFF)
    end
   return true
end

 

Link para o post
Compartilhar em outros sites
5 minutos atrás, Wakon disse:

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local items = {}
    local reward = 0

    local size = isContainer(item.uid) and getContainerSize(item.uid) or 0
    if(size == 0) then
        reward = doCopyItem(item, false)
    else
        for i = 0, size do
            local tmp = getContainerItem(item.uid, i)
            if(tmp.itemid > 0) then
                table.insert(items, tmp)
            end
        end
    end

    size = table.maxn(items)
    if(size >= 1) then
        reward = doCopyItem(items[1], true)
        doCreateItem(reward.itemid, 1, fromPosition)
        doCreatureSay(cid, "You found a ".. getItemNameById(reward.itemid) ..".", TALKTYPE_MONSTER)
        doSendMagicEffect(fromPosition, CONST_ME_MAGIC_BLUE)
        doRemoveItem(item.uid, 1)
    else
        doSendMagicEffect(fromPosition, CONST_ME_POFF)
    end
   return true
end

 



Funcionou certinho cara, muito obrigado!  nem imaginava q seria "reward.itemid"

eu tentava reward, reward.uid e tudo mais aahhah, obrigado msmo vou estudar esse codigo.

se puder me tirar uma duvida, existe algo do tipo, item.aid para actionid?
exemplo "prize = item.uid" inves de ser unique, ser action. só duvida mesmo.

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites

@pablobion, você pode usar .uid mesmo sendo actionid na tag, xd.

Link para o post
Compartilhar em outros sites


sobre a duvida da .uid

exemplo: a pessoa clica na arvore e ganha tal item, o id do item identificado pelo uniqueid da arvore.
se o unique id da arvore for 2494, ganha um demon armor. pra isso eu faço "prize = item.uid". e se eu quiser colocar uniqueid na tag do xml e fazer com que o "prize" identifique a actionid da arvore e de o item de acordo com a actionid, eu faço como? ou isso é uma forma errada de se fazer? 

Editado por pablobion (veja o histórico de edições)

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites

@pablobion

Sobre a house, use assim:

    if (not getHouseFromPos(fromPosition)) or (not getHouseFromPos(getCreaturePosition(cid))) then
        doPlayerSendTextMessage(cid, 22, 'abra em uma house.')
       return true
    end

Sobre a outra dúvida, você pode utilizar item.actionid.

 

Link para o post
Compartilhar em outros sites
3 minutos atrás, Wakon disse:

@pablobion

Sobre a house, use assim:


    if not getHouseFromPos(fromPosition) then
        doPlayerSendTextMessage(cid, 22, 'abra em uma house.')
       return true
    end

Sobre a outra dúvida, você pode utilizar item.actionid.

 


Muito obrigado de novo! :D Boa noite cara

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo