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;
var lastDriversBrowser: BrowserMp = null;
var lastDrivers = null;
mp.events.add('lookLastDrivers', (lastDriversParam) => {
var lastDrivers = JSON.parse(lastDriversParam);
lastDrivers = JSON.parse(lastDriversParam);
if (lastDriversBrowser !== null) {
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", () => {
if (lastDriversBrowser == null) {
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');
close.onclick = function closeWindow() {
mp.trigger('removeDrivingSchool');
console.log('Fenster geschlossen!');
$(document).ready(function () {
mp.trigger("CEF:VehicleLook_Loaded");
});
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>
</div>
<div id="content" class="form" role="form">
• Hier <br />
• könnten <br />
• Ihre<br />
• letzen Fahrer<br />
• stehen<br />
<br /> <br />
<ul id="drivers-list">
</ul>
</div>
<a target="_blank" id="close"></a>
<a id="close" href="#"></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>
<script src="../js/jquery-3.3.1.min.js"></script>
<script src="./application.js"></script>
</body>
</html>

View File

@@ -22,14 +22,35 @@ namespace ReallifeGamemode.Server.Commands
{
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)
{
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]")]
@@ -77,7 +98,7 @@ namespace ReallifeGamemode.Server.Commands
}
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)

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using GTANetworkAPI;
using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Server.Extensions;
@@ -23,10 +24,10 @@ namespace ReallifeGamemode.Server.Events
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)
{

View File

@@ -19,7 +19,7 @@ namespace ReallifeGamemode.Server.Managers
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>()
{