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 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 async Task UnrentHouse(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) <= 0) { return; } if (!ServerHouses.IsCharacterRentedInAnyHouse(charId) || !ServerHouses.IsCharacterRentedInHouse(charId, houseId)) { return; } ServerHouses.RemoveServerHouseRenter(houseId, charId); HUDHandler.SendNotification(player, 2, 3000, "Du hast dich aus dem Haus ausgemietet."); } catch (Exception e) { Alt.Log($"{e}"); } }
public void colorCMD(IPlayer player, int pr, int se) { try { if (player == null || !player.Exists) { return; } if (player.AdminLevel() <= 8) { HUDHandler.SendNotification(player, 4, 5000, "Keine Rechte."); return; } if (player.Vehicle == null || !player.Vehicle.Exists) { return; } if (pr < 0 || se < 0) { return; } player.Vehicle.PrimaryColor = (byte)pr; player.Vehicle.SecondaryColor = (byte)se; } catch (Exception e) { Alt.Log($"{e}"); } }
public void announceCMD(IPlayer player, string msg) { try { if (player == null || !player.Exists) { return; } if (player.AdminLevel() <= 8) { HUDHandler.SendNotification(player, 4, 5000, "Keine Rechte."); return; } foreach (var client in Alt.Server.GetPlayers()) { if (client == null || !client.Exists) { continue; } HUDHandler.SendNotification(client, 4, 5000, msg); } } 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 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 void ReviveTargetCMD(IPlayer player, int targetId) { if (player == null || !player.Exists) { return; } if (player.AdminLevel() <= 2) { HUDHandler.SendNotification(player, 4, 5000, "Keine Rechte."); return; } string charName = Characters.GetCharacterName(targetId); if (!Characters.ExistCharacterName(charName)) { return; } var tp = Alt.Server.GetPlayers().FirstOrDefault(x => x != null && x.Exists && x.GetCharacterMetaId() == (ulong)targetId); if (tp != null) { tp.Health = 200; DeathHandler.revive(tp); player.SendChatMessage($"Du hast den Spieler {charName} wiederbelebt."); return; } player.SendChatMessage($"Der Spieler {charName} ist nicht online."); }
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 void FactionCMD(IPlayer player, int charId, int id) { try { if (player == null || !player.Exists || player.GetCharacterMetaId() <= 0) { return; } if (player.AdminLevel() <= 8) { HUDHandler.SendNotification(player, 4, 5000, "Keine Rechte."); return; } if (ServerFactions.IsCharacterInAnyFaction(charId)) { ServerFactions.RemoveServerFactionMember(ServerFactions.GetCharacterFactionId(charId), charId); } ServerFactions.CreateServerFactionMember(id, charId, ServerFactions.GetFactionMaxRankCount(id), charId); player.SendChatMessage($"Done."); } catch (Exception e) { Alt.Log($"{e}"); } }
public void WhitelistCMD(IPlayer player, int targetAccId) { try { if (player == null || !player.Exists || targetAccId <= 0 || player.GetCharacterMetaId() <= 0) { return; } if (player.AdminLevel() <= 0) { HUDHandler.SendNotification(player, 4, 5000, "Keine Rechte."); return; } if (!User.ExistPlayerById(targetAccId)) { HUDHandler.SendNotification(player, 4, 5000, $"Diese ID existiert nicht {targetAccId}"); return; } if (User.IsPlayerWhitelisted(targetAccId)) { HUDHandler.SendNotification(player, 4, 5000, "Der Spieler ist bereits gewhitelisted."); return; } User.SetPlayerWhitelistState(targetAccId, true); player.SendChatMessage($"Du hast den Spieler {targetAccId} gewhitelistet."); } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task SelectJobcenterJob(IPlayer player, string jobName) { try { if (player == null || !player.Exists || jobName == "" || jobName == "undefined") { return; } int charId = User.GetPlayerOnline(player); if (charId == 0) { return; } if (jobName == "None") { HUDHandler.SendNotification(player, 2, 5000, $"Du hast deinen Job als {Characters.GetCharacterJob(charId)} gekündigt."); Characters.SetCharacterLastJobPaycheck(charId, DateTime.Now); Characters.SetCharacterJob(charId, "None"); return; } Characters.SetCharacterJob(charId, jobName); Characters.SetCharacterLastJobPaycheck(charId, DateTime.Now); Characters.ResetCharacterJobHourCounter(charId); HUDHandler.SendNotification(player, 2, 5000, $"Du hast den Vertrag für den Beruf '{jobName}' unterschrieben. Dein Gehalt liegt bei {ServerJobs.GetJobPaycheck(jobName)}$. Du musst täglich {ServerJobs.GetJobNeededHours(jobName)} Stunden anwesend sein."); if (!CharactersTablet.HasCharacterTutorialEntryFinished(charId, "acceptJob")) { CharactersTablet.SetCharacterTutorialEntryState(charId, "acceptJob", true); HUDHandler.SendNotification(player, 1, 2500, "Erfolg freigeschaltet: Die Tür vom Arbeitsamt"); } } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task requestPoliceAppMostWanteds(ClassicPlayer player) { try { if (player == null || !player.Exists || player.CharacterId <= 0 || !ServerFactions.IsCharacterInAnyFaction(player.CharacterId) || !ServerFactions.IsCharacterInFactionDuty(player.CharacterId) || (ServerFactions.GetCharacterFactionId(player.CharacterId) != 2 && ServerFactions.GetCharacterFactionId(player.CharacterId) != 12)) { return; } if (ServerFactions.GetCharacterFactionId(player.CharacterId) == 2 && ServerFactions.GetCharacterFactionRank(player.CharacterId) < 6) { HUDHandler.SendNotification(player, 3, 2500, "Keine Berechtigung: ab Rang 6."); return; } string mostWantedList = JsonConvert.SerializeObject(Characters.PlayerCharacters.ToList().Where(x => User.IsCharacterOnline(x.charId) && CharactersWanteds.HasCharacterWanteds(x.charId) && Characters.IsCharacterPhoneEquipped(x.charId)).Select(x => new { description = $"{x.charname} - {CharactersWanteds.GetCharacterWantedFinalJailTime(x.charId)} Hafteinheiten", posX = $"{Characters.GetCharacterLastPosition(x.charId).X}", posY = $"{Characters.GetCharacterLastPosition(x.charId).Y}", }).OrderBy(x => x.description).ToList()); player.EmitLocked("Client:Smartphone:setPoliceAppMostWanteds", mostWantedList); } catch (Exception e) { Alt.Log($"{e}"); } }
internal static void LeaveHotel(IPlayer player) { try { if (player == null || !player.Exists) { return; } int charId = User.GetPlayerOnline(player); if (charId <= 0) { return; } if (player.Dimension <= 0 || player.Dimension - 5000 < 0) { return; } int apartmentId = player.Dimension - 5000; int hotelId = ServerHotels.GetHotelIdByApartmentId(apartmentId); if (hotelId <= 0 || apartmentId <= 0) { return; } if (!ServerHotels.ExistHotelApartment(hotelId, apartmentId)) { HUDHandler.SendNotification(player, 3, 5000, "Ein unerwarteter Fehler ist aufgetreten [HOTEL-001]."); return; } player.Position = ServerHotels.GetHotelPosition(hotelId, apartmentId); player.Dimension = 0; } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task GiveLSPDIntranetWanteds(ClassicPlayer player, int selectedCharId, string wanteds) { try { if (player == null || !player.Exists || player.CharacterId <= 0 || selectedCharId <= 0 || string.IsNullOrWhiteSpace(wanteds) || !ServerFactions.IsCharacterInAnyFaction(player.CharacterId) || !ServerFactions.IsCharacterInFactionDuty(player.CharacterId) || (ServerFactions.GetCharacterFactionId(player.CharacterId) != 2 && ServerFactions.GetCharacterFactionId(player.CharacterId) != 12)) { return; } List <int> decompiledWanteds = JsonConvert.DeserializeObject <List <int> >(wanteds); if (decompiledWanteds == null) { return; } ClassicPlayer targetPlayer = (ClassicPlayer)Alt.Server.GetPlayers().ToList().FirstOrDefault(x => x != null && x.Exists && ((ClassicPlayer)x).CharacterId == selectedCharId); if (targetPlayer == null || !targetPlayer.Exists) { HUDHandler.SendNotification(player, 3, 2500, $"Der Spieler ist nicht online ({selectedCharId})"); return; } string givenString = $"{DateTime.Now.ToString("d", CultureInfo.CreateSpecificCulture("de-DE"))} {DateTime.Now.ToString("t", CultureInfo.CreateSpecificCulture("de-DE"))} von {Characters.GetCharacterName(player.CharacterId)}."; CharactersWanteds.CreateCharacterWantedEntry(selectedCharId, givenString, decompiledWanteds); requestLSPDIntranetPersonWanteds(player, selectedCharId); foreach (ClassicPlayer policeMember in Alt.Server.GetPlayers().ToList().Where(x => x != null && x.Exists && ((ClassicPlayer)x).CharacterId > 0 && ServerFactions.IsCharacterInAnyFaction(((ClassicPlayer)x).CharacterId) && (ServerFactions.GetCharacterFactionId(((ClassicPlayer)x).CharacterId) == 2 || ServerFactions.GetCharacterFactionId(((ClassicPlayer)x).CharacterId) == 12))) { HUDHandler.SendNotification(policeMember, 1, 3000, $"{Characters.GetCharacterName(player.CharacterId)} hat die Akte von {Characters.GetCharacterName(selectedCharId)} bearbeitet."); } } catch (Exception e) { Alt.Log($"{e}"); } }
public async Task setMainHouse(IPlayer player, int houseId) { try { if (player == null || !player.Exists || houseId <= 0) { return; } int charId = (int)player.GetCharacterMetaId(); if (charId <= 0 || !ServerHouses.ExistHouse(houseId)) { return; } if (!ServerHouses.ExistHouse(houseId) || ServerHouses.GetHouseOwner(houseId) != charId) { HUDHandler.SendNotification(player, 4, 3500, "Fehler: Dieses Haus gehört nicht dir."); return; } Characters.SetCharacterStreet(charId, ServerHouses.GetHouseStreet(houseId)); HUDHandler.SendNotification(player, 2, 2500, $"Du hast dich erfolgreich auf die Adresse '{ServerHouses.GetHouseStreet(houseId)} gemeldet."); } catch (Exception e) { Alt.Log($"{e}"); } }
public void delcarCMD(IPlayer player) { try { if (player == null || !player.Exists || player.Vehicle == null || !player.Vehicle.Exists) { return; } if (player.AdminLevel() <= 1) { return; } else { if (player.IsInVehicle) { HUDHandler.SendNotification(player, 4, 5000, "Du hast ein Fahrzeug gelöscht."); player.Vehicle.Remove(); } else { HUDHandler.SendNotification(player, 4, 5000, "Du bist in keinem Fahrzeug."); } } } 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 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 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 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 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 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 denyCall(ClassicPlayer player) { try { if (player == null || !player.Exists || player.CharacterId <= 0) { return; } if (Characters.GetCharacterCurrentlyRecieveCaller(player.CharacterId) != 0) { var callerId = Characters.GetCharacterCurrentlyRecieveCaller(player.CharacterId); //ID vom Spieler der Anruft ClassicPlayer targetPlayer = (ClassicPlayer)Alt.Server.GetPlayers().ToList().FirstOrDefault(x => x != null && x.Exists && ((ClassicPlayer)x).CharacterId == callerId); if (targetPlayer != null && targetPlayer.Exists && targetPlayer.CharacterId > 0) { Characters.SetCharacterTargetPhoneNumber(targetPlayer.CharacterId, 0); Characters.SetCharacterCurrentlyRecieveCallState(targetPlayer.CharacterId, 0); targetPlayer.EmitLocked("Client:Smartphone:ShowPhoneCallError", 4); //HUDHandler.SendNotification(targetPlayer, 3, 2000, "AnrufTry beendet"); } Characters.SetCharacterCurrentlyRecieveCallState(player.CharacterId, 0); Characters.SetCharacterTargetPhoneNumber(player.CharacterId, 0); player.EmitLocked("Client:Smartphone:ShowPhoneCallError", 4); //HUDHandler.SendNotification(player, 3, 2000, "AnrufTry beendet"); return; } if (Characters.GetCharacterPhoneTargetNumber(player.CharacterId) != 0) { var phoneNumber = Characters.GetCharacterPhoneTargetNumber(player.CharacterId); if (!Characters.ExistPhoneNumber(phoneNumber)) { return; } ClassicPlayer targetPlayer = (ClassicPlayer)Alt.Server.GetPlayers().ToList().FirstOrDefault(x => x != null && x.Exists && ((ClassicPlayer)x).CharacterId > 0 && Characters.GetCharacterPhonenumber(((ClassicPlayer)x).CharacterId) == phoneNumber && Characters.GetCharacterPhoneTargetNumber(((ClassicPlayer)x).CharacterId) == Characters.GetCharacterPhonenumber(player.CharacterId)); if (targetPlayer != null && targetPlayer.Exists && targetPlayer.CharacterId > 0) { Characters.SetCharacterTargetPhoneNumber(targetPlayer.CharacterId, 0); Characters.SetCharacterCurrentlyRecieveCallState(targetPlayer.CharacterId, 0); targetPlayer.EmitLocked("SaltyChat_EndCall", player); targetPlayer.EmitLocked("Client:Smartphone:ShowPhoneCallError", 4); HUDHandler.SendNotification(targetPlayer, 3, 2000, "Anruf beendet"); } Characters.SetCharacterTargetPhoneNumber(player.CharacterId, 0); Characters.SetCharacterCurrentlyRecieveCallState(player.CharacterId, 0); player.EmitLocked("SaltyChat_EndCall", targetPlayer); player.EmitLocked("Client:Smartphone:ShowPhoneCallError", 4); HUDHandler.SendNotification(player, 3, 2000, "Anruf beendet"); return; } } catch (Exception e) { Alt.Log($"{e}"); } }
internal static void OnDesireTimer(object sender, ElapsedEventArgs e) { Alt.Log("OnDesireTimer Timer aufgerufen"); foreach (IPlayer player in Alt.Server.GetPlayers().ToList()) { if (player == null) { continue; } using (var pRef = new PlayerRef(player)) { if (!pRef.Exists) { return; } lock (player) { if (player.Exists && User.GetPlayerOnline(player) != 0) { int charId = User.GetPlayerOnline(player); int random = new Random().Next(1, 1); if (Characters.GetCharacterHunger(User.GetPlayerOnline(player)) > 0) { Characters.SetCharacterHunger(charId, (Characters.GetCharacterHunger(charId) - random)); if (Characters.GetCharacterHunger(charId) < 0) { Characters.SetCharacterHunger(charId, 0); } } else { player.Health = (ushort)(player.Health - 3); Characters.SetCharacterHealth(charId, player.Health); HUDHandler.SendNotification(player, 1, 5000, $"Du hast Hunger."); } if (Characters.GetCharacterThirst(User.GetPlayerOnline(player)) > 0) { Characters.SetCharacterThirst(charId, (Characters.GetCharacterThirst(charId) - random)); if (Characters.GetCharacterThirst(charId) < 0) { Characters.SetCharacterThirst(charId, 0); } } else { player.Health = (ushort)(player.Health - 5); Characters.SetCharacterHealth(charId, player.Health); HUDHandler.SendNotification(player, 1, 5000, $"Du hast Durst."); } Alt.Log($"Essen/Durst Anzeige update: {Characters.GetCharacterHunger(charId)} | {Characters.GetCharacterThirst(charId)}"); player.EmitLocked("Client:HUD:UpdateDesire", Characters.GetCharacterHunger(charId), Characters.GetCharacterThirst(charId)); //Hunger & Durst Anzeige aktualisieren } } } } }
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 void KillMeCMD(IPlayer player) { if (player == null || !player.Exists) { return; } if (player.AdminLevel() <= 8) { HUDHandler.SendNotification(player, 4, 5000, "Keine Rechte."); return; } player.Health = 0; }
public void TorsoCMD(IPlayer player, int torso) { if (player == null || !player.Exists) { return; } if (player.AdminLevel() <= 0) { HUDHandler.SendNotification(player, 4, 5000, "Keine Rechte."); return; } player.EmitLocked("Client:SpawnArea:setCharClothes", 3, torso, 0); }
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}"); } }