mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-20 17:31:30 +00:00
[Bug Fix] Fix for Discipline Loading from Database causing issues with slot_ids (#3008)
* [Bug Fix] Fix for Discipline Loading from Database causing issues with slot_ids * cleanup per comments
This commit is contained in:
parent
93c79817cd
commit
2f0dbc5d15
@ -13,6 +13,7 @@
|
|||||||
#include "zonedb.h"
|
#include "zonedb.h"
|
||||||
#include "aura.h"
|
#include "aura.h"
|
||||||
#include "../common/repositories/criteria/content_filter_criteria.h"
|
#include "../common/repositories/criteria/content_filter_criteria.h"
|
||||||
|
#include "../common/repositories/character_disciplines_repository.h"
|
||||||
#include "../common/repositories/npc_types_repository.h"
|
#include "../common/repositories/npc_types_repository.h"
|
||||||
|
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
@ -814,22 +815,27 @@ bool ZoneDatabase::LoadCharacterLeadershipAA(uint32 character_id, PlayerProfile_
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool ZoneDatabase::LoadCharacterDisciplines(uint32 character_id, PlayerProfile_Struct* pp){
|
bool ZoneDatabase::LoadCharacterDisciplines(uint32 character_id, PlayerProfile_Struct* pp){
|
||||||
std::string query = StringFormat(
|
|
||||||
"SELECT "
|
|
||||||
"disc_id "
|
|
||||||
"FROM "
|
|
||||||
"`character_disciplines`"
|
|
||||||
"WHERE `id` = %u ORDER BY `slot_id`", character_id);
|
|
||||||
auto results = database.QueryDatabase(query);
|
|
||||||
int i = 0;
|
|
||||||
|
|
||||||
|
auto character_disciplines = CharacterDisciplinesRepository::GetWhere(
|
||||||
|
database, fmt::format(
|
||||||
|
"`id` = {} ORDER BY `slot_id`",
|
||||||
|
character_id
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (character_disciplines.empty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
/* Initialize Disciplines */
|
/* Initialize Disciplines */
|
||||||
memset(pp->disciplines.values, 0, (sizeof(pp->disciplines.values[0]) * MAX_PP_DISCIPLINES));
|
memset(pp->disciplines.values, 0, (sizeof(pp->disciplines.values[0]) * MAX_PP_DISCIPLINES));
|
||||||
for (auto& row = results.begin(); row != results.end(); ++row) {
|
for (auto& row : character_disciplines) {
|
||||||
if (i < MAX_PP_DISCIPLINES)
|
if (i < MAX_PP_DISCIPLINES && IsValidSpell(row.disc_id)) {
|
||||||
pp->disciplines.values[i] = atoi(row[0]);
|
pp->disciplines.values[row.slot_id] = row.disc_id;
|
||||||
++i;
|
}
|
||||||
}
|
++i;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user