Exemple #1
0
        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}");
            }
        }
Exemple #2
0
 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}");
     }
 }
Exemple #3
0
 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}");
     }
 }
Exemple #4
0
        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");
            }
        }
Exemple #5
0
        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.");
        }
Exemple #6
0
        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.");
                }
            }
        }
Exemple #7
0
        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.");
        }
Exemple #8
0
 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}");
     }
 }
Exemple #9
0
 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}");
     }
 }
Exemple #10
0
        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}");
            }
        }
Exemple #11
0
        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.");
            }
        }
Exemple #12
0
 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}");
     }
 }
Exemple #13
0
        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}");
            }
        }
Exemple #14
0
        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}");
            }
        }
Exemple #15
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}");
            }
        }
Exemple #16
0
        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("[]");
        }
Exemple #17
0
        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;
            }
        }
Exemple #18
0
        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}");
            }
        }
Exemple #19
0
 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}");
     }
 }
Exemple #20
0
        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}");
            }
        }
Exemple #21
0
 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}");
     }
 }
Exemple #22
0
 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}");
     }
 }
Exemple #23
0
        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");
        }
Exemple #24
0
        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);
        }
Exemple #25
0
 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}");
     }
 }
Exemple #26
0
        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.");
        }
Exemple #27
0
        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.");
        }
Exemple #28
0
 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}");
     }
 }
Exemple #29
0
        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.");
        }
Exemple #30
0
        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}");
            }
        }