Beispiel #1
0
// creating from a charter
void Guild::CreateFromCharter(Charter* pCharter, WorldSession* pTurnIn)
{
	uint32 i;
	m_lock.Acquire();

	m_guildId = objmgr.GenerateGuildId();
	objmgr.AddGuild(this);
	m_guildName = strdup(pCharter->GuildName.c_str());
	m_guildLeader = pCharter->LeaderGuid;
	m_creationTimeStamp = (uint32)UNIXTIME;

	// create the guild in the database
	CreateInDB();

	// rest of the fields have been nulled out, create some default ranks.
	GuildRank* leaderRank = CreateGuildRank("Guild Master", GR_RIGHT_ALL, true);
	CreateGuildRank("Officer", GR_RIGHT_ALL, true);
	CreateGuildRank("Veteran", GR_RIGHT_DEFAULT, false);
	CreateGuildRank("Member", GR_RIGHT_DEFAULT, false);
	GuildRank* defRank = CreateGuildRank("Initiate", GR_RIGHT_DEFAULT, false);

	// turn off command logging, we don't wanna spam the logs
	m_commandLogging = false;

	// add the leader to the guild
	AddGuildMember(pTurnIn->GetPlayer()->getPlayerInfo(), NULL, leaderRank->iId);

	// add all the other people
	for(i = 0; i < pCharter->SignatureCount; ++i)
	{
		PlayerInfo* pi = objmgr.GetPlayerInfo(pCharter->Signatures[i]);
		if(pi)
			AddGuildMember(pi, NULL, defRank->iId);
	}

	// re-enable command logging
	m_commandLogging = true;

	m_lock.Release();
}
Beispiel #2
0
void Guild::AddNewGuildMember(Player *plyr)
{
	PlayerInfo *gMember=objmgr.GetPlayerInfo(plyr->GetGUID());
	gMember->Rank = plyr->GetGuildRank();
	gMember->lastLevel =plyr->getLevel();
	gMember->lastZone =plyr->GetZoneId();
	gMember->publicNote = "";
	gMember->officerNote = "";
	gMember->lastOnline = time(NULL);

	AddGuildMember(gMember);
	sHookInterface.OnGuildJoin(plyr, this);
}