public async Task DepositATMMoney(IPlayer player, int accountNumber, int amount, string zoneName) { if (player == null || !player.Exists || accountNumber == 0 || amount < 1) { return; } int charid = User.GetPlayerOnline(player); if (charid == 0) { return; } if (CharactersBank.GetBankAccountLockStatus(accountNumber)) { HUDHandler.SendNotification(player, 3, 5000, $"Diese EC Karte ist gesperrt und kann nicht weiter benutzt werden."); if (CharactersInventory.ExistCharacterItem(charid, "EC Karte " + accountNumber, "inventory")) { CharactersInventory.RemoveCharacterItemAmount(charid, "EC Karte " + accountNumber, 1, "inventory"); } return; } if (!CharactersInventory.ExistCharacterItem(charid, "Bargeld", "inventory") || CharactersInventory.GetCharacterItemAmount(charid, "Bargeld", "inventory") < amount) { HUDHandler.SendNotification(player, 3, 5000, $"Du hast nicht genug Bargeld in deinem Inventar dabei ({amount}$)."); return; } DateTime dateTime = DateTime.Now; CharactersBank.SetBankAccountMoney(accountNumber, (CharactersBank.GetBankAccountMoney(accountNumber) + amount)); //Geld aufs Konto packen CharactersInventory.RemoveCharacterItemAmount(charid, "Bargeld", amount, "inventory"); //Spieler Geld entfernen ServerBankPapers.CreateNewBankPaper(accountNumber, dateTime.ToString("dd.MM.yyyy"), dateTime.ToString("HH.mm"), "Einzahlung", "None", "None", $"+{amount}$", zoneName); HUDHandler.SendNotification(player, 2, 5000, $"Sie haben {amount}$ auf Ihr Bankkonto eingezahlt."); }
public async Task CreateNewBankAccount(IPlayer player, string zoneName) { if (player == null || !player.Exists || zoneName == "") { return; } if (CharactersBank.GetCharacterBankAccountCount(player) >= 2) { HUDHandler.SendNotification(player, 4, 5000, "Du kannst nur zwei Bankkonten gleichzeitig haben."); return; } int rndAccNumber = new Random().Next(1000000, 999999999); int rndPin = new Random().Next(0000, 9999); int charid = User.GetPlayerOnline(player); if (charid == 0) { return; } if (CharactersBank.ExistBankAccountNumber(rndAccNumber)) { HUDHandler.SendNotification(player, 3, 5000, "Es ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut."); return; } CharactersBank.CreateBankAccount(charid, rndAccNumber, rndPin, zoneName); HUDHandler.SendNotification(player, 2, 5000, $"Sie haben erfolgreich ein Konto erstellt. Ihre Kontonummer lautet ({rndAccNumber}) - ihr PIN: ({rndPin})."); CharactersInventory.AddCharacterItem(charid, "EC Karte " + rndAccNumber, 1, "inventory"); if (!CharactersTablet.HasCharacterTutorialEntryFinished(charid, "createBankAccount")) { CharactersTablet.SetCharacterTutorialEntryState(charid, "createBankAccount", true); HUDHandler.SendNotification(player, 1, 2500, "Erfolg freigeschaltet: Dein erstes Konto"); } }
public async Task TryATMPin(IPlayer player, string action, int accountNumber) { if (player == null || !player.Exists) { return; } int charid = User.GetPlayerOnline(player); if (charid == 0) { return; } if (action == "reset") { CharactersBank.ResetBankAccountPINTrys(accountNumber); } else if (action == "increase") { CharactersBank.SetBankAccountPinTrys(accountNumber, (CharactersBank.GetBankAccountPinTrys(accountNumber) + 1)); if (CharactersBank.GetBankAccountPinTrys(accountNumber) >= 3) { player.EmitLocked("Client:ATM:BankATMdestroyCEFBrowser"); HUDHandler.SendNotification(player, 3, 5000, $"Sie haben die Geheimzahl zu oft falsch eingegeben, Ihre Karte wurde gesperrt und eingezogen."); CharactersBank.ChangeBankAccountLockStatus(accountNumber); CharactersInventory.RemoveCharacterItemAmount(charid, "EC Karte " + accountNumber, 1, "inventory"); } else { HUDHandler.SendNotification(player, 3, 5000, $"Sie haben Ihre Geheimzahl falsch eingegeben."); } } }
public async Task WithdrawATMMoney(IPlayer player, int accountNumber, int amount, string zoneName) { if (player == null || !player.Exists || accountNumber == 0 || amount < 1) { return; } int charid = User.GetPlayerOnline(player); if (charid == 0) { return; } if (CharactersBank.GetBankAccountLockStatus(accountNumber)) { HUDHandler.SendNotification(player, 3, 5000, $"Diese EC Karte ist gesperrt und kann nicht weiter benutzt werden."); if (CharactersInventory.ExistCharacterItem(charid, "EC Karte " + accountNumber, "inventory")) { CharactersInventory.RemoveCharacterItemAmount(charid, "EC Karte " + accountNumber, 1, "inventory"); } return; } if (CharactersBank.GetBankAccountMoney(accountNumber) < amount) { HUDHandler.SendNotification(player, 3, 5000, $"Ihr Konto ist für diese Summe nicht ausreichend gedeckt."); return; } DateTime dateTime = DateTime.Now; CharactersBank.SetBankAccountMoney(accountNumber, (CharactersBank.GetBankAccountMoney(accountNumber) - amount)); //Geld vom Konto abziehen CharactersInventory.AddCharacterItem(charid, "Bargeld", amount, "inventory"); //Spieler Geld geben ServerBankPapers.CreateNewBankPaper(accountNumber, dateTime.ToString("dd.MM.yyyy"), dateTime.ToString("HH.mm"), "Auszahlung", "None", "None", $"-{amount}$", zoneName); HUDHandler.SendNotification(player, 2, 5000, $"Sie haben {amount}$ von Ihrem Bankkonto abgehoben."); }
public async Task RentHouse(IPlayer player, int houseId) { try { if (player == null || !player.Exists || houseId <= 0) { return; } int charId = (int)player.GetCharacterMetaId(); if (charId <= 0) { return; } if (!ServerHouses.ExistHouse(houseId)) { return; } if (ServerHouses.GetHouseOwner(houseId) <= 0 || ServerHouses.GetHouseOwner(houseId) == charId) { return; } if (ServerHouses.IsCharacterRentedInAnyHouse(charId)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Du bist bereits in einem anderen Haus eingemietet."); return; } if (ServerHouses.IsCharacterRentedInHouse(charId, houseId)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: In diesem Haus bist du bereits eingemietet."); return; } if (!CharactersBank.HasCharacterBankMainKonto(charId)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Du besitzt kein Haupt-Bankkonto."); return; } int accNumber = CharactersBank.GetCharacterBankMainKonto(charId); int ownerBankNumber = CharactersBank.GetCharacterBankMainKonto(ServerHouses.GetHouseOwner(houseId)); int rentPrice = ServerHouses.GetHouseRentPrice(houseId); if (accNumber <= 0 || rentPrice <= 0 || ownerBankNumber <= 0) { return; } if (CharactersBank.GetBankAccountLockStatus(accNumber)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Dein Hauptkonto ist gesperrt."); return; } if (CharactersBank.GetBankAccountMoney(accNumber) < rentPrice) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Dein Hauptkonto ist nicht ausreichend gedeckt."); return; } CharactersBank.SetBankAccountMoney(accNumber, CharactersBank.GetBankAccountMoney(accNumber) - rentPrice); CharactersBank.SetBankAccountMoney(ownerBankNumber, CharactersBank.GetBankAccountMoney(ownerBankNumber) + rentPrice); ServerHouses.AddServerHouseRenter(houseId, charId); ServerBankPapers.CreateNewBankPaper(accNumber, DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")), DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE")), "Ausgehende Überweisung", $"{ownerBankNumber}", "Mietvertrag", $"-{rentPrice}$", "Bankeinzug"); ServerBankPapers.CreateNewBankPaper(ownerBankNumber, DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")), DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE")), "Eingehende Überweisung", $"{accNumber}", "Mietvertrag", $"+{rentPrice}$", "Bankeinzug"); HUDHandler.SendNotification(player, 2, 5000, $"Du hast dich erfolgreich eingemietet, die Miete beträgt {rentPrice}$ täglich welche von deinem Hauptkonto abgezogen werden."); } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task BankAccountAction(IPlayer player, string action, string accountNumberStr) { if (player == null || !player.Exists || action == "" || accountNumberStr == "") { return; } int accountNumber = Int32.Parse(accountNumberStr); int charid = User.GetPlayerOnline(player); if (accountNumber == 0 || charid == 0) { return; } if (action == "generatepin") { int rndPin = new Random().Next(0000, 9999); CharactersBank.ChangeBankAccountPIN(accountNumber, rndPin); HUDHandler.SendNotification(player, 2, 5000, $"Sie haben Ihren PIN erfolgreich geändert, neuer PIN: {rndPin}."); } else if (action == "lock") { CharactersBank.ChangeBankAccountLockStatus(accountNumber); if (CharactersBank.GetBankAccountLockStatus(accountNumber)) { HUDHandler.SendNotification(player, 2, 5000, $"Sie haben Ihr Konto mit der Kontonummer ({accountNumber}) erfolgreich gesperrt."); } else { HUDHandler.SendNotification(player, 2, 5000, $"Sie haben Ihr Konto mit der Kontonummre ({accountNumber}) erfolgreich entsperrt."); } CharactersBank.ResetBankAccountPINTrys(accountNumber); } else if (action == "setMain") { if (accountNumber == CharactersBank.GetCharacterBankMainKonto(charid)) { HUDHandler.SendNotification(player, 3, 5000, "Dieses Konto ist bereits dein Hauptkonto."); return; } if (CharactersBank.GetCharacterBankMainKonto(charid) != 0) { CharactersBank.SetCharacterBankMainKonto(CharactersBank.GetCharacterBankMainKonto(charid)); } CharactersBank.SetCharacterBankMainKonto(accountNumber); HUDHandler.SendNotification(player, 2, 5000, $"Sie haben das Konto mit der Kontonummer ({accountNumber}) als Hauptkonto gesetzt."); } else if (action == "copycard") { if (CharactersBank.GetBankAccountLockStatus(accountNumber)) { HUDHandler.SendNotification(player, 3, 5000, "Ihr Konto ist gesperrt, entsperren Sie Ihr Konto bevor Sie eine neue Karte erhalten können."); return; } if (CharactersInventory.GetCharacterItemAmount(charid, "EC Karte " + accountNumber, "inventory") >= 3) { HUDHandler.SendNotification(player, 4, 5000, "Sie haben bereits zu viele Karten beantragt."); return; } CharactersInventory.AddCharacterItem(charid, "EC Karte " + accountNumber, 1, "inventory"); HUDHandler.SendNotification(player, 2, 5000, $"Sie haben erfolgreich eine Kartenkopie für das Konto mit der Kontonummer ({accountNumber}) erhalten."); } }
public async Task requestATMBankData(ClassicPlayer player, int accountNumber) { if (player == null || !player.Exists || player.CharacterId <= 0) { return; } player.EmitLocked("Client:ATM:BankATMSetRequestedData", CharactersBank.GetBankAccountMoney(accountNumber), ServerBankPapers.GetBankAccountBankPaper(player, accountNumber)); }
public async Task RentHotel(IPlayer player, int hotelId, int apartmentId) { try { if (player == null || !player.Exists || hotelId <= 0 || apartmentId <= 0) { return; } int charId = User.GetPlayerOnline(player); if (charId <= 0) { return; } if (!ServerHotels.ExistHotelApartment(hotelId, apartmentId)) { HUDHandler.SendNotification(player, 3, 5000, "Ein unerwarteter Fehler ist aufgetreten [HOTEL-001]."); return; } if (ServerHotels.HasCharacterAnApartment(charId)) { HUDHandler.SendNotification(player, 3, 5000, $"Du besitzt bereits ein Hotelzimmer in dem Hotel '{ServerHotels.GetCharacterRentedHotelName(charId)}'."); return; } if (ServerHotels.GetApartmentOwner(hotelId, apartmentId) > 0) { HUDHandler.SendNotification(player, 3, 5000, "Dieses Apartment ist bereits vermietet."); return; } if (!CharactersBank.HasCharacterBankMainKonto(charId)) { HUDHandler.SendNotification(player, 3, 5000, "Du hast noch kein Hauptkonto in der Bank festgelegt."); return; } int accNumber = CharactersBank.GetCharacterBankMainKonto(charId); if (accNumber <= 0) { return; } if (CharactersBank.GetBankAccountLockStatus(accNumber)) { HUDHandler.SendNotification(player, 3, 5000, "Dein Bankkonto ist gesperrt."); return; } if (CharactersBank.GetBankAccountMoney(accNumber) < ServerHotels.GetApartmentPrice(hotelId, apartmentId)) { HUDHandler.SendNotification(player, 3, 5000, $"Soviel Geld hast du auf deinem Konto nicht ({ServerHotels.GetApartmentPrice(hotelId, apartmentId)}$) - du hast {CharactersBank.GetBankAccountMoney(accNumber)}$"); return; } CharactersBank.SetBankAccountMoney(accNumber, CharactersBank.GetBankAccountMoney(accNumber) - ServerHotels.GetApartmentPrice(hotelId, apartmentId)); ServerBankPapers.CreateNewBankPaper(accNumber, DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")), DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE")), "Ausgehende Überweisung", "Hotelzahlung", $"Zimmerbuchung: {apartmentId}", $"+{ServerHotels.GetApartmentPrice(hotelId, apartmentId)}$", "Bankeinzug"); ServerHotels.SetApartmentOwner(hotelId, apartmentId, charId); HUDHandler.SendNotification(player, 2, 5000, $"Sie haben sich das Zimmer mit der Zimmernummer '{apartmentId}' erfolgreich gemietet (Kosten: {ServerHotels.GetApartmentPrice(hotelId, apartmentId)}$). Dieses Zimmer läuft automatisch nach {ServerHotels.GetApartmentRentHours(hotelId, apartmentId)} Stunden ab."); } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task SearchBankAccounts(IPlayer player, string targetCharName) { try { if (player == null || !player.Exists || targetCharName == "") { return; } int charId = User.GetPlayerOnline(player); if (charId <= 0) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das gefesselt machen?"); return; } if (!ServerFactions.IsCharacterInAnyFaction(charId)) { HUDHandler.SendNotification(player, 3, 5000, "Du bist in keiner Fraktion."); return; } if (!ServerFactions.IsCharacterInFactionDuty(charId)) { HUDHandler.SendNotification(player, 3, 5000, "Du bist nicht im Dienst."); return; } if (ServerFactions.GetCharacterFactionId(charId) != 1) { HUDHandler.SendNotification(player, 3, 5000, "Du bist kein Angehöriger der Justiz."); return; } if (!Characters.ExistCharacterName(targetCharName)) { HUDHandler.SendNotification(player, 3, 5000, $"Der angegebene Name wurde nicht gefunden ({targetCharName})."); return; } int targetCharId = Characters.GetCharacterIdFromCharName(targetCharName); if (targetCharId <= 0) { return; } var targetBankAccounts = CharactersBank.GetCharacterBankAccounts(targetCharId); if (targetBankAccounts == "[]" || targetBankAccounts == "") { HUDHandler.SendNotification(player, 3, 5000, "Der Spieler hat keine Bankkonten."); return; } player.EmitLocked("Client:Tablet:SetJusticeAppSearchedBankAccounts", targetBankAccounts); } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task BuyHouse(IPlayer player, int houseId) { try { if (player == null || houseId <= 0 || !player.Exists) { return; } int charId = User.GetPlayerOnline(player); if (charId <= 0) { return; } if (!ServerHouses.ExistHouse(houseId)) { return; } if (ServerHouses.GetHouseOwner(houseId) > 0) { HUDHandler.SendNotification(player, 3, 5000, "Fehler: Dieses Haus gehört bereits jemanden."); return; } if (!CharactersBank.HasCharacterBankMainKonto(charId)) { HUDHandler.SendNotification(player, 3, 5000, "Du hast noch kein Hauptkonto in der Bank festgelegt."); return; } int accNumber = CharactersBank.GetCharacterBankMainKonto(charId); if (accNumber <= 0) { return; } if (CharactersBank.GetBankAccountLockStatus(accNumber)) { HUDHandler.SendNotification(player, 3, 5000, "Dein Bankkonto ist gesperrt."); return; } if (CharactersBank.GetBankAccountMoney(accNumber) < ServerHouses.GetHousePrice(houseId)) { HUDHandler.SendNotification(player, 3, 5000, $"Soviel Geld hast du auf deinem Konto nicht ({ServerHouses.GetHousePrice(houseId)}$) - du hast {CharactersBank.GetBankAccountMoney(accNumber)}$"); return; } CharactersBank.SetBankAccountMoney(accNumber, CharactersBank.GetBankAccountMoney(accNumber) - ServerHouses.GetHousePrice(houseId)); ServerBankPapers.CreateNewBankPaper(accNumber, DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")), DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE")), "Ausgehende Überweisung", "Dynasty8", $"Hauskauf: {ServerHouses.GetHouseStreet(houseId)}", $"-{ServerHouses.GetHousePrice(houseId)}$", "Bankeinzug"); ServerHouses.SetHouseOwner(houseId, charId); HUDHandler.SendNotification(player, 2, 5000, $"Sie haben sich das Haus mit der Adresse '{ServerHouses.GetHouseStreet(houseId)}' erfolgreich gekauft (Kosten: {ServerHouses.GetHousePrice(houseId)}$)."); } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task ViewBankTransactions(IPlayer player, int accNumber) { try { if (player == null || !player.Exists || accNumber <= 0) { return; } int charId = User.GetPlayerOnline(player); if (charId <= 0) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das gefesselt machen?"); return; } if (!ServerFactions.IsCharacterInAnyFaction(charId)) { HUDHandler.SendNotification(player, 3, 5000, "Du bist in keiner Fraktion."); return; } if (!ServerFactions.IsCharacterInFactionDuty(charId)) { HUDHandler.SendNotification(player, 3, 5000, "Du bist nicht im Dienst."); return; } if (ServerFactions.GetCharacterFactionId(charId) != 1) { HUDHandler.SendNotification(player, 3, 5000, "Du bist kein Angehöriger der Justiz."); return; } if (!CharactersBank.ExistBankAccountNumber(accNumber)) { HUDHandler.SendNotification(player, 3, 5000, $"Die ausgewählte Kontonummer existiert nicht ({accNumber})."); return; } var bankPapers = ServerBankPapers.GetTabletBankAccountBankPaper(accNumber); if (bankPapers == "[]" || bankPapers == "") { HUDHandler.SendNotification(player, 3, 5000, "Dieses Konto besitzt keine Transaktionen."); return; } player.EmitLocked("Client:Tablet:SetJusticeAppBankTransactions", bankPapers); } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task TransferATMMoney(IPlayer player, int accountNumber, int targetNumber, int amount, string zoneName) { if (player == null || !player.Exists || accountNumber == 0 || targetNumber == 0 || amount < 1) { return; } int charid = User.GetPlayerOnline(player); if (charid == 0) { return; } if (CharactersBank.GetBankAccountLockStatus(accountNumber)) { HUDHandler.SendNotification(player, 3, 5000, $"Diese EC Karte ist gesperrt und kann nicht weiter benutzt werden."); if (CharactersInventory.ExistCharacterItem(charid, "EC Karte " + accountNumber, "inventory")) { CharactersInventory.RemoveCharacterItemAmount(charid, "EC Karte " + accountNumber, 1, "inventory"); } return; } if (accountNumber == targetNumber) { HUDHandler.SendNotification(player, 3, 5000, $"Sie können sich selber kein Geld überweisen."); return; } if (CharactersBank.GetBankAccountMoney(accountNumber) < amount) { HUDHandler.SendNotification(player, 3, 5000, $"Ihr Bankkonto ist für diese Transaktion nicht ausreichend gedeckt ({amount}$)."); return; } CharactersBank.SetBankAccountMoney(accountNumber, (CharactersBank.GetBankAccountMoney(accountNumber) - amount)); //Geld vom Konto abziehen CharactersBank.SetBankAccountMoney(targetNumber, (CharactersBank.GetBankAccountMoney(targetNumber) + amount)); //Geld aufs Zielkonto addieren string Date = DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")); string Time = DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE")); ServerBankPapers.CreateNewBankPaper(accountNumber, Date, Time, "Ausgehende Überweisung", $"{targetNumber}", "None", $"-{amount}$", zoneName); ServerBankPapers.CreateNewBankPaper(targetNumber, Date, Time, "Eingehende Überweisung", $"{accountNumber}", "None", $"+{amount}$", zoneName); HUDHandler.SendNotification(player, 2, 5000, $"Sie haben erfolgreich {amount}$ an das Konto mit der Kontonummer {targetNumber} überwiesen."); }
public async Task SellHouse(IPlayer player, int houseId) { try { if (player == null || !player.Exists || houseId <= 0) { return; } int charId = (int)player.GetCharacterMetaId(); if (charId <= 0) { return; } if (!ServerHouses.ExistHouse(houseId) || ServerHouses.GetHouseOwner(houseId) != charId) { HUDHandler.SendNotification(player, 4, 3500, "Fehler: Dieses Haus gehört nicht dir."); return; } if (!CharactersBank.HasCharacterBankMainKonto(charId)) { HUDHandler.SendNotification(player, 3, 2500, "Du besitzt kein Haupt-Bankkonto"); return; } int accNumber = CharactersBank.GetCharacterBankMainKonto(charId); int housePrice = ServerHouses.GetHousePrice(houseId) / 2; if (!CharactersBank.ExistBankAccountNumber(accNumber)) { return; } ServerHouses.SetHouseLocked(houseId, true); ServerHouses.SetHouseOwner(houseId, 0); CharactersBank.SetBankAccountMoney(accNumber, CharactersBank.GetBankAccountMoney(accNumber) + housePrice); HUDHandler.SendNotification(player, 2, 2500, $"Haus erfolgreich für {housePrice}$ (50% Kaufpreis) verkauft."); ServerBankPapers.CreateNewBankPaper(accNumber, DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")), DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE")), "Eingehende Überweisung", "Immobilienmakler", $"Hausverkauf: {ServerHouses.GetHouseStreet(houseId)}", $"+{housePrice}$", "Online-Banking"); } catch (Exception e) { Alt.Log($"{e}"); } }
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}"); } }
private static async void PlayerExitVehicle(IVehicle vehicle, IPlayer player, byte seat) { try { if (player == null || !player.Exists) { return; } if (vehicle == null || !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() != "Müllmann") { return; } if (player.GetPlayerCurrentMinijobStep() != "DRIVE_BACK_TO_START") { return; } if (!vehicle.Position.IsInRange(Constants.Positions.Minijob_Müllmann_VehOutPos, 8f)) { return; } player.EmitLocked("Client:Minijob:RemoveJobMarker"); foreach (var veh in Alt.Server.GetVehicles().Where(x => x.NumberplateText == $"MM-{charId}").ToList()) { if (veh == null || !veh.Exists) { continue; } ServerVehicles.RemoveVehiclePermanently(veh); await Task.Delay(5000); veh.Remove(); } player.SetPlayerCurrentMinijob("None"); player.SetPlayerCurrentMinijobStep("None"); player.SetPlayerCurrentMinijobActionCount(0); player.SetPlayerCurrentMinijobRouteId(0); int rnd = new Random().Next(500, 850); 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", "Arbeitgeber: Müllmann", "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}"); } }
private static 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() != "Pilot") { return; } if (player.GetPlayerCurrentMinijobStep() == "DRIVE_BACK_TO_START" && vehicle.Position.IsInRange(Constants.Positions.Minijob_Pilot_VehOutPos, 10f)) { var model = vehicle.Model; foreach (var veh in Alt.Server.GetVehicles().Where(x => x.NumberplateText == $"PL-{charId}").ToList()) { if (veh == null || !veh.Exists) { continue; } ServerVehicles.RemoveVehiclePermanently(veh); veh.Remove(); } player.SetPlayerCurrentMinijob("None"); player.SetPlayerCurrentMinijobRouteId(0); player.SetPlayerCurrentMinijobStep("None"); player.SetPlayerCurrentMinijobActionCount(0); int rnd = 0; int rndExp = 0; switch (model) { case 2621610858: //Velum rnd = new Random().Next(250, 500); rndExp = new Random().Next(1, 5); break; case 1341619767: //Vestra rnd = new Random().Next(450, 650); rndExp = new Random().Next(3, 8); break; case 2999939664: //Nimbus rnd = new Random().Next(550, 850); rndExp = new Random().Next(5, 11); break; } 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; } CharactersMinijobs.IncreaseCharacterMinijobEXP(charId, "Pilot", rndExp); 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", "San Andreas Flights", "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. Du hast {rndExp}EXP dazu bekommen."); player.EmitLocked("Client:Minijob:RemoveJobMarker"); return; } } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task LSPDAppSearchPerson(IPlayer player, string targetCharname) { try { if (player == null || !player.Exists || targetCharname == "") { return; } int charId = User.GetPlayerOnline(player); if (charId <= 0) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 4, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } if (!ServerFactions.IsCharacterInAnyFaction(charId)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Du bist in keiner Fraktion."); return; } if (ServerFactions.GetCharacterFactionId(charId) != 2 && ServerFactions.GetCharacterFactionId(charId) != 1) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Du bist nicht im L.S.P.D. oder der Justiz angestellt."); return; } if (!ServerFactions.IsCharacterInFactionDuty(charId)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Du bist nicht im Dienst."); return; } if (!Characters.ExistCharacterName(targetCharname)) { HUDHandler.SendNotification(player, 3, 5000, "Fehler: Der eingegebene Name wurde nicht gefunden."); return; } int targetCharId = Characters.GetCharacterIdFromCharName(targetCharname); if (targetCharId <= 0) { return; } string charName = Characters.GetCharacterName(targetCharId); string gender = "Unbekannt"; string birthdate = Characters.GetCharacterBirthdate(targetCharId); string birthplace = Characters.GetCharacterBirthplace(targetCharId); string address = $"{Characters.GetCharacterStreet(targetCharId)}"; string job = Characters.GetCharacterJob(targetCharId); string mainBankAccount = "Nicht vorhanden"; string firstJoinDate = $"{Characters.GetCharacterFirstJoinDate(targetCharId).ToString("d", CultureInfo.CreateSpecificCulture("de-DE"))}"; if (job == "None") { job = "Arbeitslos"; } if (CharactersBank.HasCharacterBankMainKonto(targetCharId)) { mainBankAccount = $"{CharactersBank.GetCharacterBankMainKonto(targetCharId)}"; } if (Characters.GetCharacterGender(targetCharId)) { gender = "Weiblich"; } else { gender = "Männlich"; } player.EmitLocked("Client:Tablet:SetLSPDAppPersonSearchData", charName, gender, birthdate, birthplace, address, job, mainBankAccount, firstJoinDate); HUDHandler.SendNotification(player, 2, 1500, $"Personenabfrage durchgeführt: {charName}."); } catch (Exception e) { Alt.Log($"{e}"); } }
private static async void PlayerExitVehicle(IVehicle vehicle, IPlayer player, byte seat) { try { if (player == null || !player.Exists) { return; } if (vehicle == null || !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() != "Busfahrer") { return; } if (player.GetPlayerCurrentMinijobStep() != "DRIVE_BACK_TO_START") { return; } if (!vehicle.Position.IsInRange(Constants.Positions.Minijob_Busdriver_VehOutPos, 8f)) { return; } player.EmitLocked("Client:Minijob:RemoveJobMarker"); foreach (var veh in Alt.Server.GetVehicles().Where(x => x.NumberplateText == $"BUS-{charId}").ToList()) { if (veh == null || !veh.Exists) { continue; } ServerVehicles.RemoveVehiclePermanently(veh); await Task.Delay(5000); veh.Remove(); } int givenEXP = Model.GetRouteGivenEXP((int)player.GetPlayerCurrentMinijobRouteId()); int givenMoney = Model.GetRouteGivenMoney((int)player.GetPlayerCurrentMinijobRouteId()); player.SetPlayerCurrentMinijob("None"); player.SetPlayerCurrentMinijobStep("None"); player.SetPlayerCurrentMinijobActionCount(0); player.SetPlayerCurrentMinijobRouteId(0); CharactersMinijobs.IncreaseCharacterMinijobEXP(charId, "Busfahrer", givenEXP); if (!CharactersBank.HasCharacterBankMainKonto(charId)) { HUDHandler.SendNotification(player, 3, 5000, $"Dein Gehalt i.H.v. {givenMoney}$ konnte nicht überwiesen werden da du kein Hauptkonto hast. Du hast aber {givenEXP}EXP erhalten (du hast nun: {CharactersMinijobs.GetCharacterMinijobEXP(charId, "Busfahrer")}EXP)."); return; } int accNumber = CharactersBank.GetCharacterBankMainKonto(charId); if (accNumber <= 0) { return; } CharactersBank.SetBankAccountMoney(accNumber, CharactersBank.GetBankAccountMoney(accNumber) + givenMoney); ServerBankPapers.CreateNewBankPaper(accNumber, DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")), DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE")), "Eingehende Überweisung", "Los Santos Transit", "Minijob Gehalt", $"+{givenMoney}$", "Online Banking"); HUDHandler.SendNotification(player, 2, 5000, $"Du hast den Minijob erfolgreich abgeschlossen. Dein Gehalt i.H.v. {givenMoney}$ wurde dir auf dein Hauptkonto überwiesen. Du hast {givenEXP} erhalten (deine EXP: {CharactersMinijobs.GetCharacterMinijobEXP(charId, "Busfahrer")})"); return; } catch (Exception e) { Alt.Log($"{e}"); } }
public static async void OnEntityTimer(object sender, ElapsedEventArgs e) { try { Console.WriteLine($"Timer - Thread = {Thread.CurrentThread.ManagedThreadId}"); Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); foreach (IVehicle Veh in Alt.Server.GetVehicles().ToList()) { if (Veh == null || !Veh.Exists) { continue; } using (var vRef = new VehicleRef(Veh)) { if (!vRef.Exists) { continue; } lock (Veh) { if (Veh == null || !Veh.Exists) { continue; } ulong vehID = Veh.GetVehicleId(); if (vehID <= 0) { continue; } ServerVehicles.SaveVehiclePositionAndStates(Veh); if (Veh.EngineOn == true) { ServerVehicles.SetVehicleFuel(Veh, ServerVehicles.GetVehicleFuel(Veh) - 0.03f); } } } } stopwatch.Stop(); Alt.Log($"OnEntityTimer: Vehicle Foreach benötigte: {stopwatch.Elapsed}"); stopwatch.Reset(); stopwatch.Start(); foreach (IPlayer player in Alt.Server.GetPlayers().ToList()) { if (player == null) { continue; } using (var playerReference = new PlayerRef(player)) { if (!playerReference.Exists) { return; } if (player == null || !player.Exists) { continue; } lock (player) { if (player == null || !player.Exists) { continue; } int charId = User.GetPlayerOnline(player); if (charId > 0) { Characters.SetCharacterLastPosition(charId, player.Position, player.Dimension); if (User.IsPlayerBanned(player)) { player.kickWithMessage($"Du bist gebannt. (Grund: {User.GetPlayerBanReason(player)})."); } Characters.SetCharacterHealth(charId, player.Health); Characters.SetCharacterArmor(charId, player.Armor); WeatherHandler.SetRealTime(player); if (player.IsInVehicle) { player.EmitLocked("Client:HUD:GetDistanceForVehicleKM"); HUDHandler.SendInformationToVehicleHUD(player); } Characters.IncreaseCharacterPaydayTime(charId); if (Characters.IsCharacterUnconscious(charId)) { int unconsciousTime = Characters.GetCharacterUnconsciousTime(charId); if (unconsciousTime > 0) { Characters.SetCharacterUnconscious(charId, true, unconsciousTime - 1); } else if (unconsciousTime <= 0) { Characters.SetCharacterUnconscious(charId, false, 0); DeathHandler.closeDeathscreen(player); player.Spawn(new Position(355.54285f, -596.33405f, 28.75768f)); player.Health = player.MaxHealth; } } if (Characters.IsCharacterFastFarm(charId)) { int fastFarmTime = Characters.GetCharacterFastFarmTime(charId); if (fastFarmTime > 0) { Characters.SetCharacterFastFarm(charId, true, fastFarmTime - 1); } else if (fastFarmTime <= 0) { Characters.SetCharacterFastFarm(charId, false, 0); } } if (Characters.IsCharacterInJail(charId)) { int jailTime = Characters.GetCharacterJailTime(charId); if (jailTime > 0) { Characters.SetCharacterJailTime(charId, true, jailTime - 1); } else if (jailTime <= 0) { if (CharactersWanteds.HasCharacterWanteds(charId)) { int jailTimes = CharactersWanteds.GetCharacterWantedFinalJailTime(charId); int jailPrice = CharactersWanteds.GetCharacterWantedFinalJailPrice(charId); if (CharactersBank.HasCharacterBankMainKonto(charId)) { int accNumber = CharactersBank.GetCharacterBankMainKonto(charId); int bankMoney = CharactersBank.GetBankAccountMoney(accNumber); CharactersBank.SetBankAccountMoney(accNumber, bankMoney - jailPrice); HUDHandler.SendNotification(player, 1, 7500, $"Durch deine Inhaftierung wurden dir {jailPrice}$ vom Konto abgezogen."); } HUDHandler.SendNotification(player, 1, 7500, $"Du sitzt nun für {jailTimes} Minuten im Gefängnis."); Characters.SetCharacterJailTime(charId, true, jailTimes); CharactersWanteds.RemoveCharacterWanteds(charId); player.Position = new Position(1691.4594f, 2565.7056f, 45.556763f); if (Characters.GetCharacterGender(charId) == false) { player.EmitLocked("Client:SpawnArea:setCharClothes", 11, 5, 0); player.EmitLocked("Client:SpawnArea:setCharClothes", 3, 5, 0); player.EmitLocked("Client:SpawnArea:setCharClothes", 4, 7, 15); player.EmitLocked("Client:SpawnArea:setCharClothes", 6, 7, 0); player.EmitLocked("Client:SpawnArea:setCharClothes", 8, 1, 88); } else { } } else { Characters.SetCharacterJailTime(charId, false, 0); Characters.SetCharacterCorrectClothes(player); player.Position = new Position(1846.022f, 2585.8945f, 45.657f); HUDHandler.SendNotification(player, 1, 2500, "Du wurdest aus dem Gefängnis entlassen."); } } } if (Characters.GetCharacterPaydayTime(charId) >= 60) { Characters.IncreaseCharacterPlayTimeHours(charId); Characters.ResetCharacterPaydayTime(charId); if (CharactersBank.HasCharacterBankMainKonto(charId)) { int accountNumber = CharactersBank.GetCharacterBankMainKonto(charId); CharactersBank.SetBankAccountMoney(accountNumber, CharactersBank.GetBankAccountMoney(accountNumber) + 250); //250$ Stütze ServerBankPapers.CreateNewBankPaper(accountNumber, DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")), DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE")), "Eingehende Überweisung", "Staat", "Arbeitslosengeld", "+250$", "Unbekannt"); if (!Characters.IsCharacterCrimeFlagged(charId) && Characters.GetCharacterJob(charId) != "None" && DateTime.Now.Subtract(Convert.ToDateTime(Characters.GetCharacterLastJobPaycheck(charId))).TotalHours >= 12 && !ServerFactions.IsCharacterInAnyFaction(charId)) { if (Characters.GetCharacterJobHourCounter(charId) >= ServerJobs.GetJobNeededHours(Characters.GetCharacterJob(charId)) - 1) { int jobCheck = ServerJobs.GetJobPaycheck(Characters.GetCharacterJob(charId)); Characters.SetCharacterLastJobPaycheck(charId, DateTime.Now); Characters.ResetCharacterJobHourCounter(charId); CharactersBank.SetBankAccountMoney(accountNumber, CharactersBank.GetBankAccountMoney(accountNumber) + jobCheck); ServerBankPapers.CreateNewBankPaper(accountNumber, DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")), DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE")), "Eingehende Überweisung", "Arbeitsamt", $"Gehalt: {Characters.GetCharacterJob(charId)}", $"+{jobCheck}$", "Unbekannt"); HUDHandler.SendNotification(player, 1, 5000, $"Gehalt erhalten (Beruf: {Characters.GetCharacterJob(charId)} | Gehalt: {jobCheck}$)"); } else { Characters.IncreaseCharacterJobHourCounter(charId); } } if (ServerFactions.IsCharacterInAnyFaction(charId) && ServerFactions.IsCharacterInFactionDuty(charId)) { int factionid = ServerFactions.GetCharacterFactionId(charId); int factionPayCheck = ServerFactions.GetFactionRankPaycheck(factionid, ServerFactions.GetCharacterFactionRank(charId)); if (ServerFactions.GetFactionBankMoney(factionid) >= factionPayCheck) { ServerFactions.SetFactionBankMoney(factionid, ServerFactions.GetFactionBankMoney(factionid) - factionPayCheck); CharactersBank.SetBankAccountMoney(accountNumber, CharactersBank.GetBankAccountMoney(accountNumber) + factionPayCheck); HUDHandler.SendNotification(player, 1, 5000, $"Du hast deinen Lohn i.H.v. {factionPayCheck}$ erhalten ({ServerFactions.GetFactionRankName(factionid, ServerFactions.GetCharacterFactionRank(charId))})"); ServerBankPapers.CreateNewBankPaper(accountNumber, DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")), DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE")), "Eingehende Überweisung", $"{ServerFactions.GetFactionFullName(factionid)}", $"Gehalt: {ServerFactions.GetFactionRankName(factionid, ServerFactions.GetCharacterFactionRank(charId))}", $"+{factionPayCheck}$", "Dauerauftrag"); LoggingService.NewFactionLog(factionid, charId, 0, "paycheck", $"{Characters.GetCharacterName(charId)} hat seinen Lohn i.H.v. {factionPayCheck}$ erhalten ({ServerFactions.GetFactionRankName(factionid, ServerFactions.GetCharacterFactionRank(charId))})."); } else { HUDHandler.SendNotification(player, 3, 5000, $"Deine Fraktion hat nicht genügend Geld um dich zu bezahlen ({factionPayCheck}$)."); } } var playerVehicles = ServerVehicles.ServerVehicles_.Where(x => x.id > 0 && x.charid == charId && x.plate.Contains("NL")); int taxMoney = 0; foreach (var i in playerVehicles) { if (!i.plate.Contains("NL")) { continue; } taxMoney += ServerAllVehicles.GetVehicleTaxes(i.hash); } if (playerVehicles != null && taxMoney > 0) { if (CharactersBank.GetBankAccountMoney(accountNumber) < taxMoney) { HUDHandler.SendNotification(player, 3, 5000, $"Deine Fahrzeugsteuern konnten nicht abgebucht werden ({taxMoney}$)"); } else { CharactersBank.SetBankAccountMoney(accountNumber, CharactersBank.GetBankAccountMoney(accountNumber) - taxMoney); ServerBankPapers.CreateNewBankPaper(accountNumber, DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")), DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE")), "Ausgehende Überweisung", "Zulassungsamt", $"Fahrzeugsteuer", $"-{taxMoney}$", "Bankeinzug"); HUDHandler.SendNotification(player, 1, 5000, $"Du hast deine Fahrzeugsteuern i.H.v. {taxMoney}$ bezahlt."); } } } else { HUDHandler.SendNotification(player, 3, 5000, $"Dein Einkommen konnte nicht überwiesen werden da du kein Hauptkonto hast."); } } } } } } stopwatch.Stop(); Alt.Log($"OnEntityTimer: Player Foreach benötigte: {stopwatch.Elapsed}"); } catch (Exception ex) { Alt.Log($"{ex}"); } }
void Awake() { CharBank = this; }
public async Task BuyUpgrade(IPlayer player, int houseId, string upgrade) { try { if (player == null || !player.Exists || houseId <= 0) { return; } if (upgrade != "alarm" && upgrade != "storage" && upgrade != "bank") { return; } int charId = (int)player.GetCharacterMetaId(); if (charId <= 0) { return; } int dimension = player.Dimension; if (dimension <= 10000) { return; } int dhouseId = dimension - 10000; if (dhouseId <= 0 || dhouseId != houseId || !ServerHouses.ExistHouse(houseId)) { return; } if (ServerHouses.GetHouseOwner(houseId) != charId) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Du bist nicht der Hausbesitzer."); return; } switch (upgrade) { case "alarm": if (ServerHouses.HasHouseAlarmUpgrade(houseId)) { HUDHandler.SendNotification(player, 4, 2500, "Dein Haus besitzt bereits eine Alarmanlage."); return; } if (!ServerHouses.HasHouseBankUpgrade(houseId)) { HUDHandler.SendNotification(player, 4, 2500, "Du hast noch keinen Tresor ausgebaut in dem genügend Geld ist (500$)."); return; } if (ServerHouses.GetHouseBankMoney(houseId) < 500) { HUDHandler.SendNotification(player, 4, 2500, "Dein Haustresor verfügt nicht über die Kosten (500$)."); return; } ServerHouses.SetHouseBankMoney(houseId, ServerHouses.GetHouseBankMoney(houseId) - 500); ServerHouses.SetHouseUpgradeState(houseId, "alarm", true); HUDHandler.SendNotification(player, 2, 2500, $"Du hast das Hausupgrade 'Alarmanlage' erfolgreich erworben."); return; case "storage": if (ServerHouses.HasHouseStorageUpgrade(houseId)) { HUDHandler.SendNotification(player, 4, 2500, "Dein Haus besitzt bereits eine Lagermöglichkeit."); return; } if (!ServerHouses.HasHouseBankUpgrade(houseId)) { HUDHandler.SendNotification(player, 4, 2500, "Du hast noch keinen Tresor ausgebaut in dem genügend Geld ist (1500$)."); return; } if (ServerHouses.GetHouseBankMoney(houseId) < 1500) { HUDHandler.SendNotification(player, 4, 2500, "Dein Haustresor verfügt nicht über die Kosten (1500$)."); return; } ServerHouses.SetHouseBankMoney(houseId, ServerHouses.GetHouseBankMoney(houseId) - 1500); ServerHouses.SetHouseUpgradeState(houseId, "storage", true); HUDHandler.SendNotification(player, 2, 2500, $"Du hast das Hausupgrade 'Lagerraum' erfolgreich erworben."); return; case "bank": if (ServerHouses.HasHouseBankUpgrade(houseId)) { HUDHandler.SendNotification(player, 4, 2500, "Dein Haus besitzt bereits einen Tersor."); return; } if (!CharactersBank.HasCharacterBankMainKonto(charId)) { HUDHandler.SendNotification(player, 4, 5000, "Du besitzt noch kein Hauptkonto in deiner Bank."); return; } int accNumber = CharactersBank.GetCharacterBankMainKonto(charId); if (accNumber <= 0) { return; } if (CharactersBank.GetBankAccountMoney(accNumber) < 250) { HUDHandler.SendNotification(player, 4, 5000, "Dein Hauptkonto ist nicht ausreichend gedeckt (250$)."); return; } CharactersBank.SetBankAccountMoney(accNumber, CharactersBank.GetBankAccountMoney(accNumber) - 250); ServerHouses.SetHouseUpgradeState(houseId, "bank", true); HUDHandler.SendNotification(player, 2, 2500, $"Du hast das Hausupgrade 'Tresor' erfolgreich erworben."); return; } } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task GiveLicense(IPlayer player, int targetCharId, string licShort) { try { if (player == null || !player.Exists || targetCharId <= 0 || licShort == "") { return; } int charId = User.GetPlayerOnline(player); if (charId <= 0) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das gefesselt machen?"); return; } if (!ServerFactions.IsCharacterInAnyFaction(charId)) { HUDHandler.SendNotification(player, 3, 5000, "Du bist in keiner Fraktion."); return; } if (!ServerFactions.IsCharacterInFactionDuty(charId)) { HUDHandler.SendNotification(player, 3, 5000, "Du bist nicht im Dienst."); return; } if (ServerFactions.GetCharacterFactionId(charId) != 5) { HUDHandler.SendNotification(player, 3, 5000, "Du bist kein Angehöriger der Fahrschule."); return; } var targetPlayer = Alt.Server.GetPlayers().ToList().FirstOrDefault(x => x.GetCharacterMetaId() == (ulong)targetCharId); if (targetPlayer == null || !targetPlayer.Exists) { return; } if (targetCharId != (int)targetPlayer.GetCharacterMetaId()) { return; } if (!player.Position.IsInRange(targetPlayer.Position, 5f)) { HUDHandler.SendNotification(player, 3, 5000, "Du bist zu weit entfernt."); return; } if (!CharactersLicenses.ExistServerLicense(licShort)) { HUDHandler.SendNotification(player, 3, 5000, "Ein unerwarteter Fehler ist aufgetreten."); return; } if (CharactersLicenses.HasCharacterLicense(targetCharId, licShort)) { HUDHandler.SendNotification(player, 3, 5000, "Der Spieler hat diese Lizenz bereits."); return; } if (!CharactersBank.HasCharacterBankMainKonto(targetCharId)) { HUDHandler.SendNotification(player, 3, 5000, "Der Spieler besitzt kein Hauptkonto."); return; } int accNumber = CharactersBank.GetCharacterBankMainKonto(targetCharId); int licPrice = CharactersLicenses.GetLicensePrice(licShort); if (CharactersBank.GetBankAccountLockStatus(accNumber)) { HUDHandler.SendNotification(player, 3, 5000, "Das Hauptkonto des Spielers ist gesperrt."); return; } CharactersBank.SetBankAccountMoney(accNumber, CharactersBank.GetBankAccountMoney(accNumber) - licPrice); ServerBankPapers.CreateNewBankPaper(accNumber, DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")), DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE")), "Ausgehende Überweisung", "Fahrschule", $"Lizenzkauf: {CharactersLicenses.GetFullLicenseName(licShort)}", $"-{licPrice}$", "Bankeinzug"); CharactersLicenses.SetCharacterLicense(targetCharId, licShort, true); ServerFactions.SetFactionBankMoney(5, ServerFactions.GetFactionBankMoney(5) + licPrice); HUDHandler.SendNotification(player, 2, 2000, $"Sie haben dem Spieler {Characters.GetCharacterName(targetCharId)} die Lizenz '{CharactersLicenses.GetFullLicenseName(licShort)}' für eine Gebühr i.H.v. {licPrice}$ ausgestellt."); HUDHandler.SendNotification(targetPlayer, 2, 2000, $"Ihnen wurde die Lizenz '{CharactersLicenses.GetFullLicenseName(licShort)}' für eine Gebühr i.H.v. {licPrice}$ ausgestellt, diese wurde von Ihrem Hauptkonto abgebucht."); } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task UseItem(ClassicPlayer player, string itemname, int itemAmount, string fromContainer) { try { string ECData = null, CarKeyData = null; if (player == null || !player.Exists || itemname == "" || itemAmount <= 0 || fromContainer == "" || User.GetPlayerOnline(player) == 0) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } if (ServerItems.IsItemUseable(ServerItems.ReturnNormalItemName(itemname)) == false) { HUDHandler.SendNotification(player, 4, 5000, $"Dieser Gegenstand ist nicht benutzbar ({itemname})!"); return; } int charId = player.CharacterId; if (charId <= 0 || CharactersInventory.ExistCharacterItem(charId, itemname, fromContainer) == false) { return; } if (CharactersInventory.GetCharacterItemAmount(charId, itemname, fromContainer) < itemAmount) { HUDHandler.SendNotification(player, 4, 5000, $"Die angegeben zu nutzende Anzahl ist nicht vorhanden ({itemname})!"); return; } if (itemname.Contains("EC Karte")) { string[] SplittedItemName = itemname.Split(' '); ECData = itemname.Replace("EC Karte ", ""); itemname = "EC Karte"; } else if (itemname.Contains("Fahrzeugschluessel")) { string[] SplittedItemName = itemname.Split(' '); CarKeyData = itemname.Replace("Fahrzeugschluessel ", ""); itemname = "Autoschluessel"; } if (ServerItems.IsItemDesire(itemname)) { CharactersInventory.RemoveCharacterItemAmount(charId, itemname, itemAmount, fromContainer); Characters.SetCharacterHunger(charId, Characters.GetCharacterHunger(charId) + ServerItems.GetItemDesireFood(itemname) * itemAmount); Characters.SetCharacterThirst(charId, Characters.GetCharacterThirst(charId) + ServerItems.GetItemDesireDrink(itemname) * itemAmount); player.EmitLocked("Client:HUD:UpdateDesire", Characters.GetCharacterHunger(charId), Characters.GetCharacterThirst(charId)); //HUD updaten } else if (itemname == "Beamtenschutzweste") { CharactersInventory.RemoveCharacterItemAmount(charId, "Beamtenschutzweste", 1, fromContainer); Characters.SetCharacterArmor(charId, 100); player.Armor = 100; } if (itemname == "Rucksack" || itemname == "Tasche") { if (fromContainer == "backpack") { HUDHandler.SendNotification(player, 3, 5000, "Kleidungen & Taschen können nicht aus dem Rucksack aus benutzt werden."); return; } if (Characters.GetCharacterBackpack(charId) == "Rucksack") { if (itemname == "Rucksack") { if (CharactersInventory.GetCharacterBackpackItemCount(charId) == 0) { Characters.SetCharacterBackpack(player, "None"); HUDHandler.SendNotification(player, 2, 5000, "Du hast deinen Rucksack ausgezogen."); } else { HUDHandler.SendNotification(player, 4, 5000, "Du hast zuviele Sachen im Rucksack, du kannst deinen Rucksack nicht ablegen."); } } else { HUDHandler.SendNotification(player, 3, 5000, "Du hast bereits eine Tasche angelegt, lege diese vorher ab um deinen Rucksack anzulegen."); } } else if (Characters.GetCharacterBackpack(charId) == "Tasche") { if (itemname == "Tasche") { if (CharactersInventory.GetCharacterBackpackItemCount(charId) == 0) { Characters.SetCharacterBackpack(player, "None"); HUDHandler.SendNotification(player, 2, 5000, "Du hast deine Tasche ausgezogen."); } else { HUDHandler.SendNotification(player, 4, 5000, "Du hast zuviele Sachen in deiner Tasche, du kannst deine Tasche nicht ablegen."); } } else { HUDHandler.SendNotification(player, 3, 5000, "Du hast bereits einen Rucksack angelegt, lege diesen vorher ab um deine Tasche anzulegen."); } } else if (Characters.GetCharacterBackpack(charId) == "None") { Characters.SetCharacterBackpack(player, itemname); HUDHandler.SendNotification(player, 2, 5000, "Du hast deine Tasche / deinen Rucksack angezogen."); } } else if (itemname == "EC Karte") { var atmPos = ServerATM.ServerATM_.FirstOrDefault(x => player.Position.IsInRange(new Position(x.posX, x.posY, x.posZ), 1f)); if (atmPos == null || player.IsInVehicle) { HUDHandler.SendNotification(player, 3, 5000, "Du bist an keinem ATM oder sitzt in einem Auto."); return; } int usingAccountNumber = Convert.ToInt32(ECData); if (CharactersBank.GetBankAccountLockStatus(usingAccountNumber)) { if (CharactersInventory.ExistCharacterItem(charId, "EC Karte " + usingAccountNumber, "inventory")) { CharactersInventory.RemoveCharacterItemAmount(charId, "EC Karte " + usingAccountNumber, 1, "inventory"); } HUDHandler.SendNotification(player, 3, 5000, $"Ihre EC Karte wurde einzogen da diese gesperrt ist."); return; } player.EmitLocked("Client:ATM:BankATMcreateCEF", CharactersBank.GetBankAccountPIN(usingAccountNumber), usingAccountNumber, atmPos.zoneName); } else if (ServerItems.GetItemType(itemname) == "weapon") { if (itemname.Contains("Munitionsbox")) { string wName = itemname.Replace(" Munitionsbox", ""); CharactersInventory.RemoveCharacterItemAmount(charId, itemname, itemAmount, fromContainer); CharactersInventory.AddCharacterItem(charId, $"{wName} Munition", 30 * itemAmount, fromContainer); } else if (itemname.Contains("Munition")) { WeaponHandler.EquipCharacterWeapon(player, "Ammo", itemname, itemAmount, fromContainer); } else { WeaponHandler.EquipCharacterWeapon(player, "Weapon", itemname, 0, fromContainer); } } else if (itemname == "Brecheisen") { var house = ServerHouses.ServerHouses_.FirstOrDefault(x => x.ownerId > 0 && x.isLocked && ((ClassicColshape)x.entranceShape).IsInRange((ClassicPlayer)player)); if (house != null) { HouseHandler.BreakIntoHouse(player, house.id); return; } } else if (itemname == "Verbandskasten") { CharactersInventory.RemoveCharacterItemAmount(charId, "Verbandskasten", 1, fromContainer); Characters.SetCharacterHealth(charId, 200); player.Health = 200; } else if (itemname == "Benzinkanister" && player.IsInVehicle && player.Vehicle.Exists) { if (ServerVehicles.GetVehicleFuel(player.Vehicle) >= ServerVehicles.GetVehicleFuelLimitOnHash(player.Vehicle.Model)) { HUDHandler.SendNotification(player, 4, 2000, "Der Tank ist bereits voll."); return; } CharactersInventory.RemoveCharacterItemAmount(charId, "Benzinkanister", 1, fromContainer); ServerVehicles.SetVehicleFuel(player.Vehicle, ServerVehicles.GetVehicleFuel(player.Vehicle) + 15.0f); HUDHandler.SendNotification(player, 2, 2000, "Du hast das Fahrzeug erfolgreich aufgetankt."); } else if (itemname == "Weste") { CharactersInventory.RemoveCharacterItemAmount(charId, "Weste", 1, fromContainer); Characters.SetCharacterArmor(charId, 100); player.Armor = 100; if (Characters.GetCharacterGender(charId)) { player.EmitLocked("Client:SpawnArea:setCharClothes", 9, 17, 2); } else { player.EmitLocked("Client:SpawnArea:setCharClothes", 9, 15, 2); } } else if (itemname == "Pedalo") { HUDHandler.SendNotification(player, 1, 3500, "Bruder muss los.."); player.EmitLocked("Client:Ragdoll:SetPedToRagdoll", true, 0); //Ragdoll setzen player.EmitLocked("Client:Ragdoll:SetPedToRagdoll", false, 0); //Ragdoll setzen } else if (itemname == "Kokain") { CharactersInventory.RemoveCharacterItemAmount(charId, "Kokain", 1, fromContainer); HUDHandler.SendNotification(player, 2, 2000, "Du hast Koks gezogen du bist nun 15 Minuten effektiver."); player.EmitLocked("Client:Inventory:PlayEffect", "DrugsMichaelAliensFight", 900000); Characters.SetCharacterFastFarm(charId, true, 15); } else if (itemname == "Joint") { if (player.Armor >= 60) { HUDHandler.SendNotification(player, 3, 2000, "Weiter kannst du dich nicht selbst heilen."); return; } CharactersInventory.RemoveCharacterItemAmount(charId, "Joint", 1, fromContainer); Characters.SetCharacterArmor(charId, 15); player.Armor = +15; } else if (itemname == "Smartphone") { Alt.Log("Phone benutzt."); if (Characters.IsCharacterPhoneEquipped(charId)) { Alt.Log("Phone benutzt2."); player.EmitLocked("Client:Smartphone:equipPhone", false, Characters.GetCharacterPhonenumber(charId), Characters.IsCharacterPhoneFlyModeEnabled(charId)); HUDHandler.SendNotification(player, 2, 1500, "Smartphone ausgeschaltet."); } else { Alt.Log("Phone benutzt3."); player.EmitLocked("Client:Smartphone:equipPhone", true, Characters.GetCharacterPhonenumber(charId), Characters.IsCharacterPhoneFlyModeEnabled(charId)); HUDHandler.SendNotification(player, 2, 1500, "Smartphone eingeschaltet."); } Characters.SetCharacterPhoneEquipped(charId, !Characters.IsCharacterPhoneEquipped(charId)); SmartphoneHandler.RequestLSPDIntranet((ClassicPlayer)player); } if (ServerItems.hasItemAnimation(ServerItems.ReturnNormalItemName(itemname))) { InventoryAnimation(player, ServerItems.GetItemAnimationName(ServerItems.ReturnNormalItemName(itemname)), 0); } RequestInventoryItems(player); //HUDHandler.SendNotification(player, 2, 5000, $"DEBUG: Der Gegenstand {itemname} ({itemAmount}) wurde erfolgreich aus ({fromContainer}) benutzt."); } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task PressE(IPlayer player) { lock (player) { if (player == null || !player.Exists) { return; } int charId = User.GetPlayerOnline(player); if (charId == 0) { return; } ClassicColshape farmCol = (ClassicColshape)ServerFarmingSpots.ServerFarmingSpotsColshapes_.FirstOrDefault(x => ((ClassicColshape)x).IsInRange((ClassicPlayer)player)); if (farmCol != null && !player.IsInVehicle) { if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } if (player.GetPlayerFarmingActionMeta() != "None") { return; } var farmColData = ServerFarmingSpots.ServerFarmingSpots_.FirstOrDefault(x => x.id == (int)farmCol.GetColShapeId()); if (farmColData != null) { if (farmColData.neededItemToFarm != "None") { if (!CharactersInventory.ExistCharacterItem(charId, farmColData.neededItemToFarm, "inventory") && !CharactersInventory.ExistCharacterItem(charId, farmColData.neededItemToFarm, "backpack")) { HUDHandler.SendNotification(player, 3, 3500, $"Zum Farmen benötigst du: {farmColData.neededItemToFarm}."); return; } } player.SetPlayerFarmingActionMeta("farm"); FarmingHandler.FarmFieldAction(player, farmColData.itemName, farmColData.itemMinAmount, farmColData.itemMaxAmount, farmColData.animation, farmColData.duration); return; } } ClassicColshape farmProducerCol = (ClassicColshape)ServerFarmingSpots.ServerFarmingProducerColshapes_.FirstOrDefault(x => ((ClassicColshape)x).IsInRange((ClassicPlayer)player)); if (farmProducerCol != null && !player.IsInVehicle) { if (player.GetPlayerFarmingActionMeta() != "None") { HUDHandler.SendNotification(player, 3, 5000, $"Warte einen Moment."); return; } var farmColData = ServerFarmingSpots.ServerFarmingProducer_.FirstOrDefault(x => x.id == (int)farmProducerCol.GetColShapeId()); if (farmColData != null) { FarmingHandler.ProduceItem(player, farmColData.neededItem, farmColData.producedItem, farmColData.neededItemAmount, farmColData.producedItemAmount, farmColData.duration); return; } } if (((ClassicColshape)Minijobs.Elektrolieferant.Main.startJobShape).IsInRange((ClassicPlayer)player)) { Minijobs.Elektrolieferant.Main.StartMinijob(player); return; } if (((ClassicColshape)Minijobs.Pilot.Main.startJobShape).IsInRange((ClassicPlayer)player)) { Minijobs.Pilot.Main.TryStartMinijob(player); return; } if (((ClassicColshape)Minijobs.Müllmann.Main.startJobShape).IsInRange((ClassicPlayer)player)) { Minijobs.Müllmann.Main.StartMinijob(player); return; } if (((ClassicColshape)Minijobs.Busfahrer.Main.startJobShape).IsInRange((ClassicPlayer)player)) { Minijobs.Busfahrer.Main.TryStartMinijob(player); return; } var houseEntrance = ServerHouses.ServerHouses_.FirstOrDefault(x => ((ClassicColshape)x.entranceShape).IsInRange((ClassicPlayer)player)); if (houseEntrance != null) { HouseHandler.openEntranceCEF(player, houseEntrance.id); return; } var hotelPos = ServerHotels.ServerHotels_.FirstOrDefault(x => player.Position.IsInRange(new Position(x.posX, x.posY, x.posZ), 2f)); if (hotelPos != null && !player.IsInVehicle) { HotelHandler.openCEF(player, hotelPos); return; } if (player.Dimension >= 5000) { int houseInteriorCount = ServerHouses.GetMaxInteriorsCount(); for (var i = 1; i <= houseInteriorCount; i++) { if (i > houseInteriorCount || i <= 0) { continue; } if ((player.Dimension >= 5000 && player.Dimension < 10000) && player.Position.IsInRange(ServerHouses.GetInteriorExitPosition(i), 2f)) { //Apartment Leave HotelHandler.LeaveHotel(player); return; } else if ((player.Dimension >= 5000 && player.Dimension < 10000) && player.Position.IsInRange(ServerHouses.GetInteriorStoragePosition(i), 2f)) { //Apartment Storage HotelHandler.openStorage(player); return; } else if (player.Dimension >= 10000 && player.Position.IsInRange(ServerHouses.GetInteriorExitPosition(i), 2f)) { //House Leave HouseHandler.LeaveHouse(player, i); return; } else if (player.Dimension >= 10000 && player.Position.IsInRange(ServerHouses.GetInteriorStoragePosition(i), 2f)) { //House Storage HouseHandler.openStorage(player); return; } else if (player.Dimension >= 10000 && player.Position.IsInRange(ServerHouses.GetInteriorManagePosition(i), 2f)) { //Hausverwaltung HouseHandler.openManageCEF(player); return; } } } var teleportsPos = ServerItems.ServerTeleports_.FirstOrDefault(x => player.Position.IsInRange(new Position(x.posX, x.posY, x.posZ), 1.5f)); if (teleportsPos != null && !player.IsInVehicle) { player.Position = new Position(teleportsPos.targetX, teleportsPos.targetY, teleportsPos.targetZ + 0.5f); return; } var shopPos = ServerShops.ServerShops_.FirstOrDefault(x => player.Position.IsInRange(new Position(x.posX, x.posY, x.posZ), 3f)); if (shopPos != null && !player.IsInVehicle) { if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } ShopHandler.openShop(player, shopPos); return; } var garagePos = ServerGarages.ServerGarages_.FirstOrDefault(x => player.Position.IsInRange(new Position(x.posX, x.posY, x.posZ), 2f)); if (garagePos != null && !player.IsInVehicle) { GarageHandler.OpenGarageCEF(player, garagePos.id); return; } var clothesStoragePos = ServerClothesStorages.ServerClothesStorages_.ToList().FirstOrDefault(x => player.Position.IsInRange(new Position(x.posX, x.posY, x.posZ), 5f)); if (clothesStoragePos != null && !player.IsInVehicle) { ServerClothesStorages.RequestClothesStorage((ClassicPlayer)player, clothesStoragePos.id); return; } var clothesShopPos = ServerClothesShops.ServerClothesShops_.FirstOrDefault(x => player.Position.IsInRange(new Position(x.posX, x.posY, x.posZ), 6f)); if (clothesShopPos != null && !player.IsInVehicle) { ShopHandler.openClothesShop((ClassicPlayer)player, clothesShopPos.id); return; } var tattooShop = ServerTattooShops.ServerTattooShops_.ToList().FirstOrDefault(x => x.owner != 0 && player.Position.IsInRange(new Position(x.pedX, x.pedY, x.pedZ), 2.5f)); if (tattooShop != null && !player.IsInVehicle) { ShopHandler.openTattooShop((ClassicPlayer)player, tattooShop); return; } var vehicleShopPos = ServerVehicleShops.ServerVehicleShops_.FirstOrDefault(x => player.Position.IsInRange(new Position(x.pedX, x.pedY, x.pedZ), 2f)); if (vehicleShopPos != null && !player.IsInVehicle) { if (vehicleShopPos.neededLicense != "None" && !Characters.HasCharacterPermission(charId, vehicleShopPos.neededLicense)) { HUDHandler.SendNotification(player, 3, 5000, $"Du hast hier keinen Zugriff drauf."); return; } ShopHandler.OpenVehicleShop(player, vehicleShopPos.name, vehicleShopPos.id); return; } var bankPos = ServerBanks.ServerBanks_.FirstOrDefault(x => player.Position.IsInRange(new Position(x.posX, x.posY, x.posZ), 1f)); if (bankPos != null && !player.IsInVehicle) { if (bankPos.zoneName == "Maze Bank Fraktion") { if (!ServerFactions.IsCharacterInAnyFaction(charId)) { return; } if (ServerFactions.GetCharacterFactionRank(charId) != ServerFactions.GetFactionMaxRankCount(ServerFactions.GetCharacterFactionId(charId)) && ServerFactions.GetCharacterFactionRank(charId) != ServerFactions.GetFactionMaxRankCount(ServerFactions.GetCharacterFactionId(charId)) - 1) { return; } player.EmitLocked("Client:FactionBank:createCEF", "faction", ServerFactions.GetCharacterFactionId(charId), ServerFactions.GetFactionBankMoney(ServerFactions.GetCharacterFactionId(charId))); return; } else if (bankPos.zoneName == "Maze Bank Company") { if (!ServerCompanys.IsCharacterInAnyServerCompany(charId)) { return; } if (ServerCompanys.GetCharacterServerCompanyRank(charId) != 1 && ServerCompanys.GetCharacterServerCompanyRank(charId) != 2) { HUDHandler.SendNotification(player, 3, 5000, "Du hast kein Unternehmen auf welches du zugreifen kannst."); return; } player.EmitLocked("Client:FactionBank:createCEF", "company", ServerCompanys.GetCharacterServerCompanyId(charId), ServerCompanys.GetServerCompanyMoney(ServerCompanys.GetCharacterServerCompanyId(charId))); return; } else { var bankArray = CharactersBank.GetCharacterBankAccounts(charId); player.EmitLocked("Client:Bank:createBankAccountManageForm", bankArray, bankPos.zoneName); return; } } var barberPos = ServerBarbers.ServerBarbers_.FirstOrDefault(x => player.Position.IsInRange(new Position(x.posX, x.posY, x.posZ), 2f)); if (barberPos != null && !player.IsInVehicle) { player.EmitLocked("Client:Barber:barberCreateCEF", Characters.GetCharacterHeadOverlays(charId)); return; } if (player.Position.IsInRange(Constants.Positions.VehicleLicensing_Position, 3f)) { if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } VehicleHandler.OpenLicensingCEF(player); return; } if (ServerFactions.IsCharacterInAnyFaction(charId)) { int factionId = ServerFactions.GetCharacterFactionId(charId); var factionDutyPos = ServerFactions.ServerFactionPositions_.FirstOrDefault(x => x.factionId == factionId && x.posType == "duty" && player.Position.IsInRange(new Position(x.posX, x.posY, x.posZ), 2f)); if (factionDutyPos != null && !player.IsInVehicle) { bool isDuty = ServerFactions.IsCharacterInFactionDuty(charId); ServerFactions.SetCharacterInFactionDuty(charId, !isDuty); if (isDuty) { HUDHandler.SendNotification(player, 2, 5000, "Du hast dich erfolgreich vom Dienst abgemeldet."); } else { HUDHandler.SendNotification(player, 2, 5000, "Du hast dich erfolgreich zum Dienst angemeldet."); } if (factionId == 2 || factionId == 12) { SmartphoneHandler.RequestLSPDIntranet((ClassicPlayer)player); } return; } var factionStoragePos = ServerFactions.ServerFactionPositions_.FirstOrDefault(x => x.factionId == factionId && x.posType == "storage" && player.Position.IsInRange(new Position(x.posX, x.posY, x.posZ), 2f)); if (factionStoragePos != null && !player.IsInVehicle) { if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } bool isDuty = ServerFactions.IsCharacterInFactionDuty(charId); if (isDuty) { var factionStorageContent = ServerFactions.GetServerFactionStorageItems(factionId, charId); //Fraktionsspind Items var CharacterInvArray = CharactersInventory.GetCharacterInventory(charId); //Spieler Inventar player.EmitLocked("Client:FactionStorage:openCEF", charId, factionId, "faction", CharacterInvArray, factionStorageContent); return; } } var factionServicePhonePos = ServerFactions.ServerFactionPositions_.ToList().FirstOrDefault(x => x.factionId == factionId && x.posType == "servicephone" && player.Position.IsInRange(new Position(x.posX, x.posY, x.posZ), 2f)); if (factionServicePhonePos != null && !player.IsInVehicle && ServerFactions.IsCharacterInFactionDuty(charId)) { ServerFactions.UpdateCurrentServicePhoneOwner(factionId, charId); ServerFactions.sendMsg(factionId, $"{Characters.GetCharacterName(charId)} hat das Leitstellentelefon deiner Fraktion übernommen."); return; } } if (player.Position.IsInRange(Constants.Positions.Jobcenter_Position, 2.5f) && !Characters.IsCharacterCrimeFlagged(charId) && !player.IsInVehicle) //Arbeitsamt { TownhallHandler.createJobcenterBrowser(player); return; } if (player.Position.IsInRange(Constants.Positions.TownhallHouseSelector, 2.5f)) { TownhallHandler.openHouseSelector(player); return; } if (player.Position.IsInRange(Constants.Positions.IdentityCardApply, 2.5f) && Characters.GetCharacterAccState(charId) == 0 && !player.IsInVehicle) //Rathaus IdentityCardApply { TownhallHandler.tryCreateIdentityCardApplyForm(player); return; } } }