Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Vim disponibilizar esse código de chest que eu tava precisando e não achei em lugar algum.

Agradecimento ao @Sttorm que me ajudou a entender a estrutura do código.

 

 

Comprar mesmo item com 2 moedas diferentes! (Chest Action)

 

image.png.8a66662d4ab3045d603f135e770e21d4.png

23:31 Sao necessarios 50 gold coin e 50 crystal coin para realizar esta compra.

23:32 Voce comprou crown backpack por 50 gold coin e 50 crystal coin

 

 

data/actions/actions.xml: (mude baus/bau01.lua se o seu esquema for diferente)

<action actionid="6012" event="script" value="baus/bau01.lua"/>

 

data/actions/scripts/baus/bau01.lua: ( " )

local coin = 2148  -- id da primeira moeda
local coin2 = 2160 -- id da segunda moeda
local eff = 28     -- efeito mágico ao comprar o item

local lever = {
[7017] = {50, 50, 10522} -- [actionid] = {quantidade da moeda 1, quantidade da moeda 2, id do item a comprar}
}

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

if  getPlayerItemCount(cid, coin) >= (lever[item.actionid][1]) and getPlayerItemCount(cid, coin2) >= (lever[item.actionid][2]) then
	doPlayerRemoveItem(cid,coin,lever[item.actionid][1]) 
	doPlayerRemoveItem(cid,coin2,lever[item.actionid][2])
	
		doPlayerAddItem(cid,lever[item.actionid][3], isItemStackable(lever[item.actionid][3]) and 1)
		doPlayerSendTextMessage(cid,22,"Voce comprou " .. getItemNameById(lever[item.actionid][3]) .." por "..lever[item.actionid][1].." " ..getItemNameById(coin).. " e "..lever[item.actionid][2].." " ..getItemNameById(coin2))
		doSendMagicEffect(getCreaturePosition(cid), config.eff)

		else

    return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sao necessarios "..lever[item.actionid][1].." " ..getItemNameById(coin).. " e "..lever[item.actionid][2].." " ..getItemNameById(coin2).. " para realizar esta compra.")
end
end

 

  • Cat mudou o título para Baú/Chest shop - Comprar mesmo item com 2 moedas diferentes
  • Respostas 9
  • Visualizações 2.8k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Não tinha percebido, obrigado por avisar.   Corrigido:   local coin = 2148 -- id da primeira moeda local coin2 = 2160 -- id da segunda moeda local eff = 28 -- efeito mágico ao

  • Sei que o tópico é antigo, mas curti a ideia e coloquei no meu baiak caso queiram pra tfs 1.x é assim. Não entendo nada de script mas assim funcionou 100%     Em lib\compat

Posted Images

Postado

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

Postado

Muito bom!!

 

Porém tem um problema, se você remover o ITEM1 do jogador e ele não tiver o ITEM2, a compra não vai ter sucesso e ele irá sair lesado...

 

use a função "getPlayerItemCount (cid, itemid)" para saber se ele tem o item e a quantidade pedida!!

 

abraços

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado
  • Autor
41 minutos atrás, Vodkart disse:

Muito bom!!

 

Porém tem um problema, se você remover o ITEM1 do jogador e ele não tiver o ITEM2, a compra não vai ter sucesso e ele irá sair lesado...

 

use a função "getPlayerItemCount (cid, itemid)" para saber se ele tem o item e a quantidade pedida!!

 

abraços

 

Não tinha percebido, obrigado por avisar.

 

Corrigido:

 

local coin = 2148  -- id da primeira moeda
local coin2 = 2160 -- id da segunda moeda
local eff = 28     -- efeito mágico ao comprar o item

local lever = {
[7017] = {50, 50, 10522} -- [actionid] = {quantidade da moeda 1, quantidade da moeda 2, id do item a comprar}
}

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

if  getPlayerItemCount(cid, coin) >= (lever[item.actionid][1]) and getPlayerItemCount(cid, coin2) >= (lever[item.actionid][2]) then
	doPlayerRemoveItem(cid,coin,lever[item.actionid][1]) 
	doPlayerRemoveItem(cid,coin2,lever[item.actionid][2])
	
		doPlayerAddItem(cid,lever[item.actionid][3], isItemStackable(lever[item.actionid][3]) and 1)
		doPlayerSendTextMessage(cid,22,"Voce comprou " .. getItemNameById(lever[item.actionid][3]) .." por "..lever[item.actionid][1].." " ..getItemNameById(coin).. " e "..lever[item.actionid][2].." " ..getItemNameById(coin2))
		doSendMagicEffect(getCreaturePosition(cid), config.eff)

		else

    return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sao necessarios "..lever[item.actionid][1].." " ..getItemNameById(coin).. " e "..lever[item.actionid][2].." " ..getItemNameById(coin2).. " para realizar esta compra.")
end
end

 

Editado por Daniel (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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo