Esempio n. 1
0
        public byte[] GetPlayerGuild(uint characterID)
        {
            lock (this)
            {
                CharacterRepositoryModel characterRepositoryModel = DBAccess.getInstance().GetCharacterInfo(characterID);

                MemoryStream m = new MemoryStream();

                if (characterRepositoryModel.GuildMaster == 1) // the player is guild master
                {
                    m.Write(new byte[] { 0x01 });
                    m.Write(BitConverter.GetBytes(((ushort)characterRepositoryModel.GuildID).Swap()));
                }
                else if (characterRepositoryModel.GuildMaster == 2) // the player is a normal member
                {
                    m.Write(new byte[] { 0x02 });
                    m.Write(BitConverter.GetBytes(((ushort)characterRepositoryModel.GuildID).Swap()));
                }
                else
                {
                    m.Write(new byte[] { 0x00, 0x00, 0x00 });
                }


                return(m.ToArray());
            }
        }
Esempio n. 2
0
        public byte[] LeaveGuildAndAssignMaster(ushort guildID, uint playerToAssign)
        {
            CharacterRepositoryModel characterRepositoryModel = DBAcess.getInstance().GetCharacterInfo(playerToAssign);

            characterRepositoryModel.GuildMaster = 1;
            DBAcess.getInstance().updatePlayerInfo(characterRepositoryModel);
            return(new byte[] { 0x00, 0x00 });
        }
Esempio n. 3
0
        public byte[] LeaveGuild(ushort guildID, uint characterID)
        {
            CharacterRepositoryModel characterRepositoryModel = DBAcess.getInstance().GetCharacterInfo(characterID);

            characterRepositoryModel.GuildID     = 0;
            characterRepositoryModel.GuildMaster = 0;
            DBAcess.getInstance().updatePlayerInfo(characterRepositoryModel);
            return(new byte[] { 0x00, 0x00 });
        }
Esempio n. 4
0
        public void updatePlayerInfo(CharacterRepositoryModel characterRepositoryModel)
        {
            using ISession session = _sessionFactory.OpenSession();

            using ITransaction transaction = session.BeginTransaction();

            session.SaveOrUpdate(characterRepositoryModel);
            transaction.Commit();
            session.Close();
        }
Esempio n. 5
0
        public byte[] KickPlayerFromGuild(ushort guildID, uint playerToKick)
        {
            lock (this)
            {
                CharacterRepositoryModel characterRepositoryModel = DBAccess.getInstance().GetCharacterInfo(playerToKick);
                characterRepositoryModel.GuildID     = 0;
                characterRepositoryModel.GuildMaster = 0;
                DBAccess.getInstance().updatePlayerInfo(characterRepositoryModel);

                return(new byte[] { 0x00, 0x00 });
            }
        }
Esempio n. 6
0
 public byte[] LeaveGuildAndAssignMaster(ushort guildId, uint playerToAssign)
 {
     lock (this)
     {
         CharacterRepositoryModel characterRepositoryModel = DBAccess.getInstance().GetCharacterInfo(playerToAssign);
         characterRepositoryModel.GuildMaster = 1;
         DBAccess.getInstance().updatePlayerInfo(characterRepositoryModel);
         GuildRepositoryModel guildInfo = DBAccess.getInstance().GetGuildInfo(guildId);
         guildInfo.MasterPlayerID = (int)playerToAssign;
         DBAccess.getInstance().UpdateGuildInfo(guildInfo);
         return(new byte[] { 0x00, 0x00 });
     }
 }
Esempio n. 7
0
        public CharacterRepositoryModel GetCharacterRepositoryModel(uint playerID)
        {
            using ISession session = _sessionFactory.OpenSession();

            using ITransaction transaction = session.BeginTransaction();

            CharacterRepositoryModel characterRepositoryModel = session.Query <CharacterRepositoryModel>().SingleOrDefault(
                x => x.PlayerID == playerID);


            transaction.Commit();
            session.Close();

            return(characterRepositoryModel);
        }
Esempio n. 8
0
        public void setPlayerAsOffline(uint playerID)
        {
            using ISession session = _sessionFactory.OpenSession();

            using ITransaction transaction = session.BeginTransaction();

            CharacterRepositoryModel characterRepositoryModel = session.Query <CharacterRepositoryModel>().SingleOrDefault(
                x => x.PlayerID == playerID);

            characterRepositoryModel.OnlineStatus = false;

            session.SaveOrUpdate(characterRepositoryModel);
            transaction.Commit();
            session.Close();
        }
Esempio n. 9
0
        public void EnrollPlayerInGuild(ushort guildID, uint playerID, bool isMaster)
        {
            using ISession session = _sessionFactory.OpenSession();

            using ITransaction transaction = session.BeginTransaction();

            CharacterRepositoryModel characterRepositoryModel = session.Query <CharacterRepositoryModel>().SingleOrDefault(
                x => x.PlayerID == playerID);

            characterRepositoryModel.GuildID = guildID;
            if (isMaster)
            {
                characterRepositoryModel.GuildMaster = 1;
            }
            else
            {
                characterRepositoryModel.GuildMaster = 2;
            }

            session.SaveOrUpdate(characterRepositoryModel);

            transaction.Commit();
            session.Close();
        }
Esempio n. 10
0
        public uint PlayerLogin(GameClientAsync client)
        {
            ///////////////Player Logging ///////////////////////////////////////////////////////////////////////////////
            RankingDataModel model = new RankingDataModel();


            DateTime dateTime = DateTime.UtcNow;

            model.antiCheatEngineResult = "LEGIT";
            model.loginTime             = dateTime.ToString("ddd MMM dd hh:mm:ss yyyy");
            model.diskID          = "DUMMY DISK ID VALUE !";
            model.saveID          = _encoding.GetString(client.save_id, 0, client.save_id.Length - 1);
            model.characterSaveID = _encoding.GetString(client.char_id, 0, client.char_id.Length - 1);
            model.characterName   = _encoding.GetString(client.char_name, 0, client.char_name.Length - 1);
            //Buffer.BlockCopy(client.char_name,0,model.characterName,0,client.char_name.Length-1);

            PlayerClass playerClass = (PlayerClass)client.char_class;

            model.characterClassName = playerClass.ToString();
            model.characterLevel     = client.char_level;

            model.characterHP            = client.char_HP;
            model.characterSP            = client.char_SP;
            model.characterGP            = (int)client.char_GP;
            model.godStatusCounterOnline = client.online_god_counter;
            model.averageFieldLevel      = client.offline_godcounter;
            model.accountID = client.AccountId;
            ///////////////Player Logging ///////////////////////////////////////////////////////////////////////////////

            using ISession session = _sessionFactory.OpenSession();

            using ITransaction transaction = session.BeginTransaction();

            CharacterRepositoryModel characterRepositoryModel;

            characterRepositoryModel = session.Query <CharacterRepositoryModel>().SingleOrDefault(
                x => x.accountID == client.AccountId && x.charachterSaveID.Equals(model.characterSaveID));
            if (characterRepositoryModel == null || characterRepositoryModel.PlayerID == -1 ||
                characterRepositoryModel.PlayerID == 0)
            {
                characterRepositoryModel = new CharacterRepositoryModel();

                characterRepositoryModel.GuildID     = 0;
                characterRepositoryModel.GuildMaster = 0;

                characterRepositoryModel.accountID        = client.AccountId;
                characterRepositoryModel.charachterSaveID = model.characterSaveID;
            }
            characterRepositoryModel.CharachterName  = client.char_name;
            characterRepositoryModel.Greeting        = client.greeting;
            characterRepositoryModel.ClassID         = client.char_class;
            characterRepositoryModel.CharachterLevel = client.char_level;
            characterRepositoryModel.OnlineStatus    = true;
            characterRepositoryModel.ModelNumber     = (int)client.char_model;
            characterRepositoryModel.charHP          = client.char_HP;
            characterRepositoryModel.charSP          = client.char_SP;
            characterRepositoryModel.charGP          = (int)client.char_GP;
            characterRepositoryModel.charOnlineGoat  = client.online_god_counter;
            characterRepositoryModel.charOfflineGoat = client.offline_godcounter;
            characterRepositoryModel.charGoldCoin    = client.goldCoinCount;
            characterRepositoryModel.charSilverCoin  = client.silverCoinCount;
            characterRepositoryModel.charBronzeCoin  = client.bronzeCoinCount;


            session.Save(model);
            session.SaveOrUpdate(characterRepositoryModel);
            transaction.Commit();

            session.Close();

            return((uint)characterRepositoryModel.PlayerID);
        }
Esempio n. 11
0
        public byte[] GetGuildInfo(ushort guildID)
        {
            lock (this)
            {
                GuildRepositoryModel     guildRepositoryModel = DBAccess.getInstance().GetGuildInfo(guildID);
                CharacterRepositoryModel guildMaster          =
                    DBAccess.getInstance().GetCharacterInfo((uint)guildRepositoryModel.MasterPlayerID);
                List <CharacterRepositoryModel> listOfmembers = DBAccess.getInstance().GetAllGuildMembers(guildID);


                MemoryStream m = new MemoryStream();

                m.Write(guildRepositoryModel.GuildName);
                m.Write(_encoding.GetBytes(guildRepositoryModel.EstablishmentDate)); //date
                m.Write(new byte[] { 0x00 });
                m.Write(guildMaster.CharacterName);


                int memTotal    = listOfmembers.Count;
                int twinBlade   = 0;
                int bladeMaster = 0;
                int heavyBlade  = 0;
                int heaveyAxes  = 0;
                int longArm     = 0;
                int waveMaster  = 0;
                int totalLevel  = 0;


                foreach (var member in listOfmembers)
                {
                    if (member.ClassID == 0)
                    {
                        twinBlade++;
                    }
                    if (member.ClassID == 1)
                    {
                        bladeMaster++;
                    }
                    if (member.ClassID == 2)
                    {
                        heavyBlade++;
                    }
                    if (member.ClassID == 3)
                    {
                        heaveyAxes++;
                    }
                    if (member.ClassID == 4)
                    {
                        longArm++;
                    }

                    if (member.ClassID == 5)
                    {
                        waveMaster++;
                    }

                    totalLevel += member.CharacterLevel;
                }

                int avgLevel = 0;

                if (memTotal != 0)
                {
                    avgLevel = totalLevel / memTotal;
                }


                m.Write(BitConverter.GetBytes(swap16((ushort)memTotal)), 0, 2);
                m.Write(BitConverter.GetBytes(swap16((ushort)twinBlade)), 0, 2);
                m.Write(BitConverter.GetBytes(swap16((ushort)bladeMaster)), 0, 2);
                m.Write(BitConverter.GetBytes(swap16((ushort)heavyBlade)), 0, 2);
                m.Write(BitConverter.GetBytes(swap16((ushort)heaveyAxes)), 0, 2);
                m.Write(BitConverter.GetBytes(swap16((ushort)longArm)), 0, 2);
                m.Write(BitConverter.GetBytes(swap16((ushort)waveMaster)), 0, 2);
                m.Write(BitConverter.GetBytes(swap16((ushort)avgLevel)), 0, 2);


                m.Write(BitConverter.GetBytes(swap32((uint)guildRepositoryModel.GoldCoin)), 0, 4);
                m.Write(BitConverter.GetBytes(swap32((uint)guildRepositoryModel.SilverCoin)), 0, 4);
                m.Write(BitConverter.GetBytes(swap32((uint)guildRepositoryModel.BronzeCoin)), 0, 4);

                m.Write(BitConverter.GetBytes(swap32((uint)guildRepositoryModel.Gp)), 0, 4);

                m.Write(guildRepositoryModel.GuildComment);

                m.Write(guildRepositoryModel.GuildEmblem);
                m.Write(new byte[] { 0x00 });

                return(m.ToArray());
            }
        }
Esempio n. 12
0
        public byte[] getRankingPlayerInfo(uint playerID)
        {
            CharacterRepositoryModel characterRepositoryModel = DBAcess.getInstance().GetCharacterInfo(playerID);
            GuildRepositoryModel     guildRepositoryModel     = null;
            bool inGuild = false;

            if (characterRepositoryModel.GuildID != 0)
            {
                guildRepositoryModel = DBAcess.getInstance().GetGuildInfo((ushort)characterRepositoryModel.GuildID);
                inGuild = true;
            }

            MemoryStream m = new MemoryStream();

            m.Write(characterRepositoryModel.CharachterName);

            if (characterRepositoryModel.ClassID == 0)
            {
                m.Write(new byte[] { 0x00 });
            }
            if (characterRepositoryModel.ClassID == 1)
            {
                m.Write(new byte[] { 0x01 });
            }
            if (characterRepositoryModel.ClassID == 2)
            {
                m.Write(new byte[] { 0x02 });
            }
            if (characterRepositoryModel.ClassID == 3)
            {
                m.Write(new byte[] { 0x03 });
            }
            if (characterRepositoryModel.ClassID == 4)
            {
                m.Write(new byte[] { 0x04 });
            }
            if (characterRepositoryModel.ClassID == 5)
            {
                m.Write(new byte[] { 0x05 });
            }

            m.Write(BitConverter.GetBytes(swap16((ushort)characterRepositoryModel.CharachterLevel)));
            m.Write(characterRepositoryModel.Greeting);

            if (inGuild && guildRepositoryModel != null)
            {
                m.Write(guildRepositoryModel.GuildName);
            }
            else
            {
                m.Write(new byte[] { 0x00 });
            }

            m.Write(BitConverter.GetBytes(swap32((uint)characterRepositoryModel.ModelNumber)));

            if (characterRepositoryModel.OnlineStatus)
            {
                m.Write(new byte[] { 0x01 });
            }
            else
            {
                m.Write(new byte[] { 0x00 });
            }

            if (characterRepositoryModel.GuildMaster == 1)
            {
                m.Write(new byte[] { 0x01 });
            }
            else if (characterRepositoryModel.GuildMaster == 2)
            {
                m.Write(new byte[] { 0x02 });
            }
            else
            {
                m.Write(new byte[] { 0x03 });
            }

            return(m.ToArray());
        }