Browse Source

docu update 3.8

mloeschenkohl 2 years ago
parent
commit
0ff7e7bf1a

+ 15 - 1
docu_core.php

@@ -13,6 +13,20 @@
             <td>a = 3 * (5 - 1);<br>a++;<br>a <<= 3;</td>
         </tr>
     </table>
+    <table>
+		<tr>
+            <th class="command">label on_error</th>
+            <th class="desc">error handling for snuvi scripts</th>
+        </tr>
+        <tr>
+            <td class="bold">Info</td>
+            <td>if the label on_error exists, the parser will continue at this label</td>
+        </tr>
+		<tr>
+            <td class="bold">Variablen</td>
+            <td>error_stacktrace<br>error_message<br>error_name<br>error_function</td>
+        </tr>
+	</table>
     <table>
         <tr>
             <th class="command">for</th>
@@ -184,7 +198,7 @@
         </tr>
         <tr>
             <td class="bold">Info</td>
-            <td>all scheduled tasks are instantly executed on server stop</td>
+            <td>don't use sgoto with 1 ticks<br>all scheduled tasks are instantly executed on server stop<br>auto scheduler slows down execution of sgoto</td>
         </tr>
     </table>
     <table>

+ 166 - 28
docu_minecraft.php

@@ -84,7 +84,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>entity<br>hand ("MAIN_HAND", "OFF_HAND")<br>*cancel</td>
+            <td>player<br>entity<br>hand ("MAIN_HAND", "OFF_HAND")<br>*cancel</td>
         </tr>
     </table>
 	</table>
@@ -135,7 +135,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>*cancel</td>
+            <td>player<br>*cancel</td>
         </tr>
     </table>
     <table>
@@ -145,7 +145,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>*cancel</td>
+            <td>player<br>*cancel</td>
         </tr>
     </table>
     <table>
@@ -155,7 +155,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)</td>
+            <td>player</td>
         </tr>
         <tr>
             <td class="bold">Info</td>
@@ -169,7 +169,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)</td>
+            <td>player</td>
         </tr>
         <tr>
             <td class="bold">Info</td>
@@ -203,7 +203,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>sneak as boolean</td>
+            <td>player<br>sneak as boolean</td>
         </tr>
     </table>
 	<table>
@@ -223,7 +223,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>item<br>*cancel</td>
+            <td>player<br>item<br>*cancel</td>
         </tr>
     </table>
     <table>
@@ -233,7 +233,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>entity (item)<br>item<br>*cancel</td>
+            <td>player<br>entity (item)<br>item<br>*cancel</td>
         </tr>
     </table>
     <table>
@@ -243,7 +243,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>id</td>
+            <td>player<br>id</td>
         </tr>
     </table>
     <table>
@@ -253,7 +253,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>block as object<br>block_loc<br>block_type (e.g. "minecraft:wool", "km:artefact")<br>*cancel</td>
+            <td>player<br>block as object<br>block_loc<br>block_type (e.g. "minecraft:wool", "km:artefact")<br>*cancel</td>
         </tr>
     </table>
     <table>
@@ -263,7 +263,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>block as object<br>block_loc<br>block_type</td>
+            <td>player<br>block as object<br>block_loc<br>block_type</td>
         </tr>
     </table>
     <table>
@@ -273,7 +273,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>block as object<br>block_loc<br>block_type<br>action ("left", "right")<br>hand ("MAIN_HAND", "OFF_HAND")<br>*cancel</td>
+            <td>player<br>block as object<br>block_loc<br>block_type<br>action ("left", "right")<br>hand ("MAIN_HAND", "OFF_HAND")<br>*cancel</td>
         </tr>
     </table>
     <table>
@@ -283,7 +283,21 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>has_block as boolean<br>**block<br>**block_loc<br>**block_type<br>*cancel</td>
+            <td>player<br>has_block as boolean<br>**block<br>**block_loc<br>**block_type<br>*cancel</td>
+        </tr>
+    </table>
+    <table>
+        <tr>
+            <th class="command">container_click</th>
+            <th class="desc">a slot in an container gets clicked</th>
+        </tr>
+        <tr>
+            <td class="bold">Variablen</td>
+            <td>player<br>slot as double<br>item_list<br>type as string<br>drag_type as double<br>click_type as string<br>*cancel</td>
+        </tr>
+		<tr>
+            <td class="bold">Info</td>
+            <td>Custom inventories are not script-across.</td>
         </tr>
     </table>
     <table>
@@ -293,7 +307,11 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>item<br>inv<br>inv_name<br>inv_slot as number<br>inv_id<br>*cancel</td>
+            <td>player<br>item<br>inv<br>inv_name<br>inv_slot as number<br>inv_id<br>click_type<br>*cancel</td>
+        </tr>
+		<tr>
+            <td class="bold">Info</td>
+            <td>Custom inventories are not script-across.</td>
         </tr>
     </table>
     <table>
@@ -303,7 +321,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>inv<br>inv_id<br>inv_name</td>
+            <td>player<br>inv<br>inv_id<br>inv_name</td>
         </tr>
     </table>
     <table>
@@ -333,7 +351,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>*result</td>
+            <td>player<br>*result</td>
         </tr>
     </table>
     <table>
@@ -343,7 +361,17 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>from world as string<br>to world as string</td>
+            <td>player<br>from world as string<br>to world as string</td>
+        </tr>
+    </table>
+    <table>
+        <tr>
+            <th class="command">ender_teleport</th>
+            <th class="desc">an enderpearl lands</th>
+        </tr>
+        <tr>
+            <td class="bold">Variablen</td>
+            <td>living_entity<br>location<b>*cancel</td>
         </tr>
     </table>
     <table>
@@ -353,7 +381,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>rod_damage<br>hook (entity)<br>*drops with itemstacks as list<br>*cancel</td>
+            <td>player<br>rod_damage<br>hook (entity)<br>*drops with itemstacks as list<br>*cancel</td>
         </tr>
     </table>
     <table>
@@ -363,7 +391,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>command as string<br>*cancel</td>
+            <td>player<br>command as string<br>*cancel</td>
         </tr>
     </table>
     <table>
@@ -373,7 +401,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player (null if console)<br>player_name (null if console) (deprecated)<br>command as string<br>args as list</td>
+            <td>player (null if console)<br>player_name (null if console) (deprecated)<br>command as string<br>args as list<br>text_args as list with strings only</td>
         </tr>
     </table>
 	<table>
@@ -383,7 +411,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>message as string<br>*cancel</td>
+            <td>player<br>message as string<br>*cancel</td>
         </tr>
     </table>
     <table>
@@ -413,7 +441,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>hand ("MAIN_HAND", "OFF_HAND")<br>*cancel</td>
+            <td>player<br>hand ("MAIN_HAND", "OFF_HAND")<br>*cancel</td>
         </tr>
     </table>
     <table>
@@ -423,7 +451,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)</td>
+            <td>player</td>
         </tr>
     </table>
     <table>
@@ -433,7 +461,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>key as number from 1 to 9<br>*cancel</td>
+            <td>player<br>key as number from 1 to 9<br>*cancel</td>
         </tr>
     </table>
     <table>
@@ -493,7 +521,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)<br>var</td>
+            <td>player<br>var</td>
         </tr>
     </table>
 	<table>
@@ -503,7 +531,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)</td>
+            <td>player</td>
         </tr>
     </table>
 	<table>
@@ -513,7 +541,7 @@
         </tr>
         <tr>
             <td class="bold">Variablen</td>
-            <td>player<br>player_name (deprecated)</td>
+            <td>player</td>
         </tr>
     </table>
 	<table>
@@ -526,6 +554,16 @@
             <td>world</td>
         </tr>
     </table>
+	<table>
+        <tr>
+            <th class="command">vote</th>
+            <th class="desc">a vote gets received</th>
+        </tr>
+        <tr>
+            <td class="bold">Variablen</td>
+            <td>from<br>name<br>ip<br>timestamp</td>
+        </tr>
+    </table>
 </section>
 <section id="Event">
     <table>
@@ -929,6 +967,16 @@
             <td class="bold">Format</td>
             <td>block.setState(location, state, [boolean])</td>
         </tr>
+    </table>
+	<table>
+        <tr>
+            <th class="command">block.getState</th>
+            <th class="desc">returns the state of a block</th>
+        </tr>
+        <tr>
+            <td class="bold">Format</td>
+            <td>block.getState(block)</td>
+        </tr>
     </table>
 	<table>
         <tr>
@@ -1290,6 +1338,16 @@
             <td>setMOTD(text)</td>
         </tr>
     </table>
+	<table>
+        <tr>
+            <th class="command">modTimer</th>
+            <th class="desc">modifies the timer for the auto scheduler</th>
+        </tr>
+        <tr>
+            <td class="bold">Format</td>
+            <td>modTimer(milliseconds as long)</td>
+        </tr>
+    </table>
 </section>
 <section id="Item">
     <table>
@@ -1413,6 +1471,36 @@
 				operation: 0 (ADDITION), 1 (MULTIPLY_BASE), 2 (MULTIPLY_TOTAL)
 			</td>
         </tr>
+    </table>
+	<table>
+	    <tr>
+            <th class="command">item.clearAttributes</th>
+            <th class="desc">removes all custom attributes from an itemstack</th>
+        </tr>
+        <tr>
+            <td class="bold">Format</td>
+            <td>item.clearAttributes(itemstack)</td>
+        </tr>
+    </table>
+	<table>
+	    <tr>
+            <th class="command">item.hasAttributes</th>
+            <th class="desc">returns true if an itemstack has custom attributes</th>
+        </tr>
+        <tr>
+            <td class="bold">Format</td>
+            <td>item.hasAttributes(itemstack)</td>
+        </tr>
+    </table>
+	<table>
+	    <tr>
+            <th class="command">item.addDefaultTags</th>
+            <th class="desc">adds the default attributes to an itemstack</th>
+        </tr>
+        <tr>
+            <td class="bold">Format</td>
+            <td>item.addDefaultTags(itemstack)</td>
+        </tr>
     </table>
 	<table>
         <tr>
@@ -1527,6 +1615,16 @@
             <td class="bold">Format</td>
             <td>item.setDamage(itemstack, amount)</td>
         </tr>
+    </table>
+	<table>
+        <tr>
+            <th class="command">item.getDamage</th>
+            <th class="desc">returns the damage of an itemstack</th>
+        </tr>
+        <tr>
+            <td class="bold">Format</td>
+            <td>item.getDamage(itemstack)</td>
+        </tr>
     </table>
 	<table>
         <tr>
@@ -2230,7 +2328,7 @@
         </tr>
         <tr>
             <td class="bold">Format</td>
-            <td>plot.add(location1, location2)</td>
+            <td>plot.add(location1, location2, [plot_id])</td>
         </tr>
     </table>
     <table>
@@ -4220,6 +4318,46 @@
             <td class="bold">Format</td>
             <td>entity.getMotion(entity)</td>
         </tr>
+    </table>
+	<table>
+        <tr>
+            <th class="command">entity.addTag</th>
+            <th class="desc">adds a tag to an entity</th>
+        </tr>
+        <tr>
+            <td class="bold">Format</td>
+            <td>entity.addTag(entity, tag as string)</td>
+        </tr>
+    </table>
+	<table>
+        <tr>
+            <th class="command">entity.removeTag</th>
+            <th class="desc">removes a tag from an entity</th>
+        </tr>
+        <tr>
+            <td class="bold">Format</td>
+            <td>entity.removeTag(entity, tag as string)</td>
+        </tr>
+    </table>
+	<table>
+        <tr>
+            <th class="command">entity.clearTag</th>
+            <th class="desc">removes all tags from an entity</th>
+        </tr>
+        <tr>
+            <td class="bold">Format</td>
+            <td>entity.clearTag(entity)</td>
+        </tr>
+    </table>
+	<table>
+        <tr>
+            <th class="command">entity.hasTag</th>
+            <th class="desc">returns true if an entity has a tag</th>
+        </tr>
+        <tr>
+            <td class="bold">Format</td>
+            <td>entity.hasTag(entity, tag as string)</td>
+        </tr>
     </table>
     <table>
         <tr>

+ 59 - 0
jan/human_talk.txt

@@ -0,0 +1,59 @@
+if(entity_name == "Administrator\n§ceropster") {
+		item = living.getHand(player);
+		item_type = item.getType(item);
+		if(item_type == "minecraft:paper") {
+			msg.prefix(player, "§ceropster", "Prost!");
+		}
+	goto("wait");
+}
+
+if(entity_name == "Administrator\n§cwertibaldi") {
+		msg.prefix(player, "§cwertibaldi", "Kann grad nicht, bin im Einsatz für den Katastrophenschutz");
+	goto("wait");
+}
+
+if(entity_name == "Supporter\n§bImKillerKatze") {
+	rand_number = math.roundup(math.random(0,100));
+	if(rand_number > 0){
+		msg.prefix(player, "§bImKillerKatze", "Miau");
+	}else{
+		msg.prefix(player, "§bImKillerKatze", "Schnurrr!");
+	}
+	goto("wait");
+}
+
+if(entity_name == "Moderator\n§9SirTerence7") {
+	rand_number = math.roundup(math.random(0,5));
+	if(rand_number > 1){
+		msg.prefix(player, "§9SirTerence7", "Mathe bla... bla... bla...");
+	}else{
+		msg.prefix(player, "§9SirTerence7", "Fraktale bla... bla... bla...");
+	}
+	goto("wait");
+}
+
+if(entity_name == "Owner\n§4kajetanjohannes") {
+	item = living.getHand(player);
+	item_type = item.getType(item);
+	if(item_type == "minecraft:redstone") {
+		rand_number = math.roundup(math.random(0,3));
+		if(rand_number == 0){
+			temp_message = "WUSIWUSIWUSIWUSIWUSIWUSIWUSIWUSI";
+		}
+		if(rand_number == 1){
+			temp_message = "Wusi!";
+		}
+		if(rand_number == 2){
+			temp_message = "Wusi?";
+		}
+		if(rand_number == 3){
+			temp_message = "Wusi.";
+		}
+		msg.prefix(player, "§4kajetanjohannes", temp_message);
+		goto("wait");
+	}
+	if(item_type == "minecraft:ice" || item_type == "minecraft:blue_ice" || item_type == "minecraft:packed_ice"){
+		msg.prefix(player, "§4kajetanjohannes", "§bDas sieht nach mir aus.");
+	}
+goto("wait");
+}

+ 1 - 1
minigames/bedwars/bedwars.txt

@@ -210,7 +210,6 @@ event.load("player_move");
 starttime = time.getMillis();
 
 for(i = 0; i < numberofteams; i++) {
-	setBed(i);
 	map.add(newbedused, i, false);
 	map.add(teambedbroken, i, false);
 	teamlist = map.get(teamidtolist, i);
@@ -243,6 +242,7 @@ for(i = 0; i < numberofteams; i++) {
 			map.add(shopmenus, player.getId(p), shopmenu);
 		}
 	}
+	setBed(i);
 }
 minigame.displayAll(0, "§bBedWars");
 gosub("setdisplay");

+ 2 - 2
startscript.txt

@@ -22,8 +22,8 @@ script.startNamed("Playtime", "system/playtime");
 script.startNamed("Pumpkin", "utils/u_error", "survival/pumpkin", "utils/u_general");
 script.startNamed("Voxel", "system/voxel");
 script.startNamed("Mobspawning", "survival/mobspawning");
-script.startNamed("Fixitems", "utils/u_error", "system/fixitems");
-script.startNamed("Trader", "utils/u_error", "survival/trader");
+script.startNamed("Fixitems", "utils/u_error", "system/fixitems", "utils/u_general");
+script.startNamed("Trader", "utils/u_error", "survival/trader", "utils/u_general");
 script.startNamed("Amber", "utils/u_error", "survival/amber", "utils/u_general");
 script.startNamed("Sitting", "utils/u_error", "system/sitting", "utils/u_general");
 script.startNamed("Ticket", "utils/u_error", "system/tickets", "utils/u_general");

+ 2 - 2
stop.txt

@@ -1,6 +1,6 @@
 event.load("player_login");
 
-sgoto(500, "announce");
+sgoto(400, "announce");
 msg("online", "§4The server will restart soon!!!");
 msg("SERVER", "§4The server will restart soon!!!");
 
@@ -14,7 +14,7 @@ goto("wait");
 @announce
 msg("online", "§4The server will restart now and will be up again in 30 seconds!!!");
 msg("SERVER", "§4The server will restart now and will be up again in 30 seconds!!!");
-sgoto(100, "stop");
+sgoto(200, "stop");
 goto("wait");
 
 @stop

+ 48 - 9
survival/amber.txt

@@ -1,10 +1,17 @@
 event.load("entity_click");
 event.load("inv_click");
+event.load("inv_close");
 
 amber = item.getAmber();
 air = item.getAir();
 arrow_right = read.item("km:arrow_right", 1, "§fConvert");
 prefix_commands = "§6Commands";
+hint_1 = read.item("minecraft:iron_chestplate", 1, "§fArmor Part");
+hint_2 = read.item("{id:\"km:flawless_gem_stone\",Count:1b,tag:{color:16632375,display:{Name:'{\"text\":\"§fGemstone\"}'}}}");
+hint_3 = read.item("km:copper_hammer", 1, "§fHammer");
+item.hide(hint_1, "attributes");
+item.hide(hint_2, "attributes");
+item.hide(hint_3, "attributes");
 
 slot_head = read.slot("head");
 slot_chest = read.slot("chest");
@@ -15,6 +22,7 @@ tag_helmet = item.getTag("km:helmet");
 tag_chestplate = item.getTag("km:chestplate");
 tag_leggings = item.getTag("km:leggings");
 tag_boots = item.getTag("km:boots");
+tag_hammer = item.getTag("km:hammer");
 
 msg("dev", "§bAmber §rloaded.");
 @wait
@@ -31,17 +39,29 @@ if(event == "entity_click") {
 	if(entity_name != "Ludwig") {
 		goto("wait");
 	}
-	inv = inv.new("011020100");
-	inv.setItem(inv, 2, arrow_right);
+	inv = inv.new("011102010033300000");
+	inv.setItem(inv, 3, arrow_right);
+	inv.setItem(inv, 5, hint_1);
+	inv.setItem(inv, 6, hint_2);
+	inv.setItem(inv, 7, hint_3);
 	inv.open(inv, player, "Gemstone-Anvil");
 	goto("wait");
 }
+if(event == "inv_close") {
+	player.safeGiveItem(player, inv.getItem(inv, 0));
+	player.safeGiveItem(player, inv.getItem(inv, 1));
+	player.safeGiveItem(player, inv.getItem(inv, 2));
+	player.safeGiveItem(player, inv.getItem(inv, 4));
+	waitfor(2);
+	inv.update(player);
+	goto("wait");
+}
 if(event == "inv_click") {
-	if(inv_slot == 2) {
+	if(inv_slot == 3) {
 		//Ziel-slot muss leer sein
-		item = inv.getItem(inv, 3);
+		item = inv.getItem(inv, 4);
 		if(item.getType(item) != "minecraft:air") {
-			msg.prefix(player, prefix_commands, "Third slot needs to be empty.");
+			msg.prefix(player, prefix_commands, "Fourth slot needs to be empty.");
 			goto("wait");
 		}
 		//Quell-slots müssen belegt sein
@@ -57,6 +77,11 @@ if(event == "inv_click") {
 			msg.prefix(player, prefix_commands, "Second slot is empty.");
 			goto("wait");
 		}
+		item_2 = inv.getItem(inv, 2);
+		if(!item.hasTag(tag_hammer, item_2)) {
+			msg.prefix(player, prefix_commands, "Third slot is not a hammer.");
+			goto("wait");
+		}
 		//which gemstone
 		if(item.isAmber(item_1)) {
 			if(item.hasTag(tag_helmet, item_0)) {
@@ -75,14 +100,28 @@ if(event == "inv_click") {
 				msg.prefix(player, prefix_commands, "Only one armor part allowed.");
 				goto("wait");
 			}
+			max_damage = item.getMaxDamage(item_2);
+			new_damage = item.getDamage(item_2) + 50;
+			if(new_damage > max_damage + 1) {
+				msg.prefix(player, prefix_commands, "Hammer has not enough durability.");
+				goto("wait");
+			}
+			if(new_damage > max_damage) {
+				inv.setItem(inv, 2, air);
+				//playsound
+			}
+			item.setDamage(item_2, new_damage);
+			if(!item.hasAttributes(item_0)) {
+				item.addDefaultTags(item_0);
+			}
 			item.addAttribute(item_0, "generic.movement_speed", slot, 0.02, 0);
-			inv.setItem(inv, 0, air) ;
-			inv.setItem(inv, 1, air) ;
-			inv.setItem(inv, 3, item_0);
+			inv.setItem(inv, 0, air);
+			inv.setItem(inv, 1, air);
+			inv.setItem(inv, 4, item_0);
 			inv.update(player);
 			goto("wait");
 		}
-		msg.prefix(player, prefix_commands, "Second slot needs to be one Amber.");
+		msg.prefix(player, prefix_commands, "Second slot needs to be one Gemstone (like an Amber).");
 	}
 }
 goto("wait");

+ 23 - 20
survival/mobspawning.txt

@@ -8,25 +8,28 @@ z2 = 314;
 msg("dev", "§bMobspawning §rloaded");
 @wait
 wait();
-if(!isLiving(entity)) {
+if(event == "entity_join") {
+	if(!isLiving(entity)) {
+		goto("wait");
+	}
+	entity_type = entity.getType(entity);
+	if(entity_type == "player" || entity_type == "human" || entity_type == "nobody" || entity_type == "armor_stand") {
+		goto("wait");
+	}
+	ent_loc = entity.getLocation(entity);
+	world_name = world.getName(loc.getWorld(ent_loc));
+	if(world_name != "overworld") {
+		goto("wait");
+	}
+	x = loc.getX(ent_loc);
+	z = loc.getZ(ent_loc);
+	if(x < x1 || x > x2) {
+		goto("wait");
+	}
+	if(z < z1 || z > z2) {
+		goto("wait");
+	}
+	cancel = true;
 	goto("wait");
 }
-entity_type = entity.getType(entity);
-if(entity_type == "player" || entity_type == "human" || entity_type == "nobody" || entity_type == "armor_stand") {
-	goto("wait");
-}
-ent_loc = entity.getLocation(entity);
-world_name = world.getName(loc.getWorld(ent_loc));
-if(world_name != "overworld") {
-	goto("wait");
-}
-x = loc.getX(ent_loc);
-z = loc.getZ(ent_loc);
-if(x < x1 || x > x2) {
-	goto("wait");
-}
-if(z < z1 || z > z2) {
-	goto("wait");
-}
-cancel = true;
-goto("wait");
+goto("wait");

+ 1 - 1
survival/pumpkin.txt

@@ -4,7 +4,7 @@ event.load("block_click");
 times = map.new();
 pumpkin_wait_time = 3; //seconds
 
-pumpkin = read.item("minecraft:pumpkin_pie", 5, "PumpkinMinusOneEighthCake");
+pumpkin = read.item("minecraft:pumpkin_pie", 1, "PumpkinMinusOneEighthCake");
 lore_list = list.new();
 list.add(lore_list, "An almost whole pumpkin pie");
 list.add(lore_list, "Herobrine has already eaten a piece.");

+ 100 - 1
survival/survival.txt

@@ -13,6 +13,7 @@ event.load("pre_explosion");
 event.load("mob_griefing");
 event.load("item_air_click");
 event.load("projectile_hit");
+event.load("ender_teleport");
 
 setScriptVar("skills", list.new());
 skill.add("Keep Inventory", "skill.subcu_inv", "minecraft:chest", "Keeps the inventory on death", 100, false, false, true);
@@ -81,6 +82,16 @@ piston_sound = sound.get("block.piston.extend");
 adv_tp_sound = sound.get("block.portal.travel");
 sound_category_ambient = sound.getCategory("ambient");
 
+sound_category_master = sound.getCategory("master");
+sound_flute = sound.get("block.note_block.flute");
+sound_harp = sound.get("block.note_block.harp");
+sound_pling = sound.get("block.note_block.pling");
+sound_cat = sound.get("entity.cat.ambient");
+sound_stray_cat = sound.get("entity.cat.stray_ambient");
+sound_purreow = sound.get("entity.cat.purreow");
+sound_drink_milk = sound.get("entity.wandering_trader.drink_milk");
+sound_slime_place = sound.get("block.slime_block.place");
+
 gambler_inv = inv.new("020202020");
 gambler_inv_id = inv.getId(gambler_inv);
 inv.setItem(gambler_inv, 0, read.item("km:coin_copper", 1, "§f1 snuvi"));
@@ -148,6 +159,8 @@ if(event == "player_move") {
 //Wenn Event aus Survival-Welten, dann wird er verarbeitet
 if(event == "living_death" || event == "living_pre_hurt") {
 	loc = entity.getLocation(living_entity);
+} elseif(event == "ender_teleport") {
+	loc = location;
 } elseif(event == "pre_explosion") {
 	loc = location;
 } elseif(event == "mob_griefing") {
@@ -164,6 +177,24 @@ if(world.isSurvName(world_name)) {
 }
 goto("wait");
 
+@ender_teleport
+if(!isPlayer(living_entity)) {
+	goto("wait");
+}
+player = living_entity;
+if(player.isOnAdventure(player)) {
+	cancel = true;
+	msg.prefix(player, "§5Adventure", "Using Enderpearls during adventures? Nope!");
+	goto("wait");
+}
+//Verhindert während eines (Abenteuer-)Teleports, die Benutzung der Enderperle
+player_uuid = player.getUuid(player);
+if(set.contains(tp_set, player_uuid)) {
+	cancel = true;
+	msg.prefix(player, "§5Adventure", "Using Enderpearls during adventures? Nope!");
+}
+goto("wait");
+
 @item_air_click
 player_loc = entity.getLocation(player);
 world = loc.getWorld(player_loc);
@@ -263,8 +294,62 @@ if(entity.getType(entity) == "human") {
 		item = living.getHand(player);
 		item_name = item.getName(item);
 		if(removeFormat(item_name) == "Beer") {
+			sound.spawnForPlayer(player, $sound_drink_milk, $sound_category_master, 1, 1);
 			msg.prefix(player, "§cmarvinius", "Prost!");
 		}
+		else{
+			msg.prefix(player, "§cmarvinius", "Ich mag Gösser.");
+		}
+		goto("wait");
+	}
+	if(entity_name == "Owner\n§4kajetanjohannes") {
+		item = living.getHand(player);
+		item_type = item.getType(item);
+		sound.spawnForPlayer(player, $sound_slime_place, $sound_category_master, 1, 1);
+		if(item_type == "minecraft:redstone") {
+			rand_number = math.roundup(math.random(0,3));
+			if(rand_number == 0){
+				temp_message = "WUSIWUSIWUSIWUSIWUSIWUSIWUSIWUSI";
+			}
+			if(rand_number == 1){
+				temp_message = "Wusi!";
+			}
+			if(rand_number == 2){
+				temp_message = "Wusi?";
+			}
+			if(rand_number == 3){
+				temp_message = "Wusi.";
+			}
+			msg.prefix(player, "§4kajetanjohannes", temp_message);
+			goto("wait");
+		}
+		if(item_type == "minecraft:ice" || item_type == "minecraft:blue_ice" || item_type == "minecraft:packed_ice"){
+			msg.prefix(player, "§4kajetanjohannes", "§bDas sieht nach mir aus.");
+		}else{
+			msg.prefix(player, "§4kajetanjohannes", "wusi");
+		}
+	goto("wait");
+	}
+	if(entity_name == "Supporter\n§bImKillerKatze") {
+		rand_number = math.roundup(math.random(0,25));
+		if(rand_number > 13){
+			sound.spawnForPlayer(player, $sound_cat, $sound_category_master, 1, 1);
+			msg.prefix(player, "§bImKillerKatze", "Miau");
+			goto("wait");
+		}
+		if(rand_number < 12){
+			sound.spawnForPlayer(player, $sound_stray_cat, $sound_category_master, 1, 1);
+			msg.prefix(player, "§bImKillerKatze", "Miau!");
+			goto("wait");
+		}
+		else{
+			sound.spawnForPlayer(player, $sound_purreow, $sound_category_master, 1, 1);
+			msg.prefix(player, "§bImKillerKatze", "Schnurrr!");
+			goto("wait");
+		}
+	}
+	if(entity_name == "Administrator\n§cwertibaldi") {
+			msg.prefix(player, "§cwertibaldi", "Kann grad nicht, bin im Einsatz für den Katastrophenschutz.");
 		goto("wait");
 	}
 	if(entity_name == "Administrator\n§cMentorMentos") {
@@ -274,8 +359,21 @@ if(entity.getType(entity) == "human") {
 			msg.prefix(player, "§cMentorMentos", "Folg mir auf Twitch! ");
 			msg(player, text.link("Klick mich an :D","https://www.twitch.tv/Mentor_Mentos"));
 		}
+		else{
+			msg.prefix(player, "§cMentorMentos", "Ich mag Kölsch.");
+		}
+		goto("wait");
+	}
+	if(entity_name == "Moderator\n§9SirTerence7") {
+		rand_number = math.roundup(math.random(0,5));
+		if(rand_number > 1){
+			msg.prefix(player, "§9SirTerence7", "Mathe bla... bla... bla...");
+		}else{
+			msg.prefix(player, "§9SirTerence7", "Fraktale bla... bla... bla...");
+		}
 		goto("wait");
 	}
+	
 	if(entity_name == "Info-Point") {
 		msg(player, getSpacer());
 		msg(player, text.click("§r [§cclick§r] [§eSurvival§r]", "/infopoint1"));
@@ -316,7 +414,8 @@ if(entity.getType(entity) == "human") {
 			offerRank(player, "rank.adventurer");
 		}
 		removeAdventureDisplay(player);
-		money.addBoost(player, 8192);
+		player.safeGiveItem(player, item.getAmber());
+		money.addBoost(player, 4096);
 		goto("wait");
 	}
 }

+ 1 - 1
system/chat.txt

@@ -122,7 +122,7 @@ if(!silentjoin) {
 
 player_loc = entity.getLocation(player);
 //Inventory
-//inv.loadFromPlayer(player, player, loc.getWorld(player_loc));
+inv.loadFromPlayer(player, player, loc.getWorld(player_loc));
 //Keks geben, wenn man als einziger Spieler auf den Server joint und im Survival-Mode ist und der letzte Keks seit 5 Minuten vergeben wurde
 if(players.getAmount() == 1) {
 	if(!loc.isInGamesWorld(player_loc)) {

+ 10 - 3
system/commands.txt

@@ -710,6 +710,12 @@ if(event == "inv_click") {
 			msg.prefix(sender_name, prefix_commands, "This player is no longer online. Use /inv load <player> and /inv save <player> to overwrite an offline player's inventory.");
 			goto("wait");
 		}
+		if(click_type == "QUICK_MOVE") {
+			//Clone item
+			player.safeGiveItem(player, item);
+			inv.update(player);
+			goto("wait");
+		}
 		//Transmit item
 		player.removeItem(p, item);
 		player.safeGiveItem(player, item);
@@ -1640,7 +1646,7 @@ if(p == null) {
 } else {
 	p_or_id = p;
 }
-table = table.new("§8", 6, 24);
+table = table.new("§8", 7, 24);
 msg(player, table.getStart(table));
 msg(player, table.get(table, "Player", p_name));
 msg(player, table.getMiddle(table));
@@ -1654,6 +1660,7 @@ msg(player, table.get(table, "Rank", getRank(p_or_id)));
 msg(player, table.get(table, "PvP", hasPvpOn(p_or_id)));
 msg(player, table.get(table, "Quests", text.number(quest.getCounter(p_or_id))));
 msg(player, table.get(table, "Money", text.number(getMoney(p_or_id))));
+msg(player, table.get(table, "Adventures", text.number(player.getAdventureAmounts(p_or_id))));
 msg(player, table.getEnd(table));
 goto("wait");
 
@@ -3215,7 +3222,7 @@ elseif(arg0 == "fixitems") {
 	if(script != null) {
 		script.term(script);
 	}
-	script.startNamed("Fixitems", "utils/u_error", "system/fixitems");
+	script.startNamed("Fixitems", "utils/u_error", "system/fixitems", "utils/u_general");
 }
 elseif(arg0 == "games") {
 	script = script.get("Gamecenter");
@@ -3330,7 +3337,7 @@ elseif(arg0 == "trader") {
 	if(script != null) {
 		script.term(script);
 	}
-	script.startNamed("Trader", "utils/u_error", "survival/trader");
+	script.startNamed("Trader", "utils/u_error", "survival/trader", "utils/u_general");
 }
 elseif(arg0 == "story") {
 	script = script.get("Story");

+ 8 - 0
system/fixitems.txt

@@ -1,5 +1,6 @@
 event.load("entity_click");
 event.load("inv_click");
+event.load("inv_close");
 
 arrow_right = read.item("km:arrow_right", 1, "§fConvert");
 air_item = read.item("minecraft:air");
@@ -21,6 +22,13 @@ if(event == "entity_click") {
 	inv.open(inv, player, "Remove item effects and tags");
 	goto("wait");
 }
+if(event == "inv_close") {
+	player.safeGiveItem(player, inv.getItem(inv, 0));
+	player.safeGiveItem(player, inv.getItem(inv, 2));
+	waitfor(2);
+	inv.update(player);
+	goto("wait");
+}
 if(event == "inv_click") {
 	if(inv_slot == 1) {
 		//Ziel-slot muss leer sein

+ 1 - 0
system/perms.txt

@@ -359,6 +359,7 @@ perm.registerGroup(12, "playtime.month");
 perm.registerGroup(12, "playtime.other");
 perm.registerGroup(12, "give");
 perm.registerGroup(12, "grow");
+perm.registerGroup(12, "home.other");
 perm.registerGroup(12, "setmessage");
 perm.registerGroup(12, "enchant");
 perm.registerGroup(12, "memory");

+ 9 - 5
test.txt

@@ -1,6 +1,10 @@
-p = read.player("marvinius");
-player.giveItem(p, item.getAmber());
+player.setAdventureAmounts(122, 0);
 
-function item.getAmber() {
-	return read.item("{id:\"km:flawless_gem_stone\",Count:1b,tag:{color:13664802,display:{Name:'{\"text\":\"§fAmber\"}'}}}");
-}
+//p = read.player("marvinius");
+//item = living.getEquip(p, "hand");
+//item.clearAttributes(item);
+
+//item.addAttribute(item, "generic.knockback_resistance", read.slot("feet"), 0.5, 0);
+//item.addAttribute(item, "generic.armor", read.slot("feet"), 5, 0);
+//item.addAttribute(item, "generic.movement_speed", read.slot("feet"), 0.05, 0);
+//item.addAttribute(item, "generic.armor_toughness", read.slot("feet"), 5, 0);