PDA

View Full Version : Fixed "start_zones"


Avatarius
11-08-2003, 09:45 AM
Hi,

if not already done, i've fixed the source code for "Start_zones and BindPoints". I've testet it for example with "all" Human Wizards possibilities and it works 100%

so if any of the developers wants to save time, i would be glad to give out the code fixes....

Avatarius


(bad english....i know :)

PS: just forgot....it's for the newest CVS version of EQEmu

Trumpcard
11-08-2003, 11:46 AM
Post the code diffs in this thread and we'll take a look at it..

Thanks

Avatarius
11-08-2003, 12:22 PM
CVS (Original) database.cpp -> Line 12815

if (RunQuery(query, MakeAnyLenString(&query, "SELECT x,y,z,zone_id FROM start_zones WHERE player_choice=%i and player_class=%i and player_deity=%i and player_race=%i", in_cc->start_zone, in_cc->class_, in_cc->deity, in_cc->race), errbuf, &result)) {


CVS (Original) databse.cpp -> Line 12819

if (mysql_num_rows(result) == 4) {

row = mysql_fetch_row(result);

in_pp->x = atoi(row[0]);

in_pp->y = atoi(row[1]);

in_pp->z = atoi(row[2]);

in_pp->zone_id = atoi(row[3]);

mysql_free_result(result);

return true;

}


My suggestion:

if (RunQuery(query, MakeAnyLenString(&query, "SELECT x,y,z,zone_id,bind_id FROM start_zones WHERE player_choice=%i and player_class=%i and player_deity=%i and player_race=%i", in_cc->start_zone, in_cc->class_, in_cc->deity, in_cc->race), errbuf, &result)) {

safe_delete_array(query);

if (mysql_num_rows(result) != 0) {

row = mysql_fetch_row(result);

in_pp->y = atoi(row[0]);

in_pp->x = atoi(row[1]);

in_pp->z = atoi(row[2]);

in_pp->zone_id = atoi(row[3]);

in_pp->bind_zone_id = atoi(row[4]);

mysql_free_result(result);

return true;

}



MYSQL Table for "start_zones" must be changed also:

CREATE TABLE start_zones (
x float NOT NULL default '0',
y float NOT NULL default '0',
z float NOT NULL default '0',
zone_id int(4) NOT NULL default '0',
bind_id int(4) NOT NULL default '0',
player_choice int(2) NOT NULL default '0',
player_class int(2) NOT NULL default '0',
player_deity int(4) NOT NULL default '0',
player_race int(4) NOT NULL default '0'
) TYPE=MyISAM;

-- Values for Human Wizards

INSERT INTO start_zones VALUES (314,-653,3.75,1,2,1,12,396,1);
INSERT INTO start_zones VALUES (138,-710,17.75,9,9,4,12,396,1);
INSERT INTO start_zones VALUES (309,-353,-38.22,45,2,1,12,201,1);
INSERT INTO start_zones VALUES (-38,-250,-94.22,10,9,4,12,206,1);
INSERT INTO start_zones VALUES (314,-653,-3.75,1,2,1,12,207,1);
INSERT INTO start_zones VALUES (138,-710,17.75,9,9,4,12,204,1);
INSERT INTO start_zones VALUES (138,-710,17.75,9,9,4,12,208,1);
INSERT INTO start_zones VALUES (314,-653,-3.75,1,2,1,12,212,1);
INSERT INTO start_zones VALUES (314,-653,-3.75,1,2,1,12,213,1);
INSERT INTO start_zones VALUES (138,-710,-17.75,9,9,4,12,213,1);

and it works :)

--kathgar: I added [CODE] tags

bud9weiser
11-16-2003, 04:46 PM
ok 2 qestions.
1. will this be going into the release
2. if so, what does bind_id equal?

Trumpcard
11-16-2003, 11:38 PM
This didnt make it into the 0.5.0 release, but we can add it for the next one.

What should bind_id equal? What will change this bind_id field when you have your character somewhere else, how does this value change?

Initially , shouldnt all the bind id's be the same as the zone_ids?

11-17-2003, 12:15 AM
Initially , shouldnt all the bind id's be the same as the zone_ids?

As I remember (it was a long time ago, so I may be wrong), when I created my Half-Elf ranger, he first appeared in Surefall Glade, but when he died he would respawn in Qeynos Hills. I don't have access to live any more to confirm this.

Trumpcard
11-17-2003, 12:50 AM
worked that way in halas too.. now i remember..

mangoo
11-17-2003, 03:08 AM
freeport iirc you start by your class guild and then respawn just outside the gates