|
Отвергнутые Патчи, не принятые разработчиками ScripDev2 |
|
Опции темы | Поиск в этой теме | Опции просмотра |
26.04.2010, 21:34 | #1 |
Пользователь
Регистрация: 05.04.2010
Сообщений: 53
Сказал(а) спасибо: 4
Поблагодарили 24 раз(а) в 15 сообщениях
|
[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) |
27.04.2010, 13:55 | #2 |
Пользователь
Регистрация: 05.04.2010
Сообщений: 53
Сказал(а) спасибо: 4
Поблагодарили 24 раз(а) в 15 сообщениях
|
Код:
----------------------------- src/game/Player.cpp ----------------------------- index 8a53809..8ebf515 100644 @@ -1946,6 +1946,17 @@ void Player::ProcessDelayedOperations() CastSpell(this, 26013, true); // Deserter } + if(m_DelayedOperations & DELAYED_UPDATE_ZONE) + { + UpdateLocalChannels(m_zoneUpdateId); + + // group update + if(GetGroup()) + SetGroupUpdateFlag(GROUP_UPDATE_FLAG_ZONE); + + UpdateZoneDependentAuras(m_zoneUpdateId); + } + //we have executed ALL delayed ops, so clear the flag m_DelayedOperations = 0; } @@ -6422,6 +6441,12 @@ void Player::UpdateZone(uint32 newZone, uint32 newArea) DestroyZoneLimitedItem( true, newZone ); // recent client version not send leave/join channel packets for built-in local channels + if(!IsInWorld()) + { + ScheduleDelayedOperation(DELAYED_UPDATE_ZONE); + return; + } + UpdateLocalChannels( newZone ); // group update ------------------------------ src/game/Player.h ------------------------------ index d84e931..d003853 100644 @@ -740,6 +740,7 @@ enum PlayerDelayedOperations DELAYED_SAVE_PLAYER = 1, DELAYED_RESURRECT_PLAYER = 2, DELAYED_SPELL_CAST_DESERTER = 4, + DELAYED_UPDATE_ZONE = 8, DELAYED_END }; Последний раз редактировалось Chipleo; 27.04.2010 в 13:59. |
Пользователь сказал cпасибо: | Limpnau (12.06.2010) |
28.04.2010, 21:28 | #3 |
Ученый
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
|
Такой баг кажется есть и в мастер ветке.
|
19.12.2010, 14:53 | #4 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Должно было быть поправлено после переноса обновления каналов в SendInitialPacketsAfterAddToMap
__________________
Так как устал объяснять знайте ICQ не пользуюсь |