123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- event.load("living_pre_hurt");
- event.load("player_move");
- event.load("player_logout");
- event.load("block_click");
- event.load("player_giveup");
- event.load("player_join");
- rankingtable = "jumpranks";
- points = 0;
- maxplayers = 1;
- gamesignsmap = getScriptVar("gamesigns");
- gamesignloc = map.get(gamesignsmap, "jrmap");
- gamename = "§aJump'n'Run";
- jump_sound = sound.get("entity.item.pickup");
- sound_category_ambient = sound.getCategory("ambient");
- blocks = list.new();
- list.add(blocks, "2:0:0");
- list.add(blocks, "3:0:0");
- list.add(blocks, "4:0:0");
- list.add(blocks, "2:1:0");
- list.add(blocks, "3:1:0");
- list.add(blocks, "4:1:0");
- list.add(blocks, "-2:0:0");
- list.add(blocks, "-3:0:0");
- list.add(blocks, "-4:0:0");
- list.add(blocks, "-2:1:0");
- list.add(blocks, "-3:1:0");
- list.add(blocks, "-4:1:0");
- list.add(blocks, "0:0:2");
- list.add(blocks, "0:0:3");
- list.add(blocks, "0:0:4");
- list.add(blocks, "0:1:2");
- list.add(blocks, "0:1:3");
- list.add(blocks, "0:1:4");
- list.add(blocks, "0:0:-2");
- list.add(blocks, "0:0:-3");
- list.add(blocks, "0:0:-4");
- list.add(blocks, "0:1:-2");
- list.add(blocks, "0:1:-3");
- list.add(blocks, "0:1:-4");
- list.add(blocks, "2:0:2");
- list.add(blocks, "3:0:3");
- list.add(blocks, "2:1:2");
- list.add(blocks, "3:1:3");
- list.add(blocks, "-2:0:2");
- list.add(blocks, "-3:0:3");
- list.add(blocks, "-2:1:2");
- list.add(blocks, "-3:1:3");
- list.add(blocks, "2:0:-2");
- list.add(blocks, "3:0:-3");
- list.add(blocks, "2:1:-2");
- list.add(blocks, "3:1:-3");
- list.add(blocks, "-2:0:-2");
- list.add(blocks, "-3:0:-3");
- list.add(blocks, "-2:1:-2");
- list.add(blocks, "-3:1:-3");
- list.add(blocks, "4:0:1");
- list.add(blocks, "4:0:2");
- list.add(blocks, "4:0:-1");
- list.add(blocks, "4:0:-2");
- list.add(blocks, "-4:0:1");
- list.add(blocks, "-4:0:2");
- list.add(blocks, "-4:0:-1");
- list.add(blocks, "-4:0:-2");
- list.add(blocks, "1:0:4");
- list.add(blocks, "2:0:4");
- list.add(blocks, "-1:0:4");
- list.add(blocks, "-2:0:4");
- list.add(blocks, "1:0:-4");
- list.add(blocks, "2:0:-4");
- list.add(blocks, "-1:0:-4");
- list.add(blocks, "-2:0:-4");
- list.add(blocks, "2:0:1");
- list.add(blocks, "3:0:1");
- list.add(blocks, "3:0:2");
- list.add(blocks, "2:1:1");
- list.add(blocks, "3:1:1");
- list.add(blocks, "3:1:2");
- list.add(blocks, "-2:0:1");
- list.add(blocks, "-3:0:1");
- list.add(blocks, "-3:0:2");
- list.add(blocks, "-2:1:1");
- list.add(blocks, "-3:1:1");
- list.add(blocks, "-3:1:2");
- list.add(blocks, "2:0:-1");
- list.add(blocks, "3:0:-1");
- list.add(blocks, "3:0:-2");
- list.add(blocks, "2:1:-1");
- list.add(blocks, "3:1:-1");
- list.add(blocks, "3:1:-2");
- list.add(blocks, "-2:0:-1");
- list.add(blocks, "-3:0:-1");
- list.add(blocks, "-3:0:-2");
- list.add(blocks, "-2:1:-1");
- list.add(blocks, "-3:1:-1");
- list.add(blocks, "-3:1:-2");
- list.add(blocks, "1:0:2");
- list.add(blocks, "1:0:3");
- list.add(blocks, "2:0:3");
- list.add(blocks, "1:1:2");
- list.add(blocks, "1:1:3");
- list.add(blocks, "2:1:3");
- list.add(blocks, "-1:0:2");
- list.add(blocks, "-1:0:3");
- list.add(blocks, "-2:0:3");
- list.add(blocks, "-1:1:2");
- list.add(blocks, "-1:1:3");
- list.add(blocks, "-2:1:3");
- list.add(blocks, "1:0:-2");
- list.add(blocks, "1:0:-3");
- list.add(blocks, "2:0:-3");
- list.add(blocks, "1:1:-2");
- list.add(blocks, "1:1:-3");
- list.add(blocks, "2:1:-3");
- list.add(blocks, "-1:0:-2");
- list.add(blocks, "-1:0:-3");
- list.add(blocks, "-2:0:-3");
- list.add(blocks, "-1:1:-2");
- list.add(blocks, "-1:1:-3");
- list.add(blocks, "-2:1:-3");
- color_list = list.new(); //Liste der Farben
- list.add(color_list, "blue");
- list.add(color_list, "red");
- list.add(color_list, "yellow");
- list.add(color_list, "green");
- list.add(color_list, "orange");
- list.add(color_list, "purple");
- list.add(color_list, "white");
- list.add(color_list, "black");
- list.add(color_list, "light_gray");
- list.add(color_list, "gray");
- list.add(color_list, "magenta");
- list.add(color_list, "brown");
- list.add(color_list, "lime");
- list.add(color_list, "cyan");
- list.add(color_list, "light_blue");
- list.add(color_list, "pink");
- @wait
- wait();
- if(event == "living_pre_hurt") {
- if(!isPlayer(living_entity)) {
- goto("wait");
- }
- player = living_entity;
- }
- if(player.hasMinigameId(player, script_id)) {
- ignoreGoto(event);
- }
- goto("wait");
- @newblock
- coords = text.split(":", list.getIndex(blocks, math.random(0, list.getSize(blocks) - 1)));
- x = list.getIndex(coords, 0);
- y = list.getIndex(coords, 1);
- z = list.getIndex(coords, 2);
- newblock = loc.mod(previousblock, x, y, z);
- if(block.getType(newblock) != "minecraft:air") {
- goto("newblock");
- }
- if(loc.getCoord(newblock, "y") > 256) {
- goto("newblock");
- }
- block.set(newblock, wool_block);
- sound.spawn(newblock, jump_sound, sound_category_ambient);
- moveloc1 = loc.mod(newblock, 0, 1, 0);
- moveloc2 = loc.mod(newblock, 1, 2, 1);
- event.addMoveData(moveloc1, moveloc2, -1, -1);
- if(fallid != null) {
- event.removeMoveData(fallid);
- }
- fallloc1 = loc.mod(moveloc1, -10, -10, -10);
- fallloc2 = loc.mod(moveloc1, 10, -2, 10);
- fallid = event.addMoveData(fallloc1, fallloc2, -1, -1);
- goto("wait");
- @player_join
- @newgame
- points = 0;
- color_string = list.getIndex(color_list, math.random(0, 15));
- concrete_block = concat("minecraft:", color_string, "_concrete");
- wool_block = concat("minecraft:", color_string, "_wool");
- player_id = player.getId(player);
- last_record = ranking.getPoints(rankingtable, player_id);
- overall_record = ranking.getPointsFromRank(rankingtable, 1, "DESC");
- display.add(player, 0, "§6Jump'n'Run");
- display.add(player, 1, "Your Points: §e", text.number(points));
- display.add(player, 2, "Your Record: §e", text.number(last_record));
- display.add(player, 3, "Server Record: §e", text.number(overall_record));
- player.setGamemode(player, "survival");
- player.setFly(player, false);
- title.clear(player);
- title.setTime(player, 20, 20, 20);
- title.send(player, gamename);
- player.clearInventory(player);
- entity.setHealth(player, 20);
- player.setHunger(player, 20);
- player.setSaturation(player, 5);
- x = math.random(5000, 5100);
- y = math.random(10, 20);
- z = math.random(5000, 5100);
- startblock = loc.new(world.get("games"), x, y, z);
- block.set(startblock, concrete_block);
- entity.teleport(player, loc.mod(startblock, 0.5, 1, 0.5));
- previousblock = startblock;
- goto("newblock");
- @living_pre_hurt
- cancel = true;
- damage_source_type = damage.getType(damage_source);
- if(damage_source_type == "outOfWorld") {
- //sollte der spieler durch das auffangnetz MoveData:fallid durchfallen und im Void landen, wird er zurückgesetzt
- gosub("resetcore");
- goto("newgame");
- }
- goto("wait");
- @block_click
- cancel = true;
- goto("wait");
- @player_move
- if(id == fallid) {
- gosub("resetcore");
- goto("newgame");
- }
- block.set(previousblock, "minecraft:air");
- previousblock = newblock;
- block.set(newblock, concrete_block);
- points++;
- display.add(player, 1, "Deine Punkte: §e", text.number(points));
- player.setHunger(player, 20);
- player.setSaturation(player, 5);
- goto("newblock");
- @resetcore
- block.set(newblock, "minecraft:air");
- block.set(previousblock, "minecraft:air");
- //Statistik
- playedgames = getPlayedGames(rankingtable, player_id) + 1;
- display.reset(player);
- if(last_record < points) {
- record = points;
- diff = points - last_record;
- } else {
- record = last_record;
- }
- if(record > overall_record) {
- overall_record = record;
- }
- minigame.statsHeader(player, gamename, "§e");
- minigame.statsLine(player, "§e", "Points", text.number(points));
- if(diff != null) {
- msg(player, " §e- §rBeat own record by §e", text.number(diff));
- diff = null;
- }
- last_record = record;
- setRanking(rankingtable, player_id, record, playedgames);
- minigame.statsLine(player, "§e", "Your Record", text.number(record));
- minigame.statsLine(player, "§e", "Server Record", text.number(overall_record));
- minigame.addElo(player, points);
- return;
- @player_giveup
- @player_logout
- gosub("resetcore");
- script = script.getFromId(script_id);
- minigame.kickPlayer(script, player);
- minigame.term(script, gamesignloc);
- term();
|