Como resolver os erros da missão Metin2?
Guia para recarga de missões, falta de resposta de NPCs, erros de função e problemas de compilação de missões.
Missões, conversas com NPCs, sistemas de eventos, biólogo, teletransporte, mercado, seguimento de bosses, recompensas diárias e muitos sistemas especiais nos servidores Metin2. missão Funciona através de ficheiros. Portanto, mesmo um pequeno erro cometido no lado da missão pode fazer com que o NPC não reaja, o evento não comece ou o ficheiro syserr do canal produza erros constantemente.
O maior problema com os erros de missão é que o erro parece muitas vezes geral, como “NPC não está a funcionar”. Mas o verdadeiro motivo pode ser vnum errado, função em falta, sintaxe quebrada, estrutura de estado defeituosa ou a missão não ter sido compilada.
1. Onde encontrar os ficheiros da missão?
O caminho dos ficheiros da Quest pode variar consoante a infraestrutura do servidor. Os diretórios normalmente utilizados são:
/usr/game/share/locale/turkey/quest/ /home/game/share/locale/turkey/quest/ /usr/metin2/share/locale/turkey/quest/
Os ficheiros de missão são geralmente .quest com extensão. Ficheiros criados após compilação objeto É mantido na pasta.
2. Primeira verificação para compreender o erro da missão
Se uma missão não estiver a funcionar, o ficheiro syserr do canal relevante terá de ser verificado primeiro.
cd /usr/game/channel1/core1 tail -n 100 syserr
Para assistir a erros ao vivo que ocorrem após recarregar a missão:
tail -f syserr
Exemplos comuns de erros de missão:
no such quest function attempt to call field syntax error unexpected symbol quest not found when condition error
3.º Como compilar a missão?
Quando adiciona um novo ficheiro de missão, não basta apenas atirá-lo para a pasta. A missão precisa de ser compilada.
Primeiro entre no diretório da missão:
cd /usr/game/share/locale/turkey/quest
Exemplo para compilar uma única missão:
./qc quest_adi.quest
O caminho qc pode ser diferente em alguns sistemas:
/usr/game/share/locale/turkey/quest/qc quest_adi.quest
O nome do script utilizado para compilar todas as missões varia consoante a infraestrutura. Exemplo:
sh make.sh
4.º Como recarregar a missão?
Após a missão ser compilada, pode ser recarregada no jogo com uma personagem GM.
/reload q
Em alguns casos, apenas recarregar não é suficiente. Especialmente se a estrutura do estado, a bandeira da missão ou as condições iniciais tiverem sido alteradas, pode ser necessário voltar a entrar na personagem ou reiniciar o canal.
A ordem geral deverá ser a seguinte:
- Editar ficheiro de missão
- Verifique a sintaxe
- Compilar ficheiro Quest com qc
- Execute /recarregue q no jogo
- Confira o Syserr
- Teste o comportamento do NPC ou do evento
5. NPC Quest não funciona, problema
Se nada acontecer ao clicar no NPC, devem ser verificados os seguintes pontos:
- O NPC vnum utilizado na missão está correto?
- Os NPCs aparecem realmente no mapa do lado do servidor?
- A Quest é compilada?
- O syserr ocorreu após /reload q?
- O início do estado da missão está correto?
- O código deixou de ser executado devido a uma condição errada na Quest?
Exemplo de estrutura de disparo NPC:
quest ornek_npc begin
state start begin
when 20011.chat."Ornek Menu" begin
say_title("Ornek NPC")
say("Bu bir test mesajidir.")
end
end
endaqui 20011 Valor vnum do NPC. Se o NPC vnum estiver incorreto, a missão não funcionará.
6. sem erro de função de missão
em Syserr não existe essa função de missão Se for visto, a função utilizada na missão não está definida no servidor.
Razões:
- A missão é retirada de outra infraestrutura.
- A função de missão relevante não é adicionada no lado da Fonte.
- A função auxiliar que deveria estar no ficheiro questlib. lua está em falta.
- O nome da função está mal escrito.
Neste caso, a solução é verificar se a função existe realmente no servidor. As missões retiradas de outros ficheiros não devem ser consideradas diretamente compatíveis.
7. Erros de sintaxe da missão
Os erros de digitação mais comuns nos ficheiros Quest são:
- fim uso insuficiente ou excessivo
- Não fechar aspas
- Errado quando a condição foi escrita
- Utilizar caracteres turcos ou codificação incorreta
- Utilizando funções retiradas de outro sistema sem adaptação
Exemplo de estrutura defeituosa:
say("Merhaba oyuncu)Estrutura correta:
say("Merhaba oyuncu")8. Problemas com os sinalizadores de missão
Algumas missões mantêm uma bandeira na personagem ou na conta. A missão não inicia ou pode parecer concluída devido ao valor incorreto da bandeira.
Por exemplo, se uma missão já tiver sido concluída, o NPC poderá não voltar a mostrar o menu. Neste caso, o sinalizador de missão relevante deve ser verificado.
Erros Comuns
- Esquecer de colocar o ficheiro Quest numa pasta e compilá-lo
- Fazendo /reload q mesmo que haja um erro de compilação
- Valor vnum do NPC errado
- Usando missões retiradas de outros ficheiros sem as adaptar
- Pensar que um NPC não está a funcionar sem verificar o sinalizador de missão
- A missão parece estar correta, mas não funciona porque a codificação está corrompida.
Perguntas frequentes
Fiz /reload q mas a quest não funcionou, porquê?
A missão pode não ter sido compilada, pode ter ocorrido um erro durante a compilação ou pode não estar visível no leitor devido à condição de estado/sinalização.
Clico no NPC e o menu não aparece. O problema é do NPC?
Nem sempre. Mesmo que o NPC vnum esteja correto, a missão pode não ser compilada, mal escrita ou executada devido a uma condição.
Porque é que a missão que recebi de outro servidor apresenta erro?
Tal como as funções utilizadas, a estrutura questlib ou os suportes de origem podem não estar disponíveis na sua infraestrutura.
Recomendações de segurança e operações
- Faça um backup do ficheiro antes de editar a Quest.
- Implemente mudanças importantes nas missões no servidor ativo durante o horário de poucos jogadores.
- Verifique o syserr após cada compilação de missões.
- Tenha em atenção os caracteres turcos e as distorções de codificação.
- Faça um backup antes de eliminar em massa as operações de sinalização de missão relacionadas com os dados do jogador.
Este artigo foi preparado especialmente para o PvPServer.