Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Antes de tudo quero deixar claro que pesquisei no fórum, Não encontrei. Resolvi fazer o meu ^^ 

Este NPC faz oq o titulo diz ^^ vende Stone ou Item por Diamond. Npc simples e configurável :p Testado em Poketibia 8.54  tfs 0.3.6 

 

Em data/npc, coloque um novo arquivo com o nome Ditem.xml e cole isso dentro:

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Dian" script="Ditem.lua" walkinterval="3000" floorchange="0" access="5" >
<health now="150" max="150"/>
<look type="664" head="0" body="114" legs="114" feet="0"/>
<parameters>
<parameter key="message_greet" value="Bem-vindo |PLAYERNAME| Aqui voce pode comprar Stones, Vamos la diga {offer}."/>
<parameter key="message_farewell" value="Bye! See you next time."/>
</parameters>
</npc>

 

Na pasta data/npc/script, crie um arquivo chamado "Ditem.lua" e cole isso:

Spoiler

local keywordHandler = KeywordHandler:new() 
local npcHandler = NpcHandler:new(keywordHandler) 
NpcSystem.parseParameters(npcHandler) 
local talkState = {} 
 
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end 
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end 
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end 
function onThink() npcHandler:onThink() end 
 
function creatureSayCallback(cid, type, msg) 
if(not npcHandler:isFocused(cid)) then 
return false  
end  
 
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid  
 
-- Conversa Jogador/NPC  
if(msgcontains(msg, 'offer') or msgcontains(msg, 'Offer')) then
selfSay('Eu vendo Fire stone, Water stone, Leaf stone. Diga qual voce quer adquirir.', cid) 
elseif(msgcontains(msg, 'Fire stone') or msgcontains(msg, 'fire stone')) then
selfSay('A Fire stone custa 3 Diamonds, Voce vai querer?', cid) 
talkState[talkUser] = 1 
elseif(msgcontains(msg, 'Water stone') or msgcontains(msg, 'water stone')) then
selfSay('A Water stone Custa 3 Diamonds, Voce vai querer?', cid) 
talkState[talkUser] = 2 
elseif(msgcontains(msg, 'Leaf stone') or msgcontains(msg, 'leaf stone')) then
selfSay('A Leaf stone Custa 3 Diamonds, Voce vai querer?', cid) 
talkState[talkUser] = 3 
  
 
-- Confirmação da Compra  
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then  
if(doPlayerRemoveItem(cid, 2145, 3) == true) then  
selfSay('Thanks!', cid) 
doPlayerAddItem(cid, 11447, 1)
talkState[talkUser] = 0 
else  
selfSay('Voce nao tem  diamonds suficiente.', cid) 
talkState[talkUser] = 0  
end  
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then  
if(doPlayerRemoveItem(cid, 2145, 3) == true) then
selfSay('Thanks!', cid) 
doPlayerAddItem(cid, 11442, 1)
talkState[talkUser] = 0
else
selfSay('Voce nao tem  diamonds suficiente.', cid) 
talkState[talkUser] = 0  
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then  
if(doPlayerRemoveItem(cid, 2145, 3) == true) then  
selfSay('Thanks!', cid) 
doPlayerAddItem(cid, 11441, 1)
talkState[talkUser] = 0 
else  
selfSay('Voce nao tem  diamonds suficiente.', cid) 
talkState[talkUser] = 0  
end 
end
return TRUE
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) 
npcHandler:addModule(FocusModule:new())

 

Para adicionar mais itens:

 

1º -  adiciona o nome do item para o player falar o nome dele, caso queira comprar - 

selfSay('Eu vendo Fire stone, Water stone, Leaf stone. Diga qual voce quer adquirir.', cid)

2º - Após o ultimo 

talkState[talkUser] = 3 

Vc adiciona isso - 

elseif(msgcontains(msg, '----NOME DO ITEM----') or msgcontains(msg, '---nome do item---')) then
selfSay('O item Custa 3 Diamonds, Voce vai querer?', cid) 
talkState[talkUser] = 4  ----- Aqui coloca 4 pq ja tem a 3 

3º - Na parte de  -- Confirmação da Compra -- Depois de  um      

talkState[talkUser] = 0  
end
Adicione -- 
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then  ---Coloque 4 por causa da ---talkState[talkUser] = 4---
if(doPlayerRemoveItem(cid, 2145, 3) == true) then  ----Item q sera removido no caso 2145 Diamonds e 3 é a quantidade.
selfSay('Thanks!', cid) 
doPlayerAddItem(cid, 11447, 1) -----  11447 é o item q será entregue no caso é a fire stone, o 1 é a quantidade de itens. 
talkState[talkUser] = 0 
else  
selfSay('Voce nao tem  diamonds suficiente.', cid) 
talkState[talkUser] = 0  
end  

Bom é isso espero ajudar alguém rsrsrs :p^^ 

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.

 

  • 6 months later...
  • 3 years later...
Postado
Em 13/05/2016 em 19:17, Ayron5 disse:

Antes de tudo quero deixar claro que pesquisei no fórum, Não encontrei. Resolvi fazer o meu ^^ 

Este NPC faz oq o titulo diz ^^ vende Stone ou Item por Diamond. Npc simples e configurável :p Testado em Poketibia 8.54  tfs 0.3.6 

 

Em data/npc, coloque um novo arquivo com o nome Ditem.xml e cole isso dentro:

  Ocultar conteúdo


<?xml version="1.0" encoding="UTF-8"?>
<npc name="Dian" script="Ditem.lua" walkinterval="3000" floorchange="0" access="5" >
<health now="150" max="150"/>
<look type="664" head="0" body="114" legs="114" feet="0"/>
<parameters>
<parameter key="message_greet" value="Bem-vindo |PLAYERNAME| Aqui voce pode comprar Stones, Vamos la diga {offer}."/>
<parameter key="message_farewell" value="Bye! See you next time."/>
</parameters>
</npc>

 

Na pasta data/npc/script, crie um arquivo chamado "Ditem.lua" e cole isso:

  Ocultar conteúdo


local keywordHandler = KeywordHandler:new() 
local npcHandler = NpcHandler:new(keywordHandler) 
NpcSystem.parseParameters(npcHandler) 
local talkState = {} 
 
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end 
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end 
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end 
function onThink() npcHandler:onThink() end 
 
function creatureSayCallback(cid, type, msg) 
if(not npcHandler:isFocused(cid)) then 
return false  
end  
 
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid  
 
-- Conversa Jogador/NPC  
if(msgcontains(msg, 'offer') or msgcontains(msg, 'Offer')) then
selfSay('Eu vendo Fire stone, Water stone, Leaf stone. Diga qual voce quer adquirir.', cid) 
elseif(msgcontains(msg, 'Fire stone') or msgcontains(msg, 'fire stone')) then
selfSay('A Fire stone custa 3 Diamonds, Voce vai querer?', cid) 
talkState[talkUser] = 1 
elseif(msgcontains(msg, 'Water stone') or msgcontains(msg, 'water stone')) then
selfSay('A Water stone Custa 3 Diamonds, Voce vai querer?', cid) 
talkState[talkUser] = 2 
elseif(msgcontains(msg, 'Leaf stone') or msgcontains(msg, 'leaf stone')) then
selfSay('A Leaf stone Custa 3 Diamonds, Voce vai querer?', cid) 
talkState[talkUser] = 3 
  
 
-- Confirmação da Compra  
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then  
if(doPlayerRemoveItem(cid, 2145, 3) == true) then  
selfSay('Thanks!', cid) 
doPlayerAddItem(cid, 11447, 1)
talkState[talkUser] = 0 
else  
selfSay('Voce nao tem  diamonds suficiente.', cid) 
talkState[talkUser] = 0  
end  
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then  
if(doPlayerRemoveItem(cid, 2145, 3) == true) then
selfSay('Thanks!', cid) 
doPlayerAddItem(cid, 11442, 1)
talkState[talkUser] = 0
else
selfSay('Voce nao tem  diamonds suficiente.', cid) 
talkState[talkUser] = 0  
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then  
if(doPlayerRemoveItem(cid, 2145, 3) == true) then  
selfSay('Thanks!', cid) 
doPlayerAddItem(cid, 11441, 1)
talkState[talkUser] = 0 
else  
selfSay('Voce nao tem  diamonds suficiente.', cid) 
talkState[talkUser] = 0  
end 
end
return TRUE
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) 
npcHandler:addModule(FocusModule:new())

 

Para adicionar mais itens:

 

1º -  adiciona o nome do item para o player falar o nome dele, caso queira comprar - 


selfSay('Eu vendo Fire stone, Water stone, Leaf stone. Diga qual voce quer adquirir.', cid)

2º - Após o ultimo 


talkState[talkUser] = 3 

Vc adiciona isso - 


elseif(msgcontains(msg, '----NOME DO ITEM----') or msgcontains(msg, '---nome do item---')) then
selfSay('O item Custa 3 Diamonds, Voce vai querer?', cid) 
talkState[talkUser] = 4  ----- Aqui coloca 4 pq ja tem a 3 

3º - Na parte de  -- Confirmação da Compra -- Depois de  um      


talkState[talkUser] = 0  
end
Adicione -- 

elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then  ---Coloque 4 por causa da ---talkState[talkUser] = 4---
if(doPlayerRemoveItem(cid, 2145, 3) == true) then  ----Item q sera removido no caso 2145 Diamonds e 3 é a quantidade.
selfSay('Thanks!', cid) 
doPlayerAddItem(cid, 11447, 1) -----  11447 é o item q será entregue no caso é a fire stone, o 1 é a quantidade de itens. 
talkState[talkUser] = 0 
else  
selfSay('Voce nao tem  diamonds suficiente.', cid) 
talkState[talkUser] = 0  
end  

Bom é isso espero ajudar alguém rsrsrs :p^^ 

vlw

tava procurando um npc pra comprar held box tier 1 com tokens e me ajudo muito

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.6k

Informação Importante

Confirmação de Termo