//Todo stages: Spinnweben entfernen, //Todo Event villager_give nicht mehr existent //Todo //honey = //Todo DOUBLE_PLANT event.load("player_giveup"); games = world.get("games"); allstages = "xy"; villagers = map.new(); map.add(villagers, "Viola", loc.new(gamesworld, 2044, 95, 5987)); //Gärtnerei map.add(villagers, "Rosenhaupt", loc.new(gamesworld, 2004, 99, 5978)); //Rathaus map.add(villagers, "Lilifred", loc.new(gamesworld, 2004, 103, 5976)); //Dorfarchiv map.add(villagers, "Herbert", loc.new(gamesworld, 2022, 95, 5994)); //Herberge map.add(villagers, "Olivia", loc.new(gamesworld, 2020, 99, 5991)); //Reisender Zimmer 3 map.add(villagers, "Charles", loc.new(gamesworld, 2028, 95, 5969)); //Imkerei player = script.getLeader(); title.setTime(player, 20, 0, 20); title.send(player, "§2Questdorf Floralis"); stage = ggv(player, "floralisstage"); display.add(player, 8, "§2Floralis"); display.add(player, 7, concat("Fortschritt: ", stage, "/", allstages)); if(stage == null) { sgv(player, "floralisstage", 0); stage = 0; } ignoreGoto(concat("stage", stage)); player.speak(player, "§2Floralis", "Quest beendet"); goto("player_giveup"); @stage0 player.speak(player, "§2Floralis", "§rWillkomen in Floralis, ", player_name, "!"); player.speak(player, "§2Floralis", "§rDie Dorfbewohner haben dich bereits sehnsüchtig für das Blumenfest erwartet! Bitte stelle dich ihnen vor."); event.load("entity_click"); templist = list.new(); list.add(templist, "Viola"); list.add(templist, "Rosenhaupt"); list.add(templist, "Lilifred"); list.add(templist, "Herbert"); list.add(templist, "Charles"); tempstage = 0; display.add(player, 6, concat("Villager: ", tempstage, "/5")); @waitstage0 wait(); if(event == "entity_click") { entity_name = entity.getName(entity); if(entity_name == "Olivia") { player.speak(player, "§2Olivia", "Ist es schon morgen? Ist das Blumenfest fertig? Nicht?! Warum weckst du mich dann?!"); goto("waitstage0"); } if(list.contains(templist, entity_name)) { if(entity_name == "Viola") { 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."); } if(entity_name == "Rosenhaupt") { 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."); player.speak(player, "§2Rosenhaupt", "Für weitere Fragen bezüglich vergangener Feste, kann dir unser Dorfarchivist Lilifred behilflich sein."); } if(entity_name == "Lilifred") { 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."); } if(entity_name == "Herbert") { 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."); } if(entity_name == "Charles") { player.speak(player, "§2Charles", "Mein Honig ist weit über die Stadtgrenzen von Floralis bekannt. Mein Bienen bringen mir täglich den süßesten Honig."); } list.remove(templist, entity_name); display.add(player, 6, concat("Villager: ", ++tempstage, "/5")); if(list.getSize(templist) == 0) { display.remove(player, 6); event.unload("entity_click"); sgv(player, "floralisstage", ++stage); display.add(player, 7, concat("Fortschritt: ", stage, "/", allstages)); sgoto(40, "stage1"); } } } goto("waitstage0"); @stage1 player.speak(player, "§2Floralis", "§rDa du nun alle Einwohner kennst, hier deine erste Aufgabe."); 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."); event.load("block_click"); event.load("villager_give"); tempstage == 0; display.add(player, 6, concat("Blumen abgegeben: ", tempstage, "/9")); templist = list.new(); flowers = list.new(); list.add(flowers, "RED_ROSE:0"); list.add(flowers, "RED_ROSE:3"); list.add(flowers, "RED_ROSE:4"); list.add(flowers, "RED_ROSE:5"); list.add(flowers, "RED_ROSE:6"); list.add(flowers, "RED_ROSE:7"); list.add(flowers, "YELLOW_FLOWER:0"); list.add(flowers, "DOUBLE_PLANT:1"); list.add(flowers, "DOUBLE_PLANT:4"); list.add(flowers, "DOUBLE_PLANT:5"); @waitstage1 wait(); if(event == "block_click") { flower = concat(block_type, ":", block_data); if(flower == "DOUBLE_PLANT:10") { flower == concat(block.getType(loc.mod(block_loc, 0, _1, 0)), ":", block.getData(loc.mod(block_loc, 0, _1, 0))); } if(list.contains(flowers, flower)) { if(!list.contains(templist, flower)) { item.drop(player_loc, read.item(flower)); list.add(templist, flower); } } } if(event == "villager_give") { flower = concat(item_type, ":", item_data); if(list.contains(flowers, flower)) { list.remove(flowers, flower); display.add(player, 6, concat("Blumen abgegeben: ", ++tempstage, "/9")); if(equal(tempstage, 9)) { player.speak(player, "§2Viola", "Wie nett von dir. Vielen lieben Dank!"); display.remove(player, 6); event.unload("block_click"); event.unload("villager_give"); sgv(player, "floralisstage", ++stage); display.add(player, 7, concat("Fortschritt: ", stage, "/", allstages)); sgoto(40, "stage2"); } } } goto("waitstage1"); @stage2 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."); event.load("block_click"); item.drop(entity.getLocation(player), read.item("CARROT_ITEM:0:2")); turtles = list.new(); list.add(turtles, read.location("games:2020:95:5956")); list.add(turtles, read.location("games:2027:95:5956")); tempstage = 0; display.add(player, 6, concat("Gefüttert: ", tempstage, "/2")); @waitstage2 wait(); if(equal(event, "block_click")) { if(list.contains(turtles, block_loc)) { display.add(player, 6, concat("Gefüttert: ", ++tempstage, "/2")); list.remove(turtles, block_loc); player.removeItem(player, read.item("CARROT_ITEM")); if(equal(tempstage, 2)) { event.unload("block_click"); display.remove(player, 6); sgv(player, "floralisstage", ++stage); display.add(player, 7, concat("Fortschritt: ", stage, "/", allstages)); sgoto(40, "stage3"); } } } goto("waitstage2"); @stage3 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."); event.load("block_click"); event.load("entity_click"); event.load("villager_give"); tempstage == 0; tempstage2 == 0; tempstage3 == 0; tempstatus == 0; //honey = read.item("{id:’minecraft:skull’,Count:1b,tag:{SkullOwner:{Id:’f5b8c410_134c_41f8_9fb8_65330e62ed7b’,Properties:{textures:[0:{Value:’eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTZkY2M4ZjM3YWM5OWQ5NTFlY2JjNWRmNWU4NTgyMTMzZjVmMjMwN2U3NjlhZjZiNmNmZmY0MjgyMTgwNjcifX19’}]}}},Damage:3s}"); honey = read.item("minecraft:grass"); templist = list.new(); //Honigstöcke list.add(templist, read.location("games:2034:96:5973")); list.add(templist, read.location("games:2036:96:5975")); list.add(templist, read.location("games:2036:96:5961")); list.add(templist, read.location("games:2038:96:5964")); templist2 = list.new(); //Honigpötte list.add(templist2, read.location("games:2035:99:5965")); list.add(templist2, read.location("games:2035:98:5967")); list.add(templist2, read.location("games:2036:97:5966")); display.add(player, 6, concat("Honig geerntet: ", tempstage, "/4")); @waitstage3 wait(); if(event == "block_click")) { if(list.contains(templist, block_loc)) { head = entity.getEquip(player, "head"); chest = entity.getEquip(player, "chest"); legs = entity.getEquip(player, "legs"); feet = entity.getEquip(player, "feet"); if(!(head == null || chest == null || legs == null || feet == null)) { if(item.getType(head) == "minecraft:leather_helmet")) { if(item.getType(chest) == "minecraft:leather_chestplate")) { if(item.getType(legs) == "minecraft:leather_leggings")) { if(item.getType(feet) == "minecraft:leather_boots")) { if(tempstatus == 2) { list.remove(templist, block_loc); item.drop(player_loc, honey); display.add(player, 6, concat("Honig abgegeben: ", tempstage3, "/4")); if(++tempstage == 4) { tempstatus++; } goto("waitstage3"); } } } } } } msg(player, "§7*Du wurdest von einer Biene gestochen*"); if(entity.getHealth(player) > 1) { entity.damage(player, 1); } goto("waitstage3"); } if(tempstatus == 1 || list.contains(templist2, block_loc)) { list.remove(templist2, block_loc); item.drop(player_loc, honey); display.add(player, 6, concat("Honigpötte gesammelt: ", ++tempstage2, "/3")); if(list.getSize(templist2) == 0) { display.add(player, 6, concat("Honig abgegeben: ", tempstage3, "/4")); } } goto("waitstage3"); } if(event == "entity_click" && tempstatus == 0) { entity_name = entity.getName(entity); if(entity_name == "Charles") { player.speak(player, "§2Charles", "Meine Bienen stechen gerne. Vielleicht kann dir ein alteingesessener Dorfbewohner helfen."); } if(entity_name == "Lilifred") { tempstatus++; player.speak(player, "§2Lilifred", "Du brauchst also meine Hilfe? Gerne, aber dafür möchte ich etwas Honig haben."); 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."); display.add(player, 6, concat("Honigpötte gesammelt: ", tempstage2, "/3")); } goto("waitstage3"); } if(event == "villager_give") { if(item_type == item.getType(honey)) { if(tempstatus == 1) { tempstage2 = tempstage2 + item_amount; if(tempstage2 >= 3) { player.speak(player, "§2Lilifred", "Vielen Dank! Hier hast du Rüstung, die sollte dir gegen lästige Bienen helfen."); item.drop(player_loc, read.item("minecraft:leather_helmet")); item.drop(player_loc, read.item("minecraft:leather_chestplate")); item.drop(player_loc, read.item("minecraft:leather_leggings")); item.drop(player_loc, read.item("minecraft:leather_boots")); tempstatus++; } goto("waitstage3"); } if(tempstatus == 3) { tempstage3 = tempstage3 + item_amount; display.add(player, 6, concat("Honig abgegeben: ", tempstage3, "/4")); if(tempstage3 >= 4) { event.unload("block_click"); event.unload("entity_click"); event.unload("villager_give"); display.remove(player, 6); sgv(player, "floralisstage", ++stage); display.add(player, 7, concat("Fortschritt: ", stage, "/", allstages)); sgoto(40, "stage4"); } } } else { item.drop(player_loc, item); } } goto("waitstage3"); @stage4 @player_giveup display.remove(player, 6); display.remove(player, 7); display.remove(player, 8); term();