diff --git a/common/database.cpp b/common/database.cpp index 5c1ec9a6f..a75c65480 100644 --- a/common/database.cpp +++ b/common/database.cpp @@ -972,6 +972,10 @@ bool Database::SetVariable(const std::string varname, const std::string &varvalu // Get zone starting points from DB bool Database::GetSafePoints(const char* zone_short_name, uint32 instance_version, float* safe_x, float* safe_y, float* safe_z, float* safe_heading, int16* min_status, uint8* min_level, char *flag_needed) { + + if (zone_short_name == nullptr) + return false; + std::string query = fmt::format( SQL( SELECT diff --git a/world/worlddb.cpp b/world/worlddb.cpp index 69d15c751..14decb79d 100644 --- a/world/worlddb.cpp +++ b/world/worlddb.cpp @@ -235,7 +235,7 @@ void WorldDatabase::GetCharSelectInfo(uint32 account_id, EQApplicationPacket **o if (atoi(row_d[1]) != 0) { player_profile_struct.binds[4].zone_id = (uint32) atoi(row_d[1]); content_db.GetSafePoints( - ZoneName(player_profile_struct.binds[4].zone_id), + ZoneName(player_profile_struct.binds[4].zone_id, true), 0, &player_profile_struct.binds[4].x, &player_profile_struct.binds[4].y, @@ -252,7 +252,7 @@ void WorldDatabase::GetCharSelectInfo(uint32 account_id, EQApplicationPacket **o float heading = atof(row_d[5]); if (x == 0 && y == 0 && z == 0 && heading == 0) { content_db.GetSafePoints( - ZoneName(player_profile_struct.binds[4].zone_id), + ZoneName(player_profile_struct.binds[4].zone_id, true), 0, &x, &y, @@ -567,7 +567,7 @@ bool WorldDatabase::GetStartZone( p_player_profile_struct->heading == 0 ) { content_db.GetSafePoints( - ZoneName(p_player_profile_struct->zone_id), + ZoneName(p_player_profile_struct->zone_id, true), 0, &p_player_profile_struct->x, &p_player_profile_struct->y, @@ -583,7 +583,7 @@ bool WorldDatabase::GetStartZone( p_player_profile_struct->binds[0].heading == 0 ) { content_db.GetSafePoints( - ZoneName(p_player_profile_struct->binds[0].zone_id), + ZoneName(p_player_profile_struct->binds[0].zone_id, true), 0, &p_player_profile_struct->binds[0].x, &p_player_profile_struct->binds[0].y, diff --git a/zone/zoning.cpp b/zone/zoning.cpp index 854671260..0d088aadf 100644 --- a/zone/zoning.cpp +++ b/zone/zoning.cpp @@ -230,9 +230,9 @@ void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) { break; case GateToBindPoint: target_x = m_pp.binds[0].x; - target_x = m_pp.binds[0].y; - target_x = m_pp.binds[0].z; - target_x = m_pp.binds[0].heading; + target_y = m_pp.binds[0].y; + target_z = m_pp.binds[0].z; + target_heading = m_pp.binds[0].heading; break; case ZoneToBindPoint: target_x = m_pp.binds[0].x;