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

    Descriere

    Acest fix rezolvă problema de sincronizare a timpului dintre server și clientul Metin2. În mod normal, clientul primește timpul serverului o singură dată, iar eventualele întârzieri ale pachetului pot genera diferențe vizibile în joc.

    Soluția folosește măsurarea periodică a Round Trip Time (RTT) și calculează offset-ul de rețea ținând cont de jumătate din latență, oferind o sincronizare mult mai precisă.

    sincronizare corectă între timpul clientului și serverului;

    reduce diferențele provocate de latență;

    rezolvă probleme precum afișarea affect-urilor mai mult decât durata reală;

    resincronizare periodică automată.

    English Description

    This fix improves time synchronization between the Metin2 server and client. Normally, the client synchronizes its clock using a single server packet, meaning network latency can create an incorrect time offset.

    The system periodically measures the Round Trip Time (RTT) and uses the network delay when calculating the time offset, keeping the client synchronized with the server.

    accurate client-server time synchronization;

    compensates for network latency;

    fixes incorrect affect duration display;

    automatic periodic resynchronization.



    *Link download / Code:

    Server Source

    Deschide service.h si adauga:

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



    Deschide input.h si cauta:

    Cod: Selectaţi tot

    void Refine(LPCHARACTER ch, const char* c_pData);
    Adauga dedesubt:

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



    Deschide input_main.cpp si cauta:

    Cod: Selectaţi tot

    #include "dungeon.h"
    Adauga dedesubt:

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



    Cauta:

    Cod: Selectaţi tot

    case HEADER_CG_REFINE:
    	Refine(ch, c_pData);
    	break;
    Adauga dedesubt:

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



    La finalul fisierului input_main.cpp adauga:

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



    Deschide packet.h si cauta:

    Cod: Selectaţi tot

    HEADER_CG_TIME_SYNC = 0xfc,
    Adauga deasupra:

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



    In acelasi fisier cauta:

    Cod: Selectaţi tot

    HEADER_GC_TIME_SYNC = 0xfc,
    Adauga deasupra:

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



    Cauta:

    Cod: Selectaţi tot

    #pragma pack()
    Adauga deasupra:

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



    Repeta modificarile de mai sus din packet.h si in fisierul corespunzator din Client Source.


    Deschide packet_info.cpp si cauta:

    Cod: Selectaţi tot

    Set(HEADER_CG_STATE_CHECKER, sizeof(BYTE), "ServerStateCheck", false);
    Adauga dedesubt:

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



    Client Source

    Deschide Control.h sau UserInterface/Locale_Inc.h si adauga:

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



    Deschide UserInterface/GameType.cpp si adauga la finalul fisierului:

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



    Deschide UserInterface/GameType.h si adauga la finalul fisierului:

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



    Deschide UserInterface/PythonApplication.cpp si cauta:

    Cod: Selectaţi tot

    #include "PythonCharacterManager.h"
    Adauga dedesubt:

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



    Cauta:

    Cod: Selectaţi tot

    , m_dwBufSleepSkipTime(0)
    Adauga dedesubt:

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



    Cauta functia:

    Cod: Selectaţi tot

    time_t CPythonApplication::GetServerTimeStamp()
    Inlocuieste toata functia cu:

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



    La finalul fisierului UserInterface/PythonApplication.cpp adauga:

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



    Deschide UserInterface/PythonApplication.h si cauta:

    Cod: Selectaţi tot

    int m_iContinuousCursorNum;
    Adauga dedesubt:

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



    Deschide UserInterface/PythonNetworkStream.cpp si cauta:

    Cod: Selectaţi tot

    Set(HEADER_GC_DRAGON_SOUL_REFINE, TPacketType(sizeof(TPacketGCDragonSoulRefine), STATIC_SIZE_PACKET));
    Adauga dedesubt:

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



    Deschide UserInterface/PythonNetworkStream.h si cauta:

    Cod: Selectaţi tot

    void __BettingGuildWar_SetBettingMoney(UINT uBettingMoney);
    Adauga dedesubt:

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



    Deschide UserInterface/PythonNetworkStreamPhaseGame.cpp si cauta:

    Cod: Selectaţi tot

    DWORD dwRecvCount = 0;
    Adauga dedesubt:

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



    La finalul fisierului UserInterface/PythonNetworkStreamPhaseGame.cpp adauga:

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

    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 “FIX-uri”

    Informații

    Utilizatori ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator

    Discord ID copiat: