diff options
author | krz <none@none> | 2009-06-01 20:44:23 +0200 |
---|---|---|
committer | krz <none@none> | 2009-06-01 20:44:23 +0200 |
commit | 38c6880d93327ca18c92b6c03bae6629de8592b3 (patch) | |
tree | 71fdf0d1e21ccd3942fc9c911b2540076f76d4b2 /src | |
parent | 7a06136a741fb9f7eee1f19708a7995c855816dd (diff) |
Detailed log of arena fights and arena team creation.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/ArenaTeam.cpp | 10 | ||||
-rw-r--r-- | src/game/BattleGround.cpp | 4 | ||||
-rw-r--r-- | src/shared/Log.cpp | 23 | ||||
-rw-r--r-- | src/shared/Log.h | 7 | ||||
-rw-r--r-- | src/trinitycore/trinitycore.conf.dist | 5 |
5 files changed, 46 insertions, 3 deletions
diff --git a/src/game/ArenaTeam.cpp b/src/game/ArenaTeam.cpp index 747ad811b85..73d782a3e3c 100644 --- a/src/game/ArenaTeam.cpp +++ b/src/game/ArenaTeam.cpp @@ -74,6 +74,7 @@ bool ArenaTeam::Create(uint64 captainGuid, uint32 type, std::string ArenaTeamNam CharacterDatabase.CommitTransaction(); AddMember(CaptainGuid); + sLog.outArena("New ArenaTeam created [Id: %u] [Type: %u] [Captain GUID: %u]", GetId(), GetType(), GetCaptain()); return true; } @@ -143,6 +144,7 @@ bool ArenaTeam::AddMember(const uint64& PlayerGuid) // hide promote/remove buttons if(CaptainGuid != PlayerGuid) 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; } @@ -249,7 +251,10 @@ void ArenaTeam::SetCaptain(const uint64& guid) // enable remove/promote buttons Player *newcaptain = objmgr.GetPlayer(guid); if(newcaptain) + { 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) @@ -274,8 +279,8 @@ void ArenaTeam::DelMember(uint64 guid) { 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)); } @@ -292,6 +297,9 @@ void ArenaTeam::Disband(WorldSession *session) 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.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 diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp index 695b32fd2df..822606d9a80 100644 --- a/src/game/BattleGround.cpp +++ b/src/game/BattleGround.cpp @@ -516,6 +516,7 @@ void BattleGround::EndBattleGround(uint32 winner) SetArenaTeamRatingChangeForTeam(HORDE, winner_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 { @@ -928,8 +929,9 @@ void BattleGround::StartBattleGround() { ///this method should spawn spirit guides and so on SetStartTime(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) diff --git a/src/shared/Log.cpp b/src/shared/Log.cpp index d042be82b77..46bef6b469b 100644 --- a/src/shared/Log.cpp +++ b/src/shared/Log.cpp @@ -40,7 +40,7 @@ const int LogType_count = int(LogError) +1; Log::Log() : 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(); } @@ -231,6 +231,8 @@ void Log::Initialize() dberLogfile = openLogFile("DBErrorLogFile",NULL,"a"); raLogfile = openLogFile("RaLogFile",NULL,"a"); + arenaLogFile = openLogFile("ArenaLogFile",NULL,"a"); + // Main log file settings m_includeTime = sConfig.GetBoolDefault("LogTime", false); m_logLevel = sConfig.GetIntDefault("LogLevel", 0); @@ -248,6 +250,7 @@ void Log::Initialize() // Char log settings m_charLog_Dump = sConfig.GetBoolDefault("CharLogDump", false); + } FILE* Log::openLogFile(char const* configFileName,char const* configTimeStampFlag, char const* mode) @@ -423,6 +426,24 @@ void Log::outError( const char * err, ... ) 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, ... ) { if( !err ) diff --git a/src/shared/Log.h b/src/shared/Log.h index ab8c24571fb..f81a95661d5 100644 --- a/src/shared/Log.h +++ b/src/shared/Log.h @@ -81,6 +81,10 @@ class Log : public Trinity::Singleton<Log, Trinity::ClassLevelLockable<Log, ZThr if (raLogfile != NULL) fclose(raLogfile); raLogfile = NULL; + + if (arenaLogFile != NULL) + fclose(arenaLogFile); + arenaLogFile = NULL; } public: void Initialize(); @@ -109,6 +113,7 @@ class Log : public Trinity::Singleton<Log, Trinity::ClassLevelLockable<Log, ZThr // any log level void outCharDump( const char * str, uint32 account_id, uint32 guid, const char * name ); void outRALog( const char * str, ... ) ATTR_PRINTF(2,3); + void outArena( const char * str, ... ) ATTR_PRINTF(2,3); void SetLogLevel(char * Level); void SetLogFileLevel(char * Level); void SetColor(bool stdout_stream, Color color); @@ -129,6 +134,7 @@ class Log : public Trinity::Singleton<Log, Trinity::ClassLevelLockable<Log, ZThr FILE* gmLogfile; FILE* charLogfile; FILE* dberLogfile; + FILE* arenaLogFile; // log/console control uint32 m_logLevel; @@ -147,6 +153,7 @@ class Log : public Trinity::Singleton<Log, Trinity::ClassLevelLockable<Log, ZThr // gm log control bool m_gmlog_per_account; + std::string m_gmlog_filename_format; }; diff --git a/src/trinitycore/trinitycore.conf.dist b/src/trinitycore/trinitycore.conf.dist index ce290c796b9..66884c6d85b 100644 --- a/src/trinitycore/trinitycore.conf.dist +++ b/src/trinitycore/trinitycore.conf.dist @@ -299,6 +299,10 @@ AddonChannel = 1 # Default: "Ra.log" # "" - Empty name for disable # +# ArenaLogFile +# Log file of arena fights and arena team creations +# Default: "" - do not create arena log file +# # LogColors # 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, @@ -327,6 +331,7 @@ GmLogFile = "gm_commands.log" GmLogTimestamp = 0 GmLogPerAccount = 0 RaLogFile = "ra_commands.log" +ArenaLogFile = "" LogColors = "" ################################################################################################################### |