If you look through your NPCDialog.cs you will see NPC names in it.
If you expend the regions you will see 'case: 10000' for example.
If your npcs are saying 'my ID is' and they give you a number... That number is what you use for the case number, its the ID of that npc... Which is what the server uses to keep track of NPCs and their functions.
For example, click the guild conductress in twin city. It will say it's id is 300010.
If you add this
Code:
#region TwinCity - GuildArea - GC1
case 300010:
{
if (Control == 0)
{
GC.AddSend(Packets.NPCSay("Would you like to enter the guild area?"));
GC.AddSend(Packets.NPCLink("Yes.", 1));
GC.AddSend(Packets.NPCLink("Just passing by.", 255));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
}
else if (Control == 1)
GC.MyChar.Teleport(1038, 348, 339);
break;
}
#endregion
That guild conductress will ask you if you want to go to the guild area and be able to send you to the guild area.
The reason your npcs are giving you their NPC ids is because you don't have a script like the one above for that npc.