Continued faction rank system

This commit is contained in:
hydrant
2018-09-25 21:42:40 +02:00
parent 4402dcc3a3
commit cbc18734ca
14 changed files with 130 additions and 33 deletions

View File

@@ -8,16 +8,19 @@
<html lang="de" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<script src="../../Dependences/jquery-3.3.1.min.js"></script>
<script src="../../Dependences/jquery.tablednd.0.8.min.js"></script>
<title></title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<table id="rank-table">
<tr><td>some</td><td>entry</td></tr>
</table>
<div class="table">
<table id="rank-table"></table>
<button class="save-btn">Speichern</button>
</div>
<script src="../jquery-3.3.1.min.js"></script>
<script src="jquery.tablednd.0.8.min.js"></script>
<script src="jquery.gettable.js"></script>
<script src="script.js"></script>
</body>
</html>

View File

@@ -0,0 +1 @@
!function (n) { "use strict"; function e(e, t) { n.each(t, function (t, o) { n.inArray(o, e) < 0 && e.push(o) }) } function t(t, o) { function r(n) { var e; if (!c.rows[n]) for (e = 0; n >= e; e++)c.rows[e] = c.rows[e] || { cells: [], table: c }; return c.rows[n] } function l(n) { var e; if (!c.cols[n]) for (e = 0; n >= e; e++)c.cols[e] = c.cols[e] || { cells: [], table: c }; return c.cols[n] } var c = { rows: [], cols: [], cells: [] }, s = "number" == typeof o ? o : y.length, u = -1, a = {}, i = "table" === t.get(0).nodeName.toLowerCase() ? t.get(0) : function () { var n = t.closest("table"); return n.length ? n.get(0) : void 0 }(); return i ? (c.elm = i, n(i).data(N, "table:" + s), n.each(i.rows, function (e, t) { var o, i, f, h, w, v, g, m, b, d = 0; for (n(t).data(N, "table:" + s + ",row:" + e), function () { var e = 0; n.each(t.cells, function (n, t) { e += +t.colSpan || 1 }), e - 1 > u && (u = e - 1) }(), h = 0; u >= h; h++)if ((!a[e] || !a[e][h]) && (w = t.cells[d++])) { for (n(w).data(N, "table:" + s + ",cell:" + c.cells.length), f = { elm: w, rows: [], cols: [], table: c, iRow: e, iCol: h }, v = (+w.rowSpan || 1) - 1, g = (+w.colSpan || 1) - 1, m = 0; v >= m; m++)o = r(e + m), f.rows.push(o), o.cells.push(f); for (m = 0; g >= m; m++)i = l(h + m), f.cols.push(i), i.cells.push(f); for (m = 1; v >= m; m++)for (a[e + m] = a[e + m] || {}, b = 0; g >= b; b++)a[e + m][h + b] = !0; h += g, c.cells.push(f) } }), n.each(c.cells, function (t, o) { var r = [o]; n.each(o.rows.concat(o.cols), function (n, t) { e(r, t.cells) }), o.xCells = r }), n.each(c.rows, function (n, e) { e.cells.sort(function (n, e) { return n.iCol - e.iCol }) }), n.each(c.cols, function (n, e) { e.cells.sort(function (n, e) { return n.iRow - e.iRow }) }), y[s] = c, c) : null } function o(n) { for (var e, t = {}, o = n.data(N) || "", r = /\b(\w+):(\d+)/g; null !== (e = r.exec(o));)t[e[1]] = +e[2]; return t } function r(n, e) { var r = o(n).table; return e || "number" != typeof r || !y[r] ? t(n, r) : y[r] } function l(n) { return "table" === n } function c(n) { return "tr" === n } function s(n) { return "td" === n || "th" === n } function u(n) { return "thead" === n || "tfoot" === n || "tbody" === n } function a(n) { return l(n) || c(n) || s(n) || u(n) } function i(e) { return n.map(e, function (n) { return n.elm }) } function f(e) { return n(i(e)) } function h(t) { var a = []; return t.each(function () { var t, f = n(this), h = f.get(0).nodeName.toLowerCase(); l(h) && (t = r(f)) ? e(a, i(t.cells)) : c(h) && (t = r(f)) ? e(a, i(t.rows[o(f).row].cells)) : s(h) && (t = r(f)) ? e(a, [t.cells[o(f).cell].elm]) : u(h) && (t = r(f)) && n.each(f.get(0).rows, function (r, l) { e(a, i(t.rows[o(n(l)).row].cells)) }) }), n(a.length ? a : null) } function w(t) { var l = []; return t.each(function () { var t, c = n(this), u = c.get(0).nodeName.toLowerCase(); s(u) && (t = r(c)) && e(l, i(t.cells[o(c).cell].xCells)) }), n(l.length ? l : null) } function v(t) { var a = []; return t.each(function () { var t, i = n(this), f = i.get(0).nodeName.toLowerCase(); l(f) && (t = r(i)) ? e(a, t.rows) : c(f) && (t = r(i)) ? e(a, [t.rows[o(i).row]]) : s(f) && (t = r(i)) ? e(a, t.cells[o(i).cell].rows) : u(f) && (t = r(i)) && e(a, n.map(i.get(0).rows, function (e) { return t.rows[o(n(e)).row] })) }), a } function g(t) { var a = []; return t.each(function () { var t, i = n(this), f = i.get(0).nodeName.toLowerCase(); (l(f) || c(f) || u(f)) && (t = r(i)) ? e(a, t.cols) : s(f) && (t = r(i)) && e(a, t.cells[o(i).cell].cols) }), a } function m(e) { return n.map(v(e), function (n) { return f(n.cells) }) } function b(t) { var o = []; return n.each(v(t), function (n, t) { e(o, i(t.cells)) }), n(o.length ? o : null) } function d(e) { return n.map(g(e), function (n) { return f(n.cells) }) } function p(t) { var o = []; return n.each(g(t), function (n, t) { e(o, i(t.cells)) }), n(o.length ? o : null) } function C(t) { var o = []; return t.each(function () { var t, l = n(this), c = l.get(0).nodeName.toLowerCase(); a(c) && (t = r(l)) && e(o, [t.elm]) }), n(o.length ? o : null) } function L(e) { return e.each(function () { var e = n(this), t = e.get(0).nodeName.toLowerCase(); a(t) && r(e, !0) }) } var N = "getTable", y = []; n.fn[N] = function (n) { return "cells" === n ? h(this) : "xCells" === n ? w(this) : "rows" === n ? m(this) : "rowsCells" === n ? b(this) : "cols" === n ? d(this) : "colsCells" === n ? p(this) : "table" === n ? C(this) : L(this) } }(jQuery);

File diff suppressed because one or more lines are too long

View File

@@ -1,11 +1,52 @@
$(document).ready(function () {
/**
* @overview Life of German Reallife - Faction Manager Rank (script.js)
* @author hydrant
* @copyright (c) 2008 - 2018 Life of German
*/
$(document).ready(function () {
mp.trigger("onManageFactionRanksLoaded");
$("table#rank-table").append("<tr><td>neues</td><td>element</td></tr>");
$(".save-btn").click(function () {
var rows = $("table#rank-table tr");
console.log(rows);
rows.shift();
console.log(rows);
if (rows.length == 0) {
alert("Es muss mindestens ein Rang angegeben werden!");
return;
}
var rankArray = new Array();
rows.forEach(function (row) {
var tdId = row[0];
var tdName = row[1];
var id = tdId.children[0].value;
var name = tdName.children[0].value;
var rank = [id, name];
console.log(rank);
rankArray.push(rank);
});
console.log(rankArray);
//mp.trigger('saveFactionRankData');
});
});
function loadData(rankData) {
var obj = JSON.parse(rankData);
obj.forEach(function (rank) {
$("table#rank-table").append(rank);
$("table#rank-table tr").remove();
$("table#rank-table").append("<tr class='nodrop nodrag'><th style='display:none;'>ID</th><th>Fraktions-Ränge</th></tr>");
console.log(rankData);
rankData.forEach(function (rank) {
$("table#rank-table").append("<tr><td style='display:none;'><input disabled class='input-id' value='" + rank.Id + "' /></td><td><input class='input-rankname' value='" + rank.RankName + "' /></tr>");
});
$("table#rank-table").tableDnD({
onDragClass: "rankDnD"
});
}

View File

@@ -1,3 +1,46 @@
body
{
body {
font-family: "Roboto", sans-serif;
-webkit-font-smoothing: antialiased;
overflow: hidden;
}
.table {
background-color: white;
box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24);
width: 350px;
margin: auto;
}
.rankDnD {
background-color: lightgray;
}
.save-btn {
background-color: forestgreen;
color: white;
outline: 0;
padding: 5px 10px;
border: none;
}
.save-btn:active {
outline: 0;
}
#rank-table {
width: 100%;
}
#rank-table tr td {
border-bottom: 1px solid black;
padding: 5px 15px;
}
#rank-table tr:last-child td {
border-bottom: none;
}
#rank-table > tr:not(:first-child):hover {
background-color: lightgray;
}

File diff suppressed because one or more lines are too long

View File

@@ -4,21 +4,27 @@
* @copyright (c) 2008 - 2018 Life of German
*/
var manageBrowser = null;
var manageFactionRanksBrowser = null;
var rankData = null;
mp.events.add('manageFactionRanks', (ranks) => {
if (manageBrowser !== null) return;
manageBrowser = mp.browsers.new('package://Client/FactionManagement/Ranks/index.html');
mp.gui.cursor.show(true, true);
if (manageFactionRanksBrowser !== null) return;
manageFactionRanksBrowser = mp.browsers.new('package://FactionManagement/Ranks/index.html');
mp.gui.chat.activate(false);
rankData = ranks;
});
mp.events.add('onManageFactionRanksLoaded', () => {
mp.gui.chat.push("loaded page");
if (manageBrowser !== null) {
manageBrowser.execute(`loadData(` + rankData + `)`);
mp.gui.chat.push(rankData);
if (manageFactionRanksBrowser !== null) {
manageFactionRanksBrowser.execute(`loadData(` + rankData + `)`);
mp.gui.cursor.show(true, true);
}
});
mp.events.add('saveFactionRankData', function () {
if (manageFactionRanksBrowser !== null) {
manageFactionRanksBrowser.destroy();
mp.gui.cursor.show(false, false);
mp.gui.chat.activate(true);
}
});

2
Client/Login/jquery-3.3.1.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -5,7 +5,7 @@
*/
var loginBrowser;
loginBrowser = mp.browsers.new('package://Client/Login/login.html');
loginBrowser = mp.browsers.new('package://Login/login.html');
mp.gui.chat.activate(false);
mp.gui.cursor.show(true, true);
mp.game.ui.displayHud(false);

2
Client/Save/jquery-3.3.1.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -7,7 +7,7 @@ var saveBrowser;
mp.events.add('saveBlip', () => {
saveBrowser = mp.browsers.new('package://Client/Save/save.html');
saveBrowser = mp.browsers.new('package://Save/save.html');
mp.gui.chat.activate(false);
mp.gui.cursor.show(true, true);
});

View File

@@ -1,6 +1,6 @@
/**
* @overview Life of German Reallife - Login index.js
* @author VegaZ
* @author VegaZ, hydrant
* @copyright (c) 2008 - 2018 Life of German
*/

View File

@@ -76,7 +76,7 @@ namespace reallife_gamemode.Server.Commands
using(var context = new DatabaseContext())
{
List<FactionRank> factionRanks = context.FactionRanks.ToList().FindAll(r => r.FactionId == f.Id);
List<FactionRank> factionRanks = context.FactionRanks.ToList().FindAll(r => r.FactionId == f.Id).OrderByDescending(o => o.Order).ToList();
string json = JsonConvert.SerializeObject(factionRanks, Formatting.None);
player.TriggerEvent("manageFactionRanks", json);
}

View File

@@ -31,10 +31,7 @@ namespace reallife_gamemode.Server.Services
{
using (var dbCon = new DatabaseContext())
{
foreach (User u in dbCon.Users)
{
Client c = ClientService.GetClientByName(u.Name);
if (c != null)
foreach (Client c in NAPI.Pools.GetAllPlayers())
{
Faction f = c.GetFaction();
if (f != null)
@@ -47,7 +44,6 @@ namespace reallife_gamemode.Server.Services
}
}
}
}
public static void BroadcastFaction(string message, Faction faction)
{