Acesta este primul meu sistem mai serios făcut pentru Metin2 și, sincer, are și o valoare personală pentru mine. De mic mi-a plăcut jocul, dar abia acum am revenit la el ca să fac ceva practic și să învăț mai profund cum funcționează engine-ul și sistemele interne.
Weapon Title System este un sistem modular prin care armele pot primi titluri speciale, salvate direct pe item, nu pe vnum. Asta înseamnă că două arme identice pot deveni complet diferite: una normală, iar alta cu titlu propriu, bonusuri și efect vizual unic.
Titlurile se configurează simplu din `weapon_titles.txt`, acceptă orice efect de arme costum:
* nume
* culoare
* cost
* materiale necesare
* până la 3 bonusuri
* efecte `.mse` atașate runtime pe armă
Nu este nevoie de modificări în cod pentru fiecare titlu nou adăugat.
Jucătorul deschide fereastra *Weapon Titling* din inventar, pune arma, alege titlul și îl aplică. După aplicare:
* titlul apare în tooltip
* bonusurile devin active doar cât arma este echipată
* efectul vizual este sincronizat și vizibil pentru toți jucătorii
Sistemul păstrează informațiile prin:
* relog
* trade
* safebox
* warehouse
Totul este posibil deoarece titlul este salvat direct în socketul itemului.
Sistemul funcționează prin extinderea socketurilor itemelor:
* primele 3 socketuri rămân pentru pietre(via Mainline DX9)
* `socket3` este folosit ca `titleID`
Astfel, titlul este legat de instanța exactă a armei, nu de proto sau vnum.
Serverul:
* încarcă definițiile din `weapon_titles.txt`
* validează request-ul venit din client
* scrie `titleID` pe armă
* aplică bonusurile la equip/unequip
Clientul:
* primește `weaponTitleID` prin packeturile de character update
* citește același config
* atașează runtime efectele `.mse` pe weapon bone
Am adăugat și:
* UI custom în inventar
* tooltip custom
* packet client-server dedicat
* salvare DB pentru socketurile extra
* sync automat al configului la repack
Astfel partea de client și server rămâne mereu sincronizată.
* ChatGPT — pentru ideea prorpriu-zisă și structurarea ideii
* Gemini + M2UI Plugin — pentru partea de UI Python
* Gemini — pentru guidance, trasee și explorarea engine-ului jocului
Feedback-ul este binevenit.









