Ejemplo n.º 1
0
        private IEnumerator ConnectingEventHandler()
        {
            Entity player = null;

            while (true)
            {
                yield return(WaitTill("connecting", new Action <Parameter[]>(param => player = param[0].As <Entity>())));

                PlayerConnecting?.Invoke(player);
            }
        }
Ejemplo n.º 2
0
        private void HandleConnectToServer(ConnectToServer payload, PayloadWriter writer)
        {
            uint serverId = payload.ServerId;

            Server server = Program.Servers.Get(serverId);

            if (server == null)
            {
                StatusMsg resultPayload = Payloads.CreatePayload <StatusMsg>();
                resultPayload.Errorcode = 1;
                resultPayload.Errormsg  = "Unknown server";
                resultPayload.TicketId  = payload.TicketId;
                SendReply(writer, resultPayload);
                return;
            }

            byte[] nonce = Crypto.CreateNonce();

            PlayerConnecting resultPayload2 = Payloads.CreatePayload <PlayerConnecting>();

            resultPayload2.Nonce     = nonce;
            resultPayload2.CharId    = Account.Id;
            resultPayload2.Name      = Account.PlayerName;
            resultPayload2.OwnerId   = Account.Id;
            resultPayload2.OwnerName = Account.UserName;
            resultPayload2.GuildId   = 0;
            resultPayload2.GuildName = null;
            resultPayload2.GuildRole = 0;
            resultPayload2.Data      = _nicknameData;
            SendToLobbyConnection(server.ConnectionId, resultPayload2);

            ConnectToServerReply resultPayload3 = Payloads.CreatePayload <ConnectToServerReply>();

            resultPayload3.PermId    = Account.Id;
            resultPayload3.ServerId  = serverId;
            resultPayload3.Ip        = server.Ip;
            resultPayload3.Port      = server.Port;
            resultPayload3.Nonce     = nonce;
            resultPayload3.Errorcode = 0;
            resultPayload3.Errormsg  = null;
            resultPayload3.TicketId  = payload.TicketId;
            SendReply(writer, resultPayload3);
        }