Jump to content

Shin Darth

Members
  • Posts

    141
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by Shin Darth

  1. EDIT: In the original patch written by Thorazi for rev 7693, there wasn't the empty white space that was in my old update:

    ------------------------------ src/game/Group.cpp ------------------------------
    index e6e01aa..1e70bc5 100644
    @@ -296,6 +296,16 @@ bool Group::AddMember(const uint64 &guid, const char* name)
                    player->SetDifficulty(m_difficulty);
                    player->SendDungeonDifficulty(true);
                }
    +            // Group Interfactions interactions (test)
    +            if(sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP))
    +            {
    +                Group *group = player->GetGroup();
    +                if(Player *leader = objmgr.GetPlayer(group->GetLeaderGUID()))
    +                {
    +                    player->setFactionForRace(leader->getRace());
    +                    sLog.outDebug( "WORLD: Group Interfaction Interactions - Faction changed (AddMember)" );
    +                }
    +            }            
            }
            player->SetGroupUpdateFlag(GROUP_UPDATE_FULL);
            UpdatePlayerOutOfRange(player);
    @@ -340,7 +350,12 @@ uint32 Group::RemoveMember(const uint64 &guid, const uint8 &method)
                    data << uint64(0) << uint64(0) << uint64(0);
                    player->GetSession()->SendPacket(&data);
                }
    -
    +            // Restore original faction if needed
    +            if(sWorld.getConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP))
    +            {
    +                player->setFactionForRace(player->getRace());
    +                sLog.outDebug( "WORLD: Group Interfaction Interactions - Restore original faction (RemoveMember)" );
    +            }
                _homebindIfInstance(player);
            }
    
    @@ -411,6 +411,12 @@ void Group::Disband(bool hideDestroy)
                    player->SetOriginalGroup(NULL);
                else
                    player->SetGroup(NULL);
    +            // Restore original faction if needed
    +            if(sWorld.getConfig(CONFIG_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

    This new one is not working on Linux. For example it says corrupt line 60 and line 20 something has a trailing white space. The trailing i can handle, but the corrupt part no. Older version had some 10 more lines like this:

    Code:

    @@ -1130,10 +1151,11 @@ bool Group::_removeMember(const uint64 &guid)

    //we can remove player who is in battleground from his original group

    if( player->GetOriginalGroup() == this )

    player->SetOriginalGroup(NULL);

    else

    player->SetGroup(NULL);

    +

    }

    }

    _removeRolls(guid);

    So this empy line was only my mistake that I have cleaned during the last patch-update.

    PS: At the moment I haven't my portable with Linux, but I tested the latest patch-update and it works perfect on Windows XP.

  2. 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.

  3. 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
  4. 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

  5. I use this patch in my server since 2-3 days and all work very well. The player are happy and having fun.

    Thank you thorazi.

    Please someone help me! With 8052 this patch no longer works, but the latest modify of the file Group.cpp (wich is the only file that the patch modify) was on 7918 and in this rev the patch worked, why now it doesn't work? the file group.cpp was not modified!

    sorry my english

×
×
  • 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