Ir para conteúdo

Npc Quest - Traga Tal Item E Ganhe Tal Recompensa


pessoa93

Posts Recomendados

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.

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

Da pra trabalhar mais nele, por exemplo, se for a primeira vez que o jogador falar com o npc, ai ele manda buscar, ai na segunda vez ele checa o item e da a recompensa.

 

Bom script, até.

Eu com meus conhecimentos basicos tentei adicionar storage nele pra quando o player for tentar de novo não funcionar só que não obtive sucesso, se puder agradeço.

Link para o comentário
Compartilhar em outros sites

pq naum cria um sistema full, pq assim fico mto "só"

 

Tipow,

 

Fis 1 informação sbre quest....

 

function onSay(cid, words, param)

local quests = {9393, 12568, 12618, 5808, 7424 ,2000 ,12617 ,8931 ,8932 ,8925 ,2495 ,2646 ,6132 ,2527 ,6391 ,6528} --id de cada quest...
local feitas = {} --enbranco

doPlayerPopupFYI(cid, getPlayerName(cid) .. " completou " .. #feitas .. "/" .. #quests .. " quests.\n\nAs "..#quests..",estão espalhada por todo o Mapa.\nCada um em um Local Diferente.") --mostra as quest completa
end

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

×
×
  • Criar Novo...