finish /look

This commit is contained in:
hydrant
2021-04-15 12:38:10 +02:00
parent 18e385717b
commit 0b26b89aff
7 changed files with 63 additions and 52 deletions

View File

@@ -11,8 +11,10 @@ export default function vehicleMenu(globalData: IGlobalData) {
let menuBrowser: BrowserMp = null; let menuBrowser: BrowserMp = null;
var lastDriversBrowser: BrowserMp = null; var lastDriversBrowser: BrowserMp = null;
var lastDrivers = null;
mp.events.add('lookLastDrivers', (lastDriversParam) => { mp.events.add('lookLastDrivers', (lastDriversParam) => {
var lastDrivers = JSON.parse(lastDriversParam); lastDrivers = JSON.parse(lastDriversParam);
if (lastDriversBrowser !== null) { if (lastDriversBrowser !== null) {
lastDriversBrowser.destroy(); lastDriversBrowser.destroy();
@@ -29,6 +31,10 @@ export default function vehicleMenu(globalData: IGlobalData) {
} }
}); });
mp.events.add("CEF:VehicleLook_Loaded", () => {
lastDriversBrowser.execute(`setDrivers('${JSON.stringify(lastDrivers)}');`);
});
mp.events.add("removeLookMenu", () => { mp.events.add("removeLookMenu", () => {
if (lastDriversBrowser == null) { if (lastDriversBrowser == null) {
return; return;

View File

@@ -1,33 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Eingabe | Life of German</title>
<link rel="stylesheet" href="package://assets/css/Introduction/style.css" />
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
</head>
<body>
<main>
<div class="input-main">
<h1>Letze Fahrer</h1>
</div>
<div id="content" class="form" role="form">
• Hier <br />
• könnten <br />
• Ihre<br />
• letzen Fahrer<br />
• stehen<br />
<br /> <br />
Viel Erfolg bei der Prüfung!
</div>
<a target="_blank" id="close"></a>
</main>
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
<script src="package://assets/js/School/application.js"></script>
</body>
</html>

View File

@@ -1,7 +1,26 @@
 
let close = document.getElementById('close'); let close = document.getElementById('close');
close.onclick = function closeWindow() { $(document).ready(function () {
mp.trigger('removeDrivingSchool'); mp.trigger("CEF:VehicleLook_Loaded");
console.log('Fenster geschlossen!'); });
function setDrivers(driversJson) {
var drivers = JSON.parse(driversJson);
var listTag = $("#drivers-list");
drivers.forEach(driver => {
var name = driver.Name;
var dateTime = new Date(driver.Time);
var date = `${dateTime.getDay()}.${dateTime.getMonth()}.${dateTime.getFullYear()}`;
var time = `${dateTime.getHours()}:${dateTime.getMinutes()}:${dateTime.getSeconds()}`;
var infoLine = `${name} am ${date} um ${time} Uhr`;
var listItemTag = `<li>${infoLine}</li>`;
listTag.append(listItemTag);
});
}
close.onclick = function closeWindow() {
mp.trigger('removeLookMenu');
} }

View File

@@ -17,16 +17,13 @@
<h1>Letze Fahrer</h1> <h1>Letze Fahrer</h1>
</div> </div>
<div id="content" class="form" role="form"> <div id="content" class="form" role="form">
• Hier <br /> <ul id="drivers-list">
• könnten <br />
• Ihre<br /> </ul>
• letzen Fahrer<br />
• stehen<br />
<br /> <br />
</div> </div>
<a target="_blank" id="close"></a> <a id="close" href="#"></a>
</main> </main>
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script> <script src="../js/jquery-3.3.1.min.js"></script>
<script src="package://assets/js/School/application.js"></script> <script src="./application.js"></script>
</body> </body>
</html> </html>

View File

@@ -22,14 +22,35 @@ namespace ReallifeGamemode.Server.Commands
{ {
if (!player.IsLoggedIn()) return; if (!player.IsLoggedIn()) return;
Vehicle veh = NAPI.Pools.GetAllVehicles().Where(v => v.Position.DistanceTo(player.Position) <= 5).FirstOrDefault(); Vehicle veh = NAPI.Pools.GetAllVehicles()
.Where(v => v.Position.DistanceTo(player.Position) <= 5)
.OrderBy(v => v.Position.DistanceTo(player.Position))
.FirstOrDefault();
if (veh == null) if (veh == null)
{ {
return; return;
} }
player.TriggerEvent("lookLastDrivers", JsonConvert.SerializeObject(VehicleManager.lastDriversInVehicle[veh])); var lastDriverDic = new Dictionary<string, DateTime>();
if(VehicleManager.lastDriversInVehicle.ContainsKey(veh))
{
lastDriverDic = VehicleManager.lastDriversInVehicle[veh];
}
else
{
player.SendNotification("~r~Mit diesem Fahrzeug ist noch niemand gefahren");
return;
}
var list = lastDriverDic.Select(v => new
{
Name = v.Key,
Time = v.Value
}).OrderByDescending(v => v.Time).ToList();
player.TriggerEvent("lookLastDrivers", JsonConvert.SerializeObject(list));
} }
[Command("id", "~m~Benutzung: ~s~/id [Name]")] [Command("id", "~m~Benutzung: ~s~/id [Name]")]
@@ -77,7 +98,7 @@ namespace ReallifeGamemode.Server.Commands
} }
else else
{ {
pVeh = NAPI.Pools.GetAllVehicles().Where(v => v.Position.DistanceTo(player.Position) <= 5).FirstOrDefault(); pVeh = NAPI.Pools.GetAllVehicles().Where(v => v.Position.DistanceTo(player.Position) <= 5).OrderBy(v => v.Position.DistanceTo(player.Position)).FirstOrDefault();
} }
if (pVeh == null) if (pVeh == null)

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic; using System;
using System.Collections.Generic;
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Extensions;
@@ -23,10 +24,10 @@ namespace ReallifeGamemode.Server.Events
if (!VehicleManager.lastDriversInVehicle.ContainsKey(vehicle)) if (!VehicleManager.lastDriversInVehicle.ContainsKey(vehicle))
{ {
VehicleManager.lastDriversInVehicle.Add(vehicle, new List<string>()); VehicleManager.lastDriversInVehicle.Add(vehicle, new Dictionary<string, DateTime>());
} }
VehicleManager.lastDriversInVehicle[vehicle].Add(client.Name); VehicleManager.lastDriversInVehicle[vehicle][client.Name] = DateTime.Now;
if (vehicle.GetServerVehicle() is FactionVehicle veh) if (vehicle.GetServerVehicle() is FactionVehicle veh)
{ {

View File

@@ -19,7 +19,7 @@ namespace ReallifeGamemode.Server.Managers
public class VehicleManager : Script public class VehicleManager : Script
{ {
public static Dictionary<Vehicle, List<String>> lastDriversInVehicle = new Dictionary<Vehicle, List<string>>(); public static Dictionary<Vehicle, Dictionary<string, DateTime>> lastDriversInVehicle = new Dictionary<Vehicle, Dictionary<string, DateTime>>();
private static readonly List<string> _enabledMods = new List<string>() private static readonly List<string> _enabledMods = new List<string>()
{ {