Example #1
0
        public static void DeleteCharacter(Client client, PacketIn packet)
        {
            byte playerId = packet.ReadByte();

            using (ISession session = Server.Factory.OpenSession())
            {
                Player player = (Player)session.Get(typeof(Player), (int)playerId);
                if (player == null)
                {
                    ServerConsole.WriteLine(
                        System.Drawing.Color.Red,
                        "Tried to delete unexisting character with PlayerId ({0)",
                        playerId
                        );
                    return;
                }

                using (ITransaction transaction = session.BeginTransaction())
                {
                    DeletedPlayer dPlayer = new DeletedPlayer();

                    dPlayer.DeletedDate = DateTime.Now;
                    dPlayer.PlayerId    = player.PlayerId;
                    dPlayer.UserId      = player.UserId;

                    session.Save(dPlayer);
                    transaction.Commit();
                }

                using (ITransaction transaction = session.BeginTransaction())
                {
                    player.Status = 0;
                    session.Update(player);
                    transaction.Commit();
                }
            }

            client.SendPlayerList();
        }
Example #2
0
        public static void RestoreCharacter(Client client, PacketIn packet)
        {
            int playerId = (int)packet.ReadUInt32();

            using (ISession session = Server.Factory.OpenSession())
            {
                Player player = (Player)session.Get(typeof(Player), playerId);
                if (player == null)
                {
                    ServerConsole.WriteLine(
                        System.Drawing.Color.Red,
                        "Tried to restore unexisting character with PlayerId ({0)",
                        playerId
                        );
                    return;
                }

                using (ITransaction transaction = session.BeginTransaction())
                {
                    IQuery q = session.CreateQuery("FROM DeletedPlayer WHERE PlayerId = :playerId");
                    q.SetParameter("playerId", playerId);
                    DeletedPlayer dPlayer = q.UniqueResult <DeletedPlayer>();

                    session.Delete(dPlayer);
                    transaction.Commit();
                }

                using (ITransaction transaction = session.BeginTransaction())
                {
                    player.Status = 1;
                    session.Update(player);
                    transaction.Commit();
                }
            }

            client.SendPlayerList();
        }