Code:
cmd.cp:
after:
ACMD(do_warp);
add:
ACMD(do_channel_switch);
after:
{ "mall_close", do_mall_close, 0, POS_DEAD, GM_PLAYER },
add:
{ "channel", do_channel_switch, 0, POS_DEAD, GM_PLAYER },
cmd_general.cpp:
after:
ACMD(do_set_run_mode)
{
ch->SetNowWalking(false);
ch->SetWalking(false);
}
add:
ACMD(do_channel_switch)
{
char arg1[256];
one_argument(argument, arg1, sizeof(arg1));
if (!*arg1)
return;
int new_ch;
str_to_number(new_ch, arg1);
if( new_ch <1 || new_ch >4) // REPLACE 2 WITH YOUR MAX_CHANNEL
return;
if (!ch->IsPC())
return;
ch->ChannelSwitch(new_ch);
}
char.h:
after:
void StartWarpNPCEvent();
add:
void ChannelSwitch(int new_ch);
char.cpp:
after:
EVENTFUNC(warp_npc_event)
{
char_event_info* info = dynamic_cast<char_event_info*>( event->info );
if ( info == NULL )
{
sys_err( "warp_npc_event> <Factor> Null pointer" );
return 0;
}
LPCHARACTER ch = info->ch;
if (ch == NULL) { // <Factor>
return 0;
}
if (!ch->GetSectree())
{
ch->m_pkWarpNPCEvent = NULL;
return 0;
}
FuncCheckWarp f(ch);
if (f.Valid())
ch->GetSectree()->ForEachAround(f);
return passes_per_sec / 2;
}
add:
void CHARACTER::ChannelSwitch(int new_ch){
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){
return;
}
std::map<WORD, int>micha;
for(int i = 0; i < 4; i++){ //replace with maximum channels -1 actual 1300x - 1330x
for(int i2 = 2; i2 < 9; i2++){ //replace with your core values actual 13x02 - 13x08
micha[13*1000 + i*100 + i2] = i+1;
}
}
//micha[13002] = 1;
int chan;
if(micha.find(wPort) != micha.end()){
chan = micha[wPort];
}else{return;}
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*(chan-1) + 100*(new_ch-1));
GetDesc()->Packet(&p, sizeof(TPacketGCWarp));
}
Edit :
ch1:
13002 - 13008
ch2:
13102 - 13108
ch3:
13202 - 13208
ch4:
13302 - 13308 with your ports.
Py script + how to in description
have fun with it.
Mega Download.
Last edited: