Beispiel #1
0
        private static void WriteCharaInfo(SendGPacket pk,Room room,SLOT slot,CupomEffects effects)
        {
            int id  = room.room_type == (byte)7 || room.room_type == (byte)12 ? (room.rodada == 1 && slot._team == 1 || room.rodada == 2 && slot._team == 0 ? (room.rodada == 2 ? slot._equip._red : slot._equip._blue) : (room.TRex != slot._id ? slot._equip._dino : -1)) : (slot._team == 0 ? slot._equip._red : slot._equip._blue);
            int num = 0;

            if (effects.HasFlag((System.Enum)CupomEffects.Ketupat))
            {
                num += 10;
            }
            if (effects.HasFlag((System.Enum)CupomEffects.HP5))
            {
                num += 5;
            }
            if (effects.HasFlag((System.Enum)CupomEffects.HP10))
            {
                num += 10;
            }
            if (id == -1)
            {
                pk.writeC(byte.MaxValue);
                pk.writeH(ushort.MaxValue);
            }
            else
            {
                pk.writeC((byte)ComDiv.getIdStatics(id,2));
                pk.writeH((short)ComDiv.getIdStatics(id,4));
            }
            pk.writeC((byte)num);
            pk.writeC(effects.HasFlag((System.Enum)CupomEffects.C4SpeedKit));
        }
Beispiel #2
0
        private static void WriteCharaInfo(SendGPacket pk,Room room,SLOT slot,CupomEffects effects)
        {
            int charaId = 0;

            if ((RoomType)room.room_type == RoomType.Boss || (RoomType)room.room_type == RoomType.Cross_Counter)
            {
                if (room.rodada == 1 && slot._team == 1 ||
                    room.rodada == 2 && slot._team == 0)
                {
                    charaId = room.rodada == 2 ? slot._equip._red : slot._equip._blue;
                }
                else if (room.TRex == slot._id)
                {
                    charaId = -1;
                }
                else
                {
                    charaId = slot._equip._dino;
                }
            }
            else
            {
                charaId = slot._team == 0 ? slot._equip._red : slot._equip._blue;
            }
            int HPBonus = 0;

            if (effects.HasFlag(CupomEffects.Ketupat))
            {
                HPBonus += 10;
            }
            if (effects.HasFlag(CupomEffects.HP5))
            {
                HPBonus += 5;
            }
            if (effects.HasFlag(CupomEffects.HP10))
            {
                HPBonus += 10;
            }
            if (charaId == -1)
            {
                pk.writeC(255);
                pk.writeH(65535);
            }
            else
            {
                pk.writeC((byte)ComDiv.getIdStatics(charaId,2));
                pk.writeH((short)ComDiv.getIdStatics(charaId,4));
            }
            pk.writeC((byte)HPBonus);
            pk.writeC(effects.HasFlag(CupomEffects.C4SpeedKit));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="player">Conta principal</param>
        /// <param name="friend">Amigo que será adicionado/atualizado..</param>
        /// <param name="type">0=Adicionar|1=Atualizar|2=Deletar</param>
        ///
        // send to Game or sync
        public static void Load(Account player, Friend friend, int type)
        {
            if (player == null)
            {
                return;
            }

            GameServerModel gs = Game_SyncNet.GetServer(player._status);

            if (gs == null)
            {
                return;
            }

            using (SendGPacket pk = new SendGPacket())
            {
                pk.writeH(17);
                pk.writeQ(player.player_id);
                pk.writeC((byte)type);
                pk.writeQ(friend.player_id);

                if (type != 2)
                {
                    pk.writeC((byte)friend.state);
                }
                Game_SyncNet.SendPacket(pk.mstream.ToArray(), gs._syncConn);
            }
        }
Beispiel #4
0
 private static void bb(out byte[] a1)
 {
     a1 = new byte[144];
     using (SendGPacket sendGpacket = new SendGPacket())
     {
         for (int index = 0; index < 16; ++index)
         {
             sendGpacket.writeH(index * 2, (ushort)10);
             sendGpacket.writeH(32 + index * 2, (ushort)20);
             sendGpacket.writeH(64 + index * 2, (ushort)30);
             sendGpacket.writeH(96 + index * 2, (ushort)40);
             sendGpacket.writeC(128 + index, (byte)50);
         }
         sendGpacket.mstream.ToArray();
     }
 }
Beispiel #5
0
        public static void SendLoginKickInfo(Account player)
        {
            int serverId = (int)player._status.serverId;

            switch (serverId)
            {
            case 0:
            case (int)byte.MaxValue:
                player.setOnlineStatus(false);
                break;

            default:
                GameServerModel server = ServersXML.getServer(serverId);
                if (server == null)
                {
                    break;
                }
                using (SendGPacket sendGpacket = new SendGPacket())
                {
                    sendGpacket.writeH((short)10);
                    sendGpacket.writeQ(player.player_id);
                    Auth_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), server.Connection);
                    break;
                }
            }
        }
Beispiel #6
0
        /*
         * public static void Update(Clan clan, int type)
         * {
         *  foreach (GameServerModel gs in ServersXML._servers)
         *  {
         *      if (gs._serverId == 0 || gs._serverId == ConfigGS.serverId)
         *          continue;
         *
         *      using (SendGPacket pk = new SendGPacket())
         *      {
         *          pk.writeH(22);
         *          pk.writeC((byte)type);
         *          if (type == 0)
         *              pk.writeQ(clan.owner_id);
         *          else if (type == 1)
         *          {
         *              pk.writeC((byte)(clan._name.Length + 1));
         *              pk.writeS(clan._name, clan._name.Length + 1);
         *          }
         *          else if (type == 2)
         *              pk.writeC((byte)clan._name_color);
         *          Game_SyncNet.SendPacket(pk.mstream.ToArray(), gs._syncConn);
         *      }
         *  }
         * }
         */
        // send to game
        public static void Load(Clan clan, int type)
        {
            foreach (GameServerModel gs in ServersXML._servers)
            {
                if (gs._serverId == 0 || gs._serverId == ConfigGS.serverId)
                {
                    continue;
                }

                using (SendGPacket pk = new SendGPacket())
                {
                    pk.writeH(21);
                    pk.writeC((byte)type);
                    pk.writeD(clan._id);
                    if (type == 0)
                    {
                        pk.writeQ(clan.owner_id);
                        pk.writeD(clan.creationDate);
                        pk.writeC((byte)(clan._name.Length + 1));
                        pk.writeS(clan._name, clan._name.Length + 1);
                        pk.writeC((byte)(clan._info.Length + 1));
                        pk.writeS(clan._info, clan._info.Length + 1);
                    }
                    Game_SyncNet.SendPacket(pk.mstream.ToArray(), gs._syncConn);
                }
            }
        }
Beispiel #7
0
        public static void LoadItem(Account player, ItemsModel item)
        {
            if (player == null || player._status.serverId == 0)
            {
                return;
            }
            GameServerModel gs = Game_SyncNet.GetServer(player._status);

            if (gs == null)
            {
                return;
            }

            using (SendGPacket pk = new SendGPacket())
            {
                pk.writeH(18);
                pk.writeQ(player.player_id);
                pk.writeQ(item._objId);
                pk.writeD(item._id);
                pk.writeC((byte)item._equip);
                pk.writeC((byte)item._category);
                pk.writeD(item._count);
                Game_SyncNet.SendPacket(pk.mstream.ToArray(), gs._syncConn);
            }
        }
Beispiel #8
0
        public static void Load(Account player, Friend friend, int type)
        {
            if (player == null)
            {
                return;
            }
            GameServerModel server = Game_SyncNet.GetServer(player._status);

            if (server == null)
            {
                return;
            }
            using (SendGPacket sendGpacket = new SendGPacket())
            {
                sendGpacket.writeH((short)17);
                sendGpacket.writeQ(player.player_id);
                sendGpacket.writeC((byte)type);
                sendGpacket.writeQ(friend.player_id);
                if (type != 2)
                {
                    sendGpacket.writeC((byte)friend.state);
                    sendGpacket.writeC(friend.removed);
                }
                Game_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), server.Connection);
            }
        }
Beispiel #9
0
 public static void Load(Clan clan, int type)
 {
     foreach (GameServerModel server in ServersXML._servers)
     {
         if (server._id != 0 && server._id != ConfigGS.serverId)
         {
             using (SendGPacket sendGpacket = new SendGPacket())
             {
                 sendGpacket.writeH((short)21);
                 sendGpacket.writeC((byte)type);
                 sendGpacket.writeD(clan._id);
                 if (type == 0)
                 {
                     sendGpacket.writeQ(clan.owner_id);
                     sendGpacket.writeD(clan.creationDate);
                     sendGpacket.writeC((byte)(clan._name.Length + 1));
                     sendGpacket.writeS(clan._name, clan._name.Length + 1);
                     sendGpacket.writeC((byte)(clan._info.Length + 1));
                     sendGpacket.writeS(clan._info, clan._info.Length + 1);
                 }
                 Game_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), server.Connection);
             }
         }
     }
 }
Beispiel #10
0
        public static void Update(Clan clan, int type)
        {
            foreach (GameServerModel server in ServersXML._servers)
            {
                if (server._id != 0 && server._id != ConfigGS.serverId)
                {
                    using (SendGPacket sendGpacket = new SendGPacket())
                    {
                        sendGpacket.writeH((short)22);
                        sendGpacket.writeC((byte)type);
                        switch (type)
                        {
                        case 0:
                            sendGpacket.writeQ(clan.owner_id);
                            break;

                        case 1:
                            sendGpacket.writeC((byte)(clan._name.Length + 1));
                            sendGpacket.writeS(clan._name, clan._name.Length + 1);
                            break;

                        case 2:
                            sendGpacket.writeC((byte)clan._name_color);
                            break;
                        }
                        Game_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), server.Connection);
                    }
                }
            }
        }
        private void WriteRoomData(Room room, SendGPacket p)
        {
            int num = 0;

            p.writeD(room._roomId);
            p.writeS(room.name, 23);
            p.writeH((short)room.mapId);
            p.writeC(room.stage4v4);
            p.writeC(room.room_type);
            p.writeC((byte)room._state);
            p.writeC((byte)room.getAllPlayers().Count);
            p.writeC((byte)room.getSlotCount());
            p.writeC((byte)room._ping);
            p.writeC(room.weaponsFlag);
            if (room.random_map > (byte)0)
            {
                num += 2;
            }
            if (room.password.Length > 0)
            {
                num += 4;
            }
            if (room.limit > (byte)0 && room._state > RoomState.Ready)
            {
                num += 128;
            }
            p.writeC((byte)num);
            p.writeC(room.special);
        }
Beispiel #12
0
        private void WriteRoomData(Room room, SendGPacket p)
        {
            int restrictions = 0;

            p.writeD(room._roomId);
            p.writeS(room.name, 23);
            p.writeH((short)room.mapId);
            p.writeC(room.stage4v4);
            p.writeC(room.room_type);
            p.writeC((byte)room._state);
            p.writeC((byte)room.getAllPlayers().Count);
            p.writeC((byte)room.getSlotCount());
            p.writeC((byte)room._ping);
            p.writeC(room.weaponsFlag);
            if (room.random_map > 0)
            {
                restrictions += 2;
            }
            if (room.password.Length > 0)
            {
                restrictions += 4;
            }
            if (room.limit > 0 && (int)room._state > 0)
            {
                restrictions += 128;
            }
            p.writeC((byte)restrictions);
            p.writeC(room.special);
        }
Beispiel #13
0
 public static void UpdateGSCount(int serverId)
 {
     try
     {
         if ((DateTime.Now - Auth_SyncNet.LastSyncCount).TotalSeconds < 2.5)
         {
             return;
         }
         Auth_SyncNet.LastSyncCount = DateTime.Now;
         int count = LoginManager._socketList.Count;
         foreach (GameServerModel server in ServersXML._servers)
         {
             if (server._id == serverId)
             {
                 server._LastCount = count;
             }
             else
             {
                 using (SendGPacket sendGpacket = new SendGPacket())
                 {
                     sendGpacket.writeH((short)15);
                     sendGpacket.writeD(serverId);
                     sendGpacket.writeD(count);
                     Auth_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), server.Connection);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Logger.warning(ex.ToString());
     }
 }
Beispiel #14
0
        // Envia pros outros servers sempre que alguem entra ou sai
        // Objetivo é manter atualizada o numero de players online
        public static void UpdateGSCount(short serverId)
        {
            try
            {
                /*
                 * 21/11/2019 Removido pois é inútil e só atrapalha a contagem
                 *
                 * double pingMS = (DateTime.Now - LastSyncCount).TotalSeconds;
                 * if (pingMS < 10)
                 *  return;
                 *
                 * LastSyncCount = DateTime.Now;
                 */

                int players = 0;
                foreach (Channel ch in ChannelsXML._channels)
                {
                    players += ch._players.Count;
                }
                foreach (GameServerModel gs in ServersXML._servers)
                {
                    if (gs._serverId == serverId)
                    {
                        gs._LastCount = (short)players;
                        // Printf.white("Atualizando-se; ServerID: " + serverId + " Online: " + players);
                    }
                    else
                    {
                        //Printf.white("[SendCount] Send to Server: " + gs._serverId + " Addr: " + gs._syncConn + "[Id: " + serverId + " " + gs._LastCount + "/" + gs._maxPlayers + "]");

                        using (SendGPacket pk = new SendGPacket())
                        {
                            pk.writeH(15);
                            pk.writeH(serverId);
                            pk.writeH((short)players);
                            SendPacket(pk.mstream.ToArray(),gs._syncConn);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                SaveLog.fatal(ex.ToString());
                Printf.b_danger("[GameSyncNet.UpdateGSCount] Erro fatal!");
            }
        }
Beispiel #15
0
 // Send To battle
 public static void SendUDPRoundSync(Room room)
 {
     using (SendGPacket pk = new SendGPacket())
     {
         pk.writeH(3);
         pk.writeD(room.UniqueRoomId);
         pk.writeD((room.mapId * 16) + room.room_type);
         pk.writeC((byte)room.rodada);
         SendPacket(pk.mstream.ToArray(),room.UDPServer._battleSyncConn);
     }
 }
Beispiel #16
0
 public static void SendUDPRoundSync(Room room)
 {
     using (SendGPacket sendGpacket = new SendGPacket())
     {
         sendGpacket.writeH((short)3);
         sendGpacket.writeD(room.UniqueRoomId);
         sendGpacket.writeD(room.mapId * 16 + (int)room.room_type);
         sendGpacket.writeC((byte)room.rodada);
         Game_SyncNet.SendPacket(sendGpacket.mstream.ToArray(),room.UDPServer.Connection);
     }
 }
 public static void SendRefreshPacket(int type, long playerId, long memberId, bool isConnect, GameServerModel gs)
 {
     using (SendGPacket pk = new SendGPacket())
     {
         pk.writeH(11);
         pk.writeC((byte)type);
         pk.writeC(isConnect);
         pk.writeQ(playerId);
         pk.writeQ(memberId);
         Auth_SyncNet.SendPacket(pk.mstream.ToArray(), gs._syncConn);
     }
 }
        private void WritePlayerData(Account pl, SendGPacket p)
        {
            Clan clan = ClanManager.getClan(pl.clanId);

            p.writeD(pl.getSessionId());
            p.writeD(clan._logo);
            p.writeS(clan._name, 17);
            p.writeH((short)pl.getRank());
            p.writeS(pl.player_name, 33);
            p.writeC((byte)pl.name_color);
            p.writeC((byte)31);
        }
Beispiel #19
0
 public static void SendRefreshPacket(int type, long playerId, long memberId, bool isConnect, GameServerModel gs)
 {
     using (SendGPacket sendGpacket = new SendGPacket())
     {
         sendGpacket.writeH((short)11);
         sendGpacket.writeC((byte)type);
         sendGpacket.writeC(isConnect);
         sendGpacket.writeQ(playerId);
         sendGpacket.writeQ(memberId);
         Auth_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), gs.Connection);
     }
 }
Beispiel #20
0
        public static void SendCompleteBytes(long playerId,byte[] buffer,int serverId)
        {
            if (buffer.Length == 0)
            {
                return;
            }
            GameServerModel server = Game_SyncNet.GetServer(serverId);

            if (server == null)
            {
                return;
            }
            using (SendGPacket sendGpacket = new SendGPacket())
            {
                sendGpacket.writeH((short)13);
                sendGpacket.writeQ(playerId);
                sendGpacket.writeC((byte)1);
                sendGpacket.writeH((ushort)buffer.Length);
                sendGpacket.writeB(buffer);
                Game_SyncNet.SendPacket(sendGpacket.mstream.ToArray(),server.Connection);
            }
        }
Beispiel #21
0
        public static void UpdateAuthCount(short serverId)
        {
            try
            {
                /*
                 * 21/11/2019 Removido pois é inútil e só atrapalha a contagem
                 * double pingMS = (DateTime.Now - LastSyncCount).TotalSeconds;
                 * if (pingMS < 2.5)
                 *  return;
                 *
                 * LastSyncCount = DateTime.Now;
                 */
                short players = (short)LoginManager._socketList.Count;

                foreach (GameServerModel gs in ServersXML._servers)
                {
                    if (gs._serverId == serverId)
                    {
                        gs._LastCount = players;
                    }
                    else
                    {
                        using (SendGPacket pk = new SendGPacket())
                        {
                            pk.writeH(15);
                            pk.writeH(serverId);
                            pk.writeH(players);
                            SendPacket(pk.mstream.ToArray(), gs._syncConn);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                SaveLog.fatal(ex.ToString());
                Printf.b_danger("[Auth_SyncNet.UpdateAuthCount] Erro fatal!");
            }
        }
Beispiel #22
0
        public static void SendBytes(long playerId,SendPacket sp,int serverId)
        {
            if (sp == null)
            {
                return;
            }
            GameServerModel server = Game_SyncNet.GetServer(serverId);

            if (server == null)
            {
                return;
            }
            byte[] bytes = sp.GetBytes("Game_SyncNet.SendBytes");
            using (SendGPacket sendGpacket = new SendGPacket())
            {
                sendGpacket.writeH((short)13);
                sendGpacket.writeQ(playerId);
                sendGpacket.writeC((byte)0);
                sendGpacket.writeH((ushort)bytes.Length);
                sendGpacket.writeB(bytes);
                Game_SyncNet.SendPacket(sendGpacket.mstream.ToArray(),server.Connection);
            }
        }
Beispiel #23
0
        public static void SendCompleteBytes(long playerId,byte[] buffer,short serverId)
        {
            if (buffer.Length == 0)
            {
                return;
            }
            GameServerModel gs = GetServer(serverId);

            if (gs == null)
            {
                return;
            }

            using (SendGPacket pk = new SendGPacket())
            {
                pk.writeH(13);
                pk.writeQ(playerId);
                pk.writeC(1);
                pk.writeH((ushort)buffer.Length);
                pk.writeB(buffer);
                SendPacket(pk.mstream.ToArray(),gs._syncConn);
            }
        }
Beispiel #24
0
        // Send to GameSync
        public static void SendBytes(long playerId,SendPacket sp,short serverId)
        {
            if (sp == null)
            {
                return;
            }
            GameServerModel gs = GetServer(serverId);

            if (gs == null)
            {
                return;
            }

            byte[] data = sp.GetBytes();
            using (SendGPacket pk = new SendGPacket())
            {
                pk.writeH(13);
                pk.writeQ(playerId);
                pk.writeC(0);
                pk.writeH((ushort)data.Length);
                pk.writeB(data);
                SendPacket(pk.mstream.ToArray(),gs._syncConn);
            }
        }
Beispiel #25
0
        public static void SendUDPPlayerLeave(Room room, int slotId)
        {
            if (room == null)
            {
                return;
            }
            int playingPlayers = room.getPlayingPlayers(2, SLOT_STATE.BATTLE, 0, slotId);

            using (SendGPacket sendGpacket = new SendGPacket())
            {
                sendGpacket.writeH((short)2);
                sendGpacket.writeD(room.UniqueRoomId);
                sendGpacket.writeD(room.mapId * 16 + (int)room.room_type);
                sendGpacket.writeC((byte)slotId);
                sendGpacket.writeC((byte)playingPlayers);
                Game_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), room.UDPServer.Connection);
            }
        }
Beispiel #26
0
        public static void SendUDPPlayerLeave(Room room, int slotId)
        {
            if (room == null)
            {
                return;
            }
            int count = room.getPlayingPlayers(2, SLOT_STATE.BATTLE, 0, slotId);

            using (SendGPacket pk = new SendGPacket())
            {
                pk.writeH(2);
                pk.writeD(room.UniqueRoomId);
                pk.writeD((room.mapId * 16) + room.room_type);
                pk.writeC((byte)slotId);
                pk.writeC((byte)count);
                Game_SyncNet.SendPacket(pk.mstream.ToArray(), room.UDPServer._battleSyncConn);
            }
        }
Beispiel #27
0
 public static void SendUDPPlayerSync(Room room, SLOT slot,CupomEffects effects,int type)
 {
     using (SendGPacket pk = new SendGPacket())
     {
         pk.writeH((short)1);
         pk.writeD(room.UniqueRoomId);
         pk.writeD(room.mapId * 16 + (int)room.room_type);
         pk.writeQ(room.StartTick);
         pk.writeC((byte)type);
         pk.writeC((byte)room.rodada);
         pk.writeC((byte)slot._id);
         pk.writeC((byte)slot.spawnsCount);
         pk.writeC(BitConverter.GetBytes(slot._playerId)[0]);
         if (type == 0 || type == 2)
         {
             Game_SyncNet.WriteCharaInfo(pk,room,slot,effects);
         }
         Game_SyncNet.SendPacket(pk.mstream.ToArray(),room.UDPServer.Connection);
     }
 }
Beispiel #28
0
        public static void Load(Account pl, Account member, int type)
        {
            if (pl == null)
            {
                return;
            }
            GameServerModel server = Game_SyncNet.GetServer(pl._status);

            if (server == null)
            {
                return;
            }
            using (SendGPacket sendGpacket = new SendGPacket())
            {
                sendGpacket.writeH((short)16);
                sendGpacket.writeQ(pl.player_id);
                sendGpacket.writeC((byte)type);
                switch (type)
                {
                case 1:
                    sendGpacket.writeQ(member.player_id);
                    sendGpacket.writeC((byte)(member.player_name.Length + 1));
                    sendGpacket.writeS(member.player_name, member.player_name.Length + 1);
                    sendGpacket.writeB(member._status.buffer);
                    sendGpacket.writeC((byte)member._rank);
                    break;

                case 2:
                    sendGpacket.writeQ(member.player_id);
                    break;

                case 3:
                    sendGpacket.writeD(pl.clanId);
                    sendGpacket.writeC((byte)pl.clanAccess);
                    break;
                }
                Game_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), server.Connection);
            }
        }
Beispiel #29
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pl">Conta principal</param>
        /// <param name="member"></param>
        /// <param name="type">0=Zerar players e clanId|1=Adicionar|2=Remover|3=att clanid e aux</param>
        public static void Load(Account pl, Account member, int type)
        {
            if (pl == null)
            {
                return;
            }
            GameServerModel gs = Game_SyncNet.GetServer(pl._status);

            if (gs == null)
            {
                return;
            }

            using (SendGPacket pk = new SendGPacket())
            {
                pk.writeH(16);
                pk.writeQ(pl.player_id);
                pk.writeC((byte)type);
                if (type == 1) //adicionar
                {
                    pk.writeQ(member.player_id);
                    pk.writeC((byte)(member.player_name.Length + 1));
                    pk.writeS(member.player_name, member.player_name.Length + 1);
                    pk.writeB(member._status.buffer);
                    pk.writeC((byte)member._rank);
                }
                else if (type == 2) //remover
                {
                    pk.writeQ(member.player_id);
                }
                else if (type == 3) //atualizar id do clã e aux
                {
                    pk.writeD(pl.clanId);
                    pk.writeC((byte)pl.clanAccess);
                }
                Game_SyncNet.SendPacket(pk.mstream.ToArray(), gs._syncConn);
            }
        }
Beispiel #30
0
        public static void LoadGoldCash(Account player)
        {
            if (player == null)
            {
                return;
            }
            GameServerModel server = Game_SyncNet.GetServer(player._status);

            if (server == null)
            {
                return;
            }
            using (SendGPacket sendGpacket = new SendGPacket())
            {
                sendGpacket.writeH((short)19);
                sendGpacket.writeQ(player.player_id);
                sendGpacket.writeC((byte)0);
                sendGpacket.writeC((byte)player._rank);
                sendGpacket.writeD(player._gp);
                sendGpacket.writeD(player._money);
                Game_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), server.Connection);
            }
        }