View Single Post
  #1  
Old 03-08-2005, 01:28 PM
Cripp's Avatar
Cripp
Discordant
 
Join Date: Oct 2003
Location: The Shire
Posts: 474
Default starting bind coords problem..

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
__________________
Nug Blazers - ServerOP / founder
^^comming... later!

www.nugblazers.com
Reply With Quote