Deci inainte cand dadeam schimba ch nu se intampla nimic, am umblat eu prin cod si acum cand dau pe ch2 ma teleporteaza si zice ca a fost schimbat ch-ul, funtioneaza cum ar trebui dar de fac ch-ul nu se schimba.
Porturile mele sunt:
CH1 - 13000
CH2- 16000
CH3-19000
CH4-21000
Iar codul meu cel nou este:
void CHARACTER::ChannelSwitch(int iNewChannel){
long lAddr;
long lMapIndex;
WORD wPort;
long x = this->GetX();
long y = this->GetY();
if (!CMapLocation::instance().Get(x, y, lMapIndex, lAddr, wPort))
{
return;
}
if(lMapIndex >= 10000){
return;
}
std::map<WORD, int>ch;
for(int i = 0; i < 4; i++){
for(int i2 = 1; i2 < 9; i2++){
ch[100*100 + (i*3000)] = i+1;
}
}
int chan;
if(ch.find(wPort) != ch.end()){
chan = ch[wPort];
}else{return;}
Stop();
Save();
if(GetSectree()){
GetSectree()->RemoveEntity(this);
ViewCleanup();
EncodeRemovePacket(this);
}
Poate sami spuna si mie cineva unde am gresit ?
Am scos funtia "for(int i2 = 1; i2 < 9; i2++)" deoarece eu nu am mai multe Core-uri am doar ch-ul.
Channel switch by VegaS
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 188 vizitatori


