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
|
case 3: // Türen
|
||||||
showDoorsMenu();
|
showDoorsMenu();
|
||||||
break;
|
break;
|
||||||
|
case 7: // Parken
|
||||||
|
mp.events.callRemote("CLIENT:VehicleMenu_ParkCar");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -13,17 +13,17 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Remove="Gui\vehiclemenu\web\**" />
|
||||||
<Compile Remove="tmp\**" />
|
<Compile Remove="tmp\**" />
|
||||||
|
<EmbeddedResource Remove="Gui\vehiclemenu\web\**" />
|
||||||
<EmbeddedResource Remove="tmp\**" />
|
<EmbeddedResource Remove="tmp\**" />
|
||||||
|
<None Remove="Gui\vehiclemenu\web\**" />
|
||||||
<None Remove="tmp\**" />
|
<None Remove="tmp\**" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="assets\css\atm\" />
|
<Folder Include="assets\css\atm\" />
|
||||||
<Folder Include="assets\img\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>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -78,8 +78,8 @@
|
|||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
<div class="bg"></div>
|
<div class="bg"></div>
|
||||||
<div class="label">
|
<div class="label">
|
||||||
<!--<p>Personalausweis ansehen</p>
|
<p>Fahrzeug parken</p>
|
||||||
<img class="m" src="package://assets/img/vehiclemenu/i10.png">-->
|
<img class="m" src="package://assets/img/vehiclemenu/park.png">
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="" tabindex="8">
|
<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 GTANetworkAPI;
|
||||||
using ReallifeGamemode.Server.Entities;
|
using ReallifeGamemode.Server.Entities;
|
||||||
using ReallifeGamemode.Server.Extensions;
|
using ReallifeGamemode.Server.Extensions;
|
||||||
|
using ReallifeGamemode.Server.Models;
|
||||||
using ReallifeGamemode.Server.Util;
|
using ReallifeGamemode.Server.Util;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -37,8 +38,17 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
}
|
}
|
||||||
else if (sV is FactionVehicle fV)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -76,20 +86,75 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
}
|
}
|
||||||
else if (sV is UserVehicle uV)
|
else if (sV is UserVehicle uV)
|
||||||
{
|
{
|
||||||
if (uV.UserId != u.Id && !u.IsAdmin(AdminLevel.ADMIN3))
|
if (uV.UserId != u.Id)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VehicleStreaming.SetLockStatus(v, !state);
|
|
||||||
state = !state;
|
state = !state;
|
||||||
|
VehicleStreaming.SetLockStatus(v, state);
|
||||||
string msg = "Fahrzeug ";
|
string msg = "Fahrzeug ";
|
||||||
msg += state ? "~g~abgeschlossen" : "~r~aufgeschlossen";
|
msg += state ? "~g~abgeschlossen" : "~r~aufgeschlossen";
|
||||||
player.SendNotification(msg);
|
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")]
|
[RemoteEvent("VehicleMenu_ToggleSingleDoor")]
|
||||||
public void VehicleMenuToggleSingleDoorEvent(Client player, int door)
|
public void VehicleMenuToggleSingleDoorEvent(Client player, int door)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
using ReallifeGamemode.Server.Entities;
|
using ReallifeGamemode.Server.Entities;
|
||||||
using ReallifeGamemode.Server.Managers;
|
using ReallifeGamemode.Server.Managers;
|
||||||
|
using ReallifeGamemode.Server.Models;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@@ -9,9 +10,9 @@ namespace ReallifeGamemode.Server.Extensions
|
|||||||
{
|
{
|
||||||
public static class VehicleExtension
|
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;
|
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();
|
saveAll.SaveChanges();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -162,10 +162,8 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
|
|
||||||
public static ServerVehicle GetServerVehicleFromVehicle(Vehicle veh, DatabaseContext dbContext = null)
|
public static ServerVehicle GetServerVehicleFromVehicle(Vehicle veh, DatabaseContext dbContext = null)
|
||||||
{
|
{
|
||||||
if (dbContext == null)
|
dbContext = dbContext ?? new DatabaseContext();
|
||||||
{
|
|
||||||
using (dbContext = new DatabaseContext())
|
|
||||||
{
|
|
||||||
foreach (KeyValuePair<int, NetHandle> pair in _serverVehicles)
|
foreach (KeyValuePair<int, NetHandle> pair in _serverVehicles)
|
||||||
{
|
{
|
||||||
if (pair.Value == veh.Handle)
|
if (pair.Value == veh.Handle)
|
||||||
@@ -173,18 +171,6 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
return dbContext.ServerVehicles.Find(pair.Key);
|
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;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user