sign.started(gamesignloc); event.load("function_key"); event.load("living_pre_hurt"); event.load("player_move"); event.load("player_logout"); event.load("player_giveup"); event.load("player_join"); event.load("block_break"); gamename = "§a4D-Jump'n'Run"; maxplayers = 1; x1 = loc.getX(Edge_1); x2 = loc.getX(Edge_2); x3 = loc.getX(Edge_3); y1 = loc.getY(Edge_1); y2 = loc.getY(Edge_2); y3 = loc.getY(Edge_3); z1 = loc.getZ(Edge_1); z2 = loc.getZ(Edge_2); z3 = loc.getZ(Edge_3); Layer = array.new(Layer_amount, 2); event.addMoveData(loc1, loc2, -1, -1); current_layer = 0; @wait wait(); if(event == "living_pre_hurt") { if(!isPlayer(living_entity)) { goto("wait"); } player = living_entity; } if(!player.hasMinigameId(player, script_id)) { goto("wait"); } if(event == "player_join"){ entity.teleport(player, Start_Pos); player.clearInventory(player); stacks.set(player, 7, "km:arrow_left"); stacks.set(player, 8, "km:arrow_right"); stacks.setActive(player, true); for(layer_var = 0; layer_var < Layer_amount; layer_var++){ temp_list = list.new(); x_d = layer_var * Layer_difference_X; y_d = layer_var * Layer_difference_Y; z_d = layer_var * Layer_difference_Z; for(x = x1 - x_d; x <= x2 - x_d; x++){ for(y = y1 - y_d; y <= y2 - y_d; y++){ for(z = z1 - z_d; z <= z2 - z_d; z++){ temp_loc = loc.new(games, x, y, z); if(!block.isAir(temp_loc)){ temp_loc2 = loc.new(games, x3+x-x1+x_d, y3+y-y1+y_d, z3+z-z1+z_d); list.add(temp_list, temp_loc2); } } } } Layer[layer_var, 0] = temp_list; Layer[layer_var, 1] = block_type_array[layer_var]; } goto("wait"); } if(event == "block_break"){ cancel = true; goto("wait"); } if(event == "living_pre_hurt") { cancel = true; goto("wait"); } if(event == "function_key"){ if(key == 8){ goto("remove_layer"); } if(key == 9){ goto("add_layer"); } goto("wait"); } if(event == "player_move"){ //if(current_layer == finish_layer){ game_stop("You did it!"); //} goto("wait"); } if(event == "player_logout"){ game_stop(null); } if(event == "player_giveup"){ game_stop("You left :("); } goto("wait"); @remove_layer //remove_blocks(current_layer); if(current_layer <= 0 || current_layer > Layer_amount - 1){ if(current_layer == 0){ remove_blocks(current_layer); } current_layer--;// = Layer_amount - 1; }else{ remove_blocks(current_layer); current_layer--; place_blocks(current_layer); } //place_blocks(current_layer); goto("wait"); @add_layer //remove_blocks(current_layer); if(current_layer >= Layer_amount - 1 || current_layer < 0){ if(current_layer == Layer_amount - 1){ remove_blocks(current_layer); } current_layer++;// = 0; }else{ remove_blocks(current_layer); current_layer++; place_blocks(current_layer); } //place_blocks(current_layer); goto("wait"); function remove_blocks(current_layer){ temp_list = $Layer[current_layer, 0]; for(a = 0; a < list.getSize(temp_list); a++){ block.set(list.getIndex(temp_list, a), "minecraft:air"); } } function place_blocks(current_layer){ temp_list = $Layer[current_layer, 0]; for(a = 0; a < list.getSize(temp_list); a++){ block.set(list.getIndex(temp_list, a), $Layer[current_layer, 1]); } } function game_stop(message){ remove_blocks($current_layer); place_blocks(0); if(message != null){ msg.prefix($player, $gamename, message); } script = script.getFromId($script_id); minigame.kickPlayer(script, $player); minigame.term(script, $gamesignloc); term(); }