Показать сообщение отдельно
Старый 25.06.2010, 08:27   #7
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Ну вообще этот вариант патча очень старенький... Даже старше, чем тот, что был изначально в теме.
Вот только тот, что бы перестал нормально работать и тоже по страшному глючил.
Вот предыдущий вариант:
PHP код:
diff --git a/src/game/Group.cpp b/src/game/Group.cpp
index 7aa97e1
..6032dfb 100644
--- a/src/game/Group.cpp
+++ b/src/game/Group.cpp
@@ -294,+294,16 @@ bool Group::AddMember(const uint64 &guid, const charname)
                     
player->SendRaidDifficulty(true);
                 }
             }
+       
// Group Interfactions interactions (test)
+            if(sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GROUP))
+            {
+                
Group *group player->GetGroup();
+                if(
Player *leader sObjectMgr.GetPlayer(group->GetLeaderGUID()))
+                {
+                    
player->setFactionForRace(leader->getRace());
+                    
sLog.outDebug"WORLD: Group Interfaction Interactions - Faction changed (AddMember)" );
+                }
+            }
         }
         
player->SetGroupUpdateFlag(GROUP_UPDATE_FULL);
         
UpdatePlayerOutOfRange(player);
@@ -
340,+350,12 @@ uint32 Group::RemoveMember(const uint64 &guid, const uint8 &method)
                 
player->GetSession()->SendPacket(&data);
             }
 
+        
// Restore original faction if needed
+        if(sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GROUP))
+        {
+                
player->setFactionForRace(player->getRace());
+                
sLog.outDebug"WORLD: Group Interfaction Interactions - Restore original faction (RemoveMember)" );
+        }
             
_homebindIfInstance(player);
         }
 
@@ -
395,+411,12 @@ void Group::Disband(bool hideDestroy)
                 
player->SetOriginalGroup(NULL);
             else
                 
player->SetGroup(NULL);
+            
// Restore original faction if needed
+            if(sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_GROUP))
+            {
+                
player->setFactionForRace(player->getRace());
+                
sLog.outDebug"WORLD: Group Interfaction Interactions - Restore original faction (Disband)" );
+            }
         }
 
         
// quest related GO state dependent from raid membership 
Проще и короче, но не учитывает пэтов и тотемы и ещё какие-то проблемы с ним последнее время были.
rsa, можешь предложить что-то стоящее взамен обоих вариантов?
KiriX вне форума   Ответить с цитированием