first_date.txt 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. event.load("quest_start");
  2. event.load("quest_term");
  3. event.load("entity_click");
  4. event.load("block_break");
  5. event.load("block_click");
  6. event.load("custom_command");
  7. stage = 0;
  8. all_stages = 2;
  9. quest_name = "First Date";
  10. tulips = 0;
  11. tulips_needed = 3;
  12. pink_tulip_mat = material.get("pink_tulip");
  13. writable_book_mat = material.get("writable_book");
  14. written_book_mat = material.get("written_book");
  15. book_chest_block = block.get(loc.new(world.getOverworld(), 128, 72, -32));
  16. wusi_p = read.player("kajetanjohannes");
  17. @wait
  18. wait();
  19. if(event == "block_break" && player == wusi_p) {
  20. msg(player, text.new("Quest: block_break"));
  21. }
  22. if(event == "custom_command") {
  23. if(!isPlayer(sender)) {
  24. goto("wait");
  25. }
  26. player = sender;
  27. }
  28. if(!player.isQuester(player, script)) {
  29. goto("wait");
  30. }
  31. if(event == "quest_term") {
  32. //Hier Code einfügen...
  33. if(stage == 1) {
  34. rest_item = player.removeItemNbt(player, item.new(writable_book_mat));
  35. rest_amount = item.getAmount(rest_item);
  36. if(rest_amount != 0) {
  37. player.removeItemNbt(player, item.new(written_book_mat));
  38. }
  39. }
  40. wait(); //Script wird von außen terminiert
  41. }
  42. if(event == "quest_start") {
  43. quest.display(player, quest_name, stage, all_stages);
  44. msg.prefix(player, "§dFarmer", "Hi you! I have a meeting with Anna tonight and I'm super nervous...");
  45. scheduler.msgPrefix(30, player, "§dFarmer", "Uh, you look like you have experience or something, what should I take as a gift?");
  46. scheduler.msg(60, player, text.new("§dAnswer options:"));
  47. scheduler.msg(60, player, string.getClickText("[§dA§r] §eFlowers are never wrong.", "/questanswer A"));
  48. scheduler.msg(60, player, string.getClickText("[§dB§r] §eA few kind words are enough.", "/questanswer B"));
  49. goto("wait");
  50. }
  51. label = string.concat("stage", string.number(stage));
  52. goto(label);
  53. @stage0
  54. if(event == "custom_command" && command == "questanswer") {
  55. option = list.getIndex(args, 0);
  56. if(option == "A") {
  57. stage.increase(player);
  58. msg.prefix(player, "§dFarmer", "That's a great idea! I'm going to get dressed up!");
  59. scheduler.msgPrefix(30, player, "§dFarmer", "In the meantime, why don't you get me three pink tulips from the tree at the spawn?");
  60. goto("wait");
  61. }
  62. if(option == "B") {
  63. stage.increase(player);
  64. msg.prefix(player, "§dFarmer", "That's right! I think a poem would be a fitting gift for her.");
  65. scheduler.msgPrefix(30, player, "§dFarmer", "Unfortunately, I'm not that creative, so please take over.");
  66. scheduler.msgPrefix(60, player, "§dFarmer", "Write me a poem and sign the book then.");
  67. player.giveSingleItem(player, item.create("writable_book", 1, "§fFor Anna", null));
  68. }
  69. }
  70. goto("wait");
  71. @stage1
  72. if(option == "A") {
  73. if(event == "block_click") {
  74. if(block == null) {
  75. goto("wait");
  76. }
  77. block_type = block.getType(block);
  78. if(block_type == pink_tulip_mat) {
  79. cancel = false;
  80. }
  81. goto("wait");
  82. }
  83. if(event == "block_break") {
  84. block_type = block.getType(block);
  85. if(block_type == pink_tulip_mat) {
  86. cancel = false;
  87. scheduler.setBlockMaterial(5, block, pink_tulip_mat, false);
  88. tulips++;
  89. if(tulips == 3) {
  90. msg.prefix(player, "§dFarmer", "Perfect! Now come back to me and give me the flowers.");
  91. stage.increase(player);
  92. }
  93. }
  94. }
  95. goto("wait");
  96. }
  97. if(event == "entity_click" && slot.isHand(hand) && entity.isHuman(entity)) {
  98. entity_name = human.getName(entity);
  99. if(entity_name == "Farmer") {
  100. item = living.getHand(player);
  101. item_type = item.getType(item);
  102. if(item_type == writable_book_mat) {
  103. cancel = true;
  104. msg.prefix(player, "§dFarmer", "Please sign the book for me!");
  105. goto("wait");
  106. }
  107. if(item_type == written_book_mat) {
  108. cancel = true;
  109. item_name = string.text(item.getName(item));
  110. if(item_name != null && item_name == "§fFor Anna") {
  111. inv.addItem(block.getInventory(book_chest_block), item);
  112. living.setHand(player, item.getAir());
  113. msg.prefix(player, "§dFarmer", "Thank you!");
  114. msg(player, text.new("§dQuest finished. Reward: 2 snuvis!"));
  115. money.addBoost(player, 2);
  116. quest.finish(script, player);
  117. }
  118. }
  119. }
  120. }
  121. goto("wait");
  122. @stage2
  123. if(event == "entity_click" && slot.isHand(hand) && entity.isHuman(entity)) {
  124. entity_name = human.getName(entity);
  125. if(entity_name == "Farmer") {
  126. rest_amount = human.giveItem(entity_name, player, pink_tulip_mat, tulips_needed);
  127. if(rest_amount == 0) {
  128. msg.prefix(player, "§dFarmer", "Thank you!");
  129. msg(player, text.new("§dQuest finished. Reward: 2 snuvis!"));
  130. money.addBoost(player, 2);
  131. quest.finish(script, player);
  132. } else {
  133. tulips_needed = rest_amount;
  134. }
  135. }
  136. }
  137. goto("wait");