Essa etapa deve ser realizada simultaneamente as Conexões locais.
Ao sair do servidor (IS_CNL)
O pacote IS_CNL é referente à uma desconexão ao servidor, ou seja, sempre que um jogador sair do servidor, a função responsável por lidar com esse pacote será ativada.
Esse pacote é do tipo receptor, ele não pode enviar dados, apenas receber.
Antes de iniciar
Dentro do Visual Studio crie uma pasta chamada "packets", e dentro dela crie um arquivo de classe chamado "IS_CNL".
Criando o manipulador
No arquivo criado previamente, vamos criar uma função chamada "Hook" para injetarmos todo o código de recepção dentro dela.
public static void Hook(InSim insim, IS_CNL cnl)
{
Console.WriteLine($"Desconexão: {cnl.UName}");
}
O arquivo inteiro irá se assemelhar à esse:
using InSimDotNet;
using InSimDotNet.Packets;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace insim
{
public class IS_CNL
{
public static void Hook(InSim insim, IS_CNL cnl)
{
Console.WriteLine($"Desconexão: {cnl.UName}");
}
}
}
Injete o pacote dentro do InSim, seguindo o mesmo processo de Ao entrar no servidor.
A etapa abaixo é obrigatória para o funcionamento das Conexões locais.
Aplicando as conexões locais
Insira dentro do void Hook o seguinte método:
Connections._connections.Remove(cnl.UCID);
Qualquer tipo de código que você quiser utilizar no pacote CNL deverá ser colocado antes do método acima, ou caso contrário não irá funcionar corretamente.
Referências da API
Lista de propriedades retornadas pelo pacote.
UCID
Tipo: byte | número
Descrição: ID da conexão
Reason
Tipo: Motivo de saída
Descrição: Motivo da saída do jogador do servidor
Total
Tipo: byte | número
Descrição: Total de jogadores dentro do servidor