|
|
![](/forums/images/Darkness/misc/spacer.gif) |
![](/forums/images/Darkness/misc/spacer.gif) |
![](/forums/images/Darkness/misc/spacer.gif) |
![](/forums/images/Darkness/misc/q1.jpg) |
|
![](/forums/images/Darkness/misc/q1-1.jpg) |
![](/forums/images/Darkness/misc/q4.jpg) |
|
![](/forums/images/Darkness/misc/q4-1.jpg) |
![](/forums/images/Darkness/misc/a1.jpg) |
|
![](/forums/images/Darkness/misc/a1-1.jpg) |
|
Development::Feature Requests Post suggestions/feature requests here. |
![Old](/forums/images/Darkness/statusicon/post_old.gif)
08-19-2008, 02:27 PM
|
Demi-God
|
|
Join Date: May 2007
Posts: 1,032
|
|
Request to slightly improve add grid way point comand
Greetings!
curently adding grid way points uses following format:
#wp add X Y Z
where X is grid id#, Y pause time, and Z is wp id#
what i propose is to slightly modify this so if Z is omited, the comand will automaticly use curently max Z+1.
this will GREATLY improve easiness of adding new way points.
so instead of running around and typing
#wp add 71 60 1
#wp add 71 60 2
#wp add 71 60 3
#wp add 71 60 4
etc etc etc till my fingers bleed
i will make a hot button with
#wp add 71 60
and span simply spam it at will
alternatuivly if comand line does not work with omited parameters, let say if i use MAX keyword at the end of the line it will auto calculate Z+1 like this:
#wp add 71 60 max
thanks =)
|
![Old](/forums/images/Darkness/statusicon/post_old.gif)
08-19-2008, 05:43 PM
|
![trevius's Avatar](image.php?s=1d9cb9f1b477da208b2bc1f7fab5bf17&u=67426&dateline=1227186409) |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
Ya, that would definitely be useful.
|
![](/forums/images/Darkness/misc/a4.gif) |
|
![](/forums/images/Darkness/misc/a6.gif) |
![Old](/forums/images/Darkness/statusicon/post_old.gif)
08-20-2008, 01:21 AM
|
Developer
|
|
Join Date: Mar 2007
Location: Ohio
Posts: 648
|
|
Here's the code for the wp command:
zone/command.cpp
Code:
2256 void command_wp(Client *c, const Seperator *sep)
2257 {
2258 if (strcasecmp("add",sep->arg[1]) == 0)
2259 database.AddWP(c, atoi(sep->arg[2]),atoi(sep->arg[4]), c->GetX(), c->GetY(), c->GetZ(), atoi(sep->arg[3]),zone->GetZoneID());
2260 else if (strcasecmp("delete",sep->arg[1]) == 0)
2261 database.DeleteWaypoint(c, atoi(sep->arg[2]),atoi(sep->arg[4]),zone->GetZoneID());
2262 else
2263 c->Message(0,"Usage: #wp add/delete grid_num pause wp_num");
2264 }
I'm not sure if this will actually work, but you might be able to do something like this:
zone/zonedb.h
Code:
/*
* Grids/Paths
*/
int32 GetFreeGrid(int16 zoneid);
void DeleteGrid(Client *c, int32 sg2, int32 grid_num, bool grid_too,int16 zoneid);
void DeleteWaypoint(Client *c, int32 grid_num, int32 wp_num,int16 zoneid);
// int32 AddWP(Client *c, int32 sg2, int16 grid_num, int8 wp_num, float xpos, float ypos, float zpos, int32 pause, float xpos1, float ypos1, float zpos1, int type1, int type2,int16 zoneid);
void AddWP(Client *c, int32 gridid, int32 wpnum, float xpos, float ypos, float zpos, int32 pause, int16 zoneid);
int32 AddWPForSpawn(Client *c, int32 spawn2id, float xpos, float ypos, float zpos, int32 pause, int type1, int type2, int16 zoneid);
void ModifyGrid(Client *c, bool remove, int32 id, int8 type = 0, int8 type2 = 0,int16 zoneid = 0);
void ModifyWP(Client *c, int32 grid_id, int32 wp_num, float xpos, float ypos, float zpos, int32 script=0,int16 zoneid =0);
int8 GetGridType(int32 grid,int32 zoneid);
int8 GetGridType2(int32 grid, int16 zoneid);
bool GetWaypoints(int32 grid, int16 zoneid, int32 num, wplist* wp);
void AssignGrid(Client *client, float x, float y, int32 id);
int GetHighestGrid(uint32 zoneid);
int GetHighestWaypoint(uint32 zoneid, int32 gridid);
zone/waypoints.cpp
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);
}
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");
}
Hope this helps.
|
![](/forums/images/Darkness/misc/a1.gif) |
|
![](/forums/images/Darkness/misc/a3.gif) |
![Old](/forums/images/Darkness/statusicon/post_old.gif)
08-31-2008, 08:06 AM
|
![trevius's Avatar](image.php?s=1d9cb9f1b477da208b2bc1f7fab5bf17&u=67426&dateline=1227186409) |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
Going to test this now. I was trying to compile this, but it errored out. I had to change this:
Code:
void command_wp(Client *c, const Seperator *sep,)
to this:
Code:
void command_wp(Client *c, const Seperator *sep,int wp)
*Edit - still not compiling completely yet.
Last edited by trevius; 08-31-2008 at 04:39 PM..
|
![Old](/forums/images/Darkness/statusicon/post_old.gif)
09-01-2008, 04:53 AM
|
![trevius's Avatar](image.php?s=1d9cb9f1b477da208b2bc1f7fab5bf17&u=67426&dateline=1227186409) |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
If anyone can get this working, I will move the post to server code submissions. I wasn't able to get it to compile, but I don't know what I am doing anyway lol.
|
![Old](/forums/images/Darkness/statusicon/post_old.gif)
09-01-2008, 05:17 PM
|
Developer
|
|
Join Date: Mar 2007
Location: Ohio
Posts: 648
|
|
What kind of error are you getting?
|
![](/forums/images/Darkness/misc/a4.gif) |
|
![](/forums/images/Darkness/misc/a6.gif) |
![Old](/forums/images/Darkness/statusicon/post_old.gif)
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 ![Very Happy](http://www.eqemulator.net/forums/images/smilies/icon_biggrin.gif)
|
![](/forums/images/Darkness/misc/a1.gif) |
|
![](/forums/images/Darkness/misc/a3.gif) |
![Old](/forums/images/Darkness/statusicon/post_old.gif)
09-01-2008, 06:16 PM
|
![trevius's Avatar](image.php?s=1d9cb9f1b477da208b2bc1f7fab5bf17&u=67426&dateline=1227186409) |
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.
|
![Old](/forums/images/Darkness/statusicon/post_old.gif)
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? ![Cool](http://www.eqemulator.net/forums/images/smilies/icon_cool.gif)
|
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 06:39 AM.
|
|
![](/forums/images/Darkness/misc/s1.jpg) |
|
![](/forums/images/Darkness/misc/s1-1.jpg) |
|
|
|
![](/forums/images/Darkness/misc/z1.jpg) |
|
![](/forums/images/Darkness/misc/z1-1.jpg) |
|
![](/forums/images/Darkness/misc/side3.jpg) |