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); }
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); }
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; } } }
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; } } }