|
@@ -188,6 +188,10 @@ minigame.setStarttimesList();
|
|
|
minigame.setupMultiplayer();
|
|
|
return;
|
|
|
|
|
|
+//--------------------------------------------------
|
|
|
+//Minigame-Utils
|
|
|
+//--------------------------------------------------
|
|
|
+
|
|
|
function minigame.loadLobbyEvents() {
|
|
|
event.load("player_join");
|
|
|
event.load("player_logout");
|
|
@@ -219,7 +223,7 @@ function minigame.setupMultiplayer() {
|
|
|
$sound_category_player = sound.getCategory("player");
|
|
|
$join_sound = sound.get("minecraft:block.note_block.bass");
|
|
|
$pling_sound = sound.get("minecraft:block.note_block.pling");
|
|
|
- $gamesworldloc = getGamesSpawn();
|
|
|
+ $gamesworldloc = world.getGamesSpawn();
|
|
|
}
|
|
|
|
|
|
function minigame.setLastPos(player) {
|
|
@@ -239,23 +243,197 @@ function minigame.getLastPos(player) {
|
|
|
return location;
|
|
|
}
|
|
|
|
|
|
+function minigame.isStarted(sign_loc) {
|
|
|
+ return block.getSign(sign_loc, 3) == "§bStarted";
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.getSignLoc(sign_name) {
|
|
|
+ return map.get(getScriptVar("gamesigns"), sign_name);
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.term(script, gamesignloc) {
|
|
|
+ setScriptVar("sign_loc", gamesignloc);
|
|
|
+ script.callEvent("term_script");
|
|
|
+ sign.ready(gamesignloc);
|
|
|
+ script.term(script);
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.speakAll(prefix, message) {
|
|
|
+ iter = list.iterator(minigame.getPlayers($script_id));
|
|
|
+ while(hasNext(iter)) {
|
|
|
+ p_uuid = next(iter);
|
|
|
+ p = player.get(p_uuid);
|
|
|
+ player.speakPrefix(p, prefix, message);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.msgAll(message) {
|
|
|
+ iter = list.iterator(minigame.getPlayers($script_id));
|
|
|
+ while(hasNext(iter)) {
|
|
|
+ p_uuid = next(iter);
|
|
|
+ p = player.get(p_uuid);
|
|
|
+ msg(p, message);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.displayAll(line, message) {
|
|
|
+ iter = list.iterator(minigame.getPlayers($script_id));
|
|
|
+ while(hasNext(iter)) {
|
|
|
+ p_uuid = next(iter);
|
|
|
+ p = player.get(p_uuid);
|
|
|
+ display.add(p, line, message);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.titleAll(title, subtitle, fadeIn, show, fadeOut) {
|
|
|
+ iter = list.iterator(minigame.getPlayers($script_id));
|
|
|
+ while(hasNext(iter)) {
|
|
|
+ p_uuid = next(iter);
|
|
|
+ p = player.get(p_uuid);
|
|
|
+ title.setTime(p, fadeIn, show, fadeOut);
|
|
|
+ title.setSub(p, subtitle);
|
|
|
+ title.send(p, title);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.displayRemoveAll(line) {
|
|
|
+ iter = list.iterator(minigame.getPlayers($script_id));
|
|
|
+ while(hasNext(iter)) {
|
|
|
+ p_uuid = next(iter);
|
|
|
+ p = player.get(p_uuid);
|
|
|
+ display.remove(p, line);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.displayResetAll() {
|
|
|
+ iter = list.iterator(minigame.getPlayers($script_id));
|
|
|
+ while(hasNext(iter)) {
|
|
|
+ p_uuid = next(iter);
|
|
|
+ p = player.get(p_uuid);
|
|
|
+ display.reset(p);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.statsHeader(player, gamename, colorcode) {
|
|
|
+ msg(player, "[", gamename, "§r] §r---= ", colorcode, "Statistic §r=---");
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.statsLine(player, colorcode, string, value) {
|
|
|
+ msg(player, colorcode, " -§r ", string, ": ", colorcode, value);
|
|
|
+}
|
|
|
+
|
|
|
+function getTeamWithLowestPeople(team_lists, numberofteams) {
|
|
|
+ teamlist = map.get(team_lists, 0);
|
|
|
+ lowest = list.getSize(teamlist);
|
|
|
+ lowestteam = 0;
|
|
|
+ for(i = 1; i < numberofteams; i++) {
|
|
|
+ teamlist = map.get(team_lists, i);
|
|
|
+ size = list.getSize(teamlist);
|
|
|
+ if(size < lowest) {
|
|
|
+ lowest = size;
|
|
|
+ lowestteam = i;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return lowestteam;
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.kickPlayer(script, player) {
|
|
|
+ resetplayer(player);
|
|
|
+ player.tpGamesLobby(player);
|
|
|
+ script_id = script.getId(script);
|
|
|
+ list = minigame.getPlayers(script_id);
|
|
|
+ list.remove(list, player.getUuid(player));
|
|
|
+ sign.players($gamesignloc, list.getSize(list), $maxplayers);
|
|
|
+ set.remove(player.getMinigameIds(player), script_id);
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.kickAllPlayers(script) {
|
|
|
+ player_list = minigame.getPlayers(script.getId(script));
|
|
|
+ list = list.new();
|
|
|
+ //Create copy
|
|
|
+ iter = list.iterator(player_list);
|
|
|
+ while(hasNext(iter)) {
|
|
|
+ list.add(list, next(iter));
|
|
|
+ }
|
|
|
+ iter = list.iterator(list);
|
|
|
+ while(hasNext(iter)) {
|
|
|
+ minigame.kickPlayer(script, player.get(next(iter)));
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.getPlayers(script_id) {
|
|
|
+ map = getScriptVar("script_players");
|
|
|
+ list = map.get(map, script_id);
|
|
|
+ if(list == null) {
|
|
|
+ list = list.new();
|
|
|
+ map.add(map, script_id, list);
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.setWon(player_or_id, game_short, amount) {
|
|
|
+ config = playerdata.getGames(player_or_id);
|
|
|
+ config.set(config, concat("won.", game_short), amount);
|
|
|
+ config.saveAsync(config);
|
|
|
+}
|
|
|
+
|
|
|
+function minigame.getWon(player_or_id, game_short) {
|
|
|
+ config = playerdata.getGames(player_or_id);
|
|
|
+ return config.getDouble(config, concat("won.", game_short), 0);
|
|
|
+}
|
|
|
+
|
|
|
+//--------------------------------------------------
|
|
|
+//Player-Utils
|
|
|
+//--------------------------------------------------
|
|
|
+
|
|
|
function player.tpGamesLobby(player) {
|
|
|
lastpos = minigame.getLastPos(player);
|
|
|
if(lastpos != null) {
|
|
|
entity.teleport(player, read.location(lastpos));
|
|
|
} else {
|
|
|
- entity.teleport(player, getGamesSpawn());
|
|
|
+ entity.teleport(player, world.getGamesSpawn());
|
|
|
}
|
|
|
minigame.displayElo(player, minigame.getElo(player));
|
|
|
}
|
|
|
|
|
|
+function player.resetMinigames(player) {
|
|
|
+ id_set = player.getMinigameIds(player);
|
|
|
+ set.clear(id_set);
|
|
|
+}
|
|
|
+
|
|
|
+function player.hasMinigameId(player, script_id) {
|
|
|
+ set = player.getMinigameIds(player);
|
|
|
+ return set.contains(set, script_id);
|
|
|
+}
|
|
|
+
|
|
|
+function resetplayer(player) {
|
|
|
+ entity.cleareffects(player);
|
|
|
+ entity.setHealth(player, 20);
|
|
|
+ player.setHunger(player, 20);
|
|
|
+ player.setSaturation(player, 5);
|
|
|
+ display.reset(player);
|
|
|
+ player.clearInventory(player);
|
|
|
+ stacks.clear(player);
|
|
|
+ status.reset(player);
|
|
|
+ stacks.setActive(player, false);
|
|
|
+ entity.setName(player, player.getName(player));
|
|
|
+ boss.send(player, "REMOVE");
|
|
|
+ player.setSpeed(player, 1 / 20);
|
|
|
+ entity.setGravity(player, true);
|
|
|
+ inv.close(player);
|
|
|
+}
|
|
|
+
|
|
|
+//--------------------------------------------------
|
|
|
+//Ranking-Utils
|
|
|
+//--------------------------------------------------
|
|
|
+
|
|
|
//Tabelle in Datenbank registrieren
|
|
|
-function registerRanking(rankingtable) {
|
|
|
+function ranking.register(rankingtable) {
|
|
|
databank.workerExecute(databank.prepare(concat("CREATE TABLE IF NOT EXISTS ", rankingtable, " (player_id INT NOT NULL PRIMARY KEY, points INT NOT NULL, playedgames INT NOT NULL);")));
|
|
|
}
|
|
|
|
|
|
//Gibt zurück, ob der Spieler bereits im Ranking gelistet ist
|
|
|
-function isPlayerInRanking(rankingtable, player_id) {
|
|
|
+function ranking.isPlayerRegisterd(rankingtable, player_id) {
|
|
|
playedgames = getPlayedGames(rankingtable, player_id);
|
|
|
if(playedgames == 0) {
|
|
|
return false;
|
|
@@ -263,83 +441,109 @@ function isPlayerInRanking(rankingtable, player_id) {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+function setRanking(rankingtable, player_id, points, playedgames) { //Deprecated
|
|
|
+ ranking.set(rankingtable, player_id, points, playedgames);
|
|
|
+}
|
|
|
+
|
|
|
//Setzt die Statistik eines Spielers
|
|
|
-function setRanking(rankingtable, player_id, points, playedgames) {
|
|
|
- if(isPlayerInRanking(rankingtable, player_id)) {
|
|
|
- setRankingStatement = databank.prepare(concat("UPDATE ", rankingtable, " SET points = ?, playedgames = ? WHERE player_id = ?;"), false);
|
|
|
+function ranking.set(rankingtable, player_id, points, playedgames) {
|
|
|
+ if(ranking.isPlayerRegisterd(rankingtable, player_id)) {
|
|
|
+ stmt = databank.prepare(concat("UPDATE ", rankingtable, " SET points = ?, playedgames = ? WHERE player_id = ?;"), false);
|
|
|
} else {
|
|
|
- setRankingStatement = databank.prepare(concat("INSERT INTO ", rankingtable, " (points, playedgames, player_id) VALUES (?,?,?);"), false);
|
|
|
+ stmt = databank.prepare(concat("INSERT INTO ", rankingtable, " (points, playedgames, player_id) VALUES (?,?,?);"), false);
|
|
|
}
|
|
|
- databank.setInt(setRankingStatement, 1, points);
|
|
|
- databank.setInt(setRankingStatement, 2, playedgames);
|
|
|
- databank.setInt(setRankingStatement, 3, player_id);
|
|
|
- databank.workerExecute(setRankingStatement);
|
|
|
+ databank.setInt(stmt, 1, points);
|
|
|
+ databank.setInt(stmt, 2, playedgames);
|
|
|
+ databank.setInt(stmt, 3, player_id);
|
|
|
+ databank.workerExecute(stmt);
|
|
|
+}
|
|
|
+
|
|
|
+function getRanking(rankingtable, player_id, order) { //Deprecated
|
|
|
+ return ranking.getRank(rankingtable, player_id, order);
|
|
|
}
|
|
|
|
|
|
//Gibt den Rang zurück. Auswertung erfolgt auf- oder absteigend
|
|
|
-function getRanking(rankingtable, player_id, order) {
|
|
|
+function ranking.getRank(rankingtable, player_id, order) {
|
|
|
rank = -1;
|
|
|
list = list.new();
|
|
|
- getRankingStatement = databank.prepare(concat("SELECT player_id FROM ", rankingtable, " ORDER BY points ", order, ";"));
|
|
|
- result = databank.execute(getRankingStatement);
|
|
|
+ stmt = databank.prepare(concat("SELECT player_id FROM ", rankingtable, " ORDER BY points ", order, ";"));
|
|
|
+ result = databank.execute(stmt);
|
|
|
while(databank.next(result)) {
|
|
|
list.add(list, databank.getInt(result, 1));
|
|
|
}
|
|
|
rank = list.getIndexOf(list, player_id) + 1;
|
|
|
databank.close(result);
|
|
|
- databank.close(getRankingStatement);
|
|
|
+ databank.close(stmt);
|
|
|
return rank;
|
|
|
}
|
|
|
|
|
|
+function getPoints(rankingtable, player_id) { //Deprecated
|
|
|
+ return ranking.getPoints(rankingtable, player_id);
|
|
|
+}
|
|
|
+
|
|
|
//Gibt die Rekord-Punkte eines Spielers zurück
|
|
|
-function getPoints(rankingtable, player_id) {
|
|
|
- points = 0;
|
|
|
- getPointsStatement = databank.prepare(concat("SELECT points FROM ", rankingtable, " WHERE player_id = ?;"));
|
|
|
- databank.setInt(getPointsStatement, 1, player_id);
|
|
|
- result = databank.execute(getPointsStatement);
|
|
|
- while(databank.next(result)) {
|
|
|
+function ranking.getPoints(rankingtable, player_id) {
|
|
|
+ stmt = databank.prepare(concat("SELECT points FROM ", rankingtable, " WHERE player_id = ?;"));
|
|
|
+ databank.setInt(stmt, 1, player_id);
|
|
|
+ result = databank.execute(stmt);
|
|
|
+ if(databank.next(result)) {
|
|
|
points = databank.getInt(result, 1);
|
|
|
+ } else {
|
|
|
+ points = 0;
|
|
|
}
|
|
|
databank.close(result);
|
|
|
- databank.close(getPointsStatement);
|
|
|
+ databank.close(stmt);
|
|
|
return points;
|
|
|
}
|
|
|
|
|
|
+function setPoints(rankingtable, player_id, points) { //Deprecated
|
|
|
+ ranking.setPoints(rankingtable, player_id, points);
|
|
|
+}
|
|
|
+
|
|
|
//Setzt die Rekord-Punkte eines Spielers
|
|
|
-function setPoints(rankingtable, player_id, points) {
|
|
|
- setPointsStatement = databank.prepare(concat("UPDATE ", rankingtable, " SET points = ? WHERE player_id = ?;"), false);
|
|
|
- databank.setInt(setPointsStatement, 1, points);
|
|
|
- databank.setInt(setPointsStatement, 2, player_id);
|
|
|
- databank.workerExecute(setPointsStatement);
|
|
|
+function ranking.setPoints(rankingtable, player_id, points) {
|
|
|
+ stmt = databank.prepare(concat("UPDATE ", rankingtable, " SET points = ? WHERE player_id = ?;"), false);
|
|
|
+ databank.setInt(stmt, 1, points);
|
|
|
+ databank.setInt(stmt, 2, player_id);
|
|
|
+ databank.workerExecute(stmt);
|
|
|
+}
|
|
|
+
|
|
|
+function setPlayedGames(rankingtable, player_id, playedgames) { //Deprecated
|
|
|
+ ranking.setPlayedGames(rankingtable, player_id, playedgames);
|
|
|
}
|
|
|
|
|
|
//Setzt die Anzahl gespielter Spiele eines Spielers
|
|
|
-function setPlayedGames(rankingtable, player_id, playedgames) {
|
|
|
- setPlayedGamesStatement = databank.prepare(concat("UPDATE ", rankingtable, " SET playedgames = ? WHERE player_id = ?;"), false);
|
|
|
- databank.setInt(setPlayedGamesStatement, 1, playedgames);
|
|
|
- databank.setInt(setPlayedGamesStatement, 2, player_id);
|
|
|
- databank.workerExecute(setPlayedGamesStatement);
|
|
|
+function ranking.setPlayedGames(rankingtable, player_id, playedgames) {
|
|
|
+ stmt = databank.prepare(concat("UPDATE ", rankingtable, " SET playedgames = ? WHERE player_id = ?;"), false);
|
|
|
+ databank.setInt(stmt, 1, playedgames);
|
|
|
+ databank.setInt(stmt, 2, player_id);
|
|
|
+ databank.workerExecute(stmt);
|
|
|
+}
|
|
|
+
|
|
|
+function getPlayedGames(rankingtable, player_id) { //Deprecated
|
|
|
+ return ranking.getPlayedGames(rankingtable, player_id);
|
|
|
}
|
|
|
|
|
|
//Gibt die Anzahl gespielter Spiele eines Spielers zurück
|
|
|
-function getPlayedGames(rankingtable, player_id) {
|
|
|
- number = 0;
|
|
|
- getPlayedGamesStatement = databank.prepare(concat("SELECT playedgames FROM ", rankingtable, " WHERE player_id = ?;"));
|
|
|
- databank.setInt(getPlayedGamesStatement, 1, player_id);
|
|
|
- result = databank.execute(getPlayedGamesStatement);
|
|
|
- while(databank.next(result)) {
|
|
|
+function ranking.getPlayedGames(rankingtable, player_id) {
|
|
|
+ stmt = databank.prepare(concat("SELECT playedgames FROM ", rankingtable, " WHERE player_id = ?;"));
|
|
|
+ databank.setInt(stmt, 1, player_id);
|
|
|
+ result = databank.execute(stmt);
|
|
|
+ if(databank.next(result)) {
|
|
|
number = databank.getInt(result, 1);
|
|
|
+ } else {
|
|
|
+ number = 0;
|
|
|
}
|
|
|
databank.close(result);
|
|
|
- databank.close(getPlayedGamesStatement);
|
|
|
+ databank.close(stmt);
|
|
|
return number;
|
|
|
}
|
|
|
|
|
|
//Gibt die gesamte Rangtabelle zurück. Liste mit Arrays
|
|
|
-function getRankingTable(rankingtable, order) {
|
|
|
- ranking_list= list.new();
|
|
|
- getRankingTableStatement = databank.prepare(concat("SELECT * FROM ", rankingtable, " ORDER BY points ", order, ";"));
|
|
|
- result = databank.execute(getRankingTableStatement);
|
|
|
+function ranking.getArray(rankingtable, order) {
|
|
|
+ ranking_list = list.new();
|
|
|
+ stmt = databank.prepare(concat("SELECT player_id, points, playedgames FROM ", rankingtable, " ORDER BY points ", order, ";"));
|
|
|
+ result = databank.execute(stmt);
|
|
|
while(databank.next(result)) {
|
|
|
a = array.new(3);
|
|
|
a[0] = databank.getInt(result, 1); //player_id
|
|
@@ -348,13 +552,13 @@ function getRankingTable(rankingtable, order) {
|
|
|
list.add(ranking_list, a);
|
|
|
}
|
|
|
databank.close(result);
|
|
|
- databank.close(getRankingTableStatement);
|
|
|
+ databank.close(stmt);
|
|
|
return ranking_list;
|
|
|
}
|
|
|
|
|
|
//Gibt Daten des Spieler von Platz n als Array zurück
|
|
|
-function getRankingFromRank(rankingtable, rank, order) {
|
|
|
- ranking_list = getRankingTable(rankingtable, order);
|
|
|
+function ranking.getArrayFromRank(rankingtable, rank, order) {
|
|
|
+ ranking_list = ranking.getArray(rankingtable, order);
|
|
|
list_size = list.getSize(ranking_list);
|
|
|
index = rank - 1;
|
|
|
if(index >= list_size || index < 0) {
|
|
@@ -365,51 +569,36 @@ function getRankingFromRank(rankingtable, rank, order) {
|
|
|
}
|
|
|
|
|
|
//Gibt den Spieler von Platz n zurück
|
|
|
-function getPlayerIdFromRank(rankingtable, rank, order) {
|
|
|
- ranking_list = getRankingTable(rankingtable, order);
|
|
|
- list_size = list.getSize(ranking_list);
|
|
|
- index = rank - 1;
|
|
|
- if(index >= list_size || index < 0) {
|
|
|
- player_id = -1;
|
|
|
- } else {
|
|
|
- a = list.getIndex(ranking_list, index);
|
|
|
- player_id = a[0];
|
|
|
+function ranking.getPlayerIdFromRank(rankingtable, rank, order) {
|
|
|
+ a = ranking.getArrayFromRank(rankingtable, rank, order);
|
|
|
+ if(a == null) {
|
|
|
+ return -1;
|
|
|
}
|
|
|
- return player_id;
|
|
|
+ return a[0];
|
|
|
}
|
|
|
|
|
|
//Gibt die Punkte von Platz n zurück
|
|
|
-function getPointsFromRank(rankingtable, rank, order) {
|
|
|
- ranking_list = getRankingTable(rankingtable, order);
|
|
|
- list_size = list.getSize(ranking_list);
|
|
|
- index = rank - 1;
|
|
|
- if(index >= list_size || index < 0) {
|
|
|
- points = -1;
|
|
|
- } else {
|
|
|
- a = list.getIndex(ranking_list, index);
|
|
|
- points = a[1];
|
|
|
+function ranking.getPointsFromRank(rankingtable, rank, order) {
|
|
|
+ a = ranking.getArrayFromRank(rankingtable, rank, order);
|
|
|
+ if(a == null) {
|
|
|
+ return -1;
|
|
|
}
|
|
|
- return points;
|
|
|
+ return a[1];
|
|
|
}
|
|
|
|
|
|
//Gibt die Anzahl gespielter Spiele von Platz n zurück
|
|
|
-function getPlayedGamesFromRank(rankingtable, rank, order) {
|
|
|
- ranking_list = getRankingTable(rankingtable, order);
|
|
|
- list_size = list.getSize(ranking_list);
|
|
|
- index = rank - 1;
|
|
|
- if(index >= list_size || index < 0) {
|
|
|
- playedgames = -1;
|
|
|
- } else {
|
|
|
- a = list.getIndex(ranking_list, index);
|
|
|
- playedgames = a[2];
|
|
|
+function ranking.getPlayedGamesFromRank(rankingtable, rank, order) {
|
|
|
+ a = ranking.getArrayFromRank(rankingtable, rank, order);
|
|
|
+ if(a == null) {
|
|
|
+ return -1;
|
|
|
}
|
|
|
- return playedgames;
|
|
|
+ return a[2];
|
|
|
}
|
|
|
|
|
|
//Gibt die Top 10 Spieler eines Spiels zurück
|
|
|
-function getTopTenList(rankingtable, order) {
|
|
|
+function ranking.getTopTenList(rankingtable, order) {
|
|
|
toptenlist = list.new();
|
|
|
- ranking_list = getRankingTable(rankingtable, order);
|
|
|
+ ranking_list = ranking.getArray(rankingtable, order);
|
|
|
list_size = list.getSize(ranking_list);
|
|
|
for(i = 0; i < list_size; i++) {
|
|
|
list.add(toptenlist, list.getIndex(ranking_list, i));
|
|
@@ -418,8 +607,8 @@ function getTopTenList(rankingtable, order) {
|
|
|
}
|
|
|
|
|
|
//Gibt die Statistik eines Spiels zurück
|
|
|
-function getPlayerStats(player_id, rankingtable, order) {
|
|
|
- ranking_list = getRankingTable(rankingtable, order);
|
|
|
+function ranking.getPlayerStats(player_id, rankingtable, order) {
|
|
|
+ ranking_list = ranking.getArray(rankingtable, order);
|
|
|
list_size = list.getSize(ranking_list);
|
|
|
for(i = 0; i < list_size; i++) {
|
|
|
a = list.getIndex(ranking_list, i);
|
|
@@ -431,8 +620,8 @@ function getPlayerStats(player_id, rankingtable, order) {
|
|
|
}
|
|
|
|
|
|
//Gibt den Rang eines Spielers zurück
|
|
|
-function getPlayerRank(player_id, rankingtable, order) {
|
|
|
- ranking_list = getRankingTable(rankingtable, order);
|
|
|
+function ranking.getPlayerRank(player_id, rankingtable, order) {
|
|
|
+ ranking_list = ranking.getArray(rankingtable, order);
|
|
|
list_size = list.getSize(ranking_list);
|
|
|
for(i = 0; i < list_size; i++) {
|
|
|
a = list.getIndex(ranking_list, i);
|
|
@@ -444,158 +633,15 @@ function getPlayerRank(player_id, rankingtable, order) {
|
|
|
}
|
|
|
|
|
|
//Entfernt einen Spieler aus der Statistik
|
|
|
-function removePlayerStats(player_id, rankingtable) {
|
|
|
- removePlayerStatsStatement = databank.prepare(concat("DELETE FROM ", rankingtable, " WHERE player_id = ?;"));
|
|
|
- databank.setInt(removePlayerStatsStatement, 1, player_id);
|
|
|
- databank.workerExecute(removePlayerStatsStatement);
|
|
|
+function ranking.removePlayer(player_id, rankingtable) {
|
|
|
+ stmt = databank.prepare(concat("DELETE FROM ", rankingtable, " WHERE player_id = ?;"));
|
|
|
+ databank.setInt(stmt, 1, player_id);
|
|
|
+ databank.workerExecute(stmt);
|
|
|
}
|
|
|
|
|
|
-function getTeamWithLowestPeople(team_lists, numberofteams) {
|
|
|
- teamlist = map.get(team_lists, 0);
|
|
|
- lowest = list.getSize(teamlist);
|
|
|
- lowestteam = 0;
|
|
|
- for(i = 1; i < numberofteams; i++) {
|
|
|
- teamlist = map.get(team_lists, i);
|
|
|
- size = list.getSize(teamlist);
|
|
|
- if(size < lowest) {
|
|
|
- lowest = size;
|
|
|
- lowestteam = i;
|
|
|
- }
|
|
|
- }
|
|
|
- return lowestteam;
|
|
|
-}
|
|
|
-
|
|
|
-function resetplayer(player) {
|
|
|
- entity.cleareffects(player);
|
|
|
- entity.setHealth(player, 20);
|
|
|
- player.setHunger(player, 20);
|
|
|
- player.setSaturation(player, 5);
|
|
|
- display.reset(player);
|
|
|
- player.clearInventory(player);
|
|
|
- stacks.clear(player);
|
|
|
- status.reset(player);
|
|
|
- stacks.setActive(player, false);
|
|
|
- entity.setName(player, player.getName(player));
|
|
|
- boss.send(player, "REMOVE");
|
|
|
- player.setSpeed(player, 1 / 20);
|
|
|
- entity.setGravity(player, true);
|
|
|
- inv.close(player);
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.kickPlayer(script, player) {
|
|
|
- resetplayer(player);
|
|
|
- player.tpGamesLobby(player);
|
|
|
- script_id = script.getId(script);
|
|
|
- list = minigame.getPlayers(script_id);
|
|
|
- list.remove(list, player.getUuid(player));
|
|
|
- sign.players($gamesignloc, list.getSize(list), $maxplayers);
|
|
|
- set.remove(player.getMinigameIds(player), script_id);
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.kickAllPlayers(script) {
|
|
|
- player_list = minigame.getPlayers(script.getId(script));
|
|
|
- list = list.new();
|
|
|
- //Create copy
|
|
|
- iter = list.iterator(player_list);
|
|
|
- while(hasNext(iter)) {
|
|
|
- list.add(list, next(iter));
|
|
|
- }
|
|
|
- iter = list.iterator(list);
|
|
|
- while(hasNext(iter)) {
|
|
|
- minigame.kickPlayer(script, player.get(next(iter)));
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-function player.resetMinigames(player) {
|
|
|
- id_set = player.getMinigameIds(player);
|
|
|
- set.clear(id_set);
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.getPlayers(script_id) {
|
|
|
- map = getScriptVar("script_players");
|
|
|
- list = map.get(map, script_id);
|
|
|
- if(list == null) {
|
|
|
- list = list.new();
|
|
|
- map.add(map, script_id, list);
|
|
|
- }
|
|
|
- return list;
|
|
|
-}
|
|
|
-
|
|
|
-function player.hasMinigameId(player, script_id) {
|
|
|
- set = player.getMinigameIds(player);
|
|
|
- return set.contains(set, script_id);
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.term(script, gamesignloc) {
|
|
|
- setScriptVar("sign_loc", gamesignloc);
|
|
|
- script.callEvent("term_script");
|
|
|
- sign.ready(gamesignloc);
|
|
|
- script.term(script);
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.speakAll(prefix, message) {
|
|
|
- iter = list.iterator(minigame.getPlayers($script_id));
|
|
|
- while(hasNext(iter)) {
|
|
|
- p_uuid = next(iter);
|
|
|
- p = player.get(p_uuid);
|
|
|
- player.speakPrefix(p, prefix, message);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.msgAll(message) {
|
|
|
- iter = list.iterator(minigame.getPlayers($script_id));
|
|
|
- while(hasNext(iter)) {
|
|
|
- p_uuid = next(iter);
|
|
|
- p = player.get(p_uuid);
|
|
|
- msg(p, message);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.displayAll(line, message) {
|
|
|
- iter = list.iterator(minigame.getPlayers($script_id));
|
|
|
- while(hasNext(iter)) {
|
|
|
- p_uuid = next(iter);
|
|
|
- p = player.get(p_uuid);
|
|
|
- display.add(p, line, message);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.titleAll(title, subtitle, fadeIn, show, fadeOut) {
|
|
|
- iter = list.iterator(minigame.getPlayers($script_id));
|
|
|
- while(hasNext(iter)) {
|
|
|
- p_uuid = next(iter);
|
|
|
- p = player.get(p_uuid);
|
|
|
- title.setTime(p, fadeIn, show, fadeOut);
|
|
|
- title.setSub(p, subtitle);
|
|
|
- title.send(p, title);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.displayRemoveAll(line) {
|
|
|
- iter = list.iterator(minigame.getPlayers($script_id));
|
|
|
- while(hasNext(iter)) {
|
|
|
- p_uuid = next(iter);
|
|
|
- p = player.get(p_uuid);
|
|
|
- display.remove(p, line);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.displayResetAll() {
|
|
|
- iter = list.iterator(minigame.getPlayers($script_id));
|
|
|
- while(hasNext(iter)) {
|
|
|
- p_uuid = next(iter);
|
|
|
- p = player.get(p_uuid);
|
|
|
- display.reset(p);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.statsHeader(player, gamename, colorcode) {
|
|
|
- msg(player, "[", gamename, "§r] §r---= ", colorcode, "Statistic §r=---");
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.statsLine(player, colorcode, string, value) {
|
|
|
- msg(player, colorcode, " -§r ", string, ": ", colorcode, value);
|
|
|
-}
|
|
|
+//--------------------------------------------------
|
|
|
+//Sign-Utils
|
|
|
+//--------------------------------------------------
|
|
|
|
|
|
function sign.players(sign_loc, amount, max) {
|
|
|
return block.setSign(sign_loc, 2, concat(text.number(amount), "/", text.number(max)));
|
|
@@ -611,12 +657,4 @@ function sign.started(sign_loc) {
|
|
|
|
|
|
function sign.closed(sign_loc) {
|
|
|
return block.setSign(sign_loc, 3, "§cClosed");
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.isStarted(sign_loc) {
|
|
|
- return block.getSign(sign_loc, 3) == "§bStarted";
|
|
|
-}
|
|
|
-
|
|
|
-function minigame.getSignLoc(sign_name) {
|
|
|
- return map.get(getScriptVar("gamesigns"), sign_name);
|
|
|
}
|