Removed vespucci cardealer, add interior system (teleport missing)
This commit is contained in:
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:600fcdcea0bee73c236286d15cdf6ba784791c65eaacb7131cfd4413e653f650
|
|
||||||
size 25088
|
|
||||||
@@ -96,5 +96,8 @@ namespace reallife_gamemode.Model
|
|||||||
|
|
||||||
// Whitelist
|
// Whitelist
|
||||||
public DbSet<Server.Entities.Whitelist> WhitelistEntries { get; set; }
|
public DbSet<Server.Entities.Whitelist> WhitelistEntries { get; set; }
|
||||||
|
|
||||||
|
// Interiors
|
||||||
|
public DbSet<Server.Entities.Interior> Interiors { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2111,6 +2111,87 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
player.TriggerEvent("showTuningMenu");
|
player.TriggerEvent("showTuningMenu");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Command("interior", "~m~Benutzung: ~s~/interior [Add / Remove / SetEnterPosition / SetExitPosition] [Name]")]
|
||||||
|
public void CmdAdminInterior(Client player, string option1, string option2)
|
||||||
|
{
|
||||||
|
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||||
|
{
|
||||||
|
ChatService.NotAuthorized(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
option1 = option1.ToString();
|
||||||
|
|
||||||
|
if(option1 != "add" && option1 != "remove" && option1 != "setenterposition" && option1 != "setexitposition")
|
||||||
|
{
|
||||||
|
player.SendChatMessage("~m~Benutzung: ~s~/interior [Add / Remove / SetEnterPosition / SetExitPosition] [Name]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
{
|
||||||
|
Name = option2
|
||||||
|
};
|
||||||
|
dbContext.Interiors.Add(interiorAdd);
|
||||||
|
dbContext.SaveChanges();
|
||||||
|
player.SendChatMessage("~b~[ADMIN]~s~ Das Interior ~y~" + option2 + "~s~ wurde erstellt. ~m~ID: " + interiorAdd.Id);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "remove":
|
||||||
|
using (var dbContext = new DatabaseContext())
|
||||||
|
{
|
||||||
|
Interior interiorRemove = InteriorManager.GetInteriorByName(option2, dbContext);
|
||||||
|
if(interiorRemove == null)
|
||||||
|
{
|
||||||
|
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Interior existiert nicht.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
dbContext.Interiors.Remove(interiorRemove);
|
||||||
|
dbContext.SaveChanges();
|
||||||
|
}
|
||||||
|
player.SendChatMessage("~b~[ADMIN]~s~ Das Interior wurde gelöscht.");
|
||||||
|
break;
|
||||||
|
case "setenterposition":
|
||||||
|
using (var dbContext = new DatabaseContext())
|
||||||
|
{
|
||||||
|
Interior interior = InteriorManager.GetInteriorByName(option2, dbContext);
|
||||||
|
if (interior == null)
|
||||||
|
{
|
||||||
|
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Interior existiert nicht.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
interior.EnterPosition = player.Position;
|
||||||
|
dbContext.SaveChanges();
|
||||||
|
}
|
||||||
|
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 (interior == null)
|
||||||
|
{
|
||||||
|
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Interior existiert nicht.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
interior.ExitPosition = player.Position;
|
||||||
|
dbContext.SaveChanges();
|
||||||
|
}
|
||||||
|
player.SendChatMessage("~b~[ADMIN]~s~ Die Ausgangs-Position vom Interior ~y~" + option2 + "~s~ wurde gesetzt.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ALevel1338
|
#region ALevel1338
|
||||||
|
|||||||
75
Server/Entities/Interior.cs
Normal file
75
Server/Entities/Interior.cs
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
using GTANetworkAPI;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace reallife_gamemode.Server.Entities
|
||||||
|
{
|
||||||
|
public class Interior
|
||||||
|
{
|
||||||
|
[NotMapped]
|
||||||
|
private Vector3 _enterPosition;
|
||||||
|
[NotMapped]
|
||||||
|
private Vector3 _exitPosition;
|
||||||
|
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
[Column("EnterPosition")]
|
||||||
|
public string EnterPositionStr
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return JsonConvert.SerializeObject(this._enterPosition);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this._enterPosition = JsonConvert.DeserializeObject<Vector3>(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Column("ExitPosition")]
|
||||||
|
public string ExitPositionStr
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return JsonConvert.SerializeObject(this._exitPosition);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this._exitPosition = JsonConvert.DeserializeObject<Vector3>(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[NotMapped]
|
||||||
|
public Vector3 EnterPosition
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this._enterPosition;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this._enterPosition = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[NotMapped]
|
||||||
|
public Vector3 ExitPosition
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this._exitPosition;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this._exitPosition = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
27
Server/Managers/InteriorManager.cs
Normal file
27
Server/Managers/InteriorManager.cs
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
using reallife_gamemode.Model;
|
||||||
|
using reallife_gamemode.Server.Entities;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace reallife_gamemode.Server.Managers
|
||||||
|
{
|
||||||
|
public class InteriorManager
|
||||||
|
{
|
||||||
|
public static Interior GetInteriorByName(string name, DatabaseContext dbContext = null)
|
||||||
|
{
|
||||||
|
if(dbContext == null)
|
||||||
|
{
|
||||||
|
using (dbContext = new DatabaseContext())
|
||||||
|
{
|
||||||
|
return dbContext.Interiors.Where(i => i.Name.ToLower() == name.ToLower()).FirstOrDefault();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return dbContext.Interiors.Where(i => i.Name.ToLower() == name.ToLower()).FirstOrDefault();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user