123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- 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();
- }
|