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:
Code:
void CHARACTER::ChannelSwitch(int iNewChannel)
Code:
void CHARACTER::ChannelSwitch(int iNewChannel){
long lAddr;
long lMapIndex;
WORD wPort;
long x = this->GetX();
long y = this->GetY();
Deschide char.cpp si cauta functia:
Code:
bool CHARACTER::CanWarp() const
Code:
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;
}
Deschide char.h si cauta:
Code:
void ResetStopTime();
DWORD GetStopTime() const;
Deschide fisierele unde ai sistemul offline shop si cauta zonele unde jucatorul:
Code:
- deschide shopul
- inchide shopul
- editeaza shopul
- cumpara iteme
- intra ca guest in shop / auction
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:
Code:
if (!CanWarp()){
return;
}
Acesta este unul dintre cele mai importante fixuri de securitate pentru serverele Metin2 care folosesc channel switcher.


la acest mesaj și conținutul se va afișa automat.


