ok on my server my starting zone is sseru...
in the source i have it setup (when creating character) to select from only class and race for starting locations, this works fine.
say i have half of the classes set to bind at location1 and the other half at location2. i die and i reappear near the entrance of sseru (NOT at location1 or location2)
BUT if i gate.. it works fine, bringing me to location1 (or 2, depending what class)
this isnt a big problem, just annoying, and wierd
heres some shit...
Code:
bool Database::GetStartZone(PlayerProfile_Struct* in_pp, CharCreate_Struct* in_cc)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
MYSQL_RES *result;
MYSQL_ROW row = 0;
int rows;
if(!in_pp || !in_cc)
return false;
in_pp->x = in_pp->y = in_pp->z = in_pp->zone_id = 0;
in_pp->bind_x[0] = in_pp->bind_y[0] = in_pp->bind_z[0] = in_pp->bind_zone_id = 0;
RunQuery
(
query,
MakeAnyLenString
(
&query,
"SELECT x,y,z,zone_id,bind_id,bind_x,bind_y,bind_z FROM start_zones "
//"WHERE player_choice=%i AND player_class=%i "
//"AND player_deity=%i AND player_race=%i",
"WHERE player_class=%i AND player_race=%i",
//in_cc->start_zone,
//in_cc->class_,
//in_cc->deity,
//in_cc->race
in_cc->class_,
in_cc->race
),
errbuf,
&result
);
LogFile->write(EQEMuLog::Status, "Start zone query: %s\n", query);
safe_delete_array(query);
if((rows = mysql_num_rows(result)) > 0)
row = mysql_fetch_row(result);
if(row)
{
LogFile->write(EQEMuLog::Status, "Found starting location in start_zones");
in_pp->x = atof(row[0]);
in_pp->y = atof(row[1]);
in_pp->z = atof(row[2]);
in_pp->zone_id = atoi(row[3]);
in_pp->bind_zone_id = atoi(row[4]);
in_pp->bind_x[0] = atoi(row[5]);
in_pp->bind_y[0] = atoi(row[6]);
in_pp->bind_z[0] = atoi(row[7]);
}
else
Code:
Found 0 errors in character creation request
[Status] Start zone query: SELECT x,y,z,zone_id,bind_id,bind_x,bind_y,bind_z FRO
M start_zones WHERE player_class=5 AND player_race=9
[Status] Found starting location in start_zones
Current location: sseru 310.00, 110.00, 116.00
Bind location: sseru 755.00, 554.00, 61.00 <--correct
after death..
Code:
[Status] WARNING: Closest zone point for sseru is 737.714783, you might need to
update your zone_points table if you dont arrive at the right spot.
[Status] Zoning 'Cripp' to: sseru (159) x=-331.000000, y=987.000000, z=59.000000