Adapted Save- and LoadManager to new Vehicle System
This commit is contained in:
@@ -255,13 +255,16 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var gotoString = "";
|
var gotoString = "";
|
||||||
foreach (GotoPoint point in LoadManager.GotoPointList)
|
using(var dbContext = new DatabaseContext())
|
||||||
|
{
|
||||||
|
foreach (GotoPoint point in dbContext.GotoPoints)
|
||||||
{
|
{
|
||||||
if (point.Active)
|
if (point.Active)
|
||||||
{
|
{
|
||||||
gotoString += point.Description + ", ";
|
gotoString += point.Description + ", ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
player.SendChatMessage(gotoString);
|
player.SendChatMessage(gotoString);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -787,7 +790,7 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Command("vdestroy")]
|
[Command("vdestroy")]
|
||||||
public void CmdAdminDelveh(Client player)
|
public void CmdAdminVdestroy(Client player)
|
||||||
{
|
{
|
||||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true)
|
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN3) ?? true)
|
||||||
{
|
{
|
||||||
@@ -810,7 +813,7 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
playerVeh.Delete();
|
VehicleManager.DeleteVehicle(playerVeh);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("vcolor", "~m~Benutzung: ~s~/vcolor [Farb-ID1] [Farb-ID2]")]
|
[Command("vcolor", "~m~Benutzung: ~s~/vcolor [Farb-ID1] [Farb-ID2]")]
|
||||||
@@ -1297,17 +1300,18 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
if (player.IsInVehicle)
|
if (player.IsInVehicle)
|
||||||
{
|
{
|
||||||
Vehicle vehicle = player.Vehicle;
|
Vehicle vehicle = player.Vehicle;
|
||||||
SaveManager.SaveVehicleData((VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
|
int playerSeat = player.VehicleSeat;
|
||||||
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), vehicle.Locked, vehicle.EngineStatus, Convert.ToByte(vehicle.Dimension));
|
vehicle = SaveManager.SaveVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
|
||||||
|
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), vehicle.Locked);
|
||||||
player.SendNotification("Fahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
|
player.SendNotification("Fahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
|
||||||
|
player.SetIntoVehicle(vehicle, playerSeat);
|
||||||
}
|
}
|
||||||
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
|
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
|
||||||
break;
|
break;
|
||||||
case "FVehicle":
|
case "FVehicle":
|
||||||
if (player.IsInVehicle)
|
if (player.IsInVehicle)
|
||||||
{
|
{
|
||||||
if (player.GetUser().FactionId == null)
|
if (player.GetUser().GetFaction() == null)
|
||||||
{
|
{
|
||||||
player.SendChatMessage("~m~Du bist in keiner Fraktion! Invite dich erst mit ~y~/ainvite");
|
player.SendChatMessage("~m~Du bist in keiner Fraktion! Invite dich erst mit ~y~/ainvite");
|
||||||
return;
|
return;
|
||||||
@@ -1315,11 +1319,12 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
Vehicle vehicle = player.Vehicle;
|
Vehicle vehicle = player.Vehicle;
|
||||||
SaveManager.SaveFactionVehicleData((VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
|
player.SendChatMessage("second color: " + vehicle.SecondaryColor);
|
||||||
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), vehicle.Locked, vehicle.EngineStatus, Convert.ToByte(vehicle.Dimension), player.GetUser().FactionId);
|
int playerSeat = player.VehicleSeat;
|
||||||
vehicle.SetData("factionId", player.GetUser().FactionId);
|
vehicle = SaveManager.SaveFactionVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
|
||||||
LoadManager.FactionVehicleList.Add(vehicle);
|
vehicle.PrimaryColor, vehicle.SecondaryColor, vehicle.Locked, vehicle.EngineStatus, player.GetUser().FactionId);
|
||||||
player.SendNotification("Fraktionsfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
|
player.SendNotification("Fraktionsfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
|
||||||
|
player.SetIntoVehicle(vehicle, playerSeat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
|
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
|
||||||
@@ -1328,10 +1333,11 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
if (player.IsInVehicle)
|
if (player.IsInVehicle)
|
||||||
{
|
{
|
||||||
Vehicle vehicle = player.Vehicle;
|
Vehicle vehicle = player.Vehicle;
|
||||||
SaveManager.SaveShopVehicleData((VehicleHash)vehicle.Model, vehicle.DisplayName, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
|
int playerSeat = player.VehicleSeat;
|
||||||
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), Convert.ToByte(vehicle.Dimension), player.GetUser().FactionId);
|
vehicle = SaveManager.SaveShopVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.DisplayName, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
|
||||||
LoadManager.ShopVehicleList.Add(vehicle);
|
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor));
|
||||||
player.SendNotification("Shopfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
|
player.SendNotification("Shopfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
|
||||||
|
player.SetIntoVehicle(vehicle, playerSeat);
|
||||||
}
|
}
|
||||||
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
|
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
|
||||||
break;
|
break;
|
||||||
@@ -1795,7 +1801,7 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("givebusinessbankbalance", "~m~Benutzung: ~s~/givebusinessbankbalance [Business ID] [Menge]")]
|
[Command("setbusinessbankbalance", "~m~Benutzung: ~s~/setbusinessbankbalance [Business ID] [Menge]")]
|
||||||
public void CmdAdminGivebusinessbankbalance(Client player, int businessid, int amount)
|
public void CmdAdminGivebusinessbankbalance(Client player, int businessid, int amount)
|
||||||
{
|
{
|
||||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||||
@@ -1811,7 +1817,7 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
BankManager.TransferMoney(null, business, amount, "Admin");
|
BankManager.SetMoney(player, business, amount, "Admin");
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -1834,7 +1840,6 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
if (player.IsInVehicle)
|
if (player.IsInVehicle)
|
||||||
{
|
{
|
||||||
Vehicle playerVehicle = player.Vehicle;
|
Vehicle playerVehicle = player.Vehicle;
|
||||||
LoadManager.UserVehicleList.Add(playerVehicle);
|
|
||||||
using (var saveVehicle = new DatabaseContext())
|
using (var saveVehicle = new DatabaseContext())
|
||||||
{
|
{
|
||||||
var dataSet = new UserVehicle
|
var dataSet = new UserVehicle
|
||||||
@@ -1846,12 +1851,11 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
PositionZ = playerVehicle.Position.Z,
|
PositionZ = playerVehicle.Position.Z,
|
||||||
Heading = playerVehicle.Heading,
|
Heading = playerVehicle.Heading,
|
||||||
NumberPlate = playerVehicle.NumberPlate,
|
NumberPlate = playerVehicle.NumberPlate,
|
||||||
PrimaryColor = Convert.ToByte(playerVehicle.PrimaryColor),
|
PrimaryColor = playerVehicle.PrimaryColor,
|
||||||
SecondaryColor = Convert.ToByte(playerVehicle.SecondaryColor),
|
SecondaryColor = playerVehicle.SecondaryColor,
|
||||||
Locked = playerVehicle.Locked,
|
Locked = playerVehicle.Locked,
|
||||||
Active = true
|
Active = true
|
||||||
};
|
};
|
||||||
playerVehicle.SetData("ownerId",player.GetUser().Id);
|
|
||||||
saveVehicle.UserVehicles.Add(dataSet);
|
saveVehicle.UserVehicles.Add(dataSet);
|
||||||
saveVehicle.SaveChanges();
|
saveVehicle.SaveChanges();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
|
using reallife_gamemode.Model;
|
||||||
using reallife_gamemode.Server.Util;
|
using reallife_gamemode.Server.Util;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -20,5 +22,13 @@ namespace reallife_gamemode.Server.Entities
|
|||||||
[ForeignKey("Faction")]
|
[ForeignKey("Faction")]
|
||||||
public int? FactionId { get; set; }
|
public int? FactionId { get; set; }
|
||||||
public Faction Faction { get; set; }
|
public Faction Faction { get; set; }
|
||||||
|
|
||||||
|
public Faction GetFaction()
|
||||||
|
{
|
||||||
|
using (var context = new DatabaseContext())
|
||||||
|
{
|
||||||
|
return context.Factions.FirstOrDefault(f => f.Id == FactionId);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,10 +30,17 @@ namespace reallife_gamemode.Server.Entities
|
|||||||
[NotMapped]
|
[NotMapped]
|
||||||
public Vector3 Position => new Vector3(PositionX, PositionY, PositionZ);
|
public Vector3 Position => new Vector3(PositionX, PositionY, PositionZ);
|
||||||
|
|
||||||
public Vehicle Spawn()
|
public Vehicle Spawn(Vehicle currentVeh = null)
|
||||||
{
|
{
|
||||||
|
if (currentVeh != null) VehicleManager.DeleteVehicle(currentVeh);
|
||||||
Vehicle veh = NAPI.Vehicle.CreateVehicle(this.Model, this.Position, this.Heading, this.PrimaryColor, this.SecondaryColor, this.NumberPlate, locked: this.Locked, engine: false);
|
Vehicle veh = NAPI.Vehicle.CreateVehicle(this.Model, this.Position, this.Heading, this.PrimaryColor, this.SecondaryColor, this.NumberPlate, locked: this.Locked, engine: false);
|
||||||
VehicleManager.AddVehicle(this, veh);
|
VehicleManager.AddVehicle(this, veh);
|
||||||
|
|
||||||
|
if(this is FactionVehicle fV)
|
||||||
|
{
|
||||||
|
veh.NumberPlate = fV.GetFaction().Name;
|
||||||
|
}
|
||||||
|
|
||||||
return veh;
|
return veh;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
17
Server/Extensions/VehicleExtension.cs
Normal file
17
Server/Extensions/VehicleExtension.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using GTANetworkAPI;
|
||||||
|
using reallife_gamemode.Server.Entities;
|
||||||
|
using reallife_gamemode.Server.Managers;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace reallife_gamemode.Server.Extensions
|
||||||
|
{
|
||||||
|
public static class VehicleExtension
|
||||||
|
{
|
||||||
|
public static ServerVehicle GetServerVehicle(this Vehicle veh)
|
||||||
|
{
|
||||||
|
return VehicleManager.GetServerVehicleFromVehicle(veh);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ using System.Text;
|
|||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
using reallife_gamemode.Model;
|
using reallife_gamemode.Model;
|
||||||
using reallife_gamemode.Server.Entities;
|
using reallife_gamemode.Server.Entities;
|
||||||
|
using reallife_gamemode.Server.Extensions;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @overview Life of German Reallife - Managers LoadManager (LoadManager.cs)
|
* @overview Life of German Reallife - Managers LoadManager (LoadManager.cs)
|
||||||
@@ -15,10 +16,6 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
{
|
{
|
||||||
public class LoadManager : Script
|
public class LoadManager : Script
|
||||||
{
|
{
|
||||||
public static List<GotoPoint> GotoPointList = new List<GotoPoint>();
|
|
||||||
public static List<Vehicle> FactionVehicleList = new List<Vehicle>();
|
|
||||||
public static List<Vehicle> ShopVehicleList = new List<Vehicle>();
|
|
||||||
public static List<Vehicle> UserVehicleList = new List<Vehicle>();
|
|
||||||
|
|
||||||
[ServerEvent(Event.ResourceStart)]
|
[ServerEvent(Event.ResourceStart)]
|
||||||
public void OnResourceStart()
|
public void OnResourceStart()
|
||||||
@@ -33,13 +30,6 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
b.Color, b.Name, b.Alpha, b.DrawDistance, b.ShortRange, (short) b.Rotation, b.Dimension);
|
b.Color, b.Name, b.Alpha, b.DrawDistance, b.ShortRange, (short) b.Rotation, b.Dimension);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach (GotoPoint g in loadData.GotoPoints)
|
|
||||||
{
|
|
||||||
if (g.Active == true)
|
|
||||||
{
|
|
||||||
GotoPointList.Add(g);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(ServerVehicle veh in loadData.ServerVehicles)
|
foreach(ServerVehicle veh in loadData.ServerVehicles)
|
||||||
{
|
{
|
||||||
@@ -52,24 +42,13 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
NAPI.Vehicle.CreateVehicle((uint)savedV.Model, new Vector3(savedV.PositionX, savedV.PositionY, savedV.PositionZ), savedV.Heading, savedV.PrimaryColor,
|
NAPI.Vehicle.CreateVehicle((uint)savedV.Model, new Vector3(savedV.PositionX, savedV.PositionY, savedV.PositionZ), savedV.Heading, savedV.PrimaryColor,
|
||||||
savedV.SecondaryColor, savedV.NumberPlate, 255, savedV.Locked);
|
savedV.SecondaryColor, savedV.NumberPlate, 255, savedV.Locked);
|
||||||
}
|
}
|
||||||
if (veh is FactionVehicle factionV)
|
else if (veh is ShopVehicle shopV)
|
||||||
{
|
|
||||||
current.SetData("factionId", factionV.FactionId);
|
|
||||||
FactionVehicleList.Add(current);
|
|
||||||
}
|
|
||||||
if (veh is ShopVehicle shopV)
|
|
||||||
{
|
{
|
||||||
string displayName = NAPI.Vehicle.GetVehicleDisplayName(shopV.Model);
|
string displayName = NAPI.Vehicle.GetVehicleDisplayName(shopV.Model);
|
||||||
ShopVehicleList.Add(current);
|
|
||||||
NAPI.Vehicle.SetVehicleEngineHealth(current, 0);
|
NAPI.Vehicle.SetVehicleEngineHealth(current, 0);
|
||||||
var tLabel = NAPI.TextLabel.CreateTextLabel(displayName + " | " + shopV.Price + "~g~$", new Vector3(shopV.PositionX, shopV.PositionY, shopV.PositionZ + 1.5), 10, 1, 0, new Color(255, 255, 255), false);
|
var tLabel = NAPI.TextLabel.CreateTextLabel(displayName + " | " + shopV.Price.ToMoneyString(), new Vector3(shopV.PositionX, shopV.PositionY, shopV.PositionZ + 1.5), 10, 1, 0, new Color(255, 255, 255), false);
|
||||||
current.SetData("shopVehicleId", shopV.Id);
|
|
||||||
tLabel.AttachTo(current, "chassis", new Vector3(0, 0, 1.5), new Vector3(0, 0, 0));
|
tLabel.AttachTo(current, "chassis", new Vector3(0, 0, 1.5), new Vector3(0, 0, 0));
|
||||||
}
|
}
|
||||||
if (veh is UserVehicle userV)
|
|
||||||
{
|
|
||||||
UserVehicleList.Add(current);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
|
using reallife_gamemode.Model;
|
||||||
using reallife_gamemode.Server.Entities;
|
using reallife_gamemode.Server.Entities;
|
||||||
using reallife_gamemode.Server.Extensions;
|
using reallife_gamemode.Server.Extensions;
|
||||||
using reallife_gamemode.Server.Managers;
|
using reallife_gamemode.Server.Managers;
|
||||||
|
using reallife_gamemode.Server.Saves;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -30,9 +32,9 @@ namespace reallife_gamemode.Server.Events
|
|||||||
|
|
||||||
NAPI.Blip.CreateBlip(uint.Parse(blipSprite), new Vector3(x,y,z), scale, color, name, alpha, drawDistance, shortRange, short.Parse(blipRotation), dimension);
|
NAPI.Blip.CreateBlip(uint.Parse(blipSprite), new Vector3(x,y,z), scale, color, name, alpha, drawDistance, shortRange, short.Parse(blipRotation), dimension);
|
||||||
|
|
||||||
using (var saveData = new Model.DatabaseContext())
|
using (var saveData = new DatabaseContext())
|
||||||
{
|
{
|
||||||
var dataSet = new Server.Saves.SavedBlip
|
var dataSet = new SavedBlip
|
||||||
{
|
{
|
||||||
Sprite = sprite,
|
Sprite = sprite,
|
||||||
PositionX = x,
|
PositionX = x,
|
||||||
@@ -53,12 +55,12 @@ namespace reallife_gamemode.Server.Events
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SaveVehicleData(VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
|
public static Vehicle SaveVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
|
||||||
string vehicleNumberPlate, byte vehiclePrimaryColor, byte vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine, byte vehicleDimension)
|
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, bool vehicleLocked)
|
||||||
{
|
{
|
||||||
using (var saveData = new Model.DatabaseContext())
|
using (var saveData = new DatabaseContext())
|
||||||
{
|
{
|
||||||
var dataSet = new Server.Saves.SavedVehicle
|
var dataSet = new SavedVehicle
|
||||||
{
|
{
|
||||||
Model = vehicleModel,
|
Model = vehicleModel,
|
||||||
PositionX = vehiclePosition.X,
|
PositionX = vehiclePosition.X,
|
||||||
@@ -71,16 +73,19 @@ namespace reallife_gamemode.Server.Events
|
|||||||
Locked = vehicleLocked,
|
Locked = vehicleLocked,
|
||||||
Active = true
|
Active = true
|
||||||
};
|
};
|
||||||
saveData.ServerVehicles.Add(dataSet);
|
saveData.Vehicles.Add(dataSet);
|
||||||
saveData.SaveChanges();
|
saveData.SaveChanges();
|
||||||
|
|
||||||
|
return dataSet.Spawn(veh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void SaveFactionVehicleData(VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
|
public static Vehicle SaveFactionVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
|
||||||
string vehicleNumberPlate, byte vehiclePrimaryColor, byte vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine, byte vehicleDimension, int? factionId)
|
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine, int? factionId)
|
||||||
{
|
{
|
||||||
using (var saveData = new Model.DatabaseContext())
|
using (var saveData = new DatabaseContext())
|
||||||
{
|
{
|
||||||
var dataSet = new Entities.FactionVehicle
|
Console.WriteLine("Adding Faction Vehicle Secondary Color: " + vehicleSecondaryColor);
|
||||||
|
var dataSet = new FactionVehicle
|
||||||
{
|
{
|
||||||
Model = vehicleModel,
|
Model = vehicleModel,
|
||||||
FactionId = factionId,
|
FactionId = factionId,
|
||||||
@@ -94,16 +99,18 @@ namespace reallife_gamemode.Server.Events
|
|||||||
Locked = vehicleLocked,
|
Locked = vehicleLocked,
|
||||||
Active = true
|
Active = true
|
||||||
};
|
};
|
||||||
saveData.ServerVehicles.Add(dataSet);
|
saveData.FactionVehicles.Add(dataSet);
|
||||||
saveData.SaveChanges();
|
saveData.SaveChanges();
|
||||||
|
|
||||||
|
return dataSet.Spawn(veh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void SaveShopVehicleData(VehicleHash vehicleModel, string vehicleModelName, Vector3 vehiclePosition, float vehicleHeading,
|
public static Vehicle SaveShopVehicleData(Vehicle veh, VehicleHash vehicleModel, string vehicleModelName, Vector3 vehiclePosition, float vehicleHeading,
|
||||||
string vehicleNumberPlate, byte vehiclePrimaryColor, byte vehicleSecondaryColor, byte vehicleDimension, int? factionId)
|
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor)
|
||||||
{
|
{
|
||||||
using (var saveData = new Model.DatabaseContext())
|
using (var saveData = new DatabaseContext())
|
||||||
{
|
{
|
||||||
var dataSet = new Entities.ShopVehicle
|
var dataSet = new ShopVehicle
|
||||||
{
|
{
|
||||||
Model = vehicleModel,
|
Model = vehicleModel,
|
||||||
PositionX = vehiclePosition.X,
|
PositionX = vehiclePosition.X,
|
||||||
@@ -115,8 +122,10 @@ namespace reallife_gamemode.Server.Events
|
|||||||
SecondaryColor = vehicleSecondaryColor,
|
SecondaryColor = vehicleSecondaryColor,
|
||||||
Active = true
|
Active = true
|
||||||
};
|
};
|
||||||
saveData.ServerVehicles.Add(dataSet);
|
saveData.ShopVehicles.Add(dataSet);
|
||||||
saveData.SaveChanges();
|
saveData.SaveChanges();
|
||||||
|
|
||||||
|
return dataSet.Spawn(veh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
|
using reallife_gamemode.Server.Entities;
|
||||||
|
using reallife_gamemode.Server.Extensions;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace reallife_gamemode.Server.Managers
|
namespace reallife_gamemode.Server.Managers
|
||||||
@@ -19,7 +21,12 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
{
|
{
|
||||||
if(c.IsInVehicle)
|
if(c.IsInVehicle)
|
||||||
{
|
{
|
||||||
c.TriggerEvent("showTuningInfo", c.GetData("duty"));
|
Vehicle v = c.Vehicle;
|
||||||
|
if(v.GetServerVehicle() is FactionVehicle fV && fV.GetFaction().StateOwned)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
c.TriggerEvent("showTuningInfo");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,21 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
|
|
||||||
_serverVehicles[serverVehicle.Id] = vehicle.Handle;
|
_serverVehicles[serverVehicle.Id] = vehicle.Handle;
|
||||||
}
|
}
|
||||||
|
internal static void DeleteVehicle(Vehicle veh)
|
||||||
|
{
|
||||||
|
ServerVehicle sVeh;
|
||||||
|
if ((sVeh = GetServerVehicleFromVehicle(veh)) != null)
|
||||||
|
{
|
||||||
|
_serverVehicles.Remove(sVeh.Id);
|
||||||
|
}
|
||||||
|
|
||||||
|
veh.Delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Vehicle GetVehicleFromHandle(NetHandle handle)
|
||||||
|
{
|
||||||
|
return NAPI.Pools.GetAllVehicles().Find(v => v.Handle == handle);
|
||||||
|
}
|
||||||
|
|
||||||
public static Vehicle GetVehicleFromServerVehicle(ServerVehicle serverVehicle)
|
public static Vehicle GetVehicleFromServerVehicle(ServerVehicle serverVehicle)
|
||||||
{
|
{
|
||||||
@@ -34,7 +49,7 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return NAPI.Pools.GetAllVehicles().Find(v => v.Handle == _serverVehicles[serverVehicle.Id]);
|
return GetVehicleFromHandle(_serverVehicles[serverVehicle.Id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ServerVehicle GetServerVehicleFromVehicle(Vehicle veh)
|
public static ServerVehicle GetServerVehicleFromVehicle(Vehicle veh)
|
||||||
|
|||||||
Reference in New Issue
Block a user