Vou trazer pra vocês um exemplo do NPC do meu servidor, ele é um corveiro.
NPC:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Corveiro Ruan" script="data/npc/scripts/vdustquest.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="128" head="85" body="126" legs="113" feet="0" addons="0" corpse="2212"/>
<parameters>
</parameters>
</npc>
Script:
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
npcHandler:setMessage(MESSAGE_GREET, "Um vampire roubou meu Guadian shield e guardou na sala dele, você poderia buscar pra mim por favor?")
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 Jogador/NPC
if(msgcontains(msg, 'yes')) and getPlayerItemCount(cid,2515)>=1 then
doPlayerRemoveItem(cid,2515,1)
doPlayerAddItem(cid,2152,10)
selfSay('Obrigado por me ajudar, pegue esse dinheiro para você.',cid)
talkState[talkUser] = 1
else
selfSay('Você não trouxe meu escudo.',cid)
talkState[talkUser] = 1
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Explicando as linhas que você pode mudar:
npcHandler:setMessage(MESSAGE_GREET, "Um vampire roubou meu Guadian shield e guardou na sala dele, você poderia buscar pra mim por favor?")
Entre as "aspas" você pode colocar a mensagem inicial quando você falar HI.
--
doPlayerRemoveItem(cid,2515,1)
Aqui 2515 é o item que vai ser removido e 1 e a quantidade.
--
doPlayerAddItem(cid,2152,10)
Aqui é o item e quantidade que o player vai ganha quando trouxer tal item.
--
selfSay('Obrigado por me ajudar, pegue esse dinheiro para você.',cid)
A mensagem que vai aparecer quando trouxe o item.
--
selfSay('Você não trouxe meu escudo.',cid)
A mensagem que vai aparecer quando não tiver o item.
FIM. Trouxe esse npc por que é um npc muito bom para RPG.
Creditos: Estava aqui no pc, não sei aonde eu peguei.