示例#1
0
        public static void GetKeyScopesMap(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> Result = new List <Blaze.Tdf>();
            List <string>    l1     = new List <string>()
            {
                "ldgy"
            };
            List <Blaze.TdfStruct> l2 = new List <Blaze.TdfStruct>();
            List <Blaze.Tdf>       l3 = new List <Blaze.Tdf>();

            l3.Add(Blaze.TdfInteger.Create("AGKY", 0));
            l3.Add(Blaze.TdfInteger.Create("ENAG", 0));
            l3.Add(Blaze.TdfDoubleList.Create("KSVL", 0, 0, new List <long>()
            {
                0
            }, new List <long>()
            {
                15
            }, 1));
            l2.Add(Blaze.TdfStruct.Create("0", l3));
            Result.Add(Blaze.TdfDoubleList.Create("KSIT", 1, 3, l1, l2, 1));
            byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, Result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
示例#2
0
 public static void GetStatsByGroupAsync(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
 {
     byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, new List <Blaze.Tdf>());
     ns.Write(buff, 0, buff.Length);
     ns.Flush();
     GetStatsAsyncNotification(p, pi, ns);
 }
示例#3
0
        public static void LoginPersona(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            uint             t    = Blaze.GetUnixTimeStamp();
            List <Blaze.Tdf> SESS = new List <Blaze.Tdf>();

            SESS.Add(Blaze.TdfInteger.Create("BUID", pi.userId));
            SESS.Add(Blaze.TdfInteger.Create("FRST", 0));
            SESS.Add(Blaze.TdfString.Create("KEY\0", "some_client_key"));
            SESS.Add(Blaze.TdfInteger.Create("LLOG", t));
            SESS.Add(Blaze.TdfString.Create("MAIL", ""));
            List <Blaze.Tdf> PDTL = new List <Blaze.Tdf>();

            PDTL.Add(Blaze.TdfString.Create("DSNM", pi.profile.name));
            PDTL.Add(Blaze.TdfInteger.Create("LAST", t));
            PDTL.Add(Blaze.TdfInteger.Create("PID\0", pi.userId));
            PDTL.Add(Blaze.TdfInteger.Create("STAS", 0));
            PDTL.Add(Blaze.TdfInteger.Create("XREF", 0));
            PDTL.Add(Blaze.TdfInteger.Create("XTYP", 0));
            SESS.Add(Blaze.TdfStruct.Create("PDTL", PDTL));
            SESS.Add(Blaze.TdfInteger.Create("UID\0", pi.userId));
            byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, SESS);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();

            AsyncUserSessions.NotifyUserAdded(pi, p, pi, ns);
            AsyncUserSessions.NotifyUserStatus(pi, p, pi, ns);
        }
示例#4
0
        public static void LookupUserInformation(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> Result = new List <Blaze.Tdf>();
            List <Blaze.Tdf> ADDR   = new List <Blaze.Tdf>();
            List <Blaze.Tdf> EXIP   = new List <Blaze.Tdf>();

            EXIP.Add(Blaze.TdfInteger.Create("IP", 0x7F000001));
            EXIP.Add(Blaze.TdfInteger.Create("PORT", pi.inPort));
            ADDR.Add(Blaze.TdfStruct.Create("EXIP", EXIP));
            List <Blaze.Tdf> INIP = new List <Blaze.Tdf>();

            INIP.Add(Blaze.TdfInteger.Create("IP", pi.inIp));
            INIP.Add(Blaze.TdfInteger.Create("PORT", pi.inPort));
            ADDR.Add(Blaze.TdfStruct.Create("INIP", INIP));
            Result.Add(Blaze.TdfStruct.Create("ADDR", ADDR, true));
            List <Blaze.Tdf> NQOS = new List <Blaze.Tdf>();

            NQOS.Add(Blaze.TdfInteger.Create("DBPS", 0));
            NQOS.Add(Blaze.TdfInteger.Create("NATT", 4));
            NQOS.Add(Blaze.TdfInteger.Create("UBPS", 0));
            Result.Add(Blaze.TdfStruct.Create("NQOS", NQOS));
            byte[] buff = Blaze.CreatePacket(p.Component, 1, 0, 0x2000, 0, Result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
示例#5
0
        public static void Login(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            uint             t      = Blaze.GetUnixTimeStamp();
            List <Blaze.Tdf> Result = new List <Blaze.Tdf>();

            Result.Add(Blaze.TdfString.Create("LDHT", ""));
            Result.Add(Blaze.TdfInteger.Create("NTOS", 0));
            Result.Add(Blaze.TdfString.Create("PCTK", ""));
            List <Blaze.TdfStruct> playerentries = new List <Blaze.TdfStruct>();
            List <Blaze.Tdf>       PlayerEntry   = new List <Blaze.Tdf>();

            PlayerEntry.Add(Blaze.TdfString.Create("DSNM", pi.name));
            PlayerEntry.Add(Blaze.TdfInteger.Create("LAST", t));
            PlayerEntry.Add(Blaze.TdfInteger.Create("PID\0", pi.id));
            PlayerEntry.Add(Blaze.TdfInteger.Create("STAS", 2));
            PlayerEntry.Add(Blaze.TdfInteger.Create("XREF", 0));
            PlayerEntry.Add(Blaze.TdfInteger.Create("XTYP", 0));
            playerentries.Add(Blaze.TdfStruct.Create("0", PlayerEntry));
            Result.Add(Blaze.TdfList.Create("PLST", 3, 1, playerentries));
            Result.Add(Blaze.TdfString.Create("PRIV", ""));
            Result.Add(Blaze.TdfString.Create("SKEY", "some_client_key"));
            Result.Add(Blaze.TdfInteger.Create("SPAM", 1));
            Result.Add(Blaze.TdfString.Create("THST", ""));
            Result.Add(Blaze.TdfString.Create("TSUI", ""));
            Result.Add(Blaze.TdfString.Create("TURI", ""));
            Result.Add(Blaze.TdfInteger.Create("UID\0", pi.userId));
            byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, Result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
        public static void NotifyPlayerJoining(PlayerInfo src, Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            uint             t      = Blaze.GetUnixTimeStamp();
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(Blaze.TdfInteger.Create("GID\0", pi.game.id));
            List <Blaze.Tdf> PDAT = new List <Blaze.Tdf>();

            PDAT.Add(Blaze.TdfInteger.Create("EXID", pi.userId));
            PDAT.Add(Blaze.TdfInteger.Create("GID\0", pi.game.id));
            PDAT.Add(Blaze.TdfInteger.Create("LOC\0", pi.loc));
            PDAT.Add(Blaze.TdfString.Create("NAME", pi.profile.name));
            PDAT.Add(Blaze.TdfInteger.Create("PID\0", pi.userId));
            PDAT.Add(BlazeHelper.CreateNETFieldUnion(pi, "PNET"));
            PDAT.Add(Blaze.TdfInteger.Create("SID\0", pi.slot));
            PDAT.Add(Blaze.TdfInteger.Create("STAT", pi.stat));
            PDAT.Add(Blaze.TdfInteger.Create("TIDX", 0xFFFF));
            PDAT.Add(Blaze.TdfInteger.Create("TIME", t));
            PDAT.Add(Blaze.TdfInteger.Create("UID\0", pi.userId));
            result.Add(Blaze.TdfStruct.Create("PDAT", PDAT));
            byte[] buff = Blaze.CreatePacket(0x4, 0x15, 0, 0x2000, 0, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
            BlazeServer.Log("[CLNT] #" + src.userId + " [0004:0015] NotifyPlayerJoining", System.Drawing.Color.Black);
        }
        public static void HandlePacket(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            switch (p.Command)
            {
            case 2:
                Ping(p, pi, ns);
                break;

            case 7:
                PreAuth(p, pi, ns);
                break;

            case 8:
                PostAuth(p, pi, ns);
                break;

            case 0x16:
                SetClientMetrics(p, pi, ns);
                break;

            case 0xC:
                UserSettingsLoadAll(p, pi, ns);
                break;
            }
        }
        public static void SetGameAttributes(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> input = Blaze.ReadPacketContent(p);

            pi.game.ATTR = (Blaze.TdfDoubleList)input[0];
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();

            foreach (PlayerInfo peer in pi.game.players)
            {
                if (peer != null)
                {
                    try
                    {
                        AsyncGameManager.NotifyGameSettingsChange(peer, p, pi, peer.ns);
                    }
                    catch
                    {
                        pi.game.removePlayer((int)peer.userId);
                        Logger.Error("[CLNT] #" + pi.userId + " : 'SetGameAttributes' peer crashed!");
                    }
                }
            }
        }
        public static void RemovePlayer(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> input = Blaze.ReadPacketContent(p);

            Blaze.TdfInteger CNTX = (Blaze.TdfInteger)input[1];
            Blaze.TdfInteger PID  = (Blaze.TdfInteger)input[3];
            Blaze.TdfInteger REAS = (Blaze.TdfInteger)input[4];
            pi.game.removePlayer((int)PID.Value);
            GC.Collect();
            byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, new List <Blaze.Tdf>());
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
            foreach (PlayerInfo player in BlazeServer.allClients)
            {
                if (player != null && player.userId == PID.Value)
                {
                    player.cntx = CNTX.Value;
                }
            }
            foreach (PlayerInfo player in pi.game.players)
            {
                if (player != null && player.userId != PID.Value)
                {
                    try
                    {
                        AsyncGameManager.NotifyPlayerRemoved(player, p, player, player.ns, PID.Value, CNTX.Value, REAS.Value);
                    }
                    catch
                    {
                        Logger.Error("[CLNT] #" + pi.userId + " : 'RemovePlayer' peer crashed!");
                    }
                }
            }
        }
示例#10
0
        private static void Ping(Blaze.Packet p, NetworkStream ns)
        {
            List <Blaze.Tdf> Result = new List <Blaze.Tdf>();

            Result.Add(Blaze.TdfInteger.Create("STIM", Blaze.GetUnixTimeStamp()));
            byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, Result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
示例#11
0
 public static void HandlePacket(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
 {
     switch (p.Command)
     {
     case 0x14:
         UpdateNetworkInfo(p, pi, ns);
         break;
     }
 }
        public static void DestroyGame(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(Blaze.ReadPacketContent(p)[0]);
            byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
示例#13
0
        public static void NotifyGameStateChange(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(Blaze.TdfInteger.Create("GID\0", pi.game.id));
            result.Add(Blaze.TdfInteger.Create("GSTA", pi.game.GSTA));
            byte[] buff = Blaze.CreatePacket(4, 0x64, 0, 0x2000, 0, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
        public static void NotifyUserAdded(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(BlazeHelper.CreateUserDataStruct(pi));
            result.Add(BlazeHelper.CreateUserStruct(pi));
            byte[] buff = Blaze.CreatePacket(0x7802, 0x2, 0, 0x2000, 0, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
示例#15
0
        public static void PlayerJoinCompletedNotification(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(Blaze.TdfInteger.Create("GID\0", pi.game.id));
            result.Add(Blaze.TdfInteger.Create("PID\0", pi.userId));
            byte[] buff = Blaze.CreatePacket(0x4, 0x1E, 0, 0x2000, 0, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
示例#16
0
        public static void NotifyGameSettingsChange(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(Blaze.TdfInteger.Create("ATTR", pi.game.GSET));
            result.Add(Blaze.TdfInteger.Create("GID", pi.game.id));
            byte[] buff = Blaze.CreatePacket(p.Component, 0x6E, 0, 0x2000, 0, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
        public static void NotifyUserStatus(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(Blaze.TdfInteger.Create("FLGS", 3));
            result.Add(Blaze.TdfInteger.Create("ID\0\0", pi.userId));
            byte[] buff = Blaze.CreatePacket(0x7802, 0x5, 0, 0x2000, 0, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
示例#18
0
        public static void NotifyUserRemoved(PlayerInfo src, Blaze.Packet p, long pid, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(Blaze.TdfInteger.Create("BUID", pid));
            byte[] buff = Blaze.CreatePacket(0x7802, 0x3, 0, 0x2000, 0, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
            BlazeServer.Log("[CLNT] #" + src.userId + " [7802:0001] NotifyUserRemoved");
        }
        public static void UserSessionExtendedDataUpdateNotification(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> Result = new List <Blaze.Tdf>();

            Result.Add(BlazeHelper.CreateUserDataStruct(pi));
            Result.Add(Blaze.TdfInteger.Create("USID", pi.userId));
            byte[] buff = Blaze.CreatePacket(0x7802, 1, 0, 0x2000, 0, Result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
        public static void NotifyUserStatus(PlayerInfo src, Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(Blaze.TdfInteger.Create("FLGS", 3));
            result.Add(Blaze.TdfInteger.Create("ID\0\0", pi.userId));
            byte[] buff = Blaze.CreatePacket(0x7802, 0x5, 0, 0x2000, 0, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
            BlazeServer.Log("[CLNT] #" + src.userId + " [7802:0001] NotifyUserStatus", System.Drawing.Color.Black);
        }
示例#21
0
        public static void NotifyUserAdded(PlayerInfo src, Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(BlazeHelper.CreateUserDataStruct(pi));
            result.Add(BlazeHelper.CreateUserStruct(pi));
            byte[] buff = Blaze.CreatePacket(0x7802, 0x2, 0, 0x2000, 0, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
            BlazeServer.Log("[CLNT] #" + src.userId + " [7802:0001] NotifyUserAdded");
        }
        public static void AdvanceGameState(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> input = Blaze.ReadPacketContent(p);

            pi.game.GSTA = (uint)((Blaze.TdfInteger)input[1]).Value;
            byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, new List <Blaze.Tdf>());
            ns.Write(buff, 0, buff.Length);
            ns.Flush();

            AsyncGameManager.NotifyGameStateChange(p, pi, ns);
        }
        public static void UserSessionExtendedDataUpdateNotification(PlayerInfo src, Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> Result = new List <Blaze.Tdf>();

            Result.Add(BlazeHelper.CreateUserDataStruct(pi));
            Result.Add(Blaze.TdfInteger.Create("USID", pi.userId));
            byte[] buff = Blaze.CreatePacket(0x7802, 1, 0, 0x2000, 0, Result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
            BlazeServer.Log("[CLNT] #" + src.userId + " [7802:0001] UserSessionExtendedDataUpdateNotification", System.Drawing.Color.Black);
        }
示例#24
0
        public static void NotifyGamePlayerStateChange(Blaze.Packet p, PlayerInfo pi, NetworkStream ns, long stat)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(Blaze.TdfInteger.Create("GID\0", pi.game.id));
            result.Add(Blaze.TdfInteger.Create("PID\0", pi.userId));
            result.Add(Blaze.TdfInteger.Create("STAT", stat));
            byte[] buff = Blaze.CreatePacket(0x4, 0x74, 0, 0x2000, 0, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
示例#25
0
        public static void NotifyPlatformHostInitialized(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(Blaze.TdfInteger.Create("GID\0", pi.game.id));
            result.Add(Blaze.TdfInteger.Create("PHID", pi.userId));
            result.Add(Blaze.TdfInteger.Create("PHST", 0));
            byte[] buff = Blaze.CreatePacket(4, 0x47, 0, 0x2000, 0, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
示例#26
0
        public static void LookUpUser(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(BlazeHelper.CreateUserDataStruct(pi, "EDAT"));
            result.Add(Blaze.TdfInteger.Create("FLGS", 3));
            result.Add(BlazeHelper.CreateUserStruct(pi));
            byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
示例#27
0
        private static void PreAuth(Blaze.Packet p, NetworkStream ns)
        {
            List <Blaze.Tdf> Result = new List <Blaze.Tdf>();

            Result.Add(Blaze.TdfInteger.Create("ANON", 0));
            Result.Add(Blaze.TdfString.Create("ASRC", "300294"));
            List <string> t  = Helper.ConvertStringList("{1} {25} {4} {27} {28} {6} {7} {9} {10} {11} {30720} {30721} {30722} {30723} {20} {30725} {30726} {2000}");
            List <long>   t2 = new List <long>();

            foreach (string v in t)
            {
                t2.Add(Convert.ToInt64(v));
            }
            Result.Add(Blaze.TdfList.Create("CIDS", 0, t2.Count, t2));
            t = new List <string>();
            List <string> t3 = new List <string>();

            Helper.ConvertDoubleStringList("{connIdleTimeout ; 90s} {defaultRequestTimeout ; 60s} {pingPeriod ; 20s} {voipHeadsetUpdateRate ; 1000} {xlspConnectionIdleTimeout ; 300}", out t, out t3);
            Blaze.TdfDoubleList conf2 = Blaze.TdfDoubleList.Create("CONF", 1, 1, t, t3, t.Count);
            List <Blaze.Tdf>    t4    = new List <Blaze.Tdf>();

            t4.Add(conf2);
            Result.Add(Blaze.TdfStruct.Create("CONF", t4));
            Result.Add(Blaze.TdfString.Create("INST", "battlefield-assault-pc"));
            Result.Add(Blaze.TdfInteger.Create("MINR", 0));
            Result.Add(Blaze.TdfString.Create("NASP", "cem_ea_id"));
            Result.Add(Blaze.TdfString.Create("PILD", ""));
            Result.Add(Blaze.TdfString.Create("PLAT", "pc"));
            List <Blaze.Tdf> QOSS = new List <Blaze.Tdf>();
            List <Blaze.Tdf> BWPS = new List <Blaze.Tdf>();

            BWPS.Add(Blaze.TdfString.Create("PSA\0", "127.0.0.1"));
            BWPS.Add(Blaze.TdfInteger.Create("PSP\0", 80));
            BWPS.Add(Blaze.TdfString.Create("SNA\0", "wv"));
            QOSS.Add(Blaze.TdfStruct.Create("BWPS", BWPS));
            QOSS.Add(Blaze.TdfInteger.Create("LNP\0", 0xA));
            List <Blaze.Tdf> LTPS1 = new List <Blaze.Tdf>();

            LTPS1.Add(Blaze.TdfString.Create("PSA\0", "127.0.0.1"));
            LTPS1.Add(Blaze.TdfInteger.Create("PSP\0", 80));
            LTPS1.Add(Blaze.TdfString.Create("SNA\0", "wv"));
            List <Blaze.TdfStruct> LTPS = new List <Blaze.TdfStruct>();

            LTPS.Add(Blaze.CreateStructStub(LTPS1));
            t = Helper.ConvertStringList("{ams}");
            QOSS.Add(Blaze.TdfDoubleList.Create("LTPS", 1, 3, t, LTPS, 1));
            QOSS.Add(Blaze.TdfInteger.Create("SVID", 0x45410805));
            Result.Add(Blaze.TdfStruct.Create("QOSS", QOSS));
            Result.Add(Blaze.TdfString.Create("RSRC", "300294"));
            Result.Add(Blaze.TdfString.Create("SVER", "Monolith"));
            byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, Result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
        }
        public static void NotifyPlayerJoinCompleted(PlayerInfo src, Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(Blaze.TdfInteger.Create("GID\0", pi.game.id));
            result.Add(Blaze.TdfInteger.Create("PID\0", pi.userId));
            byte[] buff = Blaze.CreatePacket(0x4, 0x1E, 0, 0x2000, 0, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
            BlazeServer.Log("[CLNT] #" + src.userId + " [0004:001E] NotifyPlayerJoinCompleted", System.Drawing.Color.Black);
        }
        public static void NotifyGameStateChange(PlayerInfo src, Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            result.Add(Blaze.TdfInteger.Create("GID\0", pi.game.id));
            result.Add(Blaze.TdfInteger.Create("GSTA", pi.game.GSTA));
            byte[] buff = Blaze.CreatePacket(4, 0x64, 0, 0x2000, 0, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();
            BlazeServer.Log("[CLNT] #" + src.userId + " [0004:0064] NotifyGameStateChange", System.Drawing.Color.Black);
        }
示例#30
0
        public static void LogoutPersona(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
        {
            List <Blaze.Tdf> result = new List <Blaze.Tdf>();

            byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, result);
            ns.Write(buff, 0, buff.Length);
            ns.Flush();

            AsyncUserSessions.NotifyUserRemoved(pi, p, pi.userId, ns);
            AsyncUserSessions.NotifyUserStatus(pi, p, pi, ns);
        }