/// <summary> /// Общие действия начала работы водителем /// </summary> private void StartWork(Client player) { WorkInfoManager.CreateInfoIfNeed(player, WorkType.BusDriver); WorkInfoManager.SetActivity(player, WorkType.BusDriver, true); player.setData(WorkData.IS_BUS_DRIVER, true); API.triggerClientEvent(player, ServerEvent.HIDE_ONEIL_MENU); }
/// <summary> /// Обработчик начала работы /// </summary> private void StartWork(Client player, object[] args) { var onBoat = (bool)args[0]; WorkInfoManager.CreateInfoIfNeed(player, WorkType.Fisherman); if (!CanWork(player, MIN_LEVEL, false) || HasActiveWork(player)) { return; } var work = WorkInfoManager.GetWorkInfo(player, WorkType.Fisherman); if (onBoat && work.Level < 3) { API.sendNotificationToPlayer(player, "~r~Необходимый уровень работы 3 и выше", true); return; } WorkInfoManager.SetActivity(player, WorkType.Fisherman, true); player.setSyncedData(onBoat ? WorkData.IS_FISHERMAN_ON_BOAT : WorkData.IS_FISHERMAN, true); if (!player.hasData(FishermanManager.FISH_BAITS_COUNT)) { player.setData(FishermanManager.FISH_BAITS_COUNT, 0); } player.setData(FishermanManager.POINT_BAITS_COUNT, 0); FishermanManager.ShowNextPoint(player); _workEquipmentManager.SetEquipment(player); API.sendNotificationToPlayer(player, "Вы начали работу ~b~рыбаком"); API.triggerClientEvent(player, ServerEvent.HIDE_FISHERMAN_MENU); }
/// <summary> /// Начать работу в такси /// </summary> private void WorkInTaxi(Client player, object[] objects) { WorkInfoManager.CreateInfoIfNeed(player, WorkType.TaxiDriver); if (HasActiveWork(player) || !CanWork(player, MIN_LEVEL)) { return; } WorkInfoManager.SetActivity(player, WorkType.TaxiDriver, true); player.setData(WorkData.IS_TAXI_DIVER, true); _workEquipmentManager.SetEquipment(player); API.triggerClientEvent(player, ServerEvent.SHOW_SUBTITLE, "Чтобы начать работу, ~y~сядьте в машину"); API.triggerClientEvent(player, ServerEvent.HIDE_SIEMON_MENU); }
/// <summary> /// Начать работу фермером /// </summary> private void StartFarmerWork(Client player, object[] args) { WorkInfoManager.CreateInfoIfNeed(player, WorkType.Farmer); if (HasActiveWork(player)) { return; } WorkInfoManager.SetActivity(player, WorkType.Farmer, true); player.setData(WorkData.IS_FARMER, true); FarmerManager.ShowNextPoint(player); _workEquipmentManager.SetEquipment(player); API.sendNotificationToPlayer(player, "Вы начали работу ~b~фермером"); API.triggerClientEvent(player, ServerEvent.HIDE_FARM_MENU); }
/// <summary> /// Начать работу на погрузчике /// </summary> private void StartWork(Client player, object[] args) { WorkInfoManager.CreateInfoIfNeed(player, WorkType.Forklift); if (!CanWork(player, MIN_LEVEL) || HasActiveWork(player)) { return; } WorkInfoManager.SetActivity(player, WorkType.Forklift, true); API.sendNotificationToPlayer(player, "Вы начали работу ~b~водителем погрузчика"); player.setData(WorkData.IS_FORKLIFT, true); ShowForkliftPoints(player); _workEquipmentManager.SetEquipment(player); API.triggerClientEvent(player, ServerEvent.HIDE_FORKLIFT_MENU); }
/// <summary> /// Начать работу трактористом /// </summary> private void StartTractorWork(Client player, object[] args) { WorkInfoManager.CreateInfoIfNeed(player, WorkType.TractorDriver); if (!CanWork(player, TRACTOR_MIN_LEVEL) || HasActiveWork(player)) { return; } WorkInfoManager.SetActivity(player, WorkType.TractorDriver, true); player.setData(WorkData.IS_TRACTOR_DRIVER, true); _workEquipmentManager.SetEquipment(player); API.sendNotificationToPlayer(player, "Вы начали работу ~b~трактористом"); API.triggerClientEvent(player, ServerEvent.SHOW_SUBTITLE, "Найдите ~y~трактор ~w~поблизости"); API.triggerClientEvent(player, ServerEvent.HIDE_FARM_MENU); }
/// <summary> /// Доставщик еды /// </summary> private void FoodDeliveryman(Client player, object[] args) { WorkInfoManager.CreateInfoIfNeed(player, WorkType.FoodDeliveryMan); if (!CanWork(player, MIN_LEVEL) || HasActiveWork(player)) { return; } WorkInfoManager.SetActivity(player, WorkType.FoodDeliveryMan, true); player.setData(WorkData.IS_FOOD_DELIVERYMAN, true); _workEquipmentManager.SetEquipment(player); API.sendNotificationToPlayer(player, "Вы начали работу ~b~доставщиком еды"); API.triggerClientEvent(player, ServerEvent.SHOW_SUBTITLE, "Садитесь на ~y~скутер ~w~и двигайтесь по точкам заказов"); API.triggerClientEvent(player, ServerEvent.HIDE_BISTRO_MENU); }
/// <summary> /// Начать работу грузчиком /// </summary> protected void StartWork(Client player, object[] args) { WorkInfoManager.CreateInfoIfNeed(player, WorkType.Loader); if (HasActiveWork(player)) { return; } WorkInfoManager.SetActivity(player, WorkType.Loader, true); player.setData(WorkData.IS_LOADER, true); ShowLoaderPoints(player); _workEquipmentManager.SetEquipment(player); API.sendNotificationToPlayer(player, "Вы начали работу ~b~грузчиком"); API.triggerClientEvent(player, ServerEvent.HIDE_LOADER_MENU); }
/// <summary> /// Получить зарплату /// </summary> private void GetSalary(Client player, object[] args) { var activeWork = WorkInfoManager.GetActiveWork(player); if (!WorkIsCorrect(player, activeWork, () => activeWork.Type == WorkType.Wrecker)) { return; } WorkInfoManager.SetActivity(player, WorkType.Wrecker, false); player.resetData(WorkData.IS_WRECKER); PayOut(player, activeWork); PlayerInfoManager.SetPlayerClothes(player); API.triggerClientEvent(player, ServerEvent.HIDE_PARKING_FINE_MENU); }
/// <summary> /// Работать эвакуаторщиком /// </summary> private void WorkAsWrecker(Client player, object[] args) { WorkInfoManager.CreateInfoIfNeed(player, WorkType.Wrecker); if (!CanWork(player, MIN_LEVEL) || HasActiveWork(player)) { return; } player.setData(WorkData.IS_WRECKER, true); WorkInfoManager.SetActivity(player, WorkType.Wrecker, true); _workEquipmentManager.SetEquipment(player); API.sendNotificationToPlayer(player, "Вы устроились ~b~водителем эвакуатора"); API.triggerClientEvent(player, ServerEvent.SHOW_SUBTITLE, "Чтобы начать работу, садитесь в ~y~эвакуатор"); API.triggerClientEvent(player, ServerEvent.HIDE_PARKING_FINE_MENU); }
/// <summary> /// Завершить работу и получить зарплату /// </summary> private void GetSalary(Client player, object[] objects) { var activeWork = WorkInfoManager.GetActiveWork(player); if (!WorkIsCorrect(player, activeWork, () => activeWork.Type == WorkType.TaxiDriver)) { return; } WorkInfoManager.SetActivity(player, WorkType.TaxiDriver, false); player.setData(WorkData.IS_TAXI_DIVER, null); PlayerInfoManager.SetPlayerClothes(player); PayOut(player, activeWork); API.triggerClientEvent(player, ServerEvent.HIDE_SIEMON_MENU); }
/// <summary> /// Обработчик начала работы /// </summary> private void StartWork(Client player, object[] args) { WorkInfoManager.CreateInfoIfNeed(player, WorkType.Builder); if (!CanWork(player, MIN_LEVEL, false) || HasActiveWork(player)) { return; } WorkInfoManager.SetActivity(player, WorkType.Builder, true); player.setSyncedData(WorkData.IS_BUILDER, true); BuilderManager.ShowNextPoint(player); _workEquipmentManager.SetEquipment(player); API.sendNotificationToPlayer(player, "Вы начали работу ~b~строителем"); API.triggerClientEvent(player, ServerEvent.HIDE_BUILDER_MENU); }
/// <summary> /// Водитель фургона с едой /// </summary> private void FoodTrunkDriver(Client player, object[] args) { WorkInfoManager.CreateInfoIfNeed(player, WorkType.FoodTrunk); var truckRentCost = (int)args[0]; if (!CanWork(player, MIN_LEVEL) || HasActiveWork(player) || !PayTrunkRent(player, truckRentCost)) { return; } WorkInfoManager.SetActivity(player, WorkType.FoodTrunk, true); player.setData(WorkData.IS_FOOD_TRUCK_DRIVER, true); _workEquipmentManager.SetEquipment(player); API.sendNotificationToPlayer(player, "Вы начали работу ~b~водителем фургона с едой"); API.triggerClientEvent(player, ServerEvent.HIDE_BISTRO_MENU); }
/// <summary> /// Получение зарплаты дальнобойщика /// </summary> private void TruckerSalary(Client player, object[] args) { var activeWork = WorkInfoManager.GetActiveWork(player); if (!WorkIsCorrect(player, activeWork, () => activeWork.Type == WorkType.Trucker)) { return; } WorkInfoManager.SetActivity(player, WorkType.Trucker, false); player.resetSyncedData(WorkData.IS_TRUCKER); player.resetData(WorkData.DELIVERY_CONTRACT); PayOut(player, activeWork); PlayerInfoManager.SetPlayerClothes(player); API.triggerClientEvent(player, ServerEvent.HIDE_TRUCKERS_MENU); }
/// <summary> /// Получить зарплату /// </summary> private void GetSalary(Client player, object[] objects) { var activeWork = WorkInfoManager.GetActiveWork(player); if (!WorkIsCorrect(player, activeWork, () => activeWork.Type == WorkType.BusDriver)) { return; } WorkInfoManager.SetActivity(player, WorkType.BusDriver, false); DecreaseRouteDriversCount(player); player.resetData(WorkData.IS_BUS_DRIVER); player.resetData(BusDriverManager.SHAPE_KEY); player.resetData(BusDriverManager.ROUTE_KEY); PlayerInfoManager.SetPlayerClothes(player); PayOut(player, activeWork); API.triggerClientEvent(player, ServerEvent.HIDE_ONEIL_MENU); }
/// <summary> /// Получить зарплату /// </summary> private void GetSalary(Client player, object[] args) { var activeWork = WorkInfoManager.GetActiveWork(player); if (!WorkIsCorrect(player, activeWork, () => activeWork.Type == WorkType.Police)) { return; } WorkInfoManager.SetActivity(player, WorkType.Police, false); player.resetData(WorkData.IS_POLICEMAN); player.resetSyncedData("HasPoliceActions"); PayOut(player, activeWork); PlayerInfoManager.SetPlayerClothes(player); PlayerManager.SetPlayerName(player, PlayerInfoManager.GetInfo(player)); _inventoryManager.EquipWeapon(player); _policeAlertManager.HideAllAlerts(player); API.triggerClientEvent(player, ServerEvent.HIDE_SARAH_MENU); }
/// <summary> /// Получение зарплаты /// </summary> private void GetSalary(Client player, object[] args) { var activeWork = WorkInfoManager.GetActiveWork(player); bool TypeChecker() => activeWork.Type == WorkType.Builder; if (!WorkIsCorrect(player, activeWork, TypeChecker)) { return; } WorkInfoManager.SetActivity(player, activeWork.Type, false); player.resetData(BuilderManager.BUILDER_POINT_KEY); player.resetSyncedData(WorkData.IS_BUILDER); PlayerInfoManager.SetPlayerClothes(player); PayOut(player, activeWork); API.triggerClientEvent(player, ServerEvent.HIDE_BUILDER_POINT); API.triggerClientEvent(player, ServerEvent.HIDE_BUILDER_MENU); }
/// <summary> /// Выбор контракта на доставку груза /// </summary> private void ChooseContract(Client player, object[] args) { WorkInfoManager.CreateInfoIfNeed(player, WorkType.Trucker); if (!CanWork(player, MIN_LEVEL) || HasContract(player) || HasActiveWork(player, new List <WorkType> { WorkType.Trucker })) { return; } var contract = JsonConvert.DeserializeObject <DeliveryContract>(args[0].ToString()); player.setSyncedData(WorkData.IS_TRUCKER, true); player.setData(WorkData.DELIVERY_CONTRACT, contract); player.setData(TruckersManager.TRUCKER_CONTRACT_TYPE, contract.Type); WorkInfoManager.SetActivity(player, WorkType.Trucker, true); _workEquipmentManager.SetEquipment(player); API.triggerClientEvent(player, ServerEvent.SHOW_SUBTITLE, "Чтобы выполнить контракт, найдите ~y~грузовик и прицеп"); API.triggerClientEvent(player, ServerEvent.HIDE_TRUCKERS_MENU); }
/// <summary> /// Получение зарплаты /// </summary> private void GetSalary(Client player, object[] args) { var activeWork = WorkInfoManager.GetActiveWork(player); bool TypeChecker() => activeWork.Type == WorkType.Fisherman; if (!WorkIsCorrect(player, activeWork, TypeChecker)) { return; } WorkInfoManager.SetActivity(player, activeWork.Type, false); player.resetData(FishermanManager.FISHERMAN_POINT_KEY); player.resetSyncedData(WorkData.IS_FISHERMAN); player.resetSyncedData(WorkData.IS_FISHERMAN_ON_BOAT); PlayerInfoManager.SetPlayerClothes(player); PayOut(player, activeWork); API.triggerClientEvent(player, ServerEvent.HIDE_FISHERMAN_POINT); API.triggerClientEvent(player, ServerEvent.HIDE_FISHERMAN_MENU); }
/// <summary> /// Получить зарплату /// </summary> private void GetSalary(Client player, object[] objects) { var activeWork = WorkInfoManager.GetActiveWork(player); bool TypeChecker() => activeWork.Type == WorkType.Forklift; if (!WorkIsCorrect(player, activeWork, TypeChecker)) { return; } WorkInfoManager.SetActivity(player, activeWork.Type, false); API.resetEntityData(player, WorkData.IS_FORKLIFT); player.resetData(ForkliftManager.FORKLIFT_TAKE_KEY); player.resetData(ForkliftManager.FORKLIFT_PUT_KEY); PlayerInfoManager.SetPlayerClothes(player); PayOut(player, activeWork); API.triggerClientEvent(player, ServerEvent.HIDE_LOADER_POINTS); API.triggerClientEvent(player, ServerEvent.HIDE_FORKLIFT_MENU); }
/// <summary> /// Получение зарплаты /// </summary> private void BistroSalary(Client player, object[] args) { var activeWork = WorkInfoManager.GetActiveWork(player); bool TypeCheker() => activeWork.Type == WorkType.FoodTrunk || activeWork.Type == WorkType.FoodDeliveryMan; if (!WorkIsCorrect(player, activeWork, TypeCheker)) { return; } WorkInfoManager.SetActivity(player, activeWork.Type, false); player.resetData(WorkData.IS_FOOD_TRUCK_DRIVER); player.resetData(WorkData.IS_FOOD_DELIVERYMAN); player.resetSyncedData(BistroManager.POINT_NUMBER_KEY); API.setPlayerClothes(player, 5, 0, 0); // снимаем сумку PlayerInfoManager.SetPlayerClothes(player); PayOut(player, activeWork); API.triggerClientEvent(player, ServerEvent.STOP_TIMER); API.triggerClientEvent(player, ServerEvent.HIDE_BISTRO_MENU); }
/// <summary> /// Получить зарплату /// </summary> private void GetSalary(Client player, object[] args) { var activeWork = WorkInfoManager.GetActiveWork(player); bool TypeChecker() => activeWork.Type == WorkType.Loader; if (!WorkIsCorrect(player, activeWork, TypeChecker)) { return; } LoaderEventHandler.PutThing(player); WorkInfoManager.SetActivity(player, activeWork.Type, false); player.resetData(WorkData.IS_LOADER); player.resetData(LoaderManager.LOADER_TAKE_KEY); player.resetData(LoaderManager.LOADER_PUT_KEY); PlayerInfoManager.SetPlayerClothes(player); PayOut(player, activeWork); API.triggerClientEvent(player, ServerEvent.HIDE_LOADER_POINTS); API.triggerClientEvent(player, ServerEvent.HIDE_LOADER_MENU); }
/// <summary> /// Получить зарплату /// </summary> private void GetSalary(Client player, object[] args) { var activeWork = WorkInfoManager.GetActiveWork(player); bool TypeChecker() => activeWork.Type == WorkType.Farmer || activeWork.Type == WorkType.TractorDriver; if (!WorkIsCorrect(player, activeWork, TypeChecker)) { return; } FarmerManager.PutHarvest(player); WorkInfoManager.SetActivity(player, activeWork.Type, false); player.resetData(WorkData.IS_FARMER); player.resetData(WorkData.IS_TRACTOR_DRIVER); player.resetData(FarmerManager.FARMER_POINT_KEY); player.resetData(TractorDriverManager.TRACTOR_POINT_KEY); PlayerInfoManager.SetPlayerClothes(player); PayOut(player, activeWork); API.triggerClientEvent(player, ServerEvent.HIDE_FARMER_POINT); API.triggerClientEvent(player, ServerEvent.HIDE_FARMER_END_POINT); API.triggerClientEvent(player, ServerEvent.HIDE_FARM_MENU); }
/// <summary> /// Выбор контракта на доставку груза /// </summary> private void ChooseContract(Client player, object[] args) { WorkInfoManager.CreateInfoIfNeed(player, WorkType.Pilot); if (!CanWork(player, MIN_LEVEL) || HasContract(player) || HasActiveWork(player, new List <WorkType> { WorkType.Pilot })) { return; } var contract = JsonConvert.DeserializeObject <DeliveryContract>(args[0].ToString()); if (!AllowChooseContract(player, contract)) { return; } player.setSyncedData(WorkData.IS_PILOT, true); player.setData(WorkData.DELIVERY_CONTRACT, contract); WorkInfoManager.SetActivity(player, WorkType.Pilot, true); _workEquipmentManager.SetEquipment(player); API.triggerClientEvent(player, ServerEvent.SHOW_SUBTITLE, "Найдите подходящий самолет в ~y~ангаре ~w~или ~y~на улице"); API.triggerClientEvent(player, ServerEvent.HIDE_PILOT_MENU); }
/// <summary> /// Начать работу в полиции /// </summary> private void WorkInPolice(Client player, object[] args) { WorkInfoManager.CreateInfoIfNeed(player, WorkType.Police); if (HasActiveWork(player) || !CanWork(player, MIN_LEVEL)) { return; } var playerInfo = PlayerInfoManager.GetInfo(player); if (playerInfo.Clan != null) { API.sendNotificationToPlayer(player, "~r~Вы являетесь членом банды", true); return; } WorkInfoManager.SetActivity(player, WorkType.Police, true); player.setData(WorkData.IS_POLICEMAN, true); player.setSyncedData("HasPoliceActions", true); _workEquipmentManager.SetEquipment(player); _policeAlertManager.ShowAllAlerts(player); SetPolicemanName(player, playerInfo); player.setData(PoliceManager.STATE_KEY, (int)PolicemanState.NoPrisoner); API.triggerClientEvent(player, ServerEvent.HIDE_SARAH_MENU); API.sendNotificationToPlayer(player, "Вы начали работу ~b~в полиции"); }