Показать сообщение отдельно
Старый 08.01.2011, 11:54   #20
MaS0n
Модератор
 
Регистрация: 09.03.2010
Адрес: dev/null
Сообщений: 126
Сказал(а) спасибо: 44
Поблагодарили 111 раз(а) в 47 сообщениях
MaS0n Скоро придёт к известностиMaS0n Скоро придёт к известности
Отправить сообщение для MaS0n с помощью ICQ
По умолчанию

Я тоже переделал загрузку информации о RAF и вынес некоторые опции в конфиг, так же реализовал истечение времени услуги через 3 месяца, но выложить пока не могу, во-первых еще тестирую, во-вторых - сессия.

Отвечаю на вопросы :

- насчет нерациональности хранения и загрузки информации в курсе, моей целью было заложить основу, работу пакетов, основных аспектов, а уже потом дорабатывать для принятия в офф. репо. Там, кстати выставление дин. флагов тоже нерационально, их надо слать где-то в BuildUpdateBlockForPlayer

- фичи слинкованных аккаунтов и в клиенте работают только в пати, я на всякий случай вкрутил проверки против читеров

- в самом клиенте стоит ограничение в 60, опции отключаются после 60 уровня, мой код - проверки против читеров

- про приглашенного и приглашающего, скорей всего нет, я руководствовался этой статьей - http://eu.blizzard.com/support/artic...rticleId=31211

- его бесполезно использовать, т.к если в пати например у нас 2 друга, при суммоне например через шарик во френд-листе, НЕ ВЫДЕЛЯЯ того, кого хотим суммонить, верный гуид отсылается ОДИН РАЗ через этот пакет (CMSG_SET_SELECTION), после чего тут же идет 0 гуид


ПС : там кстати краш возможен, при выделении моба
Код:
diff --git a/MiscHandler.cpp b/MiscHandler.cpp
index 5be3b1e..8da1110 100644
--- a/MiscHandler.cpp
+++ b/MiscHandler.cpp
@@ -408,6 +408,9 @@ void WorldSession::HandleSetSelectionOpcode( WorldPacket & recv_data )
     if (!unit)
         return;
 
+    if (_player->IsReferAFriendLinked(((Player*)unit)) && !_player->isSummonFriendNeedSelect())
+        _player->SetSummonFriendGuid(guid);
+
     if(FactionTemplateEntry const* factionTemplateEntry = sFactionTemplateStore.LookupEntry(unit->getFaction()))
         _player->GetReputationMgr().SetVisible(factionTemplateEntry);
 }
надо
Код:
diff --git a/MiscHandler.cpp b/MiscHandler.cpp
index 5be3b1e..8da1110 100644
--- a/MiscHandler.cpp
+++ b/MiscHandler.cpp
@@ -408,6 +408,9 @@ void WorldSession::HandleSetSelectionOpcode( WorldPacket & recv_data )
     if (!unit)
         return;
 
+    if (unit->GetTypeId() == TYPEID_PLAYER)
+    {
+        if (_player->IsReferAFriendLinked(((Player*)unit)) && !_player->isSummonFriendNeedSelect())
+            _player->SetSummonFriendGuid(guid);
+    }
+
     if(FactionTemplateEntry const* factionTemplateEntry = sFactionTemplateStore.LookupEntry(unit->getFaction()))
         _player->GetReputationMgr().SetVisible(factionTemplateEntry);
 }
MaS0n вне форума   Ответить с цитированием