[npc] Mensageiro

joaohd
Por joaohd
em NPCs, monsters e raids

joaohd

Neox Boy
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/02/09Posts: 361Char no Tibia: Fearless Man

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

Ivomec

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/09/09Posts: 10Char no Tibia: -

O do Conde Sapo funcionava aqui normal.

 

E eu não modifiquei nada.

[x] scripter.

Eu sei tudo que você sabe e mais um pouco.

5 anos de scripting.




Brazilian

-- Trabalhos --

Vilden

Loading. . .
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 09/05/08Posts: 1597

É testei o do conde sapo e não pego mesmo não..

____

Valeu por criar uma versão atualizada e que pega :D

Atenciosamente, Vilden.

Ivomec

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/09/09Posts: 10Char no Tibia: -

Aqui funcionou com 2 mudanças só,nao preciso mudar todo script.

[x] scripter.

Eu sei tudo que você sabe e mais um pouco.

5 anos de scripting.




Brazilian

-- Trabalhos --