API dokumentáció
Metin2 szavazás ellenőrző rendszer
Könnyen használható, megbízható szavazási jutalmak a Metin2 privát szerveredhez
A szavazás ellenőrző rendszerünk egy modern és innovatív megoldás, amelyet kifejezetten Metin2 privát szerverek számára terveztünk. Élvezetes módot kínál a játékosoknak, hogy kedvenc szerverükre szavazzanak, miközben játékbeli előnyöket kapnak.
A rendszer könnyen bevezethető és rendkívül megbízható, így ideális választás azoknak a szerver tulajdonosoknak, akik növelni szeretnék a játékosok elköteleződését és a szerver láthatóságát.
Célunk egy mindenki számára előnyös helyzet megteremtése: a játékosok hűségükért játékbeli jutalmat kapnak, a szerverek pedig nagyobb láthatóságot és aktivitást élveznek.
Vote4Buff rendszer (ajánlott)
Teljes körű szavazási és jutalmazási rendszer egyedi játékbeli felülettel
A Vote4Buff egy prémium, mindent egyben szavazási megoldás, amely látványos játékbeli felületet, WebSocket kommunikációt és teljes szerver integrációt biztosít. A játékosok szavazhatnak, több bónuszcsomag közül választhatnak, és azonnali jutalmat kapnak anélkül, hogy elhagynák a játékot!
A rendszer felépítése
A Vote4Buff rendszer három fő komponensből áll:
Kliens oldal
- Python UI rendszer (uivote4buff.py)
- Saját UI grafika és erőforrások
- C++ WebSocket integráció
- 11 nyelvi támogatás
Szerver oldal
- C++ API integráció
- Bónuszcsomag kezelés
- Tárgyjutalom rendszer
- Valós idejű hatáskövetés
Platformunk
- Szavazásellenőrző API
- Fiók alapú követés
- Csalás elleni védelem
- Szavazási státusz valós időben
Fő jellemzők
Tökéletes azoknak: akik professzionális, azonnal használható megoldást szeretnének anélkül, hogy heteket töltenének egyedi fejlesztéssel. Csak konfiguráld a bónuszcsomagokat, illeszd be a fájlokat, és már kész is!
Vote4Buff fájlok letöltése
Szerezd be az összes szükséges fájlt a kliens és a szerver integrációhoz
A Vote4Buff a martysama0134 v5.8 forrásbázishoz készült. Ha más forrást használsz, előfordulhat, hogy további módosításokra van szükség.
A csomag tartalma
Kliens fájlok
- Python UI fájlok (uivote4buff.py)
- Játék kliens fájl módosítások
- UI grafika és erőforrások
- 11 nyelvi lokalizációs fájl
- C++ WebSocket implementáció
- UI szkriptek
Tartalmazza a libcurl.dll fájlt (32 bites verzió mellékelve, 64 bites elérhető)
Szerver fájlok
- char.h konfiguráció
- Hatás rendszer módosítások
- Chat parancs integráció
- API kommunikációs réteg
- Bónusz kezelő rendszer
Minden szükséges C++ forrás módosítás megtalálható a csomagban
Kérjük, jelentkezz be a Vote4Buff fájlok letöltéséhez.
Konfigurációs útmutató
Állítsd be a bónuszcsomagokat, tárgyjutalmakat és az API beállításokat
A Vote4Buff konfigurációja a szervered char.h fájljában történik. Az alábbiakban részletes példákat találsz minden beállításra.
1. lépés: API hitelesítő adatok
Először állítsd be a szerver azonosítót és az API tokent (mindkettő megtalálható a vezérlőpultodon):
// API SETTINGS from Metin2 Server List
static const std::string s_VOTE4BUFF_SERVER_ID = "YOUR_SERVER_ID"; // From dashboard
static const std::string s_VOTE4BUFF_API_TOKEN = "YOUR_API_TOKEN"; // From dashboard
static const int s_VOTE4BUFF_DURATION = 86400; // seconds (1 day) DO NOT MODIFY THIS !!!
2. lépés: Bónuszcsomagok konfigurálása
Legfeljebb 3 bónuszcsomagot definiálhatsz, amelyek közül a játékosok választhatnak. Minden csomag több bónuszt is tartalmazhat:
// Bonuses must be set with its APPLY_ declaration.
// You can add as many bonuses as you want per slot.
static std::vector<std::vector<std::pair<int, int>>> s_VOTE4BUFF_BONUSES =
{
{ // Bonus Pool 1: PvP Focused
{ APPLY_ATTBONUS_HUMAN, 5 }, // +5% vs Players
{ APPLY_DEF_GRADE_BONUS, 50 }, // +50 Defense
},
{ // Bonus Pool 2: PvE Focused
{ APPLY_ATTBONUS_MONSTER, 5 }, // +5% vs Monsters
{ APPLY_ATTBONUS_INSECT, 5 }, // +5% vs Insects
{ APPLY_HP_REGEN, 10 }, // +10 HP Regen
},
{ // Bonus Pool 3: Farm Focused
{ APPLY_ITEM_DROP_BONUS, 10 }, // +10% Drop Rate
{ APPLY_EXP_DOUBLE_BONUS, 10 }, // +10% EXP
{ APPLY_GOLD_FIND, 15 }, // +15% Gold
},
};
Gyakori bónusz típusok: APPLY_ATTBONUS_HUMAN, APPLY_ATTBONUS_MONSTER, APPLY_DEF_GRADE_BONUS, APPLY_ITEM_DROP_BONUS, APPLY_EXP_DOUBLE_BONUS, APPLY_GOLD_FIND, APPLY_MAX_HP, APPLY_MAX_SP, APPLY_HP_REGEN, APPLY_SP_REGEN, APPLY_CRITICAL_PCT, APPLY_PENETRATE_PCT és még sok más!
3. lépés: Tárgyjutalmak (opcionális)
Állítsd be azokat a tárgyakat, amelyeket a játékosok automatikusan megkapnak szavazás után:
static std::vector<std::pair<DWORD, int>> s_VOTE4BUFF_ITEM_REWARDS =
{
// Leave empty if you don't want to give any items as rewards
// Format: { vnum, count }
{ 27007, 5 }, // 5x Red Potion (XXL)
{ 50084, 1 }, // 1x Gold Bar
{ 71027, 10 }, // 10x Dragon Coin
};
4. lépés: Bónuszcsere beállítások
Szabályozd a várakozási időt és a költségeket, ha a játékosok bónuszcsomagot szeretnének váltani:
// Cooldown when changing bonus (does not apply when choosing right after voting)
static const int s_VOTE4BUFF_CHANGE_BONUS_COOLDOWN = 300; // seconds (5 minutes)
// Price when changing bonus (does not apply when choosing right after voting)
static const int s_VOTE4BUFF_CHANGE_BONUS_PRICE = 15000; // yang (0 = free)
Megjegyzés: A szavazás után a játékosok ingyenesen választhatnak bónuszcsomagot. A várakozási idő és a költség csak akkor érvényes, ha szavazás nélkül szeretnének csomagot váltani.
Telepítési útmutató
Lépésről lépésre útmutató a Vote4Buff integrálásához
Készíts biztonsági másolatot a kliens és szerver fájljaidról! A __ előtaggal rendelkező fájlokat módosítani kell, a többi közvetlenül másolható.
Szerver telepítés
char.h konfigurálása
Nyisd meg a letöltött csomag Source/Server/__char.h fájlját.
- Keresd meg a
class CBuffOnAttributes;sort, és illeszd be fölé a konfigurációs kódot (lásd Konfiguráció fejezet) - Állítsd be a
s_VOTE4BUFF_SERVER_IDéss_VOTE4BUFF_API_TOKENértékeket - Konfiguráld a bónuszcsomagokat és a tárgyjutalmakat
- Keresd meg a
bool DragonSoul_RefineWindow_CanRefine();sort, és add hozzá a nyilvános metódus deklarációkat
Szerver oldali módosítások alkalmazása
Illeszd be a csomag szerver oldali fájljait:
__affect.h- Egészítsd ki a meglévő affect.h fájlodat a biztosított változtatásokkal__chat_affect.cpp- Add hozzá a Vote4Buff hatáskezelést__cmd_general.cpp- Egészítsd ki a parancs feldolgozást__desc_client.cpp- Kliens deskriptor módosítások
Megjegyzés: A __ előtaggal ellátott fájlok azt jelzik, hogy a módosításokat a saját fájljaiddal kell egyesíteni.
Játékmag újrafordítása
Fordítsd újra a játékszervert az új módosításokkal.
make clean && make Kliens telepítés
Python UI fájlok
A Client/root/ mappából:
- Másold a
uivote4buff.pyfájlt a kliensedroot/mappájába - Módosítsd az alábbi fájlokat az útmutatás szerint:
__constInfo.py__game.py__interfaceModule.py__uiAffectShower.py
UI grafika és szkriptek
- Másold a
Client/ui/game/vote4buff/mappát a packui/game/könyvtárába - Másold a
Client/uiscript/vote4buffwindow.pyfájlt az uiscript mappába
Nyelvi fájlok
Add hozzá a támogatott nyelvekhez tartozó szövegeket a Client/locale/ mappából:
- Illeszd a
__locale_game.txttartalmát alocale_game.txtfájlba - Illeszd a
__locale_interface.txttartalmát alocale_interface.txtfájlba
Elérhető nyelvek: EN, DE, ES, PL, TR, RO, IT, PT, HU, GR, CZ
C++ kliens módosítások
A Source/Client/UserInterface/ könyvtárból:
- Másold a
M2WebSocket.cppésM2WebSocket.hfájlokat az UserInterface mappába - Alkalmazd a
__előtagú fájlokban található változtatásokat a saját fájljaidra - Győződj meg róla, hogy a
libcurl.dllmegtalálható a kliensed könyvtárában (a 32 bites verzió mellékelve, szükség esetén töltsd le a 64 bites változatot)
UI gomb hozzáadása (opcionális)
A Vote4Buff alapból nem ad hozzá gombot. Neked kell meghívni a ToggleVote4Buff() függvényt valahonnan a felületedről. Például:
- Adj gombot a SystemDialog ablakhoz
- Rendeld hozzá egy gyorsbillentyűhöz
- Add hozzá a QuickSlot menühez
Használhatod a mellékelt Vote4BuffButton osztályt is, amely egy mozgatható ikon gombot hoz létre
Kliens újrafordítása
Fordítsd újra a kliens futtatható állományát az új módosításokkal.
Tesztelés
Teszteld az integrációt:
- Jelentkezz be a szerveredre
- Nyisd meg a Vote4Buff ablakot
- Szavazz a platformunkon: https://metin2-toplist.net/vote/en/YOUR_SERVER_ID-server-name/YOUR_ACCOUNT_ID
- Térj vissza a játékba és ellenőrizd a szavazást
- Válassz bónuszcsomagot és győződj meg róla, hogy az effektek alkalmazásra kerülnek
- Ellenőrizd, hogy megkaptad-e a tárgyjutalmakat
A játékosaid mostantól automatikusan szavazhatnak és jutalmat kaphatnak. A Vote4Buff felület megmutatja, mikor szavazhatnak, bónuszcsomagot választhatnak, és visszaszámolót jelenít meg az aktív hatásokhoz.
Előnyök szerveradminoknak
Ingyenes promóció
Az új játékosok többsége toplistákon keresztül talál szervert, így ez létfontosságú marketing eszköz
Egyszerű konfiguráció
Részletes dokumentáció és lépésről lépésre útmutatók teszik gyerekjátékká a beállítást
Programozás nélkül
Egyszerű REST API integrációs folyamat
Optimalizált teljesítmény
A kliens oldali szavazás ellenőrzés minimális szerverterhelést biztosít
Magas megbízhatóság
Éles környezetben bizonyított rendszer beépített csalás elleni védelemmel
Szavazás ellenőrzés
Győződj meg róla, hogy a játékosok valóban szavaztak, mielőtt jutalmat adnál
Előnyök játékosoknak
Hogyan működik a rendszer?
A rendszer tiszta és intuitív folyamatot követ, amit a játékosok könnyen megértenek. A szavazás ellenőrzése az API-nkon keresztül történik, így biztos lehetsz benne, hogy valós szavazásokat hitelesítesz!
Gyors indulási útmutató
Válaszd ki az igényeidnek megfelelő integrációs módszert:
Vote4Buff rendszer
Teljes körű, egyedi játékbeli felületet, WebSocket kommunikációt és automatikus jutalmazást kínáló megoldás.
- Teljes játékbeli felület
- Több bónuszcsomag
- Automatikus tárgyjutalmak
- Valós idejű visszaszámlálók
- 11 nyelvi támogatás
Egyedi API integráció
Építs saját megoldást a REST API-nk segítségével a maximális rugalmasságért.
- Teljes testreszabhatóság
- Saját felhasználói felület
- Egyedi jutalmazási logika
- IP vagy fiók alapú működés
Általános lépések
Regisztráld a szervered
Hozz létre egy fiókot, és add hozzá a szervered a toplistához itt: https://metin2-toplist.net/servers/create
Szerezd meg az API hitelesítő adatokat
A szerver azonosítót és az API tokent a szerver vezérlőpultján találod. Ezek szükségesek a hitelesítéshez.
Válaszd ki az integráció módját
Töltsd le a Vote4Buffot egy kész megoldáshoz, vagy építs egyedi integrációt az API segítségével.
Teszteld és élesítsd
Teszteld alaposan a szavazási rendszert, majd élesítsd az éles szerveren.
API végpont (egyedi implementációkhoz)
Ha a Vote4Buff rendszert használod (ajánlott), akkor ez az API már integálva van! Ez a szakasz azoknak szól, akik saját megoldást szeretnének építeni.
https://metin2-toplist.net/api/check-vote
Szükséges paraméterek
| Paraméter | Típus | Kötelező | Leírás |
|---|---|---|---|
api_token |
string | Igen | A szervered egyedi API tokene |
ip |
string | Opcionális* | A játékos IP címe (IPv4 vagy IPv6) |
account_id |
string | Opcionális* | A játékos fiókazonosítója/felhasználóneve a pontosabb követéshez |
A legjobb eredmény érdekében használd az <code>account_id</code> paramétert a játékosok pontos azonosításához. Az <code>ip</code> kevésbé megbízható, ha a játékosok VPN-t használnak vagy több helyről játszanak.
Szavazási URL formátum
Így irányítsd a játékosokat a szavazáshoz:
https://metin2-toplist.net/vote.{lang}/{server_id}-{server_slug}/{account_id}
Példák:
https://metin2-toplist.net/vote.en/123-awesome-server/PlayerName
https://metin2-toplist.net/vote.de/123-awesome-server/PlayerName
https://metin2-toplist.net/vote.tr/123-awesome-server/PlayerName
Támogatott nyelvek: en, de, es, pl, tr, ro, it, pt, hu, gr, cz
Válasz formátuma
Az API a következő struktúrájú JSON választ adja vissza:
{
"success": true,
"voted": true,
"last_vote": "2025-11-11T14:30:00Z",
"next_vote_in": 0,
"message": "Vote verified successfully"
}
{
"success": true,
"voted": false,
"message": "No recent vote found"
}
{
"success": false,
"message": "Invalid API token"
}
A válasz mezői
| Mező | Típus | Leírás |
|---|---|---|
success |
boolean | Jelzi, hogy az API kérés sikeresen feldolgozásra került-e |
voted |
boolean | Jelzi, hogy található-e érvényes szavazás (csak akkor, ha success=true) |
last_vote |
string | Az utolsó szavazás ISO 8601 időbélyege (csak ha voted=true) |
next_vote_in |
integer | Másodpercek száma a következő engedélyezett szavazásig (csak ha voted=true) |
message |
string | Érthető üzenet, amely leírja az eredményt |
Kódrészletek
PHP példa
<?php
function checkVote($apiToken, $playerIP) {
$url = "https://metin2-toplist.net/api/check-vote";
$params = http_build_query([
'api_token' => $apiToken,
'ip' => $playerIP
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode !== 200) {
return ['success' => false, 'message' => 'API request failed'];
}
return json_decode($response, true);
}
$result = checkVote('YOUR_API_TOKEN', $_SERVER['REMOTE_ADDR']);
if ($result['success'] && $result['voted']) {
echo "Vote verified! Rewarding player...";
}
?>
Python példa
import requests
def check_vote(api_token, player_ip):
url = "https://metin2-toplist.net/api/check-vote"
params = {'api_token': api_token, 'ip': player_ip}
try:
response = requests.get(url, params=params, timeout=10)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
return {'success': False, 'message': f'API request failed: {str(e)}'}
result = check_vote('YOUR_API_TOKEN', '123.456.789.012')
if result.get('success') and result.get('voted'):
print("Vote verified! Rewarding player...")
C++ példa (játékszerverhez)
#include <curl/curl.h>
#include <string>
#include <sstream>
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, void* userp) {
((std::string*)userp)->append((char*)contents, size * nmemb);
return size * nmemb;
}
bool CheckVote(const std::string& apiToken, const std::string& playerIP) {
CURL* curl = curl_easy_init();
if (!curl) return false;
std::string readBuffer;
std::ostringstream url;
url << "https://metin2-toplist.net/api/check-vote"
<< "?api_token=" << apiToken
<< "&ip=" << playerIP;
curl_easy_setopt(curl, CURLOPT_URL, url.str().c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10L);
CURLcode res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
return (res == CURLE_OK) && (readBuffer.find("\"voted\":true") != std::string::npos);
}
void OnPlayerRequestReward(const std::string& playerName, const std::string& playerIP) {
if (CheckVote("YOUR_API_TOKEN", playerIP)) {
GiveItemToPlayer(playerName, REWARD_ITEM_VNUM, REWARD_COUNT);
SendNotice("Vote verified! You received your reward!");
} else {
SendNotice("No valid vote found. Please vote first!");
}
}
JavaScript/Node.js példa
async function checkVote(apiToken, playerIP) {
const url = new URL('https://metin2-toplist.net/api/check-vote');
url.searchParams.append('api_token', apiToken);
url.searchParams.append('ip', playerIP);
try {
const response = await fetch(url, {
method: 'GET',
headers: { 'Accept': 'application/json' }
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
return await response.json();
} catch (error) {
return { success: false, message: error.message };
}
}
checkVote('YOUR_API_TOKEN', '123.456.789.012').then(result => {
if (result.success && result.voted) {
console.log('Vote verified! Rewarding player...');
}
});
Integrációs útmutató
Az API tokent mindig biztonságosan tárold, és soha ne tedd elérhetővé kliens oldalon. Az API hívásokat kizárólag a szervered backendjéről végezd.
1. lépés: Szavazó gomb/parancs létrehozása
Adj hozzá egy szavazó gombot a weboldaladra vagy egy játékbeli parancsot, amely https://metin2-toplist.net/servers/YOUR-SERVER-SLUG címre irányítja a játékosokat.
2. lépés: Szavazás ellenőrzése
Amikor a játékos igényli a jutalmat (weben vagy a játékban), ellenőrizd, hogy szavazott-e:
- Szerezd meg a játékos IP címét
- Küldj kérést a check-vote végpontra
- Dolgozd fel a JSON választ
- Ha
votedértéke true, add oda a jutalmat - Rögzítsd, hogy a jutalom kiosztásra került, így elkerülheted a duplikációt
3. lépés: Jutalmak kezelése
Ajánlott gyakorlatok a jutalmak kezeléséhez:
- Kövesd a kiosztott jutalmakat: Tárold az adatbázisban, mely szavazásokért adtál már jutalmat
- Szavazási várakozás: Tartsd be a 24 órás szavazási időkorlátot
- Hibakezelés: Kezeld finoman az API hibáit, és tájékoztasd a játékosokat
- Naplózás: Jegyezd fel az összes szavazás ellenőrzést későbbi elemzéshez és hibakereséshez
Példa folyamat
Hibaelhárítás
„Invalid API token” hiba
Megoldás: Ellenőrizd, hogy a vezérlőpultról származó megfelelő API tokent használod-e. Győződj meg arról, hogy nincs benne extra szóköz vagy karakter.
A játékos szavazott, mégsem érzékeli a rendszer
Lehetséges okok:
- A játékos VPN-t vagy proxyt használ (nem egyeznek az IP címek)
- A szavazás feldolgozása még nem történt meg (várj 30 másodpercet, majd próbáld újra)
- Hibás IP cím kerül elküldésre az API-nak
- A játékos egy másik szerverre szavazott
API időtúllépés vagy kapcsolat hiba
Megoldás: Győződj meg róla, hogy a szervered képes HTTPS kéréseket indítani. Ellenőrizd a tűzfal beállításokat. Vezess be újrapróbálkozást exponenciális backoff-fal.
A játékosok többször igényelnek jutalmat
Megoldás: Vezess helyi nyilvántartást a jutalmazott szavazásokról. Tárold a szavazás időbélyegét, és egyszer add oda a jutalmat.
Az IPv6 címek nem működnek
Megoldás: Győződj meg róla, hogy a teljes IPv6 címet küldöd el. Az API támogatja az IPv4-et és az IPv6-ot is.
Public Server Listing API (v1)
List, submit, and claim Metin2 servers programmatically. Perfect for other toplists, server management tools, or custom integrations.
https://metin2-toplist.net/api/v1
Rate Limits
| Endpoint | Method | Limit | Auth |
|---|---|---|---|
/api/v1/servers | GET | 60/min | — |
/api/v1/servers/{slug} | GET | 60/min | — |
/api/v1/servers | POST | 3/hour | — |
/api/v1/servers/claim | POST | 10/hour | ✅ |
List Servers
Retrieve a paginated list of active, launched servers. Supports filtering by category and language.
| Parameter | Type | Default | Description |
|---|---|---|---|
category | string | — | Filter by category: oldschool, newschool, fun, pvp, pvm, pve |
language | string | — | Filter by language code: EN, DE, TR, etc. |
sort | string | votes | Sort order: votes, newest, name |
page | integer | 1 | Page number |
per_page | integer | 25 | Results per page (max 50) |
curl -H "Accept: application/json" \
"https://metin2-toplist.net/api/v1/servers?category=pvp&language=EN&per_page=10"
Submit a New Server
Submit a new server listing via the API. The server enters a moderation queue and must be approved before it appears publicly.
All API-submitted servers start as inactive and require manual approval. This prevents spam and ensures listing quality.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✅ | Server name (max 255 chars, must be unique) |
description | string | ✅ | Server description (min 20, max 5000 chars) |
website_url | string | — | Server website URL |
discord_url | string | — | Discord invite URL |
languages | array | ✅ | Language codes, e.g. ["EN", "DE"] (min 1, max 5) |
category | string | — | One of: oldschool, newschool, fun, pvp, pvm, pve |
launch_date | string | — | Future launch date (YYYY-MM-DD) |
owner_email | string | — | Contact email (optional, not shown publicly) |
curl -X POST "https://metin2-toplist.net/api/v1/servers" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"name": "Dragon Kingdom",
"description": "A classic PvP experience with custom dungeons and weekly events.",
"languages": ["EN", "DE"],
"category": "pvp",
"website_url": "https://dragon-kingdom.com",
"discord_url": "https://discord.gg/example"
}'
{
"success": true,
"message": "Server submitted successfully!",
"data": {
"id": 42,
"slug": "dragon-kingdom",
"status": "pending_review"
},
"claim_token": "a1b2c3d4...80 characters",
"note": "Save this token! Use it to claim your listing."
}
Claim Token System
When you submit a server, you receive a unique 80-character claim token. This token lets you link the listing to your account later.
The claim token is shown only once in the API response. Save it immediately — we store only the hash.
Submit
POST your server to /api/v1/servers and save the claim_token from the response.
Register
Create an account and paste the token in the optional "Claim Token" field.
Manage
Your server is now linked to your account with full dashboard access.
Error Codes
| Code | Meaning |
|---|---|
200 | Success |
201 | Server created (pending review) |
401 | Authentication required (claim endpoint) |
404 | Server not found / invalid claim token |
409 | Server already claimed |
410 | Claim token expired |
422 | Validation error / spam rejected |
429 | Rate limit exceeded |
Integration Examples
$response = file_get_contents('https://metin2-toplist.net/api/v1/servers?per_page=10');
$data = json_decode($response, true);
foreach ($data['data'] as $server) {
echo $server['name'] . ' — ' . $server['vote_count'] . ' votes' . PHP_EOL;
}
const res = await fetch('https://metin2-toplist.net/api/v1/servers?category=pvp');
const { data, meta } = await res.json();
data.forEach(server => {
console.log(`${server.name}: ${server.vote_count} votes`);
});
import requests
resp = requests.get('https://metin2-toplist.net/api/v1/servers', params={
'language': 'DE',
'sort': 'newest',
'per_page': 20
})
servers = resp.json()['data']
for s in servers:
print(f"{s['name']} — {s['vote_count']} votes")
Támogatás és erőforrások
Teszteld alaposan az integrációt egy teszt fiókkal, mielőtt élesíted. Kezeld minden szélsőséges esetet és hibát.