Ir para conteúdo

Featured Replies

Postado

Olá TK, venho aqui pedir uma ajuda com um npc, que marca areas no mapa para o player conforme ele perguntar.

Uso TFS: Do servidor OTX 11.49 - TFS 1.3

 

O problema que estou tendo segue abaixo:

NPC GUIDE

Citar

NPC.XML


<?xml version="1.0" encoding="UTF-8"?>
<npc name="Getulio" script="getulios.lua">
    <look type="132" head="79" body="79" legs="79" feet="79" />
</npc>

NPC.LUA


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 onPlayerEndTrade(cid)          npcHandler:onPlayerEndTrade(cid)            end
function onPlayerCloseChannel(cid)      npcHandler:onPlayerCloseChannel(cid)        end

local voices = { {text = 'Oi sou Getulio, sei onde fica tudo por aqui em Burthorpe, caso queira "saber" algo estou aqui.'} }
npcHandler:addModule(VoiceModule:new(voices))

keywordHandler:addKeyword({'saber'}, StdModule.say, {npcHandler = npcHandler, text = "gostaria de saber onde fica quais desses locais ? {Templo}, {Depot}."})
 
 
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 doMessageCheck(msg, "templo") then
        selfSay('hmm tempe?', cid)
        talkState[talkUser] = 1
    elseif talkState[talkUser] == 1 and doMessageCheck(msg, 'yes') then
        selfSay('Aqui', cid)
        doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Pronto, marquei eu seu mapa onde fica o templo.")
        doPlayerAddMapMark(cid, {x=111, y=111, z=7}, MAPMARK_TEMPLE, "Templo de Burthorpe.")
        talkState[talkUser] = 0
 
    elseif doMessageCheck(msg, "depot") then
        selfSay('hmm Depot?', cid)
        talkState[talkUser] = 2
    elseif talkState[talkUser] == 2 and doMessageCheck(msg, 'yes') then
        selfSay('Aqui', cid)
        doPlayerSendTextMessage(cid, MAPMARK_SHOVEL, "Pronto, marquei eu seu mapa onde fica o Depot.")
        doPlayerAddMapMark(cid, {x=222,y=222,z=7}, MAPMARK_SHOVEL, "Depot de Burthorpe.")
        talkState[talkUser] = 0
 
-- no
    elseif(doMessageCheck(msg, 'no') and isInArray({1,2}, talkState[talkUser])) then
        selfSay('Ok then.', cid)
        talkState[talkUser] = 0
    end
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
--[[
optional:
MAPMARK_TICK
MAPMARK_QUESTION
MAPMARK_EXCLAMATION
MAPMARK_STAR
MAPMARK_CROSS
MAPMARK_TEMPLE
MAPMARK_KISS
MAPMARK_SHOVEL
MAPMARK_SWORD
MAPMARK_FLAG
MAPMARK_LOCK
MAPMARK_BAG
MAPMARK_SKULL
MAPMARK_DOLLAR
MAPMARK_REDNORTH
MAPMARK_REDSOUTH
MAPMARK_REDEAST
MAPMARK_REDWEST
MAPMARK_GREENNORTH
MAPMARK_GREENSOUTH
 ]]

 

Citar

NPC_GUID.png?1521652389

ESSE ERRO OCORRE QUANDO O PLAYER FALA TEMPLO.

 

 

 

Você tem o código disponível? Se tiver publique-o aqui:


 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.

Resolvido por Vodkart

Ir para solução
Postado

em

 

/data/npc/lib/npc.lua

 

adicione:

 

function doMessageCheck(message, keyword)
if(type(keyword) == "table") then
return table.isStrIn(keyword, message)
end
local a, b = message:lower():find(keyword:lower())
if(a ~= nil and b ~= nil) then
return true
end
return false
end
 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo