Ir para conteúdo
  • 0

[Resolvido] NPC ERRO STORAGE


vitorelias

Pergunta

Alguém me ajuda resolver esse script estou tentando editar sozinho mas está bem dificil.

o script é simples o player vai chegar no NPC vai falar hi, missao se o player tiver o certificado que no caso é storage 10203 ele vai falar

fala 1 = selfSay('Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal, mas estou aceitando apenas guerreiros com certificados de explorador Andorhal. Aceita?', cid)

 

E se o player fala hi, missao e não tiver a storage do certificado que é 10203 o npc vai falar

fala = selfSay('É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.', cid)

 

fala 1 = selfSay('Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal, mas estou aceitando apenas guerreiros com certificados de explorador Andorhal. Aceita?', cid) aqui o player vai falar Yes ou Sim e o NPC vai dizer 

fala = 2 selfSay('Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.', cid)

e o NPC vai dar uma nova storage pro player pra ter acesso a porta storage nova 10208. 

 

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0
4 horas atrás, Marshmello disse:

isso vai dar erro na certa, vc está colocando um else em cima de um elseif...., use assim


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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

msg = string.lower(msg)

----------------------------------- [ DIALOGO COM NPC] ---------------------------------
  
  if msgcontains(msg, 'missao') then
  	if getPlayerStorageValue(cid, 10203) == 1 then
	  selfSay("Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal. Mas para esta missão estou aceitando apenas guerreiros com certificados de explorador Andorhal. Você aceita esse desafio?", cid)
	  talkState[talkUser] = 1
	return true
  


  elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
	selfSay("Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.", cid)
	setPlayerStorageValue(cid, 10209, 1) -- TROCAR A STORAGE AQUI PARA A CORRETA, SE NÃO FOR A 10209 COLOCAR A 10208
        talkState[talkUser] = 0
  return true
  	else 
      selfSay("É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.", cid)
      talkState[talkUser] = 0
  end
  end
  return true
  end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Primeiramente que o else if não esta vindo depois do Else (pois isso é errado em programação, o else é sempre a última condição em um bloco if), mas está vindo do primeiro If lá em cima do msgcontains para caso o player passe o estado de fala dele para 1 (talkUser). O else é para o segundo If da verificação da storage 10203. E sim, eu havia esquecido de colocar o end no final do else, pois fiz na correria o script.

 

E o seu script vai dar errado, pois se o player falar com o npc e possuir ou não possuir a storage 10203, nunca mais ele vai sair do else e conseguir entrar na parte da fala da missão, pois o bloco else que você removeu tirou o retorno do estado para a primeira fala. Você nem sabe de qual bloco o else era e inverteu aleatoriamente a ordem dele com o else if, sendo assim, ficou desproporcional o código, e como falei, nunca mais o player vai voltar para o estado de fala da missão. Eu até printei aqui com o seu "código" para você mesmo avaliar, na alavanca atrás do player coloquei para receber a storage para falar com o npc, e veja como nunca mais sai do seu else:

 

image.thumb.png.fe497a56f4e31b5b43f2091eae1d7227.png

 

Você mesmo pode testar com seu código e veja que não irá funcionar. E fora que você falou para "usar assim" como se fosse garantido que iria funcionar do jeito que você "fez", isso não é certo amigo. E você também precisa entender melhor a leitura dos códigos, pois eu sei que você tem intenção de ajudar, mas para garantir que irá funcionar as coisas, é necessário testar, ainda mais quando você "garante" que vai funcionar.  

 

@vitorelias use esse código aqui:

 

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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

msg = string.lower(msg)

----------------------------------- [ DIALOGO COM NPC] ---------------------------------
  
  if msgcontains(msg, 'missao') then
  	if getPlayerStorageValue(cid, 60000) == 1 then
	  selfSay("Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal. Mas para esta missão estou aceitando apenas guerreiros com certificados de explorador Andorhal. Você aceita esse desafio?", cid)
	  talkState[talkUser] = 1
	return true
  	else 
      selfSay("É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.", cid)
      talkState[talkUser] = 0
       return true
       end	

  elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
	selfSay("Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.", cid)
	setPlayerStorageValue(cid, 10209, 1) -- TROCAR A STORAGE AQUI PARA A CORRETA, SE NÃO FOR A 10209 COLOCAR A 10208
        talkState[talkUser] = 0
  return true
  end
  end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Eu testei e está funcionando, estou até mandando print para ver:  

 

image.thumb.png.750960b73ec302f2e4ffc753353d3ad3.png

 

Como pode ver está funcionando, mas caso não funcione, me avise que vejo.

Link para o comentário
Compartilhar em outros sites

  • 1
14 horas atrás, vitorelias disse:

Olá boa tarde, apareceu esse erro.

[15:38:27.470] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/Governador De Andorhal.lua
[15:38:27.470] data/npc/scripts/Governador De Andorhal.lua:32: 'end' expected (to close 'if' at line 23) near 'elseif

 

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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

msg = string.lower(msg)

----------------------------------- [ DIALOGO COM NPC] ---------------------------------
  
  if msgcontains(msg, 'missao') then
  	if getPlayerStorageValue(cid, 10203) == 1 then
	  selfSay("Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal. Mas para esta missão estou aceitando apenas guerreiros com certificados de explorador Andorhal. Você aceita esse desafio?", cid)
	  talkState[talkUser] = 1
	return true
  	else 
      selfSay("É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.", cid)
      talkState[talkUser] = 0


  elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
	selfSay("Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.", cid)
	setPlayerStorageValue(cid, 10208, 1)
        talkState[talkUser] = 0
  return true
  end
  end
 end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

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

  • 0
3 horas atrás, vitorelias disse:
Versão do Servidor: TFS - 0.4
Tipo de Script: npc
Código:
  Mostrar conteúdo oculto


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

    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

  
    
 
            if msgcontains(msg, 'missao') then
            if getPlayerStorageValue(cid,10203) == 1 then
                selfSay('Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal, mas estou aceitando apenas guerreiros com certificados de explorador Andorhal. Aceita?', cid)
                talkState[talkUser] = 1
            else
            selfSay('É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.', cid)
            talkState[talkUser] = 0
             elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then 
             selfSay('Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.', cid)
                    setPlayerStorageValue(cid,10209, 1)
              talkState[talkUser] = 0
            end
            
        end
 
    end
        return true
    end

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

Alguém me ajuda resolver esse script estou tentando editar sozinho mas está bem dificil.

o script é simples o player vai chegar no NPC vai falar hi, missao se o player tiver o certificado que no caso é storage 10203 ele vai falar

fala 1 = selfSay('Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal, mas estou aceitando apenas guerreiros com certificados de explorador Andorhal. Aceita?', cid)

 

E se o player fala hi, missao e não tiver a storage do certificado que é 10203 o npc vai falar

fala = selfSay('É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.', cid)

 

fala 1 = selfSay('Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal, mas estou aceitando apenas guerreiros com certificados de explorador Andorhal. Aceita?', cid) aqui o player vai falar Yes ou Sim e o NPC vai dizer 

fala = 2 selfSay('Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.', cid)

e o NPC vai dar uma nova storage pro player pra ter acesso a porta storage nova 10208. 

 

 

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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

msg = string.lower(msg)

----------------------------------- [ DIALOGO COM NPC] ---------------------------------
  
  if msgcontains(msg, 'missao') then
  	if getPlayerStorageValue(cid, 10203) == 1 then
	  selfSay("Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal. Mas para esta missão estou aceitando apenas guerreiros com certificados de explorador Andorhal. Você aceita esse desafio?", cid)
	  talkState[talkUser] = 1
	return true
  	else 
      selfSay("É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.", cid)
      talkState[talkUser] = 0


  elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
	selfSay("Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.", cid)
	setPlayerStorageValue(cid, 10208, 1)
        talkState[talkUser] = 0
  return true
  end
  end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Porém no post você disse que se o player estiver certificado ele recebe storage 10208, mas no seu código estava storage 10209, caso seja 10209, só trocar no setPlayerStorageValue. 

 

Testa ai e vê se está funcionando, eu adicionei algumas palavras a mais em algumas falas, caso não queira, só remover.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá boa tarde, apareceu esse erro.

[15:38:27.470] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/Governador De Andorhal.lua
[15:38:27.470] data/npc/scripts/Governador De Andorhal.lua:32: 'end' expected (to close 'if' at line 23) near 'elseif

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

  • 0
Em 24/10/2019 em 07:18, vitorelias disse:

Olá boa tarde, apareceu esse erro.

[15:38:27.470] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/Governador De Andorhal.lua
[15:38:27.470] data/npc/scripts/Governador De Andorhal.lua:32: 'end' expected (to close 'if' at line 23) near 'elseif

Olá amigo, esse erro aconteceu porque esqueci de colocar o último end. 

 

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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

msg = string.lower(msg)

----------------------------------- [ DIALOGO COM NPC] ---------------------------------
  
  if msgcontains(msg, 'missao') then
  	if getPlayerStorageValue(cid, 10203) == 1 then
	  selfSay("Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal. Mas para esta missão estou aceitando apenas guerreiros com certificados de explorador Andorhal. Você aceita esse desafio?", cid)
	  talkState[talkUser] = 1
	return true
  	else 
      selfSay("É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.", cid)
      talkState[talkUser] = 0


  elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
	selfSay("Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.", cid)
	setPlayerStorageValue(cid, 10208, 1)
        talkState[talkUser] = 0
  return true
  end
  end
  end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Testa ai e me fala.

Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, Yan18 disse:

Olá amigo, esse erro aconteceu porque esqueci de colocar o último end. 

 


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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

msg = string.lower(msg)

----------------------------------- [ DIALOGO COM NPC] ---------------------------------
  
  if msgcontains(msg, 'missao') then
  	if getPlayerStorageValue(cid, 10203) == 1 then
	  selfSay("Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal. Mas para esta missão estou aceitando apenas guerreiros com certificados de explorador Andorhal. Você aceita esse desafio?", cid)
	  talkState[talkUser] = 1
	return true
  	else 
      selfSay("É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.", cid)
      talkState[talkUser] = 0


  elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
	selfSay("Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.", cid)
	setPlayerStorageValue(cid, 10208, 1)
        talkState[talkUser] = 0
  return true
  end
  end
  end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Testa ai e me fala.

Boa tarde agora deu esse erro

 

[15:39:53.475] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/Governador De Andorhal.lua
[15:39:53.476] data/npc/scripts/Governador De Andorhal.lua:32: 'end' expected (to close 'if' at line 23) near 'elseif'

16 horas atrás, Marshmello disse:

 


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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

msg = string.lower(msg)

----------------------------------- [ DIALOGO COM NPC] ---------------------------------
  
  if msgcontains(msg, 'missao') then
  	if getPlayerStorageValue(cid, 10203) == 1 then
	  selfSay("Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal. Mas para esta missão estou aceitando apenas guerreiros com certificados de explorador Andorhal. Você aceita esse desafio?", cid)
	  talkState[talkUser] = 1
	return true
  	else 
      selfSay("É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.", cid)
      talkState[talkUser] = 0


  elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
	selfSay("Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.", cid)
	setPlayerStorageValue(cid, 10208, 1)
        talkState[talkUser] = 0
  return true
  end
  end
 end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Boa tarde agora deu esse erro

[15:39:53.475] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/Governador De Andorhal.lua
[15:39:53.476] data/npc/scripts/Governador De Andorhal.lua:32: 'end' expected (to close 'if' at line 23) near 'elseif'

Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, vitorelias disse:

Boa tarde agora deu esse erro

 

[15:39:53.475] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/Governador De Andorhal.lua
[15:39:53.476] data/npc/scripts/Governador De Andorhal.lua:32: 'end' expected (to close 'if' at line 23) near 'elseif'

Boa tarde agora deu esse erro

[15:39:53.475] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/Governador De Andorhal.lua
[15:39:53.476] data/npc/scripts/Governador De Andorhal.lua:32: 'end' expected (to close 'if' at line 23) near 'elseif'

Teste ae

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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

msg = string.lower(msg)

----------------------------------- [ DIALOGO COM NPC] ---------------------------------
  
  if msgcontains(msg, 'missao') then
  	if getPlayerStorageValue(cid, 10203) == 1 then
	  selfSay("Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal. Mas para esta missão estou aceitando apenas guerreiros com certificados de explorador Andorhal. Você aceita esse desafio?", cid)
	  talkState[talkUser] = 1
	
  elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
	selfSay("Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.", cid)
	setPlayerStorageValue(cid, 10208, 1)
        talkState[talkUser] = 0

	else 
      selfSay("É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.", cid)
      talkState[talkUser] = 0
  end
  
  end
  return true
 end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Link para o comentário
Compartilhar em outros sites

  • 0
5 minutos atrás, Marshmello disse:

Teste ae


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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

msg = string.lower(msg)

----------------------------------- [ DIALOGO COM NPC] ---------------------------------
  
  if msgcontains(msg, 'missao') then
  	if getPlayerStorageValue(cid, 10203) == 1 then
	  selfSay("Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal. Mas para esta missão estou aceitando apenas guerreiros com certificados de explorador Andorhal. Você aceita esse desafio?", cid)
	  talkState[talkUser] = 1
	
  elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
	selfSay("Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.", cid)
	setPlayerStorageValue(cid, 10208, 1)
        talkState[talkUser] = 0

	else 
      selfSay("É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.", cid)
      talkState[talkUser] = 0
  end
  
  end
  return true
 end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Até funciono mais quando falo Yes ou Sim com npc ele não me responde e não me da storage

Link para o comentário
Compartilhar em outros sites

  • 0
4 horas atrás, vitorelias disse:

Até funciono mais quando falo Yes ou Sim com npc ele não me responde e não me da storage

Bom, foi como te falei assim que criei o script para você, no seu post você disse que a storage era 10209, mas no seu código estava 10208, você não comentou qual é a certa, pode ser por isso, no código coloquei 10208, mas pode ser a storage 10209.

 

Estou mandando o código para você com a storage 10209, testa ai e me fala. E deixarei um comentário onde alterar a storage caso não for a 10209.

 

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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

msg = string.lower(msg)

----------------------------------- [ DIALOGO COM NPC] ---------------------------------
  
  if msgcontains(msg, 'missao') then
  	if getPlayerStorageValue(cid, 10203) == 1 then
	  selfSay("Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal. Mas para esta missão estou aceitando apenas guerreiros com certificados de explorador Andorhal. Você aceita esse desafio?", cid)
	  talkState[talkUser] = 1
	return true
  	else 
      selfSay("É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.", cid)
      talkState[talkUser] = 0


  elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
	selfSay("Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.", cid)
	setPlayerStorageValue(cid, 10209, 1) -- TROCAR A STORAGE AQUI PARA A CORRETA, SE NÃO FOR A 10209 COLOCAR A 10208
        talkState[talkUser] = 0
  return true
  end
  end
  return true
  end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Testa e me diga se funciona.

Link para o comentário
Compartilhar em outros sites

  • 0
6 horas atrás, Yan18 disse:

Bom, foi como te falei assim que criei o script para você, no seu post você disse que a storage era 10209, mas no seu código estava 10208, você não comentou qual é a certa, pode ser por isso, no código coloquei 10208, mas pode ser a storage 10209.

 

Estou mandando o código para você com a storage 10209, testa ai e me fala. E deixarei um comentário onde alterar a storage caso não for a 10209.

 


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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

msg = string.lower(msg)

----------------------------------- [ DIALOGO COM NPC] ---------------------------------
  
  if msgcontains(msg, 'missao') then
  	if getPlayerStorageValue(cid, 10203) == 1 then
	  selfSay("Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal. Mas para esta missão estou aceitando apenas guerreiros com certificados de explorador Andorhal. Você aceita esse desafio?", cid)
	  talkState[talkUser] = 1
	return true
  	else 
      selfSay("É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.", cid)
      talkState[talkUser] = 0


  elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
	selfSay("Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.", cid)
	setPlayerStorageValue(cid, 10209, 1) -- TROCAR A STORAGE AQUI PARA A CORRETA, SE NÃO FOR A 10209 COLOCAR A 10208
        talkState[talkUser] = 0
  return true
  end
  end
  return true
  end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Testa e me diga se funciona.

isso vai dar erro na certa, vc está colocando um else em cima de um elseif...., use assim

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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

msg = string.lower(msg)

----------------------------------- [ DIALOGO COM NPC] ---------------------------------
  
  if msgcontains(msg, 'missao') then
  	if getPlayerStorageValue(cid, 10203) == 1 then
	  selfSay("Preciso que você mate um lagarto que vive aterrorizando a população de Andorhal, este lagarto esta nas tumbas dos lagartos localizada na floresta de Andorhal. Mas para esta missão estou aceitando apenas guerreiros com certificados de explorador Andorhal. Você aceita esse desafio?", cid)
	  talkState[talkUser] = 1
	return true
  


  elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
	selfSay("Você agora esta autorizado a entrar na sala onde esta o lagarto. Muito cuidado, este lagarto é muito forte. Encontrará ótimas recompenças na sala.", cid)
	setPlayerStorageValue(cid, 10209, 1) -- TROCAR A STORAGE AQUI PARA A CORRETA, SE NÃO FOR A 10209 COLOCAR A 10208
        talkState[talkUser] = 0
  return true
  	else 
      selfSay("É obrigatório ser certificado como explorador de Andorhal. Procure o comprador Tadeu, Kurl e Robens.", cid)
      talkState[talkUser] = 0
  end
  end
  return true
  end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Diretor
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...