Esempio n. 1
0
        public override void Handle(virtualUser User)
        {
            int    ID             = Convert.ToInt32(getBlock(0));
            int    Days           = 0;
            int    CouponToRemove = 0;
            string WeaponToBuy    = null;

            #region Calculate
            switch (ID)
            {
            case 0: WeaponToBuy = "DS01"; Days = 3; CouponToRemove = 5; break;

            case 1: WeaponToBuy = "DS10"; Days = 3; CouponToRemove = 10; break;

            case 2: WeaponToBuy = "DS03"; Days = 3; CouponToRemove = 10; break;

            case 3: WeaponToBuy = "DF15"; Days = 3; CouponToRemove = 20; break;

            case 4: WeaponToBuy = "DG40"; Days = 3; CouponToRemove = 25; break;

            case 5: WeaponToBuy = "DJ35"; Days = 3; CouponToRemove = 30; break;

            case 6: WeaponToBuy = "CC41"; Days = 1; CouponToRemove = 30; break;

            case 7: WeaponToBuy = "DG22"; Days = 3; CouponToRemove = 35; break;

            case 8: WeaponToBuy = "DC77"; Days = 7; CouponToRemove = 45; break;

            default: User.disconnect(); break;
            }
            #endregion
            if (User.Coupons >= CouponToRemove)
            {
                int InventorySlot = User.InventorySlots;
                if (InventorySlot > 0)
                {
                    User.Coupons -= CouponToRemove;
                    DB.runQuery("UPDATE users SET coupons='" + User.Coupons + "' WHERE id='" + User.UserID + "'");
                    if (WeaponToBuy == null)
                    {
                        User.disconnect();
                    }
                    User.AddItem(WeaponToBuy, Days, 1);
                    User.send(new PACKET_COUPON_BUY(WeaponToBuy, User));
                    User.send(new PACKET_COUPON_EVENT(User));
                    User.reloadCash();
                }
                else
                {
                    User.send(new PACKET_ITEMSHOP(PACKET_ITEMSHOP.ErrorCodes.InventoryFull, "NULL"));
                }
            }
            else
            {
                User.send(new PACKET_COUPON_BUY(PACKET_COUPON_BUY.ErrorCode.NotEnoughCoupons));
            }
        }
Esempio n. 2
0
 public override void Handle(virtualUser User)
 {
     try
     {
         int         Type        = Convert.ToInt32(getNextBlock());
         virtualRoom currentRoom = User.Room;
         if (currentRoom.getSide(User) == 1 && User.Weapon == 118) // NIU
         {
             if (currentRoom.bombPlanted == false)
             {
                 User.disconnect();
             }
             currentRoom.bombPlanted = false;
             currentRoom.bombDefused = true;
             currentRoom.prepareRound(1);
             currentRoom.cNIUExplosivePoints += 12;
         }
         else if (currentRoom.getSide(User) == 0 && User.Weapon == 91) // Derb
         {
             currentRoom.bombPlanted           = true;
             currentRoom.cDerbExplosivePoints += 6;
             currentRoom.RoundTimeLeft         = 44000;
         }
         currentRoom.send(new PACKET_BOMB(getAllBlocks()));
     }
     catch (Exception ex)
     {
         Log.AppendError("currentRoom Bomb error: " + ex.Message);
     }
 }
Esempio n. 3
0
 public override void Handle(virtualUser User)
 {
     if (User.Rank > 2)
     {
         int EnterRoom = Convert.ToInt32(getNextBlock());
         int roomID    = Convert.ToInt32(getNextBlock());
         if (EnterRoom == 1) // 1 == Join, 2 == Leave, 3 == UpdateGameData [30017]
         {
             virtualRoom Room = RoomManager.getRoom(User.Channel, roomID);
             if (Room != null)
             {
                 if (User.isSpectating == true)
                 {
                     return;
                 }
                 if (Room.addSpectator(User))
                 {
                     User.send(new PACKET_SPECTATE_ROOM(User, Room));
                     User.send(new PACKET_ROOM_UDP(User, Room.Players));
                     foreach (virtualUser RoomUser in Room.Players)
                     {
                         if (RoomUser.Equals(User) == false && RoomUser.isSpectating == false)
                         {
                             RoomUser.send(new PACKET_ROOM_UDP_SPECTATE(User));
                         }
                     }
                 }
                 else
                 {
                     StringBuilder SpectatorList = new StringBuilder();
                     int           Count         = 0;
                     foreach (virtualUser Spectator in Room.Spectators)
                     {
                         SpectatorList.Append(Spectator.Nickname);
                         Count++;
                     }
                     SpectatorList.ToString().Remove(SpectatorList.ToString().Length - 1, 1);
                     User.send(new PACKET_CHAT("SPECTATE", PACKET_CHAT.ChatType.Room_ToAll, "SPECTATE >> There is no slot empty for this room!", 999, User.Nickname));
                 }
             }
         }
         else
         {
             User.Room.removeSpectator(User);
         }
     }
     else
     {
         User.disconnect();
     }
 }
Esempio n. 4
0
 public override void Handle(virtualUser User)
 {
     try
     {
         User.HWID = getBlock(2);
         string[] HWIDCheck = DB.runReadRow("SELECT * FROM users_hwid WHERE hwid='" + User.HWID.ToString() + "'");
         if (HWIDCheck.Length > 0)
         {
             Log.AppendError(User.HWID + " tried to login but this HWID is banned!");
             User.disconnect();
         }
         else
         {
             User.send(new PACKET_LOGIN());
         }
     }
     catch (Exception ex) { Log.AppendError(ex.Message); }
 }
Esempio n. 5
0
        public override void Handle(virtualUser User)
        {
            try
            {
                bool   Equip      = (getNextBlock() == "0" ? true : false);
                bool   is6thSlot  = (getBlock(0) == "3" ? true : false);
                int    Class      = Convert.ToInt32(getNextBlock());
                string ItemID     = getBlock(4);
                int    TargetSlot = Convert.ToInt32(getBlock(5));
                int    Equip6th   = Convert.ToInt32(getBlock(0));

                bool DefaultWeapon = isDefaultWeapon(ItemID, Class, TargetSlot);

                string InventoryCode = User.getInventoryID(ItemID);

                if (is6thSlot)
                {
                    if (TargetSlot == 5 && ItemID.Contains("-"))
                    {
                        string[] CodeInfo = ItemID.Split(Convert.ToChar("-"));

                        if (User.hasItem(CodeInfo[0]) == false || User.hasItem(CodeInfo[1]) == false)
                        {
                            return;
                        }

                        string[] CodeInfoIDs = new string[2];
                        CodeInfoIDs[0] = User.getInventoryID(CodeInfo[0]);
                        CodeInfoIDs[1] = User.getInventoryID(CodeInfo[1]);

                        InventoryCode = string.Join("-", CodeInfoIDs);
                    }
                    else
                    {
                        if (ItemID.Contains("-"))
                        {
                            string[] CodeInfo = User.Equipment[Class, 5].Split(Convert.ToChar("-"));

                            if (CodeInfo[0] == InventoryCode)
                            {
                                InventoryCode = CodeInfo[1];
                            }
                            else if (CodeInfo[1] == InventoryCode)
                            {
                                InventoryCode = CodeInfo[0];
                            }
                        }
                    }

                    User.Equipment[Class, 5] = InventoryCode;

                    User.LoadRetails();

                    StringBuilder Items = new StringBuilder();
                    for (int I = 0; I < 8; I++)
                    {
                        Items.Append(User.Equipment[Class, I] + ",");
                    }
                    string EquipStr = Items.ToString().Remove(Items.ToString().Length - 1);

                    User.send(new PACKET_EQUIPMENT(Class, EquipStr));
                    DB.runQuery("UPDATE equipment SET class" + Class + "='" + EquipStr + "' WHERE ownerID=" + User.UserID.ToString());
                }
                else if (Equip)
                {
                    if (User.hasItem(ItemID) == false && DefaultWeapon == false)
                    {
                        return;
                    }

                    if (DefaultWeapon)
                    {
                        InventoryCode = ItemID;
                    }

                    bool hasItemEquipped = false;

                    for (int J = 0; J < 8; J++)
                    {
                        if (User.Equipment[Class, J] == InventoryCode)
                        {
                            hasItemEquipped = true;
                        }
                    }

                    //Check for the 5th slot

                    if (TargetSlot == 4)
                    {
                        string[] SplitSlots = User.getSlots().Split(Convert.ToChar(","));
                        if (SplitSlots[0] != "T")
                        {
                            User.disconnect();
                        }
                    }

                    if (hasItemEquipped == false)
                    {
                        User.Equipment[Class, TargetSlot] = InventoryCode;

                        User.LoadRetails();

                        StringBuilder Items = new StringBuilder();
                        for (int I = 0; I < 8; I++)
                        {
                            Items.Append(User.Equipment[Class, I] + ",");
                        }
                        string EquipStr = Items.ToString().Remove(Items.ToString().Length - 1);

                        User.send(new PACKET_EQUIPMENT(Class, EquipStr));
                        DB.runQuery("UPDATE equipment SET class" + Class + "='" + EquipStr + "' WHERE ownerID=" + User.UserID.ToString());
                    }
                    else
                    {
                        User.send(new PACKET_EQUIPMENT(PACKET_EQUIPMENT.ErrorCode.AlreadyEquipped));
                    }
                }
                else
                {
                    int _TargetSlot = Convert.ToInt32(getBlock(3));
                    if (User.Equipment[Class, _TargetSlot] == InventoryCode || _TargetSlot == 5)
                    {
                        if (User.Equipment[Class, _TargetSlot] != "^")
                        {
                            User.Equipment[Class, _TargetSlot] = "^";

                            User.LoadRetails();

                            StringBuilder Items = new StringBuilder();
                            for (int I = 0; I < 8; I++)
                            {
                                Items.Append(User.Equipment[Class, I] + ",");
                            }
                            string EquipStr = Items.ToString().Remove(Items.ToString().Length - 1);

                            User.send(new PACKET_EQUIPMENT(Class, EquipStr));
                            DB.runQuery("UPDATE equipment SET class" + Class + "='" + EquipStr + "' WHERE ownerID=" + User.UserID.ToString());
                        }
                    }
                    else
                    {
                        //User.disconnect();
                    }
                }
            }
            catch (Exception ex) { /*Log.AppendError(ex.Message);*/ }
        }