Glücksspielsystem
Das Glücksspielsystem fügt EliteMobs ein vollwertiges Casino hinzu. Spieler können ihre Elite-Münzen in vier verschiedenen Minispielen einsetzen, bei Geldmangel Schulden machen und die Konsequenzen tragen, wenn der Schuldeneintreiber anklopft. Serveradministratoren können vieles konfigurieren, darunter die Auszahlungsmultiplikatoren für Blackjack, Münzwurf und Höher/Tiefer. Die Auszahlungen des Spielautomaten und die maximale Verschuldung sind allerdings fest im Code hinterlegt.
Einrichtung
Spieler öffnen die Spiele über dafür konfigurierte NPCs und benötigen elitemobs.gambling.npc, das standardmäßig gewährt wird. Die vier Spiele haben eigene Interaktionstypen; die Anzeige der Hauseinnahmen wird über den NPC-Dateinamen ausgewählt.
Um einen Glücksspiel-NPC einzurichten, erstelle eine NPC-Konfigurationsdatei und setze interactionType auf einen der folgenden Werte:
| Interaktionstyp | Beschreibung |
|---|---|
GAMBLING_BLACKJACK | Öffnet das Einsatzmenü für Blackjack |
GAMBLING_COINFLIP | Öffnet das Einsatzmenü für Münzwurf |
GAMBLING_SLOTS | Öffnet das Einsatzmenü für den Spielautomaten |
GAMBLING_HIGHERLOWER | Öffnet das Einsatzmenü für Höher oder Tiefer |
Der NPC des Spielhöllenbesitzers verwendet keinen speziellen Interaktionstyp. Um ihn einzurichten, erstelle einen NPC mit dem Dateinamen gambling_den_owner.yml. Die Anzeige der Hauseinnahmen erscheint anhand dieses Dateinamens automatisch über dem NPC.
EliteMobs liefert fertige NPC-Konfigurationen für alle fünf Rollen; normalerweise musst du sie nur platzieren:
| Datei | Rolle |
|---|---|
blackjack_dealer.yml | Blackjack (Vincent, der Blackjack-Dealer) |
coin_flipper.yml | Münzwurf (Lucky Pete) |
slot_machine_operator.yml | Spielautomat (Spinner Sam) |
card_shark.yml | Höher oder Tiefer (Ace Morgan, der Kartenhai) |
gambling_den_owner.yml | Anzeige der Hauseinnahmen |
Spiele
Blackjack
Ziel ist es, so nah wie möglich an 21 heranzukommen, ohne sie zu überschreiten. Diese Implementierung verwendet die folgenden Regeln.
Regeln
- Sowohl Spieler als auch Dealer erhalten zwei Karten.
- Die zweite Karte des Dealers bleibt verdeckt, bis der Spieler passt.
- Asse zählen als 11 oder 1 (wird automatisch angepasst, um ein Überkaufen nach Möglichkeit zu vermeiden).
- Bildkarten (Bube, Dame, König) zählen als 10.
- Der Dealer bleibt bei 17 stehen.
- Karten werden unabhängig mit Zurücklegen gezogen; es gibt kein endliches Kartendeck zum Mitzählen. Erreicht ein Spieler nach Hit 21, wird automatisch Stand ausgeführt.
- Das Menü zeigt fünf Kartenplätze pro Blatt. Weitere gezogene Karten zählen weiterhin zur Summe, auch wenn sie nicht mehr in diese Plätze passen.
- Ein Spieler mit einem natürlichen Blackjack erhält sofort die Auszahlung, auch wenn der Dealer ebenfalls einen natürlichen Blackjack hat.
Aktionen
| Aktion | Beschreibung |
|---|---|
| Hit | Eine weitere Karte ziehen. |
| Stand | Aktuelles Blatt behalten; anschließend ist der Dealer am Zug. |
| Double Down | Zahle einen weiteren gleich hohen Einsatz, verdopple den Gesamteinsatz, ziehe genau eine Karte und passe, sofern du dich nicht überkaufst. Nur bei der ersten Aktion mit 2 Karten verfügbar, wenn das verbleibende Guthaben plus Kredit den zusätzlichen Einsatz deckt. |
Auszahlungen
| Ergebnis | Standardmultiplikator |
|---|---|
| Normaler Gewinn (Spielersumme schlägt den Dealer oder Dealer überkauft sich) | 2.0x |
| Blackjack (21 mit den ersten beiden Karten) | 2.5x |
| Push (Unentschieden) | 1.0x (Einsatz wird zurückgezahlt) |
| Niederlage (Spieler überkauft sich oder Dealer hat die höhere Summe) | 0x (Einsatz verloren) |
Das Menü schließen
Schließt ein Spieler das Menü während des Dealer-Zugs, wird das Blatt des Dealers automatisch ausgespielt und das Ergebnis ermittelt. Schließt ein Spieler das Menü, bevor er passt, verfällt der Einsatz.
Münzwurf
Ein einfaches 50/50-Spiel. Wähle Kopf oder Zahl, und die Münze entscheidet über dein Schicksal.
So wird gespielt
- Das Spiel öffnet sich mit einer Kopf- und einer Zahl-Schaltfläche.
- Klicke auf eine der beiden, um deine Wahl zu treffen.
- Eine Münzwurf-Animation wird abgespielt.
- Das Ergebnis wird angezeigt.
Auszahlungen
| Ergebnis | Standardmultiplikator |
|---|---|
| Richtig geraten | 1.9x |
| Kante (Münze landet auf der Kante) | 5.0x |
| Falsch geraten | 0x (Einsatz verloren) |
Das Kanten-Ergebnis
Es besteht eine Wahrscheinlichkeit von 1 %, dass die Münze auf der Kante landet statt auf Kopf oder Zahl. Tritt dies ein, gewinnt der Spieler unabhängig von seiner Wahl immer und erhält eine 5-fache Auszahlung auf seinen Einsatz. Für dieses seltene Ereignis werden eine besondere Chatnachricht und eine besondere visuelle Darstellung gezeigt.
Mit diesen Standardwerten treten Kopf und Zahl jeweils in 49,5 % der Fälle auf. Die erwartete Auszahlung beträgt 0.495 × 1.9 + 0.01 × 5 = 0.9905 des Einsatzes; der gesamte Hausvorteil liegt daher bei 0,95 %. Der Hausvorteil von 5 % bei einem einfachen Münzwurf mit 1,9-facher Auszahlung gilt nur bei deaktiviertem Kanten-Ergebnis. Die Multiplikatoren enthalten den ursprünglichen Einsatz.
Das Menü schließen
Schließt ein Spieler das Menü, bevor er eine Wahl trifft, verfällt der Einsatz.
Spielautomat
Drehe drei Walzen und bringe Symbole in Reihe, um zu gewinnen. Seltenere Symbole zahlen mehr aus.
So wird gespielt
- Das Spiel öffnet sich mit einem 3x3-Walzenraster und einer Dreh-Schaltfläche.
- Klicke auf Drehen, um die Walzen zu starten.
- Jede Walze bleibt nacheinander mit einer Animation stehen.
- Die mittlere Reihe (Gewinnlinie) bestimmt das Ergebnis.
Symbole und Auszahlungen
Jede Walze zieht unabhängig ein Symbol anhand der folgenden Gewichtungen. Drei gleiche Symbole zahlen 100 / weight. Genau zwei gleiche Symbole an beliebigen Positionen der mittleren Reihe, auch an erster und dritter Stelle, zahlen 25 % dieses Betrags. Diese Gesamtauszahlungen enthalten den Einsatz: Ein Paar Kirschen oder Zitronen zahlt weniger als den ursprünglichen Einsatz zurück, obwohl das Menü einen Gewinn anzeigt.
| Symbol | Gewichtung | Chance | Auszahlung bei 3 gleichen | Auszahlung bei 2 gleichen |
|---|---|---|---|---|
| Kirsche | 35 | 35% | 2.86x | 0.71x |
| Zitrone | 28 | 28% | 3.57x | 0.89x |
| Orange | 20 | 20% | 5.0x | 1.25x |
| Goldene Glocke | 10 | 10% | 10.0x | 2.5x |
| Silberbarren | 5 | 5% | 20.0x | 5.0x |
| Glücks-7 | 2 | 2% | 50.0x | 12.5x |
Drei Glücks-7en sind der Jackpot und lösen einen besonderen Bild- und Soundeffekt aus.
Das Menü schließen
Schließt ein Spieler das Menü vor dem Drehen, verfällt der Einsatz.
Nach einem Ergebnis bucht Spin Again einen weiteren Einsatz gleicher Höhe ab und kehrt zum Startbildschirm zurück. Danach muss der Spieler Spin anklicken; schließt er das Menü dazwischen, verfällt der gerade abgebuchte Einsatz.
Höher oder Tiefer
Ein Kartenspiel auf Serienbasis. Rate, ob die nächste Karte höher oder tiefer als die aktuelle ist, und baue einen Multiplikator auf. Lass dir jederzeit auszahlen oder setze alles aufs Spiel.
So wird gespielt
- Eine Karte wird gezogen und angezeigt (Werte reichen von 2 bis 14, wobei Ass = 14).
- Rate, ob die nächste Karte höher oder tiefer als die aktuelle Karte ist.
- Rätst du richtig, steigt dein Multiplikator und die aufgedeckte Karte wird zur neuen aktuellen Karte.
- Nach mindestens einem richtigen Tipp kannst du dir jederzeit auszahlen lassen.
- Rätst du falsch, verlierst du deinen gesamten Einsatz.
- Ist die nächste Karte gleichwertig zur aktuellen Karte, gilt das als Niederlage.
Serienmultiplikator
Jeder richtige Tipp multipliziert deinen Gewinn mit dem konfigurierten Multiplikator (standardmäßig 1.3x). Der Multiplikator stapelt sich:
| Serie | Multiplikator (Standard) | Auszahlung bei 100 Münzen Einsatz |
|---|---|---|
| 1 | 1.3x | 130 |
| 2 | 1.69x | 169 |
| 3 | 2.197x | 219.7 |
| 4 | 2.856x | 285.6 |
| 5 | 3.713x | 371.3 |
| ... | ... | ... |
| 12 | ~23.3x | ~2,330 |
Maximale Serie und automatische Auszahlung
Die maximale Serie beträgt 12. Erreicht ein Spieler 12 richtige Tipps, wird ihm automatisch ausgezahlt und sein Gewinn gutgeschrieben. Das verhindert außer Kontrolle geratene Multiplikatoren.
Das Menü schließen
Schließt ein Spieler das Menü, während er eine Gewinnserie hat, wird ihm automatisch ausgezahlt und er erhält seinen aktuellen Gewinn. Schließt er es, bevor er einen Tipp abgegeben hat, verfällt der Einsatz.
Einsätze
Vor Beginn eines Spiels wird dem Spieler ein Einsatzmenü angezeigt, in dem er seinen Wetteinsatz wählt.
Einsatzgrenzen
| Einstellung | Standardwert |
|---|---|
| Mindesteinsatz | 10 |
Es gibt keinen konfigurierbaren Höchsteinsatz. Das Menü verwendet ganze Münzbeträge; All In verwirft Bruchteile beim Addieren von Guthaben und verfügbarem Kredit.
minBet legt den Reset-Betrag und die Untergrenze der Verringerungsschaltflächen fest. Der Anfangsbetrag ist max(minBet, 10). Das ist keine allgemeine Transaktionsprüfung: All In kann einen positiven Betrag unter minBet setzen, und Play akzeptiert ihn derzeit, wenn er bezahlbar ist. Verlasse dich nicht darauf, dass diese Einstellung bei jedem Ablauf einen Mindesteinsatz erzwingt.
Steuerelemente des Einsatzmenüs
Das Einsatzmenü bietet mehrere Steuerelemente:
- Schrittschaltflächen -- Drei Größen zum Erhöhen und Verringern. Bei mindestens 100 Münzen und ohne Schulden betragen die Schritte 5 %, 10 % und 25 % des Guthabens, auf ganze Münzen abgeschnitten und mindestens 1. Andernfalls gelten feste Beträge von 10, 50 und 100.
- All In -- Setzt den Einsatz auf das Maximum, das sich der Spieler leisten kann (einschließlich verfügbarem Kredit).
- Reset -- Setzt den Einsatz auf das Minimum zurück.
- Play -- Startet das Spiel mit dem aktuellen Einsatz. Nur aktiv, wenn sich der Spieler den Einsatz leisten kann.
- Cancel -- Schließt das Menü, ohne zu setzen.
Das Menü zeigt das aktuelle Guthaben. Schulden und verfügbarer Kredit erscheinen bei einem positiven Schuldenstand, obwohl auch schuldenfreie Spieler Kredit nutzen können.
Schuldensystem
Spieler können über ihr Guthaben hinaus setzen, indem sie Schulden machen. Das Casino gewährt Kredit bis zu einer festen Grenze.
So funktionieren Schulden
- Setzt ein Spieler einen Einsatz, der sein Guthaben übersteigt, wird der Restbetrag als Spielschuld verbucht.
- Spieler können höchstens 500 Münzen Schulden anhäufen. Diese Grenze ist fest im Code hinterlegt und nicht konfigurierbar.
- Spieler können keine Einsätze tätigen, die ihre Schulden über das Maximum hinaus treiben würden.
- Gewinnt ein Spieler, werden seine Gewinne zuerst zur Tilgung der Schulden verwendet, bevor sie seinem Guthaben gutgeschrieben werden. Auch andere über EliteMobs verdiente Währung tilgt zuerst diese Schulden, einschließlich bei aktivierter Vault-Integration. Rückerstattete Verzauberungskäufe umgehen den Schuldeneinzug.
Verfügbarer Kredit
Bei endlichen Schuldenwerten beträgt der verfügbare Kredit max(0, maxDebt - currentDebt). Das Einsatzmenü zeigt ihn an, wenn der Spieler Schulden hat.
Schuldenwarnung
Gerät ein Spieler in die Schulden, erhält er eine Warnmeldung. Der Schuldeneintreiber kann ihn aufsuchen, solange er offene Schulden mit sich herumträgt.
Der Schuldeneintreiber-Boss
Der Schuldeneintreiber ist ein benutzerdefinierter Boss, der spawnt, um Spieler mit Spielschulden zu jagen.
Spawn-Bedingungen
- Der Spieler muss offene Spielschulden haben.
- Eine regelmäßige Prüfung läuft alle 60 Minuten (konfigurierbar) für alle Online-Spieler.
- Die erste Prüfung wartet nach der Initialisierung ein volles Intervall. Auch seit dem letzten Spawn-Versuch für den Spieler muss mindestens ein Intervall vergangen sein; dieser Zeitstand wird beim Abschalten des Plugins zurückgesetzt.
- Jede Prüfung hat eine Chance von 50 % (konfigurierbar), den Schuldeneintreiber für einen infrage kommenden Spieler zu spawnen.
- Pro Spieler kann jeweils nur ein Schuldeneintreiber aktiv sein.
- Der Schuldeneintreiber verwendet die Datei für benutzerdefinierte Bosse
debt_collector.yml.
Die regelmäßige Prüfung selbst schließt keine Welten oder Spielmodi aus; der normale Spawn eines benutzerdefinierten Bosses kann trotzdem scheitern. Das Tilgen der Schulden verhindert künftige regelmäßige Spawns, entfernt aber keinen bereits vorhandenen Eintreiber automatisch.
Level-Skalierung
Die mitgelieferte debt_collector.yml verwendet ein dynamisches Level und scaledCombat: true; ihre Kampfberechnungen passen sich daher jedem Spieler an. Gesundheits- und Schadensmultiplikatoren stammen aus dieser Bossdatei. Die Spawn-Routine weist das Kampflevel des verfolgten Spielers nicht direkt zu. Änderungen an der Bosskonfiguration ändern sein Skalierungsverhalten.
Verhalten
- Der Schuldeneintreiber prüft zehn Oberflächenpositionen in 5 bis 10 Blöcken horizontaler Entfernung. Passt keine davon, verwendet er einen Versatz von höchstens 5 Blöcken auf jeder horizontalen Achse auf Höhe des Spielers.
- Er nimmt sofort den Spieler ins Visier, für den er gespawnt wurde.
- Er hat standardmäßig ein Zeitlimit von 600 Sekunden (10 Minuten). Wird er in dieser Zeit nicht getötet, verschwindet er und warnt den Spieler, dass er zurückkehren wird.
Ergebnisse
| Ergebnis | Auswirkung |
|---|---|
| Schuldeneintreiber wird getötet | Sein gespeichertes Ziel erhält die Rückkehrnachricht, sofern es online ist, auch wenn ein anderer Spieler ihn getötet hat. Die Schulden sinken nicht. |
| Spieler stirbt durch einen direkten Treffer des Eintreibers | Die Schulden des Opfers sinken um 50 Münzen (konfigurierbar). Bei vollständiger Tilgung wird es benachrichtigt. Der Eintreiber wird nach 5 Sekunden entfernt. Die zuletzt schädigende Entität muss selbst ein debt_collector.yml-Boss sein; Projektilschützen oder spätere Umgebungstode werden nicht zurückverfolgt. |
| Zeitlimit des Managers | Der Eintreiber wird entfernt und sendet eine Warnung. Eine spätere regelmäßige Prüfung kann einen neuen erzeugen, wenn der Spieler weiter infrage kommt und die Zufallsprüfung erfolgreich ist. |
Spielhöllenbesitzer
Der Spielhöllenbesitzer zeigt die Hauseinnahmen als schwebenden Text an. Das sind erfasste Einsätze minus Auszahlungen, einschließlich schuldenfinanzierter Einsätze. Es handelt sich weder um ein separates Bankguthaben noch um bereits von Schuldnern eingezogenes Geld.
- Positive Einnahmen werden in Grün angezeigt (z. B.
+1234.56). - Negative Einnahmen (Spieler gewinnen mehr, als sie verlieren) werden in Rot angezeigt (z. B.
-567.89). - Die Anzeige aktualisiert sich jede Sekunde.
- Die Hauseinnahmen werden in
house_earnings.ymlgespeichert und überstehen Serverneustarts.
Konfiguration
Alle Glücksspieleinstellungen werden in GamblingSettings.yml gespeichert. Nachfolgend die wichtigsten spielrelevanten Einstellungen.
Allgemeine Einstellungen
| Schlüssel | Beschreibung | Standard |
|---|---|---|
gamblingEnabled | Aktiviert oder deaktiviert das gesamte Glücksspielsystem. Ist es deaktiviert, funktionieren Glücksspiel-NPCs nicht und der Schuldeneintreiber spawnt nicht. | true |
minBet | Reset-Betrag und Untergrenze der Verringerungsschaltflächen; beachte die obige All-In-Einschränkung. | 10 |
Hinweis: Die maximale Schuld (500.0) ist fest im Code hinterlegt und nicht konfigurierbar.
Der Loader verlangt positive Ganzzahlen für minBet, das Prüfintervall und das Zeitlimit des Eintreibers. Wahrscheinlichkeiten müssen endlich sein und zwischen 0 und 1 liegen. Auszahlungsmultiplikatoren und die Schuldenreduzierung bei Tod müssen endlich und nicht negativ sein. Ungültige Werte erzeugen eine Warnung und werden in der geladenen Konfiguration durch ihre Standardwerte ersetzt.
Auszahlungsmultiplikatoren
| Schlüssel | Beschreibung | Standard |
|---|---|---|
payouts.blackjack.normal | Auszahlungsmultiplikator für einen normalen Blackjack-Gewinn. | 2.0 |
payouts.blackjack.blackjack | Auszahlungsmultiplikator für einen natürlichen Blackjack (21 mit den ersten beiden Karten). | 2.5 |
payouts.coinFlip.normal | Auszahlungsmultiplikator für einen richtigen Kopf/Zahl-Tipp. Eine Auszahlung von 1,9x ergibt nur bei deaktiviertem Kanten-Ergebnis einen Hausvorteil von 5 %. | 1.9 |
payouts.coinFlip.edgeChance | Chance (0.0 bis 1.0), dass die Münze auf der Kante landet (Bonusgewinn). Auf 0.0 setzen, um dies zu deaktivieren. | 0.01 |
payouts.coinFlip.edgePayout | Auszahlungsmultiplikator, wenn die Münze auf der Kante landet. | 5.0 |
payouts.higherLower.multiplierV2 | Multiplikator, der bei Höher/Tiefer pro richtigem Tipp angewendet wird. Stapelt sich multiplikativ. | 1.3 |
Die Münzwurf-Einstellungen teilen sich einen YAML-Abschnitt:
payouts:
coinFlip:
normal: 1.9
edgeChance: 0.01
edgePayout: 5.0
Speichert deine bestehende Datei direkt unter payouts.coinFlip eine Zahl, verschiebe diesen Wert unter normal und ergänze die beiden Kanten-Einstellungen. EliteMobs deaktiviert das Glücksspiel und meldet diese Korrektur, ohne die Datei umzuschreiben. Lade nach der Korrektur neu.
Auszahlungen des Spielautomaten
Die Auszahlungen des Spielautomaten sind nicht konfigurierbar. Sie werden automatisch aus den Symbolgewichtungen nach der Formel 100 / weight berechnet:
| Symbol | Gewichtung | Auszahlung bei 3 gleichen | Auszahlung bei 2 gleichen |
|---|---|---|---|
| Kirsche | 35 | 2.86x | 0.71x |
| Zitrone | 28 | 3.57x | 0.89x |
| Orange | 20 | 5.0x | 1.25x |
| Glocke | 10 | 10.0x | 2.50x |
| Barren | 5 | 20.0x | 5.00x |
| Glücks-7 | 2 | 50.0x | 12.50x |
Es gibt in GamblingSettings.yml überhaupt keine payouts.slots.*-Schlüssel — die einzigen Spielautomaten-Einträge in der Datei sind die slots.*-Oberflächentexte (Schaltflächennamen, Beschriftungen, Ergebnistitel). Die Auszahlungen werden immer aus den fest hinterlegten Symbolgewichtungen abgeleitet.
Einstellungen des Schuldeneintreibers
| Schlüssel | Beschreibung | Standard |
|---|---|---|
debtCollector.spawnChance | Chance (0.0 bis 1.0), dass der Schuldeneintreiber bei jeder Prüfung spawnt. | 0.5 |
debtCollector.checkIntervalMinutes | Wie oft (in Minuten) geprüft wird, ob der Schuldeneintreiber für verschuldete Spieler spawnen soll. | 60 |
debtCollector.timeoutSeconds | Wie lange (in Sekunden) es dauert, bis der Schuldeneintreiber verschwindet, wenn er nicht getötet wird. | 600 |
debtCollector.debtReductionOnPlayerDeath | Betrag, um den die Schulden verringert werden, wenn der Schuldeneintreiber den Spieler tötet. | 50.0 |
Sicherheit der Wirtschaft
Einsätze werden vor dem Öffnen eines Spiels abgebucht. Münzwurf und Spielautomat rechnen ihr Ergebnis vor der Ergebnisanimation ab. Höher/Tiefer erfasst jeden Tipp vor seiner Animation und zahlt aus, wenn der Spieler die Auszahlung wählt. Blackjack wird nach dem letzten Ziehen des Dealers abgerechnet; wird sein Menü während des Dealer-Zugs geschlossen, spielt es dieses Blatt sofort zu Ende. Auszahlungen werden auf zwei Dezimalstellen gerundet und enthalten den ursprünglichen Einsatz. Die gemeinsame Ergebnisverarbeitung verhindert, dass dieselbe ausstehende Auszahlung zweimal vergeben wird.
Die beschriebenen Regeln beim Schließen des Menüs gelten auch, wenn sich das Inventar beim Abmelden eines Spielers schließt. Diese Schutzmaßnahmen stellen eine unfertige Sitzung nach einem Serverabsturz oder dem Abschalten des Plugins nicht wieder her. Vermeide Neustarts während laufender Spiele.