Jump to content
  • 0

Npc Alesar - (AJUDA)


lucasloran

Question

Bom dia, tudo bem com vocês? 

Seguinte galera, estou acabando de configurar a djin quest no meu otserver OTX2. Porem o npc Alesar executa duas funçoes, a de vender/comprar itens e a continuação da djins quest. Para vender ao npc é necessario o storage 1038 e para continuar a missão o storage 1029. Aparentemente configurei tudo certo, porem ele so executa a função de shop e da mission não, vou deixar o script aqui e se alguem puder me ajudar. fico agradecido! 

alesar.lua

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Mano eu sei que vai ser complicado pra voce mais tenta entender ^^ VMS LA ^^

 

 

 

1-Criação de objetos de manipulação de palavras-chave e NPCs:

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

 

Nessa parte, são criados objetos para manipulação de palavras-chave e NPCs. O objeto keywordHandler é usado para lidar com palavras-chave e o objeto npcHandler é usado para lidar com NPCs. Em seguida, a função parseParameters é chamada para analisar os parâmetros do NPC.

 

2-Definição de funções de tratamento de eventos do jogo:

 

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

 

Essas são funções de tratamento de eventos do jogo OTServ. Elas são chamadas automaticamente pelo jogo quando certos eventos ocorrem, como quando um jogador aparece, desaparece, fala ou quando o NPC está pensando.

 

3-Definição de uma função de callback para a saudação do NPC:

 

local function greetCallback(cid)
    if getPlayerStorageValue(cid, 1038) ~= 999 then
        return true
    else
        npcHandler:say('NAO POSSO FALAR COM VOCE')
        return false
    end
end

  

Essa função é uma callback (retrochamada) que é registrada para ser executada quando um jogador sauda o NPC. Ela verifica se o valor de armazenamento do jogador (getPlayerStorageValue) com a chave 1038 é diferente de 999. Se for diferente, a função retorna verdadeiro (true) permitindo que o NPC responda à saudação. Caso contrário, o NPC diz 'NAO POSSO FALAR COM VOCE' e a função retorna falso (false) impedindo que o NPC responda à saudação.

 

4- Registro da função de callback para a saudação do NPC:

 

npcHandler:setCallback(CALLBACK_GREET, greetCallback)

 

Nessa parte, a função de callback greetCallback é registrada para ser chamada quando um jogador saudar o NPC.

 

5- Definição de uma função de callback para as mensagens do jogador:

 

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

    -- Código para lidar com mensagens específicas do jogador

end

 

Essa função é outra callback que é registrada para ser chamada quando um jogador envia uma mensagem para o NPC. Ela verifica se o jogador está focado no NPC (ou seja, está interagindo com o NPC) usando a função isFocused do objeto npcHandler.

 

você pode simplesmente incluir esse código no script do NPC. As funções de callback, como greetCallback e creatureSayCallback, serão automaticamente acionadas em resposta
 

Valeau, espero ter ajudado ^^ fui 

 

 


 

Link to comment
Share on other sites

  • 0
Em 04/04/2023 em 18:42, red X disse:

Mano eu sei que vai ser complicado pra voce mais tenta entender ^^ VMS LA ^^

 

 

 

1-Criação de objetos de manipulação de palavras-chave e NPCs:

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

 

Nessa parte, são criados objetos para manipulação de palavras-chave e NPCs. O objeto keywordHandler é usado para lidar com palavras-chave e o objeto npcHandler é usado para lidar com NPCs. Em seguida, a função parseParameters é chamada para analisar os parâmetros do NPC.

 

2-Definição de funções de tratamento de eventos do jogo:

 

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

 

Essas são funções de tratamento de eventos do jogo OTServ. Elas são chamadas automaticamente pelo jogo quando certos eventos ocorrem, como quando um jogador aparece, desaparece, fala ou quando o NPC está pensando.

 

3-Definição de uma função de callback para a saudação do NPC:

 

local function greetCallback(cid)
    if getPlayerStorageValue(cid, 1038) ~= 999 then
        return true
    else
        npcHandler:say('NAO POSSO FALAR COM VOCE')
        return false
    end
end

  

Essa função é uma callback (retrochamada) que é registrada para ser executada quando um jogador sauda o NPC. Ela verifica se o valor de armazenamento do jogador (getPlayerStorageValue) com a chave 1038 é diferente de 999. Se for diferente, a função retorna verdadeiro (true) permitindo que o NPC responda à saudação. Caso contrário, o NPC diz 'NAO POSSO FALAR COM VOCE' e a função retorna falso (false) impedindo que o NPC responda à saudação.

 

4- Registro da função de callback para a saudação do NPC:

 

npcHandler:setCallback(CALLBACK_GREET, greetCallback)

 

Nessa parte, a função de callback greetCallback é registrada para ser chamada quando um jogador saudar o NPC.

 

5- Definição de uma função de callback para as mensagens do jogador:

 

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

    -- Código para lidar com mensagens específicas do jogador

end

 

Essa função é outra callback que é registrada para ser chamada quando um jogador envia uma mensagem para o NPC. Ela verifica se o jogador está focado no NPC (ou seja, está interagindo com o NPC) usando a função isFocused do objeto npcHandler.

 

você pode simplesmente incluir esse código no script do NPC. As funções de callback, como greetCallback e creatureSayCallback, serão automaticamente acionadas em resposta
 

Valeau, espero ter ajudado ^^ fui 

 

 


 

Não entendi bem onde entraria essa parte, consegue me chamar no discord? pq ai te explico melhor o que esta acontecendo.  Salles#6041. Obrigado! 

Link to comment
Share on other sites

  • 0

Tenta assim

 

Abre a pasta do seu servidor/data/npc/script

Mais pra isso voce precisar ir na pasta Npc

pra cirar um novo npc ou botar em um npc que ja existe.

 

 

Sou vou te avisar que eu nao vou fazer no seu lugar.

 

Edited by red X
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...