Merge branch 'develop' of ssh://development.life-of-german.org:451/log-gtav/reallife-gamemode into develop
This commit is contained in:
2
Main.cs
2
Main.cs
@@ -47,6 +47,8 @@ namespace reallife_gamemode
|
|||||||
TimeManager.StartTimeManager();
|
TimeManager.StartTimeManager();
|
||||||
|
|
||||||
DatabaseHelper.InitDatabaseFirstTime();
|
DatabaseHelper.InitDatabaseFirstTime();
|
||||||
|
|
||||||
|
InteriorManager.LoadInteriors();
|
||||||
FactionHelper.CheckFactionBankAccounts();
|
FactionHelper.CheckFactionBankAccounts();
|
||||||
BusinessManager.LoadBusinesses();
|
BusinessManager.LoadBusinesses();
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace reallife_gamemode.Server.Business
|
|||||||
public void Setup()
|
public void Setup()
|
||||||
{
|
{
|
||||||
_informationLabel = NAPI.TextLabel.CreateTextLabel(Name, Position.Add(new Vector3(0, 0, 0.5)), 20.0f, 1.3f, 0, new Color(255, 255, 255));
|
_informationLabel = NAPI.TextLabel.CreateTextLabel(Name, Position.Add(new Vector3(0, 0, 0.5)), 20.0f, 1.3f, 0, new Color(255, 255, 255));
|
||||||
_marker = NAPI.Marker.CreateMarker(MarkerType.VerticalCylinder, Position.Subtract(new Vector3(0, 0, 1.5)), new Vector3(), new Vector3(), 1f, new Color(255, 255, 255), true);
|
_marker = NAPI.Marker.CreateMarker(MarkerType.VerticalCylinder, Position.Subtract(new Vector3(0, 0, 1.5)), new Vector3(), new Vector3(), 1f, new Color(255, 255, 255));
|
||||||
|
|
||||||
_colShape = NAPI.ColShape.CreateSphereColShape(Position.Subtract(new Vector3(0, 0, 1.5)), 3f);
|
_colShape = NAPI.ColShape.CreateSphereColShape(Position.Subtract(new Vector3(0, 0, 1.5)), 3f);
|
||||||
_colShape.OnEntityEnterColShape += EntityEnterBusinessColShape;
|
_colShape.OnEntityEnterColShape += EntityEnterBusinessColShape;
|
||||||
|
|||||||
@@ -2156,6 +2156,19 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Interior existiert nicht.");
|
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Interior existiert nicht.");
|
||||||
return;
|
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);
|
dbContext.Interiors.Remove(interiorRemove);
|
||||||
dbContext.SaveChanges();
|
dbContext.SaveChanges();
|
||||||
}
|
}
|
||||||
@@ -2172,6 +2185,7 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
}
|
}
|
||||||
interior.EnterPosition = player.Position;
|
interior.EnterPosition = player.Position;
|
||||||
dbContext.SaveChanges();
|
dbContext.SaveChanges();
|
||||||
|
InteriorManager.LoadInteriors();
|
||||||
}
|
}
|
||||||
player.SendChatMessage("~b~[ADMIN]~s~ Die Eingangs-Position vom Interior ~y~" + option2 + "~s~ wurde gesetzt.");
|
player.SendChatMessage("~b~[ADMIN]~s~ Die Eingangs-Position vom Interior ~y~" + option2 + "~s~ wurde gesetzt.");
|
||||||
break;
|
break;
|
||||||
@@ -2186,6 +2200,7 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
}
|
}
|
||||||
interior.ExitPosition = player.Position;
|
interior.ExitPosition = player.Position;
|
||||||
dbContext.SaveChanges();
|
dbContext.SaveChanges();
|
||||||
|
InteriorManager.LoadInteriors();
|
||||||
}
|
}
|
||||||
player.SendChatMessage("~b~[ADMIN]~s~ Die Ausgangs-Position vom Interior ~y~" + option2 + "~s~ wurde gesetzt.");
|
player.SendChatMessage("~b~[ADMIN]~s~ Die Ausgangs-Position vom Interior ~y~" + option2 + "~s~ wurde gesetzt.");
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ namespace reallife_gamemode.Server.Entities
|
|||||||
[Key]
|
[Key]
|
||||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
[Column("EnterPosition")]
|
[Column("EnterPosition")]
|
||||||
@@ -59,6 +58,7 @@ namespace reallife_gamemode.Server.Entities
|
|||||||
this._enterPosition = value;
|
this._enterPosition = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public Vector3 ExitPosition
|
public Vector3 ExitPosition
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using reallife_gamemode.Model;
|
using GTANetworkAPI;
|
||||||
|
using reallife_gamemode.Model;
|
||||||
using reallife_gamemode.Server.Entities;
|
using reallife_gamemode.Server.Entities;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -9,6 +10,11 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
{
|
{
|
||||||
public class InteriorManager
|
public class InteriorManager
|
||||||
{
|
{
|
||||||
|
public static Dictionary<int, NetHandle> _interiorEnterTextLabels = new Dictionary<int, NetHandle>();
|
||||||
|
public static Dictionary<int, NetHandle> _interiorExitTextLabels = new Dictionary<int, NetHandle>();
|
||||||
|
public static Dictionary<int, NetHandle> _interiorEnterMarkers = new Dictionary<int, NetHandle>();
|
||||||
|
public static Dictionary<int, NetHandle> _interiorExitMarkers = new Dictionary<int, NetHandle>();
|
||||||
|
|
||||||
public static Interior GetInteriorByName(string name, DatabaseContext dbContext = null)
|
public static Interior GetInteriorByName(string name, DatabaseContext dbContext = null)
|
||||||
{
|
{
|
||||||
if(dbContext == null)
|
if(dbContext == null)
|
||||||
@@ -23,5 +29,51 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
return dbContext.Interiors.Where(i => i.Name.ToLower() == name.ToLower()).FirstOrDefault();
|
return dbContext.Interiors.Where(i => i.Name.ToLower() == name.ToLower()).FirstOrDefault();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void LoadInteriors()
|
||||||
|
{
|
||||||
|
using (var dbContext = new DatabaseContext())
|
||||||
|
{
|
||||||
|
foreach (Interior interior in dbContext.Interiors)
|
||||||
|
{
|
||||||
|
TextLabel enT = GetInteriorEnterTextLabel(interior);
|
||||||
|
TextLabel exT = GetInteriorExitTextLabel(interior);
|
||||||
|
Marker enM = GetInteriorEnterMarker(interior);
|
||||||
|
Marker exM = GetInteriorExitMarkers(interior);
|
||||||
|
|
||||||
|
if (enT != null) enT.Delete();
|
||||||
|
if (exT != null) exT.Delete();
|
||||||
|
if (enM != null) enM.Delete();
|
||||||
|
if (exM != null) exM.Delete();
|
||||||
|
if (interior.EnterPosition != null)
|
||||||
|
{
|
||||||
|
NAPI.Util.ConsoleOutput("enterposition not null");
|
||||||
|
_interiorEnterTextLabels[interior.Id] = NAPI.TextLabel.CreateTextLabel("~y~" + interior.Name + "\n~s~Eingang", interior.EnterPosition, 10f, 1f, 0, new Color(255, 255, 255));
|
||||||
|
_interiorEnterMarkers[interior.Id] = NAPI.Marker.CreateMarker(MarkerType.VerticalCylinder, interior.EnterPosition.Subtract(new Vector3(0, 0, 1.5)), new Vector3(), new Vector3(), 1.0f, new Color(255, 255, 255));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(interior.ExitPosition != null)
|
||||||
|
{
|
||||||
|
NAPI.Util.ConsoleOutput("exitposition not null");
|
||||||
|
_interiorExitTextLabels[interior.Id] = NAPI.TextLabel.CreateTextLabel("~y~" + interior.Name + "\n~s~Ausgang", interior.ExitPosition, 10f, 1f, 0, new Color(255, 255, 255));
|
||||||
|
_interiorExitMarkers[interior.Id] = NAPI.Marker.CreateMarker(MarkerType.VerticalCylinder, interior.ExitPosition.Subtract(new Vector3(0, 0, 1.5)), new Vector3(), new Vector3(), 1.0f, new Color(255, 255, 255));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dbContext.SaveChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DeleteInterior(Interior interior)
|
||||||
|
{
|
||||||
|
_interiorEnterTextLabels.Remove(interior.Id);
|
||||||
|
_interiorExitTextLabels.Remove(interior.Id);
|
||||||
|
_interiorEnterMarkers.Remove(interior.Id);
|
||||||
|
_interiorExitMarkers.Remove(interior.Id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TextLabel GetInteriorEnterTextLabel(Interior interior) => NAPI.Pools.GetAllTextLabels().Find(t => t.Handle.Value == _interiorEnterTextLabels.FirstOrDefault(x => x.Key == interior.Id).Value.Value);
|
||||||
|
public static TextLabel GetInteriorExitTextLabel(Interior interior) => NAPI.Pools.GetAllTextLabels().Find(t => t.Handle.Value == _interiorExitTextLabels.FirstOrDefault(x => x.Key == interior.Id).Value.Value);
|
||||||
|
public static Marker GetInteriorEnterMarker(Interior interior) => NAPI.Pools.GetAllMarkers().Find(t => t.Handle.Value == _interiorEnterMarkers.FirstOrDefault(x => x.Key == interior.Id).Value.Value);
|
||||||
|
public static Marker GetInteriorExitMarkers(Interior interior) => NAPI.Pools.GetAllMarkers().Find(t => t.Handle.Value == _interiorExitMarkers.FirstOrDefault(x => x.Key == interior.Id).Value.Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,9 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
"zr3803",
|
"zr3803",
|
||||||
"flashgt",
|
"flashgt",
|
||||||
"gb200",
|
"gb200",
|
||||||
"dominator3"
|
"dominator3",
|
||||||
|
"models",
|
||||||
|
"teslamodels"
|
||||||
};
|
};
|
||||||
|
|
||||||
private static Dictionary<int, NetHandle> _serverVehicles = new Dictionary<int, NetHandle>();
|
private static Dictionary<int, NetHandle> _serverVehicles = new Dictionary<int, NetHandle>();
|
||||||
|
|||||||
Reference in New Issue
Block a user