4d_j_r_core_backup.txt 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. sign.started(gamesignloc);
  2. event.load("function_key");
  3. event.load("living_pre_hurt");
  4. event.load("player_move");
  5. event.load("player_logout");
  6. event.load("player_giveup");
  7. event.load("player_join");
  8. event.load("block_break");
  9. gamename = "§a4D-Jump'n'Run";
  10. maxplayers = 1;
  11. x1 = loc.getX(Edge_1);
  12. x2 = loc.getX(Edge_2);
  13. x3 = loc.getX(Edge_3);
  14. y1 = loc.getY(Edge_1);
  15. y2 = loc.getY(Edge_2);
  16. y3 = loc.getY(Edge_3);
  17. z1 = loc.getZ(Edge_1);
  18. z2 = loc.getZ(Edge_2);
  19. z3 = loc.getZ(Edge_3);
  20. Layer = array.new(Layer_amount, 2);
  21. event.addMoveData(loc1, loc2, -1, -1);
  22. current_layer = 0;
  23. @wait
  24. wait();
  25. if(event == "living_pre_hurt") {
  26. if(!isPlayer(living_entity)) {
  27. goto("wait");
  28. }
  29. player = living_entity;
  30. }
  31. if(!player.hasMinigameId(player, script_id)) {
  32. goto("wait");
  33. }
  34. if(event == "player_join"){
  35. entity.teleport(player, Start_Pos);
  36. player.clearInventory(player);
  37. stacks.set(player, 7, "km:arrow_left");
  38. stacks.set(player, 8, "km:arrow_right");
  39. stacks.setActive(player, true);
  40. for(layer_var = 0; layer_var < Layer_amount; layer_var++){
  41. temp_list = list.new();
  42. x_d = layer_var * Layer_difference_X;
  43. y_d = layer_var * Layer_difference_Y;
  44. z_d = layer_var * Layer_difference_Z;
  45. for(x = x1 - x_d; x <= x2 - x_d; x++){
  46. for(y = y1 - y_d; y <= y2 - y_d; y++){
  47. for(z = z1 - z_d; z <= z2 - z_d; z++){
  48. temp_loc = loc.new(games, x, y, z);
  49. if(!block.isAir(temp_loc)){
  50. temp_loc2 = loc.new(games, x3+x-x1+x_d, y3+y-y1+y_d, z3+z-z1+z_d);
  51. list.add(temp_list, temp_loc2);
  52. }
  53. }
  54. }
  55. }
  56. Layer[layer_var, 0] = temp_list;
  57. Layer[layer_var, 1] = block_type_array[layer_var];
  58. }
  59. goto("wait");
  60. }
  61. if(event == "block_break"){
  62. cancel = true;
  63. goto("wait");
  64. }
  65. if(event == "living_pre_hurt") {
  66. cancel = true;
  67. goto("wait");
  68. }
  69. if(event == "function_key"){
  70. if(key == 8){
  71. goto("remove_layer");
  72. }
  73. if(key == 9){
  74. goto("add_layer");
  75. }
  76. goto("wait");
  77. }
  78. if(event == "player_move"){
  79. //if(current_layer == finish_layer){
  80. game_stop("You did it!");
  81. //}
  82. goto("wait");
  83. }
  84. if(event == "player_logout"){
  85. game_stop(null);
  86. }
  87. if(event == "player_giveup"){
  88. game_stop("You left :(");
  89. }
  90. goto("wait");
  91. @remove_layer
  92. //remove_blocks(current_layer);
  93. if(current_layer <= 0 || current_layer > Layer_amount - 1){
  94. if(current_layer == 0){
  95. remove_blocks(current_layer);
  96. }
  97. current_layer--;// = Layer_amount - 1;
  98. }else{
  99. remove_blocks(current_layer);
  100. current_layer--;
  101. place_blocks(current_layer);
  102. }
  103. //place_blocks(current_layer);
  104. goto("wait");
  105. @add_layer
  106. //remove_blocks(current_layer);
  107. if(current_layer >= Layer_amount - 1 || current_layer < 0){
  108. if(current_layer == Layer_amount - 1){
  109. remove_blocks(current_layer);
  110. }
  111. current_layer++;// = 0;
  112. }else{
  113. remove_blocks(current_layer);
  114. current_layer++;
  115. place_blocks(current_layer);
  116. }
  117. //place_blocks(current_layer);
  118. goto("wait");
  119. function remove_blocks(current_layer){
  120. temp_list = $Layer[current_layer, 0];
  121. for(a = 0; a < list.getSize(temp_list); a++){
  122. block.set(list.getIndex(temp_list, a), "minecraft:air");
  123. }
  124. }
  125. function place_blocks(current_layer){
  126. temp_list = $Layer[current_layer, 0];
  127. for(a = 0; a < list.getSize(temp_list); a++){
  128. block.set(list.getIndex(temp_list, a), $Layer[current_layer, 1]);
  129. }
  130. }
  131. function game_stop(message){
  132. remove_blocks($current_layer);
  133. place_blocks(0);
  134. if(message != null){
  135. msg.prefix($player, $gamename, message);
  136. }
  137. script = script.getFromId($script_id);
  138. minigame.kickPlayer(script, $player);
  139. minigame.term(script, $gamesignloc);
  140. term();
  141. }