Ir para conteúdo

NPC que vende informação


Ayron5

Posts Recomendados

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.  

Link para o comentário
Compartilhar em outros sites

  • 10 months later...
  • 1 year later...
×
×
  • Criar Novo...