Download the .spr and .act file for the NPC and place them in data/sprite/npc.
Add your NPC to NPCidentity.lub. Most recommend adding new NPC's with ID's starting at 1500, so that there is room for new official sprites without them overlapping your custom ones. The name of the sprite does not have to be capitalized. If the name of the sprite is lowercase, you can add them to all files as lowercase, such as in the example below, the sprite can be JT_NPCNAME or JT_npcname. The last line of this file does not need a comma at the end of the line, but any lines which are not the last line require a comma.
JT_NPCNAME = 10500
Exact same rules apply to this file. Can be lowercase or uppercase, last line does not have to have a comma. Slightly different format is all that differs from NPCidentity.lub.
[jobtbl.JT_NPCNAME] = "NPCNAME",
Located in your db folder. Find the NPC list and add your NPC to the bottom.
npc.h is located in src/map. Open it in notepad or another text editor.
#define MAX_NPC_CLASS2_END 10203
#define MAX_NPC_CLASS2_END 10800
You can make the max larger if you feel it is necessary, but this should give you plenty of room. Save and recompile.