All pastes #948876 Raw Edit

amki

public diff v1 · immutable
·published 2008-03-19 14:23 UTC
rendered paste body
Index: src/game/MiscHandler.cpp===================================================================--- src/game/MiscHandler.cpp    (Revision 5459)+++ src/game/MiscHandler.cpp    (Arbeitskopie)@@ -582,24 +582,27 @@      if (friendGuid && friendResult==FRIEND_NOT_FOUND)     {-        if( pFriend && pFriend->IsInWorld() && pFriend->IsVisibleGloballyFor(GetPlayer()))+        if(!(pFriend->GetSession()->GetSecurity()>=2 && GetSecurity()<2))         {-            friendResult = FRIEND_ADDED_ONLINE;-            friendArea   = pFriend->GetZoneId();-            friendLevel  = pFriend->getLevel();-            friendClass  = pFriend->getClass();-        }-        else-            friendResult = FRIEND_ADDED_OFFLINE;+            if( pFriend && pFriend->IsInWorld() && pFriend->IsVisibleGloballyFor(GetPlayer()))+            {+                friendResult = FRIEND_ADDED_ONLINE;+                friendArea   = pFriend->GetZoneId();+                friendLevel  = pFriend->getLevel();+                friendClass  = pFriend->getClass();+            }+            else+                friendResult = FRIEND_ADDED_OFFLINE; -        if(!GetPlayer()->AddToFriendList(friendGuid, friendName))-        {-            friendResult = FRIEND_LIST_FULL;-            sLog.outDebug( "WORLD: %s's friend list is full.", GetPlayer()->GetName());+            if(!GetPlayer()->AddToFriendList(friendGuid, friendName))+            {+                friendResult = FRIEND_LIST_FULL;+                sLog.outDebug( "WORLD: %s's friend list is full.", GetPlayer()->GetName());+            }++            sLog.outDebug( "WORLD: %s Guid found '%u' area:%u Level:%u Class:%u.",+                friendName.c_str(), GUID_LOPART(friendGuid), friendArea, friendLevel, friendClass);         }--        sLog.outDebug( "WORLD: %s Guid found '%u' area:%u Level:%u Class:%u.",-            friendName.c_str(), GUID_LOPART(friendGuid), friendArea, friendLevel, friendClass);     }     else if(friendResult==FRIEND_ALREADY)     {@@ -653,6 +656,8 @@     unsigned char ignoreResult = FRIEND_IGNORE_NOT_FOUND;     uint64 IgnoreGuid = 0; +    Player *pIgnorand = NULL;+     recv_data >> IgnoreName;      if(IgnoreName.empty())@@ -665,6 +670,7 @@         GetPlayer()->GetName(), IgnoreName.c_str() );      IgnoreGuid = objmgr.GetPlayerGUIDByName(IgnoreName);+    pIgnorand = ObjectAccessor::FindPlayer(IgnoreGuid);      if(IgnoreGuid)     {@@ -681,9 +687,12 @@      if (IgnoreGuid && ignoreResult == FRIEND_IGNORE_NOT_FOUND)     {-        ignoreResult = FRIEND_IGNORE_ADDED;--        GetPlayer()->AddToIgnoreList(IgnoreGuid, IgnoreName);+        if(!(pIgnorand->GetSession()->GetSecurity()>=2 && GetSecurity()<2))+        {+            ignoreResult = FRIEND_IGNORE_ADDED;+            +            GetPlayer()->AddToIgnoreList(IgnoreGuid, IgnoreName);+        }     }     else if(ignoreResult==FRIEND_IGNORE_ALREADY)     {