Ir para conteúdo
  • Cadastre-se

(Resolvido)condição para poder falar com o npc


Ir para solução Resolvido por Adriano SwaTT,

Posts Recomendados

queria colocar nessa script de npc uma condição, tipo, só players com certa storage podem falar com o npc, se o player tiver a storage ele falará de boas com o npc, se não, retornara uma mensagem para o player avisando que ele ainda n tem aquela missão, bem simples mas eu n sei fazer :(

a script do npc:

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
local msg = string.lower(msg)
local storage,pos = 89745,{x=1090, y=957, z=7}
if isInArray({"lutar","fight","entrar","participar"}, msg) then
npcHandler:say("HAHAHAHA, um mero shinobi louco por aventura, quer mesmo ir comigo? {yes}", cid)
talkState[talkUser] = 1
elseif isInArray({"yes","sim"}, msg) and talkState[talkUser] == 1 then
if getPlayerStorageValue(cid, storage) <= 0 then
npcHandler:say("Vamos nessa então, mas não vale voltar atraz!", cid)
talkState[talkUser] = 0
doTeleportThing(cid, pos)
else
npcHandler:say("Você já terminou a missão", cid)
talkState[talkUser] = 0
end
elseif msg == "no" then
selfSay("Hahahaha, sabia que voce medroso, então saia da minha frente seu muleque!", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

quem ajudar como sempre irei dar rep ++!

Link para o post
Compartilhar em outros sites

queria colocar nessa script de npc uma condição, tipo, só players com certa storage podem falar com o npc, se o player tiver a storage ele falará de boas com o npc, se não, retornara uma mensagem para o player avisando que ele ainda n tem aquela missão, bem simples mas eu n sei fazer :(

a script do npc:

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

local msg = string.lower(msg)

local storage,pos = 89745,{x=1090, y=957, z=7}

if isInArray({"lutar","fight","entrar","participar"}, msg) then

npcHandler:say("HAHAHAHA, um mero shinobi louco por aventura, quer mesmo ir comigo? {yes}", cid)

talkState[talkUser] = 1

elseif isInArray({"yes","sim"}, msg) and talkState[talkUser] == 1 then

if getPlayerStorageValue(cid, storage) <= 0 then

npcHandler:say("Vamos nessa então, mas não vale voltar atraz!", cid)

talkState[talkUser] = 0

doTeleportThing(cid, pos)

else

npcHandler:say("Você já terminou a missão", cid)

talkState[talkUser] = 0

end

elseif msg == "no" then

selfSay("Hahahaha, sabia que voce medroso, então saia da minha frente seu muleque!", cid)

talkState[talkUser] = 0

npcHandler:releaseFocus(cid)

end

return true

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

quem ajudar como sempre irei dar rep ++!

Não seria mais facil um item? :]

I helped you ? REP +.

 

Att: Abreu

Link para o post
Compartilhar em outros sites

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
local msg = string.lower(msg)
local storage,pos = 89745,{x=1090, y=957, z=7}
if isInArray({"lutar","fight","entrar","participar"}, msg) then
npcHandler:say("HAHAHAHA, um mero shinobi louco por aventura, quer mesmo ir comigo? {yes}", cid)
talkState[talkUser] = 1
elseif isInArray({"yes","sim"}, msg) and talkState[talkUser] == 1 then

if getPlayerStorageValue(cid, STORAGE) ~= 1 then

npcHandler:say("Vamos nessa então, mas não vale voltar atraz!", cid)
talkState[talkUser] = 0
doTeleportThing(cid, pos)
else
npcHandler:say("Voce ja fez essa missao!", cid)
talkState[talkUser] = 0
end
elseif msg == "no" then
selfSay("Hahahaha, sabia que voce medroso, então saia da minha frente seu muleque!", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Já estava ai a função.. Só coloquei diferente de ~= 1 pra da mais certinho..

Em Storage você poe a STORAGE da Missao que quer..

Onde está         -- getPlayerStorageValue(cid, --> STORAGE <-- )

Editado por lucasromero (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

acho que vc n entendeu cara, a storage que tem ai é para um player que ja fez a missão n fassa denovo e a condição que eu pedi é que um player deverá ter tal storage para poder fazer a missão.

Link para o post
Compartilhar em outros sites
  • Solução

Bom dia.

Teste 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
local msg = string.lower(msg)

local storage,pos = 89745,{x=1090, y=957, z=7}
local strg = XXXX -- Necessária para falar com NPC

    if isInArray({"lutar","fight","entrar","participar"}, msg) then
        if getPlayerStorageValue(cid, strg) <= 0 then
            selfSay("Você precisa da permissão para falar comigo, consiga e volte mais tarde.", cid)
            talkState[talkUser] = 0
            npcHandler:releaseFocus(cid)
        else
            npcHandler:say("HAHAHAHA, um mero shinobi louco por aventura, quer mesmo ir comigo? {yes}", cid)
            talkState[talkUser] = 1
        end
    elseif isInArray({"yes","sim"}, msg) and talkState[talkUser] == 1 then
        if getPlayerStorageValue(cid, strg) >= 1 then
            if getPlayerStorageValue(cid, storage) <= 0 then
                npcHandler:say("Vamos nessa então, mas não vale voltar atraz!", cid)
                talkState[talkUser] = 0
                doTeleportThing(cid, pos)
            else
                npcHandler:say("Você já terminou a missão", cid)
                talkState[talkUser] = 0
            end
        else
            selfSay("Você precisa da permissão para falar comigo, consiga e volte mais tarde.", cid)
            talkState[talkUser] = 0
            npcHandler:releaseFocus(cid)
        end
    elseif msg == "no" then
        selfSay("Hahahaha, sabia que voce medroso, então saia da minha frente seu muleque!", cid)
        talkState[talkUser] = 0
        npcHandler:releaseFocus(cid)
    end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Boa sorte.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

funcionou certinho cara ;) , rep ++

Obrigado, vou apenas pedir para marcar como Melhor Resposta para que o tópico receba o status de Resolvido.

 

Faça bom aproveito.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo