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...
<?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...
---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.