public void CMD_CreateHouse(Client player, int type, int price)
        {
            if (type < 0 || type >= HouseTypes.HouseTypeList.Count)
            {
                player.sendChatMessage("~r~ERROR: ~w~Invalid type ID.");
                return;
            }

            House new_house = new House(Main.GetGuid(), string.Empty, type, player.position, price, false);

            new_house.Dimension = Main.DimensionID;
            new_house.Save();

            Main.Houses.Add(new_house);
        }
        public void CMD_CreateHouse(Client player, int type, int price)
        {
            if (API.getPlayerAclGroup(player) != "Admin")
            {
                player.sendChatMessage("~r~ERROR: ~w~Only admins can use this command.");
                return;
            }

            if (type < 0 || type >= HouseTypes.HouseTypeList.Count)
            {
                player.sendChatMessage("~r~ERROR: ~w~Invalid type ID.");
                return;
            }

            House new_house = new House(Main.GetGuid(), string.Empty, type, player.position, price, false);

            new_house.Dimension = Main.DimensionID;
            new_house.Save();

            Main.Houses.Add(new_house);
        }
Beispiel #3
0
        public void CMD_CreateHouse(Client player, int type, int price)
        {
            int RightsLevel = PlayerFunctions.Player.GetRightsLevel(player);

            if (RightsLevel < 9)
            {
                player.sendChatMessage("~r~ERROR: ~w~Эта команда вам недоступна.");
                return;
            }

            if (type < 0 || type >= HouseTypes.HouseTypeList.Count)
            {
                player.sendChatMessage("~r~ERROR: ~w~Неверный ID класса дома.");
                return;
            }

            House new_house = new House(Main.GetGuid(), string.Empty, type, player.position, price, false);

            new_house.Dimension = Main.DimensionID++;
            new_house.Save();

            Main.Houses.Add(new_house);
        }
Beispiel #4
0
        public void HouseWeapons_EventTrigger(Client player, string event_name, params object[] args)
        {
            switch (event_name)
            {
            case "HousePutGun":
            {
                if (!player.hasData("InsideHouse_ID"))
                {
                    return;
                }

                House house = Main.Houses.FirstOrDefault(h => h.ID == player.getData("InsideHouse_ID"));
                if (house == null)
                {
                    return;
                }

                if (house.Owner != player.name)
                {
                    player.sendNotification("Ошибка\n~r~Это может сделать только владелец дома.");
                    return;
                }

                WeaponHash weapon = player.currentWeapon;
                if (WeaponBlacklist.Contains(weapon))
                {
                    player.sendNotification("Ошибка\n~r~Вы не можете положить это оружие.");
                    return;
                }

                if (Main.HOUSE_WEAPON_LIMIT > 0 && house.Weapons.Count >= Main.HOUSE_WEAPON_LIMIT)
                {
                    player.sendNotification("Ошибка\n~r~Достигнут лимит оружия в оружейном шкафчике.");
                    return;
                }

                house.Weapons.Add(new HouseWeapon(weapon, player.getWeaponAmmo(weapon), player.getWeaponTint(weapon), player.GetAllWeaponComponents(weapon)));
                house.Save();

                player.sendNotification(string.Format("Успешно\n~g~Положен {0} с {1:n0} патронами.", weapon, player.getWeaponAmmo(weapon)));
                player.removeWeapon(weapon);

                player.triggerEvent("HouseUpdateWeapons", API.toJson(house.Weapons));
                break;
            }

            case "HouseTakeGun":
            {
                if (!player.hasData("InsideHouse_ID") || args.Length < 1)
                {
                    return;
                }

                House house = Main.Houses.FirstOrDefault(h => h.ID == player.getData("InsideHouse_ID"));
                if (house == null)
                {
                    return;
                }

                if (house.Owner != player.name)
                {
                    player.sendNotification("Ошибка/n~r~Это может сделать только владелец дома.");
                    return;
                }

                int idx = Convert.ToInt32(args[0]);
                if (idx < 0 || idx >= house.Weapons.Count)
                {
                    return;
                }

                HouseWeapon weapon = house.Weapons[idx];
                house.Weapons.RemoveAt(idx);
                house.Save();

                player.giveWeapon(weapon.Hash, weapon.Ammo, true, true);
                foreach (WeaponComponent comp in weapon.Components)
                {
                    player.setWeaponComponent(weapon.Hash, comp);
                }
                player.setWeaponTint(weapon.Hash, weapon.Tint);

                player.sendNotification(string.Format("Успешно\n~g~Взят {0} с {1:n0} патронами.", weapon.Hash, weapon.Ammo));

                player.triggerEvent("HouseUpdateWeapons", API.toJson(house.Weapons));
                break;
            }
            }
        }
        public void HouseFurnitures_ClientEvent(Client player, string event_name, params object[] args)
        {
            switch (event_name)
            {
            case "HouseFurnitureCatalogue":
            {
                if (!player.hasData("InsideHouse_ID"))
                {
                    return;
                }

                House house = Main.Houses.FirstOrDefault(h => h.ID == player.getData("InsideHouse_ID"));
                if (house == null)
                {
                    return;
                }

                if (house.Owner != player.socialClubName)
                {
                    player.sendNotification("Error", "~r~Only the owner can do this.");
                    return;
                }

                player.triggerEvent("HouseFurnitureCatalogue", API.toJson(FurnitureList));
                break;
            }

            case "HouseBuyFurniture":
            {
                if (!player.hasData("InsideHouse_ID") || args.Length < 1)
                {
                    return;
                }

                House house = Main.Houses.FirstOrDefault(h => h.ID == player.getData("InsideHouse_ID"));
                if (house == null)
                {
                    return;
                }

                if (house.Owner != player.socialClubName)
                {
                    player.sendNotification("Error", "~r~Only the owner can do this.");
                    return;
                }

                if (Main.HOUSE_FURNITURE_LIMIT > 0 && house.Furnitures.Count >= Main.HOUSE_FURNITURE_LIMIT)
                {
                    player.sendNotification("Error", "~r~House furniture limit reached.");
                    return;
                }

                int idx = Convert.ToInt32(args[0]);
                if (idx < 0 || idx >= FurnitureList.Count)
                {
                    return;
                }

                HouseFurniture new_furniture = new HouseFurniture(API.getHashKey(FurnitureList[idx].ModelName), player.position - new Vector3(0.0, 0.0, 0.5), new Vector3(), FurnitureList[idx].Name, FurnitureList[idx].Price);
                house.Furnitures.Add(new_furniture);
                new_furniture.Create(house.Dimension);
                house.Save();

                player.sendNotification("Success", string.Format("~g~Bought a {0} for ${1:n0}.", FurnitureList[idx].Name, FurnitureList[idx].Price));

                player.triggerEvent("HouseUpdateFurnitures", API.toJson(house.Furnitures));
                break;
            }

            case "HouseEditFurniture":
            {
                if (!player.hasData("InsideHouse_ID") || args.Length < 1)
                {
                    return;
                }

                House house = Main.Houses.FirstOrDefault(h => h.ID == player.getData("InsideHouse_ID"));
                if (house == null)
                {
                    return;
                }

                if (house.Owner != player.socialClubName)
                {
                    player.sendNotification("Error", "~r~Only the owner can do this.");
                    return;
                }

                int idx = Convert.ToInt32(args[0]);
                if (idx < 0 || idx >= house.Furnitures.Count)
                {
                    return;
                }

                player.setData("EditingFurniture_ID", idx);
                player.triggerEvent("SetEditingHandle", house.Furnitures[idx].Object.handle);
                break;
            }

            case "HouseSaveFurniture":
            {
                if (!player.hasData("InsideHouse_ID") || !player.hasData("EditingFurniture_ID") || args.Length < 6)
                {
                    return;
                }

                House house = Main.Houses.FirstOrDefault(h => h.ID == player.getData("InsideHouse_ID"));
                if (house == null)
                {
                    return;
                }

                if (house.Owner != player.socialClubName)
                {
                    player.sendNotification("Error", "~r~Only the owner can do this.");
                    return;
                }

                int idx = player.getData("EditingFurniture_ID");
                if (idx < 0 || idx >= house.Furnitures.Count)
                {
                    return;
                }

                Vector3 new_pos = new Vector3(Convert.ToDouble(args[0]), Convert.ToDouble(args[1]), Convert.ToDouble(args[2]));
                Vector3 new_rot = new Vector3(Convert.ToDouble(args[3]), Convert.ToDouble(args[4]), Convert.ToDouble(args[5]));

                house.Furnitures[idx].Position = new_pos;
                house.Furnitures[idx].Rotation = new_rot;

                house.Furnitures[idx].Object.position = new_pos;
                house.Furnitures[idx].Object.rotation = new_rot;
                house.Save();

                player.sendNotification("Success", string.Format("~g~Edited {0}.", house.Furnitures[idx].Name));
                player.resetData("EditingFurniture_ID");
                break;
            }

            case "HouseResetFurniture":
            {
                if (!player.hasData("InsideHouse_ID") || !player.hasData("EditingFurniture_ID"))
                {
                    return;
                }

                House house = Main.Houses.FirstOrDefault(h => h.ID == player.getData("InsideHouse_ID"));
                if (house == null)
                {
                    return;
                }

                if (house.Owner != player.socialClubName)
                {
                    player.sendNotification("Error", "~r~Only the owner can do this.");
                    return;
                }

                int idx = player.getData("EditingFurniture_ID");
                if (idx < 0 || idx >= house.Furnitures.Count)
                {
                    return;
                }

                player.triggerEvent("ResetEntityPosition", house.Furnitures[idx].Position, house.Furnitures[idx].Rotation);
                player.resetData("EditingFurniture_ID");
                break;
            }

            case "HouseSellFurniture":
            {
                if (!player.hasData("InsideHouse_ID") || args.Length < 1)
                {
                    return;
                }

                House house = Main.Houses.FirstOrDefault(h => h.ID == player.getData("InsideHouse_ID"));
                if (house == null)
                {
                    return;
                }

                if (house.Owner != player.socialClubName)
                {
                    player.sendNotification("Error", "~r~Only the owner can do this.");
                    return;
                }

                int idx = Convert.ToInt32(args[0]);
                if (idx < 0 || idx >= house.Furnitures.Count)
                {
                    return;
                }

                HouseFurniture furniture = house.Furnitures[idx];
                int            price     = (int)Math.Round(furniture.Price * 0.8);

                house.Furnitures[idx].Destroy();
                house.Furnitures.RemoveAt(idx);
                house.Save();

                player.sendNotification("Success", string.Format("~g~Sold a {0} for ${1:n0}.", furniture.Name, price));

                player.triggerEvent("HouseUpdateFurnitures", API.toJson(house.Furnitures));
                break;
            }
            }
        }
Beispiel #6
0
        public void HouseWeapons_EventTrigger(Client player, string event_name, params object[] args)
        {
            switch (event_name)
            {
            case "HousePutGun":
            {
                if (!player.hasData("InsideHouse_ID"))
                {
                    return;
                }

                House house = Main.Houses.FirstOrDefault(h => h.ID == player.getData("InsideHouse_ID"));
                if (house == null)
                {
                    return;
                }

                if (house.Owner != player.socialClubName)
                {
                    player.sendNotification("Error", "~r~Only the owner can do this.");
                    return;
                }

                WeaponHash weapon = player.currentWeapon;
                if (WeaponBlacklist.Contains(weapon))
                {
                    player.sendNotification("Error", "~r~You can't store this weapon.");
                    return;
                }

                if (Main.HOUSE_WEAPON_LIMIT > 0 && house.Weapons.Count >= Main.HOUSE_WEAPON_LIMIT)
                {
                    player.sendNotification("Error", "~r~House gun locker limit reached.");
                    return;
                }

                house.Weapons.Add(new HouseWeapon(weapon, player.getWeaponAmmo(weapon), player.getWeaponTint(weapon), player.GetAllWeaponComponents(weapon)));
                house.Save();

                player.sendNotification("Success", string.Format("~g~Stored a {0} with {1:n0} ammo.", weapon, player.getWeaponAmmo(weapon)));
                player.removeWeapon(weapon);

                player.triggerEvent("HouseUpdateWeapons", API.toJson(house.Weapons));
                break;
            }

            case "HouseTakeGun":
            {
                if (!player.hasData("InsideHouse_ID") || args.Length < 1)
                {
                    return;
                }

                House house = Main.Houses.FirstOrDefault(h => h.ID == player.getData("InsideHouse_ID"));
                if (house == null)
                {
                    return;
                }

                if (house.Owner != player.socialClubName)
                {
                    player.sendNotification("Error", "~r~Only the owner can do this.");
                    return;
                }

                int idx = Convert.ToInt32(args[0]);
                if (idx < 0 || idx >= house.Weapons.Count)
                {
                    return;
                }

                HouseWeapon weapon = house.Weapons[idx];
                house.Weapons.RemoveAt(idx);
                house.Save();

                player.giveWeapon(weapon.Hash, weapon.Ammo, true, false);
                foreach (WeaponComponent comp in weapon.Components)
                {
                    player.setWeaponComponent(weapon.Hash, comp);
                }
                player.setWeaponTint(weapon.Hash, weapon.Tint);

                player.sendNotification("Success", string.Format("~g~Took a {0} with {1:n0} ammo.", weapon.Hash, weapon.Ammo));

                player.triggerEvent("HouseUpdateWeapons", API.toJson(house.Weapons));
                break;
            }
            }
        }