Показать сообщение отдельно
Старый 26.04.2010, 21:34   #1
Chipleo
Пользователь
 
Аватар для Chipleo
 
Регистрация: 05.04.2010
Сообщений: 53
Сказал(а) спасибо: 4
Поблагодарили 24 раз(а) в 15 сообщениях
Chipleo На верном пути
По умолчанию [tmp fix] пропажа каналов при телепортах

Код:
@@ -75,11 +75,11 @@ void Channel::Join(uint64 p, const char *pass)
         MakeWrongPassword(&data);
         SendToOne(&data, p);
         return;
     }
 
-    Player *plr = sObjectMgr.GetPlayer(p);
+    Player *plr = HashMapHolder<Player>::Find(p);
 
     if(plr)
     {
         if(HasFlag(CHANNEL_FLAG_LFG) &&
             sWorld.getConfig(CONFIG_BOOL_RESTRICTED_LFG_CHANNEL) && plr->GetSession()->GetSecurity() == SEC_PLAYER &&
@@ -108,11 +108,12 @@ void Channel::Join(uint64 p, const char *pass)
     pinfo.player = p;
     pinfo.flags = 0;
     players[p] = pinfo;
 
     MakeYouJoined(&data);
-    SendToOne(&data, p);
+    if (plr) 
+		plr->GetSession()->SendPacket(&data); 
     JoinNotify(p);
 
     // if no owner first logged will become
     if(!IsConstant() && !m_ownerGUID)
когда игрок заходит в инст, он пропадает из каналов General,... такое же случается при гм командах дальних телепортов. Происходит изза того что на время перемещения игрок не в мире, поетому часть кода не работает.
Chipleo вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
Lightunit (27.04.2010), Limpnau (12.06.2010), Vladimir (19.12.2010)