În `mob_drop_item.txt` fiecare grupă are un rând `Type`. Pare un detaliu, dar schimbă complet felul în care serverul citește numerele. Același `25` poate însemna 6,25% la un tip, 25% la altul sau „un bilet din 100” la al treilea. Dacă amesteci tipurile, dropul iese de zeci de ori mai des sau mai rar decât ai vrut. Lecția le ia pe rând, cu exemple reale.
drop = fiecare item are șansa lui, pe scara „din 400”. limit = procent adevărat, doar pentru jucătorii de la un anumit nivel în sus. kill = în medie o dată la Kill_drop monștri se alege un item, după ponderi. La cufere, grupa normală alege un premiu după ponderi, iar Pct dă fiecare premiu separat.Cuvinte pe care le vei întâlni
| Cuvânt | Ce înseamnă |
|---|---|
| Independent | Fiecare rând are zarul lui. Pot cădea mai multe iteme deodată. |
| Pondere | „Bilete la tombolă”: contează doar raportul dintre rânduri. |
| Kill_drop | La tipul kill: la câți monștri, în medie, se activează grupa. |
| level_limit | La tipul limit: nivelul minim al jucătorului. |
De unde știm cum funcționează
Am citit sursa serverului din pachetul de referință (fișierele item_manager_read_tables.cpp, care citește grupele, și item_manager.cpp, funcția CreateDropItem, care dă dropul). Explicațiile de mai jos descriu acest cod. Serverele modificate pot avea alte reguli; la final îți arăt cum verifici.
Type drop: fiecare item cu zarul lui
Group LupAlpha
{
Mob 103
Type drop
1 1012 1 0.2
2 4012 1 0.2
}- Coloane: număr rând, VNUM item, cantitate, șansă.
- Șansa de bază = valoare / 400.
0.2= 0,05%,20= 5%,400= 100%. - Fiecare rând se verifică separat, deci pot cădea mai multe iteme din aceeași grupă.
- Șansa e ajustată după diferența de nivel și după bonusuri (eveniment de drop, premium, mănuși).
Când îl folosești: pentru dropul obișnuit al monștrilor. E tipul cel mai des întâlnit (în pachetul verificat, peste 290 de grupe).
Type limit: procent adevărat, cu prag de nivel
Exemplu real din pachetul verificat:
Group ExempluLimit
{
Type limit
Mob 1401
level_limit 50
1 50723 1 2
2 50067 1 4
3 50068 1 2
}- Coloane: aceleași ca la
drop. level_limit 50: grupa merge doar dacă jucătorul are nivelul 50 sau mai mare. Sub 50, grupa e ignorată.- Șansa e procent adevărat:
2= 2%,4= 4%. Se acceptă și zecimale (0.5= 0,5%). - Diferența importantă: în sursa verificată, această șansă nu e influențată de nivel, evenimente sau premium. E fixă.
Când îl folosești: pentru iteme care nu trebuie să cadă la jucători mici (materiale de nivel mare) sau când vrei o șansă exactă, care nu crește la evenimente. Nu uita rândul level_limit: fără el, serverul refuză grupa și canalul nu pornește. Dacă vrei să meargă la orice nivel, pune level_limit 1.
Type kill: un premiu din când în când
Exemplu real din pachetul verificat:
Group ExempluKill
{
Kill_drop 350
Mob 304
Type kill
1 11232 1 65 10
2 11233 1 35 10
}Aici rândurile au patru valori după număr:
| Coloană | Exemplu | Ce înseamnă |
|---|---|---|
| VNUM | 11232 | Itemul. |
| Cantitate | 1 | Câte bucăți. |
| Pondere | 65 | Biletele la tombolă în interiorul grupei. |
| Șansă de bonus magic | 10 | Procentul ca itemul să apară cu bonusuri (0–100). |
Cum funcționează, pas cu pas:
- La fiecare monstru omorât, grupa are șansa 1 / Kill_drop să se activeze. Cu
350, cam o dată la 350 de monștri (la nivel egal, fără bonusuri). - Dacă s-a activat, se alege un singur item după ponderi:
65 / (65 + 35)= 65% primul, 35% al doilea.
Deci primul item cade în medie cam o dată la 350 / 0,65 ≈ 540 de monștri. La fel ca la drop, și aici contează diferența de nivel și bonusurile.
Atenție: fiecare rând trebuie să aibă toate cele patru valori, altfel serverul poate da eroare la citire. Dacă scrii Kill_drop 0, grupa e sărită.
Când îl folosești: pentru dropuri de tip „un echipament dintr-o listă”: vrei să cadă rar ceva, dar nu contează exact ce.
Un monstru, mai multe tipuri
Un monstru poate avea o grupă drop, una kill și una limit în același timp; fiecare se verifică separat. Dar nu face două grupe de același tip pentru același monstru. În sursa verificată, a doua grupă kill sau limit e ignorată pur și simplu, iar a doua grupă drop nu e tratată corect de cod. Pune toate itemele de un tip într-o singură grupă.
Un al patrulea tip: thiefgloves
Sursa verificată mai recunoaște Type thiefgloves: se scrie ca drop, dar se aplică doar jucătorilor cu premium de drop sau cu mănușa hoțului echipată. Nu l-am găsit folosit în fișierul pachetului. Folosește-l doar dacă îl vezi deja la tine.
Rezumat: ce înseamnă 25 la fiecare tip
| Tip | Ce înseamnă 25 | Afectat de nivel și bonusuri? |
|---|---|---|
drop | 25 / 400 = 6,25% pentru acel item | Da |
limit | 25% pentru acel item (de la level_limit în sus) | Nu |
kill | 25 bilete din totalul grupei | Da (activarea grupei) |
| cufăr normal | 25 bilete din totalul grupei | Nu |
cufăr Pct | 25% pentru acel premiu | Nu |
Cufărele (special_item_group.txt) au fost explicate în lecția Drop din cufere. Acolo mai există Type Quest și type ATTR, folosite de questuri și de sisteme speciale. Nu le atinge ca începător.
Cum verifici pe serverul tău
- Caută ce tipuri apar deja:
grep -i "type" mob_drop_item.txt | sort | uniq -c. - Dacă ai sursa, caută în ea textul
kill_dropșilevel_limit. Dacă le găsești în aceeași funcție ca mai sus, regulile sunt aceleași. - Fă un test cu valori mari pe serverul de test, ca în lecția Cum testezi un drop rar.
Greșeli des întâlnite
- Schimbi doar cuvântul
Type. Numerele trebuie recalculate:20ladrop(5%) devine 20% lalimit. - Uiți
level_limitsauKill_drop. Serverul refuză grupa și canalul nu pornește. - Crezi că
level_limite nivelul monstrului. E nivelul jucătorului care omoară. - Pui doar trei valori pe rând la
kill. Trebuie patru. - Faci două grupe de același tip pentru un monstru. Una dintre ele nu va funcționa cum crezi.
Întrebări frecvente
Pot scrie type cu literă mică?
Da. În pachetul verificat apar ambele forme și serverul le acceptă. Contează valoarea (drop, kill, limit) să fie scrisă corect.
Care tip e cel mai bun pentru un item foarte rar?
limit dacă vrei o șansă exactă și fixă; drop dacă vrei ca evenimentele de drop să o crească.
level_limit poate fi un nivel maxim?
Nu, în sursa verificată e doar minim. Unele servere au modificat asta, deci verifică în sursa ta dacă ai una diferită.
Ce urmează
Pe lângă grupele per monstru există și un drop general, pentru toți monștrii: Dropul comun (common_drop_item.txt). 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ă.