|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Development::Feature Requests Post suggestions/feature requests here. |
 |
|
 |

09-01-2008, 05:33 PM
|
Developer
|
|
Join Date: Mar 2007
Location: Ohio
Posts: 648
|
|
I thought it would be fine the way I did this, but I guess maybe not.
Quote:
Originally Posted by AndMetal
zone/command.cpp
Code:
void command_wp(Client *c, const Seperator *sep)
{
if (sep->arg[4] == NULL)
int wp = database.GetHighestWaypoint(zone->GetZoneID(), atoi(sep->arg[2]));
else
int wp = atoi(sep->arg[4]);
if (strcasecmp("add",sep->arg[1]) == 0)
database.AddWP(c, atoi(sep->arg[2]),wp, c->GetX(), c->GetY(), c->GetZ(), atoi(sep->arg[3]),zone->GetZoneID());
else if (strcasecmp("delete",sep->arg[1]) == 0)
database.DeleteWaypoint(c, atoi(sep->arg[2]),atoi(sep->arg[4]),zone->GetZoneID());
else
c->Message(0,"Usage: #wp add/delete grid_num pause wp_num");
}
|
Try this instead:
Code:
void command_wp(Client *c, const Seperator *sep)
{
int wp;
if (sep->arg[4] == NULL)
wp = database.GetHighestWaypoint(zone->GetZoneID(), atoi(sep->arg[2]));
else
wp = atoi(sep->arg[4]);
if (strcasecmp("add",sep->arg[1]) == 0)
database.AddWP(c, atoi(sep->arg[2]),wp, c->GetX(), c->GetY(), c->GetZ(), atoi(sep->arg[3]),zone->GetZoneID());
else if (strcasecmp("delete",sep->arg[1]) == 0)
database.DeleteWaypoint(c, atoi(sep->arg[2]),atoi(sep->arg[4]),zone->GetZoneID());
else
c->Message(0,"Usage: #wp add/delete grid_num pause wp_num");
}
Let me know if that works. I knew when I wrote it that 2nd one would work, I just figured the other way would be a little cleaner & still work
Oh well, that's why KLS & Derision are the "devs", and I just tinker 
|
 |
|
 |

09-01-2008, 06:16 PM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
Derision isn't an official Dev yet, but he probably should be
I will give that a try later and see if it compiles like that. It looks like that could resolve it. But, I was getting a similar error when trying to compile some code with a rule I made up. I will post more after I get to test it.
|

09-24-2008, 10:19 AM
|
Demi-God
|
|
Join Date: May 2007
Posts: 1,032
|
|
So Trev - did you ever managed to get this one working? 
|

09-25-2008, 05:56 AM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
I guess I never tried the latest code change AndMetal made on this. Now it compiles just fine. Going to test it later after the next server reboot to verify it works. If so, I will sticky this in the Server Code Submissions section 
|

09-25-2008, 10:49 AM
|
Demi-God
|
|
Join Date: May 2007
Posts: 1,032
|
|
that be perfect - trying to populated something as large as West Karana by hand... is simply insane without this feature 
|
 |
|
 |

09-28-2008, 07:51 AM
|
Developer
|
|
Join Date: Mar 2007
Location: Ohio
Posts: 648
|
|
The original code didn't work as intended, but I had a chance to compile & debug, and this is what I came up with.
In zone/zonedb.h around line 215 (under the Grids/Paths heading), add
Code:
int GetHighestWaypoint(uint32 zoneid, int32 gridid);
In zone/waypoints.cpp around line 1300 (the end of the file), add
Code:
int ZoneDatabase::GetHighestWaypoint(uint32 zoneid, int32 gridid) {
char *query = 0;
char errbuff[MYSQL_ERRMSG_SIZE];
MYSQL_RES *result;
MYSQL_ROW row;
int res = 0;
if (RunQuery(query, MakeAnyLenString(&query,
"SELECT COALESCE(MAX(number), 0) FROM grid_entries WHERE zoneid = %i AND gridid = %i",
zoneid, gridid),errbuff,&result)) {
safe_delete_array(query);
if (mysql_num_rows(result) == 1) {
row = mysql_fetch_row(result);
res = atoi( row[0] );
}
mysql_free_result(result);
} else {
LogFile->write(EQEMuLog::Error, "Error in GetHighestWaypoint query '%s': %s", query, errbuff);
safe_delete_array(query);
}
return(res);
}
And in zone/command.cpp around line 2345, change
Code:
void command_wp(Client *c, const Seperator *sep)
{
if (strcasecmp("add",sep->arg[1]) == 0)
database.AddWP(c, atoi(sep->arg[2]),atoi(sep->arg[4]), c->GetX(), c->GetY(), c->GetZ(), atoi(sep->arg[3]),zone->GetZoneID());
else if (strcasecmp("delete",sep->arg[1]) == 0)
database.DeleteWaypoint(c, atoi(sep->arg[2]),atoi(sep->arg[4]),zone->GetZoneID());
else
c->Message(0,"Usage: #wp add/delete grid_num pause wp_num");
}
to this
Code:
void command_wp(Client *c, const Seperator *sep)
{
int wp = atoi(sep->arg[4]);
if (strcasecmp("add",sep->arg[1]) == 0) {
if (wp == 0) //AndMetal: default to highest if it's left blank, or we enter 0
wp = database.GetHighestWaypoint(zone->GetZoneID(), atoi(sep->arg[2])) + 1;
database.AddWP(c, atoi(sep->arg[2]),wp, c->GetX(), c->GetY(), c->GetZ(), atoi(sep->arg[3]),zone->GetZoneID());
}
else if (strcasecmp("delete",sep->arg[1]) == 0)
database.DeleteWaypoint(c, atoi(sep->arg[2]),wp,zone->GetZoneID());
else
c->Message(0,"Usage: #wp add/delete grid_num pause wp_num");
}
|
 |
|
 |
Thread Tools |
|
Display Modes |
Hybrid Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 11:13 PM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |