@@ -734,6 +734,10 @@ void IOLoginDataLoad::loadPlayerPreyClass(std::shared_ptr<Player> player, DBResu
734
734
query << " SELECT * FROM `player_prey` WHERE `player_id` = " << player->getGUID ();
735
735
if ((result = db.storeQuery (query.str ()))) {
736
736
do {
737
+ auto selectedRaceId = result->getNumber <uint16_t >(" raceid" );
738
+ if (selectedRaceId == 0 ) {
739
+ continue ;
740
+ }
737
741
auto slot = std::make_unique<PreySlot>(static_cast <PreySlot_t>(result->getNumber <uint16_t >(" slot" )));
738
742
auto state = static_cast <PreyDataState_t>(result->getNumber <uint16_t >(" state" ));
739
743
if (slot->id == PreySlot_Two && state == PreyDataState_Locked) {
@@ -745,7 +749,7 @@ void IOLoginDataLoad::loadPlayerPreyClass(std::shared_ptr<Player> player, DBResu
745
749
} else {
746
750
slot->state = state;
747
751
}
748
- slot->selectedRaceId = result-> getNumber < uint16_t >( " raceid " ) ;
752
+ slot->selectedRaceId = selectedRaceId ;
749
753
slot->option = static_cast <PreyOption_t>(result->getNumber <uint16_t >(" option" ));
750
754
slot->bonus = static_cast <PreyBonus_t>(result->getNumber <uint16_t >(" bonus_type" ));
751
755
slot->bonusRarity = static_cast <uint8_t >(result->getNumber <uint16_t >(" bonus_rarity" ));
@@ -781,6 +785,10 @@ void IOLoginDataLoad::loadPlayerTaskHuntingClass(std::shared_ptr<Player> player,
781
785
query << " SELECT * FROM `player_taskhunt` WHERE `player_id` = " << player->getGUID ();
782
786
if ((result = db.storeQuery (query.str ()))) {
783
787
do {
788
+ auto selectedRaceId = result->getNumber <uint16_t >(" raceid" );
789
+ if (selectedRaceId == 0 ) {
790
+ continue ;
791
+ }
784
792
auto slot = std::make_unique<TaskHuntingSlot>(static_cast <PreySlot_t>(result->getNumber <uint16_t >(" slot" )));
785
793
auto state = static_cast <PreyTaskDataState_t>(result->getNumber <uint16_t >(" state" ));
786
794
if (slot->id == PreySlot_Two && state == PreyTaskDataState_Locked) {
@@ -792,7 +800,7 @@ void IOLoginDataLoad::loadPlayerTaskHuntingClass(std::shared_ptr<Player> player,
792
800
} else {
793
801
slot->state = state;
794
802
}
795
- slot->selectedRaceId = result-> getNumber < uint16_t >( " raceid " ) ;
803
+ slot->selectedRaceId = selectedRaceId ;
796
804
slot->upgrade = result->getNumber <bool >(" upgrade" );
797
805
slot->rarity = static_cast <uint8_t >(result->getNumber <uint16_t >(" rarity" ));
798
806
slot->currentKills = result->getNumber <uint16_t >(" kills" );
@@ -827,7 +835,7 @@ void IOLoginDataLoad::loadPlayerForgeHistory(std::shared_ptr<Player> player, DBR
827
835
828
836
std::ostringstream query;
829
837
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 () ))) {
831
839
do {
832
840
auto actionEnum = magic_enum::enum_value<ForgeAction_t>(result->getNumber <uint16_t >(" action_type" ));
833
841
ForgeHistory history;
@@ -853,7 +861,7 @@ void IOLoginDataLoad::loadPlayerBosstiary(std::shared_ptr<Player> player, DBResu
853
861
854
862
std::ostringstream query;
855
863
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 () ))) {
857
865
do {
858
866
player->setSlotBossId (1 , result->getNumber <uint16_t >(" bossIdSlotOne" ));
859
867
player->setSlotBossId (2 , result->getNumber <uint16_t >(" bossIdSlotTwo" ));
0 commit comments