floralisdorf.txt 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. //Todo stages: Spinnweben entfernen,
  2. //Todo Event villager_give nicht mehr existent
  3. //Todo //honey =
  4. //Todo DOUBLE_PLANT
  5. event.load("player_giveup");
  6. games = world.get("games");
  7. allstages = "xy";
  8. villagers = map.new();
  9. map.add(villagers, "Viola", loc.new(gamesworld, 2044, 95, 5987)); //Gärtnerei
  10. map.add(villagers, "Rosenhaupt", loc.new(gamesworld, 2004, 99, 5978)); //Rathaus
  11. map.add(villagers, "Lilifred", loc.new(gamesworld, 2004, 103, 5976)); //Dorfarchiv
  12. map.add(villagers, "Herbert", loc.new(gamesworld, 2022, 95, 5994)); //Herberge
  13. map.add(villagers, "Olivia", loc.new(gamesworld, 2020, 99, 5991)); //Reisender Zimmer 3
  14. map.add(villagers, "Charles", loc.new(gamesworld, 2028, 95, 5969)); //Imkerei
  15. player = script.getLeader();
  16. title.setTime(player, 20, 0, 20);
  17. title.send(player, "§2Questdorf Floralis");
  18. stage = ggv(player, "floralisstage");
  19. display.add(player, 8, "§2Floralis");
  20. display.add(player, 7, concat("Fortschritt: ", stage, "/", allstages));
  21. if(stage == null) {
  22. sgv(player, "floralisstage", 0);
  23. stage = 0;
  24. }
  25. ignoreGoto(concat("stage", stage));
  26. player.speak(player, "§2Floralis", "Quest beendet");
  27. goto("player_giveup");
  28. @stage0
  29. player.speak(player, "§2Floralis", "§rWillkomen in Floralis, ", player_name, "!");
  30. player.speak(player, "§2Floralis", "§rDie Dorfbewohner haben dich bereits sehnsüchtig für das Blumenfest erwartet! Bitte stelle dich ihnen vor.");
  31. event.load("entity_click");
  32. templist = list.new();
  33. list.add(templist, "Viola");
  34. list.add(templist, "Rosenhaupt");
  35. list.add(templist, "Lilifred");
  36. list.add(templist, "Herbert");
  37. list.add(templist, "Charles");
  38. tempstage = 0;
  39. display.add(player, 6, concat("Villager: ", tempstage, "/5"));
  40. @waitstage0
  41. wait();
  42. if(event == "entity_click") {
  43. entity_name = entity.getName(entity);
  44. if(entity_name == "Olivia") {
  45. player.speak(player, "§2Olivia", "Ist es schon morgen? Ist das Blumenfest fertig? Nicht?! Warum weckst du mich dann?!");
  46. goto("waitstage0");
  47. }
  48. if(list.contains(templist, entity_name)) {
  49. if(entity_name == "Viola") {
  50. player.speak(player, "§2Viola", "Für das Fest brauchen wir sicher viele Blumen. Da ich dafür zuständig bin, würde ich dir sehr zu Dank verpflichtet sein, wenn du mir später bei meinen Arbeiten hilfst.");
  51. }
  52. if(entity_name == "Rosenhaupt") {
  53. player.speak(player, "§2Rosenhaupt", "Guten Tag, ", player_name, "! Ich bin der Bürgermeister unseres kleinen Dörfchens und bin sehr erfreut, dich hier bei uns zu sehen. Für das Blumenfest, für dessen Organisation ich zuständig bin, haben wir bisher sehr viele Preise gewonnen.");
  54. player.speak(player, "§2Rosenhaupt", "Für weitere Fragen bezüglich vergangener Feste, kann dir unser Dorfarchivist Lilifred behilflich sein.");
  55. }
  56. if(entity_name == "Lilifred") {
  57. player.speak(player, "§2Lilifred", "Bei mir sind alle Geheimnisse der Stadt gut aufbewahrt. Sofern du bei Arbeiten rund ums Blumenfest Hilfe brauchst, bin ich immer der richtige Ansprechpartner.");
  58. }
  59. if(entity_name == "Herbert") {
  60. player.speak(player, "§2Herbert", "Bei mir kommen die Gäste während des Blumenfestes unter. Im Moment schläft in Zimmer 3 Olivia, also stör sie bitte nicht.");
  61. }
  62. if(entity_name == "Charles") {
  63. player.speak(player, "§2Charles", "Mein Honig ist weit über die Stadtgrenzen von Floralis bekannt. Mein Bienen bringen mir täglich den süßesten Honig.");
  64. }
  65. list.remove(templist, entity_name);
  66. display.add(player, 6, concat("Villager: ", ++tempstage, "/5"));
  67. if(list.getSize(templist) == 0) {
  68. display.remove(player, 6);
  69. event.unload("entity_click");
  70. sgv(player, "floralisstage", ++stage);
  71. display.add(player, 7, concat("Fortschritt: ", stage, "/", allstages));
  72. sgoto(40, "stage1");
  73. }
  74. }
  75. }
  76. goto("waitstage0");
  77. @stage1
  78. player.speak(player, "§2Floralis", "§rDa du nun alle Einwohner kennst, hier deine erste Aufgabe.");
  79. player.speak(player, "§2Viola", "Ich bräuchte zur Dekoration viele unterschiedliche Blumenarten. Bitte gehe zur Blumenwiese, pflücke 9 unterschiedliche Sorten und bring sie mir.");
  80. event.load("block_click");
  81. event.load("villager_give");
  82. tempstage == 0;
  83. display.add(player, 6, concat("Blumen abgegeben: ", tempstage, "/9"));
  84. templist = list.new();
  85. flowers = list.new();
  86. list.add(flowers, "RED_ROSE:0");
  87. list.add(flowers, "RED_ROSE:3");
  88. list.add(flowers, "RED_ROSE:4");
  89. list.add(flowers, "RED_ROSE:5");
  90. list.add(flowers, "RED_ROSE:6");
  91. list.add(flowers, "RED_ROSE:7");
  92. list.add(flowers, "YELLOW_FLOWER:0");
  93. list.add(flowers, "DOUBLE_PLANT:1");
  94. list.add(flowers, "DOUBLE_PLANT:4");
  95. list.add(flowers, "DOUBLE_PLANT:5");
  96. @waitstage1
  97. wait();
  98. if(event == "block_click") {
  99. flower = concat(block_type, ":", block_data);
  100. if(flower == "DOUBLE_PLANT:10") {
  101. flower == concat(block.getType(loc.mod(block_loc, 0, _1, 0)), ":", block.getData(loc.mod(block_loc, 0, _1, 0)));
  102. }
  103. if(list.contains(flowers, flower)) {
  104. if(!list.contains(templist, flower)) {
  105. item.drop(player_loc, read.item(flower));
  106. list.add(templist, flower);
  107. }
  108. }
  109. }
  110. if(event == "villager_give") {
  111. flower = concat(item_type, ":", item_data);
  112. if(list.contains(flowers, flower)) {
  113. list.remove(flowers, flower);
  114. display.add(player, 6, concat("Blumen abgegeben: ", ++tempstage, "/9"));
  115. if(equal(tempstage, 9)) {
  116. player.speak(player, "§2Viola", "Wie nett von dir. Vielen lieben Dank!");
  117. display.remove(player, 6);
  118. event.unload("block_click");
  119. event.unload("villager_give");
  120. sgv(player, "floralisstage", ++stage);
  121. display.add(player, 7, concat("Fortschritt: ", stage, "/", allstages));
  122. sgoto(40, "stage2");
  123. }
  124. }
  125. }
  126. goto("waitstage1");
  127. @stage2
  128. player.speak(player, "§2Viola", "Hier ", player_name, ", nimm diese beiden Karotten und füttere unsere zwei städtischen Schildkröten, die du beim Rinnsal neben der Blumenwiese finden wirst.");
  129. event.load("block_click");
  130. item.drop(entity.getLocation(player), read.item("CARROT_ITEM:0:2"));
  131. turtles = list.new();
  132. list.add(turtles, read.location("games:2020:95:5956"));
  133. list.add(turtles, read.location("games:2027:95:5956"));
  134. tempstage = 0;
  135. display.add(player, 6, concat("Gefüttert: ", tempstage, "/2"));
  136. @waitstage2
  137. wait();
  138. if(equal(event, "block_click")) {
  139. if(list.contains(turtles, block_loc)) {
  140. display.add(player, 6, concat("Gefüttert: ", ++tempstage, "/2"));
  141. list.remove(turtles, block_loc);
  142. player.removeItem(player, read.item("CARROT_ITEM"));
  143. if(equal(tempstage, 2)) {
  144. event.unload("block_click");
  145. display.remove(player, 6);
  146. sgv(player, "floralisstage", ++stage);
  147. display.add(player, 7, concat("Fortschritt: ", stage, "/", allstages));
  148. sgoto(40, "stage3");
  149. }
  150. }
  151. }
  152. goto("waitstage2");
  153. @stage3
  154. player.speak(player, "§2Charles", "Die Bienenkönigin hat mir gemeldet, dass ihre Bienenstöcke voll mit Honig und bereit zur Ernte sind. Hohl dir den Honig.");
  155. event.load("block_click");
  156. event.load("entity_click");
  157. event.load("villager_give");
  158. tempstage == 0;
  159. tempstage2 == 0;
  160. tempstage3 == 0;
  161. tempstatus == 0;
  162. //honey = read.item("{id:’minecraft:skull’,Count:1b,tag:{SkullOwner:{Id:’f5b8c410_134c_41f8_9fb8_65330e62ed7b’,Properties:{textures:[0:{Value:’eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTZkY2M4ZjM3YWM5OWQ5NTFlY2JjNWRmNWU4NTgyMTMzZjVmMjMwN2U3NjlhZjZiNmNmZmY0MjgyMTgwNjcifX19’}]}}},Damage:3s}");
  163. honey = read.item("minecraft:grass");
  164. templist = list.new(); //Honigstöcke
  165. list.add(templist, read.location("games:2034:96:5973"));
  166. list.add(templist, read.location("games:2036:96:5975"));
  167. list.add(templist, read.location("games:2036:96:5961"));
  168. list.add(templist, read.location("games:2038:96:5964"));
  169. templist2 = list.new(); //Honigpötte
  170. list.add(templist2, read.location("games:2035:99:5965"));
  171. list.add(templist2, read.location("games:2035:98:5967"));
  172. list.add(templist2, read.location("games:2036:97:5966"));
  173. display.add(player, 6, concat("Honig geerntet: ", tempstage, "/4"));
  174. @waitstage3
  175. wait();
  176. if(event == "block_click")) {
  177. if(list.contains(templist, block_loc)) {
  178. head = entity.getEquip(player, "head");
  179. chest = entity.getEquip(player, "chest");
  180. legs = entity.getEquip(player, "legs");
  181. feet = entity.getEquip(player, "feet");
  182. if(!(head == null || chest == null || legs == null || feet == null)) {
  183. if(item.getType(head) == "minecraft:leather_helmet")) {
  184. if(item.getType(chest) == "minecraft:leather_chestplate")) {
  185. if(item.getType(legs) == "minecraft:leather_leggings")) {
  186. if(item.getType(feet) == "minecraft:leather_boots")) {
  187. if(tempstatus == 2) {
  188. list.remove(templist, block_loc);
  189. item.drop(player_loc, honey);
  190. display.add(player, 6, concat("Honig abgegeben: ", tempstage3, "/4"));
  191. if(++tempstage == 4) {
  192. tempstatus++;
  193. }
  194. goto("waitstage3");
  195. }
  196. }
  197. }
  198. }
  199. }
  200. }
  201. msg(player, "§7*Du wurdest von einer Biene gestochen*");
  202. if(entity.getHealth(player) > 1) {
  203. entity.damage(player, 1);
  204. }
  205. goto("waitstage3");
  206. }
  207. if(tempstatus == 1 || list.contains(templist2, block_loc)) {
  208. list.remove(templist2, block_loc);
  209. item.drop(player_loc, honey);
  210. display.add(player, 6, concat("Honigpötte gesammelt: ", ++tempstage2, "/3"));
  211. if(list.getSize(templist2) == 0) {
  212. display.add(player, 6, concat("Honig abgegeben: ", tempstage3, "/4"));
  213. }
  214. }
  215. goto("waitstage3");
  216. }
  217. if(event == "entity_click" && tempstatus == 0) {
  218. entity_name = entity.getName(entity);
  219. if(entity_name == "Charles") {
  220. player.speak(player, "§2Charles", "Meine Bienen stechen gerne. Vielleicht kann dir ein alteingesessener Dorfbewohner helfen.");
  221. }
  222. if(entity_name == "Lilifred") {
  223. tempstatus++;
  224. player.speak(player, "§2Lilifred", "Du brauchst also meine Hilfe? Gerne, aber dafür möchte ich etwas Honig haben.");
  225. player.speak(player, "§2Lilifred", "Ich weiß, dass Charles etwas chaotisch ist und alles überall herumstehen lässt. Bring mir alle Honigpötte, die du findest.");
  226. display.add(player, 6, concat("Honigpötte gesammelt: ", tempstage2, "/3"));
  227. }
  228. goto("waitstage3");
  229. }
  230. if(event == "villager_give") {
  231. if(item_type == item.getType(honey)) {
  232. if(tempstatus == 1) {
  233. tempstage2 = tempstage2 + item_amount;
  234. if(tempstage2 >= 3) {
  235. player.speak(player, "§2Lilifred", "Vielen Dank! Hier hast du Rüstung, die sollte dir gegen lästige Bienen helfen.");
  236. item.drop(player_loc, read.item("minecraft:leather_helmet"));
  237. item.drop(player_loc, read.item("minecraft:leather_chestplate"));
  238. item.drop(player_loc, read.item("minecraft:leather_leggings"));
  239. item.drop(player_loc, read.item("minecraft:leather_boots"));
  240. tempstatus++;
  241. }
  242. goto("waitstage3");
  243. }
  244. if(tempstatus == 3) {
  245. tempstage3 = tempstage3 + item_amount;
  246. display.add(player, 6, concat("Honig abgegeben: ", tempstage3, "/4"));
  247. if(tempstage3 >= 4) {
  248. event.unload("block_click");
  249. event.unload("entity_click");
  250. event.unload("villager_give");
  251. display.remove(player, 6);
  252. sgv(player, "floralisstage", ++stage);
  253. display.add(player, 7, concat("Fortschritt: ", stage, "/", allstages));
  254. sgoto(40, "stage4");
  255. }
  256. }
  257. } else {
  258. item.drop(player_loc, item);
  259. }
  260. }
  261. goto("waitstage3");
  262. @stage4
  263. @player_giveup
  264. display.remove(player, 6);
  265. display.remove(player, 7);
  266. display.remove(player, 8);
  267. term();