Draupner |
07-02-2004 10:03 AM |
New Commands - updated july 7th
Edit: 10:49 PM July 7th - Added #tradeskill look at bottom of this post for it
Edit: 10:52 PM July 4th - Fixed the messages you would recieve when changing something. Also changed run/walk to use floats instead of integers
OK new #npcedit is in! With this you can modify basically anything in npc_types table. If anyone wants I can just change it around to work for another table. Also this code replaces all of the other things I've posted code-wise except for #dumbname.
Here are all the commands available:
#npcedit Name - Sets an NPCs name
#npcedit Lastname - Sets an NPCs lastname
#npcedit Level - Sets an NPCs level
#npcedit Race - Sets an NPCs race
#npcedit Class - Sets an NPCs class
#npcedit Bodytype - Sets an NPCs bodytype
#npcedit HP - Sets an NPCs hitpoints
#npcedit Gender - Sets an NPCs gender
#npcedit Texture - Sets an NPCs texture
#npcedit Helmtexture - Sets an NPCs helmtexture
#npcedit Size - Sets an NPCs size
#npcedit Hpregen - Sets an NPCs hitpoint regen rate per tick
#npcedit Manaregen - Sets an NPCs mana regen rate per tick
#npcedit Lootable - Sets the lootable ID for an NPC
#npcedit Merchantid - Sets the merchant ID for an NPC
#npcedit Spell - Sets the npc spells list ID for an NPC
#npcedit Faction - Sets the NPCs faction id
#npcedit Mindmg - Sets an NPCs minimum damage
#npcedit Maxdmg - Sets an NPCs maximum damage
#npcedit Aggroradius - Sets an NPCs aggro radius
#npcedit Social - Set to 1 if an NPC should assist others on its faction
#npcedit Walkspeed - Sets an NPCs walking speed
#npcedit Runspeed - Sets an NPCs run speed
#npcedit MR - Sets an NPCs magic resistance
#npcedit PR - Sets an NPCs poisen resistance
#npcedit DR - Sets an NPCs disease resistance
#npcedit FR - Sets an NPCs fire resistance
#npcedit CR - Sets an NPCs cold resistance
#npcedit Seeinvis - Sets an NPCs ability to see invis
#npcedit Seeinvisundead - Sets an NPCs ability to see through invis vs. undead
#npcedit AC - Sets an NPCs armor class
Now for the code
command.cpp Line 263
Code:
command_add("npcedit","[column] [value] - Mega NPC editing command!",100,command_npcedit) || //Draupner npc_types editing command
command.cpp Line 2716
Code:
void command_npcedit(Client *c, const Seperator *sep) //Draupner: Edit almost anything in npc_types table
{
if ( strcasecmp( sep->arg[1], "help" ) == 0 ) {
c->Message(0, "Help File for #npcedit. Syntax for commands are:");
c->Message(0, "#npcedit Name - Sets an NPCs name");
c->Message(0, "#npcedit Lastname - Sets an NPCs lastname");
c->Message(0, "#npcedit Level - Sets an NPCs level");
c->Message(0, "#npcedit Race - Sets an NPCs race");
c->Message(0, "#npcedit Class - Sets an NPCs class");
c->Message(0, "#npcedit Bodytype - Sets an NPCs bodytype");
c->Message(0, "#npcedit HP - Sets an NPCs hitpoints");
c->Message(0, "#npcedit Gender - Sets an NPCs gender");
c->Message(0, "#npcedit Texture - Sets an NPCs texture");
c->Message(0, "#npcedit Helmtexture - Sets an NPCs helmtexture");
c->Message(0, "#npcedit Size - Sets an NPCs size");
c->Message(0, "#npcedit Hpregen - Sets an NPCs hitpoint regen rate per tick");
c->Message(0, "#npcedit Manaregen - Sets an NPCs mana regen rate per tick");
c->Message(0, "#npcedit Lootable - Sets the lootable ID for an NPC ");
c->Message(0, "#npcedit Merchantid - Sets the merchant ID for an NPC");
c->Message(0, "#npcedit Spell - Sets the npc spells list ID for an NPC");
c->Message(0, "#npcedit Faction - Sets the NPCs faction id");
c->Message(0, "#npcedit Mindmg - Sets an NPCs minimum damage");
c->Message(0, "#npcedit Maxdmg - Sets an NPCs maximum damage");
c->Message(0, "#npcedit Aggroradius - Sets an NPCs aggro radius");
c->Message(0, "#npcedit Social - Set to 1 if an NPC should assist others on its faction");
c->Message(0, "#npcedit Walkspeed - Sets an NPCs walking speed");
c->Message(0, "#npcedit Runspeed - Sets an NPCs run speed");
c->Message(0, "#npcedit MR - Sets an NPCs magic resistance");
c->Message(0, "#npcedit PR - Sets an NPCs poisen resistance");
c->Message(0, "#npcedit DR - Sets an NPCs disease resistance");
c->Message(0, "#npcedit FR - Sets an NPCs fire resistance");
c->Message(0, "#npcedit CR - Sets an NPCs cold resistance");
c->Message(0, "#npcedit Seeinvis - Sets an NPCs ability to see invis");
c->Message(0, "#npcedit Seeinvisundead - Sets an NPCs ability to see through invis vs. undead");
c->Message(0, "#npcedit AC - Sets an NPCs armor class");
}
else if ( strcasecmp( sep->arg[1], "name" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has the name %s",c->GetTarget()->CastToNPC()->GetNPCTypeID(),(sep->argplus[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set name='%s' where id=%i",(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "lastname" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has the lastname %s",c->GetTarget()->CastToNPC()->GetNPCTypeID(),(sep->argplus[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set lastname='%s' where id=%i",(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "race" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has the race %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set race=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "class" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u is now class %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set class=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "bodytype" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has type %i bodytype ",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set bodytype=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "hp" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has %i Hitpoints",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set hp=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "gender" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u is now gender %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set gender=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "texture" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now uses texture %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set texture=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "helmtexture" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now uses helmtexture %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set helmtexture=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "size" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u is now size %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set size=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "hpregen" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now regens %i hitpoints per tick",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set hp_regen_rate=%i where hp_regen_rate=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "manaregen" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now regens %i mana per tick",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set mana_regen_rate=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "lootable" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u is now on lootable_id %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set lootable_id=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "merchantid" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now is merchant_id %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set merchant_id=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "spell" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now uses spell list %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set npc_spells_id=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "faction" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u is now faction %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set npc_faction_id=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "mindmg" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now hits for a min of %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set mindmg=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "maxdmg" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now hits for a max of %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set maxdmg=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "aggroradius" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has an aggro radius of %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set aggroradius=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "social" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u social status is now %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set social=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "walkspeed" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now walks at %f",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atof(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set walkspeed=%f where id=%i",atof(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "runspeed" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u is now runs at %f",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atof(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set runspeed=%f where id=%i",atof(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "MR" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has a magic resist of %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set MR=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "DR" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has a disease resist of %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set DR=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "CR" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has a cold resist of %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set CR=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "FR" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has a fire resist of %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set FR=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "PR" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has a poisen resist of %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set PR=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "seeinvis" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has seeinvis set to %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set see_invis=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "seeinvisundead" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has seeinvisundead set to %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set see_invis_undead=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "AC" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u now has %i armor class",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->argplus[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set ac=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if ( strcasecmp( sep->arg[1], "level" ) == 0 )
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(15,"NPCID %u is now level %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->arg[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set level=%i where id=%i",atoi(sep->argplus[2]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
safe_delete_array(query);
}
else if((sep->arg[1][0] == 0 || strcasecmp(sep->arg[1],"*")==0) || ((c->GetTarget()==0) || (c->GetTarget()->IsClient())))
{
c->Message(0, "Type #npcedit help for more info");
}
}
command.h Line 117
Code:
void command_npcedit(Client *c, const Seperator *sep); //Draupner: Npc Edit
Well there you go now you can edit anything in npc_types from in game.
Edit: Heres #dumbname so you don't have to go to 2nd page to see it. It'll add your target (pc) name to the name_filter list, so its easier to mark names that you would consider not in the theme of your server.
Dumb Name Command
Add names to the name_filter list
Usage: #dumbname
command.cpp Line 261
Code:
command_add("dumbname","[name] - Makes a name dumb",100,command_dumbname) || //Draupner: Dumbname Command
command.cpp Line 2701
Code:
void command_dumbname(Client *c, const Seperator *sep) //Draupner: dumb name command
{
if (c->GetTarget() && c->GetTarget()->IsClient()) {
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
if (!database.RunQuery(query, MakeAnyLenString(&query, "INSERT INTO name_filter (name) values ('%s')", c->GetTarget()->GetName(), errbuf))) {
c->Message(0, "%s has been added to the name_filter list", c->GetTarget()->GetName()); }
safe_delete_array(query);
} else c->Message(13, "Target must be a Player!");
}
command.h Line 114
Code:
void command_dumbname(Client *c, const Seperator *sep); //Draupner: Dumbname
New Tradeskill Command
Usage: #tradeskill [add] [edit] [delete]
Type #tradeskill help in game for the exact syntax or pm me on irc if you need aditional help.
command.cpp Line 264
Code:
command_add("tradeskill","[add] [edit] [delete] - TS edit command",100,command_tradeskill) || //Draupner: tradeskills
command.cpp Line 2716
Code:
void command_tradeskill(Client *c, const Seperator *sep) //Draupner; Edit Ts command
{
if ( strcasecmp( sep->arg[1], "add" ) == 0 && (sep->arg[2]>=0) && (sep->arg[3]>=0) && (sep->arg[4]>=0) && (sep->arg[5]>=0))
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Adding new tradeskill id %i to database",database.GetMaxTradeskillID()+1);
if (database.RunQuery(query, MakeAnyLenString(&query, "INSERT INTO tradeskillrecipe (id,tradeskill,skillneeded,trivial,product,product2,failproduct,productcount,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,notes) values ('%i','%i','%i','%i','%i','0','0','0','0','0','0','0','0','0','0','0','0','0','Added by #tradeskill')",database.GetMaxTradeskillID()+1,atoi(sep->argplus[2]),atoi(sep->argplus[3]),atoi(sep->argplus[4]),atoi(sep->argplus[5]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"tradeskill")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now is a type %i tradeskill",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set tradeskill=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"skill")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now now requires a skill of %i",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set skillneeded=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"trivial")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now is trivial at %i",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set trivial=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"product")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now makes item id %i",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set product=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"product2")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now makes item id %i as a second product",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set product2=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"fail")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i will now make %i as a failed product",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set failproduct=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"count")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now makes %i products",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set tradeskill=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"item1")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now requires %i as an item",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set i1=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"item2")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now requires %i as an item2",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set i2=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"item3")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now requires %i as an item",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set i3=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"item4")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now requipres %i as an item",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set i4=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"item5")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now requipres %i as an item",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set i5=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"item6")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now requipres %i as an item",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set i6=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"item7")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now requipres %i as an item",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set i7=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"item8")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now requipres %i as an item",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set i8=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"item9")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now requipres %i as an item",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set i9=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"edit")==0 && strcasecmp(sep->arg[2],"item10")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i now requipres %i as an item",atoi(sep->argplus[3]),atoi(sep->argplus[4]));
if (database.RunQuery(query, MakeAnyLenString(&query, "update tradeskillrecipe set i10=%i where id=%i",atoi(sep->argplus[4]),atoi(sep->argplus[3]), errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"delete")==0)
{
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
c->Message(0, "Tradeskill ID %i has now been deleted",atoi(sep->argplus[2]));
if (database.RunQuery(query, MakeAnyLenString(&query, "delete from tradeskillrecipe where id=%i",atoi(sep->argplus[2]),errbuf)))
safe_delete_array(query);
}
else if (strcasecmp(sep->arg[1],"help")==0)
{
c->Message(0, "Tradeskill Command Help:");
c->Message(0, "Syntax is #tradeskill add/edit/delete");
c->Message(0, "Syntax for Tradeskill add is #tradeskill add (tradeskill type) (skill needed) (trivial) (product)");
c->Message(0, "Syntax for Tradeskill edit is #tradeskill edit (column) (id) (value)");
c->Message(0, "#tradeskill edit tradeskill (id) (value) - Edits what tradeskill you use fletching/blacksmithing/ect");
c->Message(0, "#tradeskill edit skill (id) (value) - Edits the skill needed to make item");
c->Message(0, "#tradeskill edit trivial (id) (value) - Edits the trivial for the particular combine");
c->Message(0, "#tradeskill edit product (id) (value) - Edits what item is made");
c->Message(0, "#tradeskill edit product2 (id) (value) - Edits if a 2nd item is made as well");
c->Message(0, "#tradeskill edit fail (id) (value) - Edits if an item is made on fail");
c->Message(0, "#tradeskill edit count (id) value) - Edits how many items are made");
c->Message(0, "#tradeskill edit item1 (id) (value) - Edits which items are required to combine");
c->Message(0, "#tradeskill edit item2-item10 (id) (value) - Same as item1 except these are for additional items required");
c->Message(0, "#tradeskill delete (id) - Deletes a tradeskill");
}
else
{
c->Message(0, "Use #tradeskill help for help on the commands");
}
}
command.h Line 119
Code:
void command_tradeskill(Client *c, const Seperator *sep); //Draupner: Ts command
database.cpp Line 2940
Code:
int32 Database::GetMaxTradeskillID() {
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
MYSQL_RES *result;
MYSQL_ROW row;
if (RunQuery(query, MakeAnyLenString(&query, "SELECT max(id) from tradeskillrecipe"), errbuf, &result)) {
safe_delete_array(query);
if (mysql_num_rows(result) == 1) {
row = mysql_fetch_row(result);
int32 ret = 0;
if (row[0])
ret = atoi(row[0]);
mysql_free_result(result);
return ret;
}
mysql_free_result(result);
}
else {
cerr << "Error in GetMaxTradeskillID query '" << query << "' " << errbuf << endl;
safe_delete_array(query);
return 0;
}
return 0;
}
database.h Line 337
Code:
inline const int32& GetMaxNPCFactionList() { return npcfactionlist_max; }
There u go. Hope it helps!
|