2 mesaje
Administrator Administrator
  • Mesaje: 4448
  • Reacții: 88666
  • Mesaje utile: 44
  • Status: Pe aici.. 🤠
  • Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Contact:
    *Descriere:

    Acest tutorial iti arata cum sa activezi optimizarea pentru item_proto in sursa Metin2.

    Prin aceasta modificare, serverul va cauta itemele mult mai rapid dupa vnum, folosind unordered_map in locul metodei clasice.

    Este o optimizare utila mai ales in zonele unde se fac foarte multe operatii cu iteme, cum ar fi shop, quest, cube, char_item sau sisteme speciale.


    *Link download / Code:

    Deschide Server/common/CommonDefines.h sau service.h si adauga:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Deschide Server/db/src/ClientManager.h si cauta:
    Code:
    std::map<DWORD, TItemTable *>		m_map_itemTableByVnum;
    
    Inlocuieste cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Deschide Server/game/src/item_manager.h si cauta:
    Code:
    std::vector<TItemTable*> m_vec_item_vnum_range_info;
    
    Adauga sub:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Deschide Server/game/src/item_manager.cpp si cauta in functia:
    Code:
    bool ITEM_MANAGER::Initialize(TItemTable * table, int size)
    
    Cauta:
    Code:
    	m_vec_prototype.resize(size);
    	thecore_memcpy(&m_vec_prototype[0], table, sizeof(TItemTable) * size);
    
    Adauga sub:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    In acelasi fisier, cauta:
    Code:
    	for (int i = 0; i < size; i++)
    	{
    
    Adauga sub:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Deschide Server/game/src/item_manager.cpp si cauta:
    Code:
    TItemTable * ITEM_MANAGER::GetTable(DWORD vnum)
    
    Inlocuieste toata functia cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Aceasta optimizare face ca lookup-ul pentru item_proto sa fie mult mai rapid pentru vnum-urile exacte. Pentru itemele bazate pe range, sistemul pastreaza fallback-ul vechi si adauga si un cache separat, astfel incat performanta sa fie mai buna si in acele cazuri.

    La reload de proto, map-urile sunt golite si refacute, ca sa nu ramana pointeri vechi sau invalizi. Este o optimizare buna pentru sursele Metin2 unde serverul face foarte multe operatii cu iteme.

    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
    Te asteptam si pe serverul de Discord :p - aici ne-am strans toata comunitatea de Metin2 din Romania.
    Link: https://discord.gg/jWxeDSf7HP

    Suntem aproape 2000 membri! - Avem chat activ zilnic, support, cereri, resurse. :D :ymcowboy:





    See full signature
    Membru Avansat Membru Avansat
  • Mesaje: 101
  • Reacții: 1003
  • Mesaje utile: 3
  • Server: None
  • Regat: Jinno
  • [ID Discord]
  • Contact:

    Medalii

    Avatar utilizator
    Membru Avansat
    Membru Avansat

    Mesaj de Vlad »

    "FIX"

    Eroare
    Code:
    boost::unordered_map<DWORD, TItemTable * ...etc etc
    FIX

    Adauga

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


    In ClientManager.h

    Sau daca vrei sa "renunti la boost" (standard C++11)

    In ClientManager.h

    Inlocuieste
    Code:
    boost::unordered_map<DWORD, TItemTable *>
    Cu

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



    Eroare
    Code:
    TR1_NS::unordered_map<DWORD, TItemTable*> m_map ...etc etc
    FIX

    In stdafx.h (game)

    Schimba

    #define TR1_NS std::tr1

    Cu

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


    Si daca e prezent si

    #include <tr1/unordered_map>

    cu

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


    (std::tr1 a fost scos din C++11 si mai noi , mai ales in C++17+ unde tr1 a fost scos de tot)

    🔥 Hai pe Discord! - Chat activ și support direct

    Te așteptăm și pe serverul de Discord - aici ne-am strâns toată comunitatea de Metin2 din România.

    Alătură-te acum!
    Suntem aproape: 
    Robot Discord
    Roboțelu'
    Anunț
    Scrie răspuns

    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: dany8368 și 8 vizitatori

    Discord ID copiat: