Când adaugi un item nou, o hartă sau o fereastră nouă, jucătorii au nevoie și de fișiere noi în client. Nu le poți cere să descarce iar 2 GB. Pentru asta există **autopatcherul**: programul care, la pornire, compară clientul jucătorului cu versiunea de pe serverul tău și descarcă doar ce s-a schimbat. Dacă publici greșit, un jucător poate rămâne cu jumătate de update și un client care nu mai pornește. În această lecție înveți ordinea sigură.
Dacă nu știi încă ce e un autopatcher, citește întâi ce este un autopatcher Metin2.
Cuvinte pe care le vei întâlni
| Cuvânt | Ce înseamnă |
|---|---|
| Patch | Pachetul de fișiere noi sau schimbate dintr-un update. |
| Manifest (lista de fișiere) | Un fișier care spune: „versiunea corectă a clientului are aceste fișiere, cu aceste amprente”. |
| Hash (amprentă) | Un cod calculat din conținutul unui fișier. Dacă se schimbă un singur byte, hash-ul se schimbă. |
| Server web de patch | Locul de unde autopatcherul descarcă fișierele (un site sau un folder pe un server web). |
Pack (.eix / .epk) | Arhivele din folderul pack al clientului, în care stau iconițele, modelele, textele. |
Cum funcționează, pe scurt
Gândește-te la o listă de cumpărături cu poze. Autopatcherul descarcă de pe serverul tău manifestul: lista cu toate fișierele clientului și amprenta (hash-ul) fiecăruia. Apoi se uită la fișierele jucătorului și calculează amprentele lor. Unde amprenta diferă sau fișierul lipsește, descarcă varianta de pe server. Unde e identică, nu face nimic.
Detaliile diferă de la un autopatcher la altul (ce fel de hash folosește, cum se numește lista, dacă are și un număr de versiune), dar ideea e mereu aceasta. Uită-te în documentația autopatcherului tău pentru numele exacte.
Două consecințe importante:
- dacă manifestul spune un hash, iar fișierul de pe server e altul, autopatcherul îl descarcă la nesfârșit sau raportează eroare;
- dacă manifestul nou ajunge pe server înaintea fișierelor noi, jucătorii care pornesc jocul în acel moment primesc un amestec.
Pasul 1: Pregătește fișierele noi într-o copie a clientului
Lucrezi mereu pe o copie a clientului curent, nu pe singurul exemplar. Pune în copie modificările: pack-ul cu iconița nouă, item_proto nou din locale, textele noi. Ce fișiere din client trebuie schimbate la un item nou afli în diferențele client–server la iteme noi.
Fă o listă scrisă cu fiecare fișier schimbat. Exemplu:
UPDATE CLIENT 1.4.2 (merge cu update-ul de server din 2026-11-05)
pack/locale_ro.eix + pack/locale_ro.epk (item_proto, item_list, itemdesc)
pack/icon.eix + pack/icon.epk (iconita item 95000)Un .eix și .epk cu același nume formează o pereche: se schimbă și se publică împreună. Dacă trimiți doar unul, pack-ul devine ilizibil pentru client.
Pasul 2: Testează clientul local
Pornești copia clientului pe calculatorul tău, legată la serverul de test, care are deja partea de server a update-ului. Verifici:
- Clientul pornește fără erori. Dacă se închide, citește
syserr.txtdin folderul clientului. - Itemul nou are iconiță, nume și descriere.
- Lucrurile vechi arată la fel ca înainte.
Abia când clientul local e bun, treci la publicare.
Pasul 3: Generează manifestul
Majoritatea autopatcherelor vin cu o unealtă care parcurge folderul clientului și scrie manifestul cu hash-urile. O rulezi pe copia testată.
Ca să verifici de mână amprenta unui fișier, pe Windows, în PowerShell:
Get-FileHash .\pack\icon.epk -Algorithm SHA256Pe serverul FreeBSD, după ce l-ai urcat:
sha256 /usr/local/www/patch/pack/icon.epkCalea de pe server e doar un exemplu. Cele două amprente trebuie să fie identice. Dacă nu sunt, fișierul s-a stricat la upload (de exemplu WinSCP l-a trimis în mod text în loc de binar).
Pasul 4: Publică întâi într-un loc de test
Dacă serverul tău web permite, urci patch-ul într-un folder separat, de exemplu patch-test, și ai o copie a autopatcherului care citește de acolo. Apoi:
- Iei un client vechi, exact cum îl au jucătorii acum (versiunea 1.4.1).
- Pornești autopatcherul de test.
- Verifici că descarcă doar fișierele din listă, că termină fără erori și că jocul pornește.
- Mai pornești o dată: acum nu trebuie să mai descarce nimic.
Testul cu clientul vechi e cel care contează. Pe calculatorul tău, clientul „merge” pentru că ai deja toate fișierele; un jucător pornește de la versiunea veche.
Pasul 5: Publică pe live, în ordinea corectă
- Păstrează o copie a fișierelor și a manifestului curente (versiunea 1.4.1). Acesta e planul tău de revenire.
- Urcă fișierele noi pe serverul de patch.
- Verifică hash-urile lor pe server.
- La final, înlocuiește manifestul.
Ordinea contează: cât timp manifestul e cel vechi, jucătorii descarcă versiunea veche, care e întreagă. În clipa în care pui manifestul nou, toate fișierele lui sunt deja acolo.
Fă publicarea în fereastra de mentenanță, împreună cu update-ul de server (vezi planul de mentenanță). Un client nou cu un server vechi, sau invers, poate da erori.
Pasul 6: Verifică după publicare
- Rulează autopatcherul real pe un client vechi.
- Intră în joc și verifică itemul nou.
- Urmărește Discordul în prima oră: dacă mai mulți jucători raportează aceeași eroare, oprește-te și compară hash-urile.
Dacă folosești un CDN sau un cache în fața serverului de patch, unii jucători pot primi o vreme fișierele vechi. Golește cache-ul după publicare.
Cum revii dacă ceva nu merge
Pui la loc fișierele vechi din copia de la Pasul 5 și, la final, manifestul vechi. La majoritatea autopatcherelor, clienții care au apucat să ia versiunea nouă sunt readuși la cea veche la următoarea pornire, pentru că amprentele lor nu se mai potrivesc cu lista. Verifică asta pe un client de test. Dacă și serverul a primit update, trebuie să revii și acolo, ca să rămână pereche.
Ce nu pui niciodată pe serverul de patch
- fișierele serverului (
share,CONFIG,item_proto.txtde server); - sursele clientului sau ale serverului;
- parole, backupuri, fișiere
.sql.
Tot ce e pe serverul de patch poate fi descărcat de oricine.
Greșeli des întâlnite
| Greșeală | Ce se întâmplă |
|---|---|
| Urci manifestul înaintea fișierelor | Jucătorii primesc un client pe jumătate |
Urci doar .epk, fără .eix | Pack-ul nu se mai poate citi, clientul se închide |
| Testezi doar pe clientul tău | Nu vezi ce primește un jucător cu versiunea veche |
| Nu păstrezi versiunea veche | Nu ai cum reveni rapid |
| Upload în mod text | Fișierul se strică, hash-ul nu se potrivește |
Întrebări frecvente
Trebuie să schimb și executabilul clientului?
Doar dacă update-ul o cere (de exemplu sursă de client recompilată). E cel mai sensibil fișier: antivirusurile îl pot bloca. Testează-l separat.
Pot folosi Google Drive sau un link de download ca server de patch?
Autopatcherul are nevoie de adrese directe și stabile către fiecare fișier. De obicei se folosește un server web sau un hosting de fișiere statice. Vezi resursele Metin2.
Ce fac cu jucătorii care nu folosesc autopatcherul?
Pune pe site și un client complet actualizat, cu data versiunii în nume.
Ce urmează
Lecția următoare: diferențele client–server la iteme noi. Toate lecțiile sunt în lista tutorialelor Metin2.
Server Metin2 gata de joc
Găzduire Metin2 în România, cu instalare de serverfiles, bază de date MySQL și protecție Anti-DDoS inclusă.