Înapoi la blogToate tutorialele Metin2
Tutoriale Metin2 · Lecția 38 din 99

Cum verifici că un item nou merge la trade, depozit, magazin și drop în Metin2

2 noiembrie 2026 6 min de citit

Ai creat un item nou și merge în inventar. Gata? Nu încă. În joc, un item călătorește: e dat la schimb, pus în depozit, vândut la NPC, pus în magazinul personal, aruncat pe jos. Fiecare drum are regulile lui. Un item de eveniment care poate fi vândut între jucători poate strica economia; un item scump care se pierde la mutarea în depozit aduce reclamații. În lecția asta faci o listă cu toate drumurile și le testezi pe rând.

Pe scurt: interdicțiile se pun în coloana ANTI_FLAG din item_proto (ANTI_GIVE, ANTI_SAFEBOX, ANTI_DROP, ANTI_SELL, ANTI_MYSHOP etc.). Faci un tabel cu toate drumurile itemului, testezi fiecare cu două conturi pe serverul de test și verifici cantitatea după fiecare mutare și după relog.

Cuvinte pe care le vei întâlni

CuvântCe înseamnă
Trade (schimb)Fereastra în care doi jucători își dau iteme între ei.
Depozit (safebox)Spațiul de depozitare al contului, de la NPC-ul depozitar.
Magazin personalMagazinul pe care un jucător îl deschide ca să vândă altora.
Mall (depozit item-shop)Depozitul separat în care ajung itemele cumpărate din item-shop.
Dublare (dupe)O greșeală prin care un item apare de două ori. Cel mai periculos bug pentru economie.

Interdicțiile, verificate în sursă

Am căutat fiecare anti-flag în sursa game a pachetului de referință, ca să vedem unde are efect de fapt:

Anti-flagCe blochează (în sursa verificată)
ANTI_GIVESchimbul (trade), aruncarea pe jos, magazinul personal, pierderea la moarte PK
ANTI_DROPAruncarea pe jos
ANTI_SELLVânzarea la magazinul NPC
ANTI_MYSHOPPunerea în magazinul personal
ANTI_SAFEBOXPunerea în depozit
ANTI_STACKStivuirea în teanc
ANTI_PKDROPPierderea itemului la moarte în PvP
ANTI_GET, ANTI_SAVENu am găsit nicio verificare în sursa verificată, deci aici nu au efect

Observă că ANTI_GIVE e „cel mai larg”: blochează aproape orice transfer spre alt jucător. Dacă vrei un item „legat de cont”, el e baza.

Mai există și un flag (nu anti-flag) util: ITEM_IRREMOVABLE, pentru iteme care nu se mai pot scoate odată echipate. Atenție însă: în pachetul verificat, felul în care fișierul TXT traduce numele unor flag-uri nu se potrivește perfect cu codul. Nu te baza pe nume, testează efectul.

La tine poate fi altfel. Pachetele moderne adaugă anti-flag-uri noi (de exemplu pentru sisteme de costume sau schimbare de aspect). Dacă un nume nu există în sursa ta, e ignorat fără eroare.

Un exemplu real: cufărul de începător

În pachetul verificat, Cufărul de începător (VNUM 50187) are în coloana ANTI_FLAG:

text
ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_STACK | ANTI_MYSHOP | ANTI_SAFEBOX

Adică: nu se aruncă, nu se vinde la NPC, nu se dă la schimb, nu se stivuiește, nu se pune în magazinul personal și nu intră în depozit. Rămâne pe personajul care l-a primit. Exact ce vrei pentru un item gratuit de start.

Pasul 1: decide ce vrei, pe hârtie

Pentru itemul tău nou, completează un tabel ca acesta înainte de orice test:

DrumLicoare de eveniment (exemplu)
Trade între jucătoriNu
DepozitDa
Vânzare la NPCDa
Magazin personalNu
Aruncare pe josNu
StivuireDa

Din tabel rezultă anti-flag-urile: ANTI_GIVE | ANTI_MYSHOP | ANTI_DROP. Le scrii în coloana ANTI_FLAG a rândului din item_proto.txt, cum ai învățat în lecția Valorile din item_proto, și repornești serverul de test.

Pasul 2: pregătește testul

  • două conturi de test, A și B, fiecare cu un personaj, pe serverul de test (lecția Mediu de test);
  • un cont GM care creează itemul: /item 95000 10;
  • o foaie cu trei coloane: cantitate înainte, acțiune, cantitate după.

Pasul 3: treci itemul prin fiecare drum

TestCe ar trebui să vezi (pentru exemplul de mai sus)
A pune itemul în trade către BMesaj că itemul nu poate fi dat
A pune itemul în depozit, iese, intră, îl scoateAceeași cantitate, același loc liber
A vinde 1 bucată la NPCPrimește yang, teancul scade cu 1
A încearcă să-l pună în magazinul personalMesaj de refuz, magazinul nu se deschide cu el
A încearcă să-l arunce pe josMesaj că nu se poate arunca
A schimbă canalul, apoi verificăCantitatea e aceeași
A se deconectează și revineCantitatea e aceeași

Ce ar trebui să vezi: fiecare drum permis funcționează, fiecare drum interzis afișează un mesaj și nu consumă și nu mută nimic.

Pasul 4: verifică și în baza de date

Mesajele din chat nu dovedesc că datele s-au salvat. Pe baza de date de test, poți citi unde se află itemul:

sql
SELECT id, owner_id, window, pos, count, vnum FROM item WHERE vnum = 95000;

Coloana window arată locul: INVENTORY, EQUIPMENT, SAFEBOX, MALL și altele. După ce pui itemul în depozit și te reconectezi, ar trebui să-l vezi cu SAFEBOX. Ține minte: serverul salvează cu o mică întârziere, așa că verifică după relog, nu imediat. Doar citești, nu modifici nimic aici (vezi Tabelele player și account).

Pasul 5: nu uita drumurile speciale

În funcție de server, un item mai poate ajunge:

  • în mall, dacă îl livrezi din item-shop (în pachetul verificat, prin tabelul item_award);
  • în recompense de quest sau cufere;
  • pe jos, la moartea în PvP.

Fiecare dintre ele e un drum de testat. Testul complet după un update e descris în lecția Testezi trade, depozit și inventar după update.

Greșeli des întâlnite

  • Scoți ANTI_GIVE de pe un item de item-shop „ca să fie mai prietenos”. Itemul devine marfă de vânzare între jucători. Fă-o doar după ce te gândești la economie și la dublări.
  • Testezi cu un singur cont. Trade-ul și magazinul personal cer doi jucători.
  • Te uiți doar la mesajul din chat. Verifică cantitatea după relog.
  • Testezi pe live. Un item greșit pe live se răspândește în minute.
  • Nume de anti-flag inventat. E ignorat fără eroare; itemul pare protejat, dar nu e.

Întrebări frecvente

Pot permite depozitul, dar nu trade-ul?

Da: pui ANTI_GIVE și nu pui ANTI_SAFEBOX. Depozitul e al contului, deci itemul poate trece între personajele aceluiași cont.

De ce am primit mesaj în coreeană sau semne ciudate la refuz?

Textele mesajelor vin din fișierele de traducere ale serverului. Dacă lipsește traducerea, apare textul original. Nu afectează funcționarea.

Se poate dubla un item prin depozit?

Într-o sursă bine întreținută, nu. Dar dublările apar de obicei exact la mutări rapide, lag sau deconectări. De aceea testezi și deconectarea în mijlocul acțiunilor, mereu pe serverul de test.

Ce urmează

Lecția următoare: Cum testezi un consumabil. 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ă.

DiscordWhatsApp