Hi!
Ihr fragt euch vielleicht, wie man auf xServers ein Coinsystem erstellt!
Das Plugin Essentials hat bereits ein Geldsystem. Man kann allerdings nicht mit Commandblöcken auslesen, wer wie viel Geld hat.
Um Geld also zu automatisieren, braucht man ein Coinsystem ohne Essentials.
Ich erkläre in diesem Tutorial, wie man dieses Coinsystem aufsetzt. Weil es völlig ohne Plugins funktioniert, könnt ihr das auf jedem xServer machen, egal wie viel RAM er hat.
"Ich lass das einfach meinen Dev machen":
Es ist sehr gefährlich, jemandem OP-Rechte zu geben. Viele Server werden von Leuten gegriefed, die sich entweder als Dev betiteln oder sogar wirklich entsprechende Fähigkeiten haben.
Das bedeutet natürlich nicht, dass jeder Dev böse ist oder dass man alles alleine machen muss.
Trotzdem ist es hilfreich, dieses Wissen zu besitzen, denn damit und etwas Redstone-Wissen kann man:
- Schaltungen von anderen Leuten mit den erklärten Commands verstehen
- Selbst diese Schaltungen bauen (Das macht einen noch nicht zum Dev, da braucht man noch Plugin-Kenntnisse und für außerhalb von xServers auch Programmierkenntnisse)
Ich kann nicht auf alles hier eingehen. Das Wissen, was hier vermittelt wird, sollte in Kombination mit Redstone-Wissen benutzt werden.
Um Geld speichern zu können, brauchen wir ein Scoreboard objective.
/scoreboard objectives add %1 dummy <Anzeigename>
%1: Hier müsst ihr den Namen des Objectives angeben. In diesem Tutorial müsst ihr den Namen, den ihr ausgesucht habt, anstelle von %1 benutzen. Der Name sollte leicht zu merken sein und einfach zu schreiben, denn ihr werdet ihn in quasi jedem Command brauchen !!!
<Anzeigename>: Hier könnt ihr noch einen Anzeigenamen einrichten. Das ist völlig optional.
Aber wie zeige ich das Geld an? Es gibt viele Möglichkeiten:
- Eine Sidebar, die für jeden Spieler das Geld anzeigt: /scoreboard objectives setdisplay sidebar %1
- Eine Anzeige neben dem Spielernamen in der TAB-Liste: /scoreboard objectives setdisplay list %1
.... und weitere, auf die ich eingehen werden wenn andere Grundlagen geklärt sind.
Mit welchem Command kann ich denn einem Spieler Geld geben?
Coins neu setzen: /scoreboard players set @p %1 Anzahl
Coins hinzufügen: /scoreboard players add @p %1 Anzahl
Coins hinzufügen: /scoreboard players remove @p %1 Anzahl
Coins zurücksetzen: /scoreboard players reset @p %1
(Anzahl ist die Anzahl an Coins, die gesetzt/hinzugefügt/entfernt werden soll)
Und da kommt auch schon das 1. Beispiel: Lever clicker
In dem linken Commandblock steht: /scoreboard players add @p %1 1
Bei jedem Mal, wenn der Hebel nach unten geht, erhält der nächste Spieler 1 Coin.
Und wie kann jetzt ein Commandblock die Coins auslesen?
Grundsätzlich gibt es verschiedene Befehle, die dafür sorgen, dass ein Commandblock von einem Comparator (Wiki-Eintrag) ausgelesen werden kann.
Mit dem /testfor-Command können wir überprüfen, ob ein Spieler eine bestimmte Menge Coins hat.
/testfor @p[score_%1_min=10] Dieser Befehl überprüft, ob der nächste Spieler (@p) mindestends 1 Coin hat.
Ein Comparator gibt nur dann ein Signal aus, wenn mindestends 1 Spieler gefunden wurde.
Mit anderen "Selectors" können wir diese Suche verfeinern:
/testfor @p[score_%1_min=10,r=5,score_%1=15] überprüft, ob der nächste Spieler maximal 5 Blöcke vom Commandblock entfernt ist und mindestends 10 und maximal 15 Coins hat.
Wichtig ist, dass der Commandblock sein Redstone-Signal nur ändert, wenn er selbst ein Signal bekommt!
Er setzt sich also nicht von alleine zurück! Daher muss er an einer Redstone-Clock (Wiki-Eintrag) hängen.
So, kommen wir zu einem kleinen Praxisbeispiel: Eine Schaltung, die für reiche Spieler das Licht an macht.
Wir brauchen 1 Tür, 1 Commandblock, etwas Redstone-Zeug und einen Knopf.
Gelbe Schaltung: Wir benutzen einen Komparator-Taktgeber, Variante 2 im Wiki-Eintrag.
Magenta Schaltung: In dem Commandblock steht: "/testfor @p[score_coins_min=100]"
Der Output wird ausgelesen und gibt ein Signal an die grüne Schaltung:
Grüne Schaltung: Macht das Licht an
So, jetzt aber noch eine kleine Einführung in schöne Nachrichten.
Wie sende ich dem Spieler eine Nachricht wie "CoinSystem ➳ Deine Coins: <Anzahl>"?
Dafür brauchen wir den /tellraw-Befehl.
Wenn man JSON gelernt hat, dann kann man diesen Befehl auch per Hand benutzen. Ich empfehle aber einen Generator, weil es schneller geht.
Mein Lieblingsgenerator ist hierbei minecraftjson.com
In JSON sind alle Nachrichten aufgeteilt. Wenn man also einen Teil des Satzes rot machen will, muss man dafür einen neuen Teil einfügen.
Um die Coins eines Spielers auszulesen, braucht man bei "New Text" ein "Scoreboard Objective". Der Spieler ist dann @p, und das Objective %1.
Wenn ihr eine vorgefertigte Nachricht ausprobieren wollt, dann clickt auf den großen Button "IMPORT" unterhalb des Commands, und fügt das hier ein:
{"jformat":5,"jobject":[{"bold":true,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"12","insertion":"","click_event_type":0,"click_event_value":"","hover_event_type":0,"hover_event_value":"","hover_event_children":[],"id":"73aaf1a1-662f-4cee-bceb-df2194bd834f","text":"CoinSystem"},{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"7","insertion":"","click_event_type":0,"click_event_value":"","hover_event_type":0,"hover_event_value":"","hover_event_children":[],"id":"ae8eb15d-20cd-4f3f-9417-a4cdc764632b","text":" | "},{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"10","insertion":"","click_event_type":0,"click_event_value":"","hover_event_type":0,"hover_event_value":"","hover_event_children":[],"id":"7157fc64-fedf-4e87-b55f-e1e7c5397d5a","text":"Deine Coins: "},{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":16,"insertion":"","click_event_type":0,"click_event_value":"","hover_event_type":0,"hover_event_value":"","hover_event_children":[],"id":"752b3a01-1e3d-422c-a1c1-05ac0aff32cc","score_name":"@p","score_objective":"coins","score_value":null}],"command":"/tellraw @p %s","jtemplate":"tellraw"}
Wenn ihr den Command dann ingame in einen Commandblock einfügt und ausführt, seht ihr eure Coins.
In diesem Tutorial habe ich nur die Grundzüge angeschnitten. Mit etwas Redstone-Wissen könnt ihr damit quasi alles machen:
- Einen Shop
- Ein Rangsystem
... und vieles, vieles mehr.