bmq.txt 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. //Bored Mathematicians Quests
  2. event.load("entity_click");
  3. event.load("snuvi_click");
  4. event.load("player_move");
  5. Overworld = world.get("world");
  6. Jan_inv = inv.new("222222222", text.new("Quests: Jan"));
  7. quest_book = item.create("ENCHANTED_BOOK", 1, "§fBored Mathematician...", "§f...with some hyperbolic fun.");
  8. inv.setItem(Jan_inv, 0, quest_book);
  9. quest_book2 = item.create("ENCHANTED_BOOK", 1, "§fBored Mathematician...", "§f...with some hypobolic fun.");
  10. inv.setItem(Jan_inv, 1, quest_book2);
  11. quest_book3 = item.create("ENCHANTED_BOOK", 1, "§fBored Mathematician...", "§f...with a different kind of afk loop.");
  12. inv.setItem(Jan_inv, 2, quest_book3);
  13. red = event.addMoveData(loc.new(Overworld, 220.5,53,-57), loc.new(Overworld, 222.8,55,-58), 5, -1);
  14. orange = event.addMoveData(loc.new(Overworld, 223,50,-58), loc.new(Overworld, 222,52,-59.5), 5, -1);
  15. blue = event.addMoveData(loc.new(Overworld, 226,50,-55), loc.new(Overworld, 228,52,-56), 5, -1);
  16. green = event.addMoveData(loc.new(Overworld, 220.5,53,-55), loc.new(Overworld, 222.5,55,-56), 5, -1);
  17. end = event.addMoveData(loc.new(Overworld, 226,53,-55), loc.new(Overworld, 228,55,-56), 5, -1);
  18. end2 = event.addMoveData(loc.new(Overworld, 217.5,46,-63), loc.new(Overworld, 216,48,-64), 5, -1);
  19. //224.5, -56.5 mid coords
  20. red2_1 = event.addMoveData(loc.new(Overworld, 220.5,41,-63), loc.new(Overworld, 218,43,-65), 5, -1);
  21. blue2_1 = event.addMoveData(loc.new(Overworld, 222.5,46,-62), loc.new(Overworld, 224,47,-65), 5, -1);
  22. yellow2_1 = event.addMoveData(loc.new(Overworld, 220,46,-61), loc.new(Overworld, 218,47,-59), 5, -1);
  23. red2_2 = event.addMoveData(loc.new(Overworld, 222.5,36,-62), loc.new(Overworld, 224,38,-64), 5, -1);
  24. blue2_2 = event.addMoveData(loc.new(Overworld, 222.5,41,-61), loc.new(Overworld, 224,43,-59), 5, -1);
  25. yellow2_2 = event.addMoveData(loc.new(Overworld, 222.5,36,-61), loc.new(Overworld, 218,38,-59), 5, -1);
  26. loop = event.addMoveData(loc.new(Overworld, 230,25,-69), loc.new(Overworld, 233,27,-72), 5, -1);
  27. Hyperbolic_start = loc.new(Overworld, 227, 53, -57.5);
  28. Hypobolic_start = loc.new(Overworld, 219.5, 46, -63.5);
  29. Loop_start = loc.new(Overworld, 231.5, 38.5, -70.5);
  30. player_back_pos = map.new();
  31. //----------------------------------------------------
  32. @wait
  33. wait();
  34. if(event == "entity_click"){
  35. if(entity.getType(entity) != "human") {
  36. goto("wait");
  37. }
  38. human_name = human.getName(entity);
  39. if(human_name == "§9Jan") {
  40. if(player.isSneaking(player)){
  41. inv.open(Jan_inv, player);
  42. goto("wait");
  43. }
  44. }
  45. goto("wait");
  46. }
  47. if(event == "snuvi_click"){
  48. if(click != "LEFT" && click != "RIGHT"){
  49. goto("wait");
  50. }
  51. item = inv.getItem(inv, inv_slot);
  52. item.removeFlag(item, "HIDE_DESTROYS");
  53. title_string = string.text(inv_title);
  54. if(title_string == "Quests: Jan") {
  55. map.add(player_back_pos, player.getuuid(player), entity.getLocation(player));
  56. if(inv_slot == 0){
  57. entity.teleport(player, Hyperbolic_start);
  58. msg(player, text.new("[§9SirTerence7§f] it's called a Hyperbolic plane."));
  59. }
  60. elseif(inv_slot == 1){
  61. entity.teleport(player, Hypobolic_start);
  62. msg(player, text.new("[§9SirTerence7§f] it's called spherical-geometry"));
  63. msg(player, text.new("[§9SirTerence7§f] though I prefer calling it a Hypobolic plane."));
  64. }
  65. elseif(inv_slot == 2){
  66. entity.teleport(player, Loop_start);
  67. msg(player, text.new("[§9SirTerence7§f] falling endlessly into the abyss..."));
  68. value = 0;
  69. }
  70. }
  71. goto("wait");
  72. }
  73. if(event == "player_move"){
  74. player_loc = entity.getLocation(player);
  75. if(id == red){
  76. entity.teleport(player, loc.mod(player_loc, 0, -3, 0));
  77. }
  78. elseif(id == orange){
  79. entity.teleport(player, loc.mod(player_loc, 0, 3, 0));
  80. }
  81. elseif(id == blue){
  82. relative_X = loc.getX(player_loc) - 224.5;
  83. relative_Z = loc.getZ(player_loc) + 56.5;
  84. yaw = loc.getYaw(player_loc);
  85. yaw -= 90;
  86. if(yaw <= 180){
  87. yaw += 180;
  88. }
  89. loc.setYaw(player_loc, yaw);
  90. entity.teleport(player, loc.new(Overworld, 224.5-relative_Z, loc.getY(player_loc)+3, -56.5+relative_X, yaw, loc.getPitch(player_loc)));
  91. }
  92. elseif(id == green){
  93. relative_X = loc.getX(player_loc) - 224.5;
  94. relative_Z = loc.getZ(player_loc) + 56.5;
  95. yaw = loc.getYaw(player_loc);
  96. yaw -= 90;
  97. if(yaw <= 180){
  98. yaw += 360;
  99. }
  100. loc.setYaw(player_loc, yaw);
  101. entity.teleport(player, loc.new(Overworld, 224.5+relative_Z, loc.getY(player_loc)-3, -56.5-relative_X, yaw, loc.getPitch(player_loc)));
  102. }
  103. elseif(id == end || id == end2){
  104. uuid = player.getuuid(player);
  105. if(map.contains(player_back_pos, uuid)){
  106. entity.teleport(player, map.remove(player_back_pos, uuid));
  107. msg(player, text.new("[§9SirTerence7§f] welcome back"));
  108. }
  109. }
  110. elseif(id == yellow2_1){
  111. entity.teleport(player, loc.mod(player_loc, 0, -5, 0));
  112. }
  113. elseif(id == red2_1){
  114. entity.teleport(player, loc.mod(player_loc, 0, 5, 0));
  115. }
  116. elseif(id == blue2_2){
  117. entity.teleport(player, loc.mod(player_loc, 0, -5, 0));
  118. }
  119. elseif(id == yellow2_2){
  120. entity.teleport(player, loc.mod(player_loc, 0, 5, 0));
  121. }
  122. elseif(id == blue2_1){
  123. relative_X = loc.getX(player_loc) - 221.5;
  124. relative_Z = loc.getZ(player_loc) + 61.5;
  125. yaw = loc.getYaw(player_loc);
  126. yaw -= 90;
  127. if(yaw <= 180){
  128. yaw += 180;
  129. }
  130. loc.setYaw(player_loc, yaw);
  131. entity.teleport(player, loc.new(Overworld, 221.5-relative_Z, loc.getY(player_loc)-10, -61.5+relative_X, yaw, loc.getPitch(player_loc)));
  132. }
  133. elseif(id == red2_2){
  134. relative_X = loc.getX(player_loc) - 221.5;
  135. relative_Z = loc.getZ(player_loc) + 61.5;
  136. yaw = loc.getYaw(player_loc);
  137. yaw -= 90;
  138. if(yaw <= 180){
  139. yaw += 360;
  140. }
  141. loc.setYaw(player_loc, yaw);
  142. entity.teleport(player, loc.new(Overworld, 221.5+relative_Z, loc.getY(player_loc)+10, -61.5-relative_X, yaw, loc.getPitch(player_loc)));
  143. }
  144. elseif(id == loop){
  145. if(value == null){
  146. goto("wait");
  147. }
  148. if(value++ > 50){
  149. uuid = player.getuuid(player);
  150. if(map.contains(player_back_pos, uuid)){
  151. entity.setMotion(player, 0, 0, 0);
  152. back_loc = map.remove(player_back_pos, uuid);
  153. loc.setY(back_loc, loc.getY(back_loc)-0.25);
  154. entity.teleport(player, back_loc);
  155. entity.setMotion(player, 0, 0.5, 0);
  156. msg(player, text.new("[§9SirTerence7§f] welcome back"));
  157. }
  158. }
  159. else{
  160. motion_array = entity.getMotion(player);
  161. loc.setY(player_loc, 38.5);
  162. entity.teleport(player, player_loc);
  163. entity.setMotion(player, motion_array[0], -math.abs(motion_array[1])-3*value/20, motion_array[2]);
  164. }
  165. }
  166. goto("wait");
  167. }
  168. goto("wait");
  169. //----------------------------------------------------
  170. function item.create(material, amount, name, lore){
  171. itemstack = item.new(material.get(material), amount);
  172. if(name != null){
  173. item.setName(itemstack, text.new(name));
  174. }
  175. if(lore != null){
  176. if(string.class(lore) == "String"){
  177. lore_list = list.new();
  178. list.add(lore_list, text.new(lore));
  179. item.setLore(itemstack, lore_list);
  180. }else{
  181. item.setLore(itemstack, lore);
  182. }
  183. }
  184. return(itemstack);
  185. }