Vrei ca Lupul să lase uneori o licoare sau ca un boss să lase un material de upgrade? Regula asta se scrie, în majoritatea serverelor clasice, în fișierul `mob_drop_item.txt`. În lecție adăugăm un drop nou unui monstru și învățăm cel mai important lucru: numărul pe care îl scrii **nu este procentul**. Cine nu știe asta pune `20` crezând că e 20% și obține de fapt 5%.
mob_drop_item.txt faci o grupă cu Mob (monstrul), Type drop și rânduri cu item, cantitate și șansă. La tipul drop, șansa de bază se calculează ca valoare / 400: 4 = 1%, 20 = 5%, 400 = 100%.Cuvinte pe care le vei întâlni
| Cuvânt | Ce înseamnă |
|---|---|
| Drop | Itemele care cad pe jos când moare un monstru. |
| Mob | Monstru. În fișiere, Mob e urmat de VNUM-ul monstrului. |
| Type | Felul grupei: drop, kill sau limit. Fiecare calculează altfel șansa. |
| Rată de bază | Șansa scrisă în fișier, înainte ca serverul să o ajusteze după nivel și bonusuri. |
Drop de monstru sau conținut de cufăr?
Sunt două lucruri diferite:
mob_drop_item.txtspune ce cade din monstru când moare;special_item_group.txtspune ce iese dintr-un cufăr când îl deschizi (lecția Drop din cufere).
Un monstru poate lăsa un cufăr, iar cufărul poate da premii. Asta facem în lecția următoare. Acum ne ocupăm doar de monstru.
Pasul 1: Află VNUM-ul monstrului și al itemului
Folosim Câinele sălbatic, VNUM 101, și Licoarea Roșie (L), VNUM 27003. Așa sunt în pachetul verificat (mob_names_ro.txt și item_names_ro.txt). La tine pot diferi, deci verifică:
grep -w "^101" /usr/home/game/share/conf/mob_names_ro.txt
grep -w "^27003" /usr/home/game/share/conf/item_names_ro.txtCalea e un exemplu; găsește-o pe a ta cu find. Detalii în lecția Ce este VNUM.
Pasul 2: Găsește fișierul și fă backup
În pachetul verificat, fișierul e în share/locale/english/mob_drop_item.txt. Caută-l pe serverul tău:
find /usr/home -name "mob_drop_item*.txt"Poți vedea mai multe fișiere, de exemplu mob_drop_item.txt.edited sau mob_drop_item_hector.txt (le-am găsit chiar în pachetul verificat). Serverul citește doar mob_drop_item.txt; celelalte sunt copii vechi. Fă backup înainte să editezi:
cp mob_drop_item.txt mob_drop_item.txt.bak-2026-11-02Pasul 3: Cum arată o grupă reală
Iată o grupă din pachetul verificat, pentru Lupul Alpha (103). În original, numele grupei e scris cu litere coreene; aici l-am înlocuit cu unul ușor de citit:
Group LupAlpha
{
Mob 103
Type drop
1 1012 1 0.2
2 4012 1 0.2
3 11402 1 0.2
4 16022 1 0.2
}| Ce vezi | Ce înseamnă |
|---|---|
Group LupAlpha | Numele grupei. Un singur cuvânt, fără spații. |
Mob 103 | Monstrul pentru care se aplică regula. |
Type drop | Tipul grupei. Fiecare rând are șansa lui, independentă. |
Prima coloană (1, 2…) | Numărul rândului, de la 1, fără goluri. |
A doua coloană (1012) | VNUM-ul itemului care cade. |
A treia coloană (1) | Câte bucăți cad. |
A patra coloană (0.2) | Rata de bază, pe scara „din 400”. |
Pasul 4: Ce înseamnă numărul de șansă
Am citit sursa jocului (funcția CreateDropItem din item_manager.cpp). Pentru Type drop, serverul compară valoarea ta cu un număr aleator dintr-o plajă care corespunde lui 400. Deci:
| Scrii în fișier | Rată de bază | Pe înțeles |
|---|---|---|
0.2 | 0,05% | cam 1 din 2.000 de monștri |
4 | 1% | cam 1 din 100 |
20 | 5% | cam 1 din 20 |
40 | 10% | cam 1 din 10 |
200 | 50% | jumătate din monștri |
400 | 100% | la fiecare monstru |
Formula ca să afli ce scrii: procentul dorit x 4. Vrei 3%? Scrii 12. Poți folosi și zecimale, ca 0.2.
De ce „de bază”? Pentru că serverul o ajustează apoi după diferența de nivel dintre jucător și monstru și după bonusuri (evenimente de drop, mănuși, premium). Un jucător mult peste nivelul monstrului primește mult mai puțin. Tot calculul e în lecția Cum calculezi șansele reale.
Pasul 5: Adaugă dropul
Câinele sălbatic (101) nu are nicio grupă în pachetul verificat. Adăugăm una la sfârșitul fișierului: licoarea, câte 1 bucată, cu 5% rată de bază.
Group CaineSalbaticLicoare
{
Mob 101
Type drop
1 27003 1 20
}Dacă monstrul are deja o grupă Type drop, nu face a doua. Adaugă un rând nou în grupa existentă, cu următorul număr liber. În sursa verificată, a doua grupă drop pentru același monstru nu este tratată corect de cod (o scăpare de programare). O grupă per monstru și per tip e regula sigură.
Cel mai sigur mod de a nu strica TAB-urile: copiezi o grupă existentă, o lipești la final și schimbi doar numerele. Vezi Fișiere TXT: taburi și encoding.
Pasul 6: Aplică și verifică
- Compară cu backupul:
diff -u mob_drop_item.txt.bak-2026-11-02 mob_drop_item.txt. Trebuie să vezi doar grupa nouă. - Repornește canalele. Fișierul e citit doar la pornire (vezi Oprire și restart).
- Verifică
syserr. Mesaje precumReadMonsterDropItemGroup : there is no itemsauSyntax errorînseamnă o greșeală în fișier, iar canalul se oprește. - Pe serverul de test, cheamă câțiva monștri cu
/mob 101 10și omoară-i.
Ce ar trebui să vezi: fără erori în syserr, iar după câteva zeci de câini apare din când în când o licoare. Pentru test rapid poți pune temporar 400 (100%), verifici că itemul cade, apoi revii la valoarea dorită.
Atenție la test: folosește un personaj de nivel apropiat de monstru. Un GM de nivel 99 care omoară un câine de nivel 1 are șansa redusă aproape la zero de diferența de nivel.
Greșeli des întâlnite
| Ce vezi | Cauza probabilă | Ce faci |
|---|---|---|
| Itemul cade de 4 ori mai rar decât voiai | Ai scris procentul, nu procent x 4 | Înmulțește cu 4 |
| Nu cade nimic la test | Personajul are nivel mult peste monstru | Testează cu un personaj de nivel apropiat |
| Canalul nu pornește | VNUM greșit sau acoladă lipsă | Citește syserr, pune backupul |
| Schimbarea nu are efect | Ai editat mob_drop_item.txt.edited sau nu ai repornit | Editează fișierul activ și repornește |
| Rândurile de după un gol nu merg | Numerotare 1, 2, 4 | Numerotează fără goluri |
Întrebări frecvente
Pot pune drop pe o piatră Metin?
Da, pietrele au și ele VNUM (de exemplu 8001 în pachetul verificat) și pot avea grupe în mob_drop_item.txt. Verifică întâi ce drop au deja, ca să nu-l dublezi.
Itemul cade pe jos sau în inventar?
La dropul clasic, pe jos, lângă monstru. Itemele date direct în inventar vin din questuri, nu din acest fișier.
Trebuie să modific clientul?
Nu, dacă itemul există deja. Clientul afișează doar ce primește de la server.
Ce urmează
Pune cele două lecții împreună: Cum faci un monstru să lase un cufăr. 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ă.