NPC.xml
<?xml version="1.0"?>
<npc name="NomeDoNPC" script="data/npc/scripts/NomeDoArquivoLua.lua" walkinterval="2000">
<health now="200" max="200" />
<look type="136" head="113" body="65" legs="0" feet="96" addons="2"/>
<parameters>
<parameter key="message_greet" value="Olá jovem, bem vindo a Town's Ville. Eu posso estar lhe ajudando dando {informações} sobre o {mapa}." />
</parameters>
</npc>
NPC/Script
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
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 thinkCallback(cid)
local rand = math.random(1,50)
if rand == 1 then
selfSay('Posso lhe conceber ajuda sobre todas as mudanças que houveram na cidade de Towns Ville...')
elseif rand == 2 then
selfSay('Precisa de ajuda em encontrar algum lugar de Towns Ville? Pergunte-me!')
elseif rand == 3 then
selfSay('É a sua primeira vez aqui? Eu posso lhe ofereçer ajuda...')
end
return true
end
function greetCallback(cid)
return true
end
local shopModule = ShopModule:new()
npcHandler:addModule(shopModule)
if(msgcontains(msg, 'Informações') then
selfSay('Atualmente, posso lhe dizer tudo sobre a cidade, seu {templo}, o {banco}, {lojas}, {locais de magias}, o {deposito} ({dp}), e um pouco sobre os {bairros}.', cid)
talkState[talkUser] = 1
-------------------------------------------------------------------------------------------------------------------------------------------------------
elseif(msgcontains(msg, 'templo') and talkState[talkUser] == 1) then
selfSay('Edite a Informação sobre o {Templo} Aqui!')
talkState[talkUser] = 0
elseif(msgcontains(msg, 'banco') and talkState[talkUser] == 1) then
selfSay('Edite a Informação sobre o {Banco} Aqui!')
talkState[talkUser] = 0
elseif(msgcontains(msg, 'lojas') and talkState[talkUser] == 1) then
selfSay('Edite a Informação sobre o {Lojas} Aqui!')
talkState[talkUser] = 0
elseif(msgcontains(msg, 'locais de magias') and talkState[talkUser] == 1) then
selfSay('Edite a Informação sobre o {locais de magia} Aqui!')
talkState[talkUser] = 0
elseif(msgcontains(msg, 'deposito') or msgcontains(msg, 'dp') and talkState[talkUser] == 1) then
selfSay('Edite a Informação sobre o {Deposito} Aqui!')
talkState[talkUser] = 0
elseif(msgcontains(msg, 'bairros') and talkState[talkUser] == 1) then
selfSay('Edite a Informação sobre o {Bairros} Aqui!')
talkState[talkUser] = 0
elseif(msgcontains(msg, 'mapa')) then
selfSay('Bom, eu posso deixar marcas no seu mapa, mostrando assim, onde fica os principais locais... Você gostaria que eu fizesse isso?')
talkState[talkUser] = 2
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
selfSay('Ok! Marquei os principais lugares em seu mapa... Caso ainda tenha dúvidas me pergunte!')
doPlayerAddMapMark(cid, {x=000, y=000, z=0,}, NumeroDaMarcação, 'Templo')
doPlayerAddMapMark(cid, {x=000, y=000, z=0,}, NumeroDaMarcação, 'Banco')
doPlayerAddMapMark(cid, {x=000, y=000, z=0,}, NumeroDaMarcação, 'Lojas')
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and talkState[talkUser] == 2) then
selfSay('Então, já conhece o mapa... Procure-me quando precisar de ajuda!')
talkState[talkUser] = 0
end
return TRUE
end
npcHandler:setCallback(CALLBACK_ONTHINK, thinkCallback)
npcHandler:setCallback(CALLBACK_GREET, greetCallback)
npcHandler:addModule(FocusModule:new())
Não Testei, espero que funcione!
Abraços !!
Última Atualização no Website: Sábado, 22 de Dezembro de 2012.