Exemple #1
0
 public void OnDutyChangeState(Session.Session playerSession)
 {
     // draw marker if on duty remove if not
     if (JobHandler.OnDutyAs(playerSession, JobType.EMS | JobType.Police))
     {
         resupplyLocations.ForEach(o =>
         {
             playerSession.TriggerEvent("Markers.AddMarker", o.ToArray());
         });
     }
 }
 public void RefreshLoadout(Session.Session playerSession)
 {
     if (JobHandler.OnDutyAs(playerSession, JobType.EMS | JobType.Police))
     {
         var dutyLoadout = DutyLoadouts[$"{JobHandler.GetPlayerJob(playerSession)}Regular"];
         playerSession.TriggerEvent("Weapons.RemoveAllWeapons");
         foreach (var weapon in dutyLoadout.LoadoutWeapons)
         {
             playerSession.TriggerEvent("Weapons.GiveWeapon", weapon, weapon == "PetrolCan" ? 4500 : 500);
         }
         playerSession.TriggerEvent("Player.OnDutyStatusChange", true);
     }
     else
     {
         playerSession.TriggerEvent("Skin.RefreshSkin");
         playerSession.TriggerEvent("Weapons.LoadWeapons");
     }
 }
Exemple #3
0
        private async void OnRecieveTow([FromSource] Player source, string message)
        {
            var playerSession = Sessions.GetPlayer(source);

            if (playerSession == null)
            {
                return;
            }

            var isPolice       = JobHandler.OnDutyAs(playerSession, JobType.Police);
            var playerLocation = await playerSession.GetLocation();

            Log.ToClient($"[To #{source.Handle}]", $"You requested tow for a {message} in {playerLocation}", ConstantColours.TalkMarker, source);
            JobHandler.GetPlayersOnJob(JobType.Tow).ForEach(o =>
            {
                Log.ToClient($"[Tow request #{source.Handle}]", $"{(isPolice ? "Police" : "Somebody")} has requested tow for a {message} in {playerLocation}", ConstantColours.TalkMarker, o.Source);
                o.TriggerEvent("Blip.CreateJobBlip", $"Tow request #{source.Handle}", int.Parse(source.Handle), 66);
            });
        }
Exemple #4
0
        private void OnInteraction([FromSource] Player source)
        {
            var playerSession = Sessions.GetPlayer(source);

            if (playerSession == null)
            {
                return;
            }

            if (JobHandler.OnDutyAs(playerSession, JobType.EMS | JobType.Police))
            {
                var playerPos = playerSession.GetPlayerPosition();
                resupplyLocations.ForEach(o =>
                {
                    if (playerPos.DistanceToSquared(o) < 6.0f)
                    {
                        Server.Get <SharedEmergencyItems>().RefreshLoadout(playerSession);
                        Log.ToClient("[Job]", "Restocked loadout", ConstantColours.Job, playerSession.Source);
                    }
                });
            }
        }
Exemple #5
0
        private void OnSeizeVehicleItems([FromSource] Player source, int vehId, string itemsString)
        {
            var playerSession = Sessions.GetPlayer(source);
            var targetVeh     = Server.Get <VehicleManager>().GetVehicle(vehId);

            if (playerSession == null || targetVeh == null || !JobHandler.OnDutyAs(playerSession, JobType.Police))
            {
                return;
            }

            if (!string.IsNullOrEmpty(itemsString))
            {
                OnSeizeSpecificVehicleItems(playerSession, targetVeh, itemsString);
                return;
            }

            Log.Verbose($"{source.Name} is removing the illegal items from vehicle #{targetVeh.VehID}");

            targetVeh.Inventory.RemoveIllegalItems();

            playerSession.Message("[Police]", "You seized the illegal items in this vehicle", ConstantColours.Police);
        }