How To: Automatisches Coinsystem auf xServers

  • 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

    2019-12-15_10.36.53.png

    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

    2019-12-15_10.46.55.png



    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:

    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.

    ***

    Ich bin KEIN PREMIUM auf dem Server mehr, aber hatte mal Premi xD
    Commandblock-Profi (aber mit weniger Zeit als xCoini!), Bukkit-Plugin-Entwickler auf dev.bukkit.org

    ***


    Ranghistorie: Spieler > 1 Monat Premium (für xServer) > Spieler > Gebannt > Spieler > 1 Monat Emerald (für xServer)


    <3XVTO<3

    Kenne euch seit 2016

    Spielzeiten: 2016 September-Dezember

    2017 Herbst

    2018 Februar

    2019 Februar, März, Juni

  • Ich wollte hier noch anmerken, dass mein Wissen zu Commandblocks zu großen Teilen aus dieser Playlist hier kommt:

    https://www.youtube.com/playli…SiOR9J6dBUHIfruagLk0ka8Vz

    ***

    Ich bin KEIN PREMIUM auf dem Server mehr, aber hatte mal Premi xD
    Commandblock-Profi (aber mit weniger Zeit als xCoini!), Bukkit-Plugin-Entwickler auf dev.bukkit.org

    ***


    Ranghistorie: Spieler > 1 Monat Premium (für xServer) > Spieler > Gebannt > Spieler > 1 Monat Emerald (für xServer)


    <3XVTO<3

    Kenne euch seit 2016

    Spielzeiten: 2016 September-Dezember

    2017 Herbst

    2018 Februar

    2019 Februar, März, Juni

  • Hey!


    Eigentlich sehr cooles Tutorial und ich denke, dass viele xServer damit ihren Server verbessern könnten.

    Allerdings sieht das für mich sehr kompliziert aus und viele haben einfach keine Lust, sowas zu lernen und sich damit zu beschäftigen.


    Keine Kritik an dich, nur ich denke halt so :)


    MfG

    Hennes

    Einmal editiert, zuletzt von BinLucky ()