Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Hi mate,
- [char.cpp]
- --------------------------------------------------------------------
- Search:
- m_pkChangeChannelEvent = NULL;
- Replace:
- //m_pkChangeChannelEvent = NULL;
- Search:
- event_cancel(&m_pkChangeChannelEvent);
- Replace:
- //event_cancel(&m_pkChangeChannelEvent);
- Search:
- void CHARACTER::ChangeChannel(DWORD channelId)
- Replace:
- void CHARACTER::ChangeChannel(int channelId)
- --------------------------------------------------------------------
- [char.h]
- --------------------------------------------------------------------
- Search:
- void ChangeChannel(DWORD channelId);
- Replace:
- void ChangeChannel(int channelId);
- Search:
- LPEVENT m_pkChangeChannelEvent;
- Replace:
- //LPEVENT m_pkChangeChannelEvent;
- --------------------------------------------------------------------
- [cmd_general.cpp]
- --------------------------------------------------------------------
- Search:
- extern int g_nPortalLimitTime;
- After this add:
- #ifdef ENABLE_CHANGE_CHANNEL
- int new_ch;
- #endif
- Search this function:
- EVENTINFO(ChangeChannelEventInfo)
- Add to comment this function:
- /*EVENTINFO(ChangeChannelEventInfo)
- {
- DynamicCharacterPtr ch;
- int channel_number;
- int left_second;
- ChangeChannelEventInfo()
- : ch()
- , channel_number( 0 )
- , left_second( 0 )
- {
- }
- };*/
- Search this function:
- EVENTFUNC(change_channel_event)
- Replace:
- EVENTFUNC(channel_event)
- {
- TimedEventInfo * info = dynamic_cast<TimedEventInfo *>( event->info );
- if (info == NULL)
- {
- sys_err("timed_event> <Factor> Null pointer in CHANNEL_EVENT [cmd_general.cpp]");
- return 0;
- }
- LPCHARACTER ch = info->ch;
- if (ch == NULL)
- {
- return 0;
- }
- LPDESC d = ch->GetDesc();
- if (info->left_second <= 0)
- {
- ch->m_pkTimedEvent = NULL;
- TPacketNeedLoginLogInfo acc_info;
- acc_info.dwPlayerID = ch->GetDesc()->GetAccountTable().id;
- db_clientdesc->DBPacket( HEADER_GD_VALID_LOGOUT, 0, &acc_info, sizeof(acc_info) );
- LogManager::instance().DetailLoginLog( false, ch );
- ch->ChangeChannel(new_ch);
- return 0;
- }
- else
- {
- ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Change channel in %d seconds."), info->left_second);
- }
- return PASSES_PER_SEC(1);
- }
- Search:
- ACMD(do_change_channel)
- Replace:
- CMD(do_change_channel)
- {
- char arg1[256];
- one_argument(argument, arg1, sizeof(arg1));
- if (!*arg1)
- return;
- str_to_number(new_ch, arg1);
- if (new_ch < 1 || new_ch > 4)
- return;
- if (new_ch == g_bChannel)
- {
- ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You are already in this channel."));
- return;
- }
- if (!ch->IsPC())
- return;
- if (ch->IsDead() || !ch->CanWarp())
- {
- ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can't do that now. Wait 10 seconds and try again."));
- return;
- }
- if (new_ch == 99 || g_bChannel == 99)
- {
- ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You are already in this channel."));
- return;
- }
- ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("WAIT_NEW_CHANNEL"));
- int nExitLimitTime = 10;
- if (ch->IsHack(false, true, nExitLimitTime) && false == CThreeWayWar::instance().IsSungZiMapIndex(ch->GetMapIndex()) && (!ch->GetWarMap() || ch->GetWarMap()->GetType() == GUILD_WAR_TYPE_FLAG))
- return;
- TimedEventInfo* info = AllocEventInfo<TimedEventInfo>();
- {
- if (ch->IsPosition(POS_FIGHTING))
- info->left_second = 10;
- else
- info->left_second = 3;
- }
- info->ch = ch;
- info->subcmd = subcmd;
- strlcpy(info->szReason, argument, sizeof(info->szReason));
- ch->m_pkTimedEvent = event_create(channel_event, info, 1);
- }
- --------------------------------------------------------------------
- Good luck mate :)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement