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

    Acest tutorial iti arata cum sa rezolvi problema de duplicare a itemelor prin sistemul de schimba canalul in Metin2.

    Fixul de baza consta in verificarea CanWarp() inainte de schimbarea canalului, astfel incat jucatorul sa nu poata schimba CH-ul daca are deschise sisteme sensibile precum trade, safebox, shop, cube, acce sau offline shop.

    Este un fix foarte important pentru securitatea serverului.

    *Poze / Video:
    [FIX] Switch Channel Dupe Exploit - Mesaj 1 - Imagine 1
    04-19-2026, 12-11-20.png (533.11 KiB) Vizualizat de 569 ori
    *Link download / Code:

    Deschide char.cpp si cauta functia:

    Cod: Selectaţi tot

    	void CHARACTER::ChannelSwitch(int iNewChannel)
    
    Cauta inceputul functiei, de exemplu:

    Cod: Selectaţi tot

    	void CHARACTER::ChannelSwitch(int iNewChannel){
    		long lAddr;
    		long lMapIndex;
    		WORD wPort;
    		long x = this->GetX();
    		long y = this->GetY();
    
    Inlocuieste / Adapteaza cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Deschide char.cpp si cauta functia:

    Cod: Selectaţi tot

    	bool CHARACTER::CanWarp() const
    
    Cauta:

    Cod: Selectaţi tot

    	bool CHARACTER::CanWarp() const
    	{
    		const int iPulse = thecore_pulse();
    		const int limit_time = PASSES_PER_SEC(g_nPortalLimitTime);
    		if ((iPulse - GetSafeboxLoadTime()) < limit_time)
    			return false;
    		if ((iPulse - GetExchangeTime()) < limit_time)
    			return false;
    		if ((iPulse - GetMyShopTime()) < limit_time)
    			return false;
    		if ((iPulse - GetRefineTime()) < limit_time)
    			return false;
    		if (GetExchange() || GetMyShop() || GetShopOwner() || IsOpenSafebox() || IsCubeOpen())
    			return false;
    		return true;
    	}
    
    Adapteaza cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Deschide char.h si cauta:

    Cod: Selectaţi tot

    	void			ResetStopTime();
    	DWORD			GetStopTime() const;
    
    Adauga sub:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Deschide fisierele unde ai sistemul offline shop si cauta zonele unde jucatorul:

    Cod: Selectaţi tot

    	- deschide shopul
    	- inchide shopul
    	- editeaza shopul
    	- cumpara iteme
    	- intra ca guest in shop / auction
    
    Adauga / Adapteaza cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Explicatie scurta:
    - CanWarp() trebuie sa blocheze schimbarea canalului daca playerul foloseste un sistem sensibil
    - daca ChannelSwitch() nu verifica CanWarp(), pot aparea exploituri de duplicare
    - pentru orice sistem custom instalat, trebuie sa adaugi verificari suplimentare in CanWarp()

    Exemple de sisteme care ar trebui verificate:
    - offline shop
    - acce
    - auction
    - mail / post / warehouse custom
    - alte sisteme care muta, vand, combina sau schimba iteme

    Fixul de baza este acesta:

    Cod: Selectaţi tot

    	if (!CanWarp()){
    		return;
    	}
    
    Dar ca sa fie complet, trebuie sa adaptezi si CanWarp() pentru toate sistemele custom pe care le ai in sursa. Daca nu faci asta, channel switcher-ul poate ramane vulnerabil pe alte sisteme.

    Acesta este unul dintre cele mai importante fixuri de securitate pentru serverele Metin2 care folosesc channel switcher.

    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 2 vizitatori

    Discord ID copiat: