Beispiel #1
0
 private static async void PlayerExitVehicle(IVehicle vehicle, IPlayer player, byte seat)
 {
     try
     {
         if (player == null || vehicle == null || !player.Exists || !vehicle.Exists)
         {
             return;
         }
         int charId = User.GetPlayerOnline(player);
         if (charId <= 0)
         {
             return;
         }
         if (ServerVehicles.GetVehicleType(vehicle) != 2)
         {
             return;
         }
         if (ServerVehicles.GetVehicleOwner(vehicle) != charId)
         {
             return;
         }
         if (player.GetPlayerCurrentMinijob() == "None")
         {
             return;
         }
         if (player.GetPlayerCurrentMinijobStep() == "None")
         {
             return;
         }
         if (player.GetPlayerCurrentMinijob() == "Elektrolieferant" && player.GetPlayerCurrentMinijobStep() == "DELIVER_TO_DESTINATION")
         {
             if (player.GetPlayerCurrentMinijobActionCount() == 1 && vehicle.Position.IsInRange(new Position(MinijobSpots_[0].pos.X, MinijobSpots_[0].pos.Y, MinijobSpots_[0].pos.Z), 5f))
             {
                 player.EmitLocked("Client:Minijob:RemoveJobMarker");
                 player.EmitLocked("Client:Minijob:CreateJobMarker", "Diamond Casino", 3, 514, 1, MinijobSpots_[0].depositPos.X, MinijobSpots_[0].depositPos.Y, MinijobSpots_[0].depositPos.Z - 1, false);
                 HUDHandler.SendNotification(player, 1, 5000, "Begebe dich zur Tür und gebe das Paket ab.");
                 return;
             }
             else if (player.GetPlayerCurrentMinijobActionCount() == 2 && vehicle.Position.IsInRange(new Position(MinijobSpots_[1].pos.X, MinijobSpots_[1].pos.Y, MinijobSpots_[1].pos.Z), 5f))
             {
                 player.EmitLocked("Client:Minijob:RemoveJobMarker");
                 player.EmitLocked("Client:Minijob:CreateJobMarker", "Lifeinvader", 3, 514, 1, MinijobSpots_[1].depositPos.X, MinijobSpots_[1].depositPos.Y, MinijobSpots_[1].depositPos.Z - 1, false);
                 HUDHandler.SendNotification(player, 1, 5000, "Begebe dich zur Tür und gebe das Paket ab.");
                 return;
             }
             else if (player.GetPlayerCurrentMinijobActionCount() == 3 && vehicle.Position.IsInRange(new Position(MinijobSpots_[2].pos.X, MinijobSpots_[2].pos.Y, MinijobSpots_[2].pos.Z), 5f))
             {
                 player.EmitLocked("Client:Minijob:RemoveJobMarker");
                 player.EmitLocked("Client:Minijob:CreateJobMarker", "Weazel News", 3, 514, 1, MinijobSpots_[2].depositPos.X, MinijobSpots_[2].depositPos.Y, MinijobSpots_[2].depositPos.Z - 1, false);
                 HUDHandler.SendNotification(player, 1, 5000, "Begebe dich zur Tür und gebe das Paket ab.");
                 return;
             }
             else if (player.GetPlayerCurrentMinijobActionCount() == 4 && vehicle.Position.IsInRange(new Position(MinijobSpots_[3].pos.X, MinijobSpots_[3].pos.Y, MinijobSpots_[3].pos.Z), 5f))
             {
                 player.EmitLocked("Client:Minijob:RemoveJobMarker");
                 player.EmitLocked("Client:Minijob:CreateJobMarker", "Maze Bank", 3, 514, 1, MinijobSpots_[3].depositPos.X, MinijobSpots_[3].depositPos.Y, MinijobSpots_[3].depositPos.Z - 1, false);
                 HUDHandler.SendNotification(player, 1, 5000, "Begebe dich zur Tür und gebe das Paket ab.");
                 return;
             }
             else if (player.GetPlayerCurrentMinijobActionCount() == 5 && vehicle.Position.IsInRange(new Position(MinijobSpots_[4].pos.X, MinijobSpots_[4].pos.Y, MinijobSpots_[4].pos.Z), 5f))
             {
                 player.EmitLocked("Client:Minijob:RemoveJobMarker");
                 player.EmitLocked("Client:Minijob:CreateJobMarker", "Crastenburg Hotel", 3, 514, 1, MinijobSpots_[4].depositPos.X, MinijobSpots_[4].depositPos.Y, MinijobSpots_[4].depositPos.Z - 1, false);
                 HUDHandler.SendNotification(player, 1, 5000, "Begebe dich zur Tür und gebe das Paket ab.");
                 return;
             }
             else if (player.GetPlayerCurrentMinijobActionCount() == 6 && vehicle.Position.IsInRange(new Position(MinijobSpots_[5].pos.X, MinijobSpots_[5].pos.Y, MinijobSpots_[5].pos.Z), 5f))
             {
                 player.EmitLocked("Client:Minijob:RemoveJobMarker");
                 player.EmitLocked("Client:Minijob:CreateJobMarker", "Glass Heroes", 3, 514, 1, MinijobSpots_[5].depositPos.X, MinijobSpots_[5].depositPos.Y, MinijobSpots_[5].depositPos.Z - 1, false);
                 HUDHandler.SendNotification(player, 1, 5000, "Begebe dich zur Tür und gebe das Paket ab.");
                 return;
             }
         }
         else if (player.GetPlayerCurrentMinijob() == "Elektrolieferant" && player.GetPlayerCurrentMinijobStep() == "DRIVE_BACK_TO_START" && vehicle.Position.IsInRange(Constants.Positions.Minijob_Elektrolieferant_VehOutPos, 8f))
         {
             player.EmitLocked("Client:Minijob:RemoveJobMarker");
             foreach (var veh in Alt.Server.GetVehicles().Where(x => x.NumberplateText == $"EL-{charId}").ToList())
             {
                 if (veh == null || !veh.Exists)
                 {
                     continue;
                 }
                 ServerVehicles.RemoveVehiclePermanently(veh);
                 veh.Remove();
             }
             player.SetPlayerCurrentMinijob("None");
             player.SetPlayerCurrentMinijobStep("None");
             player.SetPlayerCurrentMinijobActionCount(0);
             int rnd = new Random().Next(500, 750);
             if (!CharactersBank.HasCharacterBankMainKonto(charId))
             {
                 HUDHandler.SendNotification(player, 3, 5000, $"Dein Gehalt i.H.v. {rnd}$ konnte nicht überwiesen werden da du kein Hauptkonto hast."); return;
             }
             int accNumber = CharactersBank.GetCharacterBankMainKonto(charId);
             if (accNumber <= 0)
             {
                 return;
             }
             CharactersBank.SetBankAccountMoney(accNumber, CharactersBank.GetBankAccountMoney(accNumber) + rnd);
             ServerBankPapers.CreateNewBankPaper(accNumber, DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")), DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE")), "Eingehende Überweisung", "Department of Water and Power", "Minijob Gehalt", $"+{rnd}$", "Online Banking");
             HUDHandler.SendNotification(player, 2, 5000, $"Du hast den Minijob erfolgreich abgeschlossen. Dein Gehalt i.H.v. {rnd}$ wurde dir auf dein Hauptkonto überwiesen.");
             return;
         }
     }
     catch (Exception e)
     {
         Alt.Log($"{e}");
     }
 }
Beispiel #2
0
        public static string GetGarageParkInString(IPlayer player, IReadOnlyCollection <Server_Garage_Slots> garageSlots, int charId, int garageId, bool isFaction, string factionShort, int factionId)
        {
            if (player == null || !player.Exists || !garageSlots.Any() || garageId == 0 || charId == 0)
            {
                return("undefined");
            }
            List <IVehicle> vehicles = null;

            if (isFaction == false)
            {
                vehicles = Alt.Server.GetVehicles().Where(x => x != null && x.Exists && x.HasVehicleId() && x.GetVehicleId() > 0 && x.Position.IsInRange(player.Position, 50f)).ToList();
            }
            else if (isFaction == true)
            {
                vehicles = Alt.Server.GetVehicles().Where(x => x != null && x.Exists && x.HasVehicleId() && x.GetVehicleId() > 0 && x.Position.IsInRange(player.Position, 50f) && ServerVehicles.GetVehicleFactionId(x) == factionId && x.NumberplateText.Contains(factionShort)).ToList();
            }
            int garageType = ServerGarages.GetGarageType(garageId);

            if (garageType == -1)
            {
                return("undefined");
            }
            dynamic array = new JArray() as dynamic;
            dynamic entry = new JObject();

            foreach (var veh in vehicles)
            {
                bool hasKey      = false,
                         isOwner = ServerVehicles.GetVehicleOwner(veh) == charId;
                if (isFaction)
                {
                    hasKey = CharactersInventory.ExistCharacterItem(charId, $"Fahrzeugschluessel {factionShort}", "inventory");
                }
                else if (!isFaction)
                {
                    hasKey = CharactersInventory.ExistCharacterItem(charId, $"Fahrzeugschluessel {veh.NumberplateText}", "inventory");
                }
                if (!isOwner && !hasKey)
                {
                    continue;
                }
                entry       = new JObject();
                entry.vehid = veh.GetVehicleId();
                entry.plate = veh.NumberplateText;
                entry.hash  = veh.Model;
                entry.name  = ServerVehicles.GetVehicleNameOnHash(veh.Model);
                array.Add(entry);
            }

            //foreach (var slot in garageSlots.Where(x => x.garageId == garageId))
            //{
            //    var pos = new Position(slot.posX, slot.posY, slot.posZ);
            //    var entity = vehicles.OrderBy(x => x.Position.Distance(pos)).ToList().FirstOrDefault();
            //    if(entity == null) { continue; }
            //    var distance = entity.Position.Distance(pos);
            //    if (distance >= 1.5f) { continue; }
            //    var vehicle = ServerVehicles.ServerVehicles_.Where(x => x.isInGarage == false).ToList().FirstOrDefault(x => string.Equals(x.plate, entity.NumberplateText, StringComparison.CurrentCultureIgnoreCase));
            //    if(vehicle == null) { continue; }
            //    var vehicleData = ServerAllVehicles.ServerAllVehicles_.FirstOrDefault(x => x.hash == entity.Model);
            //    if (vehicleData == null) { continue; }
            //    if(vehicleData.vehClass != garageType) { continue; }
            //    bool hasKey = false;
            //    if (isFaction == false) { hasKey = CharactersInventory.ExistCharacterItem(charId, "Fahrzeugschluessel " + entity.NumberplateText, "inventory"); }
            //    else if(isFaction == true) { hasKey = CharactersInventory.ExistCharacterItem(charId, "Fahrzeugschluessel " + factionShort, "inventory"); }
            //    bool isOwner = vehicle.charid == charId;
            //    if(!hasKey && !isOwner) { continue; }

            //    entry = new JObject();
            //    entry.vehid = vehicle.id;
            //    entry.plate = entity.NumberplateText;
            //    entry.hash = entity.Model;
            //    entry.name = vehicleData.name;
            //    array.Add(entry);
            //}
            return(array.ToString());
        }
Beispiel #3
0
 private static void PlayerEnterVehicle(IVehicle vehicle, IPlayer player, byte seat)
 {
     try
     {
         if (player == null || vehicle == null || !player.Exists || !vehicle.Exists)
         {
             return;
         }
         int charId = User.GetPlayerOnline(player);
         if (charId <= 0)
         {
             return;
         }
         if (ServerVehicles.GetVehicleType(vehicle) != 2)
         {
             return;
         }
         if (ServerVehicles.GetVehicleOwner(vehicle) != charId)
         {
             return;
         }
         if (player.GetPlayerCurrentMinijob() == "None")
         {
             return;
         }
         if (player.GetPlayerCurrentMinijobStep() == "None")
         {
             return;
         }
         if (player.GetPlayerCurrentMinijob() != "Elektrolieferant")
         {
             return;
         }
         if (player.GetPlayerCurrentMinijobStep() == "FirstStepInVehicle")
         {
             player.SetPlayerCurrentMinijobStep("DELIVER_TO_DESTINATION");
             player.SetPlayerCurrentMinijobActionCount(1);
             HUDHandler.SendNotification(player, 1, 2500, "Fahre zum ersten Unternehmen um die Elektrozellen abzuliefern.");
             player.EmitLocked("Client:Minijob:CreateJobMarker", "Diamond Casino", 3, 514, 30, MinijobSpots_[0].pos.X, MinijobSpots_[0].pos.Y, MinijobSpots_[0].pos.Z, true);
             return;
         }
         else if (player.GetPlayerCurrentMinijobStep() == "DELIVER_TO_DESTINATION" && player.GetPlayerCurrentMinijobActionCount() == 2)
         {
             HUDHandler.SendNotification(player, 1, 2500, "Fahre zum nächsten Unternehmen um die Elektrozellen abzuliefern.");
             player.EmitLocked("Client:Minijob:CreateJobMarker", "Lifeinvader", 3, 514, 30, MinijobSpots_[1].pos.X, MinijobSpots_[1].pos.Y, MinijobSpots_[1].pos.Z, true);
             return;
         }
         else if (player.GetPlayerCurrentMinijobStep() == "DELIVER_TO_DESTINATION" && player.GetPlayerCurrentMinijobActionCount() == 3)
         {
             HUDHandler.SendNotification(player, 1, 2500, "Fahre zum nächsten Unternehmen um die Elektrozellen abzuliefern.");
             player.EmitLocked("Client:Minijob:CreateJobMarker", "Weazel News", 3, 514, 30, MinijobSpots_[2].pos.X, MinijobSpots_[2].pos.Y, MinijobSpots_[2].pos.Z, true);
             return;
         }
         else if (player.GetPlayerCurrentMinijobStep() == "DELIVER_TO_DESTINATION" && player.GetPlayerCurrentMinijobActionCount() == 4)
         {
             HUDHandler.SendNotification(player, 1, 2500, "Fahre zum nächsten Unternehmen um die Elektrozellen abzuliefern.");
             player.EmitLocked("Client:Minijob:CreateJobMarker", "Maze Bank", 3, 514, 30, MinijobSpots_[3].pos.X, MinijobSpots_[3].pos.Y, MinijobSpots_[3].pos.Z, true);
             return;
         }
         else if (player.GetPlayerCurrentMinijobStep() == "DELIVER_TO_DESTINATION" && player.GetPlayerCurrentMinijobActionCount() == 5)
         {
             HUDHandler.SendNotification(player, 1, 2500, "Fahre zum nächsten Unternehmen um die Elektrozellen abzuliefern.");
             player.EmitLocked("Client:Minijob:CreateJobMarker", "Crastenburg Hotel", 3, 514, 30, MinijobSpots_[4].pos.X, MinijobSpots_[4].pos.Y, MinijobSpots_[4].pos.Z, true);
             return;
         }
         else if (player.GetPlayerCurrentMinijobStep() == "DELIVER_TO_DESTINATION" && player.GetPlayerCurrentMinijobActionCount() == 6)
         {
             HUDHandler.SendNotification(player, 1, 2500, "Fahre zum nächsten Unternehmen um die Elektrozellen abzuliefern.");
             player.EmitLocked("Client:Minijob:CreateJobMarker", "Glass Heroes", 3, 514, 30, MinijobSpots_[5].pos.X, MinijobSpots_[5].pos.Y, MinijobSpots_[5].pos.Z, true);
             return;
         }
         else if (player.GetPlayerCurrentMinijobStep() == "DRIVE_BACK_TO_START")
         {
             HUDHandler.SendNotification(player, 1, 2500, "Fahre zurück zum Department of Water and Power und stelle dein Fahrzeug ab.");
             player.EmitLocked("Client:Minijob:CreateJobMarker", "Department of Water and Power: Fahrzeugabgabe", 3, 514, 39, Constants.Positions.Minijob_Elektrolieferant_VehOutPos.X, Constants.Positions.Minijob_Elektrolieferant_VehOutPos.Y, Constants.Positions.Minijob_Elektrolieferant_VehOutPos.Z, true);
             return;
         }
     }
     catch (Exception e)
     {
         Alt.Log($"{e}");
     }
 }