| 
   | 
   | 
  
 
    | 
    | 
    | 
  
 
    | 
   | 
    | 
  
 
    | 
   | 
    | 
  
 
    | 
   | 
    | 
  
 
   | 
  
	
		
   
   
      | Archive::Development Archive area for Development's posts that were moved here after an inactivity period of 90 days. | 
    
    
   
   
   
   
   
   
   
   
		 
	 
 
	
	
		
	
	
 
    | 
   | 
    | 
  
 
	
		
		
		
			
			 
			
				07-02-2004, 10:03 AM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Hill Giant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Jul 2004 
					Location: In my basement 
					
					
						Posts: 131
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
				 
				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!  
		
	
		
		
		
		
		
		
		
		
		
	
		
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
 
    | 
   | 
    | 
  
 
	 
	
		 
	 
 
	
	
		
	
	
 
    | 
   | 
    | 
  
 
	
		
		
		
			
			 
			
				07-02-2004, 10:06 AM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Hill Giant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Jul 2004 
					Location: In my basement 
					
					
						Posts: 131
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		NPC Aggro Radius: 
Usage is: #npcaggro [radius]
 
command.cpp Line 256
 
	Code: 
	command_add("npcaggro","[radius] - Sets the aggro radius for an NPC",100,command_npcaggro) ||
 command.cpp Line 2652
 
	Code: 
	void command_npcaggro(Client *c, const Seperator *sep) //Draupner: Set aggro radius
{
	if((sep->arg[1][0] == 0 || strcasecmp(sep->arg[1],"*")==0) || ((c->GetTarget()==0) || (c->GetTarget()->IsClient())))
		c->Message(0, "Usage: #npcaggro [radius]");
	
	else
	{
		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->argplus[1]));
		if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set aggroradius=%i where id=%i",atoi(sep->argplus[1]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
			safe_delete_array(query);
	}
}
 And finally command.h 
 
	Code: 
	void command_npcaggro(Client *c, const Seperator *sep); //Draupner: Aggro radius 
 More to come later  
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
 
    | 
   | 
    | 
  
 
	 
	
		 
	 
 
	
	
		
	
	
 
    | 
   | 
    | 
  
 
	
		
		
		
			
			 
			
				07-02-2004, 11:19 AM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Hill Giant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Jul 2004 
					Location: In my basement 
					
					
						Posts: 131
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
				 
				
			 
			 
			
		
		
		
		Set spell Id: 
Usage: #npcspell [id]
 
command.cpp Line 257
 
	Code: 
	command_add("npcspell","[radius] - Sets the spell list for an NPC",100,command_npcspell) ||  //Draupner: Set spells list
 command.cpp Line 2608
 
	Code: 
	void command_npcspell(Client *c, const Seperator *sep) //Draupner: Set npc spell list
{
		if ( strcasecmp( sep->arg[1], "list" ) == 0 )
	{
		c->Message(0, "Spell List (default) Note these are the default spells that are found in the MW_057DR2_alpha1 Database	:");
		c->Message(4, "     (1) Default Cleric List");
		c->Message(4, "     (2) Default Wizard List");
		c->Message(4, "     (3) Default Necromancer List");
		c->Message(4, "     (4) Default Magician List");
		c->Message(4, "     (5) Default Enchanter List");
		c->Message(4, "     (6) Default Shaman List");
		c->Message(4, "     (7) Default Druid List");
		c->Message(4, "     (8) Default Paladin List");
		c->Message(4, "     (9) Default Shadowknight List");
		c->Message(4, "    (10) Default Ranger List");
		c->Message(4, "    (11) Default Bard List");
		c->Message(4, "    (12) Default Beastlord List");
		c->Message(4, "    (13) AirPetInvis");
		c->Message(4, "    (14) AirPetAttacks");
		c->Message(4, "    (15) EarthPetAttacks");
		c->Message(4, "    (16) WaterPetAttacks");
		c->Message(4, "    (17) FirePetDS");
		c->Message(4, "    (18) FirePetAttacks");
		c->Message(4, "    (19) FirePetAttack2 (Decoy)");
		c->Message(4, "    (20) FirePetSpells (Wizard)");
		c->Message(4, "    (21) EpicPetSpells");
		c->Message(4, "    (22) Necro pet procs");
		c->Message(4, "    (23) Necro uber pet procs");
	}
	else if((sep->arg[1][0] == 0 || strcasecmp(sep->arg[1],"*")==0) || ((c->GetTarget()==0) || (c->GetTarget()->IsClient())))
		c->Message(0, "Usage: #npcspell [spell list id] or #npcspell list for a list of IDs");
	
	else
	{
		char errbuf[MYSQL_ERRMSG_SIZE];
		char *query = 0;
		c->Message(15,"NPCID %u now is on %i  spellset",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->argplus[1]));
		if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set npc_spells_id=%i where id=%i",atoi(sep->argplus[1]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
			safe_delete_array(query);
	}
}
 command.h Line 111
 
	Code: 
	void command_npcspell(Client *c, const Seperator *sep); //Draupner: Npc spell list 
 Post any more suggestions you want done.  
		
	
		
		
		
		
		
		
		
		
		
	
		
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
 
    | 
   | 
    | 
  
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				07-02-2004, 11:28 AM
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Dragon 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Mar 2004 
					Location: France, Bordeaux. 
					
					
						Posts: 677
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		I need a command to setup : 
- AC 
- Add Name to namefilter list when i see a jerk name 
- Add/edit tradeskill recipe online + a command to reload them ;p 
- Add/edit Zone Connection + a command to reload them 
- Add a NPC to an existing faction 
		
	
		
		
		
		
		
		
			
				__________________ 
				 
 
			 
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				07-02-2004, 12:21 PM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Hill Giant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Jul 2004 
					Location: In my basement 
					
					
						Posts: 131
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		AC I can do should be done tonight after I finish #npcspeed. Other not so sure on but i'll try to make them work 
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
 
    | 
   | 
    | 
  
 
	
		
		
		
			
			 
			
				07-02-2004, 01:01 PM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Hill Giant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Jul 2004 
					Location: In my basement 
					
					
						Posts: 131
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
				 
				
			 
			 
			
		
		
		
		Set NPC Run Speed 
Usage: #npcrun
 
command.cpp Line 258
 
	Code: 
	command_add("npcrun","[run] [help] - Sets Run/Walk speed for an NPC",100,command_npcrun) ||  //Draupner: Set npc run speed
 command.cpp Line 2653
 
	Code: 
	void command_npcrun(Client *c, const Seperator *sep) //Draupner: Set npc speed
{
	if ( strcasecmp( sep->arg[1], "help" ) == 0 )
	{
		c->Message(0, "Walk/Run Speed Chart:  ");
		c->Message(4, "     (.7) Normal Walk Speed");
		c->Message(4, "     (1.05) 9k Mount");
		c->Message(4, "     (1.25) Normal Run Speed");
		c->Message(4, "     (1.375) Run 1");
		c->Message(4, "     (1.50) Run 2");
		c->Message(4, "     (1.625) Run 3");
		c->Message(4, "     (1.9375) Spirit of Wolf");
		c->Message(4, "     (2.675) 100k Mount");
		c->Message(4, "     (3.2) Max Bard Speed");
	}
	else if((sep->arg[1][0] == 0 || strcasecmp(sep->arg[1],"*")==0) || ((c->GetTarget()==0) || (c->GetTarget()->IsClient())))
	{
		c->Message(0, "Usage: #npcrun [run] [help]");
	}
	else
	{
		char errbuf[MYSQL_ERRMSG_SIZE];
		char *query = 0;
		c->Message(15,"NPCID %u now runs at %i",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->argplus[1]));
		if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set runspeed=%i where id=%i",atoi(sep->argplus[1]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
			safe_delete_array(query);
	}
}
 command.h Line 112
 
	Code: 
	void command_npcrun(Client *c, const Seperator *sep); //Draupner: Npc Run Speed 
 AC will be done before I go to bed will try working on rest tomarrow.  
		
	
		
		
		
		
		
		
		
		
		
	
		
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
 
    | 
   | 
    | 
  
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				07-02-2004, 02:27 PM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Hill Giant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Jul 2004 
					Location: In my basement 
					
					
						Posts: 131
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		Setting Npc AC: 
Usage: #npcAC
 
command.cpp Line 259
 
	Code: 
			command_add("npcac","[amount] - Sets NPC ac",100,command_npcac) || //Draupner: Set NPC AC
 command.cpp Line 2699
 
	Code: 
	void command_npcac(Client *c, const Seperator *sep) //Draupner: Set npc ac
{
	if((sep->arg[1][0] == 0 || strcasecmp(sep->arg[1],"*")==0) || ((c->GetTarget()==0) || (c->GetTarget()->IsClient())))
		c->Message(0, "Usage: #npcac [amount]");
	
	else
	{
		char errbuf[MYSQL_ERRMSG_SIZE];
		char *query = 0;
		c->Message(15,"NPCID %u now has %i AC",c->GetTarget()->CastToNPC()->GetNPCTypeID(),atoi(sep->argplus[1]));
		if (database.RunQuery(query, MakeAnyLenString(&query, "update npc_types set ac=%i where id=%i",atoi(sep->argplus[1]),c->GetTarget()->CastToNPC()->GetNPCTypeID()), errbuf))
			safe_delete_array(query);
	}
}
 command.h 113
 
	Code: 
	void command_npcac(Client *c, const Seperator *sep); //Draupner: Npc AC 
  
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				07-02-2004, 02:29 PM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Discordant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Jun 2003 
					
					
					
						Posts: 449
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		damn dude...your a tank lol 
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				07-02-2004, 02:44 PM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Sarnak 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Mar 2004 
					
					
					
						Posts: 61
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		
	Quote: 
	
	
		| 
			
				 
					Originally Posted by x-scythe
					
				 
				damn dude...your a tank lol 
			
		 | 
	 
	 
 I agree! Thank you very very much for this code. I wish I had the knowledge to add things :( maybe one day... Quick question the server code is written in C++ correct? Just want to make sure before I learn somthing and find out I learned the wrong thing.  
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				07-02-2004, 03:14 PM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Hill Giant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Jul 2004 
					Location: In my basement 
					
					
						Posts: 131
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		yea its written in c++ 
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				07-02-2004, 03:19 PM
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Discordant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Feb 2004 
					Location: On your desktop 
					
					
						Posts: 387
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		DUDE YOU ARE MY NEW GOD WARE CAN I FIND YOUR TEMPLE? 
		
	
		
		
		
		
		
		
			
				__________________ 
				[12:38] <RangerDown> I watched Napoleon Dynamite the other day 
[12:39] <Xabob> omg 
[12:39] <Xabob> want me to shoot you now? 
[12:39] <RangerDown> and the first words out of my mouth at the start were: 
[12:39] <RangerDown> Hey I bet Rog looks like that
    
			 
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				07-02-2004, 03:34 PM
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Discordant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Feb 2004 
					Location: On your desktop 
					
					
						Posts: 387
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		Hmmz ok if ur making requests becuse i suck at coding anything can you make a few for me 
Being able to change theres stats suck at Str cha ect 
Changing there base HP 
Hp_regen_rate and Mana_regen_rate 
Loot table 
Vendor ID 
Spical attacks 
See invis if u have time not that importent atm
 
There you go thats about all we world builders need    your a god lol  
		
	
		
		
		
		
		
		
			
				__________________ 
				[12:38] <RangerDown> I watched Napoleon Dynamite the other day 
[12:39] <Xabob> omg 
[12:39] <Xabob> want me to shoot you now? 
[12:39] <RangerDown> and the first words out of my mouth at the start were: 
[12:39] <RangerDown> Hey I bet Rog looks like that
    
			 
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				07-02-2004, 04:01 PM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Sarnak 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Mar 2004 
					
					
					
						Posts: 61
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		
	Quote: 
	
	
		| 
			
				 
					Originally Posted by Draupner
					
				 
				yea its written in c++ 
			
		 | 
	 
	 
  Cool thanks for the quick reply Draupner. Now to find some C++ books :evil:  
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				07-02-2004, 04:44 PM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Hill Giant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Jul 2004 
					Location: In my basement 
					
					
						Posts: 131
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		#dumbname fixed look at my later post. 
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				07-02-2004, 04:46 PM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Sarnak 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Jun 2003 
					
					
					
						Posts: 34
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		holy shit...very fuckin nice man 
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
 
	
		
	
	
	
	
	
		
	
		 
		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 10:19 PM. 
 
		 
	 
 
 
     | 
     | 
    
   
      | 
     | 
      | 
    
   
     | 
      | 
     | 
    
   
       | 
      | 
       | 
     
    
    
  | 
   |