Jump to content

thorazi

Members
  • Posts

    5
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

thorazi's Achievements

Newbie

Newbie (1/3)

0

Reputation

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