184 Zeilen
9.0 KiB
Markdown
184 Zeilen
9.0 KiB
Markdown
|
# SteamWar.de - Script System
|
||
|
|
||
|
---
|
||
|
<!-- TOC -->
|
||
|
* [SteamWar.de - Script System](#steamwarde---script-system)
|
||
|
* [Einleitung](#einleitung)
|
||
|
* [Basis-Apis](#basis-apis)
|
||
|
* [SteamWar.de-Api](#steamwarde-api)
|
||
|
* [global](#global)
|
||
|
* [player](#player)
|
||
|
* [region](#region)
|
||
|
* [tnt](#tnt)
|
||
|
* [server](#server)
|
||
|
* [SteamWar.de-Global-Api](#steamwarde-global-api)
|
||
|
* [Event Type](#event-type)
|
||
|
* [BlockEvent](#blockevent)
|
||
|
* [InteractEvent](#interactevent)
|
||
|
* [Position](#position)
|
||
|
* [Beispiele](#beispiele)
|
||
|
* [Hello, World!](#hello-world)
|
||
|
* [Code](#code)
|
||
|
* [Ausgabe](#ausgabe)
|
||
|
<!-- TOC -->
|
||
|
|
||
|
|
||
|
## Einleitung
|
||
|
Das Script System auf SteamWar.de basiert auf [Lua](https://www.lua.org/docs.html). Der Code wird einfach in ein Minecraft Buch geschrieben und kann mit einem Links-Klick ausgeführt werden.
|
||
|
|
||
|
# Basis-Apis
|
||
|
Es werden folgende Standard-Apis zur Verfügung gestellt:
|
||
|
- [`math`](https://www.lua.org/manual/5.4/manual.html#6.7)
|
||
|
- [`string`](https://www.lua.org/manual/5.4/manual.html#6.4)
|
||
|
- [`table`](https://www.lua.org/manual/5.4/manual.html#6.6)
|
||
|
- `bit32`
|
||
|
|
||
|
# SteamWar.de-Api
|
||
|
In den Scripten gibt es dazu noch folgende globale Variablen:
|
||
|
- [`player`](#player)
|
||
|
- [`region`](#region)
|
||
|
- [`server`](#server)
|
||
|
|
||
|
### global
|
||
|
Die `global`-Api stellt Funktionen zur Verfügung, QOL sind.
|
||
|
Es gibt folgende Funktionen:
|
||
|
|
||
|
| Name | Signature | Beschreibung |
|
||
|
|-----------|----------------------------------|----------------------------------------------------------------------------------------------------|
|
||
|
| `print` | print(String...) | @see message(String...) |
|
||
|
| `input` | input(String, Function\<String>) | Fragt den User nach einer Eingabe mit der Nachricht und called die zugehörige Funktion nach dieser |
|
||
|
| `timeout` | timeout(Number, Function\<Void>) | Wartet die angegebene Anzahl an Ticks und führt danach die zugehörige Funktion aus |
|
||
|
| `pos` | pos(Number, Number, Number) | Erstellt aus drei Zahlen eine Position-Table |
|
||
|
| `exec` | exec(String...) | Führt den angegebenen Befehl als Spieler aus |
|
||
|
|
||
|
### player
|
||
|
Die `player`-Api stellt Funktionen zur Verfügung, die den Spieler betreffen.
|
||
|
Es gibt folgende Funktionen:
|
||
|
|
||
|
| Name | Signature | Beschreibung |
|
||
|
|---------------|--------------------------------|-------------------------------------------------------------|
|
||
|
| `name` | name(): String | Gibt den `displayName` des Spielers zurück |
|
||
|
| `message` | message(String...) | Sendet den Text in den Chat des Spielers |
|
||
|
| `actionbar` | actionbar(String...) | Sendet den Text in die ActionBar des Spielers |
|
||
|
| `x` | x(Number), x(): Number | Setzt oder gibt die X-Koordinate des Spielers |
|
||
|
| `y` | y(Number), y(): Number | Setzt oder gibt die Y-Koordinate des Spielers |
|
||
|
| `z` | z(Number), z(): Number | Setzt oder gibt die Z-Koordinate des Spielers |
|
||
|
| `yaw` | yaw(Number), yaw(): Number | Setzt oder gibt den Yaw des Spielers |
|
||
|
| `pitch` | pitch(Number), pitch(): Number | Setzt oder gibt den Pitch des Spielers |
|
||
|
| `sneaking` | sneaking(): Boolean | Wahr, wenn der Spieler am Sneaken ist |
|
||
|
| `sprinting` | sprinting(): Boolean | Wahr, wenn der Spieler am Sprinten ist |
|
||
|
| `slot` | slot(Number), slot(): Number | Setzt oder gibt den Slot des gehaltenden Items des Spielers |
|
||
|
| `item` | item(): String | Gibt den Item Type der Main-Hand zurück |
|
||
|
| `offHandItem` | offHandItem(): String | Gibt den Item Type der Off-Hand zurück |
|
||
|
|
||
|
|
||
|
### region
|
||
|
Die `region`-Api stellt Funktion zur Verfügung, die die Region des Spielers betreffen.
|
||
|
Es gibt folgende Funktionen:
|
||
|
|
||
|
| Name | Signature | Beschreibung |
|
||
|
|--------|----------------|--------------------------------------------|
|
||
|
| `name` | name(): String | Gibt den Namen der Region zurück |
|
||
|
| `type` | type(): String | Gibt den Namen des Typen der Region zurück |
|
||
|
|
||
|
Es gibt folgende Variablen:
|
||
|
|
||
|
| Name | Beschreibung |
|
||
|
|--------|--------------|
|
||
|
| `tnt` | [tnt](#tnt) |
|
||
|
|
||
|
#### tnt
|
||
|
|
||
|
|
||
|
## server
|
||
|
|
||
|
# SteamWar.de-Global-Api
|
||
|
Mit `/script` kann man Script-Bücher global abspeichern. Diese haben dann zugrif auf die `global`-Api.
|
||
|
Die `global`-Api stellt Funktionen zur Verfügung um auf Events, Commands und Hotkeys mit einem Script zu reagieren.
|
||
|
|
||
|
Es gibt folgende Funktionen:
|
||
|
|
||
|
| Name | Signature | Beschreibung |
|
||
|
|-----------|---------------------------------|---------------------------------|
|
||
|
| `event` | event(EventType, Function(Any)) | Registriere einen Event Handler |
|
||
|
| `command` | cmd(String, Function(Any)) | Registriere einen Command |
|
||
|
|
||
|
Es gibt folgende Variablen:
|
||
|
|
||
|
| Name | Beschreibung |
|
||
|
|--------|----------------------------------|
|
||
|
| `type` | Siehe: [Event Type](#event-type) |
|
||
|
|
||
|
## Event Type
|
||
|
Es gibt folgende Event-Typen:
|
||
|
|
||
|
| Name | Wenn | Parameter |
|
||
|
|---------------------|-----------------------------------------------------|---------------------------------|
|
||
|
| `FF` | Beim Doppelten Drücken der Swap-Hands taste | NIL |
|
||
|
| `PlaceBlock` | Beim Platzieren von Blöcken | [BlockEvent](#blockevent) |
|
||
|
| `BreakBlock` | Beim Zerstören von Blöcken | [BlockEvent](#blockevent) |
|
||
|
| `RightClick` | Beim Rechts klicken | [InteractEvent](#interactevent) |
|
||
|
| `LeftClick` | Beim Links Klicken | [InteractEvent](#interactevent) |
|
||
|
| `TNTSpawn` | Wenn ein TNT in der aktuellen Region spawnt | NIL |
|
||
|
| `TNTExplode` | Wenn ein TNT in der aktuellen Region explodiert | [Position](#position) |
|
||
|
| `TNTExplodeInBuild` | Wenn ein TNT in der aktuellen Bau Region explodiert | [Position](#position) |
|
||
|
| `SelfJoin` | Wenn man selbst den Server betritt | NIL |
|
||
|
| `SelfLeave` | Wenn man den Server verlässt | NIL |
|
||
|
| `DropItem` | Wenn man ein item Droppt | (type: Material) |
|
||
|
| `EntityDeath` | Wenn ein Entity Stirbt | (type: Entity Type) |
|
||
|
|
||
|
### BlockEvent
|
||
|
Das übergebene Objekt an den Handler hat folgende Variablen:
|
||
|
|
||
|
| Name | Beschreibung |
|
||
|
|--------|-----------------------------|
|
||
|
| `x` | Die X-Koordinate des Blocks |
|
||
|
| `y` | Die Y-Koordinate des Blocks |
|
||
|
| `z` | Die Z-Koordinate des Blocks |
|
||
|
| `type` | Das Material des Blocks |
|
||
|
|
||
|
### InteractEvent
|
||
|
Das übergebene Objekt an den Handler hat folgende Variablen:
|
||
|
|
||
|
| Name | Beschreibung |
|
||
|
|------------|-------------------------------------------------------------------------------------------------------------------------------|
|
||
|
| `action` | Die Action die ausgeführt wurde, Mögliche Werte: `RIGHT_CLICK_BLOCK`, `RIGHT_CLICK_AIR`, `LEFT_CLICK_BLOCK`, `LEFT_CLICK_AIR` |
|
||
|
| `hand` | Die Hand die zum ausführen genutzt wird, Mögliche Werte: `HAND`, `OFF_HAND` |
|
||
|
| `block` | Der Typ des Items mit dem geklickt wurde |
|
||
|
| `hasBlock` | Wahr, wenn auf einen Block geklickt wurde |
|
||
|
|
||
|
Wenn `hasBlock` wahr ist, gibt es folgende Variablen:
|
||
|
|
||
|
| Name | Beschreibung |
|
||
|
|-------------|-----------------------------------------|
|
||
|
| `blockX` | Die X-Koordinate des Blocks |
|
||
|
| `blockY` | Die Y-Koordinate des Blocks |
|
||
|
| `blockZ` | Die Z-Koordinate des Blocks |
|
||
|
| `blockFace` | Die Seite des Blocks die geklickt wurde |
|
||
|
|
||
|
|
||
|
### Position
|
||
|
Die Position ist ein Objekt mit folgenden Variablen:
|
||
|
|
||
|
| Name | Beschreibung |
|
||
|
|------|------------------|
|
||
|
| `x` | Die X-Koordinate |
|
||
|
| `y` | Die Y-Koordinate |
|
||
|
| `z` | Die Z-Koordinate |
|
||
|
|
||
|
|
||
|
# Beispiele
|
||
|
|
||
|
## Hello, World!
|
||
|
Ein einfaches Hello, World!-Script.
|
||
|
|
||
|
#### Code
|
||
|
```lua
|
||
|
print("Hello, World!")
|
||
|
```
|
||
|
|
||
|
#### Ausgabe
|
||
|
```
|
||
|
Hello, World!
|
||
|
```
|