private IEnumerator ConnectingEventHandler() { Entity player = null; while (true) { yield return(WaitTill("connecting", new Action <Parameter[]>(param => player = param[0].As <Entity>()))); PlayerConnecting?.Invoke(player); } }
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); }