add option to park vehicles in vehicle menu
This commit is contained in:
@@ -41,6 +41,8 @@ export default function vehicleMenu() {
|
||||
case 3: // Türen
|
||||
showDoorsMenu();
|
||||
break;
|
||||
case 7: // Parken
|
||||
mp.events.callRemote("CLIENT:VehicleMenu_ParkCar");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -13,17 +13,17 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Remove="Gui\vehiclemenu\web\**" />
|
||||
<Compile Remove="tmp\**" />
|
||||
<EmbeddedResource Remove="Gui\vehiclemenu\web\**" />
|
||||
<EmbeddedResource Remove="tmp\**" />
|
||||
<None Remove="Gui\vehiclemenu\web\**" />
|
||||
<None Remove="tmp\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="assets\css\atm\" />
|
||||
<Folder Include="assets\img\atm\" />
|
||||
<Folder Include="Gui\vehiclemenu\web\css\" />
|
||||
<Folder Include="Gui\vehiclemenu\web\font\" />
|
||||
<Folder Include="Gui\vehiclemenu\web\img\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -78,8 +78,8 @@
|
||||
<span class="arrow"></span>
|
||||
<div class="bg"></div>
|
||||
<div class="label">
|
||||
<!--<p>Personalausweis ansehen</p>
|
||||
<img class="m" src="package://assets/img/vehiclemenu/i10.png">-->
|
||||
<p>Fahrzeug parken</p>
|
||||
<img class="m" src="package://assets/img/vehiclemenu/park.png">
|
||||
</div>
|
||||
</li>
|
||||
<li class="" tabindex="8">
|
||||
|
||||
BIN
ReallifeGamemode.Client/assets/img/vehiclemenu/park.png
Normal file
BIN
ReallifeGamemode.Client/assets/img/vehiclemenu/park.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.4 KiB |
@@ -1,6 +1,7 @@
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Server.Entities;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Models;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -37,8 +38,17 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
else if (sV is FactionVehicle fV)
|
||||
{
|
||||
if (fV.FactionId != u.FactionId && !state)
|
||||
if (fV.FactionId != u.FactionId && !state && !u.IsAdmin(AdminLevel.ADMIN3))
|
||||
{
|
||||
player.SendNotification("~r~Du hast keinen Schlüssel.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (sV is GroupVehicle gV)
|
||||
{
|
||||
if(gV.GroupId != u.Group.Id && !state && !u.IsAdmin(AdminLevel.ADMIN3))
|
||||
{
|
||||
player.SendNotification("~r~Du hast keinen Schlüssel.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -76,20 +86,75 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
else if (sV is UserVehicle uV)
|
||||
{
|
||||
if (uV.UserId != u.Id && !u.IsAdmin(AdminLevel.ADMIN3))
|
||||
if (uV.UserId != u.Id)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
VehicleStreaming.SetLockStatus(v, !state);
|
||||
state = !state;
|
||||
VehicleStreaming.SetLockStatus(v, state);
|
||||
string msg = "Fahrzeug ";
|
||||
msg += state ? "~g~abgeschlossen" : "~r~aufgeschlossen";
|
||||
player.SendNotification(msg);
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:VehicleMenu_ParkCar")]
|
||||
public void VehicleMenuParkCarEvent(Client player)
|
||||
{
|
||||
if (player.IsInVehicle && player.VehicleSeat == -1)
|
||||
{
|
||||
Vehicle v = player.Vehicle;
|
||||
|
||||
User u = player.GetUser();
|
||||
if (u == null) return;
|
||||
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
ServerVehicle sV = v.GetServerVehicle(dbContext);
|
||||
|
||||
if (sV == null) return;
|
||||
|
||||
if (sV is UserVehicle uV)
|
||||
{
|
||||
if (uV.UserId != u.Id)
|
||||
{
|
||||
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht parken.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if(sV is FactionVehicle fV)
|
||||
{
|
||||
if(fV.FactionId != u.FactionId || !u.FactionLeader)
|
||||
{
|
||||
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht parken.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if(sV is GroupVehicle gV)
|
||||
{
|
||||
if (gV.GroupId != u.Group.Id || u.GroupRank < GroupRank.MANAGER)
|
||||
{
|
||||
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht parken.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Vector3 pos = v.Position;
|
||||
|
||||
sV.PositionX = pos.X;
|
||||
sV.PositionY = pos.Y;
|
||||
sV.PositionZ = pos.Z;
|
||||
sV.Heading = v.Heading;
|
||||
|
||||
player.SendNotification("~g~Das Fahrzeug wurde geparkt.");
|
||||
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("VehicleMenu_ToggleSingleDoor")]
|
||||
public void VehicleMenuToggleSingleDoorEvent(Client player, int door)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Server.Entities;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
@@ -9,9 +10,9 @@ namespace ReallifeGamemode.Server.Extensions
|
||||
{
|
||||
public static class VehicleExtension
|
||||
{
|
||||
public static ServerVehicle GetServerVehicle(this Vehicle veh)
|
||||
public static ServerVehicle GetServerVehicle(this Vehicle veh, DatabaseContext context = null)
|
||||
{
|
||||
return VehicleManager.GetServerVehicleFromVehicle(veh);
|
||||
return VehicleManager.GetServerVehicleFromVehicle(veh, context);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,16 +159,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
user.PositionZ = pos.Z;
|
||||
}
|
||||
|
||||
foreach (ServerVehicle veh in saveAll.ServerVehicles)
|
||||
{
|
||||
Vehicle v = VehicleManager.GetVehicleFromServerVehicle(veh);
|
||||
|
||||
veh.PositionX = v.Position.X;
|
||||
veh.PositionY = v.Position.Y;
|
||||
veh.PositionZ = v.Position.Z;
|
||||
veh.Heading = v.Heading;
|
||||
}
|
||||
|
||||
saveAll.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -162,10 +162,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
public static ServerVehicle GetServerVehicleFromVehicle(Vehicle veh, DatabaseContext dbContext = null)
|
||||
{
|
||||
if (dbContext == null)
|
||||
{
|
||||
using (dbContext = new DatabaseContext())
|
||||
{
|
||||
dbContext = dbContext ?? new DatabaseContext();
|
||||
|
||||
foreach (KeyValuePair<int, NetHandle> pair in _serverVehicles)
|
||||
{
|
||||
if (pair.Value == veh.Handle)
|
||||
@@ -173,18 +171,6 @@ namespace ReallifeGamemode.Server.Managers
|
||||
return dbContext.ServerVehicles.Find(pair.Key);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (KeyValuePair<int, NetHandle> pair in _serverVehicles)
|
||||
{
|
||||
if (pair.Value == veh.Handle)
|
||||
{
|
||||
return dbContext.ServerVehicles.Find(pair.Key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user