Ayron5 2 #1 Posted October 27, 2019 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. 1 Majesty reacted to this Share this post Link to post
Majesty 1,755 #2 Posted October 27, 2019 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! Share this post Link to post