Skip to content

Commit b0084d9

Browse files
committed
v0.2
1 parent 73519be commit b0084d9

File tree

10 files changed

+620
-202
lines changed

10 files changed

+620
-202
lines changed

README-DE.md

Lines changed: 70 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11

22

33

4+
45
![](https://i.imgur.com/YedWe7W.png)
56

67
# Minecraft Script Dokumentation
7-
> Update 0.1.5: [Alle Änderungen](https://github.com/Stevertus/mcscript/releases)
8+
> Update 0.2: [Alle Änderungen](https://github.com/Stevertus/mcscript/releases)
89
910
Minecraft Script ist eine Programmiersprache für Entwickler der mcfunctions, sowie für die Minecraft Map und Package Erschaffer. Die .mcscript Dateien werden dabei zu mcfunction compiled und generiert. Dies bietet dem Entwickler erweiterte Möglichkeiten, wie zum Beispiel Modals, Loops, Variablen, Konstanten und Command-Wrapping.
1011

@@ -25,6 +26,7 @@ English documentation [here](https://github.com/Stevertus/mcscript/blob/master/R
2526
- [Globale Dateien](#global)
2627
4) [Syntax](#syntax)
2728
- [Command Grouping](#groups)
29+
- [Funktionen](#functions)
2830
- [Variablen](#vars)
2931
- [Boolean Variablen](#boolean)
3032
- [Konstanten](#consts)
@@ -38,6 +40,7 @@ English documentation [here](https://github.com/Stevertus/mcscript/blob/master/R
3840
- [forEach-Loops](#foreach)
3941
- [Modals](#modals)
4042
- [System Modals](#systemModals)
43+
- [Fehler und Debugging](#debugging)
4144
5) [IDEs und Syntax Highlighting](#ide)
4245
<a id="install"></a>
4346
## 1) Installation
@@ -78,12 +81,13 @@ Dieser Command wandelt alle .mcscript Dateien in .mcfunction Format um. Was in d
7881
In der Konsole werden alle generierten Dateien angezeigt oder ein Fehler ausgeworfen, falls etwas nicht korrekt war.
7982

8083
Alternativ kannst mit `mcscript compile *filepath*` einen speziellen Pfad oder spezielle Datei angeben.
84+
Mit der zusätzlichen `-fullErr` flag können ganze Fehler mit code Referenzen angezeigt werden.
8185
<a id="cli-watch"></a>
8286
### 2.3 mcscript watch
8387

8488
Hiermit wird dein Code automatisch compiled, wenn du irgendwelche Änderungen machst (speicherst). So musst du nicht bei jeder Änderung den obigen Command eingeben.
8589

86-
Auch hier kann ein Pfad angegeben werden.
90+
Auch hier kann ein Pfad angegeben und -fullErr verwendet werden.
8791
<a id="cli-add"></a>
8892
### 2.4 mcscript add [url or package]
8993
Dieser Conmmand kann ein datapack zu deiner Welt hinzufügen.
@@ -167,7 +171,7 @@ Zwei Leerzeilen können mit "##" erreicht werden.
167171
"as, at, positioned,align,dimension,rotated,anchored" können zusammengefasst werden:
168172

169173

170-
as('@a'){
174+
as(@a){
171175
/commands => /execute positioned ~ ~ ~ run command
172176
}
173177

@@ -182,18 +186,44 @@ asat(@s){
182186
"Gruppen können auch aufgelistet werden:
183187

184188

185-
as('@p'), at('@s'), positioned('~ ~1 ~'){
189+
as(@p), at(@s), positioned('~ ~1 ~'){
186190
/say command
187191
}
188192
==> /execute as @p at @s positioned ~ ~-1 ~ run say command
189193

190194
// also with if
191-
as('@p'), at('@s'), positioned('~ ~1 ~'), if(entity @s[tag=mytag]){
195+
as(@p), at(@s), positioned('~ ~1 ~'), if(@s[tag=mytag]){
192196
/say command
193197
}
194198
==> /execute as @p at @s positioned ~ ~-1 ~ if entity @s[tag=mytag] run say command
199+
<a id="functions"></a>
200+
### 4.2 Funktionen
201+
```
202+
[run] function "name|path" {
203+
/commands
204+
}
205+
```
206+
> run optional
207+
> ein Pfad sollte als String angegeben werden
208+
> ein nur aus Buchstaben bestehender name auch ohne ""
209+
210+
Eine Funktion generiert eine weitere mcfunction mit den angegebenen Namen oder Pfad. Mit dem run keyword kann eine Funktion auch direkt ausgeführt werden.
211+
Dies ist eine alternative zu einer wesentlich komplizierteren Variante mit `#file:`.
212+
Bsp:
213+
```
214+
run function test {
215+
/say function
216+
}
217+
/say not function
218+
=
219+
/function prj:test
220+
/say not function
221+
222+
#file: ./test
223+
/say function
224+
```
195225
<a id="vars"></a>
196-
### 4.2 Variablen
226+
### 4.3 Variablen
197227
Wie jede Programmiersprache hat auch Minecraft Script Variablen. Sie müssen wiefolgt initialisiert werden:
198228
`var test`
199229
Der Variablen kann ein Wert hinzugewiesen werden:
@@ -253,7 +283,7 @@ Beispiel mit /data get:
253283
`var varResult = run: data get entity @s Pos[0]`
254284

255285
<a id="boolean"></a>
256-
### 4.3 Boolean Variablen (Tags)
286+
### 4.4 Boolean Variablen (Tags)
257287
> `bool [name] [selector](optional) = true|false`
258288
259289
So können Wahrheitswerte deklariert werden.
@@ -268,7 +298,7 @@ if(isCool){
268298
}
269299
```
270300
<a id="consts"></a>
271-
### 4.4 Konstanten
301+
### 4.5 Konstanten
272302
Eine andere Art Variable ist die Konstante, so deklariert:
273303
> `const [name] = [value]`
274304
@@ -293,7 +323,7 @@ Auch kann hier ein [RegEx](https://developer.mozilla.org/de/docs/Web/JavaScript/
293323
`$(const).repl([/regex/],["$&"])`
294324

295325
<a id="if"></a>
296-
### 4.5 If/Else Statements
326+
### 4.6 If/Else Statements
297327

298328
If funktioniert ähnlich wie das Command Wrapping:
299329

@@ -324,18 +354,18 @@ Mit einigen extra Features:
324354

325355
Hier darauf achten das Argument nicht zu verändern!
326356
```
327-
if('entity @s[tag=test]'){
357+
if(@s[tag=test]){
328358
/tag @s remove test
329359
} else {
330360
/tag @s remove test
331361
}
332362
```
333363
Hier werden beide ausgeführt!! Verbessert:
334364
```
335-
if('entity @s[tag=test]'){
365+
if(@s[tag=test]){
336366
/tag @s add testIf
337367
}
338-
if('entity @s[tag=testIf]'){
368+
if(@s[tag=testIf]){
339369
/tag @s remove test
340370
} else {
341371
/tag @s remove test
@@ -352,7 +382,7 @@ Hier werden beide ausgeführt!! Verbessert:
352382
```
353383

354384
<a id="operators"></a>
355-
### 4.6 Logische Operatoren
385+
### 4.7 Logische Operatoren
356386

357387
In Kombination mit Command Gruppen und If-Else-Statements können zusätzlich logische Operatoren benutzt werden:
358388

@@ -410,7 +440,7 @@ if(test @s > test2 @a){
410440
}
411441
```
412442
<a id="switch"></a>
413-
### 4.7 Switch-Cases
443+
### 4.8 Switch-Cases
414444
```
415445
switch([var_name]){
416446
case <=|<|==|>|>= [other_var]|[number] {
@@ -448,7 +478,7 @@ switch(test){
448478
}
449479
```
450480
<a id="for"></a>
451-
### 4.8 For-Loops
481+
### 4.9 For-Loops
452482
```
453483
for([from],[to],[var_name](optional)){
454484
[actions]
@@ -491,7 +521,7 @@ Das ist bei 2 dimensionalen Loops sinnvoll:
491521
# es wird 10x say mit 1.1 - 5.2 ausgegeben
492522
}
493523
<a id="raycast"></a>
494-
### 4.9 Raycasting
524+
### 4.10 Raycasting
495525
```
496526
raycast([distance](optional), [block to travel through](optional),entity | block [target](optional) ){
497527
[actions on hitted block or entity]
@@ -550,7 +580,7 @@ raycast(10,"air",entity @e[type=armor_stand]) {
550580
Mcscript weiß nun, dass das Ziel eine Entity ist und führt den Command als diese aus, wenn sie getroffen wurde.
551581
Also würde der Armor Stand test sagen.
552582
<a id="while"></a>
553-
### 4.10 while-Loops
583+
### 4.11 while-Loops
554584
Der while-Loop ist so zu definieren:
555585
```
556586
while([cond]){
@@ -586,7 +616,7 @@ while(test < 10){
586616
}
587617
```
588618
<a id="dowhile"></a>
589-
### 4.11 do-while-Loops
619+
### 4.12 do-while-Loops
590620
```
591621
do {
592622
/commands
@@ -595,7 +625,7 @@ do {
595625
Der do-while-Loop funktioniert ähnlich, wie der while-Loop mit dem kleinen Unterschied, dass der Codeblock ausgeführt wird und danach erst die Bedingung geprüft wird.
596626
Der Loop wird also mindestens einmal durchlaufen.
597627
<a id="foreach"></a>
598-
### 4.12 forEach-Loop
628+
### 4.13 forEach-Loop
599629
```
600630
forEach(var [var_name] = [startwert]; [var_name] ==|>|<|<=|>=|!= [other_var]|[number]; [varname]++){
601631
/commands
@@ -620,7 +650,7 @@ forEach(var i = 2; i <= 10; i++){
620650
==> result = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10
621651
```
622652
<a id="modals"></a>
623-
### 4.13 Modals
653+
### 4.14 Modals
624654
> ```
625655
> modal [name]([arguments]){
626656
> [actions]
@@ -696,11 +726,29 @@ Auch kann hier ein [RegEx](https://developer.mozilla.org/de/docs/Web/JavaScript/
696726
`$(argument).repl([/regex/],["$&"])`
697727
698728
<a id="systemModals"></a>
699-
### 4.14 System Modals
729+
### 4.15 System Modals
700730
701731
Es gibt schon einige vordefinierte Modals, die hilfreich sein könnten. Bitte schaue dir dafür die spezifischen Dokumentationen [hier](https://github.com/Stevertus/mcscript/blob/master/Core%20Modals.md) an.
702732
703733
Du hast Ideen, welche Modals unbedingt als Standart-Modal aufgegriffen werden müssen? Sende mir einfach die [Konfigurationsdatei](#24_Dev_mcscript_modals_54) zur Überprüfung.
734+
<a id="debugging"></a>
735+
### 4.16 Error handling und Debugging
736+
Minecraft Script zeigt mit der Version 0.2 nur noch begrenzt Fehler an mit der Zeilen- und Dateiangabe.
737+
Benutze beim generieren bitte die Flag `-fullErr`, um vollständige alte Fehler wiederzuerlangen, falls du sie wünscht.
738+
739+
Falls du Fehlerangaben findest, die im Kontext keinen Sinn machen, wende dich bitte an das Team.
740+
741+
**Debug keyword**
742+
Mit "Debug" kannst du deinen Code debuggen und auch mögliche Fehler in Minecraft Script viel leichter entdecken. Sie können irgendwo im Code platziert werden und beeinflussen den generierten Code nicht.*
743+
* `debug message: [message]`
744+
Sendet eine einfache Nachricht in die Konsole mit Zeilen- und Dateiangaben.
745+
* `debug success: [message]`
746+
Sendet eine erfolgreiche Nachricht mit grüner Kennzeichnung in die Konsole mit Zeilen- und Dateiangaben.
747+
* `debug break: [message]`
748+
Dein Programm bricht an dieser Stelle ab und sendet erneut eine Nachricht.
749+
* `debug error: [message]`
750+
Dein Programm bricht an dieser Stelle ab und gibt einen kritischen Fehler mit Systeminformationen und relevanten Codestellen aus.
751+
704752
<a id="ide"></a>
705753
## IDEs und Syntax Highlighting
706754
@@ -712,3 +760,4 @@ Jetzt bleibt nichts mehr übrig als: **Happy Developing**
712760
--------------------------------------------------------
713761
714762
Vielen Dank an alle die Minecraft Script benutzen und diese Dokumentation gelesen haben. Bei Vorschlägen, Problemen oder Fehlern bitte mich kontaktieren.
763+
Ich freue mich euch ebenfalls euch auf meinem Discord begrüßen zu dürfen und Vorschläge und Kritik zu hören.

0 commit comments

Comments
 (0)