Ir para conteúdo

[npc] Mensageiro


joaohd

Posts Recomendados

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

Editado por apocarai
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...