Administrator
Administrator
  • Mesaje: 4797
    Membru din: 07 Aug 2024, 21:53
  • Reacții: 115431
  • Mesaje utile: 46
  • Status: Pe aici.. 🤠
    Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Contact:
    *Descriere:

    Metin2 Lazy Item ID - Optimizare consum ID-uri item

    Acest sistem schimba modul in care sunt generate ID-urile pentru iteme. In loc ca fiecare item creat sa primeasca instant un ID, acesta este generat doar cand item-ul chiar are nevoie de el, de exemplu la salvare sau cand intra intr-un slot persistent.

    - reduce consumul inutil de item ID-uri;
    - itemele temporare pot ramane fara ID;
    - elimina ID-urile consumate de drop-uri care dispar sau intra direct intr-un stack;
    - evita pachetele inutile de destroy pentru iteme care nu au fost salvate;
    - nu necesita modificarea tuturor apelurilor existente de GetID.


    *Link download / Code:

    Deschide game/src/char_item.cpp si cauta:
    Code:
    sys_log(LOG_DEBUG, "No empty inventory pid %u size %ud itemid %u", GetPlayerID(), item->GetSize(), item->GetID());
    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Deschide game/src/item.cpp si cauta:
    Code:
    m_dwID = 0;
    Adauga dedesubt:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Cauta functia:
    Code:
    void CItem::SetExchanging(bool bOn)
    Dupa aceasta functie adauga:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Cauta:
    Code:
    LogManager::instance().ItemLog(i, v, 0, GetID(), "SET_SOCKET", "", "", GetOriginalVnum());
    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Cauta functia:
    Code:
    void CItem::ForceFlush()
    Cauta in functie:
    Code:
    db_clientdesc->Packet(&m_dwID, sizeof(DWORD));
    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Deschide game/src/item.h si cauta:
    Code:
    void		SetID(DWORD id)		{ m_dwID = id;	}
    DWORD		GetID() const { return m_dwID; }
    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



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



    Deschide game/src/item_attribute.cpp si cauta:
    Code:
    LOG_LEVEL_CHECK(LOG_LEVEL_MAX, LogManager::instance().ItemLog(i, bType, sValue, GetID(), "SET_ATTR", "", pszIP ? pszIP : "", GetOriginalVnum()));
    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Cauta:
    Code:
    LOG_LEVEL_CHECK(LOG_LEVEL_MAX, LogManager::instance().ItemLog(i, bType, sValue, GetID(), "SET_FORCE_ATTR", "", pszIP ? pszIP : "", GetOriginalVnum()));
    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Deschide game/src/item_manager.cpp si cauta in functia ITEM_MANAGER::CreateItem:
    Code:
    item->SetID(GetNewID());
    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    In aceeasi functie cauta:
    Code:
    if (item->GetID() != 0 && bSkipSave == false)
    	m_map_pkItemByID.emplace(item->GetID(), item);
    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Dupa functia ITEM_MANAGER::CreateItem adauga:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Cauta functia:
    Code:
    void ITEM_MANAGER::DelayedSave(LPITEM item)
    Cauta in functie:
    Code:
    if (item->GetID() != 0)
    	m_set_pkItemForDelayedSave.emplace(item);
    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Cauta functia:
    Code:
    bool ITEM_MANAGER::SaveSingleItem(LPITEM item) const
    Cauta:
    Code:
    const DWORD dwID = item->GetID();
    const DWORD dwOwnerID = item->GetLastOwnerPID();
    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    In aceeasi functie cauta:
    Code:
    sys_log(1, "ITEM_SAVE %s:%d in %s window %d", item->GetName(), item->GetID(), item->GetOwner()->GetName(), item->GetWindow());
    
    TPlayerItem t;
    
    t.id = item->GetID();
    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Cauta functia:
    Code:
    void ITEM_MANAGER::DestroyItem(LPITEM item)
    Cauta:
    Code:
    const DWORD dwID = item->GetID();
    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Deschide game/src/item_manager.h si cauta:
    Code:
    DWORD			GetNewID();
    Adauga dedesubt:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.

    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
    Comunitatea Metin2 Romania este si pe Discord! :ymcowboy:

    2500+ membri • Chat activ zilnic • Support • Cereri & Resurse

    ► discord.gg/jWxeDSf7HP ◄





    See full signature

    Creează-ți un cont sau autentifică-te pentru a participa la discuție

    Trebuie să fii membru pentru a răspunde

    Creează-ți un cont

    Membrii pot crea subiecte noi și pot descărca resurse Metin2 Gratuit!


    Te poți înregistra sau conecta rapid utilizând contul tău de Discord, Github sau Google.

    Înregistrare

    Autentifică-te

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

    Informații

    Utilizatori ce navighează pe acest forum: [A]ivory, Alex Ivan, Brunofufu4, ikillpvp1, proximity_gg, rid, Troublesome și 6 vizitatori

    Discord ID copiat: