|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Archive::Bugs Archive area for Bugs's posts that were moved here after an inactivity period of 90 days. |
07-29-2004, 02:10 PM
|
Demi-God
|
|
Join Date: May 2004
Posts: 1,177
|
|
#NPCSPAWN UPDATE, DELETE, REMOVE
Where to begin....
#npcspawn delete
#npcspawn remove
When i use these my lag meter goes to 100% red and im booted from zone. not sure if the entire zone crashes or just me. But regardless it doesnt delete said mob.
#npcspawn update
does NOT update mobs position. used it many times. only to reboot and find mobs in their original spots. Annoying as hell. i hate manually fixing mob locations.
Anybody that can look into these command to get them actually doing their purposes again?
thanks
|
|
|
|
08-01-2004, 12:58 PM
|
Fire Beetle
|
|
Join Date: Apr 2004
Posts: 4
|
|
#npcspawn delete,update and #spawnfix
I reworked the sql portion of some code and got these working and this will require a db entry.
for the database in mysql type:
Code:
ALTER TABLE `eq`.`spawn2`
CHANGE COLUMN `x` `x` float(14,6) NOT NULL DEFAULT 0,
CHANGE COLUMN `y` `y` float(14,6) NOT NULL AFTER `x`,
CHANGE COLUMN `z` `z` float(14,6) NOT NULL AFTER `y`,
CHANGE COLUMN `heading` `heading` float(14,6) NOT NULL AFTER `z`;
for #npcspawn delete,update in npc.cpp search for Database::NPCSpawnDB scroll down to case 2 and replace
Code:
case 2: { // update npc_type from target spawn - khuong
if (RunQuery(query, MakeAnyLenString(&query, "UPDATE npc_types SET name=\"%s\", level=%i, race=%i, class=%i, hp=%i, gender=%i, texture=%i, helmtexture=%i, size=%i, loottable_id=%i, merchant_id=%i, face=%i, WHERE id=%i", spawn->GetName(), spawn->GetLevel(), spawn->GetRace(), spawn->GetClass(), spawn->GetMaxHP(), spawn->GetGender(), spawn->GetTexture(), spawn->GetHelmTexture(), spawn->GetSize(), spawn->GetLoottableID(), spawn->MerchantType, spawn->GetNPCTypeID()), errbuf, 0)) {
safe_delete_array(query);
return true;
}
else {
safe_delete_array(query);
return false;
}
break;
}
case 3: { // delete spawn from spawning - khuong
if (RunQuery(query, MakeAnyLenString(&query, "SELECT id,spawngroupID from spawn2 where zone='%s' AND x='%f' AND y='%f' AND heading='%f'", zone, spawn->GetSpawnX(),spawn->GetSpawnY(),spawn->GetSpawnHeading()), errbuf, &result)) {
row = mysql_fetch_row(result);
if (row[0]) tmp = atoi(row[0]);
if (row[1]) tmp2 = atoi(row[1]);
query = 0;
mysql_free_result(result);
}
else { return 0; }
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM spawn2 WHERE id='%i'", tmp), errbuf,0)) {
safe_delete(query);
return false;
}
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM spawngroup WHERE id='%i'", tmp2), errbuf,0)) {
safe_delete(query);
return false;
}
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM spawnentry WHERE spawngroupID='%i'", tmp2), errbuf,0)) {
safe_delete(query);
return false;
}
safe_delete_array(query);
return true;
break;
}
case 4: { //delete spawn from DB (including npc_type) - khuong
if (RunQuery(query, MakeAnyLenString(&query, "SELECT id,spawngroupID from spawn2 where zone='%s' AND x='%f' AND y='%f' AND heading='%f'", zone, spawn->GetX(), spawn->GetY(), spawn->GetHeading()), errbuf, &result)) {
row = mysql_fetch_row(result);
if (row[0]) tmp = atoi(row[0]);
if (row[1]) tmp2 = atoi(row[1]);
query = 0;
mysql_free_result(result);
}
else { return 0; }
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM spawn2 WHERE id='%i'", tmp), errbuf,0)) {
safe_delete(query);
return false;
}
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM spawngroup WHERE id='%i'", tmp2), errbuf,0)) {
safe_delete(query);
return false;
}
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM spawnentry WHERE spawngroupID='%i'", tmp2), errbuf,0)) {
safe_delete(query);
return false;
}
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM npc_types WHERE id='%i'", spawn->GetNPCTypeID()), errbuf,0)) {
safe_delete(query);
return false;
}
safe_delete_array(query);
return true;
break;
}
safe_delete_array(query);
return false;
}
with this
Code:
case 2: { // update npc_type from target spawn - khuong
LogFile->write(EQEMuLog::Debug,"before if name=%s\, level=%i, race=%i, class=%i, hp=%i, gender=%i, texture=%i, helmtexture=%i, size=%i, loottable_id=%i, merchant_id=%i, face=%i, WHERE id like %i", spawn->GetName(), spawn->GetLevel(), spawn->GetRace(), spawn->GetClass(), spawn->GetMaxHP(), spawn->GetGender(), spawn->GetTexture(), spawn->GetHelmTexture(), spawn->GetSize(), spawn->GetLoottableID(), spawn->MerchantType, spawn->GetNPCTypeID());
if (RunQuery(query, MakeAnyLenString(&query, "UPDATE npc_types SET name = '%s', level = '%i', race = '%i', class = '%i', hp = '%i', gender = '%i', texture = '%i', helmtexture = '%i', size = '%i', loottable_id = '%i', merchant_id = '%i', face = '%i' WHERE id like '%i'", spawn->GetName(), spawn->GetLevel(), spawn->GetRace(), spawn->GetClass(), spawn->GetMaxHP(), spawn->GetGender(), spawn->GetTexture(), spawn->GetHelmTexture(), spawn->GetSize(), spawn->GetLoottableID(), spawn->MerchantType, spawn->GetNPCTypeID()), errbuf, 0)) {
LogFile->write(EQEMuLog::Debug,"after if npc_types SET name=\"%s\", level=%i, race=%i, class=%i, hp=%i, gender=%i, texture=%i, helmtexture=%i, size=%i, loottable_id=%i, merchant_id=%i, face=%i, WHERE id like %i", spawn->GetName(), spawn->GetLevel(), spawn->GetRace(), spawn->GetClass(), spawn->GetMaxHP(), spawn->GetGender(), spawn->GetTexture(), spawn->GetHelmTexture(), spawn->GetSize(), spawn->GetLoottableID(), spawn->MerchantType, spawn->GetNPCTypeID());
safe_delete_array(query);
return true;
}
else {
safe_delete_array(query);
return false;
}
break;
}
case 3: { // delete spawn from spawning - khuong
if (RunQuery(query, MakeAnyLenString(&query, "SELECT id,spawngroupID from spawn2 where zone like '%s' AND x like '%f' AND y like '%f' AND heading like '%f'", zone, spawn->GetSpawnX(),spawn->GetSpawnY(),spawn->GetSpawnHeading()), errbuf, &result)) {
row = mysql_fetch_row(result);
//LogFile->write(EQEMuLog::Debug,"Current zone %s,x= %f, Y= %f, Heading= %f",zone, spawn->GetSpawnX(),spawn->GetSpawnY(),spawn->GetSpawnHeading());
if (row[0]) tmp = atoi(row[0]);
if (row[1]) tmp2 = atoi(row[1]);
query = 0;
mysql_free_result(result);
}
else { return 0; }
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM spawn2 WHERE id like '%i'", tmp), errbuf,0)) {
safe_delete(query);
return false;
}
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM spawngroup WHERE id like '%i'", tmp2), errbuf,0)) {
safe_delete(query);
return false;
}
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM spawnentry WHERE spawngroupID like '%i'", tmp2), errbuf,0)) {
safe_delete(query);
return false;
}
safe_delete_array(query);
return true;
break;
}
case 4: { //delete spawn from DB (including npc_type) - khuong
if (RunQuery(query, MakeAnyLenString(&query, "SELECT id,spawngroupID from spawn2 where zone like '%s' AND x like '%f' AND y like '%f' AND heading like '%f'", zone, spawn->GetX(), spawn->GetY(), spawn->GetHeading()), errbuf, &result)) {
//LogFile->write(EQEMuLog::Debug,"Current zone %s,x= %f, Y= %f, Heading= %f",zone, spawn->GetSpawnX(),spawn->GetSpawnY(),spawn->GetSpawnHeading());
row = mysql_fetch_row(result);
if (row[0]) tmp = atoi(row[0]);
if (row[1]) tmp2 = atoi(row[1]);
query = 0;
mysql_free_result(result);
}
else { return 0; }
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM spawn2 WHERE id like '%i'", tmp), errbuf,0)) {
LogFile->write(EQEMuLog::Debug,"id = `%i`", tmp);
safe_delete(query);
return false;
}
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM spawngroup WHERE id like '%i'", tmp2), errbuf,0)) {
LogFile->write(EQEMuLog::Debug,"id = `%i`", tmp2);
safe_delete(query);
return false;
}
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM spawnentry WHERE spawngroupID like '%i'", tmp2), errbuf,0)) {
LogFile->write(EQEMuLog::Debug,"id = `%i`", tmp2);
safe_delete(query);
return false;
}
if (!RunQuery(query, MakeAnyLenString(&query, "DELETE FROM npc_types WHERE id like '%i'", spawn->GetNPCTypeID()), errbuf,0)) {
LogFile->write(EQEMuLog::Debug,"id = `%i`", spawn->GetNPCTypeID());
safe_delete(query);
return false;
}
safe_delete_array(query);
return true;
break;
}
safe_delete_array(query);
return false;
}
for spawnfix in command.cpp search for command_spawnfix replace
Code:
if (!c->GetTarget() || !c->GetTarget()->IsNPC())
c->Message(0, "Error: #spawnfix: Need an NPC target.");
else {
int32 tmp = 0;
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
MYSQL_RES *result;
MYSQL_ROW row;
if (database.RunQuery(query, MakeAnyLenString(&query, "SELECT id from spawn2 where zone='%s' AND x='%f' AND y='%f' AND heading='%f'", zone->GetShortName(), c->GetTarget()->GetX(), c->GetTarget()->GetY(), c->GetTarget()->GetHeading()), errbuf, &result)) {
with this
Code:
if (!c->GetTarget() || !c->GetTarget()->IsNPC())
c->Message(0, "Error: #spawnfix: Need an NPC target.");
else {
int32 tmp = 0;
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
MYSQL_RES *result;
MYSQL_ROW row;
if (database.RunQuery(query, MakeAnyLenString(&query, "SELECT id FROM spawn2 WHERE zone LIKE '%s' and x LIKE '%f' and y LIKE '%f' and heading LIKE '%f'", zone->GetShortName(), c->GetTarget()->GetX(), c->GetTarget()->GetY(), c->GetTarget()->GetHeading()), errbuf, &result)){
//LogFile->write(EQEMuLog::Debug,"Current zone %s,x= %f, Y= %f, Heading= %f",zone->GetShortName(), c->GetTarget()->GetX(), c->GetTarget()->GetY(), c->GetTarget()->GetHeading());
|
|
|
|
08-01-2004, 08:09 PM
|
|
Discordant
|
|
Join Date: Oct 2003
Location: The Shire
Posts: 474
|
|
woot thanks so much
these will make things alot easier
__________________
Nug Blazers - ServerOP / founder
^^comming... later!
www.nugblazers.com
|
08-02-2004, 03:39 PM
|
Demi-God
|
|
Join Date: May 2004
Posts: 1,177
|
|
i did these changes and npcspawn update still is doing jack shit =(
***UPDATE :: BEWARE THIS CODE***
This code has renamed many of my npctypes and appended numbers to the end, reset sizes etc. DO NOT use this code unless you want your shit screwed up
|
08-02-2004, 04:38 PM
|
|
Discordant
|
|
Join Date: Oct 2003
Location: The Shire
Posts: 474
|
|
i have only used spawnfix so far.. is it only update that screws shit up?
__________________
Nug Blazers - ServerOP / founder
^^comming... later!
www.nugblazers.com
|
08-02-2004, 04:50 PM
|
Demi-God
|
|
Join Date: May 2004
Posts: 1,177
|
|
Yes. i beleive so. every thing i used update on, it renamed the npctype changed size of npc and fux0red the loottable id. thats just what ive noticed so far. having to rebuild some mobs in a couple zones because of this =(
|
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 01:49 AM.
|
|
|
|
|
|
|
|
|
|
|
|
|