Ejemplo n.º 1
0
 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}");
     }
 }
Ejemplo n.º 2
0
 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}");
     }
 }
Ejemplo n.º 3
0
 public async Task RemoveRenter(IPlayer player, int houseId, int renterId)
 {
     try
     {
         if (player == null || !player.Exists || houseId <= 0 || renterId <= 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.IsCharacterRentedInAnyHouse(renterId) || !ServerHouses.IsCharacterRentedInHouse(renterId, houseId))
         {
             HUDHandler.SendNotification(player, 4, 5000, "Fehler: Dieser Spieler ist nicht in deinem Haus eingemietet."); return;
         }
         ServerHouses.RemoveServerHouseRenter(houseId, renterId);
         HUDHandler.SendNotification(player, 2, 2000, $"Du hast den Mieter {Characters.GetCharacterName(renterId)} erfolgreich gekündigt.");
         foreach (var renterPlayer in Alt.Server.GetPlayers().ToList().Where(x => x != null && x.Exists && x.GetCharacterMetaId() == (ulong)renterId))
         {
             HUDHandler.SendNotification(renterPlayer, 3, 2000, $"Dein Mietvertrag in dem Haus '{ServerHouses.GetHouseStreet(houseId)}' wurde gekündigt."); break;
         }
     }
     catch (Exception e)
     {
         Alt.Log($"{e}");
     }
 }