Marvin Löschenkohl před 4 roky
rodič
revize
4ccb229e41

+ 2 - 2
global/gamecenter.txt

@@ -64,8 +64,8 @@ addGameSign("maednsign1", false, loc.new(gamesworld, -401, 157, -72), "minigames
 addGameSign("jrmap", true, loc.new(gamesworld, -413, 158, -40), "minigames/jumpnrun/jumpnrun", "minigames/jumpnrun/jumpnrun", true);
 addGameSign("tjrsign", false, loc.new(gamesworld, -414, 158, -40), "minigames/jumpnrun/todesjumpnrun", "minigames/jumpnrun/todesjumpnrun", true);
 addGameSign("icejrsign", false, loc.new(gamesworld, -415, 158, -40), "minigames/jumpnrun/icejumpnrun", "minigames/jumpnrun/icejumpnrun", true);
-addGameSign("fastbridgesign1", false, loc.new(gamesworld, -405, 158, -75), "minigames/fastbridge/fastbridge", "minigames/fastbridge/region_fastbridgemap1", false);
-addGameSign("fastbridgesign2", false, loc.new(gamesworld, -404, 158, -75), "minigames/fastbridge/fastbridge", "minigames/fastbridge/region_fastbridgemap2", false);
+addGameSign("fastbridgesign1", true, loc.new(gamesworld, -405, 158, -75), "minigames/fastbridge/fastbridge", "minigames/fastbridge/region_fastbridgemap1", false);
+addGameSign("fastbridgesign2", true, loc.new(gamesworld, -404, 158, -75), "minigames/fastbridge/fastbridge", "minigames/fastbridge/region_fastbridgemap2", false);
 addGameSign("rebuildsign1", false, loc.new(gamesworld, -423, 158, -42), "minigames/rebuild/rebuild", "minigames/rebuild/rebuildmap1", false);
 addGameSign("rebuildsign2", false, loc.new(gamesworld, -423, 158, -43), "minigames/rebuild/rebuild", "minigames/rebuild/rebuildmap2", false);
 addGameSign("catchsign1", false, loc.new(gamesworld, -434, 158, -49), "minigames/catch/catch", "minigames/catch/catchmap1", false);

+ 82 - 120
minigames/fastbridge/fastbridge.txt

@@ -1,65 +1,47 @@
-list.new(placedblocks);
-list.new(points);
-map.new(spawn_locs);
+placedblocks = list.new();
+points = list.new();
+spawn_locs = map.new();
 
 rankingtable = "fastbridgeranks";
-registerRanking(rankingtable);
-
-air_item_type = "minecraft:air";
 gamename = "§dFastBridge";
 start_sound = sound.get("minecraft:block.note_block.harp");
-ambient_sound_category = sound.getCategory("ambient");
 
 gosub("setstart");
-player = script.getLeader();
-player_name = player.getName(player);
-gosub("lobbycore");
 goto("simplelobby");
 
-@lobby
-display.add(player, 0, gamename);
-display.add(player, 1, "§7Map:");
-display.add(player, 2, "§3", mapname);
-return;
-
-@leavelobby
+@specificLobbyHandling
+if(event == "player_join") {
+	display.add(player, 0, gamename);
+	display.add(player, 1, "§7Map:");
+	display.add(player, 2, "§3", mapname);
+}
 return;
 
 @finalstart
-player.speak("all", gamename, "§rDas Spiel beginnt");
-block.setSign(gamesignloc, 2, concat(text.number(list.getSize(all)), "/", text.number(maxplayers)));
-block.setSign(gamesignloc, 3, "§6Läuft");
-
-display.reset("all");
-display.add("all", 0, gamename);
+player_list = minigame.getPlayers(script_id);
+minigame.displayResetAll();
+minigame.displayAll(0, gamename);
 if(seconds < 10) {
-    display.add("all", 1, "Zeit: ", concat(text.number(minutes), ":0", text.number(seconds)));
+    minigame.displayAll(1, concat("Time: ", text.number(minutes), ":0", text.number(seconds)));
 } else {
-    display.add("all", 1, "Zeit: ", concat(text.number(minutes), ":", text.number(seconds)));
+    minigame.displayAll(1, concat("TIme: ", text.number(minutes), ":", text.number(seconds)));
 }
 
-for(i = 0; i < list.getSize(all); i++) {
-	p = list.getIndex(all, i);
-	p_id = player.getId(p);
+for(i = 0; i < list.getSize(player_list); i++) {
+	p = player.get(list.getIndex(player_list, i));
+	p_uuid = player.getUuid(p);
+	speakPrefix(p, gamename, "The game has started.");
 	spawnloc = list.getIndex(spawns, i);
 	map.add(spawn_locs, p, spawnloc);
 	entity.teleport(p, spawnloc);
-	sound.spawnForPlayer(p, start_sound, ambient_sound_category);
+	sound.spawnForPlayer(p, start_sound, sound_category_ambient);
 	array = array.new(2);
-	array[0] = p_id;
+	array[0] = p_uuid;
 	array[1] = 0;
 	list.add(points, array);
 	
-	if(player.isSurvival(p)) {
-		if(player.isAdventure(p)) {
-			player.setGamemode(p, "survival");
-		}
-	} else {
-		player.setGamemode(p, "survival");
-	}
-	if(player.hasFly(p)) {
-		player.setFly(p, false);
-	}
+	player.setGamemode(p, "survival");
+	player.setFly(p, false);
 	
 	title.clear(p);
 	title.setTime(p, 0, 20, 0);
@@ -67,8 +49,8 @@ for(i = 0; i < list.getSize(all); i++) {
 
 countdown = 5;
 @title
-for(i = 0; i < list.getSize(all); i++) {
-	p = list.getIndex(all, i);
+for(i = 0; i < list.getSize(player_list); i++) {
+	p = player.get(list.getIndex(player_list, i));
 	title.send(p, concat("§4", text.number(countdown)));
 }
 if(countdown == 0) {
@@ -84,27 +66,28 @@ if(event == "block_click") {
 	cancel = true;
 }
 if(event == "player_logout" || event == "player_giveup") {
-	player_id = player.getId(player);
-	removeFromPoints(player_id);
-	kickplayer(player);
-	player.speak("all", gamename, player_name, " §rhat das Spiel verlassen");
-	if(list.getSize(all) < minplayers) {
-		p = list.getIndex(all, 0);
+	removeFromPoints(player.getUuid(player));
+	script = script.getFromId(script_id);
+	minigame.kickPlayer(script, player);
+	minigame.speakAll(gamename, concat(player_name, " §rhas left the game."));
+	if(list.getSize(player_list) < minplayers) {
+		p = player.get(list.getIndex(player_list, 0));
 		wincore(p);
 	}
 }
 goto("checkstart");
 
 @loadevents
-player.speak("all", gamename, "§rBaue schneller als alle anderen gerade nach vor");
-event.load("player_death");
+minigame.speakAll(gamename, "Build faster than the others in one line.");
 event.load("player_pre_respawn");
 
 sgoto(20, "loop");
 
 @checkgame
 wait();
-ignoreGoto(event);
+if(player.hasMinigameId(player, script_id)) {
+	ignoreGoto(event);
+}
 goto("checkgame");
 
 @block_break
@@ -115,11 +98,6 @@ goto("checkgame");
 player.setSpawn(player, map.get(spawn_locs, player));
 goto("checkgame");
 
-@player_death
-cancel = true;
-player.respawn(player);
-goto("checkgame");
-
 @player_is_attacked
 player_damage_cause_string = damage.getType(player_damage_cause);
 if(player_damage_cause_string == "player") {
@@ -134,22 +112,20 @@ if(seconds == 0) {
     if(minutes == -1) {
 		sortPoints();
 		array = list.getIndex(points, 0);
-		p_id = array[0];
-		p = read.player(player.getNameFromId(p_id));
-		wincore(p);
+		wincore(player.get(array[0]));
 	}
 } else {
     seconds--;
 }
 if(seconds < 10) {
-    display.add("all", 1, "Zeit: ", concat(text.number(minutes), ":0", text.number(seconds)));
+    minigame.displayAll(1, concat("Time: ", text.number(minutes), ":0", text.number(seconds)));
 } else {
-    display.add("all", 1, "Zeit: ", concat(text.number(minutes), ":", text.number(seconds)));
+    minigame.displayAll(1, concat("Time: ", text.number(minutes), ":", text.number(seconds)));
 }
-for(i = 0; i < list.getSize(all); i++) {
+for(i = 0; i < list.getSize(player_list); i++) {
 	item.drop(list.getIndex(spawns, i), list.getIndex(colors, i));
 	ycheck = list.getIndex(ycheck_list, i);
-	p = list.getIndex(all, i);
+	p = player.get(list.getIndex(player_list, i));
 	y = loc.getY(entity.getLocation(p));
 	if(y < ycheck) {
 		entity.teleport(p, map.get(spawn_locs, p));
@@ -174,8 +150,7 @@ if(starty == y) {
 	} elseif(coord == "z" && startz != z) {
 		goto("cancelPlacement");
 	} else {
-		player_id = player.getId(player);
-		raiseNumber(player_id);
+		raiseNumber(player.getUuid(player));
 		list.add(placedblocks, block_loc);
 		goto("checkgame");
 	}
@@ -187,70 +162,72 @@ goto("checkgame");
 
 @player_logout
 @player_giveup
-kickplayer(player);
-player.speak("all", gamename, player_name, " §rhat das Spiel verlassen");
-if(list.getSize(all) < minplayers) {
-	p = list.getIndex(all, 0);
+script = script.getFromId(script_id);
+minigame.kickPlayer(script, player);
+minigame.speakAll(gamename, concat(player_name, " §rhas left the game."));
+if(list.getSize(player_list) < minplayers) {
+	p = player.get(list.getIndex(player_list, 0));
 	wincore(p);
 }
 goto("checkgame");
 
 function wincore(winner) {
 	winner_name = player.getName(winner);
-	player.speak("all", $gamename, concat("§b", winner_name, " §rhat gewonnen!"));
+	minigame.speakAll($gamename, concat("§b", winner_name, " §rhas won!"));
 	
 	for(i = 0; i < list.getSize($placedblocks); i++) {
-		block.set(list.getIndex($placedblocks, i), $air_item_type);
+		block.set(list.getIndex($placedblocks, i), "minecraft:air");
 	}
-	
-	player.speak("all", $gamename, "§r---= §eStatistik §r=---");
-	printPoints();
-
-	for(i = 0; i < list.getSize($all); i++) {
-		p = list.getIndex($all, i);
-		p_id = player.getId(p);
-		entity.teleport(p, $gamesworldloc);
-		resetplayer(p);
+	for(i = 0; i < list.getSize($player_list); i++) {
+		player_uuid = list.getIndex($player_list, i);
+		player = player.get(player_uuid);
+		player_id = player.getId(player);
 		
-		last_record = getPoints($rankingtable, p_id);
-		playedgames = getPlayedGames($rankingtable, p_id) + 1;
-		record = getNumber(p_id);
+		last_record = getPoints($rankingtable, player_id);
+		playedgames = getPlayedGames($rankingtable, player_id) + 1;
+		record = getNumber(player_uuid);
 		if(record < last_record) {
 			record = last_record;
 		}
-		setRanking($rankingtable, p_id, record, playedgames);
+		setRanking($rankingtable, player_id, record, playedgames);
 		
-		fbwon = ggv(p, "fbwon");
+		fbwon = ggv(player, "fbwon");
 		if(fbwon == null) {
 			fbwon = 0;
 		}
-		if(p == winner) {
+		if(player == winner) {
 			fbwon += 1;
 		}
-		sgv(p, "fbwon", fbwon);
+		sgv(player, "fbwon", fbwon);
 		
-		msg(p, "");
-		
-		player.speak(p, $gamename, "§eGespielte Spiele§8: §r", text.number(playedgames));
-		player.speak(p, $gamename, "§eGewonnene Spiele§8: §r", text.number(fbwon));
-		player.speak(p, $gamename, "§eSiegwahrscheinlichkeit§8: §r", text.number(math.roundcomma((fbwon / playedgames) * 100, 2)), "%");
+		minigame.statsHeader(player, $gamename, "§e");
+		for(h = 0; h < list.getSize($player_list); h++) {
+			p_uuid = list.getIndex($player_list, h);
+			p = player.get(p_uuid);
+			p_name = player.getName(p);
+			msg(player, " §e- §r", text.number(getNumber(p_uuid)), " §e", p_name);
+		}
+		msg(player, "");
+		minigame.statsLine(player, "§e", "Won games", text.hover(text.number(fbwon), "Relevant for ranking"));
+		minigame.statsLine(player, "§e", "Played games", text.number(playedgames));
+		if(playedgames != 0) {
+			minigame.statsLine(player, "§e", "Win ratio", concat(text.number(math.roundComma((fbwon / playedgames) * 100, 2)), "%"));
+		}
 	}
-	
-	block.setSign($gamesignloc, 2, "0/", text.number($maxplayers));
-	block.setSign($gamesignloc, 3, "§2Bereit");
 	entity.removeAll("net.minecraft.entity.item.ItemEntity", $middleloc, $radius);
-	term();
+	script = script.getFromId($script_id);
+	minigame.kickAllPlayers(script);
+	minigame.term(script, $gamesignloc);
 }
 
-function removeFromPoints(player_id) {
+function removeFromPoints(player_uuid) {
 	for(i = 0; i < list.getSize($points); i++) {
 		array = list.getIndex($points, i);
-		if(array[0] == player_id) {
+		if(array[0] == player_uuid) {
 			list.removeIndex($points, i);
 			break;
 		}
 	}
-	return;
 }
 
 function sortPoints() {
@@ -271,38 +248,23 @@ function sortPoints() {
 			}
 		}
 	}
-	return;
 }
 
-function raiseNumber(player_id) {
+function raiseNumber(player_uuid) {
 	for(i = 0; i < list.getSize($points); i++) {
 		array = list.getIndex($points, i);
-		if(array[0] == player_id) {
+		if(array[0] == player_uuid) {
 			array[1] = array[1] + 1;
 			break;
 		}
 	}
-	return;
 }
 
-function getNumber(player_id) {
+function getNumber(player_uuid) {
 	for(i = 0; i < list.getSize($points); i++) {
 		array = list.getIndex($points, i);
-		if(array[0] == player_id) {
-			number = array[1];
-			break;
+		if(array[0] == player_uuid) {
+			return array[1];
 		}
 	}
-	return number;
-}
-
-function printPoints() {
-	for(i = 0; i < list.getSize($all); i++) {
-		player = list.getIndex($all, i);
-		player_name = player.getName(player);
-		player_id = player.getId(player);
-		number = getNumber(player_id);
-		player.speak("all", $gamename, concat("§e", player_name, " §r", text.number(number)));
-	}
-	return;
-}
+}

+ 3 - 4
minigames/fastbridge/region_fastbridgemap1.txt

@@ -1,6 +1,5 @@
 gamesignsmap = getScriptVar("gamesigns");
 gamesignloc = map.get(gamesignsmap, "fastbridgesign1");
-gamesworldloc = read.location(ggv("SERVER", "gamesspawn"));
 gamesworld = world.get("games");
 lobbyspawnloc = loc.new(gamesworld, 2026, 101, -3002);
 mapname = "Bienenstock";
@@ -11,7 +10,7 @@ seconds = 0;
 middleloc = loc.new(gamesworld, 2000, 114, -2007);
 radius = 100;
 
-list.new(colors);
+colors = list.new();
 list.add(colors, read.item("minecraft:white_terracotta"));
 list.add(colors, read.item("minecraft:orange_terracotta"));
 list.add(colors, read.item("minecraft:light_blue_terracotta"));
@@ -23,7 +22,7 @@ list.add(colors, read.item("minecraft:brown_terracotta"));
 list.add(colors, read.item("minecraft:green_terracotta"));
 list.add(colors, read.item("minecraft:red_terracotta"));
 
-list.new(spawns);
+spawns = list.new();
 list.add(spawns, loc.new(gamesworld, 2000, 114, -2007));
 list.add(spawns, loc.new(gamesworld, 2010, 114, -2007));
 list.add(spawns, loc.new(gamesworld, 2020, 114, -2007));
@@ -35,7 +34,7 @@ list.add(spawns, loc.new(gamesworld, 2000, 102, -2007));
 list.add(spawns, loc.new(gamesworld, 2010, 102, -2007));
 list.add(spawns, loc.new(gamesworld, 2020, 102, -2007));
 
-list.new(ycheck_list);
+ycheck_list = list.new();
 list.add(ycheck_list, 114);
 list.add(ycheck_list, 114);
 list.add(ycheck_list, 114);

+ 5 - 6
minigames/fastbridge/region_fastbridgemap2.txt

@@ -1,29 +1,28 @@
 gamesignsmap = getScriptVar("gamesigns");
 gamesignloc = map.get(gamesignsmap, "fastbridgesign2");
-gamesworldloc = read.location(ggv("SERVER", "gamesspawn"));
 gamesworld = world.get("games");
 lobbyspawnloc = loc.new(gamesworld, 2026.5, 101, -2948.5);
 mapname = "Snakes";
 minplayers = 2;
 maxplayers = 4;
-minutes = 2;
-seconds = 0;
+minutes = 0;
+seconds = 5;
 middleloc = loc.new(gamesworld, 2900, 104, -2020);
 radius = 120;
 
-list.new(colors);
+colors = list.new();
 list.add(colors, read.item("minecraft:green_terracotta"));
 list.add(colors, read.item("minecraft:yellow_terracotta"));
 list.add(colors, read.item("minecraft:blue_terracotta"));
 list.add(colors, read.item("minecraft:red_terracotta"));
 
-list.new(spawns);
+spawns = list.new();
 list.add(spawns, loc.new(gamesworld, 3002, 101, -2036));
 list.add(spawns, loc.new(gamesworld, 3002, 101, -2024));
 list.add(spawns, loc.new(gamesworld, 3002, 101, -2012));
 list.add(spawns, loc.new(gamesworld, 3002, 101, -2000));
 
-list.new(ycheck_list);
+ycheck_list = list.new();
 list.add(ycheck_list, 101);
 list.add(ycheck_list, 101);
 list.add(ycheck_list, 101);

+ 0 - 5
minigames/parcour/parcour.txt

@@ -4,7 +4,6 @@ maxplayers = 1;
 event.load("command");
 event.load("player_move");
 event.load("living_is_attacked");
-event.load("player_death");
 event.load("player_pre_respawn");
 event.load("player_toss");
 event.load("player_logout");
@@ -94,10 +93,6 @@ goto("wait");
 cancel = true;
 goto("wait");
 
-@player_death
-player.respawn(player);
-goto("wait");
-
 @player_pre_respawn
 player.setSpawn(player, list.getIndex(spawnlocs, jumpstage));
 goto("wait");

+ 0 - 2
minigames/spleef/spleef.txt

@@ -78,8 +78,6 @@ goto("checkgame");
 
 @win
 minigame.speakAll(gamename, concat("§6", player.getName(winner), " §rhas won the game."));
-resetplayer(winner);
-player.tpGamesLobby(winner);
 for(i = 0; i < list.getSize(resetblocks_loc); i++) {
 	block.set(list.getIndex(resetblocks_loc, i), list.getIndex(resetblocks_type, i));
 }

+ 0 - 1
test2.txt

@@ -1 +0,0 @@
-sgv(read.player("marvinius"), "jr", false);