public static void OnCraftingElementSelected(Client sender, int craftingModelID, int index) { if (!InventoryManager.DoesInventoryHasSpace(sender)) { API.shared.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Envanterinizde yeterli alan yok."); return; } try { var _tableModel = db_Craftings.GetCraftingTableModel(craftingModelID); var crafting = _tableModel.Craftings[index]; API.shared.consoleOutput(crafting.ToString() + " " + db_Items.GetItemById(crafting.CraftedGameItemId).Name); if (crafting.RequiredMetalPart > InventoryManager.GetPlayerMetalParts(sender)) { API.shared.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Bu üretim için yeterli metal parçanız bulunmuyor."); return; } foreach (var item in crafting.RequredItemIds) { API.shared.consoleOutput(InventoryManager.DoesPlayerHasItemById(sender, item).ToString()); if (!InventoryManager.DoesPlayerHasItemById(sender, item)) { API.shared.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Bu eşyayı üretmek için üzerinizde yeterli eşya bulunmuyor."); return; } } if (InventoryManager.AddItemToPlayerInventory(sender, new Models.ClientItem { Count = 1, Equipped = false, ItemId = crafting.CraftedGameItemId })) { foreach (var item in crafting.RequredItemIds) { InventoryManager.RemoveItemFromPlayerInventory(sender, item); } InventoryManager.AddMetalPartsToPlayer(sender, -1 * crafting.RequiredMetalPart); API.shared.sendChatMessageToPlayer(sender, "~g~BAŞARILI: ~s~Üretimi başarıyla tamamladınız."); JobManager.PlayerJobComplete(sender, crafting.RequiredJob); return; } API.shared.sendChatMessageToPlayer(sender, "~r~HATA: ~e~Envanterinizde bu eşya için yetrli yer yok."); } catch (Exception ex) { if (ex.GetType() == typeof(ArgumentOutOfRangeException) || ex.GetType() == typeof(IndexOutOfRangeException)) { API.shared.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Index hatası. ~y~/rapor ~s~ile bildiriniz."); } else { API.shared.consoleOutput(LogCat.Fatal, ex.ToString()); } } }
public void RepairVehicleOnJob(Client sender, string type) { if ("basla".StartsWith(type.ToLower())) { #region Basla if (API.getEntityData(sender, "JobId") != 3) { API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Doğru meslekte değilsiniz."); return; } if (API.hasEntityData(sender, JOB_ON)) { API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Zaten mesleğe başlamışsınız."); } var _vehicle = db_Vehicles.FindNearestVehicle(sender.position); if (_vehicle == null) { return; } if (Vector3.Distance(sender.position, _vehicle.VehicleOnMap.position) < 2) { if (_vehicle.JobId == 3) { API.setEntityData(sender, JOB_ON, -1); var loadingPoint = Jobs.db_Jobs.currentJobsList.FirstOrDefault(x => x.Item1.JobId == 3).Item1.TakingPosition; API.setEntityData(sender.vehicle, "JOB_VEHICLE_OWNERID", API.getEntityData(sender, "ID")); API.triggerClientEvent(sender, "create_marker", loadingPoint.X, loadingPoint.Y, loadingPoint.Z - 1); API.sendChatMessageToPlayer(sender, "~y~Yük alma noktasına gidip ~s~((/kamyon yukal)) ~y~komutunu kullanabilirsiniz."); } else { API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Meslek kamyonunda olmalısınız."); } return; } #endregion } else if ("yukal".StartsWith(type.ToLower())) { #region yukal if (API.getEntityData(sender, "JobId") != 3) { API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Doğru meslekte değilsiniz."); return; } if (API.hasEntityData(sender, JOB_ON) && API.getEntityData(sender, JOB_ON) != -1) { API.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Zaten mesleğe başlamışsınız."); return; } var _vehicle = db_Vehicles.FindNearestVehicle(sender.position); if (_vehicle == null) { return; } if (Vector3.Distance(sender.position, _vehicle.VehicleOnMap.position) < 2) { if (_vehicle.JobId == 3) { if (Vector3.Distance(sender.position, db_Jobs.currentJobsList.FirstOrDefault(x => x.Item1.JobId == 3).Item1.TakingPosition) < 3) { API.setEntityData(sender.vehicle, JOB_VEHICLE, API.getEntityData(sender, "ID")); List <string> names = new List <string>(); List <string> descriptions = new List <string>(); foreach (var item in db_KamyonJob.CurrentDeliveryPoints.Item1) { names.Add("(" + item.ID + ")" + item.Name + " | " + item.CompletedValue + (item.Type == Models.DeliveryType.Money ? "$" : "Metal")); descriptions.Add("Uzaklık: " + Vector3.Distance(sender.position, item.DeliveryPoint)); } API.triggerClientEvent(sender, "open_kamyon_selector", names.Count, names.ToArray(), descriptions.ToArray()); return; } else { API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Yük alma noktasında değilsiniz."); } } else { API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Meslek kamyonunda olmalısınız."); } return; } #endregion } else if ("bitir".StartsWith(type.ToLower())) { #region bitir if (API.hasEntityData(sender, JOB_ON)) { if (API.getEntityData(sender, JOB_ON) != 0) { API.triggerClientEvent(sender, "remove_marker"); API.resetEntityData(sender, JOB_ON); } else { if (Vector3.Distance(sender.position, db_Jobs.currentJobsList.FirstOrDefault(x => x.Item1.JobId == 3).Item1.TakingPosition) < 6) { var _vehicle = db_Vehicles.FindNearestVehicle(sender.position); if (_vehicle == null) { return; } if (Vector3.Distance(sender.position, _vehicle.VehicleOnMap.position) < 2) { if (API.getEntityData(_vehicle.VehicleOnMap, JOB_VEHICLE) == API.getEntityData(sender, "ID")) { API.triggerClientEvent(sender, "remove_marker"); if (API.hasEntityData(sender, JOB_MONEY)) { API.resetEntityData(sender, JOB_ON); JobManager.PlayerJobComplete(sender, 3); int savedMoney = (API.hasEntityData(sender, JOB_MONEY) ? API.getEntityData(sender, JOB_MONEY) : 0); InventoryManager.AddMoneyToPlayer(sender, savedMoney); API.resetEntityData(sender, JOB_MONEY); API.sendNotificationToPlayer(sender, "~g~$" + savedMoney + " ~s~kazandınız."); } if (API.hasEntityData(sender, JOB_METALPART)) { API.resetEntityData(sender, JOB_ON); int savedMetalPart = API.getEntityData(sender, JOB_METALPART); JobManager.PlayerJobComplete(sender, 3); InventoryManager.AddMetalPartsToPlayer(sender, savedMetalPart); API.resetEntityData(sender, JOB_METALPART); API.sendNotificationToPlayer(sender, "~y~$" + savedMetalPart + " ~s~ adet metal parça kazandınız."); } db_Vehicles.Respawn(_vehicle.VehicleId); // API.sendChatMessageToPlayer(sender, "~y~Paranizi almak için ~s~(( /kamyon paramial ))"); } else { API.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Bu mesleğe başladığınız araç değil!"); } } } else { if (type.ToLower().Split(' ').LastOrDefault() == "onayla") { API.triggerClientEvent(sender, "remove_marker"); API.resetEntityData(sender, JOB_ON); API.resetEntityData(sender, JOB_MONEY); } else { API.sendChatMessageToPlayer(sender, "~r~UYARI: ~s~Mesleğinizi teslim etmeden bitirseniz paranızı alamayacaksınız.\nYine de bitirmek için (( ~y~/kamyon bitir [onayla]~s~))\n ~y~Yükü aldığınız oktaya geldiğinizde ~s~/kamyoncu bitir ~y~komutunu kullanabilirsiniz."); } } } } else { API.sendChatMessageToPlayer(sender, "~r~Zaten mesleğe başlamamışsınız."); } #endregion } else if ("paramial".StartsWith(type.ToLower())) { #region paramial if ((API.hasEntityData(sender, JOB_MONEY) || API.hasEntityData(sender, JOB_METALPART)) && !API.hasEntityData(sender, JOB_ON)) { foreach (var item in db_Jobs.currentJobsList) { if (item.Item1.JobId == 3 && item.Item1.Dimension == sender.dimension && Vector3.Distance(sender.position, item.Item1.Position) < item.Item1.Range) { if (API.hasEntityData(sender, JOB_MONEY)) { API.shared.consoleOutput("SAVED MONEY: " + API.getEntityData(sender, JOB_MONEY)); int savedMoney = (API.hasEntityData(sender, JOB_MONEY) ? API.getEntityData(sender, JOB_MONEY) : 0); int playerMoney = API.getEntityData(sender, "Money"); playerMoney += savedMoney; API.setEntityData(sender, "Money", playerMoney); API.resetEntityData(sender, JOB_MONEY); API.triggerClientEvent(sender, "update_money_display", playerMoney); API.sendNotificationToPlayer(sender, "~g~$" + savedMoney + " ~s~kazandınız."); return; } if (API.hasEntityData(sender, JOB_METALPART)) { int savedMetalPart = API.getEntityData(sender, JOB_METALPART); var _inventory = (Inventory)API.getEntityData(sender, "inventory"); _inventory.MetalParts += savedMetalPart; API.setEntityData(sender, "inventory", _inventory); API.resetEntityData(sender, JOB_METALPART); API.sendNotificationToPlayer(sender, "~y~$" + savedMetalPart + " ~s~ adet metal parça kazandınız."); return; } } } } else { API.sendNotificationToPlayer(sender, "~y~Önce mesainizi bitirmelisiniz."); return; } API.sendChatMessageToPlayer(sender, "~y~Önce işi aldığınız yere gitmelisiniz."); #endregion } }
public void AcceptSellTrade(Client sender) { if (API.shared.hasEntityData(sender, SELL_KEY)) { TradeSellModel _trade = (TradeSellModel)API.shared.getEntityData(sender, SELL_KEY); if (!InventoryManager.IsEnoughMoney(sender, _trade.OfferedPrice)) { API.shared.sendChatMessageToPlayer(sender, $"~r~UYARI: ~s~Bu alışveriş için en az ~r~{_trade.OfferedPrice}$ ~s~paranız olmalı."); API.shared.resetEntityData(sender, SELL_KEY); return; } switch (_trade.Type) { case SellType.vehicle: #region vehicle var sellerPlayer = db_Accounts.IsPlayerOnline(_trade.SellerSocialClubID); if (sellerPlayer != null) { if (VehicleManager.SetVehicleOwner(_trade.SellingObjId, sender.socialClubName)) { InventoryManager.AddMoneyToPlayer(sellerPlayer, _trade.OfferedPrice); InventoryManager.AddMoneyToPlayer(sender, -1 * _trade.OfferedPrice); API.shared.sendChatMessageToPlayer(sellerPlayer, "~y~Alışveriş başarılı bir şekilde gerçekleşti."); API.shared.sendChatMessageToPlayer(sender, "~y~Alışveriş başarılı bir şekilde gerçekleşti. ~s~((/araclarim)) ~y~yazarak yeni aracınızı görebilirsiniz."); } else { API.shared.sendChatMessageToPlayer(sender, "~y~Satılacak araç bulunamadı!"); API.shared.sendChatMessageToPlayer(sellerPlayer, "~y~Satılacak araç bulunamadı!"); } } else { API.shared.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Satışı yapan oyuncu oyunda değil."); API.shared.resetEntityData(sender, SELL_KEY); } #endregion break; case SellType.house: #region house var hSellerPlayer = db_Accounts.IsPlayerOnline(_trade.SellerSocialClubID); if (hSellerPlayer != null) { if (HouseManager.SetHouseOwner(_trade.SellingObjId, _trade.BuyerSocialClubID)) { InventoryManager.AddMoneyToPlayer(hSellerPlayer, _trade.OfferedPrice); InventoryManager.AddMoneyToPlayer(sender, -1 * _trade.OfferedPrice); API.shared.sendChatMessageToPlayer(hSellerPlayer, "~y~Alışveriş başarılı bir şekilde gerçekleşti."); API.shared.sendChatMessageToPlayer(sender, "~y~Alışveriş başarılı bir şekilde gerçekleşti."); } else { API.shared.sendChatMessageToPlayer(sender, "~y~Satılacak ev bulunamadı!"); API.shared.sendChatMessageToPlayer(hSellerPlayer, "~y~Satılacak ev bulunamadı!"); } } else { API.shared.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Satışı yapan oyuncu oyunda değil."); API.shared.resetEntityData(sender, SELL_KEY); } #endregion break; case SellType.metalparts: #region metalpart var mSellerPlayer = db_Accounts.IsPlayerOnline(_trade.SellerSocialClubID); if (mSellerPlayer != null) { InventoryManager.AddMetalPartsToPlayer(sender, _trade.SellingObjId); InventoryManager.AddMetalPartsToPlayer(mSellerPlayer, -1 * _trade.SellingObjId); InventoryManager.AddMoneyToPlayer(sender, -1 * _trade.OfferedPrice); InventoryManager.AddMoneyToPlayer(mSellerPlayer, _trade.OfferedPrice); API.shared.sendChatMessageToPlayer(mSellerPlayer, "~y~Alışveriş başarılı bir şekilde gerçekleşti."); API.shared.sendChatMessageToPlayer(sender, "~y~Alışveriş başarılı bir şekilde gerçekleşti."); } else { API.shared.sendChatMessageToPlayer(sender, "~r~HATA: ~s~Satışı yapan oyuncu oyunda değil."); API.shared.resetEntityData(sender, SELL_KEY); } #endregion break; default: break; } } }