*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:
*Link download / Code:
Deschide char.cpp si cauta functia:
Cauta inceputul functiei, de exemplu:
Inlocuieste / Adapteaza cu:
Deschide char.cpp si cauta functia:
Cauta:
Adapteaza cu:
Deschide char.h si cauta:
Adauga sub:
Deschide fisierele unde ai sistemul offline shop si cauta zonele unde jucatorul:
Adauga / Adapteaza cu:
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:
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.
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:
- 04-19-2026, 12-11-20.png (533.11 KiB) Vizualizat de 569 ori
Deschide char.cpp si cauta functia:
Cod: Selectaţi tot
void CHARACTER::ChannelSwitch(int iNewChannel)
Cod: Selectaţi tot
void CHARACTER::ChannelSwitch(int iNewChannel){
long lAddr;
long lMapIndex;
WORD wPort;
long x = this->GetX();
long y = this->GetY();
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
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
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;
}
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
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;
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
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
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
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;
}
Acesta este unul dintre cele mai importante fixuri de securitate pentru serverele Metin2 care folosesc channel switcher.




