Für Serverbetreiber

Metin2 Abstimmungs-API: So belohnst du deine Spieler

Metin2 Abstimmungs-API: So belohnst du deine Spieler

Wer Spielern, die abstimmen, im Spiel eine kleine Belohnung gibt, macht seine Community zufrieden und bringt seinen Server in der Wochenrangliste nach oben. Die Abstimmungs-API von Metin2PvpServarlar.com teilt deinem Server automatisch mit, ob ein Spieler wirklich abgestimmt hat. In diesem Guide zeigen wir Schritt für Schritt, wie du die Metin2 Abstimmungs-API einrichtest, mit PHP-Beispielcode und Sicherheitsregeln.

So funktioniert das System

  1. Der Spieler klickt auf deiner Website oder im Spiel auf den Abstimmungslink, der seine Accountnummer enthält.
  2. Auf unserer Seite besteht er die Roboter-Verifizierung (Cloudflare Turnstile) und gibt seine Stimme ab.
  3. Fordert der Spieler seine Belohnung an, fragt dein Server die Prüfadresse nach dieser Accountnummer.
  4. Lautet die Antwort 1, gibst du die Belohnung; bei 0 erinnerst du den Spieler daran, zuerst abzustimmen.

Für denselben Server kann alle 24 Stunden einmal abgestimmt werden. Bei Stimmen über den Abstimmungslink gilt diese Grenze sowohl pro IP-Adresse als auch pro Spielaccount.

Wo findest du die Links?

Klick im Kontrollpanel unter Meine Server neben deinem Server auf den Button API. Dort siehst du zwei Adressen und ein kurzes PHP-Beispiel.

Der Abstimmungslink ist die Adresse, die der Spieler anklickt:

https://www.metin2pvpservarlar.com/oy-ver/{sunucu-adi}/{sunucu_id}/{ID}

Die Prüfadresse (im Panel „API-Link“) ruft dagegen nur dein Server auf:

https://www.metin2pvpservarlar.com/api/oy/{sunucu_id}/{api_anahtari}/{ID}

Die ID am Ende beider Adressen ist die Nummer des Spielaccounts und muss eine Zahl größer als null sein. Kopier den Abstimmungslink genau so, wie er im Panel steht, und ersetze nur den ID-Teil am Ende. Die Prüfadresse liefert reinen Text zurück: 1, wenn der Spieler in den letzten 24 Stunden über den Abstimmungslink für deinen Server abgestimmt hat, sonst 0.

Einrichtung Schritt für Schritt

  • Erzeuge den Link für jeden Spieler: Lass Spieler ihre Accountnummer nicht von Hand eintippen. Häng im Benutzerbereich deiner Website oder am Abstimmungsbutton im Spiel automatisch die Nummer des eingeloggten Accounts an den Link an. So landet die Belohnung beim richtigen Account.
  • Setz einen Button „Belohnung abholen“: Der Spieler drückt ihn nach dem Abstimmen; die Prüfanfrage sendet in diesem Moment der Code, der auf deinem Server läuft.
  • Speichere die Belohnung: Die Prüfadresse liefert nach einer Stimme 24 Stunden lang 1. Schreib den Zeitpunkt der Belohnung zusammen mit der Accountnummer in deine eigene Datenbank und gib demselben Account vor Ablauf von 24 Stunden keine zweite Belohnung. Sonst drückt ein Spieler mit einer einzigen Stimme immer wieder auf den Button und sammelt Belohnungen.
  • Liefere die Belohnung aus: Nutze die Methode, die deine Serverdateien unterstützen, etwa Item-Shop-Guthaben gutschreiben oder dem Spieler ein Item schicken.

PHP-Beispielcode

Den folgenden Code kannst du in eine PHP-Datei deiner Website einfügen, die auf dem Server ausgeführt wird:

// Deinen API-Schlüssel niemals in den Spielclient, in JavaScript-Code
// oder in eine öffentlich zugängliche Datei schreiben.
const SUNUCU_ID    = '{sunucu_id}';    // Deine Server-ID aus dem Panel
const API_ANAHTARI = '{api_anahtari}'; // Dein API-Schlüssel aus dem Panel

function oyVerdiMi(int $hesapId): bool
{
    if ($hesapId < 1) {
        return false;
    }

    $adres = 'https://www.metin2pvpservarlar.com/api/oy/'
        . SUNUCU_ID . '/' . API_ANAHTARI . '/' . $hesapId;

    $curl = curl_init($adres);
    curl_setopt_array($curl, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_CONNECTTIMEOUT => 5,
        CURLOPT_TIMEOUT        => 10,
    ]);
    $yanit    = curl_exec($curl);
    $hataKodu = curl_errno($curl);
    $httpKodu = curl_getinfo($curl, CURLINFO_HTTP_CODE);

    // Verbindungsfehler, Timeout oder ungültige Anfrage: keine Belohnung.
    if ($yanit === false || $hataKodu !== 0 || $httpKodu !== 200) {
        return false;
    }

    return trim($yanit) === '1';
}

// $hesapId stammt aus der Session des eingeloggten Spielers.
if (oyVerdiMi($hesapId)) {
    // Hat dieser Account in den letzten 24 Stunden keine Belohnung bekommen,
    // die Belohnung vergeben und ihren Zeitpunkt in der Datenbank speichern.
} else {
    // Den Spieler daran erinnern, zuerst abzustimmen.
}

Der Code vergibt eine Belohnung nur, wenn die Antwort genau 1 lautet (oyVerdiMi heißt übersetzt „hat abgestimmt?“, $hesapId ist die Accountnummer). Sind Schlüssel oder Nummer falsch, kann die Antwort ein kurzer Fehlertext sein; bei einem Timeout kommt gar keine Antwort. All diese Fälle zählen als „keine Stimme“.

Sicherheit und Regeln

  • Halte den Schlüssel geheim: Prüfst du die Stimme in Code, der auf dem Rechner des Spielers läuft, kann der Spieler die Antwort fälschen und die Belohnung gratis abgreifen; außerdem gerät dein Schlüssel in fremde Hände. Glaubst du, dass dein Schlüssel durchgesickert ist, schreib uns über die Seite Kontakt.
  • Halte die Zahl der Anfragen niedrig: Prüf nur dann, wenn ein Spieler seine Belohnung anfordert. Alle Accounts in festen Abständen abzufragen, erzeugt unnötige Last.
  • Halte dich an die Regeln: Ingame-Belohnungen für Stimmen sind erlaubt. Stimmen zu kaufen, für Stimmen Geld zu zahlen oder Stimmen mit Bots, VPNs und Fake-Accounts zu sammeln, ist verboten; manipulierte Stimmen können gelöscht und der Server aus der Liste entfernt werden.
  • Wähle die Belohnung mit Augenmaß: Gib lieber kleine, aber regelmäßige Belohnungen statt großer, die die Wirtschaft im Spiel aus dem Gleichgewicht bringen. Spieler, die jeden Tag abstimmen, helfen deinem Server, in der Rangliste der besten Server aufzusteigen.

Häufige Probleme

  • Es kommt immer 0 zurück: Vielleicht hat der Spieler nicht den Abstimmungslink mit seiner Accountnummer benutzt. Stimmen, die nach dem Login auf unserer Seite über die Serverseite abgegeben werden, zählen für die Rangliste, erscheinen aber nicht in der Prüfadresse. Prüf auch, ob die Nummer im Abstimmungslink und in der Prüfanfrage dieselbe ist.
  • Ein Spieler kann nicht abstimmen: Da die Grenze beim Abstimmungslink auch pro IP-Adresse gilt, können Spieler mit derselben Internetverbindung über diesen Link innerhalb von 24 Stunden nur einmal für deinen Server abstimmen. Erklär das deinen Spielern vorher.
  • Die Antwort kommt verzögert: Zeig dem Spieler die Meldung „Versuch es in ein paar Minuten noch einmal“; wiederhole die Anfrage nicht in einer Schleife.

Wo du deinen Abstimmungslink teilen solltest, erklären wir in unserem Guide zur Serverwerbung. Um deinen Spielern zu erklären, wie sie an ihre Belohnung kommen, kannst du unseren Voting-Guide teilen.

Häufig gestellte Fragen

Wie richte ich die Abstimmungs-API ein, wenn ich kein PHP nutze?

Die Logik ist in jeder Sprache gleich: Schick eine GET-Anfrage an die Prüfadresse und vergib die Belohnung nur, wenn die Antwort genau 1 lautet. Ist deine Website in einer anderen Sprache geschrieben, setzt du dieselben Schritte dort um.

Kann ein Spieler am selben Tag zweimal eine Belohnung bekommen?

Er sollte es nicht. Da die Prüfadresse nach einer Stimme 24 Stunden lang 1 liefert, ist es Aufgabe deines Codes, den Zeitpunkt der Belohnung zu speichern und Wiederholungen zu verhindern.

Welche Nummer soll ich als ID verwenden?

Die Nummer des Spielaccounts. Sie muss größer als null sein, und im Abstimmungslink wie in der Prüfanfrage muss dieselbe Nummer stehen.

Wirkt sich der Reset der Stimmen auf das Belohnungssystem aus?

Nein. Die Stimmen werden für die Rangliste jeden Freitag um 20:59 Uhr türkischer Zeit (UTC+3) zurückgesetzt; die 24-Stunden-Frist läuft davon unabhängig. Hat ein Spieler kurz vor dem Reset abgestimmt, kann er seine nächste Stimme ebenfalls erst nach Ablauf der Frist abgeben.

0 Likes

Weitere Beiträge

Kommentare 0

Noch keine Kommentare vorhanden.