예제 #1
0
    public static async void EnterMap(int fromClient, Packet packet)
    {
        AuthCore core = (AuthCore)Server.the_core;
        int      cid  = packet.ReadInt();
        int      sid  = packet.ReadInt();
        int      pid  = packet.ReadInt();

        if (!Security.Validate(cid, fromClient, sid))
        {
            return;
        }

        bool ownsPlayer = await AuthHelpers.AccountOwnsPlayer(cid, pid);

        if (!ownsPlayer)
        {
            core.Clients[fromClient].tcp.Disconnect();
            return;
        }

        DataTable result = await AuthHelpers.GetPlayerData(pid);

        await AuthHelpers.AssignPidToSession(result, cid);

        AuthHelpers.MakeClientConnectToGameServer(result, cid);
    }