Ir para conteúdo
  • Cadastre-se

(Resolvido)preciso de um comando de gerar items


Ir para solução Resolvido por Wise,

Posts Recomendados

Como assim, o player recebe um código?

 

Preparei um talk action:

Va na pasta data/talkactions e adicione essa tag ao arquivo talkactions.xml:

	<talkaction words="/COMANDO" event="script" value="itemprem.lua"/>

Aqui, vc deve configurar o comando que vc qr que o player fale pra receber o premio.

 

<talkaction words="/COMANDO"

 

 

Agora va na pasta data/talkactions/scripts e crie um arquivo chamado itemprem.lua e coloque isso dentro:

local msg = {"MENSAGEM QUANDO O PLAYER RECEBER O PREMIO!", "MENSAGEM QUANDO O PLAYER NÃO TIVER O ITEM!"}
local itemid = 2160 --ID DO ITEM

function onSay(cid, words, param)

if(getPlayerItemCount(cid, itemid) > 0) then
doPlayerRemoveItem(cid, itemid, 1)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[1])
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[2])
end

Pronto, agora configure essa parte do script:

 

local msg = {"MENSAGEM QUANDO O PLAYER RECEBER O PREMIO!", "MENSAGEM QUANDO O PLAYER NÃO TIVER O ITEM!"}
local itemid = 2160 --ID DO ITEM

Coloque as devidas mensagens e o id do item que é necessario ter pra receber o premio.

 

 

Se te ajudei, REP+ ^^

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

Tenta ae:

local msg = {"MENSAGEM QUANDO O PLAYER RECEBER O PREMIO!", "MENSAGEM QUANDO O PLAYER NÃO TIVER O ITEM!"}
local itemid = 2160 --ID DO ITEM
local storage = 69169 --NÃO MEXA

function onSay(cid, words, param)

if(getPlayerItemCount(cid, itemid) > 0) then
if getPlayerStorageValue(cid, 69169) ~= 1 then
doPlayerRemoveItem(cid, itemid, 1)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[1])
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
setPlayerStorageValue(cid, 69169, 1)
end
else
doPlayerSendCancel(cid, "Desculpe, voce ja usou isso uma vez.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[2])
end

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

Obrigado, cara. Agora te peço um favor pra contribuir com o forum. Marque a melhor resposta como HetmXYO.png?1?9508, se encontra abaixo do post que vc considera a melhor resposta. Assim, ficará mais facil para usuários futuros verem que esse problema foi solucionado e caso tenham o mesmo problema, já saberão onde ir. ^^

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

@danihcv

Amigo, algumas observações:
 
 

Tanto no primeiro script, quanto no segundo, você fechou o escopo antes e acabou deixando algumas funções e estruturas de controle de fora.
E no segundo você declarou uma variável como sendo a storage, mas não fez uso dela (?).

local msg = {"MENSAGEM QUANDO O PLAYER RECEBER O PREMIO!", "MENSAGEM QUANDO O PLAYER NÃO TIVER O ITEM!"}
local itemid = 2160 --ID DO ITEM

function onSay(cid, words, param)

if(getPlayerItemCount(cid, itemid) > 0) then
doPlayerRemoveItem(cid, itemid, 1)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[1])
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[2])
end
function onSay(cid, words, param)

if(getPlayerItemCount(cid, itemid) > 0) then
if getPlayerStorageValue(cid, 69169) ~= 1 then
doPlayerRemoveItem(cid, itemid, 1)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[1])
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
setPlayerStorageValue(cid, 69169, 1)
end
else
doPlayerSendCancel(cid, "Desculpe, voce ja usou isso uma vez.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[2])
end



 

Seria:

function onSay(cid)
    local itemid = 2160
    if getPlayerItemCount(cid, itemid) > 0 then
        doPlayerRemoveItem(cid, itemid, 1)
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "MENSAGEM QUANDO O PLAYER RECEBER O PREMIO!")
        doSendMagicEffect(getThingPos(cid), CONST_ME_GIFT_WRAPS)
    else
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "MENSAGEM QUANDO O PLAYER NÃO TIVER O ITEM!")
    end
    return true
end



 

E:

function onSay(cid)
    local itemid, stor = 2160, 69169 -- ID, storage
    if getPlayerItemCount(cid, itemid) > 0 then
        if getPlayerStorageValue(cid, stor) < 1 then
            setPlayerStorageValue(cid, stor, 1)
            doPlayerRemoveItem(cid, itemid, 1)
            doSendMagicEffect(getThingPos(cid), CONST_ME_GIFT_WRAPS)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "MENSAGEM QUANDO O PLAYER RECEBER O PREMIO!")
        else
            doPlayerSendCancel(cid, "Desculpe, voce ja usou isso uma vez.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "MENSAGEM QUANDO O PLAYER NÃO TIVER O ITEM!")
    end
    return true
end


Mesmo assim, qual a função desses 2 scripts?
Remove um item do cid (caso ele tenha), envia uma mensagem e um efeito mágico.


É muito bom ver que você se dispõe a ajudar outros membros, só tenha cuidado com o uso das estruturas de controle.
Dá uma lida nesse tutorial, pode te ajudar a aumentar seu conhecimento ;]




@namerso18

 

o usuário recebia um código e o item e premium fosse gerado ao escrever o código


Não entendi muito bem. Usar uma talkaction somente uma vez, que faz com que o player receba um item e uma quantidade de premium days?

local t = {
    pd = 10, -- premium days
    stor = 54321, -- storage
    item = {1234, 5} -- {itemID, amount}
}

function onSay(cid)
    if getPlayerStorageValue(cid, t.stor) < 1 then
        setPlayerStorageValue(cid, t.stor, 1)
        doPlayerAddPremiumDays(cid, t.pd)
        doPlayerAddItem(cid, t.item[1], t.item[2])
        doSendMagicEffect(getThingPos(cid), CONST_ME_GIFT_WRAPS)
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You received '..t.item[2]..' '..getItemNameById(t.item[1])..' and '..t.pd..' days of premium account.')
    else
        doPlayerSendCancel(cid, 'Sorry, you already have used this command.')
    end
    return true
end
Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

@Suicide, apesar de eu não vir responder ao topico por meio desta mensagem, acho necessário agradecer sua atenção não só informando erros, mas mostrando como corrigi-los.

Agora só gostaria de me explicar kkkk, eu estava com muita pressa (não sei se vc pôde perceber mas passei o dia todo fora resolvendo umas coisas :S), então apenas editei um script que eu tinha aqui semelhante. Por isso a falta de atenção e o não uso da variavel que eu declarei (storage).

Já tenho conhecimento sobre programação, mas estava há muito tempo sem programar nada :S
Mas muito obrigado pela atenção. Continue assim e tenho certeza que o TK só tem a ganhar se tiver sua presença na equipe. ;)

 

@Edit: Vou dar uma olhada no topico que vc mandou pra ver se esqueci de mais alguma coisa sobre "scriptagem".

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

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

@danihcv
Relaxa, não precisa se explicar.
Disponha, e obrigado eu. Abraços ;]

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
  • Solução

@suicide a tá certo eu que to burrando mesmo

Hahah sem problemas.

Se seu pedido foi atendido, por favor clique no botão HetmXYO.png?1?9508 que está localizado abaixo do post de quem te ajudou. Automaticamente ele irá ficar destacado como a melhor resposta e o tópico ficará com o prefixo "Resolvido" no início do título.

The corrupt fear us.

The honest support us.

The heroic join us.

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