Jump to content

[PATCH] Ally&Horde in the same group (Updated)


Recommended Posts

Thank you but I already know this "bug". Becouse if an horde player invite an ally player, the ally player becomes an horde player and see enemies the other ally players and friendly the others horde players. The same is for guilds, arena, battlegrounds, etc...

why dont you use the "proper" Horde & Alliance grouping/trade posted by patro(no offence to thorazi)

http://getmangos.eu/community/showpost.php?p=71654&postcount=33

:)

Link to comment
Share on other sites

  • Replies 127
  • Created
  • Last Reply

Top Posters In This Topic

@xzbbzx - if you want to read why thats a proper patch read the old thread here

@Shin Darth - im not trying to hijack your thread and i see your point about just replacing the group.cpp being "easy"...but easier is not always better. the proper patch is working great and still works on current mangos version! also, this one is just as easy to update your core too. after reading the original thread i think you are just not applying the patch correctly. put the group.diff posted above in your mangos folder and use this command

patch -d . -p1 < group.diff

enjoy :)

Link to comment
Share on other sites

Yes, done (on the first post of this topic).

PS: Sorry, at the moment I'm not able to test the latest update, tell me if there are problems or not.

I used that patch (http://getmangos.eu/community/showpost.php?p=54774&postcount=9) before I found this topic...

They changed 6 files, but here is changing only one, it is interesting...

Link to comment
Share on other sites

  • 39 years later...

This is a patch based on the old Thorazi's patch for fix the Grouping/Trade of Alliance and Horde.

Current client version supported: 3.3.2

This is the download of the actually latest version of the file Group.cpp patched:

Download Patched Group.cpp for rev 9582+

You have only to download this file, and paste it in the /src/game/ folder instead of the original file Group.cpp and recompile MaNGOS.

You can also download the Diff file group-trade.patch:

diff --git a/src/game/Group.cpp b/src/game/Group.cpp
index 4090d91..69f6cb2 100644
--- a/src/game/Group.cpp
+++ b/src/game/Group.cpp
@@ -290,6 +290,16 @@ bool Group::AddMember(const uint64 &guid, const char* name)
                    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);
@@ -335,6 +345,12 @@ uint32 Group::RemoveMember(const uint64 &guid, const uint8 &method)
                data << uint64(0) << uint32(0) << uint32(0) << uint64(0);
                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);
        }
@@ -391,6 +407,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

Link to comment
Share on other sites

Thank you but I already know this "bug". Becouse if an horde player invite an ally player, the ally player becomes an horde player and see enemies the other ally players and friendly the others horde players. The same is for guilds, arena, battlegrounds, etc...

Hmm no... The only things are.. for example.. if an ally player invite an horde player, the horde player can use the alliance portals. But if this patch is used only to do instance (and GdR events, why not!) there isn't problems
Link to comment
Share on other sites

why dont you use the "proper" Horde & Alliance grouping/trade posted by patro(no offence to thorazi)

I did not say that I made it, I have only taken this patch and I've updated it becouse it seem to me very useful

I said:

Thorazi has written a patch to fix the Grouping/Trade of Alliance and Horde. And it works fine.

But with the new commits by devs and contributors the file Group.cpp (the only file that this patch modify) was changed.

I have download the latest version of file Group.cpp (the last commit was [8108]) and applied the Thorazi's patch. Also now, the patch works fine.

Why is that patch the "proper" one?

I think this patch is very useful becouse the only file that it modify is Group.cpp and with an only file modified is very easy to update our core.

Link to comment
Share on other sites

  • 2 weeks later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use