62 lines
2.0 KiB
TypeScript
62 lines
2.0 KiB
TypeScript
/**
|
|
* @overview Life of German Reallife - Gui Playerlist playerlist.js
|
|
* @author VegaZ. Siga.
|
|
* @copyright (c) 2008 - 2018 Life of German
|
|
*/
|
|
|
|
export default function playerList(globalData: IGlobalData): void {
|
|
|
|
var playerlistBrowser: BrowserMp = null;
|
|
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) => {
|
|
|
|
if (playerlistBrowser !== null) {
|
|
playerlistBrowser.destroy();
|
|
playerlistBrowser = null;
|
|
globalData.InMenu = false;
|
|
mp.gui.cursor.show(false, false);
|
|
mp.gui.chat.activate(true);
|
|
}
|
|
else if (!globalData.InMenu) {
|
|
globalData.InMenu = true;
|
|
playerlistBrowser = mp.browsers.new('package://assets/html/onlinelist/index.html');
|
|
mp.gui.chat.activate(false);
|
|
mp.gui.cursor.show(true, true);
|
|
pList = JSON.parse(playersJson);
|
|
|
|
|
|
}
|
|
});
|
|
|
|
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});`);
|
|
});
|
|
}
|
|
|
|
//function getTable() {
|
|
// var table = "";
|
|
// pList.forEach((player) => {
|
|
// var tableRow = "<tr><td>" + player.Id + "</td><td>" + player.Name + "</td><td>" + player.Ping + "</td>";
|
|
// table = table + tableRow;
|
|
// })
|
|
// return document.write(table);
|
|
//}
|