@@ -734,6 +734,10 @@ void IOLoginDataLoad::loadPlayerPreyClass(std::shared_ptr<Player> player, DBResu
734734 query << " SELECT * FROM `player_prey` WHERE `player_id` = " << player->getGUID ();
735735 if ((result = db.storeQuery (query.str ()))) {
736736 do {
737+ auto selectedRaceId = result->getNumber <uint16_t >(" raceid" );
738+ if (selectedRaceId == 0 ) {
739+ continue ;
740+ }
737741 auto slot = std::make_unique<PreySlot>(static_cast <PreySlot_t>(result->getNumber <uint16_t >(" slot" )));
738742 auto state = static_cast <PreyDataState_t>(result->getNumber <uint16_t >(" state" ));
739743 if (slot->id == PreySlot_Two && state == PreyDataState_Locked) {
@@ -745,7 +749,7 @@ void IOLoginDataLoad::loadPlayerPreyClass(std::shared_ptr<Player> player, DBResu
745749 } else {
746750 slot->state = state;
747751 }
748- slot->selectedRaceId = result-> getNumber < uint16_t >( " raceid " ) ;
752+ slot->selectedRaceId = selectedRaceId ;
749753 slot->option = static_cast <PreyOption_t>(result->getNumber <uint16_t >(" option" ));
750754 slot->bonus = static_cast <PreyBonus_t>(result->getNumber <uint16_t >(" bonus_type" ));
751755 slot->bonusRarity = static_cast <uint8_t >(result->getNumber <uint16_t >(" bonus_rarity" ));
@@ -781,6 +785,10 @@ void IOLoginDataLoad::loadPlayerTaskHuntingClass(std::shared_ptr<Player> player,
781785 query << " SELECT * FROM `player_taskhunt` WHERE `player_id` = " << player->getGUID ();
782786 if ((result = db.storeQuery (query.str ()))) {
783787 do {
788+ auto selectedRaceId = result->getNumber <uint16_t >(" raceid" );
789+ if (selectedRaceId == 0 ) {
790+ continue ;
791+ }
784792 auto slot = std::make_unique<TaskHuntingSlot>(static_cast <PreySlot_t>(result->getNumber <uint16_t >(" slot" )));
785793 auto state = static_cast <PreyTaskDataState_t>(result->getNumber <uint16_t >(" state" ));
786794 if (slot->id == PreySlot_Two && state == PreyTaskDataState_Locked) {
@@ -792,7 +800,7 @@ void IOLoginDataLoad::loadPlayerTaskHuntingClass(std::shared_ptr<Player> player,
792800 } else {
793801 slot->state = state;
794802 }
795- slot->selectedRaceId = result-> getNumber < uint16_t >( " raceid " ) ;
803+ slot->selectedRaceId = selectedRaceId ;
796804 slot->upgrade = result->getNumber <bool >(" upgrade" );
797805 slot->rarity = static_cast <uint8_t >(result->getNumber <uint16_t >(" rarity" ));
798806 slot->currentKills = result->getNumber <uint16_t >(" kills" );
@@ -827,7 +835,7 @@ void IOLoginDataLoad::loadPlayerForgeHistory(std::shared_ptr<Player> player, DBR
827835
828836 std::ostringstream query;
829837 query << " SELECT * FROM `forge_history` WHERE `player_id` = " << player->getGUID ();
830- if (result = Database::getInstance ().storeQuery (query.str ())) {
838+ if (( result = Database::getInstance ().storeQuery (query.str () ))) {
831839 do {
832840 auto actionEnum = magic_enum::enum_value<ForgeAction_t>(result->getNumber <uint16_t >(" action_type" ));
833841 ForgeHistory history;
@@ -853,7 +861,7 @@ void IOLoginDataLoad::loadPlayerBosstiary(std::shared_ptr<Player> player, DBResu
853861
854862 std::ostringstream query;
855863 query << " SELECT * FROM `player_bosstiary` WHERE `player_id` = " << player->getGUID ();
856- if (result = Database::getInstance ().storeQuery (query.str ())) {
864+ if (( result = Database::getInstance ().storeQuery (query.str () ))) {
857865 do {
858866 player->setSlotBossId (1 , result->getNumber <uint16_t >(" bossIdSlotOne" ));
859867 player->setSlotBossId (2 , result->getNumber <uint16_t >(" bossIdSlotTwo" ));
0 commit comments