eu vi um tópico do conde sapo onde ele divulgava um npc mensageiro. porém vi tambem que era antigo e usava o sistema de selfsay para enviar a broadcast. então fiz esse npc mensageiro para aqueles que precisam dele e usam ot 8.5 (o do conde n funcionava nele). aí vai:
em data/npc/scripts crie um arquivo chamado msn.lua e cole isso dentro:
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
--------------------------------------------------------------------------------
msg = string.lower(msg)
if msgcontains(msg, 'help') or msgcontains(msg, 'job') then
selfSay('Eu mando mensagens para os jogadores online. Para enviar, diga {msg}.', cid)
elseif msgcontains(msg, 'msg') or msgcontains(msg, 'message') then
selfSay('Você dejesa enviar uma mensagem por 5000 gold?', cid)
talk_state = 1
elseif msgcontains(msg, 'yes') and talk_state == 1 then
selfSay('Qual mensagem você dejesa enviar?', cid)
talk_state = 2
elseif msg ~= "" and msg ~= 'no' and talk_state == 2 then
if doPlayerRemoveMoney(cid,5000) then
broadcastMessage("[NPC Mensageiro] " ..getPlayerName(cid).. " says: "..msg.."")
talk_state = 0
else
selfSay('Você não tem dinheiro!', cid)
talk_state = 0
end
elseif msg == 'no' then
selfSay('Ok. Volte sempre.', cid)
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
depois vá em data/npc e crie um arquivo chamado Mensageiro.xml e cole isso dentro:
<npc name="Mensageiro" script="data/npc/scripts/msn.lua" access="5" lookdir="1"><health now="1000" max="1000"/>
<look type="266" head="94" body="106" legs="106" feet="106" addons="2"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|. Eu mando mensagens por 5000 gold. diga {msg}."/>
<parameter key="message_decline" value="Volte sempre."/>
<parameter key="message_farewell" value="Volte sempre, |PLAYERNAME|!"/>
</parameters>
</npc>
pronto! agora só colocar ele no seu mapa e mandar suas mensagens.
obs: cada broadcast custa 5k. caso queira mudar, basta substituir os "5000" do script para a quantidade desejada.
Comenta ae.
flw