public async Task buyClothesShopItem(ClassicPlayer player, int shopId, int amount, string clothesName) { try { if (player == null || !player.Exists || player.CharacterId <= 0 || !ServerClothesShops.ExistClothesShop(shopId) || amount <= 0 || !ServerClothes.ExistClothes(clothesName)) { return; } if (CharactersClothes.ExistCharacterClothes(player.CharacterId, clothesName)) { HUDHandler.SendNotification(player, 3, 2500, "Dieses Anziehteil besitzt du bereits."); return; } if (ServerClothes.GetClothesType(clothesName) == "Torso") { Characters.SwitchCharacterClothes(player, "Torso", clothesName); return; } int price = ServerClothesShops.GetClothesPrice(shopId, clothesName) * amount; if (!CharactersInventory.ExistCharacterItem(player.CharacterId, "Bargeld", "inventory") || CharactersInventory.GetCharacterItemAmount(player.CharacterId, "Bargeld", "inventory") < price) { return; } CharactersInventory.RemoveCharacterItemAmount(player.CharacterId, "Bargeld", price, "inventory"); CharactersClothes.CreateCharacterOwnedClothes(player.CharacterId, clothesName); Characters.SwitchCharacterClothes(player, ServerClothes.GetClothesType(clothesName), clothesName); } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task RepairVehicle(IPlayer player, IVehicle vehicle) { try { if (player == null || !player.Exists || vehicle == null || !vehicle.Exists) { return; } int charId = (int)player.GetCharacterMetaId(); if (charId <= 0 || player.HasPlayerRopeCuffs() || player.HasPlayerHandcuffs() || player.IsPlayerUnconscious()) { return; } if (!CharactersInventory.ExistCharacterItem(charId, "Reparaturkit", "inventory") && !CharactersInventory.ExistCharacterItem(charId, "Reparaturkit", "backpack")) { HUDHandler.SendNotification(player, 4, 2000, "Du besitzt kein Reparaturkit."); return; } if (CharactersInventory.ExistCharacterItem(charId, "Reparaturkit", "inventory")) { CharactersInventory.RemoveCharacterItemAmount(charId, "Reparaturkit", 1, "inventory"); } else if (CharactersInventory.ExistCharacterItem(charId, "Reparaturkit", "backpack")) { CharactersInventory.RemoveCharacterItemAmount(charId, "Reparaturkit", 1, "backpack"); } //ToDo: Reparatur-Animation abspielen ServerVehicles.SetVehicleEngineHealthy(vehicle, true); Alt.EmitAllClients("Client:Utilities:repairVehicle", vehicle); //player.EmitLocked("Client:Utilities:repairVehicle", vehicle); } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task ClientEvent_buyTattoo(ClassicPlayer player, int shopId, int tattooId) { try { if (player == null || !player.Exists || player.CharacterId <= 0 || shopId <= 0 || tattooId <= 0 || !ServerTattoos.ExistTattoo(tattooId) || CharactersTattoos.ExistAccountTattoo(player.CharacterId, tattooId) || !ServerTattooShops.ExistTattooShop(shopId)) { return; } int price = ServerTattoos.GetTattooPrice(tattooId); if (!CharactersInventory.ExistCharacterItem(player.CharacterId, "Bargeld", "inventory") || CharactersInventory.GetCharacterItemAmount(player.CharacterId, "Bargeld", "inventory") < price) { HUDHandler.SendNotification(player, 4, 5000, $"Fehler: Du hast nicht genügend Geld dabei ({price}$)."); return; } CharactersInventory.RemoveCharacterItemAmount(player.CharacterId, "Bargeld", price, "inventory"); ServerTattooShops.SetTattooShopBankMoney(shopId, ServerTattooShops.GetTattooShopBank(shopId) + price); CharactersTattoos.CreateNewEntry(player.CharacterId, tattooId); HUDHandler.SendNotification(player, 2, 1500, $"Du hast das Tattoo '{ServerTattoos.GetTattooName(tattooId)}' für {price}$ gekauft."); player.updateTattoos(); } catch (Exception e) { Console.WriteLine($"{e}"); } }
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 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 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 BuyVehicle(IPlayer player, int shopid, string hash) { try { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); if (player == null || !player.Exists || shopid <= 0 || hash == "") { return; } ulong fHash = Convert.ToUInt64(hash); int charId = User.GetPlayerOnline(player); if (charId == 0 || fHash == 0) { return; } int Price = ServerVehicleShops.GetVehicleShopPrice(shopid, fHash); bool PlaceFree = true; Position ParkOut = ServerVehicleShops.GetVehicleShopOutPosition(shopid); Rotation RotOut = ServerVehicleShops.GetVehicleShopOutRotation(shopid); foreach (IVehicle veh in Alt.Server.GetVehicles().ToList()) { if (veh.Position.IsInRange(ParkOut, 2f)) { PlaceFree = false; break; } } if (!PlaceFree) { HUDHandler.SendNotification(player, 3, 5000, $"Der Ausladepunkt ist belegt."); return; } int rnd = new Random().Next(100000, 999999); if (ServerVehicles.ExistServerVehiclePlate($"NL{rnd}")) { BuyVehicle(player, shopid, hash); return; } if (!CharactersInventory.ExistCharacterItem(charId, "Bargeld", "inventory") || CharactersInventory.GetCharacterItemAmount(charId, "Bargeld", "inventory") < Price) { HUDHandler.SendNotification(player, 4, 5000, $"Du hast nicht genügend Bargeld dabei ({Price}$)."); return; } CharactersInventory.RemoveCharacterItemAmount(charId, "Bargeld", Price, "inventory"); ServerVehicles.CreateVehicle(fHash, charId, 0, 0, false, 25, ParkOut, RotOut, $"NL{rnd}", 134, 134); CharactersInventory.AddCharacterItem(charId, $"Fahrzeugschluessel NL{rnd}", 2, "inventory"); HUDHandler.SendNotification(player, 2, 5000, $"Fahrzeug erfolgreich gekauft."); if (!CharactersTablet.HasCharacterTutorialEntryFinished(charId, "buyVehicle")) { CharactersTablet.SetCharacterTutorialEntryState(charId, "buyVehicle", true); HUDHandler.SendNotification(player, 1, 2500, "Erfolg freigeschaltet: Mobilität"); } stopwatch.Stop(); if (stopwatch.Elapsed.Milliseconds > 30) { Alt.Log($"{charId} - BuyVehicle benötigte {stopwatch.Elapsed.Milliseconds}ms"); } } catch (Exception e) { Alt.Log($"{e}"); } }
public static async Task RequestInventoryItems(IPlayer player) { try { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); if (player == null || !player.Exists) { return; } int charId = User.GetPlayerOnline(player); if (charId <= 0) { return; } if (!CharactersTablet.HasCharacterTutorialEntryFinished(charId, "openInventory")) { CharactersTablet.SetCharacterTutorialEntryState(charId, "openInventory", true); HUDHandler.SendNotification(player, 1, 5000, "Erfolg freigeschaltet: Inventar öffnen."); } string invArray = CharactersInventory.GetCharacterInventory(User.GetPlayerOnline(player)); player.EmitLocked("Client:Inventory:AddInventoryItems", invArray, Characters.GetCharacterBackpackSize(Characters.GetCharacterBackpack(User.GetPlayerOnline(player))), 0); if (stopwatch.Elapsed.Milliseconds > 30) { Alt.Log($"{charId} - Inventaraufruf benötigte {stopwatch.Elapsed.Milliseconds}ms"); } } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task robShop(ClassicPlayer player, int shopId) { try { if (player == null || !player.Exists || player.CharacterId <= 0 || shopId <= 0) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } if (!player.Position.IsInRange(ServerShops.GetShopPosition(shopId), 3f)) { HUDHandler.SendNotification(player, 3, 5000, "Du bist zu weit entfernt."); return; } if (player.isRobbingAShop) { HUDHandler.SendNotification(player, 4, 2500, "Du raubst bereits einen Shop aus."); return; } if (ServerShops.IsShopRobbedNow(shopId)) { HUDHandler.SendNotification(player, 3, 2500, "Dieser Shop wird bereits ausgeraubt."); return; } ServerFactions.AddNewFactionDispatch(0, 2, $"Aktiver Shopraub", player.Position); ServerFactions.AddNewFactionDispatch(0, 12, $"Aktiver Shopraub", player.Position); ServerShops.SetShopRobbedNow(shopId, true); player.isRobbingAShop = true; //HUDHandler.SendNotification(player, 1, 2500, "Du raubst den Laden nun aus - warte 8 Minuten um das Geld zu erhalten."); HUDHandler.SendNotification(player, 1, 2500, "Du raubst den Laden nun aus - warte 30 Sekunden um das Geld zu erhalten."); //await Task.Delay(480000); await Task.Delay(30000); ServerShops.SetShopRobbedNow(shopId, false); if (player == null || !player.Exists) { return; } player.isRobbingAShop = false; if (!player.Position.IsInRange(ServerShops.GetShopPosition(shopId), 12f)) { HUDHandler.SendNotification(player, 3, 5000, "Du bist zu weit entfernt, der Raub wurde abgebrochen."); return; } int amount = new Random().Next(6000, 9000); HUDHandler.SendNotification(player, 2, 2500, $"Shop ausgeraubt - du erhälst {amount}$."); CharactersInventory.AddCharacterItem(player.CharacterId, "Bargeld", amount, "inventory"); } 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 StorageItem(IPlayer player, int houseId, string itemName, int itemAmount, string fromContainer) { try { if (player == null || !player.Exists || houseId <= 0 || itemName == "" || itemName == "undefined" || itemAmount <= 0 || fromContainer == "none" || fromContainer == "") { return; } int charId = (int)player.GetCharacterMetaId(); if (charId <= 0) { return; } if (!ServerHouses.ExistHouse(houseId)) { return; } if (!ServerHouses.HasHouseStorageUpgrade(houseId)) { HUDHandler.SendNotification(player, 4, 5000, "Dieses Haus besitzt noch keinen ausgebauten Lagerplatz."); return; } if (player.Dimension - 10000 <= 0 || player.Dimension - 10000 != houseId) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } if (!CharactersInventory.ExistCharacterItem(charId, itemName, fromContainer)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Diesen Gegenstand besitzt du nicht."); return; } if (CharactersInventory.GetCharacterItemAmount(charId, itemName, fromContainer) < itemAmount) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Du hast nicht genügend Gegenstände davon dabei."); return; } if (CharactersInventory.IsItemActive(player, itemName)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Ausgerüstete Gegenstände können nicht umgelagert werden."); return; } float storageLimit = ServerHouses.GetInteriorStorageLimit(ServerHouses.GetHouseInteriorId(houseId)); float itemWeight = ServerItems.GetItemWeight(itemName) * itemAmount; if (ServerHouses.GetHouseStorageItemWeight(houseId) >= storageLimit || (ServerHouses.GetHouseStorageItemWeight(houseId) + itemWeight >= storageLimit)) { HUDHandler.SendNotification(player, 3, 5000, $"Fehler: Soviel passt in das Hauslager nicht rein (maximal {storageLimit}kg Lagerplatz)."); return; } CharactersInventory.RemoveCharacterItemAmount(charId, itemName, itemAmount, fromContainer); ServerHouses.AddServerHouseStorageItem(houseId, itemName, itemAmount); HUDHandler.SendNotification(player, 2, 5000, $"Der Gegenstand wurde erfolgreich eingelagert ({itemName} - {itemAmount}x)."); //ToDo: Log Eintrag } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task switchItemToDifferentInv(ClassicPlayer player, string itemname, int itemAmount, string fromContainer, string toContainer) { try { if (player == null || !player.Exists || itemname == "" || itemAmount <= 0 || fromContainer == "" || toContainer == "" || User.GetPlayerOnline(player) == 0) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } int charId = player.CharacterId; string normalName = ServerItems.ReturnNormalItemName(itemname); float itemWeight = ServerItems.GetItemWeight(itemname) * itemAmount; float invWeight = CharactersInventory.GetCharacterItemWeight(charId, "inventory"); float backpackWeight = CharactersInventory.GetCharacterItemWeight(charId, "backpack"); if (!CharactersInventory.ExistCharacterItem(charId, itemname, fromContainer)) { return; } if (toContainer == "inventory") { if (invWeight + itemWeight > 15f) { HUDHandler.SendNotification(player, 3, 5000, $"Soviel Platz hast du im Inventar nicht."); return; } } else if (toContainer == "backpack") { if (backpackWeight + itemWeight > Characters.GetCharacterBackpackSize(Characters.GetCharacterBackpack(charId))) { HUDHandler.SendNotification(player, 3, 5000, $"Soviel Platz hast du in deinen Taschen / deinem Rucksack nicht."); return; } } if (CharactersInventory.GetCharacterItemAmount(charId, itemname, fromContainer) < itemAmount) { HUDHandler.SendNotification(player, 4, 5000, "Die angegebene Item-Anzahl ist größer als die Anzahl der Items die du mit dir trägst."); return; } if (itemname == "Rucksack" || itemname == "Tasche" || normalName == "Ausweis" || normalName == "Bargeld" || normalName == "Smartphone" || normalName == "EC Karte" || normalName == "Fahrzeugschluessel") { HUDHandler.SendNotification(player, 3, 5000, "Diesen Gegenstand kannst du nicht in deinen Rucksack / deine Tache legen."); return; } CharactersInventory.RemoveCharacterItemAmount(charId, itemname, itemAmount, fromContainer); CharactersInventory.AddCharacterItem(charId, itemname, itemAmount, toContainer); HUDHandler.SendNotification(player, 2, 5000, $"Der Gegenstand {itemname} ({itemAmount}x) wurde erfolgreich vom ({fromContainer}) in ({toContainer}) verschoben."); RequestInventoryItems(player); } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task RevivePlayer(IPlayer player, IPlayer targetPlayer) { try { if (player == null || !player.Exists || targetPlayer == null || !targetPlayer.Exists) { return; } int targetId = (int)targetPlayer.GetCharacterMetaId(); int charId = (int)player.GetCharacterMetaId(); if (charId <= 0 || targetId <= 0 || !Characters.IsCharacterUnconscious(targetId)) { return; } if (!CharactersInventory.ExistCharacterItem(charId, "Defibrilator", "inventory") && !CharactersInventory.ExistCharacterItem(charId, "Defibrilator", "backpack")) { HUDHandler.SendNotification(player, 3, 3500, "Du hast keinen Defibrilator dabei."); return; } InventoryHandler.InventoryAnimation(player, "revive", 15000); int rnd = new Random().Next(1, 100); await Task.Delay(15000); if (rnd >= 1 && rnd <= 50) { //Reanimation erfolgreich if (!player.IsInVehicle) { InventoryHandler.StopAnimation(player, "missheistfbi3b_ig8_2", "cpr_loop_paramedic"); } if (targetId <= 0 || !Characters.IsCharacterUnconscious(targetId)) { return; } Characters.SetCharacterUnconscious(targetId, false, 0); DeathHandler.revive(targetPlayer); Characters.SetCharacterHealth(targetId, 115); targetPlayer.Health = 115; } else if (rnd >= 51 && rnd <= 100) { //Reanimation nicht erfolgreich if (!player.IsInVehicle) { InventoryHandler.StopAnimation(player, "missheistfbi3b_ig8_2", "cpr_loop_paramedic"); } HUDHandler.SendNotification(player, 3, 3500, "Die Renimation war nicht erfolgreich, versuch es weiter!"); } } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task TakeHotelItem(IPlayer player, int apartmentId, string itemName, int itemAmount) { try { if (player == null || !player.Exists || apartmentId <= 0 | itemAmount <= 0 || itemName == "" || itemName == "undefined") { return; } int charId = User.GetPlayerOnline(player); if (charId <= 0) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } if (!ServerHotels.ExistServerHotelStorageItem(apartmentId, itemName)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Der Gegenstand existiert im Lager nicht."); return; } if (ServerHotels.GetServerHotelStorageItemAmount(apartmentId, itemName) < itemAmount) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Soviele Gegenstände sind nicht im Lager."); return; } float itemWeight = ServerItems.GetItemWeight(itemName) * itemAmount; float invWeight = CharactersInventory.GetCharacterItemWeight(charId, "inventory"); float backpackWeight = CharactersInventory.GetCharacterItemWeight(charId, "backpack"); if (invWeight + itemWeight > 15f && backpackWeight + itemWeight > Characters.GetCharacterBackpackSize(Characters.GetCharacterBackpack(charId))) { HUDHandler.SendNotification(player, 3, 5000, $"Du hast nicht genug Platz in deinen Taschen."); return; } ServerHotels.RemoveServerHotelStorageItemAmount(apartmentId, itemName, itemAmount); //LoggingService.NewFactionLog(factionId, charId, 0, "storage", $"{Characters.GetCharacterName(charId)} ({charId}) hat den Gegenstand '{itemName} ({amount}x)' aus seinem Spind entnommen."); // ToDo: Hotel Log if (invWeight + itemWeight <= 15f) { HUDHandler.SendNotification(player, 2, 5000, $"Du hast {itemName} ({itemAmount}x) aus deinem Lager genommen (Lagerort: Inventar)."); CharactersInventory.AddCharacterItem(charId, itemName, itemAmount, "inventory"); return; } if (Characters.GetCharacterBackpack(charId) != "None" && backpackWeight + itemWeight <= Characters.GetCharacterBackpackSize(Characters.GetCharacterBackpack(charId))) { HUDHandler.SendNotification(player, 2, 5000, $"Du hast {itemName} ({itemAmount}x) aus deinem Lager genommen (Lagerort: Rucksack / Tasche)."); CharactersInventory.AddCharacterItem(charId, itemName, itemAmount, "backpack"); return; } } catch (Exception e) { Alt.Log($"{e}"); } }
public static string GetGarageParkOutString(IPlayer player, int garageId, int charId, bool isFaction, string factionShort) { try { if (player == null || !player.Exists || garageId == 0 || charId == 0) { return("undefined"); } List <Server_Vehicles> inGarageVehs = null; if (isFaction == false) { inGarageVehs = ServerVehicles.ServerVehicles_.Where(x => x.isInGarage == true && x.garageId == garageId).ToList(); } else if (isFaction == true) { inGarageVehs = ServerVehicles.ServerVehicles_.Where(x => x.isInGarage == true && x.garageId == garageId && x.plate.Contains(factionShort)).ToList(); } dynamic array = new JArray() as dynamic; dynamic entry = new JObject(); foreach (var vehicle in inGarageVehs) { bool hasKey = false; if (isFaction == false) { hasKey = CharactersInventory.ExistCharacterItem(charId, "Fahrzeugschluessel " + vehicle.plate, "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 = vehicle.plate; entry.hash = vehicle.hash; entry.name = ServerAllVehicles.GetVehicleNameOnHash(vehicle.hash); array.Add(entry); } return(array.ToString()); } catch (Exception e) { Alt.Log($"{e}"); } return("[]"); }
internal static async void FarmFieldAction(IPlayer player, string itemName, int itemMinAmount, int itemMaxAmount, string animation, int duration) { if (player == null || !player.Exists || itemName == "" || itemMinAmount == 0 || itemMaxAmount == 0 || animation == "") { return; } int charId = User.GetPlayerOnline(player); if (charId <= 0) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } InventoryHandler.InventoryAnimation(player, animation, duration); await Task.Delay(duration + 1250); lock (player) { player.SetPlayerFarmingActionMeta("None"); } int rndItemAmount = new Random().Next(itemMinAmount, itemMaxAmount); //Doppelte Menge aufsammeln if (Characters.IsCharacterFastFarm(charId)) { rndItemAmount += 1; } float itemWeight = ServerItems.GetItemWeight(itemName) * rndItemAmount; float invWeight = CharactersInventory.GetCharacterItemWeight(charId, "inventory"); float backpackWeight = CharactersInventory.GetCharacterItemWeight(charId, "backpack"); if (invWeight + itemWeight > 15f && backpackWeight + itemWeight > Characters.GetCharacterBackpackSize(Characters.GetCharacterBackpack(charId))) { HUDHandler.SendNotification(player, 3, 5000, $"Deine Taschen sind voll."); return; } if (invWeight + itemWeight <= 15f) { HUDHandler.SendNotification(player, 2, 5000, $"Du hast {itemName} ({rndItemAmount}x) gesammelt (Lagerort: Inventar)."); CharactersInventory.AddCharacterItem(charId, itemName, rndItemAmount, "inventory"); return; } if (Characters.GetCharacterBackpack(charId) != "None" && backpackWeight + itemWeight <= Characters.GetCharacterBackpackSize(Characters.GetCharacterBackpack(charId))) { HUDHandler.SendNotification(player, 2, 5000, $"Du hast {itemName} ({rndItemAmount}x) gesammelt (Lagerort: Rucksack / Tasche)."); CharactersInventory.AddCharacterItem(charId, itemName, rndItemAmount, "backpack"); return; } }
public async Task HealPlayer(IPlayer player, IPlayer targetPlayer) { try { if (player == null || !player.Exists || targetPlayer == null || !targetPlayer.Exists) { return; } int targetId = (int)targetPlayer.GetCharacterMetaId(); int charId = (int)player.GetCharacterMetaId(); if (!player.Position.IsInRange(targetPlayer.Position, 3f)) { return; } if (charId <= 0 || targetId <= 0 || targetPlayer.Health >= 200) { return; } if (!CharactersInventory.ExistCharacterItem(charId, "Verbandskasten", "inventory") && !CharactersInventory.ExistCharacterItem(charId, "Verbandskasten", "backpack")) { HUDHandler.SendNotification(player, 3, 2500, "Du hast keinen Verbandskasten dabei."); return; } //ToDo: Animation abspielen await Task.Delay(4000); if (player == null || !player.Exists || targetPlayer == null || !targetPlayer.Exists) { return; } if (!player.Position.IsInRange(targetPlayer.Position, 3f)) { return; } Characters.SetCharacterHealth(charId, 200); targetPlayer.Health = 200; HUDHandler.SendNotification(player, 2, 2000, "Spieler erfolgreich behandelt."); HUDHandler.SendNotification(targetPlayer, 1, 2000, "Ein Arzt hat dich behandelt."); if (CharactersInventory.ExistCharacterItem(charId, "Verbandskasten", "inventory")) { CharactersInventory.RemoveCharacterItemAmount(charId, "Verbandskasten", 1, "inventory"); return; } else if (CharactersInventory.ExistCharacterItem(charId, "Verbandskasten", "backpack")) { CharactersInventory.RemoveCharacterItemAmount(charId, "Verbandskasten", 1, "backpack"); return; } } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task FactionStorageStorageItem(IPlayer player, int factionId, int charId, string itemName, int amount, string fromContainer) { try { if (player == null || !player.Exists || factionId <= 0 || charId <= 0 || itemName == "" || itemName == "undefined" || amount <= 0 || fromContainer == "none" || fromContainer == "") { return; } int cCharId = User.GetPlayerOnline(player); if (cCharId != charId) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 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; } int cFactionId = ServerFactions.GetCharacterFactionId(charId); if (cFactionId != factionId) { return; } if (!ServerFactions.IsCharacterInFactionDuty(charId)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Du bist nicht im Dienst."); return; } if (!CharactersInventory.ExistCharacterItem(charId, itemName, fromContainer)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Diesen Gegenstand besitzt du nicht."); return; } if (CharactersInventory.GetCharacterItemAmount(charId, itemName, fromContainer) < amount) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Du hast nicht genügend Gegenstände davon dabei."); return; } if (CharactersInventory.IsItemActive(player, itemName)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Ausgerüstete Gegenstände können nicht umgelagert werden."); return; } CharactersInventory.RemoveCharacterItemAmount(charId, itemName, amount, fromContainer); ServerFactions.AddServerFactionStorageItem(factionId, charId, itemName, amount); LoggingService.NewFactionLog(factionId, charId, 0, "storage", $"{Characters.GetCharacterName(charId)} ({charId}) hat den Gegenstand '{itemName} ({amount}x)' in seinen Spind gelegt."); } catch (Exception e) { Alt.Log($"{e}"); } }
internal static void closeDeathscreen(IPlayer player) { try { if (player == null || !player.Exists) { return; } int charId = (int)player.GetCharacterMetaId(); if (charId <= 0) { return; } player.EmitLocked("Client:Deathscreen:closeCEF"); player.SetPlayerIsUnconscious(false); player.SetPlayerIsFastFarm(false); player.EmitLocked("Client:Ragdoll:SetPedToRagdoll", false, 2000); Characters.SetCharacterUnconscious(charId, false, 0); Characters.SetCharacterFastFarm(charId, false, 0); player.EmitLocked("Client:Inventory:StopEffect", "DrugsMichaelAliensFight"); foreach (var item in CharactersInventory.CharactersInventory_.ToList().Where(x => x.charId == charId)) { if (item.itemName.Contains("EC Karte") || item.itemName.Contains("Ausweis") || item.itemName.Contains("Fahrzeugschluessel") || ServerItems.GetItemType(ServerItems.ReturnNormalItemName(item.itemName)) == "clothes") { continue; } CharactersInventory.RemoveCharacterItem(charId, item.itemName, item.itemLocation); } Characters.SetCharacterWeapon(player, "PrimaryWeapon", "None"); Characters.SetCharacterWeapon(player, "PrimaryAmmo", 0); Characters.SetCharacterWeapon(player, "SecondaryWeapon2", "None"); Characters.SetCharacterWeapon(player, "SecondaryWeapon", "None"); Characters.SetCharacterWeapon(player, "SecondaryAmmo2", 0); Characters.SetCharacterWeapon(player, "SecondaryAmmo", 0); Characters.SetCharacterWeapon(player, "FistWeapon", "None"); Characters.SetCharacterWeapon(player, "FistWeaponAmmo", 0); player.EmitLocked("Client:Smartphone:equipPhone", false, Characters.GetCharacterPhonenumber(charId), Characters.IsCharacterPhoneFlyModeEnabled(charId)); Characters.SetCharacterPhoneEquipped(charId, false); player.RemoveAllWeaponsAsync(); } catch (Exception e) { Alt.Log($"{e}"); } }
internal static void openStorage(IPlayer player) { try { if (player == null || !player.Exists) { return; } int charId = (int)player.GetCharacterMetaId(); if (charId <= 0) { return; } int dimension = player.Dimension; if (dimension <= 10000) { return; } int houseId = dimension - 10000; if (houseId <= 0 || !ServerHouses.ExistHouse(houseId)) { return; } if (!ServerHouses.HasHouseStorageUpgrade(houseId)) { HUDHandler.SendNotification(player, 4, 5000, "Dieses Haus besitzt noch keinen ausgebauten Lagerplatz."); return; } int interiorId = ServerHouses.GetHouseInteriorId(houseId); if (interiorId <= 0) { return; } if (!player.Position.IsInRange(ServerHouses.GetInteriorStoragePosition(interiorId), 2f)) { return; } var houseStorageContent = ServerHouses.GetServerHouseStorageItems(houseId); //Haus Inventar var characterInvArray = CharactersInventory.GetCharacterInventory(charId); //Spieler Inventar player.EmitLocked("Client:FactionStorage:openCEF", charId, houseId, "house", characterInvArray, houseStorageContent); } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task StorageHotelItem(IPlayer player, int apartmentId, string itemName, int itemAmount, string fromContainer) { try { if (player == null || !player.Exists || apartmentId <= 0 || itemName == "" || itemName == "undefined" || itemAmount <= 0 || fromContainer == "none" || fromContainer == "") { return; } int cCharId = User.GetPlayerOnline(player); if (cCharId <= 0) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } if (!CharactersInventory.ExistCharacterItem(cCharId, itemName, fromContainer)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Diesen Gegenstand besitzt du nicht."); return; } if (CharactersInventory.GetCharacterItemAmount(cCharId, itemName, fromContainer) < itemAmount) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Du hast nicht genügend Gegenstände davon dabei."); return; } if (CharactersInventory.IsItemActive(player, itemName)) { HUDHandler.SendNotification(player, 4, 5000, "Fehler: Ausgerüstete Gegenstände können nicht umgelagert werden."); return; } float itemWeight = ServerItems.GetItemWeight(itemName) * itemAmount; if (ServerHotels.GetHotelStorageItemWeight(apartmentId) >= 15f || (ServerHotels.GetHotelStorageItemWeight(apartmentId) + itemWeight) >= 15f) { HUDHandler.SendNotification(player, 3, 5000, "Fehler: Soviel passt in das Lager nicht rein (maximal 15kg Lagerplatz)."); return; } CharactersInventory.RemoveCharacterItemAmount(cCharId, itemName, itemAmount, fromContainer); ServerHotels.AddServerHotelStorageItem(apartmentId, itemName, itemAmount); HUDHandler.SendNotification(player, 2, 5000, $"Der Gegenstand wurde erfolgreich eingelagert ({itemName} - {itemAmount}x)."); //LoggingService.NewHotelLog(apartmentId, cCharId, 0, "storage", $"{Characters.GetCharacterName(charId)} ({charId}) hat den Gegenstand '{itemName} ({amount}x)' in seinen Spind gelegt."); //ToDo: Hotel Storage Log } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task sendIdentityCardApplyForm(IPlayer player, string birthplace) { if (player == null || !player.Exists) { return; } int charId = User.GetPlayerOnline(player); if (charId == 0 || birthplace == "") { return; } Characters.SetCharacterBirthplace(charId, birthplace); Characters.setCharacterAccState(charId, 1); CharactersInventory.AddCharacterItem(charId, $"Ausweis {Characters.GetCharacterName(charId)}", 1, "inventory"); HUDHandler.SendNotification(player, 2, 5000, "Du hast dir erfolgreich deinen Personalausweis beantragt."); HUDHandler.SendNotification(player, 1, 5000, "Erfolg freigeschaltet: Identifizierung"); }
public async Task finishBarber(IPlayer player, string headoverlaysarray) { if (player == null || !player.Exists) { return; } int charId = User.GetPlayerOnline(player); if (charId == 0 || headoverlaysarray == "") { return; } if (!CharactersInventory.ExistCharacterItem(charId, "Bargeld", "inventory") || CharactersInventory.GetCharacterItemAmount(charId, "Bargeld", "inventory") < 50) { HUDHandler.SendNotification(player, 3, 5000, $"Du hast nicht genug Bargeld dabei (50$)."); SetCorrectCharacterSkin(player); return; } CharactersInventory.RemoveCharacterItemAmount(charId, "Bargeld", 50, "inventory"); Characters.SetCharacterHeadOverlays(charId, headoverlaysarray); }
public async Task WithdrawMoney(IPlayer player, int houseId, int money) { try { if (player == null || !player.Exists || houseId <= 0 || money <= 0) { 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; } if (ServerHouses.GetHouseBankMoney(houseId) < money) { HUDHandler.SendNotification(player, 4, 5000, $"Fehler: Soviel Geld ist nicht im Tresor (Aktueller Stand: {ServerHouses.GetHouseBankMoney(houseId)}$)."); return; } ServerHouses.SetHouseBankMoney(houseId, ServerHouses.GetHouseBankMoney(houseId) - money); CharactersInventory.AddCharacterItem(charId, "Bargeld", money, "inventory"); HUDHandler.SendNotification(player, 2, 2500, $"Du hast erfolgreich {money}$ aus dem Tresor entnommen."); } 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 void GiveItemCMD(IPlayer player, string itemName, int itemAmount) { if (player == null || !player.Exists) { return; } if (player.AdminLevel() <= 8) { HUDHandler.SendNotification(player, 4, 5000, "Keine Rechte."); return; } if (!ServerItems.ExistItem(ServerItems.ReturnNormalItemName(itemName))) { HUDHandler.SendNotification(player, 4, 5000, $"Itemname nicht gefunden: {itemName}"); return; } ulong charId = player.GetCharacterMetaId(); if (charId <= 0) { return; } CharactersInventory.AddCharacterItem((int)charId, itemName, itemAmount, "inventory"); HUDHandler.SendNotification(player, 2, 5000, $"Gegenstand '{itemName}' ({itemAmount}x) erhalten."); }
internal static void openStorage(IPlayer player) { try { if (player == null || !player.Exists) { return; } int charId = User.GetPlayerOnline(player); if (charId <= 0) { return; } if (!ServerHotels.HasCharacterAnApartment(charId)) { return; } int dimension = player.Dimension; if (dimension <= 5000) { return; } int apartmentId = dimension - 5000; int hotelId = ServerHotels.GetHotelIdByApartmentId(apartmentId); if (apartmentId <= 0 || hotelId <= 0 || !ServerHotels.ExistHotelApartment(hotelId, apartmentId)) { return; } var hotelStorageContent = ServerHotels.GetServerHotelStorageItems(apartmentId); //Apartment Items var characterInvArray = CharactersInventory.GetCharacterInventory(charId); //Spieler Inventar player.EmitLocked("Client:FactionStorage:openCEF", charId, apartmentId, "hotel", characterInvArray, hotelStorageContent); } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task DepositMoney(IPlayer player, int houseId, int money) { if (player == null || !player.Exists || houseId <= 0 || money <= 0) { 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; } if (!CharactersInventory.ExistCharacterItem(charId, "Bargeld", "inventory") || CharactersInventory.GetCharacterItemAmount(charId, "Bargeld", "inventory") < money) { HUDHandler.SendNotification(player, 4, 3500, $"Fehler: Du hast nicht genügend Geld dabei ({money}$)."); return; } CharactersInventory.RemoveCharacterItemAmount(charId, "Bargeld", money, "inventory"); ServerHouses.SetHouseBankMoney(houseId, ServerHouses.GetHouseBankMoney(houseId) + money); HUDHandler.SendNotification(player, 2, 2500, $"Du hast erfolgreich {money}$ in den Tresor gelagert."); }
public async Task FuelVehicle(IPlayer player, int vID, int fuelstationId, string fueltype, int selectedLiterAmount, int selectedLiterPrice) { try { if (player == null || !player.Exists || vID == 0 || fuelstationId == 0 || fueltype == "" || selectedLiterAmount <= 0 || selectedLiterPrice == 0) { return; } ulong vehID = Convert.ToUInt64(vID); int charId = User.GetPlayerOnline(player); if (vehID <= 0 || charId <= 0) { return; } if (player.HasPlayerHandcuffs() || player.HasPlayerRopeCuffs()) { HUDHandler.SendNotification(player, 3, 5000, "Wie willst du das mit Handschellen/Fesseln machen?"); return; } var vehicle = Alt.Server.GetVehicles().ToList().FirstOrDefault(x => x.GetVehicleId() == vehID); if (vehicle == null || !vehicle.Exists) { HUDHandler.SendNotification(player, 3, 5000, "Ein unerwarteter Fehler ist aufgetreten. [FEHLERCODE: FUEL-004]"); return; } if (ServerVehicles.GetVehicleType(vehicle) == 0) { if (!CharactersInventory.ExistCharacterItem(charId, "Bargeld", "inventory")) { HUDHandler.SendNotification(player, 3, 5000, "Du hast nicht genügend Bargeld dabei."); return; } if (CharactersInventory.GetCharacterItemAmount(charId, "Bargeld", "inventory") < selectedLiterPrice) { HUDHandler.SendNotification(player, 3, 5000, "Du hast nicht genügend Bargeld dabei."); return; } } if (!player.Position.IsInRange(vehicle.Position, 8f)) { HUDHandler.SendNotification(player, 4, 5000, "Du hast dich zu weit vom Fahrzeug entfernt."); return; } if (ServerVehicles.GetVehicleFuel(vehicle) >= ServerVehicles.GetVehicleFuelLimitOnHash(vehicle.Model)) { HUDHandler.SendNotification(player, 3, 5000, "Das Fahrzeug ist bereits voll getankt."); return; } var fuelStation = ServerFuelStations.ServerFuelStations_.FirstOrDefault(x => x.id == fuelstationId); if (fuelStation == null) { HUDHandler.SendNotification(player, 4, 5000, "Ein unerwarteter Fehler ist aufgetreten. [FEHLERCODE: FUEL-005]"); return; } int duration = 500 * selectedLiterAmount; HUDHandler.SendNotification(player, 1, duration, "Fahrzeug wird betankt, bitte warten.."); await Task.Delay(duration); lock (player) { if (!player.Position.IsInRange(vehicle.Position, 8f)) { HUDHandler.SendNotification(player, 4, 5000, "Du hast dich zu weit vom Fahrzeug entfernt."); return; } } float fuelVal = ServerVehicles.GetVehicleFuel(vehicle) + selectedLiterAmount; if (fuelVal > ServerVehicles.GetVehicleFuelLimitOnHash(vehicle.Model)) { fuelVal = ServerVehicles.GetVehicleFuelLimitOnHash(vehicle.Model); } if (ServerVehicles.GetVehicleType(vehicle) == 0) { CharactersInventory.RemoveCharacterItemAmount(charId, "Bargeld", selectedLiterPrice, "inventory"); } ServerVehicles.SetVehicleFuel(vehicle, fuelVal); if (ServerVehicles.GetVehicleFuelTypeOnHash(vehicle.Model) != fueltype) { ServerVehicles.SetVehicleEngineState(vehicle, false); ServerVehicles.SetVehicleEngineHealthy(vehicle, false); return; } ServerFuelStations.SetFuelStationBankMoney(fuelstationId, ServerFuelStations.GetFuelStationBankMoney(fuelstationId) + selectedLiterPrice); if (ServerFuelStations.GetFuelStationOwnerId(fuelstationId) != 0) { ServerFuelStations.SetFuelStationAvailableLiters(fuelstationId, ServerFuelStations.GetFuelStationAvailableLiters(fuelstationId) - selectedLiterAmount); } } catch (Exception e) { Alt.Log($"{e}"); } }