Assign Grid code is completely weird to me.. using X and Y to find an NPC when the NPC already has a Spawn2 ID ... (much easier to find an npc this way)
waypoint.cpp - replace the whole function with this...
Code:
void ZoneDatabase::AssignGrid(Client *client, int grid, int spawn2id) {
std::string query = StringFormat("UPDATE spawn2 SET pathgrid = %d WHERE id = %d", grid, spawn2id);
auto results = QueryDatabase(query);
if (!results.Success())
{
LogFile->write(EQEMuLog::Error, "Error updating spawn2 '%s': '%s'", query.c_str(), results.ErrorMessage().c_str());
return;
}
if (results.RowsAffected() != 1) {
client->Message(0, "ERROR: found spawn2 id %d but the update query failed", spawn2id);
return;
}
if(client)
client->LogSQL(query.c_str());
client->Message(0, "Grid assign: spawn2 id = %d updated", spawn2id);
}
zonedb.h - fix the header...
Code:
void AssignGrid(Client *client, int grid, int spawn2id);
command.cpp -- replace the whole function..
Code:
void command_gassign(Client *c, const Seperator *sep) {
if (sep->IsNumber(1) && c->GetTarget() && c->GetTarget()->IsNPC() && c->GetTarget()->CastToNPC()->GetSpawnPointID() > 0) {
int spawn2id = c->GetTarget()->CastToNPC()->GetSpawnPointID();
database.AssignGrid(c, atoi(sep->arg[1]), spawn2id);
}
else
c->Message(0,"Usage: #gassign [num] - must have an npc target!");
}