Exemplo n.º 1
0
 public bool AddUserUserDrill(UserDrillInfo item)
 {
     bool flag = false;
     try
     {
         SqlParameter[] SqlParameters = new SqlParameter[6]
     {
       new SqlParameter("@UserID", (object) item.UserID),
       new SqlParameter("@BeadPlace", (object) item.BeadPlace),
       new SqlParameter("@HoleExp", (object) item.HoleExp),
       new SqlParameter("@HoleLv", (object) item.HoleLv),
       new SqlParameter("@DrillPlace", (object) item.DrillPlace),
       new SqlParameter("@Result", SqlDbType.Int)
     };
         SqlParameters[5].Direction = ParameterDirection.ReturnValue;
         this.db.RunProcedure("SP_Users_UserDrill_Add", SqlParameters);
         flag = (int)SqlParameters[5].Value == 0;
         item.IsDirty = false;
     }
     catch (Exception ex)
     {
         if (BaseBussiness.log.IsErrorEnabled)
             BaseBussiness.log.Error((object)"Init", ex);
     }
     return flag;
 }
Exemplo n.º 2
0
 public Dictionary<int, UserDrillInfo> GetPlayerDrillByID(int UserID)
 {
     Dictionary<int, UserDrillInfo> dictionary = new Dictionary<int, UserDrillInfo>();
     SqlDataReader ResultDataReader = (SqlDataReader)null;
     try
     {
         SqlParameter[] SqlParameters = new SqlParameter[1]
     {
       new SqlParameter("@UserID", SqlDbType.Int, 4)
     };
         SqlParameters[0].Value = (object)UserID;
         this.db.GetReader(ref ResultDataReader, "SP_Users_Drill_All", SqlParameters);
         while (ResultDataReader.Read())
         {
             UserDrillInfo userDrillInfo = new UserDrillInfo();
             userDrillInfo.UserID = (int)ResultDataReader["UserID"];
             userDrillInfo.BeadPlace = (int)ResultDataReader["BeadPlace"];
             userDrillInfo.HoleLv = (int)ResultDataReader["HoleLv"];
             userDrillInfo.HoleExp = (int)ResultDataReader["HoleExp"];
             userDrillInfo.DrillPlace = (int)ResultDataReader["DrillPlace"];
             if (!dictionary.ContainsKey(userDrillInfo.DrillPlace))
                 dictionary.Add(userDrillInfo.DrillPlace, userDrillInfo);
         }
     }
     catch (Exception ex)
     {
         if (BaseBussiness.log.IsErrorEnabled)
             BaseBussiness.log.Error((object)"Init", ex);
     }
     finally
     {
         if (ResultDataReader != null && !ResultDataReader.IsClosed)
             ResultDataReader.Close();
     }
     return dictionary;
 }
Exemplo n.º 3
0
 public bool UpdateUserDrillInfo(UserDrillInfo g)
 {
     bool flag = false;
     try
     {
         SqlParameter[] SqlParameters = new SqlParameter[6]
     {
       new SqlParameter("@UserID", (object) g.UserID),
       new SqlParameter("@BeadPlace", (object) g.BeadPlace),
       new SqlParameter("@HoleExp", (object) g.HoleExp),
       new SqlParameter("@HoleLv", (object) g.HoleLv),
       new SqlParameter("@DrillPlace", (object) g.DrillPlace),
       new SqlParameter("@Result", SqlDbType.Int)
     };
         SqlParameters[5].Direction = ParameterDirection.ReturnValue;
         this.db.RunProcedure("SP_UpdateUserDrillInfo", SqlParameters);
         flag = true;
     }
     catch (Exception ex)
     {
         if (BaseBussiness.log.IsErrorEnabled)
             BaseBussiness.log.Error((object)"SP_UpdateUserDrillInfo", ex);
     }
     return flag;
 }
Exemplo n.º 4
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            byte            b         = packet.ReadByte();
            PlayerInventory inventory = client.Player.GetInventory(eBageType.BeadBag);
            string          text      = "";

            if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked)
            {
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked", new object[0]));
                return(0);
            }
            if (DateTime.Compare(client.Player.LastDrillUpTime.AddSeconds(2.0), DateTime.Now) > 0)
            {
                client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Quá nhiều thao tác!", new object[0]));
                return(1);
            }
            switch (b)
            {
            case 1:
            {
                int num  = packet.ReadInt();
                int num2 = packet.ReadInt();
                int num3 = 10;
                if (num2 == -1)
                {
                    num2 = inventory.FindFirstEmptySlot();
                }
                if (num <= 12 && num >= 4 && BeadHandle.canEquip(num2, client.Player.PlayerCharacter.Grade, ref num3))
                {
                    client.Out.SendMessage(eMessageType.Normal, string.Format("Cấp {0} mở", num3));
                    return(0);
                }
                if (!inventory.MoveItem(num, num2, 1))
                {
                    Console.WriteLine("????User move bead error");
                }
                client.Player.MainBag.UpdatePlayerProperties();
                break;
            }

            case 2:
            {
                new List <int>();
                ItemInfo itemAt = inventory.GetItemAt(31);
                if (itemAt == null)
                {
                    client.Player.SendMessage("Vật phẩm lạ không tìm thấy!!! Hack chăng???!!!");
                    return(0);
                }
                int arg_504_0 = itemAt.Hole1;
                int num4      = packet.ReadInt();
                int num5      = RuneMgr.MaxLv();
                for (int i = 0; i < num4; i++)
                {
                    int              num6             = packet.ReadInt();
                    ItemInfo         itemAt2          = inventory.GetItemAt(num6);
                    RuneTemplateInfo runeTemplateInfo = RuneMgr.FindRuneTemplateID(itemAt.TemplateID);
                    if (runeTemplateInfo == null)
                    {
                        inventory.RemoveItem(itemAt2);
                    }
                    else
                    {
                        if (itemAt2.Hole1 < itemAt.Hole1 && !itemAt2.IsUsed)
                        {
                            int hole  = itemAt2.Hole2;
                            int hole2 = itemAt.Hole2;
                            int hole3 = itemAt.Hole1;
                            int exp   = hole + hole2;
                            inventory.RemoveItemAt(num6);
                            if (BeadHandle.CanUpLv(exp, hole3))
                            {
                                itemAt.Hole2 += hole;
                                itemAt.Hole1++;
                            }
                            else
                            {
                                itemAt.Hole2 += hole;
                            }
                            int nextTemplateID = runeTemplateInfo.NextTemplateID;
                            RuneTemplateInfo runeTemplateInfo2 = RuneMgr.FindRuneTemplateID(nextTemplateID);
                            if (itemAt.Hole1 == runeTemplateInfo2.BaseLevel)
                            {
                                ItemInfo itemInfo = new ItemInfo(ItemMgr.FindItemTemplate(nextTemplateID));
                                itemAt.TemplateID = nextTemplateID;
                                itemInfo.Copy(itemAt);
                                inventory.RemoveItemAt(31);
                                inventory.AddItemTo(itemInfo, 31);
                            }
                            else
                            {
                                inventory.UpdateItem(itemAt);
                            }
                            if (itemAt.Hole1 == num5 + 1)
                            {
                                break;
                            }
                        }
                    }
                }
                break;
            }

            case 3:
            {
                string[] array = GameProperties.OpenRunePackageMoney.Split(new char[]
                    {
                        '|'
                    });
                int num7 = packet.ReadInt();
                packet.ReadBoolean();
                int num8 = Convert.ToInt32(array[num7]);
                if (client.Player.PlayerCharacter.Money < num8)
                {
                    client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("DivorceApplyHandler.Msg1", new object[0]));
                    return(1);
                }
                if (inventory.FindFirstEmptySlot() == -1)
                {
                    client.Out.SendMessage(eMessageType.Normal, "Rương đã đầy không thể mở thêm!");
                    return(1);
                }
                List <RuneTemplateInfo> list = new List <RuneTemplateInfo>();
                switch (num7)
                {
                case 1:
                    list = RuneMgr.OpenPackageLv2();
                    break;

                case 2:
                    list = RuneMgr.OpenPackageLv3();
                    break;

                case 3:
                    list = RuneMgr.OpenPackageLv4();
                    break;

                default:
                    list = RuneMgr.OpenPackageLv1();
                    break;
                }
                int      index     = ThreadSafeRandom.NextStatic(list.Count);
                ItemInfo itemInfo2 = ItemInfo.CreateFromTemplate(ItemMgr.FindItemTemplate(list[index].TemplateID), 1, 105);
                inventory.AddItem(itemInfo2);
                client.Out.SendMessage(eMessageType.Normal, "Bạn nhận được " + RuneMgr.FindRuneTemplateID(itemInfo2.TemplateID).Name);
                client.Player.RemoveMoney(num8);
                int rand = BeadHandle.NextBeadIndex(client, num7);
                this.BeadIndexUpdate(client, num7);
                client.Out.SendRuneOpenPackage(client.Player, rand);
                break;
            }

            case 4:
            {
                int      num     = packet.ReadInt();
                ItemInfo itemAt2 = inventory.GetItemAt(num);
                if (itemAt2.IsUsed)
                {
                    itemAt2.IsUsed = false;
                }
                else
                {
                    itemAt2.IsUsed = true;
                }
                inventory.UpdateItem(itemAt2);
                break;
            }

            case 5:
            {
                int             num9       = packet.ReadInt();
                int             templateId = packet.ReadInt();
                PlayerInventory inventory2 = client.Player.GetInventory(eBageType.PropBag);
                inventory2.GetItemByTemplateID(0, templateId);
                int itemCount = inventory2.GetItemCount(templateId);
                if (itemCount <= 0)
                {
                    client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("Mủi khoan không đủ!", new object[0]));
                }
                else
                {
                    int num10 = BeadHandle.randomExp.Next(2, 6);
                    text = LanguageMgr.GetTranslation("OpenHoleHandler.GetExp", new object[]
                        {
                            num10
                        });
                    UserDrillInfo userDrillInfo = client.Player.UserDrills[num9];
                    userDrillInfo.HoleExp += num10;
                    if ((userDrillInfo.HoleExp >= GameProperties.HoleLevelUpExp(0) && userDrillInfo.HoleLv == 0) || (userDrillInfo.HoleExp >= GameProperties.HoleLevelUpExp(1) && userDrillInfo.HoleLv == 1) || (userDrillInfo.HoleExp >= GameProperties.HoleLevelUpExp(2) && userDrillInfo.HoleLv == 2) || (userDrillInfo.HoleExp >= GameProperties.HoleLevelUpExp(3) && userDrillInfo.HoleLv == 3) || (userDrillInfo.HoleExp >= GameProperties.HoleLevelUpExp(4) && userDrillInfo.HoleLv == 4))
                    {
                        userDrillInfo.HoleLv++;
                        userDrillInfo.HoleExp = 0;
                    }
                    client.Player.UpdateDrill(num9, userDrillInfo);
                    using (PlayerBussiness playerBussiness = new PlayerBussiness())
                    {
                        playerBussiness.UpdateUserDrillInfo(userDrillInfo);
                    }
                }
                if (text != "")
                {
                    client.Out.SendMessage(eMessageType.Normal, text);
                }
                client.Player.Out.SendPlayerDrill(client.Player.PlayerCharacter.ID, client.Player.UserDrills);
                inventory2.RemoveTemplate(templateId, 1);
                client.Player.LastDrillUpTime = DateTime.Now;
                break;
            }
            }
            inventory.SaveToDatabase();
            return(0);
        }