public static void SpawnAll() { HouseMarkerColor hmc = new Models.HouseMarkerColor(); foreach (var item in GetAll().Items) { if (!item.IsInBuilding) { item.LabelOnMap = API.shared.createTextLabel(item.Name, item.EntrancePosition, 10, 1, false, item.EntranceDimension); item.MarkerOnMap = API.shared.createMarker(item.MarkerType, item.EntrancePosition, new Vector3(), item.EntranceRotation, new Vector3(1, 1, 1), 255, item.IsSelling ? hmc.SaleColor.Red : hmc.NormalColor.Red, item.IsSelling ? hmc.SaleColor.Green : hmc.NormalColor.Green, item.IsSelling ? hmc.SaleColor.Blue : hmc.NormalColor.Blue, item.EntranceDimension ); } CurrentHousesDict.Add(item.HouseId, item); // CurrentHousesDict.Add(item, // API.shared.createMarker(item.MarkerType, item.EntrancePosition, new Vector3(0, 0, 0), item.EntranceRotation, new Vector3(1, 1, 1), // 255, // item.IsSelling ? hmc.SaleColor.Red : hmc.NormalColor.Red, item.IsSelling ? hmc.SaleColor.Green : hmc.NormalColor.Green, item.IsSelling ? hmc.SaleColor.Blue : hmc.NormalColor.Blue, item.EntranceDimension // )); } }
public void HouseCommand(Client sender, string type) { if ("fiyat".StartsWith(type.ToLower())) { foreach (var item in db_Houses.CurrentHousesDict.Values) { if (Vector3.Distance(sender.position, item.EntrancePosition) < 2) { API.sendChatMessageToPlayer(sender, "~b~Evin fiyatı : " + item.Price); return; } } } if ("satinal".StartsWith(type.ToLower())) { #region SatinAlRegion foreach (var itemHouse in db_Houses.CurrentHousesDict.Values) { if (Vector3.Distance(sender.position, itemHouse.EntrancePosition) < 2) { if (itemHouse.IsSelling) { int money = API.getEntityData(sender, "Money"); if (itemHouse.Price <= money) { if (!String.IsNullOrEmpty(itemHouse.OwnerSocialClubName)) { var sellerPlayer = db_Accounts.IsPlayerOnline(itemHouse.OwnerSocialClubName); if (sellerPlayer != null) { int sellerBankMoney = API.getEntityData(sender, "BankMoney"); sellerBankMoney += (int)(itemHouse.Price * 0.98f); money -= (int)itemHouse.Price; API.setEntityData(sender, "Money", money); API.setEntityData(sellerPlayer, "BankMoney", sellerBankMoney); API.triggerClientEvent(sender, "update_money_display", money); API.sendNotificationToPlayer(sender, "~r~-" + itemHouse.Price + "$"); API.sendNotificationToPlayer(sellerPlayer, "Banka Hesabı:\n~g~+" + (int)(itemHouse.Price * 0.98f)); SetHouseOwner(itemHouse.HouseId, sender.socialClubName); itemHouse.IsLocked = true; itemHouse.IsSelling = false; db_Houses.UpdateHouse(itemHouse); API.sendChatMessageToPlayer(sellerPlayer, "~g~Tebrikler! ~s~Satışta olan eviniz başarıyla satıldı."); } else { var sellerOfflinePlayer = db_Accounts.GetOfflineUserDatas(itemHouse.OwnerSocialClubName); sellerOfflinePlayer.BankAccount += itemHouse.Price; db_Accounts.SaveOfflineUserData(sellerOfflinePlayer.socialClubName, sellerOfflinePlayer); HouseMarkerColor hmc = new Models.HouseMarkerColor(); var _house = db_Houses.GetHouse(itemHouse.HouseId); _house.MarkerOnMap.color = new Color(hmc.NormalColor.Red, hmc.NormalColor.Green, hmc.NormalColor.Blue, 255); _house.IsSelling = false; db_Houses.SaveChanges(); } // if (db_Accounts.IsPlayerOnline(itemHouse.OwnerSocialClubName)!=null) // { // } //var sellerUser = db_Accounts.GetOfflineUserDatas(itemHouse.OwnerSocialClubName); // sellerUser.Money += itemHouse.Price; // itemHouse.IsSelling = false; //API.sendChatMessageToPlayer(sender, "~y~İkinci el satış henüz yapılmadı."); return; } else { itemHouse.OwnerSocialClubName = sender.socialClubName; HouseMarkerColor hmc = new Models.HouseMarkerColor(); var _house = db_Houses.GetHouse(itemHouse.HouseId); _house.MarkerOnMap.color = new Color(hmc.NormalColor.Red, hmc.NormalColor.Green, hmc.NormalColor.Blue, 255); _house.IsSelling = false; db_Houses.SaveChanges(); money -= itemHouse.Price; API.triggerClientEvent(sender, "update_money_display", money); API.sendNotificationToPlayer(sender, "~g~Hayırlı olsun.\n~s~ Yeni bir ev satın aldınız. "); } } else { API.sendChatMessageToPlayer(sender, "~y~Bu evi almak için paranız en az " + itemHouse.Price + " olmalı."); } return; } else { API.sendNotificationToPlayer(sender, "~r~Maalesef bu ev satılık değil."); } } } #endregion } if ("kilit".StartsWith(type.ToLower())) { #region foreach foreach (var item in db_Houses.CurrentHousesDict.Values) { if (sender.dimension == item.EntranceDimension && Vector3.Distance(sender.position, item.EntrancePosition) < 2) { if (item.OwnerSocialClubName == sender.socialClubName) { RPGManager rpgMgr = new RPGManager(); rpgMgr.Me(sender, (item.IsLocked ? " cebinden anahtarlarını çıkarır ve kapının kilidini açar." : " kapıyı kilitler.")); item.IsLocked = !item.IsLocked; } else { API.sendChatMessageToPlayer(sender, "~y~Bu ev size ait değil."); } return; } if (sender.dimension == item.InteriorDimension && Vector3.Distance(sender.position, item.InteriorPosition) < 2) { if (item.OwnerSocialClubName == sender.socialClubName) { RPGManager rpgMgr = new RPGManager(); rpgMgr.Me(sender, (item.IsLocked ? " cebinden anahtarlarını çıkarır ve kapının kilidini açar." : " kapıyı kilitler.")); item.IsLocked = !item.IsLocked; } else { API.sendChatMessageToPlayer(sender, "~y~Bu ev size ait değil."); } return; } } #endregion } if (type.ToLower().StartsWith("satiligacikar")) { if (type.Split(' ').Count() <= 1) { API.sendChatMessageToPlayer(sender, "/ev satiligacikar ~y~[fiyat]."); return; } foreach (var item in db_Houses.CurrentHousesDict.Values) { if (sender.dimension == item.EntranceDimension && Vector3.Distance(sender.position, item.EntrancePosition) < 2) { if (item.OwnerSocialClubName == sender.socialClubName) { int price = Convert.ToInt32(type.Split(' ')[1]); item.IsSelling = true; item.Price = price; db_Houses.SaveChanges(); API.sendChatMessageToPlayer(sender, "~g~Eviniz " + price + "$ fiyatına satılığa çıkarıldı."); } else { API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Bu ev size ait değil!"); } return; } } } }
public static void OnBuildingBuySelected(Client sender, int buildingId, int index) { var _building = db_Buildings.GetBuilding(buildingId); var floor = _building.Floors[index]; switch (floor.Type) { case Models.FloorType.House: #region _house var _house = db_Houses.GetHouse(floor.TypedObjectId); if (_house.IsSelling) { #region CancelSelling if (_house.OwnerSocialClubName == sender.socialClubName) { _house.IsSelling = false; API.shared.sendChatMessageToPlayer(sender, "~g~Eviniz artık satılık değil!"); return; } #endregion #region satinal { int money = API.shared.getEntityData(sender, "Money"); if (_house.Price <= money) { if (!String.IsNullOrEmpty(_house.OwnerSocialClubName)) { var sellerPlayer = db_Accounts.IsPlayerOnline(_house.OwnerSocialClubName); if (sellerPlayer != null) { #region payment if (InventoryManager.IsEnoughMoney(sender, _house.Price)) { InventoryManager.AddMoneyToPlayer(sender, -1 * _house.Price); InventoryManager.AddMoneyToPlayerBank(sellerPlayer, (int)(_house.Price * 0.98)); } else if (InventoryManager.IsEnougMoneyInBank(sender, _house.Price)) { InventoryManager.AddMoneyToPlayerBank(sender, -1 * _house.Price); InventoryManager.AddMoneyToPlayerBank(sellerPlayer, (int)(_house.Price * 0.98)); } else { API.shared.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Üzerinizde veya benka hesabınızda bu kadar para bulunmuyor."); return; } #endregion _house.IsSelling = false; _house.OwnerSocialClubName = sender.socialClubName; API.shared.sendChatMessageToPlayer(sender, "~g~Tebrikler! ~s~Satışta olan eviniz başarıyla satıldı."); db_Houses.UpdateHouse(_house); } else { var sellerOfflinePlayer = db_Accounts.GetOfflineUserDatas(_house.OwnerSocialClubName); #region payment if (InventoryManager.IsEnoughMoney(sender, _house.Price)) { InventoryManager.AddMoneyToPlayer(sender, -1 * _house.Price); InventoryManager.AddMoneyToOfflinePlayerBank(sellerOfflinePlayer.socialClubName, (int)(_house.Price * 0.98f)); } else if (InventoryManager.IsEnougMoneyInBank(sender, _house.Price)) { InventoryManager.AddMoneyToPlayerBank(sender, -1 * _house.Price); InventoryManager.AddMoneyToOfflinePlayerBank(sellerOfflinePlayer.socialClubName, (int)(_house.Price * 0.98f)); } else { API.shared.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Üzerinizde veya benka hesabınızda bu kadar para bulunmuyor."); return; } #endregion _house.OwnerSocialClubName = sender.socialClubName; db_Accounts.SaveOfflineUserData(sellerOfflinePlayer.socialClubName, sellerOfflinePlayer); HouseMarkerColor hmc = new Models.HouseMarkerColor(); // var _house = db_Houses.GetHouse(_house.HouseId); // _house.MarkerOnMap.color = new Color(hmc.NormalColor.Red, hmc.NormalColor.Green, hmc.NormalColor.Blue, 255); _house.IsSelling = false; db_Houses.UpdateHouse(_house); } return; } else { _house.OwnerSocialClubName = sender.socialClubName; if (!_house.IsInBuilding) { HouseMarkerColor hmc = new Models.HouseMarkerColor(); _house.MarkerOnMap.color = new Color(hmc.NormalColor.Red, hmc.NormalColor.Green, hmc.NormalColor.Blue, 255); _house.IsSelling = false; } db_Houses.SaveChanges(); money -= _house.Price; _house.IsSelling = false; API.shared.triggerClientEvent(sender, "update_money_display", money); API.shared.sendNotificationToPlayer(sender, "~g~Hayırlı olsun.\n~s~ Yeni bir ev satın aldınız. "); } db_Houses.UpdateHouse(_house); } else { API.shared.sendChatMessageToPlayer(sender, "~y~Bu evi almak için paranız en az " + _house.Price + " olmalı."); } return; } #endregion } #endregion break; case Models.FloorType.Business: break; case Models.FloorType.Warehouse: break; default: break; } }