AY

NPC que vende informação

Por Ayron5, 03 de nov. de 2018 em NPCs, monsters e raids

npc
vende
informação
2
3.3k
Ayron5A
03 de novembro de 2018 às 21:28

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.  

10 meses depois...
KaboFlowK
18 de setembro de 2019 às 04:13

vo test mano