Administrator
Administrator
  • Mesaje: 4965
    Membru din: 07 Aug 2024, 18:53
  • Reacții: 125352
  • Mesaje utile: 47
  • Status: Pe aici.. 🤠
    Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • *Descriere:

    Metin2 Drop Level Restriction - Limitare Drop dupa Diferenta de Nivel

    Acest sistem limiteaza drop-ul in functie de diferenta de nivel dintre player si mob direct din CreateDropItem. Daca diferenta depaseste limita setata, itemele nu mai intra in calculul de drop.

    - limita configurabila de nivel;
    - functioneaza pentru mobi si metine;
    - boss-ii pot ramane exceptati;
    - nu afecteaza quest drop-urile din when kill.


    *Link download / Code:

    Deschide game/src/item_manager.cpp, in functia ITEM_MANAGER::CreateDropItem, si cauta:

    Cod: Selectaţi tot

    if (!GetDropPct(pkChr, pkKiller, iDeltaPercent, iRandRange))
        return false;

    Adauga dedesubt:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Valoarea MOB_DROP_LEVEL_RANGE reprezinta diferenta maxima de nivel acceptata.

    Pentru o limita de 9 nivele:

    Cod: Selectaţi tot

    static const int MOB_DROP_LEVEL_RANGE = 9;

    Cu aceasta varianta, daca diferenta dintre nivelul mobului si nivelul playerului este mai mare de 9, drop-ul este blocat.


    Boss-ii sunt exceptati prin:

    Cod: Selectaţi tot

    pkChr->GetMobRank() < MOB_RANK_BOSS

    Daca vrei ca metinele sa nu fie afectate de aceasta restrictie, cauta:

    Cod: Selectaţi tot

    (pkChr->IsMonster() || pkChr->IsStone())

    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Daca vrei ca doar playerii de nivel mare sa nu poata farma mobi mult mai mici, dar un player de nivel mic sa poata primi drop de la un mob mai mare, cauta:

    Cod: Selectaţi tot

    if (abs(pkChr->GetLevel() - pkKiller->GetLevel()) > MOB_DROP_LEVEL_RANGE)
        return false;

    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Yang nu este procesat prin CreateDropItem, ci separat prin CHARACTER::RewardGold.

    Daca vrei sa aplici aceeasi restrictie si pentru Yang, trebuie sa adaptezi verificarea la inceputul functiei CHARACTER::RewardGold, unde personajele sunt reprezentate prin this si pkAttacker.


    In party, drop-ul este calculat dupa playerul care a produs cel mai mult damage. Daca acel player depaseste diferenta de nivel configurata, drop-ul poate fi blocat pentru acel mob.


    Drop-urile generate din quest-uri prin:

    Cod: Selectaţi tot

    when kill

    nu sunt afectate de aceasta modificare.


    Nu modifica tabelele de diferenta de nivel din constants doar pentru acest sistem, deoarece acele valori pot fi folosite si pentru EXP sau Yang.


    Nota: item_manager.cpp poate folosi o codare veche in unele surse. Editeaza fisierul cu un editor care pastreaza encoding-ul existent pentru a evita stricarea comentariilor.

    Nou Cum descarc de pe TeraBox?

    Afișează detalii Ascunde detalii
    • Este asemănător cu Mega.nz
    • Instalați-vă clientul lor de Download de aici
    • Faceți-vă un cont (vă puteți loga cu Facebook / Google / etc)
    • Nou Dacă nu vreți să descărcați clientul de Download, folosiți acest site
    • Gata! Acum puteți descărca resursele rapid & simplu.

    De ce folosim TeraBox?

    • Este gratuit
    • Primești 1TB de spațiu gratuit la orice cont creat!
    • Este ușor de folosit și varianta premium este foarte ieftină
    • Fișierele nu sunt șterse niciodată
    TeraBox logo
    See full signature

    Înapoi la “Îmbunătățiri”

    Informații

    Utilizatori ce navighează pe acest forum: devlimit, GroSso și 2 vizitatori

    Discord ID copiat: