Ir para conteúdo
Entre para seguir isso  
Ayron5

NPC que vende informação

Recommended Posts

Ayron5    2
Ayron5

Dale! suave? deixo aqui um npc que fiz agora para meu servidor...

Como fala no titulo, ele cobra uma certa quantia de dinheiro ou item, para dar uma informação, só configure certinho.

É bem simples mas pode ajudar alguém ^^ 

Lembrando que está testado e funcionando 100% 

 

Vá em data/npc e crie um arquivo XML com o nome info e cole isso dentro...

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Info" script="info.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| Posso te dar uma informação, Quer saber mais? diga {Quero}."/>
<parameter key="message_farewell" value="Tchau! Vejo voce outra hora."/>
</parameters>
</npc>

 

Salve e feche...

Agora em data/npc/scripts crie um arquivo LUA com o nome info e cole dentro...

Spoiler

---By: Ayron/Sepultura ---

--- NPC que vende info

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 do player com npc
if(msgcontains(msg, 'quero') or msgcontains(msg, 'Quero')) then
selfSay('Eu sei de muitas coisas SOBRE TAL ASSUNTO, mas isso vai te custar algum trocado se quiser fale Aceito/aceito...', cid) 
elseif(msgcontains(msg, 'Aceito') or msgcontains(msg, 'aceito')) then
selfSay('A informacao vai custar ten thousand dollar note, Voce vai querer?', cid) 
talkState[talkUser] = 1  
-- confirmação da compra da info  
elseif(msgcontains(msg, 'yes') or (msgcontains(msg, 'sim')) and talkState[talkUser] == 1) then  
if(doPlayerRemoveItem(cid, 2160, 1) == true) then  ----2160 o item no caso aqui/dinheiro e 1 é a quantidade precisa dele ----
doPlayerSendTextMessage(cid,22,"INFO... va ate o vale perto de uma pedra azul, la vc encontrara um bau de quest.") 
talkState[talkUser] = 0 
else  
selfSay('Voce nao tem dinehro suficiente, volte depois.', cid) 
talkState[talkUser] = 0  
end   
end 
return TRUE
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) 
npcHandler:addModule(FocusModule:new())

 

Bom, é só isso espero ajudar alguém, se ajudei deixa o REP! Aí pra fortalecer a amizade ^^ 

LEMBRANDO QUE DENTO DO ARQUIVO ESTÁ A EXPLICAÇÃO.

Compartilhar este post


Link para o post
Majesty    1755
Majesty

Muito obrigado pela sua contribuição, seu tópico de conteúdo foi aprovado!
Nós do OTServ Brasil agradecemos, seu conteúdo com certeza ajudará a muitos outros. 
Você recebeu +1 REP!

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×