You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
6
7
@@ -51,7 +52,7 @@ Hiermit wird dein Code automatisch compiled, wenn du irgendwelche Änderungen ma
!!Dieser Command ist nur für Entwicker gedacht, die ihre Modals in den Compiler einbauen wollen.
57
58
Es muss eine Datei angegeben werden und die Modals aus dieser Datei werden dann in eine Konfigurationsdatei geschrieben.
@@ -99,9 +100,14 @@ Auch sehr gut mit [for-loops](#loops) kombinierbar:
99
100
#file: test$(i)
100
101
//Commands für jede Datei hier
101
102
}
103
+
### 3.2 Dateien erweitern
104
+
Eine bereits bestehende Datei, vorher mit `#file:`, kann nun auch aus anderen Dateien erweitert werden und neuer Code einfach hinten drangehängt werden:
105
+
```
106
+
#extend: ./test
107
+
/commands kommen hier.
108
+
```
102
109
103
-
104
-
### 3.2 Command Gruppen / Wrapping
110
+
### 3.3 Command Gruppen / Wrapping
105
111
106
112
"as, at, positioned,align,dimension,rotated,anchored" können zusammengefasst werden:
107
113
@@ -126,9 +132,55 @@ In den Klammern muss das jeweilige Argument als String, sprich " " oder ' ' steh
126
132
/say command
127
133
}
128
134
==> /execute as @p at @s positioned ~ ~-1 ~ if entity @s[tag=mytag] run say command
135
+
### 3.4 Variablen
136
+
Wie jede Programmiersprache hat auch Minecraft Script Variablen. Sie müssen wiefolgt initialisiert werden:
137
+
`var test`
138
+
Der Variablen kann ein Wert hinzugewiesen werden:
139
+
```
140
+
var test = 5
141
+
# oder
142
+
var test
143
+
test = 6
144
+
```
145
+
Dieser Wert kann beliebig oft wieder verändert werden.
129
146
147
+
```
148
+
var test
149
+
test @s = 10
150
+
```
151
+
So können Werte auch nur speziellen Minecraft Selektoren zugewiesen werden.
152
+
Alle Werte werden in einem scoreboard mit dem Variablennamen gespeichert. Also können die Werte auch ganz standart mäßig verändert und ausgelesen werden:
153
+
```
154
+
var test
155
+
test @s = 10
156
+
/scoreboard players get @s test ==> 10
157
+
/scoreboard players set @s test 5
158
+
# etc
159
+
```
130
160
131
-
### 3.3 If/Else Statements
161
+
Variablen können auch mit anderen zusammen gerechnet und zusammengefügt werden:
162
+
```
163
+
var test = 10
164
+
var neu = 5
165
+
test += neu ==> 15
166
+
test -= neu ==> 5
167
+
test *= neu ==> 50
168
+
test /= neu ==> 2
169
+
test %= neu ==> 0
170
+
```
171
+
### 3.5 Konstanten
172
+
Eine andere Art Variable ist die Konstante, so deklariert:
173
+
`const test = [value]`
174
+
Diese Art kann nicht verändert werden!
175
+
Du kannst sie mit `$(var_name)` irgendwo in deinem Code benutzen um lange Strings und wiederholende Phrasen zu vermeiden:
176
+
```
177
+
const einString = "Hier könnte sehr viel Schrott stehen."
178
+
const eineNum = 5
179
+
180
+
/say $(einString) ==> /say Hier könnte sehr viel Schrott stehen.
181
+
var test = $(eineNum) ==> var test = 5
182
+
```
183
+
### 3.6 If/Else Statements
132
184
133
185
If funktioniert ähnlich wie das Command Wrapping:
134
186
@@ -187,20 +239,21 @@ Hier werden beide ausgeführt!! Verbessert:
187
239
```
188
240
189
241
190
-
### 3.4 Logische Operatoren
242
+
### 3.7 Logische Operatoren
191
243
192
244
In Kombination mit Command Gruppen und If-Else-Statements können zusätzlich logische Operatoren benutzt werden:
193
245
194
246
* Der Oder-Operator kann bei den Gruppierungen auf zwei Arten benutzt werden:
@@ -214,9 +267,37 @@ In Kombination mit Command Gruppen und If-Else-Statements können zusätzlich lo
214
267
}
215
268
==> execute if entity @s if entity @p run command
216
269
```
270
+
* Überprüfung von Variablen:
271
+
```
272
+
var test = 5
273
+
274
+
# genau gleich
275
+
if(test == 5){
276
+
/commands
277
+
}
278
+
279
+
# größer/kleiner gleich
280
+
if(test >= 5){
281
+
/commands
282
+
}
283
+
284
+
# größer/kleiner
285
+
if(test > 5){
286
+
/commands
287
+
}
288
+
289
+
# auch im Vergleich möglich
290
+
if(test > test2){
291
+
/commands
292
+
}
217
293
294
+
# oder mit entity variablen
295
+
if(test @s > test2 @a){
296
+
/commands
297
+
}
298
+
```
218
299
219
-
### 3.5 For-Loops
300
+
### 3.8 For-Loops
220
301
221
302
Einer der hilfreichsten Features ist der For-Loop. Als Argumente werden ganze Zahlen angenommen.
222
303
@@ -254,9 +335,41 @@ Das ist bei 2 dimensionalen Loops sinnvoll:
254
335
}
255
336
# es wird 10x say mit 1.1 - 5.2 ausgegeben
256
337
}
338
+
### 3.9 while-Loops
339
+
Der while-Loop ist so zu definieren:
340
+
```
341
+
while([cond]){
342
+
/commands
343
+
}
344
+
```
345
+
Die gruppierten Commands werden solange ausgeführt, wie die Bedingung[cond] war ist.
346
+
Als Bedingung können hier alle Operatoren und Argumente der If-Bedingungen verwendet werden. z.B.
347
+
```
348
+
var test = 0
349
+
while(test < 10){
350
+
/commands hier
351
+
test += 1
352
+
}
353
+
# ==> Die Commands werden innerhalb eines Ticks 10mal ausgeführt.
354
+
```
355
+
Bei while-Loops kann auch mit stop und continue gearbeitet werden:
356
+
```
357
+
var test = 0
358
+
while(test < 10){
359
+
test += 1
360
+
if(test == 5){
361
+
continue
362
+
# Wenn test 5 ist werden die restlichen Commands übersprungen
363
+
}
364
+
/commands hier
365
+
if(test >= 9){
366
+
stop
367
+
# Wenn test 9 oder über 9 ist wird die Schleife abgebrochen
368
+
}
369
+
}
370
+
```
257
371
258
-
259
-
### 3.6 Modals
372
+
### 3.10 Modals
260
373
261
374
Modals kann man wie functions oder Methoden verstehen, dass heißt man kann sie definieren:
262
375
@@ -308,11 +421,11 @@ Auch sind optionale und vordefinierte Argumente verfügbar:
308
421
# => say test
309
422
310
423
311
-
### 3.7 System Modals
424
+
### 3.11 System Modals
312
425
313
426
Es gibt schon einige vordefinierte Modals, die hilfreich sein könnten. Bitte schaue dir dafür die spezifischen Dokumentationen [hier](#) an.
314
427
315
-
Du hast Ideen, welche Modals unbedingt als Standart-Modal aufgegriffen werden müssen? Sende mir einfach die [Konfigurationsdatei](#ownmodal) zur Überprüfung.
428
+
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.
0 commit comments