Finished interior system
This commit is contained in:
@@ -2111,7 +2111,7 @@ namespace reallife_gamemode.Server.Commands
|
||||
player.TriggerEvent("showTuningMenu");
|
||||
}
|
||||
|
||||
[Command("interior", "~m~Benutzung: ~s~/interior [Add / Remove / SetEnterPosition / SetExitPosition] [Name]")]
|
||||
[Command("interior", "~m~Benutzung: ~s~/interior [Add / Remove / SetEnterPosition / SetExitPosition] [Name / ID]")]
|
||||
public void CmdAdminInterior(Client player, string option1, string option2)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
@@ -2131,11 +2131,6 @@ namespace reallife_gamemode.Server.Commands
|
||||
switch(option1)
|
||||
{
|
||||
case "add":
|
||||
if(InteriorManager.GetInteriorByName(option2) != null)
|
||||
{
|
||||
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Interior existiert schon.");
|
||||
return;
|
||||
}
|
||||
using(var dbContext = new DatabaseContext())
|
||||
{
|
||||
Interior interiorAdd = new Interior
|
||||
@@ -2150,23 +2145,18 @@ namespace reallife_gamemode.Server.Commands
|
||||
case "remove":
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
Interior interiorRemove = InteriorManager.GetInteriorByName(option2, dbContext);
|
||||
if(!int.TryParse(option2, out int intId))
|
||||
{
|
||||
player.SendChatMessage("~r~[FEHLER]~s~ Es muss eine Nummer angegeben werden.");
|
||||
return;
|
||||
}
|
||||
Interior interiorRemove = InteriorManager.GetInteriorById(intId, dbContext);
|
||||
if(interiorRemove == null)
|
||||
{
|
||||
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Interior existiert nicht.");
|
||||
return;
|
||||
}
|
||||
|
||||
TextLabel enT = InteriorManager.GetInteriorEnterTextLabel(interiorRemove);
|
||||
TextLabel exT = InteriorManager.GetInteriorExitTextLabel(interiorRemove);
|
||||
Marker enM = InteriorManager.GetInteriorEnterMarker(interiorRemove);
|
||||
Marker exM = InteriorManager.GetInteriorExitMarkers(interiorRemove);
|
||||
|
||||
if (enT != null) enT.Delete();
|
||||
if (exT != null) exT.Delete();
|
||||
if (enM != null) enM.Delete();
|
||||
if (exM != null) exM.Delete();
|
||||
|
||||
InteriorManager.DeleteInterior(interiorRemove);
|
||||
|
||||
dbContext.Interiors.Remove(interiorRemove);
|
||||
@@ -2177,7 +2167,12 @@ namespace reallife_gamemode.Server.Commands
|
||||
case "setenterposition":
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
Interior interior = InteriorManager.GetInteriorByName(option2, dbContext);
|
||||
if (!int.TryParse(option2, out int intIdEnter))
|
||||
{
|
||||
player.SendChatMessage("~r~[FEHLER]~s~ Es muss eine Nummer angegeben werden.");
|
||||
return;
|
||||
}
|
||||
Interior interior = InteriorManager.GetInteriorById(intIdEnter, dbContext);
|
||||
if (interior == null)
|
||||
{
|
||||
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Interior existiert nicht.");
|
||||
@@ -2185,14 +2180,21 @@ namespace reallife_gamemode.Server.Commands
|
||||
}
|
||||
interior.EnterPosition = player.Position;
|
||||
dbContext.SaveChanges();
|
||||
InteriorManager.DeleteInterior(interior);
|
||||
InteriorManager.LoadInterior(interior);
|
||||
player.SendChatMessage("~b~[ADMIN]~s~ Die Eingangs-Position vom Interior ~y~" + interior.Name + "~s~ wurde gesetzt.");
|
||||
InteriorManager.LoadInteriors();
|
||||
}
|
||||
player.SendChatMessage("~b~[ADMIN]~s~ Die Eingangs-Position vom Interior ~y~" + option2 + "~s~ wurde gesetzt.");
|
||||
break;
|
||||
case "setexitposition":
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
Interior interior = InteriorManager.GetInteriorByName(option2, dbContext);
|
||||
if (!int.TryParse(option2, out int intIdExit))
|
||||
{
|
||||
player.SendChatMessage("~r~[FEHLER]~s~ Es muss eine Nummer angegeben werden.");
|
||||
return;
|
||||
}
|
||||
Interior interior = InteriorManager.GetInteriorById(intIdExit, dbContext);
|
||||
if (interior == null)
|
||||
{
|
||||
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Interior existiert nicht.");
|
||||
@@ -2200,9 +2202,11 @@ namespace reallife_gamemode.Server.Commands
|
||||
}
|
||||
interior.ExitPosition = player.Position;
|
||||
dbContext.SaveChanges();
|
||||
InteriorManager.DeleteInterior(interior);
|
||||
InteriorManager.LoadInterior(interior);
|
||||
player.SendChatMessage("~b~[ADMIN]~s~ Die Eingangs-Position vom Interior ~y~" + interior.Name + "~s~ wurde gesetzt.");
|
||||
InteriorManager.LoadInteriors();
|
||||
}
|
||||
player.SendChatMessage("~b~[ADMIN]~s~ Die Ausgangs-Position vom Interior ~y~" + option2 + "~s~ wurde gesetzt.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2297,45 +2301,6 @@ namespace reallife_gamemode.Server.Commands
|
||||
|
||||
/* ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */
|
||||
|
||||
//TEST COMMAND
|
||||
[Command("own")]
|
||||
public void CmdAdminOwn(Client player)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.IsInVehicle)
|
||||
{
|
||||
Vehicle playerVehicle = player.Vehicle;
|
||||
int playerSeat = player.VehicleSeat;
|
||||
using (var saveVehicle = new DatabaseContext())
|
||||
{
|
||||
var dataSet = new UserVehicle
|
||||
{
|
||||
UserId = player.GetUser().Id,
|
||||
Model = (VehicleHash)playerVehicle.Model,
|
||||
PositionX = playerVehicle.Position.X,
|
||||
PositionY = playerVehicle.Position.Y,
|
||||
PositionZ = playerVehicle.Position.Z,
|
||||
Heading = playerVehicle.Heading,
|
||||
NumberPlate = playerVehicle.NumberPlate,
|
||||
PrimaryColor = playerVehicle.PrimaryColor,
|
||||
SecondaryColor = playerVehicle.SecondaryColor,
|
||||
Locked = playerVehicle.Locked,
|
||||
Active = true
|
||||
};
|
||||
saveVehicle.UserVehicles.Add(dataSet);
|
||||
saveVehicle.SaveChanges();
|
||||
|
||||
player.SetIntoVehicle(dataSet.Spawn(playerVehicle), -1);
|
||||
}
|
||||
}
|
||||
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
|
||||
}
|
||||
|
||||
//TEST COMMAND
|
||||
[Command("myvehicles")]
|
||||
public void CmdAdminMyVehicles(Client player)
|
||||
@@ -2383,37 +2348,6 @@ namespace reallife_gamemode.Server.Commands
|
||||
}
|
||||
}
|
||||
|
||||
//TODO Ausführen bei Tastendruck wenn in Fahrzeug.
|
||||
[Command("buyv")]
|
||||
public void BuyShopVehicle(Client player)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.IsInVehicle)
|
||||
{
|
||||
if (player.Vehicle.HasData("shopVehicleId"))
|
||||
{
|
||||
int shopVehicleId = player.Vehicle.GetData("shopVehicleId");
|
||||
using (var getShopVehicle = new DatabaseContext())
|
||||
{
|
||||
ShopVehicle sVehicle = getShopVehicle.ShopVehicles.FirstOrDefault(u => u.Id == shopVehicleId);
|
||||
Entities.Faction receiverUser = getShopVehicle.Factions.FirstOrDefault(u => u.Name == "LSPD");
|
||||
BankManager.TransferMoney(player.GetUser(), receiverUser, sVehicle.Price, "Fahrzeug gekauft: " + NAPI.Vehicle.GetVehicleDisplayName(sVehicle.Model));
|
||||
//TODO Anpassen
|
||||
Vehicle boughtVehicle = NAPI.Vehicle.CreateVehicle(sVehicle.Model, new Vector3(sVehicle.PositionX, sVehicle.PositionY + 10, sVehicle.PositionZ + 0.5), sVehicle.Heading,
|
||||
sVehicle.PrimaryColor, sVehicle.SecondaryColor, "LoG", 255, false, true, 0);
|
||||
player.SetIntoVehicle(boughtVehicle, 0);
|
||||
//TODO fügt das Fahrzeug als Userfahrzeug hinzu
|
||||
CmdAdminOwn(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Command("saveall")]
|
||||
public void SaveAll(Client player)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user