diff --git a/changelog.txt b/changelog.txt index 2461b4a36..18e1a738b 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,8 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- +== 10/12/2014 == +Akkadius: Fix for LDON Character Stat load + == 10/11/2014 == demonstar55: Implement Raid MOTD for UF Don't forget 2014_10_11_RaidMOTD.sql! diff --git a/world/adventure.cpp b/world/adventure.cpp index 45dd206e5..5f61aa5e9 100644 --- a/world/adventure.cpp +++ b/world/adventure.cpp @@ -358,6 +358,7 @@ void Adventure::Finished(AdventureWinStatus ws) afe.points = 0; } adventure_manager.AddFinishedEvent(afe); + database.UpdateAdventureStatsEntry(database.GetCharacterID((*iter).c_str()), GetTemplate()->theme, (ws != AWS_Lose) ? true : false); } ++iter; diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 03d44c903..f7864df02 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -1405,6 +1405,7 @@ void Client::Handle_Connect_OP_ZoneEntry(const EQApplicationPacket *app) database.LoadCharacterLanguages(cid, &m_pp); /* Load Character Languages */ database.LoadCharacterLeadershipAA(cid, &m_pp); /* Load Character Leadership AA's */ database.LoadCharacterTribute(cid, &m_pp); /* Load CharacterTribute */ + database.LoadCharacterLDONStats(cid, &m_pp); /* Load Character LDON Stats */ /* Set item material tint */ for (int i = EmuConstants::MATERIAL_BEGIN; i <= EmuConstants::MATERIAL_END; i++) diff --git a/zone/zonedb.cpp b/zone/zonedb.cpp index 1ba36c5fd..ca6576ef9 100644 --- a/zone/zonedb.cpp +++ b/zone/zonedb.cpp @@ -1028,6 +1028,34 @@ bool ZoneDatabase::LoadCharacterLeadershipAA(uint32 character_id, PlayerProfile_ return true; } +bool ZoneDatabase::LoadCharacterLDONStats(uint32 character_id, PlayerProfile_Struct* pp) { + std::string query = StringFormat("SELECT `guk_wins`, `mir_wins`, `mmc_wins`, `ruj_wins`, `tak_wins`, `guk_losses`, " + "`mir_losses`, `mmc_losses`, `ruj_losses`, `tak_losses` FROM `adventure_stats` WHERE player_id=%u", character_id); + + auto results = QueryDatabase(query); + + if (!results.Success()) + return false; + + if (results.RowCount() == 0) + return false; + + auto row = results.begin(); + + pp->ldon_wins_guk = atoi(row[0]); + pp->ldon_wins_mir = atoi(row[1]); + pp->ldon_wins_mmc = atoi(row[2]); + pp->ldon_wins_ruj = atoi(row[3]); + pp->ldon_wins_tak = atoi(row[4]); + pp->ldon_losses_guk = atoi(row[5]); + pp->ldon_losses_mir = atoi(row[6]); + pp->ldon_losses_mmc = atoi(row[7]); + pp->ldon_losses_ruj = atoi(row[8]); + pp->ldon_losses_tak = atoi(row[9]); + + return true; +} + bool ZoneDatabase::LoadCharacterDisciplines(uint32 character_id, PlayerProfile_Struct* pp){ std::string query = StringFormat( "SELECT " diff --git a/zone/zonedb.h b/zone/zonedb.h index 30721de9a..d13e86c30 100644 --- a/zone/zonedb.h +++ b/zone/zonedb.h @@ -264,6 +264,7 @@ public: bool LoadCharacterTribute(uint32 character_id, PlayerProfile_Struct* pp); bool LoadCharacterPotions(uint32 character_id, PlayerProfile_Struct* pp); bool LoadCharacterLeadershipAA(uint32 character_id, PlayerProfile_Struct* pp); + bool LoadCharacterLDONStats(uint32 character_id, PlayerProfile_Struct* pp); /* Character Data Saves */ bool SaveCharacterBindPoint(uint32 character_id, uint32 zone_id, uint32 instance_id, float x, float y, float z, float heading, uint8 is_home);