EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   starting bind coords problem.. (https://www.eqemulator.org/forums/showthread.php?t=18038)

Cripp 03-08-2005 01:28 PM

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



All times are GMT -4. The time now is 08:35 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.