/// <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);
 }
Esempio n. 4
0
 /// <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);
 }
Esempio n. 5
0
 /// <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);
 }
Esempio n. 6
0
 /// <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);
 }
Esempio n. 7
0
 /// <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);
        }
Esempio n. 12
0
 /// <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);
 }
Esempio n. 13
0
        /// <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);
        }
Esempio n. 14
0
        /// <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);
        }
Esempio n. 17
0
        /// <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);
        }
Esempio n. 18
0
        /// <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);
        }
Esempio n. 20
0
        /// <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);
        }
Esempio n. 21
0
        /// <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);
        }
Esempio n. 23
0
        /// <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);
        }
Esempio n. 24
0
        /// <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~в полиции");
        }