NEUE ONLINELISTE DANKE EMRE.NL

This commit is contained in:
hydrant
2021-04-19 01:54:14 +02:00
parent 1ad1cf75fc
commit 994672d99c
4 changed files with 63 additions and 35 deletions

View File

@@ -8,6 +8,8 @@ export default function playerList(globalData: IGlobalData): void {
var playerlistBrowser: BrowserMp = null; var playerlistBrowser: BrowserMp = null;
var pList; var pList;
var factionPlayersMap: Map<number, number> = new Map<number, number>();
const factionIds = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
mp.events.add("showPlayerlist", (playersJson) => { mp.events.add("showPlayerlist", (playersJson) => {
@@ -20,18 +22,33 @@ export default function playerList(globalData: IGlobalData): void {
} }
else if (!globalData.InMenu) { else if (!globalData.InMenu) {
globalData.InMenu = true; globalData.InMenu = true;
playerlistBrowser = mp.browsers.new('package://assets/html/Playerlist/Tabliste.html'); playerlistBrowser = mp.browsers.new('package://assets/html/onlinelist/index.html');
mp.gui.chat.activate(false); mp.gui.chat.activate(false);
mp.gui.cursor.show(true, true); mp.gui.cursor.show(true, true);
pList = JSON.parse(playersJson); pList = JSON.parse(playersJson);
pList.forEach((player) => {
playerlistBrowser.execute(`ad_row('${JSON.stringify(player.Id)}','${JSON.stringify(player.Name)}',${JSON.stringify(player.FactionName)},'${JSON.stringify(player.Ping)}');`);
});
} }
}); });
mp.events.add("CEF:fetchPlayerList", () => { mp.events.add("CEF:PlayerList_Loaded", () => {
factionIds.forEach(f => {
factionPlayersMap.set(f, 0);
});
pList.forEach((player) => {
var facId = player.FactionId;
playerlistBrowser.execute(`addPlayerEntry('${player.Id}','${player.Name}', '${facId}', '${player.FactionName}','${player.Ping}');`);
factionPlayersMap.set(facId, factionPlayersMap.get(facId) + 1);
});
factionPlayersMap.forEach((value, key) => {
playerlistBrowser.execute(`setPlayerCount(${key}, ${value});`)
});
playerlistBrowser.execute(`setPlayerCount(-1, ${pList.length});`);
}); });
} }

View File

@@ -11,7 +11,7 @@
<div class="wrapper"> <div class="wrapper">
<div class="heading"> <div class="heading">
<h1>Spielerliste</h1> <h1>Spielerliste</h1>
<h2>Spieler: <span id="player-count"></span></h2> <h2>Spieler: <span id="player-count">0</span></h2>
</div> </div>
<table> <table>
@@ -29,23 +29,24 @@
</table> </table>
<ol class="inline stats"> <ol class="inline stats">
<li><abbr title="Los Santos Police Department" class="group group--1">LSPD</abbr>: <span id="1">5</span></li> <li><abbr title="Los Santos Police Department" class="group group--1">LSPD</abbr>: <span id="1">0</span></li>
<li><abbr title="Federal Investigation Bureau" class="group group--3">FIB</abbr>: <span id="3">5</span></li> <li><abbr title="Federal Investigation Bureau" class="group group--3">FIB</abbr>: <span id="3">0</span></li>
<li><abbr title="Los Santos Emergency Department" class="group group--2">LSED</abbr>: <span id="2">5</span></li> <li><abbr title="Los Santos Emergency Department" class="group group--2">LSED</abbr>: <span id="2">0</span></li>
</ol> </ol>
<ol class="inline stats"> <ol class="inline stats">
<li><abbr title="Grove Street Families" class="group group--7">GSF</abbr>: <span id="7">5</span></li> <li><abbr title="Grove Street Families" class="group group--7">GSF</abbr>: <span id="7">0</span></li>
<li><abbr title="Front Yard Ballas" class="group group--8">FYB</abbr>: <span id="8">5</span></li> <li><abbr title="Front Yard Ballas" class="group group--8">FYB</abbr>: <span id="8">0</span></li>
<li><abbr title="Los Santos Vagos" class="group group--5">LSV</abbr>: <span id="5">5</span></li> <li><abbr title="Los Santos Vagos" class="group group--5">LSV</abbr>: <span id="5">0</span></li>
</ol> </ol>
<ol class="inline stats"> <ol class="inline stats">
<li><abbr title="Weazel News" class="group group--9">NR</abbr>: <span id="9">5</span></li> <li><abbr title="Weazel News" class="group group--9">NR</abbr>: <span id="9">0</span></li>
<li><abbr title="Zivilisten" class="group group--0">Zivilisten</abbr>: <span id="0">5</span></li> <li><abbr title="Zivilisten" class="group group--0">Zivilisten</abbr>: <span id="0">0</span></li>
</ol> </ol>
</div> </div>
<script src="../../js/jquery-3.3.1.min.js"></script>
<script src="package://assets/js/onlinelist/script.js"></script> <script src="package://assets/js/onlinelist/script.js"></script>
</body> </body>
</html> </html>

View File

@@ -1,19 +1,23 @@
window.onbeforeunload = () => { window.scrollTo(0, 0); } window.onbeforeunload = () => { window.scrollTo(0, 0); }
$(document).ready(function () {
mp.trigger('CEF:PlayerList_Loaded');
});
setPlayerCount = (factionId, value) => { setPlayerCount = (factionId, value) => {
if (factionId == -1) { if (factionId == -1) {
document.getElementById('player-count').innerHTML = value; document.getElementById('player-count').innerHTML = value;
} else if (factionId >= 0 && factionId <= 9) { } else if (factionId >= 0 && factionId <= 9) {
document.getElementById(factionId).innerHTML = value; document.getElementById(factionId).innerHTML = value;
} }
} }
addPlayerEntry = (userId, userName, factionId, factionName, userPing) => { function addPlayerEntry(userId, userName, factionId, factionName, userPing) {
document.getElementById('players').innerHTML += `<tr><td>${userId}</td> <td>${userName}</td> <td class="group group--${factionId}">${factionName}</td> <td>${userPing}</td></tr>`; document.getElementById('players').innerHTML += `<tr><td>${userId}</td> <td>${userName}</td> <td class="group group--${factionId}">${factionName}</td> <td>${userPing}</td></tr>`;
} }
addPlayerEntries = (json) => { addPlayerEntries = (json) => {
JSON.parse(json).forEach(e => { JSON.parse(json).forEach(e => {
}); });
} }

View File

@@ -453,7 +453,7 @@ namespace ReallifeGamemode.Server.Events
int amount = 0; int amount = 0;
var tempFactionWeapon = weapons.Where(f => f.WeaponModel == weapon).FirstOrDefault(); var tempFactionWeapon = weapons.Where(f => f.WeaponModel == weapon).FirstOrDefault();
if(tempFactionWeapon != null) if (tempFactionWeapon != null)
{ {
amount = tempFactionWeapon.Ammount; amount = tempFactionWeapon.Ammount;
} }
@@ -513,7 +513,7 @@ namespace ReallifeGamemode.Server.Events
player.SendNotification("~r~Im Dienst kannst du keine Kleidung kaufen", false); player.SendNotification("~r~Im Dienst kannst du keine Kleidung kaufen", false);
return; return;
} }
if(JobBase.GetPlayerInJob().Contains(player)) if (JobBase.GetPlayerInJob().Contains(player))
{ {
player.SendNotification("~r~Im aktiven Job kannst du keine Kleidung kaufen", false); player.SendNotification("~r~Im aktiven Job kannst du keine Kleidung kaufen", false);
return; return;
@@ -686,12 +686,18 @@ namespace ReallifeGamemode.Server.Events
List<Player> players = NAPI.Pools.GetAllPlayers().Where(p => p.IsLoggedIn() == true).OrderBy(o => o.Handle.Value).ToList(); List<Player> players = NAPI.Pools.GetAllPlayers().Where(p => p.IsLoggedIn() == true).OrderBy(o => o.Handle.Value).ToList();
var listPlayers = players.Select(p => new var listPlayers = players.Select(p =>
{ {
Id = p.Handle.Value, User u = p.GetUser();
p.Name,
p.Ping, return new
FactionName = p.GetUser()?.Faction?.Name ?? "Zivilist", {
Id = p.Handle.Value,
p.Name,
p.Ping,
FactionName = u?.Faction?.Name ?? "Zivilist",
FactionId = u?.FactionId ?? 0
};
}); });
player.TriggerEvent("showPlayerlist", JsonConvert.SerializeObject(listPlayers)); player.TriggerEvent("showPlayerlist", JsonConvert.SerializeObject(listPlayers));
} }