Jump to content

thorazi

Members
  • Posts

    5
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by thorazi

  1. Hi !

    I think i found a little problem ... :

    When i use irc.active=0 option (i know it's stupid to use it but just for testing purpose), proc is stuck at 100%.

    I think i found the location of the problem but don't really know what to do to correct it (in IRCClient.cpp l. 98) :

    while(!World::m_stopEvent){};
    

    I think the loop is the cause of the problem.

    Any help will be welcome ^_^ (if this problem is confirmed)

    Cheers !

  2. Try this one for rev 8068+:

    diff --git a/src/game/Group.cpp b/src/game/Group.cpp
    index 0e4cb4e..a625bba 100644
    --- a/src/game/Group.cpp
    +++ b/src/game/Group.cpp
    @@ -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);
            }
    
    @@ -396,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
    

    Branch git://github.com/missproject/mangos.git interfactionpatch updated ;)

  3. Especialy for Shin Darth ;) :

    Try with this one for rev7835 :

    diff --git a/src/game/Group.cpp b/src/game/Group.cpp
    index 484e5fd..b1ecfdc 100644
    --- a/src/game/Group.cpp
    +++ b/src/game/Group.cpp
    @@ -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);
            }
    
    @@ -396,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
    
    

    While this may not crash, there will be other complications.

    There are numerous quest start items that only drop for one faction, as well as many quests inside instance that are only meant for one faction.

    If you start changing players' factions, you're going to mess this up. If you let players change their faction at will (by joining a group of the opposite faction) pretty soon they're going to figure out they can exploit this to access extra quests.

    Not to mention strolling through the opposite faction's capital cities unmolested.

    Totally agree with you, subhuman_bob but it's the only way we found for now (and players appreciate it and not for exploits :lol:).

    I'll be glad if someone (who said Vladimir ?) find another way/tips ...

    That's why this patch has not been submitted to be merge in the core... ;)

  4. This patch allows you to interact with any player horde or alliance as if they were your own faction. Only while in a group or a raid. This means trades, grouping, healing, enchanting in trade window and rez's work. I attempted to change the code so you could turn it on and off based on the mangosd.conf twoside options but for some reason I'm stuck. Anyway, here's the completed patch without conf checks. This patch was originated by False.Genesis. The ability to trade was possible due to help from Prefect, one of my server admin. Onwards to the patch. It is a git patch and my server version is 7464.

    Hi there,

    No offence for Frozen-In-Time, but i released a similar patch for my server [7693] which seem to be fully functional now.

    Just few mofications of the core needed and no crash return on our test server (running for 1 month now). What we did :

    When a group or raid is made, all the members of the group/raid takes the faction of their leader.

    If group is disband or a member is removed, members take back their faction. Easy as 1-2-3.

    Here is my branch : git://github.com/missproject/mangos.git interfactionpatch

    http://github.com/missproject/mangos/tree/interfactionpatch

    For those who wants the little changes :

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

    Again, it's not for blaming or anything else, just if we can share each other knowledge, it could be a better patch.

    Good Job FIT. ^_^

  5. OK, after editing the files in the folders by hand and compiling i receive the following

    ..\\..\\src\\game\\mangchat\\IRCCmde.cpp(361) : error C2039: 'PlaySoundA' : is not a member of 'Player'
           c:\\_mydata\\mangosgit\\src\\game\\Player.h(857) : see declaration of 'Player'
    ..\\..\\src\\game\\mangchat\\IRCCmde.cpp(1454) : error C2039: 'PlaySoundA' : is not a member of 'Player'
           c:\\_mydata\\mangosgit\\src\\game\\Player.h(857) : see declaration of 'Player'
    

    mangos release : MaNGOS/0.13.0-DEV (* * Revision 7537 - *)

    mangchat: release from 03-27-2009 03:20

    Hi Shnappie,

    The PlaySound member has been modified some time ago,

    I made some replacements, this should do the trick :

    IRCCmde(361) : plr->PlayDistanceSound(sndid);

    IRCCmde(1454) : plr->PlayDistanceSound(3081);

    Enjoy ;)

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