mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 01:37:00 +00:00
Merge branch 'master' into 303
This commit is contained in:
commit
518d7f6297
11 changed files with 86 additions and 97 deletions
|
|
@ -143,22 +143,13 @@ bool Guild::AddMember(uint64 plGuid, uint32 plRank)
|
|||
CharacterDatabase.PExecute("INSERT INTO guild_member (guildid,guid,rank,pnote,offnote) VALUES ('%u', '%u', '%u','%s','%s')",
|
||||
Id, GUID_LOPART(plGuid), newmember.RankId, dbPnote.c_str(), dbOFFnote.c_str());
|
||||
|
||||
// If player not in game data in data field will be loaded from guild tables, no need to update it!!
|
||||
if(pl)
|
||||
{
|
||||
pl->SetInGuild(Id);
|
||||
pl->SetRank(newmember.RankId);
|
||||
pl->SetGuildIdInvited(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
Tokens tokens;
|
||||
if(Player::LoadValuesArrayFromDB(tokens,plGuid))
|
||||
{
|
||||
Player::SetUInt32ValueInArray(tokens, PLAYER_GUILDID, Id);
|
||||
Player::SetUInt32ValueInArray(tokens, PLAYER_GUILDRANK, newmember.RankId);
|
||||
Player::SaveValuesArrayInDB(tokens, plGuid);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -439,16 +430,15 @@ void Guild::DelMember(uint64 guid, bool isDisbanding)
|
|||
SetLeader(newLeaderGUID);
|
||||
|
||||
newLeader = objmgr.GetPlayer(newLeaderGUID);
|
||||
|
||||
// If player not online data in data field will be loaded from guild tabs no need to update it !!
|
||||
if(newLeader)
|
||||
{
|
||||
newLeader->SetRank(GR_GUILDMASTER);
|
||||
newLeaderName = newLeader->GetName();
|
||||
}
|
||||
else
|
||||
{
|
||||
Player::SetUInt32ValueInDB(PLAYER_GUILDRANK, GR_GUILDMASTER, newLeaderGUID);
|
||||
objmgr.GetPlayerNameByGUID(newLeaderGUID, newLeaderName);
|
||||
}
|
||||
|
||||
// when leader non-exist (at guild load with deleted leader only) not send broadcasts
|
||||
if(objmgr.GetPlayerNameByGUID(guid, oldLeaderName))
|
||||
|
|
@ -479,21 +469,12 @@ void Guild::DelMember(uint64 guid, bool isDisbanding)
|
|||
members.erase(GUID_LOPART(guid));
|
||||
|
||||
Player *player = objmgr.GetPlayer(guid);
|
||||
// If player not online data in data field will be loaded from guild tabs no need to update it !!
|
||||
if(player)
|
||||
{
|
||||
player->SetInGuild(0);
|
||||
player->SetRank(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
Tokens tokens;
|
||||
if(Player::LoadValuesArrayFromDB(tokens,guid))
|
||||
{
|
||||
Player::SetUInt32ValueInArray(tokens, PLAYER_GUILDID, 0);
|
||||
Player::SetUInt32ValueInArray(tokens, PLAYER_GUILDRANK, GR_GUILDMASTER);
|
||||
Player::SaveValuesArrayInDB(tokens, guid);
|
||||
}
|
||||
}
|
||||
|
||||
CharacterDatabase.PExecute("DELETE FROM guild_member WHERE guid = '%u'", GUID_LOPART(guid));
|
||||
}
|
||||
|
|
@ -505,10 +486,9 @@ void Guild::ChangeRank(uint64 guid, uint32 newRank)
|
|||
itr->second.RankId = newRank;
|
||||
|
||||
Player *player = objmgr.GetPlayer(guid);
|
||||
// If player not online data in data field will be loaded from guild tabs no need to update it !!
|
||||
if(player)
|
||||
player->SetRank(newRank);
|
||||
else
|
||||
Player::SetUInt32ValueInDB(PLAYER_GUILDRANK, newRank, guid);
|
||||
|
||||
CharacterDatabase.PExecute( "UPDATE guild_member SET rank='%u' WHERE guid='%u'", newRank, GUID_LOPART(guid) );
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue