public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            GSPacketIn gSPacketIn = new GSPacketIn(69, client.Player.PlayerCharacter.ID);
            byte       b          = packet.ReadByte();
            byte       b2         = packet.ReadByte();

            GamePlayer[] allPlayersNoGame = WorldMgr.GetAllPlayersNoGame();
            int          num = allPlayersNoGame.Length;
            byte         b3  = (num > (int)b2) ? b2 : ((byte)num);

            gSPacketIn.WriteByte(b3);
            for (int i = (int)(b * b2); i < (int)(b * b2 + b3); i++)
            {
                PlayerInfo playerCharacter = allPlayersNoGame[i % num].PlayerCharacter;
                gSPacketIn.WriteInt(playerCharacter.ID);
                gSPacketIn.WriteString(playerCharacter.NickName);
                gSPacketIn.WriteByte(playerCharacter.typeVIP);
                gSPacketIn.WriteInt(playerCharacter.VIPLevel);
                gSPacketIn.WriteBoolean(playerCharacter.Sex);
                gSPacketIn.WriteInt(playerCharacter.Grade);
                gSPacketIn.WriteInt(playerCharacter.ConsortiaID);
                gSPacketIn.WriteString(playerCharacter.ConsortiaName);
                gSPacketIn.WriteInt(playerCharacter.Offer);
                gSPacketIn.WriteInt(playerCharacter.Win);
                gSPacketIn.WriteInt(playerCharacter.Total);
                gSPacketIn.WriteInt(playerCharacter.Escape);
                gSPacketIn.WriteInt(playerCharacter.Repute);
                gSPacketIn.WriteInt(playerCharacter.FightPower);
                gSPacketIn.WriteBoolean(playerCharacter.IsOldPlayer);
            }
            client.Out.SendTCP(gSPacketIn);
            return(0);
        }
예제 #2
0
        public override int HandlePacket(GamePlayer player, GSPacketIn packet)
        {
            GSPacketIn pkg = packet.Clone();

            pkg.ClearContext();
            byte page  = packet.ReadByte();
            byte count = packet.ReadByte();

            GamePlayer[] players = WorldMgr.GetAllPlayersNoGame();
            int          total   = players.Length;
            byte         length  = (total > (int)count) ? count : ((byte)total);

            pkg.WriteByte(length);
            for (int i = (int)(page * count); i < (int)(page * count + length); i++)
            {
                PlayerInfo info = players[i % total].PlayerCharacter;
                pkg.WriteInt(info.ID);
                pkg.WriteString((info.NickName == null) ? "" : info.NickName);
                pkg.WriteBoolean(info.Sex);
                pkg.WriteInt(info.Grade);
                pkg.WriteInt(info.ConsortiaID);
                pkg.WriteString((info.ConsortiaName == null) ? "" : info.ConsortiaName);
                pkg.WriteInt(info.Offer);
                pkg.WriteInt(info.Win);
                pkg.WriteInt(info.Total);
                pkg.WriteInt(info.Escape);
                pkg.WriteInt(info.Repute);
                pkg.WriteInt(info.FightPower);
            }
            player.Out.SendTCP(pkg);
            return(0);
        }