public async Task CharacterSelectedSpawnPlace(ClassicPlayer client, string spawnstr, string charcid) { if (client == null || !client.Exists || spawnstr == null || charcid == null) { return; } Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); int charid = Convert.ToInt32(charcid); if (charid <= 0) { return; } string charName = Characters.GetCharacterName(charid); await User.SetPlayerOnline(client, charid); //Online Feld = CharakterID client.CharacterId = charid; if (Characters.GetCharacterFirstJoin(charid) && Characters.GetCharacterFirstSpawnPlace(client, charid) == "unset") { Characters.SetCharacterFirstSpawnPlace(client, charid, spawnstr); CharactersInventory.AddCharacterItem(charid, "Bargeld", 10000, "inventory"); CharactersInventory.AddCharacterItem(charid, "Tasche", 1, "inventory"); Characters.SetCharacterBackpack(client, "Tasche"); CharactersInventory.AddCharacterItem(charid, "Sandwich", 3, "backpack"); //ToDo: Trinken hinzufuegen CharactersInventory.AddCharacterItem(charid, "Tablet", 1, "inventory"); CharactersInventory.AddCharacterItem(charid, "Smartphone", 1, "inventory"); switch (spawnstr) { case "lsairport": Characters.CreateCharacterLastPos(charid, Constants.Positions.SpawnPos_Airport, 0); break; case "beach": Characters.CreateCharacterLastPos(charid, Constants.Positions.SpawnPos_Beach, 0); break; case "sandyshores": Characters.CreateCharacterLastPos(charid, Constants.Positions.SpawnPos_SandyShores, 0); break; case "paletobay": Characters.CreateCharacterLastPos(charid, Constants.Positions.SpawnPos_PaletoBay, 0); break; case null: Characters.CreateCharacterLastPos(charid, Constants.Positions.SpawnPos_Airport, 0); break; } } if (Characters.GetCharacterGender(charid)) { client.Model = 0x9C9EFFD8; } else { client.Model = 0x705E61F2; } client.EmitLocked("Client:ServerBlips:LoadAllBlips", ServerBlips.GetAllServerBlips()); client.EmitLocked("Client:ServerMarkers:LoadAllMarkers", ServerBlips.GetAllServerMarkers()); client.EmitLocked("Client:SpawnArea:setCharSkin", Characters.GetCharacterSkin("facefeatures", charid), Characters.GetCharacterSkin("headblendsdata", charid), Characters.GetCharacterSkin("headoverlays", charid)); Position dbPos = Characters.GetCharacterLastPosition(charid); client.Position = dbPos; client.Spawn(dbPos, 0); client.Dimension = Characters.GetCharacterLastDimension(charid); client.Health = (ushort)(Characters.GetCharacterHealth(charid) + 100); client.Armor = (ushort)Characters.GetCharacterArmor(charid); HUDHandler.CreateHUDBrowser(client); //HUD erstellen WeatherHandler.SetRealTime(client); //Echtzeit setzen Characters.SetCharacterCorrectClothes(client); Characters.SetCharacterLastLogin(charid, DateTime.Now); Characters.SetCharacterCurrentFunkFrequence(charid, null); Alt.Log($"Eingeloggt {client.Name}"); Alt.Emit("PlayerLoggedIn", client); client.EmitLocked("SaltyChat_OnConnected"); if (Characters.IsCharacterUnconscious(charid)) { DeathHandler.openDeathscreen(client); } if (Characters.IsCharacterFastFarm(charid)) { var fastFarmTime = Characters.GetCharacterFastFarmTime(charid) * 60000; client.EmitLocked("Client:Inventory:PlayEffect", "DrugsMichaelAliensFight", fastFarmTime); HUDHandler.SendNotification(client, 2, 2000, $"Du bist durch dein Koks noch {fastFarmTime} Minuten effektiver."); } ServerAnimations.RequestAnimationMenuContent(client); if (Characters.IsCharacterPhoneEquipped(charid) && CharactersInventory.ExistCharacterItem(charid, "Smartphone", "inventory") && CharactersInventory.GetCharacterItemAmount(charid, "Smartphone", "inventory") > 0) { client.EmitLocked("Client:Smartphone:equipPhone", true, Characters.GetCharacterPhonenumber(charid), Characters.IsCharacterPhoneFlyModeEnabled(charid)); Characters.SetCharacterPhoneEquipped(charid, true); } else if (!Characters.IsCharacterPhoneEquipped(charid) || !CharactersInventory.ExistCharacterItem(charid, "Smartphone", "inventory") || CharactersInventory.GetCharacterItemAmount(charid, "Smartphone", "inventory") <= 0) { client.EmitLocked("Client:Smartphone:equipPhone", false, Characters.GetCharacterPhonenumber(charid), Characters.IsCharacterPhoneFlyModeEnabled(charid)); Characters.SetCharacterPhoneEquipped(charid, false); } SmartphoneHandler.RequestLSPDIntranet(client); await setCefStatus(client, false); AltAsync.Do(() => { client.SetStreamSyncedMetaData("sharedUsername", $"{charName} ({Characters.GetCharacterAccountId(charid)})"); client.SetSyncedMetaData("ADMINLEVEL", client.AdminLevel()); client.SetSyncedMetaData("PLAYER_SPAWNED", true); }); if (Characters.IsCharacterInJail(charid)) { HUDHandler.SendNotification(client, 1, 2500, $"Du befindest dich noch {Characters.GetCharacterJailTime(charid)} Minuten im Gefängnis.", 8000); client.Position = new Position(1691.4594f, 2565.7056f, 45.556763f); if (Characters.GetCharacterGender(charid) == false) { client.EmitLocked("Client:SpawnArea:setCharClothes", 11, 5, 0); client.EmitLocked("Client:SpawnArea:setCharClothes", 3, 5, 0); client.EmitLocked("Client:SpawnArea:setCharClothes", 4, 7, 15); client.EmitLocked("Client:SpawnArea:setCharClothes", 6, 7, 0); client.EmitLocked("Client:SpawnArea:setCharClothes", 8, 1, 88); } else { } } client.updateTattoos(); stopwatch.Stop(); if (stopwatch.Elapsed.Milliseconds > 30) { Alt.Log($"{charid} - CharacterSelectedSpawnPlace benötigte {stopwatch.Elapsed.Milliseconds}ms"); } await Task.Delay(5000); Model.ServerTattoos.GetAllTattoos(client); }
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; } } }