Exemple #1
0
        public virtual bool AddAdoptPetTo(UsersPetinfo pet, int place)
        {
            if (pet == null || place >= this.m_aCapalility || place < 0)
            {
                return(false);
            }
            object @lock;

            Monitor.Enter(@lock = this.m_lock);
            try
            {
                if (this.m_adoptPets[place] != null)
                {
                    place = -1;
                }
                else
                {
                    this.m_adoptPets[place] = pet;
                    pet.Place = place;
                }
            }
            finally
            {
                Monitor.Exit(@lock);
            }
            return(place != -1);
        }
Exemple #2
0
        public static void PlusPetProp(UsersPetinfo pet, int min, int max, ref int blood, ref int attack, ref int defence, ref int agility, ref int lucky)
        {
            double num   = (double)(pet.BloodGrow / 10) * 0.1;
            double num2  = (double)(pet.AttackGrow / 10) * 0.1;
            double num3  = (double)(pet.DefenceGrow / 10) * 0.1;
            double num4  = (double)(pet.AgilityGrow / 10) * 0.1;
            double num5  = (double)(pet.LuckGrow / 10) * 0.1;
            double num6  = 0.0;
            double num7  = (double)pet.Blood;
            double num8  = (double)pet.Attack;
            double num9  = (double)pet.Defence;
            double num10 = (double)pet.Agility;
            double num11 = (double)pet.Luck;

            for (int i = min + 1; i <= max; i++)
            {
                num6 += (double)(min / 100);
                double x = 0.5;
                num7  += num + Math.Pow(x, (double)i);
                num8  += num2 + Math.Pow(x, (double)i);
                num9  += num3 + Math.Pow(x, (double)i);
                num10 += num4 + Math.Pow(x, (double)i);
                num11 += num5 + Math.Pow(x, (double)i);
            }
            blood   = (int)(num * (num7 / (num + num6)));
            attack  = (int)(num2 * (num8 / (num2 + num6)));
            defence = (int)(num3 * (num9 / (num3 + num6)));
            agility = (int)(num4 * (num10 / (num4 + num6)));
            lucky   = (int)(num5 * (num11 / (num5 + num6)));
        }
Exemple #3
0
        public virtual bool RemovePet(UsersPetinfo pet)
        {
            if (pet == null)
            {
                return(false);
            }
            int    num = -1;
            object @lock;

            Monitor.Enter(@lock = this.m_lock);
            try
            {
                for (int i = 0; i < this.m_capalility; i++)
                {
                    if (this.m_pets[i] == pet)
                    {
                        num            = i;
                        this.m_pets[i] = null;
                        break;
                    }
                }
            }
            finally
            {
                Monitor.Exit(@lock);
            }
            if (num != -1)
            {
                this.OnPlaceChanged(num);
                pet.Place = -1;
            }
            return(num != -1);
        }
Exemple #4
0
        public virtual bool EquipSkillPet(int place, int killId, int killindex)
        {
            string       skill = killId + "," + killindex;
            UsersPetinfo pet   = this.m_pets[place];
            object       @lock;

            Monitor.Enter(@lock = this.m_lock);
            try
            {
                if (killId == 0)
                {
                    this.m_pets[place].SkillEquip = this.SetSkillEquip(pet, killindex, skill);
                    bool result = true;
                    return(result);
                }
                if (this.IsEquipSkill(place, killId.ToString()))
                {
                    this.m_pets[place].SkillEquip = this.SetSkillEquip(pet, killindex, skill);
                    bool result = true;
                    return(result);
                }
            }
            finally
            {
                Monitor.Exit(@lock);
            }
            return(false);
        }
Exemple #5
0
        public static List <UsersPetinfo> CreateFirstAdoptList(int userID)
        {
            List <int> list = new List <int>
            {
                100601,
                110601,
                120601,
                130601
            };
            List <UsersPetinfo> list2 = new List <UsersPetinfo>();

            using (PlayerBussiness playerBussiness = new PlayerBussiness())
            {
                playerBussiness.RemoveUserAdoptPet(userID);
                for (int i = 0; i < list.Count; i++)
                {
                    PetTemplateInfo info         = PetMgr.FindPetTemplate(list[i]);
                    UsersPetinfo    usersPetinfo = PetMgr.CreatePet(info, userID, i);
                    usersPetinfo.IsExit = true;
                    playerBussiness.AddUserAdoptPet(usersPetinfo, false);
                    list2.Add(usersPetinfo);
                }
            }
            return(list2);
        }
 public virtual void LoadFromDatabase()
 {
     if (this.m_saveToDb)
     {
         using (PlayerBussiness playerBussiness = new PlayerBussiness())
         {
             UsersPetinfo[] userPetSingles      = playerBussiness.GetUserPetSingles(this.m_player.PlayerCharacter.ID);
             UsersPetinfo[] userAdoptPetSingles = playerBussiness.GetUserAdoptPetSingles(this.m_player.PlayerCharacter.ID);
             base.BeginChanges();
             try
             {
                 UsersPetinfo[] array = userPetSingles;
                 for (int i = 0; i < array.Length; i++)
                 {
                     UsersPetinfo usersPetinfo = array[i];
                     this.AddPetTo(usersPetinfo, usersPetinfo.Place);
                 }
                 UsersPetinfo[] array2 = userAdoptPetSingles;
                 for (int j = 0; j < array2.Length; j++)
                 {
                     UsersPetinfo usersPetinfo2 = array2[j];
                     this.AddAdoptPetTo(usersPetinfo2, usersPetinfo2.Place);
                 }
             }
             finally
             {
                 base.CommitChanges();
             }
         }
     }
 }
Exemple #7
0
        public virtual bool RemoveAdoptPet(UsersPetinfo pet)
        {
            if (pet == null)
            {
                return(false);
            }
            int    num = -1;
            object @lock;

            Monitor.Enter(@lock = this.m_lock);
            try
            {
                for (int i = 0; i < this.m_aCapalility; i++)
                {
                    if (this.m_adoptPets[i] == pet)
                    {
                        num = i;
                        this.m_adoptPets[i] = null;
                        break;
                    }
                }
            }
            finally
            {
                Monitor.Exit(@lock);
            }
            return(num != -1);
        }
Exemple #8
0
        public bool AddPet(UsersPetinfo pet, int minSlot)
        {
            if (pet == null)
            {
                return(false);
            }
            int place = this.FindFirstEmptySlot(minSlot);

            return(this.AddPetTo(pet, place));
        }
 public override bool AddAdoptPetTo(UsersPetinfo pet, int place)
 {
     if (base.AddAdoptPetTo(pet, place))
     {
         pet.UserID = this.m_player.PlayerCharacter.ID;
         pet.IsExit = true;
         return(true);
     }
     return(false);
 }
 public virtual void SaveToDatabase()
 {
     if (this.m_saveToDb)
     {
         using (PlayerBussiness playerBussiness = new PlayerBussiness())
         {
             object @lock;
             Monitor.Enter(@lock = this.m_lock);
             try
             {
                 for (int i = 0; i < this.m_pets.Length; i++)
                 {
                     UsersPetinfo usersPetinfo = this.m_pets[i];
                     if (usersPetinfo != null && usersPetinfo.IsDirty)
                     {
                         playerBussiness.SaveUserPet(usersPetinfo);
                     }
                 }
             }
             finally
             {
                 Monitor.Exit(@lock);
             }
             List <UsersPetinfo> removedList;
             Monitor.Enter(removedList = this.m_removedList);
             try
             {
                 foreach (UsersPetinfo current in this.m_removedList)
                 {
                     playerBussiness.RemovePetSingle(current.ID);
                 }
                 this.m_removedList.Clear();
             }
             finally
             {
                 Monitor.Exit(removedList);
             }
             List <UsersPetinfo> removedAdoptPetList;
             Monitor.Enter(removedAdoptPetList = this.m_removedAdoptPetList);
             try
             {
                 foreach (UsersPetinfo current2 in this.m_removedAdoptPetList)
                 {
                     playerBussiness.RemoveUserAdoptPet(current2.ID);
                 }
                 this.m_removedAdoptPetList.Clear();
             }
             finally
             {
                 Monitor.Exit(removedAdoptPetList);
             }
         }
     }
 }
Exemple #11
0
        public string SetSkillEquip(UsersPetinfo pet, int place, string skill)
        {
            List <string> skillEquip = pet.GetSkillEquip();

            skillEquip[place] = skill;
            string text = skillEquip[0];

            for (int i = 1; i < skillEquip.Count; i++)
            {
                text = text + "|" + skillEquip[i];
            }
            return(text);
        }
Exemple #12
0
        public void RevertPetHandle(GameClient client, int place, string msg)
        {
            int num = Convert.ToInt32(PetMgr.FindConfig("RecycleCost").Value);

            if (client.Player.PlayerCharacter.Money >= num)
            {
                UsersPetinfo     petAt        = client.Player.PetBag.GetPetAt(place);
                UsersPetinfo     usersPetinfo = new UsersPetinfo();
                ItemTemplateInfo goods        = ItemMgr.FindItemTemplate(334100);
                ItemInfo         itemInfo     = ItemInfo.CreateFromTemplate(goods, 1, 0);
                itemInfo.IsBinds        = true;
                itemInfo.DefendCompose  = petAt.GP;
                itemInfo.AgilityCompose = petAt.MaxGP;
                if (!client.Player.PropBag.AddTemplate(itemInfo, 1))
                {
                    client.Player.SendItemToMail(itemInfo, LanguageMgr.GetTranslation("UserChangeItemPlaceHandler.full", new object[0]), LanguageMgr.GetTranslation("UserChangeItemPlaceHandler.full", new object[0]), eMailType.ItemOverdue);
                    client.Player.Out.SendMailResponse(client.Player.PlayerCharacter.ID, eMailRespose.Receiver);
                }
                int iD = petAt.ID;
                using (PlayerBussiness playerBussiness = new PlayerBussiness())
                {
                    usersPetinfo = playerBussiness.GetAdoptPetSingle(iD);
                }
                petAt.Blood   = usersPetinfo.Blood;
                petAt.Attack  = usersPetinfo.Attack;
                petAt.Defence = usersPetinfo.Defence;
                petAt.Agility = usersPetinfo.Agility;
                petAt.Luck    = usersPetinfo.Luck;
                int arg_158_0  = client.Player.PlayerCharacter.ID;
                int templateID = usersPetinfo.TemplateID;
                petAt.TemplateID = templateID;
                petAt.Skill      = usersPetinfo.Skill;
                petAt.SkillEquip = usersPetinfo.SkillEquip;
                petAt.GP         = 0;
                petAt.Level      = 1;
                petAt.MaxGP      = 55;
                bool flag = client.Player.PetBag.UpGracePet(petAt, place, false, 0, 0, ref msg);
                client.Player.SendMessage("Phục hồi thành công!");
                client.Player.RemoveMoney(num);
                if (flag)
                {
                    client.Player.Out.SendUpdatePetInfo(client.Player.PlayerCharacter, client.Player.PetBag.GetPets());
                    return;
                }
            }
            else
            {
                client.Player.SendMessage(msg);
            }
        }
Exemple #13
0
 public Player(IGamePlayer player, int id, BaseGame game, int team, int maxBlood) : base(id, game, team, "", "", maxBlood, 0, 1)
 {
     this.m_rect   = new Rectangle(-15, -20, 30, 30);
     this.m_player = player;
     this.m_player.GamePlayerId = id;
     this.m_isActive            = true;
     this.m_canGetProp          = true;
     this.Grade    = player.PlayerCharacter.Grade;
     base.vaneOpen = player.PlayerCharacter.IsWeakGuildFinish(9);
     this.m_pet    = player.Pet;
     if (this.m_pet != null)
     {
         base.isPet      = true;
         base.PetBaseAtt = this.GetPetBaseAtt();
     }
     this.TotalAllHurt           = 0;
     this.TotalAllHitTargetCount = 0;
     this.TotalAllShootCount     = 0;
     this.TotalAllKill           = 0;
     this.TotalAllExperience     = 0;
     this.TotalAllScore          = 0;
     this.TotalAllCure           = 0;
     this.m_DeputyWeapon         = this.m_player.SecondWeapon;
     if (this.m_DeputyWeapon != null)
     {
         this.deputyWeaponResCount = this.m_DeputyWeapon.StrengthenLevel + 1;
     }
     else
     {
         this.deputyWeaponResCount = 1;
     }
     this.m_weapon = this.m_player.MainWeapon;
     if (this.m_weapon != null)
     {
         BallConfigInfo ballConfigInfo = BallConfigMgr.FindBall(this.m_weapon.TemplateID);
         this.m_mainBallId     = ballConfigInfo.Common;
         this.m_spBallId       = ballConfigInfo.Special;
         this.m_sp2BallId      = ballConfigInfo.SpecialII;
         this.m_AddWoundBallId = ballConfigInfo.CommonAddWound;
         this.m_MultiBallId    = ballConfigInfo.CommonMultiBall;
     }
     this.m_loadingProcess = 0;
     this.m_prop           = 0;
     this.InitBuffer(this.m_player.EquipEffect);
     this.m_energy   = this.m_player.PlayerCharacter.Agility / 30 + 240;
     this.m_maxBlood = this.m_player.PlayerCharacter.hp;
     this.skillcu    = 0;
 }
Exemple #14
0
 public ProxyPlayer(ServerClient client, PlayerInfo character, ProxyPlayerInfo proxyPlayer, UsersPetinfo pet, List <BufferInfo> infos, List <ItemInfo> euipEffects)
 {
     this.m_client            = client;
     this.m_character         = character;
     this.m_pet               = pet;
     this.m_serverid          = proxyPlayer.ServerId;
     this.m_baseAttack        = proxyPlayer.BaseAttack;
     this.m_baseDefence       = proxyPlayer.BaseDefence;
     this.m_baseAglilty       = proxyPlayer.BaseAgility;
     this.m_baseBlood         = proxyPlayer.BaseBlood;
     this.m_currentWeapon     = proxyPlayer.GetItemTemplateInfo();
     this.m_secondWeapon      = proxyPlayer.GetItemInfo();
     this.GPRate              = proxyPlayer.GPAddPlus;
     this.OfferRate           = proxyPlayer.OfferAddPlus;
     this.m_antiAddictionRate = proxyPlayer.AntiAddictionRate;
     this.m_equipEffect       = euipEffects;
     this.Buffers             = infos;
 }
Exemple #15
0
        public static List <UsersPetinfo> CreateAdoptList(int userID)
        {
            int                 num = Convert.ToInt32(PetMgr.FindConfig("AdoptCount").Value);
            List <int>          petTemplateByStar = PetMgr.GetPetTemplateByStar(PetMgr.MaxStar);
            List <UsersPetinfo> list = new List <UsersPetinfo>();

            using (PlayerBussiness playerBussiness = new PlayerBussiness())
            {
                playerBussiness.RemoveUserAdoptPet(userID);
                for (int i = 0; i < num; i++)
                {
                    int             index        = PetMgr.rand.Next(petTemplateByStar.Count);
                    PetTemplateInfo info         = PetMgr.FindPetTemplate(petTemplateByStar[index]);
                    UsersPetinfo    usersPetinfo = PetMgr.CreatePet(info, userID, i);
                    usersPetinfo.IsExit = true;
                    playerBussiness.AddUserAdoptPet(usersPetinfo, false);
                    list.Add(usersPetinfo);
                }
            }
            return(list);
        }
 public override bool RemoveAdoptPet(UsersPetinfo pet)
 {
     if (base.RemoveAdoptPet(pet))
     {
         if (this.m_saveToDb)
         {
             List <UsersPetinfo> removedAdoptPetList;
             Monitor.Enter(removedAdoptPetList = this.m_removedAdoptPetList);
             try
             {
                 this.m_removedAdoptPetList.Add(pet);
             }
             finally
             {
                 Monitor.Exit(removedAdoptPetList);
             }
         }
         return(true);
     }
     return(false);
 }
Exemple #17
0
        public virtual bool UpGracePet(UsersPetinfo pet, int place, bool isUpdateProp, int min, int max, ref string msg)
        {
            if (isUpdateProp)
            {
                int blood   = 0;
                int attack  = 0;
                int defence = 0;
                int agility = 0;
                int luck    = 0;
                PetMgr.PlusPetProp(pet, min, max, ref blood, ref attack, ref defence, ref agility, ref luck);
                pet.Blood   = blood;
                pet.Attack  = attack;
                pet.Defence = defence;
                pet.Agility = agility;
                pet.Luck    = luck;
                int num = PetMgr.UpdateEvolution(pet.TemplateID, max);
                pet.TemplateID = ((num == 0) ? pet.TemplateID : num);
                string skill = pet.Skill;
                string text  = PetMgr.UpdateSkillPet(max, pet.TemplateID);
                pet.Skill      = ((text == "") ? skill : text);
                pet.SkillEquip = PetMgr.ActiveEquipSkill(max);
                if (max > min)
                {
                    msg = pet.Name + " thăng cấp " + max;
                }
            }
            object @lock;

            Monitor.Enter(@lock = this.m_lock);
            try
            {
                this.m_pets[place] = pet;
            }
            finally
            {
                Monitor.Exit(@lock);
            }
            return(true);
        }
Exemple #18
0
        public static UsersPetinfo CreatePet(PetTemplateInfo info, int userID, int place)
        {
            UsersPetinfo usersPetinfo = new UsersPetinfo();
            int          starLevel    = info.StarLevel;
            int          minValue     = 200 + 100 * starLevel;
            int          maxValue     = 350 + 100 * starLevel;
            int          minValue2    = 1700 + 1000 * starLevel;
            int          maxValue2    = 2200 + 2500 * starLevel;

            usersPetinfo.BloodGrow   = PetMgr.rand.Next(minValue2, maxValue2);
            usersPetinfo.AttackGrow  = PetMgr.rand.Next(minValue, maxValue);
            usersPetinfo.DefenceGrow = PetMgr.rand.Next(minValue, maxValue);
            usersPetinfo.AgilityGrow = PetMgr.rand.Next(minValue, maxValue);
            usersPetinfo.LuckGrow    = PetMgr.rand.Next(minValue, maxValue);
            usersPetinfo.DamageGrow  = 0;
            usersPetinfo.GuardGrow   = 0;
            double num  = (double)PetMgr.rand.Next(54, 61) * 0.1;
            double num2 = (double)PetMgr.rand.Next(9, 13) * 0.1;

            usersPetinfo.Blood      = (int)((double)(PetMgr.rand.Next(minValue2, maxValue2) / 10) * 0.1 * num);
            usersPetinfo.Attack     = (int)((double)(PetMgr.rand.Next(minValue, maxValue) / 10) * 0.1 * num2);
            usersPetinfo.Defence    = (int)((double)(PetMgr.rand.Next(minValue, maxValue) / 10) * 0.1 * num2);
            usersPetinfo.Agility    = (int)((double)(PetMgr.rand.Next(minValue, maxValue) / 10) * 0.1 * num2);
            usersPetinfo.Luck       = (int)((double)(PetMgr.rand.Next(minValue, maxValue) / 10) * 0.1 * num2);
            usersPetinfo.Damage     = 0;
            usersPetinfo.Guard      = 0;
            usersPetinfo.Hunger     = 10000;
            usersPetinfo.TemplateID = info.TemplateID;
            usersPetinfo.Name       = info.Name;
            usersPetinfo.UserID     = userID;
            usersPetinfo.Place      = place;
            usersPetinfo.Level      = 1;
            usersPetinfo.Skill      = PetMgr.UpdateSkillPet(1, info.TemplateID);
            usersPetinfo.SkillEquip = PetMgr.ActiveEquipSkill(1);
            return(usersPetinfo);
        }
Exemple #19
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            byte   b    = packet.ReadByte();
            string text = "Xu không đủ!";
            int    num  = 1;

            switch (b)
            {
            case 1:
                this.UpdatePetHandle(client, packet.ReadInt());
                break;

            case 2:
            {
                Console.WriteLine("//ADD_PET ");
                int place = packet.ReadInt();
                num = packet.ReadInt();
                int iD   = client.Player.PlayerCharacter.ID;
                int num2 = client.Player.PetBag.FindFirstEmptySlot();
                if (num2 == -1)
                {
                    client.Player.SendMessage("Số lượng pet đã đạt giới hạn!");
                }
                else
                {
                    ItemInfo        itemAt          = client.Player.GetItemAt((eBageType)num, place);
                    PetTemplateInfo petTemplateInfo = PetMgr.FindPetTemplate(itemAt.Template.Property5);
                    UsersPetinfo    usersPetinfo    = PetMgr.CreatePet(petTemplateInfo, iD, num2);
                    using (PlayerBussiness playerBussiness = new PlayerBussiness())
                    {
                        usersPetinfo.IsExit = false;
                        playerBussiness.AddUserAdoptPet(usersPetinfo, true);
                    }
                    usersPetinfo.IsExit = true;
                    PlayerInventory inventory = client.Player.GetInventory((eBageType)num);
                    if (inventory.RemoveCountFromStack(itemAt, 1))
                    {
                        client.Player.PetBag.AddPetTo(usersPetinfo, num2);
                        client.Player.SendMessage("Bạn nhận được 1 " + petTemplateInfo.Name);
                    }
                    client.Player.SaveIntoDatabase();
                }
                break;
            }

            case 3:
            {
                int num3 = packet.ReadInt();
                break;
            }

            case 4:
            {
                int place = packet.ReadInt();
                num = packet.ReadInt();
                int      num3    = packet.ReadInt();
                bool     flag    = false;
                ItemInfo itemAt2 = client.Player.GetItemAt((eBageType)num, place);
                if (itemAt2 == null)
                {
                    client.Player.SendMessage("Vật phẩm lạ không tìm thấy!!! Hack chăng???!!!");
                    return(0);
                }
                int          num4      = Convert.ToInt32(PetMgr.FindConfig("MaxHunger").Value);
                int          num5      = Convert.ToInt32(PetMgr.FindConfig("MaxLevel").Value);
                UsersPetinfo petAt     = client.Player.PetBag.GetPetAt(num3);
                int          num6      = itemAt2.Count;
                int          property  = itemAt2.Template.Property2;
                int          property2 = itemAt2.Template.Property3;
                int          num7      = num6 * property2;
                int          num8      = num7 + petAt.Hunger;
                int          num9      = num6 * property;
                text = "";
                if (itemAt2.TemplateID == 334100)
                {
                    num9 = itemAt2.DefendCompose;
                }
                if (petAt.Level > 11 && itemAt2.TemplateID == 334100)
                {
                    text = "Pet level 10 trở xuống mới dùng đuợc " + itemAt2.Template.Name;
                }
                else
                {
                    if (petAt.Level < num5)
                    {
                        num9 += petAt.GP;
                        int level  = petAt.Level;
                        int level2 = PetMgr.GetLevel(num9);
                        int gP     = PetMgr.GetGP(level2 + 1);
                        int gP2    = PetMgr.GetGP(num5);
                        int num10  = num9;
                        if (num9 > gP2)
                        {
                            num9 -= gP2;
                            if (num9 >= property && property != 0)
                            {
                                num6 = num9 / property;
                            }
                        }
                        petAt.GP     = ((num10 >= gP2) ? gP2 : num10);
                        petAt.Level  = level2;
                        petAt.MaxGP  = ((gP == 0) ? gP2 : gP);
                        petAt.Hunger = ((num8 > num4) ? num4 : num8);
                        flag         = client.Player.PetBag.UpGracePet(petAt, num3, true, level, level2, ref text);
                        if (itemAt2.TemplateID == 334100)
                        {
                            client.Player.StoreBag.RemoveItem(itemAt2);
                        }
                        else
                        {
                            client.Player.StoreBag.RemoveCountFromStack(itemAt2, num6);
                            client.Player.OnUsingItem(itemAt2.TemplateID);
                        }
                    }
                    else
                    {
                        int hunger = petAt.Hunger;
                        int num11  = num4 - hunger;
                        if (num8 >= num4 && num8 >= property2)
                        {
                            num6 = num8 / property2;
                        }
                        num8         = hunger + num11;
                        petAt.Hunger = num8;
                        if (hunger < num4)
                        {
                            client.Player.StoreBag.RemoveCountFromStack(itemAt2, num6);
                            flag = client.Player.PetBag.UpGracePet(petAt, num3, false, 0, 0, ref text);
                            text = "Ðộ vui vẻ tang thêm " + num11;
                        }
                        else
                        {
                            text = "Ðộ vui vui đã đạt mức tối da";
                        }
                    }
                }
                if (flag)
                {
                    UsersPetinfo[] pets = client.Player.PetBag.GetPets();
                    client.Player.Out.SendUpdatePetInfo(client.Player.PlayerCharacter, pets);
                }
                if (!string.IsNullOrEmpty(text))
                {
                    client.Player.SendMessage(text);
                }
                break;
            }

            case 5:
            {
                bool refreshBtn = packet.ReadBoolean();
                this.RefreshPetHandle(client, refreshBtn, text);
                break;
            }

            case 6:
            {
                int num3  = packet.ReadInt();
                int num12 = client.Player.PetBag.FindFirstEmptySlot();
                if (num12 == -1)
                {
                    client.Player.Out.SendRefreshPet(client.Player, client.Player.PetBag.GetAdoptPet(), null, false);
                    client.Player.SendMessage("Số lượng pet đã đạt giới hạn!");
                }
                else
                {
                    UsersPetinfo adoptPetAt = client.Player.PetBag.GetAdoptPetAt(num3);
                    if (client.Player.PetBag.AddPetTo(adoptPetAt, num12))
                    {
                        client.Player.PetBag.RemoveAdoptPet(adoptPetAt);
                        client.Player.OnAdoptPetEvent();
                    }
                }
                break;
            }

            case 7:
            {
                int num3      = packet.ReadInt();
                int killId    = packet.ReadInt();
                int killindex = packet.ReadInt();
                if (client.Player.PetBag.EquipSkillPet(num3, killId, killindex))
                {
                    UsersPetinfo[] pets = client.Player.PetBag.GetPets();
                    client.Player.Out.SendUpdatePetInfo(client.Player.PlayerCharacter, pets);
                }
                else
                {
                    client.Player.SendMessage("Skill này đã trang bị!");
                }
                break;
            }

            case 8:
            {
                int          num3   = packet.ReadInt();
                UsersPetinfo petAt2 = client.Player.PetBag.GetPetAt(num3);
                if (client.Player.PetBag.RemovePet(petAt2))
                {
                    using (PlayerBussiness playerBussiness2 = new PlayerBussiness())
                    {
                        playerBussiness2.UpdateUserAdoptPet(petAt2.ID);
                    }
                }
                client.Player.SendMessage("Thả pet thành công!");
                break;
            }

            case 9:
            {
                int    num3  = packet.ReadInt();
                string name  = packet.ReadString();
                int    num13 = Convert.ToInt32(PetMgr.FindConfig("ChangeNameCost").Value);
                if (client.Player.PlayerCharacter.Money >= num13)
                {
                    if (client.Player.PetBag.RenamePet(num3, name))
                    {
                        UsersPetinfo[] pets = client.Player.PetBag.GetPets();
                        client.Out.SendUpdatePetInfo(client.Player.PlayerCharacter, pets);
                        text = "Đổi tên thành công!";
                    }
                    client.Player.RemoveMoney(num13);
                }
                client.Player.SendMessage(text);
                break;
            }

            case 16:
            {
                Console.WriteLine("//PAY_SKILL ");
                int num3 = packet.ReadInt();
                break;
            }

            case 17:
            {
                int  num3    = packet.ReadInt();
                bool isEquip = packet.ReadBoolean();
                if (client.Player.PetBag.SetIsEquip(num3, isEquip))
                {
                    UsersPetinfo[] pets = client.Player.PetBag.GetPets();
                    client.Player.MainBag.UpdatePlayerProperties();
                    client.Player.Out.SendUpdatePetInfo(client.Player.PlayerCharacter, pets);
                }
                break;
            }

            case 18:
            {
                int num3 = packet.ReadInt();
                this.RevertPetHandle(client, num3, text);
                break;
            }

            case 19:
            {
                Console.WriteLine("//BUY_PET_EXP_ITEM ");
                bool         buyPetExpItem         = packet.ReadBoolean();
                int          GoodsID               = packet.ReadInt();
                int          count                 = 20 * 80;
                ShopItemInfo shopItem              = ShopMgr.GetShopItemInfoById(GoodsID);
                SqlDataProvider.Data.ItemInfo item = SqlDataProvider.Data.ItemInfo.CreateFromTemplate(ItemMgr.FindItemTemplate(334103), 20, 0x66);
                client.Player.RemoveMoney(count);
                client.Player.AddItem(item);
                text = "Mua thức ăn thành công.";
                client.Player.SendMessage(text);
                break;
            }
            }
            client.Player.PetBag.SaveToDatabase();
            return(0);
        }
Exemple #20
0
 public bool AddPet(UsersPetinfo pet)
 {
     return(this.AddPet(pet, this.m_beginSlot));
 }
Exemple #21
0
 public bool AddUserAdoptPet(UsersPetinfo info, bool isUse)
 {
     bool flag = false;
     try
     {
         SqlParameter[] SqlParameters = new SqlParameter[23]
     {
       new SqlParameter("@TemplateID", (object) info.TemplateID),
       new SqlParameter("@Name", info.Name == null ? (object) "Error!" : (object) info.Name),
       new SqlParameter("@UserID", (object) info.UserID),
       new SqlParameter("@Attack", (object) info.Attack),
       new SqlParameter("@Defence", (object) info.Defence),
       new SqlParameter("@Luck", (object) info.Luck),
       new SqlParameter("@Agility", (object) info.Agility),
       new SqlParameter("@Blood", (object) info.Blood),
       new SqlParameter("@Damage", (object) info.Damage),
       new SqlParameter("@Guard", (object) info.Guard),
       new SqlParameter("@AttackGrow", (object) info.AttackGrow),
       new SqlParameter("@DefenceGrow", (object) info.DefenceGrow),
       new SqlParameter("@LuckGrow", (object) info.LuckGrow),
       new SqlParameter("@AgilityGrow", (object) info.AgilityGrow),
       new SqlParameter("@BloodGrow", (object) info.BloodGrow),
       new SqlParameter("@DamageGrow", (object) info.DamageGrow),
       new SqlParameter("@GuardGrow", (object) info.GuardGrow),
       new SqlParameter("@Skill", (object) info.Skill),
       new SqlParameter("@SkillEquip", (object) info.SkillEquip),
       new SqlParameter("@Place", (object) info.Place),
       new SqlParameter("@IsExit", (object) (int) (info.IsExit ? 1 : 0)),
       new SqlParameter("@IsUse", (object) (int) (isUse ? 1 : 0)),
       new SqlParameter("@ID", (object) info.ID)
     };
         SqlParameters[22].Direction = ParameterDirection.Output;
         flag = this.db.RunProcedure("SP_User_AdoptPet", SqlParameters);
         info.ID = (int)SqlParameters[22].Value;
         info.IsDirty = false;
     }
     catch (Exception ex)
     {
         if (BaseBussiness.log.IsErrorEnabled)
             BaseBussiness.log.Error((object)"Init", ex);
     }
     return flag;
 }
Exemple #22
0
 public bool AddUserPet(UsersPetinfo info)
 {
     bool flag = false;
     try
     {
         SqlParameter[] SqlParameters = new SqlParameter[30]
     {
       new SqlParameter("@TemplateID", (object) info.TemplateID),
       new SqlParameter("@Name", info.Name == null ? (object) "Error!" : (object) info.Name),
       new SqlParameter("@UserID", (object) info.UserID),
       new SqlParameter("@Attack", (object) info.Attack),
       new SqlParameter("@Defence", (object) info.Defence),
       new SqlParameter("@Luck", (object) info.Luck),
       new SqlParameter("@Agility", (object) info.Agility),
       new SqlParameter("@Blood", (object) info.Blood),
       new SqlParameter("@Damage", (object) info.Damage),
       new SqlParameter("@Guard", (object) info.Guard),
       new SqlParameter("@AttackGrow", (object) info.AttackGrow),
       new SqlParameter("@DefenceGrow", (object) info.DefenceGrow),
       new SqlParameter("@LuckGrow", (object) info.LuckGrow),
       new SqlParameter("@AgilityGrow", (object) info.AgilityGrow),
       new SqlParameter("@BloodGrow", (object) info.BloodGrow),
       new SqlParameter("@DamageGrow", (object) info.DamageGrow),
       new SqlParameter("@GuardGrow", (object) info.GuardGrow),
       new SqlParameter("@Level", (object) info.Level),
       new SqlParameter("@GP", (object) info.GP),
       new SqlParameter("@MaxGP", (object) info.MaxGP),
       new SqlParameter("@Hunger", (object) info.Hunger),
       new SqlParameter("@PetHappyStar", (object) info.PetHappyStar),
       new SqlParameter("@MP", (object) info.MP),
       new SqlParameter("@IsEquip", (object) (int) (info.IsEquip ? 1 : 0)),
       new SqlParameter("@Skill", (object) info.Skill),
       new SqlParameter("@SkillEquip", (object) info.SkillEquip),
       new SqlParameter("@Place", (object) info.Place),
       new SqlParameter("@IsExit", (object) (int) (info.IsExit ? 1 : 0)),
       new SqlParameter("@ID", (object) info.ID),
       null
     };
         SqlParameters[28].Direction = ParameterDirection.Output;
         SqlParameters[29] = new SqlParameter("@Result", SqlDbType.Int);
         SqlParameters[29].Direction = ParameterDirection.ReturnValue;
         flag = this.db.RunProcedure("SP_User_Add_Pet", SqlParameters);
         flag = (int)SqlParameters[29].Value == 0;
         info.ID = (int)SqlParameters[28].Value;
         info.IsDirty = false;
     }
     catch (Exception ex)
     {
         if (BaseBussiness.log.IsErrorEnabled)
             BaseBussiness.log.Error((object)"Init", ex);
     }
     return flag;
 }
Exemple #23
0
 public UsersPetinfo GetAdoptPetSingle(int PetID)
 {
     UsersPetinfo usersPetinfo = new UsersPetinfo();
     SqlDataReader ResultDataReader = (SqlDataReader)null;
     try
     {
         SqlParameter[] SqlParameters = new SqlParameter[1]
     {
       new SqlParameter("@ID", SqlDbType.Int, 4)
     };
         SqlParameters[0].Value = (object)PetID;
         this.db.GetReader(ref ResultDataReader, "SP_AdoptPet_By_Id", SqlParameters);
         if (ResultDataReader.Read())
             return this.InitPet(ResultDataReader);
     }
     catch (Exception ex)
     {
         if (BaseBussiness.log.IsErrorEnabled)
             BaseBussiness.log.Error((object)"Init", ex);
     }
     finally
     {
         if (ResultDataReader != null && !ResultDataReader.IsClosed)
             ResultDataReader.Close();
     }
     return (UsersPetinfo)null;
 }
Exemple #24
0
        public void HandleGameRoomCreate(GSPacketIn pkg)
        {
            int num      = pkg.ReadInt();
            int gameType = pkg.ReadInt();
            int guildId  = pkg.ReadInt();
            int num2     = pkg.ReadInt();
            int num3     = 0;

            IGamePlayer[] array = new IGamePlayer[num2];
            for (int i = 0; i < num2; i++)
            {
                PlayerInfo playerInfo = new PlayerInfo();
                playerInfo.ID                    = pkg.ReadInt();
                playerInfo.NickName              = pkg.ReadString();
                playerInfo.Sex                   = pkg.ReadBoolean();
                playerInfo.typeVIP               = pkg.ReadByte();
                playerInfo.VIPLevel              = pkg.ReadInt();
                playerInfo.Hide                  = pkg.ReadInt();
                playerInfo.Style                 = pkg.ReadString();
                playerInfo.Colors                = pkg.ReadString();
                playerInfo.Skin                  = pkg.ReadString();
                playerInfo.Offer                 = pkg.ReadInt();
                playerInfo.GP                    = pkg.ReadInt();
                playerInfo.Grade                 = pkg.ReadInt();
                playerInfo.Repute                = pkg.ReadInt();
                playerInfo.ConsortiaID           = pkg.ReadInt();
                playerInfo.ConsortiaName         = pkg.ReadString();
                playerInfo.ConsortiaLevel        = pkg.ReadInt();
                playerInfo.ConsortiaRepute       = pkg.ReadInt();
                playerInfo.badgeID               = pkg.ReadInt();
                playerInfo.weaklessGuildProgress = Base64.decodeToByteArray(pkg.ReadString());
                playerInfo.Attack                = pkg.ReadInt();
                playerInfo.Defence               = pkg.ReadInt();
                playerInfo.Agility               = pkg.ReadInt();
                playerInfo.Luck                  = pkg.ReadInt();
                playerInfo.hp                    = pkg.ReadInt();
                playerInfo.FightPower            = pkg.ReadInt();
                playerInfo.IsMarried             = pkg.ReadBoolean();
                if (playerInfo.IsMarried)
                {
                    playerInfo.SpouseID   = pkg.ReadInt();
                    playerInfo.SpouseName = pkg.ReadString();
                }
                ProxyPlayerInfo proxyPlayerInfo = new ProxyPlayerInfo();
                proxyPlayerInfo.BaseAttack        = pkg.ReadDouble();
                proxyPlayerInfo.BaseDefence       = pkg.ReadDouble();
                proxyPlayerInfo.BaseAgility       = pkg.ReadDouble();
                proxyPlayerInfo.BaseBlood         = pkg.ReadDouble();
                proxyPlayerInfo.TemplateId        = pkg.ReadInt();
                proxyPlayerInfo.CanUserProp       = pkg.ReadBoolean();
                proxyPlayerInfo.SecondWeapon      = pkg.ReadInt();
                proxyPlayerInfo.StrengthLevel     = pkg.ReadInt();
                proxyPlayerInfo.GPAddPlus         = pkg.ReadDouble();
                proxyPlayerInfo.OfferAddPlus      = pkg.ReadDouble();
                proxyPlayerInfo.AntiAddictionRate = pkg.ReadDouble();
                proxyPlayerInfo.ServerId          = pkg.ReadInt();
                UsersPetinfo usersPetinfo = new UsersPetinfo();
                int          num4         = pkg.ReadInt();
                if (num4 == 1)
                {
                    usersPetinfo.Place      = pkg.ReadInt();
                    usersPetinfo.TemplateID = pkg.ReadInt();
                    usersPetinfo.ID         = pkg.ReadInt();
                    usersPetinfo.Name       = pkg.ReadString();
                    usersPetinfo.UserID     = pkg.ReadInt();
                    usersPetinfo.Level      = pkg.ReadInt();
                    usersPetinfo.Skill      = pkg.ReadString();
                    usersPetinfo.SkillEquip = pkg.ReadString();
                }
                else
                {
                    usersPetinfo = null;
                }
                List <BufferInfo> list = new List <BufferInfo>();
                int num5 = pkg.ReadInt();
                for (int j = 0; j < num5; j++)
                {
                    BufferInfo bufferInfo = new BufferInfo();
                    bufferInfo.Type       = pkg.ReadInt();
                    bufferInfo.IsExist    = pkg.ReadBoolean();
                    bufferInfo.BeginDate  = pkg.ReadDateTime();
                    bufferInfo.ValidDate  = pkg.ReadInt();
                    bufferInfo.Value      = pkg.ReadInt();
                    bufferInfo.ValidCount = pkg.ReadInt();
                    if (playerInfo != null)
                    {
                        list.Add(bufferInfo);
                    }
                }
                List <ItemInfo> list2 = new List <ItemInfo>();
                int             num6  = pkg.ReadInt();
                for (int k = 0; k < num6; k++)
                {
                    int      templateId = pkg.ReadInt();
                    int      hole       = pkg.ReadInt();
                    ItemInfo itemInfo   = ItemInfo.CreateFromTemplate(ItemMgr.FindItemTemplate(templateId), 1, 1);
                    itemInfo.Hole1 = hole;
                    list2.Add(itemInfo);
                }
                array[i]            = new ProxyPlayer(this, playerInfo, proxyPlayerInfo, usersPetinfo, list, list2);
                array[i].CanUseProp = proxyPlayerInfo.CanUserProp;
                num3 += playerInfo.Grade;
            }
            ProxyRoom proxyRoom = new ProxyRoom(ProxyRoomMgr.NextRoomId(), num, array, this);

            proxyRoom.GuildId  = guildId;
            proxyRoom.GameType = (eGameType)gameType;
            Dictionary <int, ProxyRoom> rooms;

            Monitor.Enter(rooms = this.m_rooms);
            try
            {
                if (!this.m_rooms.ContainsKey(num))
                {
                    this.m_rooms.Add(num, proxyRoom);
                }
                else
                {
                    proxyRoom = null;
                }
            }
            finally
            {
                Monitor.Exit(rooms);
            }
            if (proxyRoom != null)
            {
                ProxyRoomMgr.AddRoom(proxyRoom);
                return;
            }
            ServerClient.log.ErrorFormat("Room already exists:{0}", num);
        }