Detailed log of arena fights and arena team creation.

--HG--
branch : trunk
This commit is contained in:
krz
2009-06-01 20:44:23 +02:00
parent 7a06136a74
commit 38c6880d93
5 changed files with 46 additions and 3 deletions
+9 -1
View File
@@ -74,6 +74,7 @@ bool ArenaTeam::Create(uint64 captainGuid, uint32 type, std::string ArenaTeamNam
CharacterDatabase.CommitTransaction(); CharacterDatabase.CommitTransaction();
AddMember(CaptainGuid); AddMember(CaptainGuid);
sLog.outArena("New ArenaTeam created [Id: %u] [Type: %u] [Captain GUID: %u]", GetId(), GetType(), GetCaptain());
return true; return true;
} }
@@ -143,6 +144,7 @@ bool ArenaTeam::AddMember(const uint64& PlayerGuid)
// hide promote/remove buttons // hide promote/remove buttons
if(CaptainGuid != PlayerGuid) if(CaptainGuid != PlayerGuid)
pl->SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (GetSlot() * 6) + 1, 1); pl->SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (GetSlot() * 6) + 1, 1);
sLog.outArena("Player: %s [GUID: %u] joined arena team type: %u [Id: %u].", pl->GetName(), pl->GetGUID(), GetType(), GetId());
} }
return true; return true;
} }
@@ -249,7 +251,10 @@ void ArenaTeam::SetCaptain(const uint64& guid)
// enable remove/promote buttons // enable remove/promote buttons
Player *newcaptain = objmgr.GetPlayer(guid); Player *newcaptain = objmgr.GetPlayer(guid);
if(newcaptain) if(newcaptain)
{
newcaptain->SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + 1 + (GetSlot() * 6), 0); newcaptain->SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + 1 + (GetSlot() * 6), 0);
sLog.outArena("Player: %s [GUID: %u] promoted player: %s [GUID: %u] to leader of arena team [Id: %u] [Type: %u].", oldcaptain->GetName(), oldcaptain->GetGUID(), newcaptain->GetName(), newcaptain->GetGUID(), GetId(), GetType());
}
} }
void ArenaTeam::DelMember(uint64 guid) void ArenaTeam::DelMember(uint64 guid)
@@ -274,8 +279,8 @@ void ArenaTeam::DelMember(uint64 guid)
{ {
player->SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (GetSlot() * 6) + i, 0); player->SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (GetSlot() * 6) + i, 0);
} }
sLog.outArena("Player: %s [GUID: %u] left arena team type: %u [Id: %u].", player->GetName(), guid, GetType(), GetId());
} }
CharacterDatabase.PExecute("DELETE FROM arena_team_member WHERE arenateamid = '%u' AND guid = '%u'", GetId(), GUID_LOPART(guid)); CharacterDatabase.PExecute("DELETE FROM arena_team_member WHERE arenateamid = '%u' AND guid = '%u'", GetId(), GUID_LOPART(guid));
} }
@@ -292,6 +297,9 @@ void ArenaTeam::Disband(WorldSession *session)
DelMember(members.front().guid); DelMember(members.front().guid);
} }
if(Player *player = session->GetPlayer())
sLog.outArena("Player: %s [GUID: %u] disbanded arena team type: %u [Id: %u].", player->GetName(), player->GetGUID(), GetType(), GetId());
CharacterDatabase.BeginTransaction(); CharacterDatabase.BeginTransaction();
CharacterDatabase.PExecute("DELETE FROM arena_team WHERE arenateamid = '%u'", Id); CharacterDatabase.PExecute("DELETE FROM arena_team WHERE arenateamid = '%u'", Id);
CharacterDatabase.PExecute("DELETE FROM arena_team_member WHERE arenateamid = '%u'", Id); //< this should be alredy done by calling DelMember(memberGuids[j]); for each member CharacterDatabase.PExecute("DELETE FROM arena_team_member WHERE arenateamid = '%u'", Id); //< this should be alredy done by calling DelMember(memberGuids[j]); for each member
+3 -1
View File
@@ -516,6 +516,7 @@ void BattleGround::EndBattleGround(uint32 winner)
SetArenaTeamRatingChangeForTeam(HORDE, winner_change); SetArenaTeamRatingChangeForTeam(HORDE, winner_change);
SetArenaTeamRatingChangeForTeam(ALLIANCE, loser_change); SetArenaTeamRatingChangeForTeam(ALLIANCE, loser_change);
} }
sLog.outArena("Arena match Type: %u for Team1Id: %u - Team2Id: %u ended. WinnerTeamId: %u. RatingChange: %i.", m_ArenaType, m_ArenaTeamIds[BG_TEAM_ALLIANCE], m_ArenaTeamIds[BG_TEAM_HORDE], winner_arena_team->GetId(), winner_change);
} }
else else
{ {
@@ -928,8 +929,9 @@ void BattleGround::StartBattleGround()
{ {
///this method should spawn spirit guides and so on ///this method should spawn spirit guides and so on
SetStartTime(0); SetStartTime(0);
SetLastResurrectTime(0); SetLastResurrectTime(0);
if(m_IsRated)
sLog.outArena("Arena match type: %u for Team1Id: %u - Team2Id: %u started.", m_ArenaType, m_ArenaTeamIds[BG_TEAM_ALLIANCE], m_ArenaTeamIds[BG_TEAM_HORDE]);
} }
void BattleGround::AddPlayer(Player *plr) void BattleGround::AddPlayer(Player *plr)
+22 -1
View File
@@ -40,7 +40,7 @@ const int LogType_count = int(LogError) +1;
Log::Log() : Log::Log() :
raLogfile(NULL), logfile(NULL), gmLogfile(NULL), charLogfile(NULL), raLogfile(NULL), logfile(NULL), gmLogfile(NULL), charLogfile(NULL),
dberLogfile(NULL), m_colored(false), m_includeTime(false), m_gmlog_per_account(false) dberLogfile(NULL), arenaLogFile(NULL), m_colored(false), m_includeTime(false), m_gmlog_per_account(false)
{ {
Initialize(); Initialize();
} }
@@ -231,6 +231,8 @@ void Log::Initialize()
dberLogfile = openLogFile("DBErrorLogFile",NULL,"a"); dberLogfile = openLogFile("DBErrorLogFile",NULL,"a");
raLogfile = openLogFile("RaLogFile",NULL,"a"); raLogfile = openLogFile("RaLogFile",NULL,"a");
arenaLogFile = openLogFile("ArenaLogFile",NULL,"a");
// Main log file settings // Main log file settings
m_includeTime = sConfig.GetBoolDefault("LogTime", false); m_includeTime = sConfig.GetBoolDefault("LogTime", false);
m_logLevel = sConfig.GetIntDefault("LogLevel", 0); m_logLevel = sConfig.GetIntDefault("LogLevel", 0);
@@ -248,6 +250,7 @@ void Log::Initialize()
// Char log settings // Char log settings
m_charLog_Dump = sConfig.GetBoolDefault("CharLogDump", false); m_charLog_Dump = sConfig.GetBoolDefault("CharLogDump", false);
} }
FILE* Log::openLogFile(char const* configFileName,char const* configTimeStampFlag, char const* mode) FILE* Log::openLogFile(char const* configFileName,char const* configTimeStampFlag, char const* mode)
@@ -423,6 +426,24 @@ void Log::outError( const char * err, ... )
fflush(stderr); fflush(stderr);
} }
void Log::outArena( const char * str, ... )
{
if( !str )
return;
if(arenaLogFile)
{
va_list ap;
outTimestamp(arenaLogFile);
va_start(ap, str);
vfprintf(arenaLogFile, str, ap);
fprintf(arenaLogFile, "\n" );
va_end(ap);
fflush(arenaLogFile);
}
fflush(stdout);
}
void Log::outErrorDb( const char * err, ... ) void Log::outErrorDb( const char * err, ... )
{ {
if( !err ) if( !err )
+7
View File
@@ -81,6 +81,10 @@ class Log : public Trinity::Singleton<Log, Trinity::ClassLevelLockable<Log, ZThr
if (raLogfile != NULL) if (raLogfile != NULL)
fclose(raLogfile); fclose(raLogfile);
raLogfile = NULL; raLogfile = NULL;
if (arenaLogFile != NULL)
fclose(arenaLogFile);
arenaLogFile = NULL;
} }
public: public:
void Initialize(); void Initialize();
@@ -109,6 +113,7 @@ class Log : public Trinity::Singleton<Log, Trinity::ClassLevelLockable<Log, ZThr
// any log level // any log level
void outCharDump( const char * str, uint32 account_id, uint32 guid, const char * name ); void outCharDump( const char * str, uint32 account_id, uint32 guid, const char * name );
void outRALog( const char * str, ... ) ATTR_PRINTF(2,3); void outRALog( const char * str, ... ) ATTR_PRINTF(2,3);
void outArena( const char * str, ... ) ATTR_PRINTF(2,3);
void SetLogLevel(char * Level); void SetLogLevel(char * Level);
void SetLogFileLevel(char * Level); void SetLogFileLevel(char * Level);
void SetColor(bool stdout_stream, Color color); void SetColor(bool stdout_stream, Color color);
@@ -129,6 +134,7 @@ class Log : public Trinity::Singleton<Log, Trinity::ClassLevelLockable<Log, ZThr
FILE* gmLogfile; FILE* gmLogfile;
FILE* charLogfile; FILE* charLogfile;
FILE* dberLogfile; FILE* dberLogfile;
FILE* arenaLogFile;
// log/console control // log/console control
uint32 m_logLevel; uint32 m_logLevel;
@@ -147,6 +153,7 @@ class Log : public Trinity::Singleton<Log, Trinity::ClassLevelLockable<Log, ZThr
// gm log control // gm log control
bool m_gmlog_per_account; bool m_gmlog_per_account;
std::string m_gmlog_filename_format; std::string m_gmlog_filename_format;
}; };
+5
View File
@@ -299,6 +299,10 @@ AddonChannel = 1
# Default: "Ra.log" # Default: "Ra.log"
# "" - Empty name for disable # "" - Empty name for disable
# #
# ArenaLogFile
# Log file of arena fights and arena team creations
# Default: "" - do not create arena log file
#
# LogColors # LogColors
# Color for messages (format "normal_color details_color debug_color error_color") # Color for messages (format "normal_color details_color debug_color error_color")
# Colors: 0 - BLACK, 1 - RED, 2 - GREEN, 3 - BROWN, 4 - BLUE, 5 - MAGENTA, 6 - CYAN, 7 - GREY, # Colors: 0 - BLACK, 1 - RED, 2 - GREEN, 3 - BROWN, 4 - BLUE, 5 - MAGENTA, 6 - CYAN, 7 - GREY,
@@ -327,6 +331,7 @@ GmLogFile = "gm_commands.log"
GmLogTimestamp = 0 GmLogTimestamp = 0
GmLogPerAccount = 0 GmLogPerAccount = 0
RaLogFile = "ra_commands.log" RaLogFile = "ra_commands.log"
ArenaLogFile = ""
LogColors = "" LogColors = ""
################################################################################################################### ###################################################################################################################