Ir para conteúdo

Ajuda Com Npc


michelmain

Posts Recomendados

Ola sou novo por aqui se tiver algum erro na postagem me descupe.

Entao eu tenho um npc que faz a funçao tipo o do Grizzly Adams ,mas ao inves de receber so um item normal querro tambem adicionar um action em uma key que o npc dara ao terminar a quest.

 

o script do npc é este:

 

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

npcHandler:addModule(FocusModule:new())

local talkState = {}
local storageQuest = 1000000000
local storageDemons = 10000000001
local premio = 1987 -- id do premio

function creatureSayCallback(cid, type, msg)
   if not npcHandler:isFocused(cid) then
       return false
   end

   local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

   if msgcontains(msg, 'apocalipse') then
       if getPlayerStorageValue(cid, storageQuest) <= 0 then
           selfSay('Os demonios estão dominando o nosso mundo. Você precisa matar 66 Demons. Aceita?', cid)
           talkState[talkUser] = 1
       elseif getPlayerStorageValue(cid, storageQuest) == 1 then
           if getPlayerStorageValue(cid, storageDemons) < 66 then
               selfSay('Volte quando matar 66 Demons.', cid)
           else
               selfSay('Você ja matou 66 Demons. Gostaria de receber seu prêmio?', cid)
               talkState[talkUser] = 2
           end
       else
           selfSay('Você ja recebeu seu prêmio.', cid)
       end
   elseif msgcontains(msg, 'yes') then
       if talkState[talkUser] == 1 then
           selfSay('Depois de matar 66 Demons volte para receber seu prêmio.', cid)
           doPlayerSetStorageValue(cid, storageQuest, 1)
           doPlayerSetStorageValue(cid, storageDemons, 0)
       elseif talkState[talkUser] == 2 then
           selfSay('Toma seu prêmio e a chave do inferno!.', cid)
           container = doPlayerAddItem(cid,premio )
           doAddContainerItem(container, 2160, 10)
           doAddContainerItem(container, 2087, 1)
           doPlayerSetStorageValue(cid, storageQuest, 2)
       end
       talkState[talkUser] = 0
   elseif msgcontains(msg, 'no') then
       if talkState[talkUser] == 1 or talkState[talkUser] == 2 then
           selfSay('Ok.', cid)
       end
       talkState[talkUser] = 0
   end

   return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

quero adicionar um action no item 2087 para que a key possa abrir uma porta.

Obrigado espero respostas.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...