Version of Files : XXX
Hello, i use this fonction for switch channel
void CHARACTER::ChangeChannel(DWORD channelId){
long lAddr;
long lMapIndex;
WORD wPort;
long x = this->GetX();
long y = this->GetY();
if (!CMapLocation::instance().Get(x, y, lMapIndex, lAddr, wPort))
{
sys_err("cannot find map location index %d x %d y %d name %s", lMapIndex, x, y, GetName());
return;
}
if(lMapIndex >= 10000){
this->ChatPacket(CHAT_TYPE_INFO, ("You can't change channel in private map."));
return;
}
//this->ChatPacket(CHAT_TYPE_COMMAND, "RefreshChannel %d", channelId);
Stop();
Save();
if(GetSectree()){
GetSectree()->RemoveEntity(this);
ViewCleanup();
EncodeRemovePacket(this);
}
TPacketGCWarp p;
p.bHeader = HEADER_GC_WARP;
p.lX = x;
p.lY = y;
p.lAddr = lAddr;
p.wPort = (wPort - 100*(g_bChannel-1) + 100*(channelId-1));
GetDesc()->Packet(&p, sizeof(TPacketGCWarp));
}
but i cant switch channel, i have timer when if i click, but, after, i retourn in page of login
my port channel 1 16002 my port channel 2 16102
and core 2 of channel 1 16003 core 2 of channel 2 16103
i dont know why and thank you for reply