First. We are going to take this NPC from Paralyzer[GM] and modify this a little bit. here is the link if you have never made a simple NPC.
Easiest stuff first.
How to make an NPC check for a specific level.
To make an NPC check for a level we can do this by adding some extra information to (Control == 0)
This would make the NPC check if the char is under level 50. You can change this by simply changing the 50 to whatever level you want the check for.
The <= is to say, If the chars level is equal to or under level 50 then NPC can use the dialogue for (Control == 0)
Now we have added that to the first control we will need to make another statement so if the char is under the certain level you specified the NPC will tell the character.
This is an else statement. Basically if the NPC will not let you do something it will send you an else statement.
Oh forgot.
This says Equal to or under.
so to make it check for Equal to or higher level just change for
Ok, That is done now it will check for the level.
Code:
if (Control == 0 && GC.MyChar.Level <= 50)
The <= is to say, If the chars level is equal to or under level 50 then NPC can use the dialogue for (Control == 0)
Now we have added that to the first control we will need to make another statement so if the char is under the certain level you specified the NPC will tell the character.
Code:
#region FirstNPC case 987787: { if (Control == 0 && GC.MyChar.Level <= 50) { GC.AddSend(Packets.NPCSay("This is my first npc")); GC.AddSend(Packets.NPCLink("Yes.", 2)); GC.AddSend(Packets.NPCLink("No.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } if (Control == 2) { GC.MyChar.CPs += 200; GC.AddSend(Packets.NPCSay("This is my second-part npc")); GC.AddSend(Packets.NPCLink("Thank you.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else { GC.AddSend(Packets.NPCSay("Sorry your level is too High, You need to be level 50 or under to use this")); GC.AddSend(Packets.NPCLink("Sorry.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } break; } #endregion
Oh forgot.
Code:
<=
so to make it check for Equal to or higher level just change for
Code:
>=
Make an NPC to check for a specific class.
Code:
#region FirstNPC case 987787: { if (Control == 0 && (GC.MyChar.Job >= [COLOR="Red"]100[/COLOR] && GC.MyChar.Job <= [COLOR="red"]145[/COLOR])) // This will make a check to see if your char is a tao. { GC.AddSend(Packets.NPCSay("This is my first npc")); GC.AddSend(Packets.NPCLink("Yes.", 2)); GC.AddSend(Packets.NPCLink("No.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } if (Control == 2) { GC.MyChar.CPs += 200; GC.AddSend(Packets.NPCSay("This is my second-part npc")); GC.AddSend(Packets.NPCLink("Thank you.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else { GC.AddSend(Packets.NPCSay("Sorry, You are not a Tao i cannot do anything for you.")); GC.AddSend(Packets.NPCLink("Sorry.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } break; } #endregion
Code:
if (Control == 0 if (Control == 0 && (GC.MyChar.Job >= [COLOR="Red"]100[/COLOR] && GC.MyChar.Job <= [COLOR="red"]145[/COLOR]))
If you want to make it so only a FireMaster (Lvl 110+ FireTao with all promotions) then simply make both
Code:
(GC.MyChar.Job >= [COLOR="Red"]145[/COLOR] && GC.MyChar.Job <= [COLOR="red"]145[/COLOR]))
Add an item to characters inventory
Ok, So we are going to use the same NPC we have been using.
Ok, So instead of adding CPs to your inventory this will add a DBScroll.
First in Blue this will check that your inventory can hold another item.
You can change this value to any number you like under 39!
Very Important! Do not make the NPC check for
as this will check to see if you have 40 items or less in your bag.
Remember the max amount of items you can hold is 40 so this would be pointless.
Second in Red is the item it will add to your inventory.
You can find the item number in your items.txt
Code:
#region npcname case 987787: { if (Control == 0 [COLOR="Blue"]&& GC.MyChar.Inventory.Count <= 39[/COLOR]) { GC.AddSend(Packets.NPCSay("Would you like a free DragonBallScroll?")); GC.AddSend(Packets.NPCLink("Yes.", 2)); GC.AddSend(Packets.NPCLink("No.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } if (Control == 2) { [COLOR="Red"]GC.MyChar.AddItem(720028);[/COLOR] GC.AddSend(Packets.NPCSay("Here you go.")); GC.AddSend(Packets.NPCLink("Thank you.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } break; } #endregion
First in Blue this will check that your inventory can hold another item.
You can change this value to any number you like under 39!
Very Important! Do not make the NPC check for
Code:
<=40
Remember the max amount of items you can hold is 40 so this would be pointless.
Second in Red is the item it will add to your inventory.
You can find the item number in your items.txt
How to remove an item from someones inventory.
We will be using the same NPC as we have done for the rest of the guides.
The Blue is the check to see if your character has the item.
If your character does not have the item it will go to the else statement.
The Red is where the system will remove the item from your inventory.
Code:
#region npcname case 987787: { if (Control == 0 [COLOR="Blue"]&& (GC.MyChar.Inventory.Contains(720028))[/COLOR]) { GC.AddSend(Packets.NPCSay("This will remove DragonBallScroll")); GC.AddSend(Packets.NPCLink("Yes.", 2)); GC.AddSend(Packets.NPCLink("No.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } if (Control == 2) { [COLOR="Red"]GC.MyChar.RemoveItem(GC.MyChar.NextItem(720028)[/COLOR]); GC.AddSend(Packets.NPCSay("There you go its been removed")); GC.AddSend(Packets.NPCLink("Thank you.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else { GC.AddSend(Packets.NPCSay("Sorry, You dont have a DragonBallScroll.")); GC.AddSend(Packets.NPCLink("Sorry.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } break; } #endregion
If your character does not have the item it will go to the else statement.
The Red is where the system will remove the item from your inventory.
Now to put all of these into 1 NPC to make a very easy quest.
Black Tulip Hunter quest for lvl 1-50 Taos.
#region Black Tulip Hunter quest for lvl 1-50 Taos
case 123456: // Remember to make a new case number for each new NPC
{
if (Control == 0 && GC.MyChar.Level <= 50 && (GC.MyChar.Job >= 100 && GC.MyChar.Job <= 145)) // This checks Level and Job.
{
GC.AddSend(Packets.NPCSay("Hello, Can you help me?")); // What the NPC will say
GC.AddSend(Packets.NPCLink("Sure, Whats the matter?", 1)); // This is a reply button(Control == 1)
GC.AddSend(Packets.NPCLink("Here, I have the items!", 3)); // This is a reply button(Conrtol == 3)
GC.AddSend(Packets.NPCLink("Just passing by", 255)); //When you use 255 as a Control it will exit the NPC dialouge
GC.AddSend(Packets.NPCSetFace(30));
GC.AddSend(Packets.NPCFinish());
}
else // else < this is what the NPC will say if a Character does not meet the requirements in the first Control (Control == 0)
{
GC.AddSend(Packets.NPCSay("Sorry you are not a Taoist lvl 1-50.")); // What the NPC will say
GC.AddSend(Packets.NPCLink("Ok", 255)); // Control to exit the dialogue
GC.AddSend(Packets.NPCLink("Just passing by", 255)); //When you use 255 as a Control it will exit the NPC dialouge
GC.AddSend(Packets.NPCSetFace(30));
GC.AddSend(Packets.NPCFinish());
}
if (Control == 1) // When the character clicks "Sure, Whats the matter?" this is where the system will send the next dialogue
{
GC.AddSend(Packets.NPCSay("I have lost 5 *itemname* can you help me find them?")); // What the NPC will say
GC.AddSend(Packets.NPCLink("Yer sure.", 2)); // This is a reply button(Control == 2)
GC.AddSend(Packets.NPCLink("Just passing by", 255)); //When you use 255 as a Control it will exit the NPC dialouge
GC.AddSend(Packets.NPCSetFace(30));
GC.AddSend(Packets.NPCFinish());
}
if (Control == 2) // When the character clicks "Yer sure" this is where the system will send the next dialogue
{
GC.AddSend(Packets.NPCSay("Great! Go to *cityname* and find 5 *itemname* bring them to me quick!")); // What the NPC will say
GC.AddSend(Packets.NPCLink("I'm now going!", 255)); //When you use 255 as a Control it will exit the NPC dialouge
GC.AddSend(Packets.NPCSetFace(30));
GC.AddSend(Packets.NPCFinish());
}
if (Control == 3) // When the character clicks "Here, I have the items!" this is where the system will send the next dialogue
{
if (GC.MyChar.InventoryContains(723584, 5)) // This checks the characters inventory for the items. (723584, 5)< This is the item number 723584 the , 5 after its is the amount of the item they need to have.
{
GC.MyChar.RemoveItem(GC.MyChar.NextItem(723584)); // This will remove the item from the characters inventory
GC.MyChar.RemoveItem(GC.MyChar.NextItem(723584)); // This will remove the item from the characters inventory
GC.MyChar.RemoveItem(GC.MyChar.NextItem(723584)); // This will remove the item from the characters inventory
GC.MyChar.RemoveItem(GC.MyChar.NextItem(723584)); // This will remove the item from the characters inventory
GC.MyChar.RemoveItem(GC.MyChar.NextItem(723584)); // This will remove the item from the characters inventory
GC.MyChar.AddItem(720028, 2); // This will add the "reward" to the characters inventory. (720028, 2)< This is the item number 720028 the , 2 after its is the amount of the item that will be added to the characters inventory.
GC.AddSend(Packets.NPCSay("Wow, Thank you so much here take your reward!")); // What the NPC will say
GC.AddSend(Packets.NPCLink("Thanks", 255)); //When you use 255 as a Control it will exit the NPC dialouge
GC.AddSend(Packets.NPCSetFace(30));
GC.AddSend(Packets.NPCFinish());
}
else // This else statment is part of (Control == 3) It is what the NPC will say if the character does not have the required items
{
GC.AddSend(Packets.NPCSay("You do not have the required items")); // What the NPC will say
GC.AddSend(Packets.NPCLink("Ok", 255)); //When you use 255 as a Control it will exit the NPC dialouge
GC.AddSend(Packets.NPCSetFace(30));
GC.AddSend(Packets.NPCFinish());
}
}
break; // This break; is to say that this is the end of the NPC dialogues.
}
#endregion // This is to end the region
We use #region to make all the NPCs easier to find.
Make sure when you start a region you end it with #endregion or you will get errors
I dont think i have missed anything here, If i have please tell me and i will fix it. If you are unsure of anything please feel free to post and i will help you best i can.
#region Black Tulip Hunter quest for lvl 1-50 Taos
case 123456: // Remember to make a new case number for each new NPC
{
if (Control == 0 && GC.MyChar.Level <= 50 && (GC.MyChar.Job >= 100 && GC.MyChar.Job <= 145)) // This checks Level and Job.
{
GC.AddSend(Packets.NPCSay("Hello, Can you help me?")); // What the NPC will say
GC.AddSend(Packets.NPCLink("Sure, Whats the matter?", 1)); // This is a reply button(Control == 1)
GC.AddSend(Packets.NPCLink("Here, I have the items!", 3)); // This is a reply button(Conrtol == 3)
GC.AddSend(Packets.NPCLink("Just passing by", 255)); //When you use 255 as a Control it will exit the NPC dialouge
GC.AddSend(Packets.NPCSetFace(30));
GC.AddSend(Packets.NPCFinish());
}
else // else < this is what the NPC will say if a Character does not meet the requirements in the first Control (Control == 0)
{
GC.AddSend(Packets.NPCSay("Sorry you are not a Taoist lvl 1-50.")); // What the NPC will say
GC.AddSend(Packets.NPCLink("Ok", 255)); // Control to exit the dialogue
GC.AddSend(Packets.NPCLink("Just passing by", 255)); //When you use 255 as a Control it will exit the NPC dialouge
GC.AddSend(Packets.NPCSetFace(30));
GC.AddSend(Packets.NPCFinish());
}
if (Control == 1) // When the character clicks "Sure, Whats the matter?" this is where the system will send the next dialogue
{
GC.AddSend(Packets.NPCSay("I have lost 5 *itemname* can you help me find them?")); // What the NPC will say
GC.AddSend(Packets.NPCLink("Yer sure.", 2)); // This is a reply button(Control == 2)
GC.AddSend(Packets.NPCLink("Just passing by", 255)); //When you use 255 as a Control it will exit the NPC dialouge
GC.AddSend(Packets.NPCSetFace(30));
GC.AddSend(Packets.NPCFinish());
}
if (Control == 2) // When the character clicks "Yer sure" this is where the system will send the next dialogue
{
GC.AddSend(Packets.NPCSay("Great! Go to *cityname* and find 5 *itemname* bring them to me quick!")); // What the NPC will say
GC.AddSend(Packets.NPCLink("I'm now going!", 255)); //When you use 255 as a Control it will exit the NPC dialouge
GC.AddSend(Packets.NPCSetFace(30));
GC.AddSend(Packets.NPCFinish());
}
if (Control == 3) // When the character clicks "Here, I have the items!" this is where the system will send the next dialogue
{
if (GC.MyChar.InventoryContains(723584, 5)) // This checks the characters inventory for the items. (723584, 5)< This is the item number 723584 the , 5 after its is the amount of the item they need to have.
{
GC.MyChar.RemoveItem(GC.MyChar.NextItem(723584)); // This will remove the item from the characters inventory
GC.MyChar.RemoveItem(GC.MyChar.NextItem(723584)); // This will remove the item from the characters inventory
GC.MyChar.RemoveItem(GC.MyChar.NextItem(723584)); // This will remove the item from the characters inventory
GC.MyChar.RemoveItem(GC.MyChar.NextItem(723584)); // This will remove the item from the characters inventory
GC.MyChar.RemoveItem(GC.MyChar.NextItem(723584)); // This will remove the item from the characters inventory
GC.MyChar.AddItem(720028, 2); // This will add the "reward" to the characters inventory. (720028, 2)< This is the item number 720028 the , 2 after its is the amount of the item that will be added to the characters inventory.
GC.AddSend(Packets.NPCSay("Wow, Thank you so much here take your reward!")); // What the NPC will say
GC.AddSend(Packets.NPCLink("Thanks", 255)); //When you use 255 as a Control it will exit the NPC dialouge
GC.AddSend(Packets.NPCSetFace(30));
GC.AddSend(Packets.NPCFinish());
}
else // This else statment is part of (Control == 3) It is what the NPC will say if the character does not have the required items
{
GC.AddSend(Packets.NPCSay("You do not have the required items")); // What the NPC will say
GC.AddSend(Packets.NPCLink("Ok", 255)); //When you use 255 as a Control it will exit the NPC dialouge
GC.AddSend(Packets.NPCSetFace(30));
GC.AddSend(Packets.NPCFinish());
}
}
break; // This break; is to say that this is the end of the NPC dialogues.
}
#endregion // This is to end the region
We use #region to make all the NPCs easier to find.
Make sure when you start a region you end it with #endregion or you will get errors
I dont think i have missed anything here, If i have please tell me and i will fix it. If you are unsure of anything please feel free to post and i will help you best i can.
NPC Timer.
This is a very simple NPC to check time and give you a free item. Can easily be converted for use with anything. E.g if you wanted PK.Arena to only be used at certain times. or anything here it is.
Code:
#region Timed NPC case 78456: // NPC case ID { if (Control == 0) { GC.AddSend(Packets.NPCSay("Hi, I can give you something for free. But only if you are here at a certain time.")); // NPC talk GC.AddSend(Packets.NPCLink("I am here for a free gift", 1)); //(Control == 1) GC.AddSend(Packets.NPCLink("What time do i need to be here?", 2)); //(Control == 2) GC.AddSend(Packets.NPCLink("Just passing by", 255)); // Exits the dialogue GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else if (Control == 1) { if (DateTime.Now.DayOfWeek == DayOfWeek.Wednesday) // Day of the week { if (DateTime.Now.Hour == 06 && DateTime.Now.Minute >= 15 && DateTime.Now.Minute <= 20) //Time. this is saying if the time is more than 06:15 but less than 06:20 then a gift can be claimed { GC.MyChar.AddItem(720028); // Item This is a DBScroll just as an example GC.AddSend(Packets.NPCSay("Here you go")); // NPC speak GC.AddSend(Packets.NPCLink("Thanks.", 255)); // Close dialogue GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else { GC.AddSend(Packets.NPCSay("You will be able to claim a free gift at 18:00")); // NPC speak GC.AddSend(Packets.NPCLink("Alrite", 255)); // Close dialogue GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } } if (Control == 2) { GC.AddSend(Packets.NPCSay("You need to be here between 06:15 and 06:20")); // NPC speak GC.AddSend(Packets.NPCLink("Ok then, Bye", 255)); // Close dialogue GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } } break; } #endregion
Timed NPC 3 Days
Code:
#region Timed NPC 3 Days case 78456: // NPC case ID { if (Control == 0) { GC.AddSend(Packets.NPCSay("Hi, I can give you something for free. But only if you are here at a certain time.")); // NPC talk GC.AddSend(Packets.NPCLink("I am here for a free gift(Wednesday)", 1)); //(Control == 1) GC.AddSend(Packets.NPCLink("I am here for a free gift(Friday)", 3)); //(Control == 3) GC.AddSend(Packets.NPCLink("I am here for a free gift(Monday)", 4)); //(Control == 4) GC.AddSend(Packets.NPCLink("What time do i need to be here?", 2)); //(Control == 2) GC.AddSend(Packets.NPCLink("Just passing by", 255)); // Exits the dialogue GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else if (Control == 1) { if (DateTime.Now.DayOfWeek == DayOfWeek.Wednesday) // Day of the week { if (DateTime.Now.Hour == 06 && DateTime.Now.Minute >= 15 && DateTime.Now.Minute <= 20) //Time. this is saying if the time is more than 06:15 but less than 06:20 then a gift can be claimed { GC.MyChar.AddItem(720028); // Item This is a DBScroll just as an example GC.AddSend(Packets.NPCSay("Here you go")); // NPC speak GC.AddSend(Packets.NPCLink("Thanks.", 255)); // Close dialogue GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else { GC.AddSend(Packets.NPCSay("You will be able to claim a free gift at 18:00")); // NPC speak GC.AddSend(Packets.NPCLink("Alrite", 255)); // Close dialogue GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } } else if (Control == 3) { if (DateTime.Now.DayOfWeek == DayOfWeek.Friday) // Day of the week { if (DateTime.Now.Hour == 06 && DateTime.Now.Minute >= 15 && DateTime.Now.Minute <= 20) //Time. this is saying if the time is more than 06:15 but less than 06:20 then a gift can be claimed { GC.MyChar.AddItem(720028); // Item This is a DBScroll just as an example GC.AddSend(Packets.NPCSay("Here you go")); // NPC speak GC.AddSend(Packets.NPCLink("Thanks.", 255)); // Close dialogue GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else { GC.AddSend(Packets.NPCSay("You will be able to claim a free gift at 18:00")); // NPC speak GC.AddSend(Packets.NPCLink("Alrite", 255)); // Close dialogue GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } } else if (Control == 4) { if (DateTime.Now.DayOfWeek == DayOfWeek.Monday) // Day of the week { if (DateTime.Now.Hour == 06 && DateTime.Now.Minute >= 15 && DateTime.Now.Minute <= 20) //Time. this is saying if the time is more than 06:15 but less than 06:20 then a gift can be claimed { GC.MyChar.AddItem(720028); // Item This is a DBScroll just as an example GC.AddSend(Packets.NPCSay("Here you go")); // NPC speak GC.AddSend(Packets.NPCLink("Thanks.", 255)); // Close dialogue GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else { GC.AddSend(Packets.NPCSay("You will be able to claim a free gift at 18:00")); // NPC speak GC.AddSend(Packets.NPCLink("Alrite", 255)); // Close dialogue GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } } if (Control == 2) { GC.AddSend(Packets.NPCSay("You need to be here between 06:15 and 06:20")); // NPC speak GC.AddSend(Packets.NPCLink("Ok then, Bye", 255)); // Close dialogue GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } } } } break; } #endregion
Add a Skill NPC.
Code:
#region Add a skill case 123456: // Make a new case ID for each NPC { if (Control == 0) // Click on the NPC { GC.AddSend(Packets.NPCSay("I am going to teach you a skill. Would you like that?")); // What NPC says GC.AddSend(Packets.NPCLink("Yes.", 1)); // Response (Control == 1) GC.AddSend(Packets.NPCLink("Just passing by.", 255)); // Exit dialogue GC.AddSend(Packets.NPCSetFace(30)); GC.AddSend(Packets.NPCFinish()); } if (Control == 1) { GC.AddSend(Packets.NPCSay("What skill would you like to learn?")); // What NPC says GC.AddSend(Packets.NPCLink("Thunder", 3)); // Response (Control == 3) GC.AddSend(Packets.NPCLink("Fire", 4)); // Response (Control == 4) GC.AddSend(Packets.NPCLink("NightDevil", 5)); // Response (Control == 5) GC.AddSend(Packets.NPCLink("Superman", 6)); // Response (Control == 6) GC.AddSend(Packets.NPCLink("FastBlade", 7)); // Response (Control == 7) GC.AddSend(Packets.NPCLink("Just passing by", 255)); // Exit dialogue GC.AddSend(Packets.NPCSetFace(30)); GC.AddSend(Packets.NPCFinish()); } if (Control == 3) { GC.MyChar.NewSkill(new Game.Skill() { ID = 1000, Lvl = 0 }); // This is the code that we use to manipulate skills. in this we have Job ID and the Level of the job. // If you want to change the skill you change the ID and if you want it to add a e.g lvl 2 skill you set // The level to a higher level e.g Lvl = 2 }); GC.AddSend(Packets.NPCSay("You have learned Thunder!")); // What NPC says GC.AddSend(Packets.NPCLink("Thanks", 255)); // Exit dialogue GC.AddSend(Packets.NPCSetFace(30)); GC.AddSend(Packets.NPCFinish()); } if (Control == 4) { GC.MyChar.NewSkill(new Game.Skill() { ID = 1001, Lvl = 0 });// This is the code that we use to manipulate skills. in this we have Job ID and the Level of the job. // If you want to change the skill you change the ID and if you want it to add a e.g lvl 2 skill you set // The level to a higher level e.g Lvl = 2 }); GC.AddSend(Packets.NPCSay("You have learned Fire!")); // What NPC says GC.AddSend(Packets.NPCLink("Thanks", 255)); // Exit dialogue GC.AddSend(Packets.NPCSetFace(30)); GC.AddSend(Packets.NPCFinish()); } if (Control == 5) { GC.MyChar.NewSkill(new Game.Skill() { ID = 1360, Lvl = 0 });// This is the code that we use to manipulate skills. in this we have Job ID and the Level of the job. // If you want to change the skill you change the ID and if you want it to add a e.g lvl 2 skill you set // The level to a higher level e.g Lvl = 2 }); GC.AddSend(Packets.NPCSay("You have learned NightDevil!")); // What NPC says GC.AddSend(Packets.NPCLink("Thanks", 255)); // Exit dialogue GC.AddSend(Packets.NPCSetFace(30)); GC.AddSend(Packets.NPCFinish()); } if (Control == 6) { GC.MyChar.NewSkill(new Game.Skill() { ID = 1025, Lvl = 0 });// This is the code that we use to manipulate skills. in this we have Job ID and the Level of the job. // If you want to change the skill you change the ID and if you want it to add a e.g lvl 2 skill you set // The level to a higher level e.g Lvl = 2 }); GC.AddSend(Packets.NPCSay("You have learned Superman!")); // What NPC says GC.AddSend(Packets.NPCLink("Thanks", 255)); // Exit dialogue GC.AddSend(Packets.NPCSetFace(30)); GC.AddSend(Packets.NPCFinish()); } if (Control == 7) { GC.MyChar.NewSkill(new Game.Skill() { ID = 1045, Lvl = 0 });// This is the code that we use to manipulate skills. in this we have Job ID and the Level of the job. // If you want to change the skill you change the ID and if you want it to add a e.g lvl 2 skill you set // The level to a higher level e.g Lvl = 2 }); GC.AddSend(Packets.NPCSay("You have learned FastBlade!")); // What NPC says GC.AddSend(Packets.NPCLink("Thanks", 255)); // Exit dialogue GC.AddSend(Packets.NPCSetFace(30)); GC.AddSend(Packets.NPCFinish()); } break; } // Dont forget to end the NPC dialogue #endregion // It is entirely possible to add an NPC without adding the region and engregion. // We add this though to make it easier to find what we are looking for.
Make a beginner shop with multiple pages
This should really be near the top of my post as it is very simple. But gonna add it here.
Ok guys, This is a very simple release all this is going to do is sell items, We are going to be adding more than 1 page of items so we will need to make a "next" button.
This NPC will sell Cups, Talismans etc on the first page and some other stuff on the next page.
Im sure by now you can add the extra items and understand how this NPC works. If not then leave a message and i will explain what stuff means and does
Ok guys, This is a very simple release all this is going to do is sell items, We are going to be adding more than 1 page of items so we will need to make a "next" button.
This NPC will sell Cups, Talismans etc on the first page and some other stuff on the next page.
Code:
#region Seller case 312954: { if (Control == 0) { GC.AddSend(Packets.NPCSay("Welcome to the Tc Cup Seller")); GC.AddSend(Packets.NPCLink("Cool let me in.", 1)); GC.AddSend(Packets.NPCLink("Haa Ok Then", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } if (Control == 1) { GC.AddSend(Packets.NPCSay("Are you interested in any of these Items?")); GC.AddSend(Packets.NPCLink("Bronze Prize - 1kk Cps", 2)); GC.AddSend(Packets.NPCLink("Silver Prize - 2kk CPs", 3)); GC.AddSend(Packets.NPCLink("Gold Prize - 5kk CPs", 4)); GC.AddSend(Packets.NPCLink("Gold Trophy - 10kk CPs", 5)); GC.AddSend(Packets.NPCLink("Gold Cup - 15kk CPs", 6)); GC.AddSend(Packets.NPCLink("Next", 7)); GC.AddSend(Packets.NPCLink("No, thanks.", 255)); GC.AddSend(Packets.NPCSetFace(15)); GC.AddSend(Packets.NPCFinish()); } if (Control == 7) { GC.AddSend(Packets.NPCSay("Are you interested in any of these Items?")); GC.AddSend(Packets.NPCLink("DragonBall - 315 CPs", 8)); GC.AddSend(Packets.NPCLink("Emerald - 500 CPs", 9)); GC.AddSend(Packets.NPCLink("SandRaider - 10000 CPs", 10)); GC.AddSend(Packets.NPCLink("Back", 1)); GC.AddSend(Packets.NPCLink("No, thanks.", 255)); GC.AddSend(Packets.NPCSetFace(15)); GC.AddSend(Packets.NPCFinish()); } if (Control == 2) { if (GC.MyChar.CPs >= 1000000) { GC.MyChar.CPs -= 1000000; GC.MyChar.AddItem(2100055); GC.AddSend(Packets.NPCSay("Here you are.")); GC.AddSend(Packets.NPCLink("Thanks.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else { GC.AddSend(Packets.NPCSay("You don't have enough Cps.")); GC.AddSend(Packets.NPCLink("I see.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } } if (Control == 3) { if (GC.MyChar.CPs >= 2000000) { GC.MyChar.CPs -= 2000000; GC.MyChar.AddItem(2100065); GC.AddSend(Packets.NPCSay("Here you are.")); GC.AddSend(Packets.NPCLink("Thanks.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else { GC.AddSend(Packets.NPCSay("You don't have enough Cps.")); GC.AddSend(Packets.NPCLink("I see.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } } else if (Control == 4) { if (GC.MyChar.CPs >= 5000000) { GC.MyChar.CPs -= 5000000; GC.MyChar.AddItem(2100075); GC.AddSend(Packets.NPCSay("Here you are.")); GC.AddSend(Packets.NPCLink("Thanks.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else { GC.AddSend(Packets.NPCSay("You don't have enough Cps.")); GC.AddSend(Packets.NPCLink("I see.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } } else if (Control == 5) { if (GC.MyChar.CPs >= 10000000) { GC.MyChar.CPs -= 10000000; GC.MyChar.AddItem(2100085); GC.AddSend(Packets.NPCSay("Here you are.")); GC.AddSend(Packets.NPCLink("Thanks.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else { GC.AddSend(Packets.NPCSay("You don't have enough Cps.")); GC.AddSend(Packets.NPCLink("I see.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } } else if (Control == 6) { if (GC.MyChar.CPs >= 15000000) { GC.MyChar.CPs -= 15000000; GC.MyChar.AddItem(2100095); GC.AddSend(Packets.NPCSay("Here you are.")); GC.AddSend(Packets.NPCLink("Thanks.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } else { GC.AddSend(Packets.NPCSay("You don't have enough Cps.")); GC.AddSend(Packets.NPCLink("I see.", 255)); GC.AddSend(Packets.NPCSetFace(N.Avatar)); GC.AddSend(Packets.NPCFinish()); } } break; } #endregion
Open moonboxes
Ok. So we need to go to Character.cs and search for
Under that we need to make a new case.
Then we need to create a check under this to check if your inventory contains less than 35. (only do this check if you are adding 5 or less items. Obviouisly change it to check for however many items you are going to add to the inventory from the moonbox.
This is what the code should now look like.
Code:
#region LifeFruit case 723726: { CurHP = MaxHP; CurMP = MaxMP; RemoveItem(I); break; } #endregion
Code:
#region MoonBox case 721080: // Change this to the same number that moonboxes on your server use. I think this is the default(not too sure)
Code:
#region MoonBox case 721080: { if (Inventory.Count <= 35) // This is the check on your inventory. {
Now we will need to add the items that you want the moonbox to contain.
Very simple code. but for some people they cant get the moonbox working properly.
Code:
#region MoonBox case 721080: { if (Inventory.Count <= 45) { RemoveItem(NextItem(721080)); // This removes the moonbox AddItem(1088001); //Meteor // These are the items you want to add AddItem(1088001); //Meteor // These are the items you want to add AddItem(1088001); //Meteor // These are the items you want to add AddItem(1088001); //Meteor // These are the items you want to add AddItem(730003); //+3Stone // These are the items you want to add } break; } #endregion
Add NPC to your source.
Ok guys said i would do this and now finally getting round to it.
For this we will be using NPC.txt so go to OldCODB and open it up.
it really very easy to add a NPC all you need is common sense and fingers to type.
Ok if this is the first time you have opened it up its just gonna look like a lot of numbers, But i assure you its not scary at all.
In red is the NPC ID / Case number.
In Navy is the NPC Look
In Turquise i cant remember what these do.
In Green is the map ID and Coordinates.
================================================== ===================
To make your custom NPC you will need this list.
Map IDs
NPC IDs
First we need to go to your source and find the case number of the NPC we want to add. i will be using 123456 as an example.
Then we need to get the NPC Mesh from the list above. I will use Prison Officer as an example.
i normally use 2 0 for my NPCs.
Then we need to add the map and the coordinates. So you will have something that looks like this.
it really very easy to add a NPC all you need is common sense and fingers to type.
Ok if this is the first time you have opened it up its just gonna look like a lot of numbers, But i assure you its not scary at all.
Code:
[COLOR="Red"]302[/COLOR] [COLOR="Navy"]6200[/COLOR] [COLOR="MediumTurquoise"]2 54[/COLOR] [COLOR="Green"]1002 337 721[/COLOR]
In Navy is the NPC Look
In Turquise i cant remember what these do.
In Green is the map ID and Coordinates.
================================================== ===================
To make your custom NPC you will need this list.
Map IDs
FurnitureStore = 10001,
MineL = 10003,
MineR = 10004,
MineLL = 10005,
MineLLL = 10006,
MineLLR = 10007,
MineLR = 10008,
MineLRR = 10009,
MineLRL = 10010,
MineRL = 10011,
MineRR = 10012,
MineRRL = 10013,
MineRRR = 10014,
MineRLL = 10015,
MineRLR = 10016,
Desert = 1000,
AncientMaze = 1001,
TwinCity = 1002,
Mine = 1003,
Promotion = 1004,
PKArena = 1005,
Stables = 1006,
BirthVillage = 1010,
PhoenixCastle = 1011,
RebirthMap = 1012,
HalkingCave = 1013,
BanditCave = 1014,
BirdIsland = 1015,
TombBatCave = 1016,
AdvanceZone = 1017,
ApeMoutain = 1020,
DesertCity = 1000,
Moonspring = 1000,
WaterFallCave = 1011,
MapleForest = 1011,
LoveCanyon = 1020,
ReedsIsland = 1015,
DreamLand = 1012,
WonderLand = 1013,
DragonPool = 1014,
KylinCave = 1016,
DisCity = 1039,
Market = 1036,
lottery = 700,
desert = 1000,
d_antre01 = 1001,
newplain = 1002,
mine01 = 1003,
forum = 1004,
arena = 1005,
horse = 1006,
star01 = 1100,
star02 = 1101,
star03 = 1102,
star04 = 1103,
star05 = 1104,
star10 = 1105,
star06 = 1106,
star07 = 1107,
star08 = 1108,
star09 = 1109,
smith = 1007,
ColorsShop = 1008,
grocery2 = 1009,
newbie = 1010,
woods = 1011,
sky = 1012,
tiger = 1013,
dragon = 1014,
island = 1015,
qiling = 1016,
warena = 1017,
CTFMap = 1018,
larena = 1019,
canyon = 1020,
mine = 1021,
brave = 1022,
mineone = 1025,
minetwo = 1026,
minethree = 1027,
minefour = 1028,
mineone2 = 1029,
minetwo2 = 1030,
minethree2 = 1031,
minefour2 = 1032,
newbie2 = 1035,
mineone3 = 5000,
prison = 6000,
street = 1036,
factionblack = 1037,
GuildWar = 1038,
TrainingGround = 1039,
skycut = 1040,
skymaze = 1041,
prison2 = 6001,
lineuppass = 1042,
lineup = 1043,
lineup2 = 1044,
lineup3 = 1045,
lineup4 = 1046,
lineup5 = 1047,
lineup6 = 1048,
lineup7 = 1049,
lineup8 = 1050,
riskisland = 1051,
skymaze1 = 1060,
skymaze2 = 1061,
skymaze3 = 1062,
star = 1064,
boa = 1070,
parena1 = 1080,
parena2 = 1081,
newcanyon = 1075,
newwoods = 1076,
newdesert = 1077,
newisland = 1078,
mysisland = 1079,
riskisland1 = 1063,
idlandmap = 1082,
parenam = 1090,
parenas = 1091,
house01 = 1098,
house03 = 1099,
sanctuary = 1601,
task01 = 1201,
task02 = 1202,
task04 = 1204,
task05 = 1205,
task07 = 1207,
task08 = 1208,
task10 = 1210,
task11 = 1211,
StoneCity = 1213,
islandsnail = 1212,
desertsnail = 1213,
canyonfairy = 1214,
woodsfairy = 1215,
newplainfairy = 1216,
minea = 1500,
mineb = 1501,
minec = 1502,
mined = 1503,
Lab1 = 1351,
Lab2 = 1352,
Lab3 = 1353,
Lab4 = 1354,
//PK Maps of city's
slpk = 1505,
hhpk = 1506,
blpk = 1507,
ympk = 1508,
mfpk = 1509,
faction01 = 1550,
faction012 = 1551,
grocery3 = 1510,
forum1 = 1511,
tiger1 = 1512,
jokul01 = 1615,
tiemfiles = 1616,
tiemfiles1 = 1617,
HellGate = 2021,
HellSquare = 2022,
HellSloister = 2023,
HellSigil = 2024,
cordiform = 1645,
faction2 = 1560,
faction3 = 1561,
forum2 = 1707,
Gulf = 1700,
Huis4 = 601,
fairylandPK07 = 1760,
kunlun1 = 1712,
kunlun2 = 1713,
kunlun3 = 1714,
kunlun4 = 1715,
kunlun5 = 1716,
kunlun6 = 1717,
kunlun7 = 1718,
kunlun8 = 1719,
kunlun9 = 1720,
Halloween2007d = 1763,
Halloween2007c = 1764,
Halloween2007b = 1765,
Halloween2007a = 1766,
Halloween2007Boss = 1767,
MineL = 10003,
MineR = 10004,
MineLL = 10005,
MineLLL = 10006,
MineLLR = 10007,
MineLR = 10008,
MineLRR = 10009,
MineLRL = 10010,
MineRL = 10011,
MineRR = 10012,
MineRRL = 10013,
MineRRR = 10014,
MineRLL = 10015,
MineRLR = 10016,
Desert = 1000,
AncientMaze = 1001,
TwinCity = 1002,
Mine = 1003,
Promotion = 1004,
PKArena = 1005,
Stables = 1006,
BirthVillage = 1010,
PhoenixCastle = 1011,
RebirthMap = 1012,
HalkingCave = 1013,
BanditCave = 1014,
BirdIsland = 1015,
TombBatCave = 1016,
AdvanceZone = 1017,
ApeMoutain = 1020,
DesertCity = 1000,
Moonspring = 1000,
WaterFallCave = 1011,
MapleForest = 1011,
LoveCanyon = 1020,
ReedsIsland = 1015,
DreamLand = 1012,
WonderLand = 1013,
DragonPool = 1014,
KylinCave = 1016,
DisCity = 1039,
Market = 1036,
lottery = 700,
desert = 1000,
d_antre01 = 1001,
newplain = 1002,
mine01 = 1003,
forum = 1004,
arena = 1005,
horse = 1006,
star01 = 1100,
star02 = 1101,
star03 = 1102,
star04 = 1103,
star05 = 1104,
star10 = 1105,
star06 = 1106,
star07 = 1107,
star08 = 1108,
star09 = 1109,
smith = 1007,
ColorsShop = 1008,
grocery2 = 1009,
newbie = 1010,
woods = 1011,
sky = 1012,
tiger = 1013,
dragon = 1014,
island = 1015,
qiling = 1016,
warena = 1017,
CTFMap = 1018,
larena = 1019,
canyon = 1020,
mine = 1021,
brave = 1022,
mineone = 1025,
minetwo = 1026,
minethree = 1027,
minefour = 1028,
mineone2 = 1029,
minetwo2 = 1030,
minethree2 = 1031,
minefour2 = 1032,
newbie2 = 1035,
mineone3 = 5000,
prison = 6000,
street = 1036,
factionblack = 1037,
GuildWar = 1038,
TrainingGround = 1039,
skycut = 1040,
skymaze = 1041,
prison2 = 6001,
lineuppass = 1042,
lineup = 1043,
lineup2 = 1044,
lineup3 = 1045,
lineup4 = 1046,
lineup5 = 1047,
lineup6 = 1048,
lineup7 = 1049,
lineup8 = 1050,
riskisland = 1051,
skymaze1 = 1060,
skymaze2 = 1061,
skymaze3 = 1062,
star = 1064,
boa = 1070,
parena1 = 1080,
parena2 = 1081,
newcanyon = 1075,
newwoods = 1076,
newdesert = 1077,
newisland = 1078,
mysisland = 1079,
riskisland1 = 1063,
idlandmap = 1082,
parenam = 1090,
parenas = 1091,
house01 = 1098,
house03 = 1099,
sanctuary = 1601,
task01 = 1201,
task02 = 1202,
task04 = 1204,
task05 = 1205,
task07 = 1207,
task08 = 1208,
task10 = 1210,
task11 = 1211,
StoneCity = 1213,
islandsnail = 1212,
desertsnail = 1213,
canyonfairy = 1214,
woodsfairy = 1215,
newplainfairy = 1216,
minea = 1500,
mineb = 1501,
minec = 1502,
mined = 1503,
Lab1 = 1351,
Lab2 = 1352,
Lab3 = 1353,
Lab4 = 1354,
//PK Maps of city's
slpk = 1505,
hhpk = 1506,
blpk = 1507,
ympk = 1508,
mfpk = 1509,
faction01 = 1550,
faction012 = 1551,
grocery3 = 1510,
forum1 = 1511,
tiger1 = 1512,
jokul01 = 1615,
tiemfiles = 1616,
tiemfiles1 = 1617,
HellGate = 2021,
HellSquare = 2022,
HellSloister = 2023,
HellSigil = 2024,
cordiform = 1645,
faction2 = 1560,
faction3 = 1561,
forum2 = 1707,
Gulf = 1700,
Huis4 = 601,
fairylandPK07 = 1760,
kunlun1 = 1712,
kunlun2 = 1713,
kunlun3 = 1714,
kunlun4 = 1715,
kunlun5 = 1716,
kunlun6 = 1717,
kunlun7 = 1718,
kunlun8 = 1719,
kunlun9 = 1720,
Halloween2007d = 1763,
Halloween2007c = 1764,
Halloween2007b = 1765,
Halloween2007a = 1766,
Halloween2007Boss = 1767,
NPC IDs
NPC Mesh
Storekeeper 0-19
Barber 20-29
Pharmacist 30-39
Armorer 40-49
Blacksmith 50-59
TrojanStar 60-69
Storekeeper 70-79
Warehouseman 80-89
Pharmacist 90-99
Blacksmith 100-109
Armorer 110-119
TaoistMoon 120-129
TaoistStar 130-139
Storekeeper 140-149
GuildDirector 150-159
WarriorGod 160-169
Mr.Zeal 170-179
Mr.Nosy 180-189
KnowItAll 190-199
Warehouseman 200-219
Blacksmith 220-229
Pharmacist 230-239
ArtisanWind 240-249
Beautician 250-259
ArenaGuard 260-269
SpaceMark 270-279
Conductress 280-289
GeneralPeace 290-299
AiEIEE 300-309
GeneralBravery 310-319
GeneralWinner 320-329
CostumerChen 330-339
Storekeeper 340-349
ArtisanCloud 350-359
Alchemist 360-369
ArtisanOu 370-379
Warden 380-389
CaptainLi 390-399
uOI 400-409
Mark.Controller 410-419
Lv20Stake 420-429
Lv20Scarecrow 430-439
Lv20Target 440-449
Lv25Stake 450-459
Lv25Scarecrow 460-469
Lv25Target 470-479
Lv30Stake 480-489
Lv30Scarecrow 490-499
Lv30Target 500-509
Lv35Stake 510-519
Lv35Scarecrow 520-529
Lv35Target 530-539
Lv40Stake 540-549
Lv40Scarecrow 550-559
Lv40Target 560-569
Lv45Stake 570-579
Lv45Scarecrow 580-589
Lv45Target 590-599
Lv50Stake 600-609
Lv50Scarecrow 610-619
Lv50Target 620-629
Lv55Stake 630-639
Lv55Scarecrow 640-649
Lv55Target 650-659
Lv60Stake 660-669
Lv60Scarecrow 670-679
Lv60Target 680-689
Lv65Stake 690-699
Lv65Scarecrow 700-709
Lv65Target 710-719
Lv70Stake 720-729
Lv70Scarecrow 730-739
Lv70Target 740-749
Lv75Stake 750-759
Lv75Scarecrow 760-769
Lv75Target 770-779
Lv80Stake 780-789
Lv80Scarecrow 790-799
Lv80Target 800-809
Lv85Stake 810-819
Lv85Scarecrow 820-829
Lv85Target 830-839
Lv90Stake 840-849
Lv90Scarecrow 850-859
Lv90Target 860-869
Lv95Stake 870-879
Lv95Scarecrow 880-889
Lv95Target 890-899
Lv100Stake 900-909
Lv100Scarecrow 910-919
Lv100Target 920-929
Lv105Stake 930-939
Lv105Scarecrow 940-949
Lv105Target 950-959
Lv110Stake 960-969
Lv110Scarecrow 970-979
Lv110Target 980-989
Lv115Stake 990-999
Lv115Scarecrow 1000-1009
Lv115Target 1010-1019
Lv120Stake 1020-1029
Lv120Scarecrow 1030-1039
Lv120Target 1040-1049
Boxer 1050-1059
PrizeNPC 1060-1069
Sunfer 1070-1079
ShopFlag 1080-1089
Crystal 1090-1099
Crystal 1100-1129
GuildGateKeeper 1130-1139
CityGate 1140-1149
GuildController 1150-1159
Warden 1160-1169
Assistant 1170-1179
LittleGourd 1180-1189
Shopkeeper 1190-1199
TimeStone 1200-1209
Rooster 1210-1219
LittleWolf 1220-1229
OldWolf 1230-1239
Shelley 1240-1249
Ralph 1250-1259
FujiLi 1260-1269
Sam 1270-1279
Storekeeper 1280-1299
AiO+Ia 1300-1309
SolarSaint 1310-1319
Mr.Free 1320-1329
Storekeeper 1330-1389
GreatMerchant 1390-1399
FireElf 1400-1409
ERAS<<EIE- 1410-1419
Storekeeper 1420-1429
JewelerLau 1430-1439
JewelerSun 1440-1449
GuildConductor1 1450-1459
GuildConductor2 1460-1469
GuildConductor3 1470-1479
GuildConductor4 1480-1489
DiceKing 1490-1499
Lv125Stake 1500-1509
Storekeeper 1510-1519
Lv125Scarecrow 1520-1529
Caroline 1530-1539
GoddessGaea 1540-1549
Lily 1550-1559
Paul 1560-1569
Storekeeper 1570-1599
LoveStone 1600-1609
Storekeeper 1610-1649
ArcherGod 1650-1659
CardTradeNPC 1660-1669
MysticMerchant 1670-1679
Storekeeper 1680-1689
DiceKing 1690-1699
TrueLoveFairy 1700-1709
Matchmaker 1710-1719
YuanFan 1720-1729
RuoDie 1730-1739
Storekeeper 1740-1809
PCgames 1810-1819
Gouda 1820-1829
EOOAE 1830-1839
OoE 1840-1849
A-CU 1850-1859
Storekeeper 1860-1899
Prospector 1900-1909
Storekeeper 1910-1999
Thin 2000-2009
Wind 2010-2019
Chin 2020-2029
Storekeeper 2030-2089
SantaClaus 2090-2099
StockingTrader 2100-2109
Charles 2110-2119
Joseph 2120-2129
James 2130-2139
Henry 2140-2149
Martin 2150-2159
Alex 2160-2169
Arthur 2170-2179
Bryan 2180-2189
Angela 2190-2199
Bruce 2200-2209
EarthSeal 2210-2219
WaterSeal 2220-2229
FireSeal 2230-2239
SatanSeal 2240-2249
CleansingStove 2250-2259
Storekeeper 2260-2269
AndrewCurse 2270-2279
PeterCurse 2280-2289
PhilipCurse 2290-2299
TimothyCurse 2300-2309
DaphneCurse 2310-2319
VictoriaCurse 2320-2329
WayneCurse 2330-2339
TheodoreCurse 2340-2349
Stanley 2350-2359
Storekeeper 2360-2369
Carl 2370-2379
StoreKeeper 2380-2409
SurgeonMiracle 2410-2419
StoreKeeper 2420-2559
SamtaClaus 2560-2569
MissWindBell 2570-2579
GiftChest 2580-2589
Storekeeper 2590-2599
TheImmortal 2600-2609
Guide 2610-2619
WhsGuardian 2620-2629
Storekeeper 2630-2689
OldGeneralYang 2690-2699
Pedlar 2700-2709
Storekeeper 2710-2999
Matchmaker 3000-3009
Storekeeper 3010-3039
Turkey 3040-3049
CookShawn 3050-3059
Mr.Dark 3060-3069
Storekeeper 3070-3149
Shuanger 3150-3159
Storekeeper 3160-3189
UnknownMan 3190-3199
Storekeeper 3200-3219
CollectorZhao 3220-3229
CollectorWong 3230-3239
Storekeeper 3240-3329
CPAdmin 3330-3339
MatchmakerLee 3340-3349
PeachFairy 3350-3359
LittleBunny 3360-3369
NoticeBoard 3370-3379
ItinerantTrader 3380-3389
MagicFlowerPot 3390-3399
MagicFlowerPot 3400-3409
MagicFlowerPot 3410-3419
MagicFlowerPot 3420-3429
Storekeeper 3430-4279
AuCa 4280-4289
MillionaireLee 4290-4299
EaeEo 4300-4309
Ei*A 4310-4319
DiCa 4320-4329
Storekeeper 4330-4999
CaptainFang 5000-5009
MagicArtisan 5010-5019
Shopboy 5020-5029
Tinter 5030-5039
GodlyArtisan 5040-5049
Storekeeper 5050-5999
Milly 6000-6009
Minner 6010-6019
Joe 6020-6029
Matchmaker 6030-6039
Storekeeper 6040-6099
Maggie 6100-6109
GuardianGod 6110-6119
Ghost 6120-6129
VagrantGhost 6130-6139
Storekeeper 6140-6199
Fortuneteller 6200-6209
Starlit 6210-6219
Storekeeper 6220-6229
Mr.Pine 6230-6239
RichmanZhang 6240-6249
GossiperWang 6250-6259
Roger 6260-6269
Rachel 6270-6279
ToughWei 6280-6289
OldGeneral 6290-6299
Emily 6300-6309
William 6310-6319
EIoo 6320-6329
AEYNc 6330-6339
AOai 6340-6349
uNEo 6350-6359
AOAO~O 6360-6369
EutaEu 6370-6379
cAc 6380-6089
Storekeeper 6390-6399
BoxerZhang 6400-6409
BoxerLi 6410-6419
BoxerWang 6420-6429
BoxerZhao 6430-6439
BoxerHuang 6440-6449
IAukU 6450-6459
Wizard 6460-6469
Cryingsoul 6470-6479
Storekeeper 6480-6489
SashTrade 6490-6499
Joshua 6500-6509
Warden 6510-6519
Simon 6520-6529
EastGeneral 6530-6539
WestGeneral 6540-6549
SouthGeneral 6550-6559
NorthGeneral 6560-6569
Storekeeper 6570-6679
WuxingOven 6680-6689
Ethereal 6690-6699
Storekeeper 6700-6899
BlueMouse 6890-6899
DoctorHolt 6900-6909
AntiqueDealer 6910-6919
WarriorHerald 6920-6929
TrojanHerald 6930-6939
ArcherHerald 6940-6949
TaoistHerald 6950-6959
Aviu 6960-6969
xooI 6970-6979
OldMiner 6980-6989
GeneralJudd 6990-6999
SwiftMonster 7000-7009
StageGuard 7010-7019
GreenSnake 7020-7029
EvilHawk 7030-7039
MonsterGeneral 7040-7049
TerminalGuard 7050-7059
Storekeeper 7060-7089
Daniel 7090-7099
GodCloud 7100-7109
KindTaoist 7110-7119
MagicTaoist 7120-7129
GuardingKid 7130-7139
ProtectingKid 7140-7149
CoachLi 7150-7159
CoachLin 7160-7169
GeneralCai 7170-7179
KillerMaple 7180-7189
GeneralQing 7190-7199
FoodCarrier 7200-7209
BanditHead 7210-7219
Druggist 7220-7229
OldmanTang 7230-7239
John 7240-7249
Richard 7250-7259
Storekeeper 7260-7269
GeneralLong 7270-7279
MountainKing 7280-7289
SnakemanLeader 7290-7299
VillageHead 7300-7309
GeneralShou 7310-7319
StoneBandit 7320-7329
Storekeeper 7330-7339
HeresyLeader 7340-7349
David 7350-7359
Mr.Leisure 7360-7369
BlacksmithLi 7370-7379
GeneralChen 7380-7389
Soldier 7390-7399
GeneralWu 7400-7409
GreenSnake 7410-7419
ElusoryDevil 7420-7429
Houston 7430-7439
WaterElf 7440-7449
DragonSuzerain 7450-7459
Emily 7460-7469
Storekeeper 7470-7499
DevineArtisan 7500-7509
Hades 7510-7519
Tientsin 7520-7529
CellGuard 7530-7539
Lauren 7540-7549
SnakeGuard 7550-7559
Storekeeper 7560-7599
FearlessYan 7600-7609
FearlessYi 7610-7619
Shelby 7620-7629
Bethune 7630-7639
Storekeeper 7640-7649
TreasureHunter 7650-7659
LonelySpirit 7660-7669
Storekeeper 7670-7679
Exorcist 7680-7689
WarriorGuard 7690-7699
AncientDevil 7700-7709
TrojanGuard 7710-7719
FireGuard 7720-7729
WaterGuard 7730-7739
ArcherGuard 7740-7749
CaptainLu 7750-7759
DocterMo 7760-7769
CaptainChief 7770-7779
Storekeeper 7780-7799
D|NAxO 7800-7809
E<<AaeDC2. 7810-7819
3aOAxO 7820-7829
Storekeeper 7830-7999
Mr.Wang 8000-8009
Storekeeper 8010-8019
Mrs.Wang 8020-8029
Belial 8030-8039
Luna 8040-8049
Storekeeper 8050-8059
HouseAdmin 8060-8069
HouseAgent 8070-8079
Craftsman 8080-8089
Carpenter 8090-8099
Butler 8100-8109
StoneMan 8110-8119
FurnitureNPC 8120-8129
Storekeeper 8130-8139
GreatJack 8140-8149
BeastGuard 8150-8159
Storekeeper 8160-8199
ItemBox 8200-8209
SoldierLeader 8210-8219
Raiser 8220-8229
Storekeeper 8230-8279
Joy 8280-8289
Mike 8290-8299
Lamp 8300-8309
Zither 8310-8319
Harp 8320-8329
Storekeeper 8330-8349
Celestine 8350-8359
Eternity 8360-8369
Storekeeper 8370-8399
EscortChief 8400-8409
Shopboy 8410-8419
Roy 8420-8429
Yougo 8430-8439
Storekeeper 8440-8449
MightTao 8450-8459
CelestialTao 8460-8469
BeliefValueguard 8470-8479
ReindeerAsst 8480-8489
CelestialMsgr 8490-8499
ArtisanRow 8500-8509
WesternDrifter 8510-8519
Storekeeper 8520-8529
AnaueAI 8530-8539
Lantern 8540-8549
Storekeeper 8550-8579
AueoeOb 8580-8589
Storekeeper 8590-8619
CaptainCheung 8620-8629
HungryGhost 8630-8639
SlyGhost 8640-8649
AngryGhost 8650-8659
NaughtyGhost 8660-8669
MysteriousGhost 8670-8679
EvilGhost 8680-8689
PiteousGhost 8690-8699
Oeau 8900-8909
ylao 8910-8919
ylauo 8920-8929
ylaaaa 8930-8939
IAao 8940-8949
Iaauo 8950-8959
Iaaoo 8960-8969
3Iaur 8970-8979
Ipxua 8980-8989
rxbe 8990-8999
MysticOldman 9000-9009
Sage 9010-9019
Granny 9020-9029
Alice 9030-9039
Jane 9040-9049
Cathy 9050-9059
Storekeeper 9060-9099
Explorer 9100-9109
MineSupervisor 9110-9119
Grandpa 9120-9129
Boatman 9130-9139
OldExplorer 9140-9149
OoAOEOIA 9150-9159
xiAOIEII 9160-9169
o<<aDxO 9170-9179
Storekeeper 9180-9199
Alcoholist 9200-9209
Norbert 9210-9219
OldQuarrier 9220-9229
LadyLuck 9230-9239
Storekeeper 9240-9249
LuckyBox 9250-9259
LuckyBox 9260-9269
LuckyBox 9270-9279
LuckyBox 9280-9289
LuckyBox 9290-9299
LuckyBox 9300-9309
Storekeeper 9310-9409
ProficiencyGod 9410-9419
Storekeeper 9420-9499
WeaponMaster 9500-9509
Conductor 9510-9519
Flutist 9520-9529
Violinist 9530-9539
Trumpeter 9540-9549
Pianist 9550-9559
Drummer 9560-9569
CarverStar 9570-9579
Flutist 9580-9589
Violinist 9590-9599
Trumpeter 9600-9609
Pianist 9610-9619
Drummer 9620-9629
Storekeeper 9630-9989
PrisonOfficer 9990-9999
Storekeeper 0-19
Barber 20-29
Pharmacist 30-39
Armorer 40-49
Blacksmith 50-59
TrojanStar 60-69
Storekeeper 70-79
Warehouseman 80-89
Pharmacist 90-99
Blacksmith 100-109
Armorer 110-119
TaoistMoon 120-129
TaoistStar 130-139
Storekeeper 140-149
GuildDirector 150-159
WarriorGod 160-169
Mr.Zeal 170-179
Mr.Nosy 180-189
KnowItAll 190-199
Warehouseman 200-219
Blacksmith 220-229
Pharmacist 230-239
ArtisanWind 240-249
Beautician 250-259
ArenaGuard 260-269
SpaceMark 270-279
Conductress 280-289
GeneralPeace 290-299
AiEIEE 300-309
GeneralBravery 310-319
GeneralWinner 320-329
CostumerChen 330-339
Storekeeper 340-349
ArtisanCloud 350-359
Alchemist 360-369
ArtisanOu 370-379
Warden 380-389
CaptainLi 390-399
uOI 400-409
Mark.Controller 410-419
Lv20Stake 420-429
Lv20Scarecrow 430-439
Lv20Target 440-449
Lv25Stake 450-459
Lv25Scarecrow 460-469
Lv25Target 470-479
Lv30Stake 480-489
Lv30Scarecrow 490-499
Lv30Target 500-509
Lv35Stake 510-519
Lv35Scarecrow 520-529
Lv35Target 530-539
Lv40Stake 540-549
Lv40Scarecrow 550-559
Lv40Target 560-569
Lv45Stake 570-579
Lv45Scarecrow 580-589
Lv45Target 590-599
Lv50Stake 600-609
Lv50Scarecrow 610-619
Lv50Target 620-629
Lv55Stake 630-639
Lv55Scarecrow 640-649
Lv55Target 650-659
Lv60Stake 660-669
Lv60Scarecrow 670-679
Lv60Target 680-689
Lv65Stake 690-699
Lv65Scarecrow 700-709
Lv65Target 710-719
Lv70Stake 720-729
Lv70Scarecrow 730-739
Lv70Target 740-749
Lv75Stake 750-759
Lv75Scarecrow 760-769
Lv75Target 770-779
Lv80Stake 780-789
Lv80Scarecrow 790-799
Lv80Target 800-809
Lv85Stake 810-819
Lv85Scarecrow 820-829
Lv85Target 830-839
Lv90Stake 840-849
Lv90Scarecrow 850-859
Lv90Target 860-869
Lv95Stake 870-879
Lv95Scarecrow 880-889
Lv95Target 890-899
Lv100Stake 900-909
Lv100Scarecrow 910-919
Lv100Target 920-929
Lv105Stake 930-939
Lv105Scarecrow 940-949
Lv105Target 950-959
Lv110Stake 960-969
Lv110Scarecrow 970-979
Lv110Target 980-989
Lv115Stake 990-999
Lv115Scarecrow 1000-1009
Lv115Target 1010-1019
Lv120Stake 1020-1029
Lv120Scarecrow 1030-1039
Lv120Target 1040-1049
Boxer 1050-1059
PrizeNPC 1060-1069
Sunfer 1070-1079
ShopFlag 1080-1089
Crystal 1090-1099
Crystal 1100-1129
GuildGateKeeper 1130-1139
CityGate 1140-1149
GuildController 1150-1159
Warden 1160-1169
Assistant 1170-1179
LittleGourd 1180-1189
Shopkeeper 1190-1199
TimeStone 1200-1209
Rooster 1210-1219
LittleWolf 1220-1229
OldWolf 1230-1239
Shelley 1240-1249
Ralph 1250-1259
FujiLi 1260-1269
Sam 1270-1279
Storekeeper 1280-1299
AiO+Ia 1300-1309
SolarSaint 1310-1319
Mr.Free 1320-1329
Storekeeper 1330-1389
GreatMerchant 1390-1399
FireElf 1400-1409
ERAS<<EIE- 1410-1419
Storekeeper 1420-1429
JewelerLau 1430-1439
JewelerSun 1440-1449
GuildConductor1 1450-1459
GuildConductor2 1460-1469
GuildConductor3 1470-1479
GuildConductor4 1480-1489
DiceKing 1490-1499
Lv125Stake 1500-1509
Storekeeper 1510-1519
Lv125Scarecrow 1520-1529
Caroline 1530-1539
GoddessGaea 1540-1549
Lily 1550-1559
Paul 1560-1569
Storekeeper 1570-1599
LoveStone 1600-1609
Storekeeper 1610-1649
ArcherGod 1650-1659
CardTradeNPC 1660-1669
MysticMerchant 1670-1679
Storekeeper 1680-1689
DiceKing 1690-1699
TrueLoveFairy 1700-1709
Matchmaker 1710-1719
YuanFan 1720-1729
RuoDie 1730-1739
Storekeeper 1740-1809
PCgames 1810-1819
Gouda 1820-1829
EOOAE 1830-1839
OoE 1840-1849
A-CU 1850-1859
Storekeeper 1860-1899
Prospector 1900-1909
Storekeeper 1910-1999
Thin 2000-2009
Wind 2010-2019
Chin 2020-2029
Storekeeper 2030-2089
SantaClaus 2090-2099
StockingTrader 2100-2109
Charles 2110-2119
Joseph 2120-2129
James 2130-2139
Henry 2140-2149
Martin 2150-2159
Alex 2160-2169
Arthur 2170-2179
Bryan 2180-2189
Angela 2190-2199
Bruce 2200-2209
EarthSeal 2210-2219
WaterSeal 2220-2229
FireSeal 2230-2239
SatanSeal 2240-2249
CleansingStove 2250-2259
Storekeeper 2260-2269
AndrewCurse 2270-2279
PeterCurse 2280-2289
PhilipCurse 2290-2299
TimothyCurse 2300-2309
DaphneCurse 2310-2319
VictoriaCurse 2320-2329
WayneCurse 2330-2339
TheodoreCurse 2340-2349
Stanley 2350-2359
Storekeeper 2360-2369
Carl 2370-2379
StoreKeeper 2380-2409
SurgeonMiracle 2410-2419
StoreKeeper 2420-2559
SamtaClaus 2560-2569
MissWindBell 2570-2579
GiftChest 2580-2589
Storekeeper 2590-2599
TheImmortal 2600-2609
Guide 2610-2619
WhsGuardian 2620-2629
Storekeeper 2630-2689
OldGeneralYang 2690-2699
Pedlar 2700-2709
Storekeeper 2710-2999
Matchmaker 3000-3009
Storekeeper 3010-3039
Turkey 3040-3049
CookShawn 3050-3059
Mr.Dark 3060-3069
Storekeeper 3070-3149
Shuanger 3150-3159
Storekeeper 3160-3189
UnknownMan 3190-3199
Storekeeper 3200-3219
CollectorZhao 3220-3229
CollectorWong 3230-3239
Storekeeper 3240-3329
CPAdmin 3330-3339
MatchmakerLee 3340-3349
PeachFairy 3350-3359
LittleBunny 3360-3369
NoticeBoard 3370-3379
ItinerantTrader 3380-3389
MagicFlowerPot 3390-3399
MagicFlowerPot 3400-3409
MagicFlowerPot 3410-3419
MagicFlowerPot 3420-3429
Storekeeper 3430-4279
AuCa 4280-4289
MillionaireLee 4290-4299
EaeEo 4300-4309
Ei*A 4310-4319
DiCa 4320-4329
Storekeeper 4330-4999
CaptainFang 5000-5009
MagicArtisan 5010-5019
Shopboy 5020-5029
Tinter 5030-5039
GodlyArtisan 5040-5049
Storekeeper 5050-5999
Milly 6000-6009
Minner 6010-6019
Joe 6020-6029
Matchmaker 6030-6039
Storekeeper 6040-6099
Maggie 6100-6109
GuardianGod 6110-6119
Ghost 6120-6129
VagrantGhost 6130-6139
Storekeeper 6140-6199
Fortuneteller 6200-6209
Starlit 6210-6219
Storekeeper 6220-6229
Mr.Pine 6230-6239
RichmanZhang 6240-6249
GossiperWang 6250-6259
Roger 6260-6269
Rachel 6270-6279
ToughWei 6280-6289
OldGeneral 6290-6299
Emily 6300-6309
William 6310-6319
EIoo 6320-6329
AEYNc 6330-6339
AOai 6340-6349
uNEo 6350-6359
AOAO~O 6360-6369
EutaEu 6370-6379
cAc 6380-6089
Storekeeper 6390-6399
BoxerZhang 6400-6409
BoxerLi 6410-6419
BoxerWang 6420-6429
BoxerZhao 6430-6439
BoxerHuang 6440-6449
IAukU 6450-6459
Wizard 6460-6469
Cryingsoul 6470-6479
Storekeeper 6480-6489
SashTrade 6490-6499
Joshua 6500-6509
Warden 6510-6519
Simon 6520-6529
EastGeneral 6530-6539
WestGeneral 6540-6549
SouthGeneral 6550-6559
NorthGeneral 6560-6569
Storekeeper 6570-6679
WuxingOven 6680-6689
Ethereal 6690-6699
Storekeeper 6700-6899
BlueMouse 6890-6899
DoctorHolt 6900-6909
AntiqueDealer 6910-6919
WarriorHerald 6920-6929
TrojanHerald 6930-6939
ArcherHerald 6940-6949
TaoistHerald 6950-6959
Aviu 6960-6969
xooI 6970-6979
OldMiner 6980-6989
GeneralJudd 6990-6999
SwiftMonster 7000-7009
StageGuard 7010-7019
GreenSnake 7020-7029
EvilHawk 7030-7039
MonsterGeneral 7040-7049
TerminalGuard 7050-7059
Storekeeper 7060-7089
Daniel 7090-7099
GodCloud 7100-7109
KindTaoist 7110-7119
MagicTaoist 7120-7129
GuardingKid 7130-7139
ProtectingKid 7140-7149
CoachLi 7150-7159
CoachLin 7160-7169
GeneralCai 7170-7179
KillerMaple 7180-7189
GeneralQing 7190-7199
FoodCarrier 7200-7209
BanditHead 7210-7219
Druggist 7220-7229
OldmanTang 7230-7239
John 7240-7249
Richard 7250-7259
Storekeeper 7260-7269
GeneralLong 7270-7279
MountainKing 7280-7289
SnakemanLeader 7290-7299
VillageHead 7300-7309
GeneralShou 7310-7319
StoneBandit 7320-7329
Storekeeper 7330-7339
HeresyLeader 7340-7349
David 7350-7359
Mr.Leisure 7360-7369
BlacksmithLi 7370-7379
GeneralChen 7380-7389
Soldier 7390-7399
GeneralWu 7400-7409
GreenSnake 7410-7419
ElusoryDevil 7420-7429
Houston 7430-7439
WaterElf 7440-7449
DragonSuzerain 7450-7459
Emily 7460-7469
Storekeeper 7470-7499
DevineArtisan 7500-7509
Hades 7510-7519
Tientsin 7520-7529
CellGuard 7530-7539
Lauren 7540-7549
SnakeGuard 7550-7559
Storekeeper 7560-7599
FearlessYan 7600-7609
FearlessYi 7610-7619
Shelby 7620-7629
Bethune 7630-7639
Storekeeper 7640-7649
TreasureHunter 7650-7659
LonelySpirit 7660-7669
Storekeeper 7670-7679
Exorcist 7680-7689
WarriorGuard 7690-7699
AncientDevil 7700-7709
TrojanGuard 7710-7719
FireGuard 7720-7729
WaterGuard 7730-7739
ArcherGuard 7740-7749
CaptainLu 7750-7759
DocterMo 7760-7769
CaptainChief 7770-7779
Storekeeper 7780-7799
D|NAxO 7800-7809
E<<AaeDC2. 7810-7819
3aOAxO 7820-7829
Storekeeper 7830-7999
Mr.Wang 8000-8009
Storekeeper 8010-8019
Mrs.Wang 8020-8029
Belial 8030-8039
Luna 8040-8049
Storekeeper 8050-8059
HouseAdmin 8060-8069
HouseAgent 8070-8079
Craftsman 8080-8089
Carpenter 8090-8099
Butler 8100-8109
StoneMan 8110-8119
FurnitureNPC 8120-8129
Storekeeper 8130-8139
GreatJack 8140-8149
BeastGuard 8150-8159
Storekeeper 8160-8199
ItemBox 8200-8209
SoldierLeader 8210-8219
Raiser 8220-8229
Storekeeper 8230-8279
Joy 8280-8289
Mike 8290-8299
Lamp 8300-8309
Zither 8310-8319
Harp 8320-8329
Storekeeper 8330-8349
Celestine 8350-8359
Eternity 8360-8369
Storekeeper 8370-8399
EscortChief 8400-8409
Shopboy 8410-8419
Roy 8420-8429
Yougo 8430-8439
Storekeeper 8440-8449
MightTao 8450-8459
CelestialTao 8460-8469
BeliefValueguard 8470-8479
ReindeerAsst 8480-8489
CelestialMsgr 8490-8499
ArtisanRow 8500-8509
WesternDrifter 8510-8519
Storekeeper 8520-8529
AnaueAI 8530-8539
Lantern 8540-8549
Storekeeper 8550-8579
AueoeOb 8580-8589
Storekeeper 8590-8619
CaptainCheung 8620-8629
HungryGhost 8630-8639
SlyGhost 8640-8649
AngryGhost 8650-8659
NaughtyGhost 8660-8669
MysteriousGhost 8670-8679
EvilGhost 8680-8689
PiteousGhost 8690-8699
Oeau 8900-8909
ylao 8910-8919
ylauo 8920-8929
ylaaaa 8930-8939
IAao 8940-8949
Iaauo 8950-8959
Iaaoo 8960-8969
3Iaur 8970-8979
Ipxua 8980-8989
rxbe 8990-8999
MysticOldman 9000-9009
Sage 9010-9019
Granny 9020-9029
Alice 9030-9039
Jane 9040-9049
Cathy 9050-9059
Storekeeper 9060-9099
Explorer 9100-9109
MineSupervisor 9110-9119
Grandpa 9120-9129
Boatman 9130-9139
OldExplorer 9140-9149
OoAOEOIA 9150-9159
xiAOIEII 9160-9169
o<<aDxO 9170-9179
Storekeeper 9180-9199
Alcoholist 9200-9209
Norbert 9210-9219
OldQuarrier 9220-9229
LadyLuck 9230-9239
Storekeeper 9240-9249
LuckyBox 9250-9259
LuckyBox 9260-9269
LuckyBox 9270-9279
LuckyBox 9280-9289
LuckyBox 9290-9299
LuckyBox 9300-9309
Storekeeper 9310-9409
ProficiencyGod 9410-9419
Storekeeper 9420-9499
WeaponMaster 9500-9509
Conductor 9510-9519
Flutist 9520-9529
Violinist 9530-9539
Trumpeter 9540-9549
Pianist 9550-9559
Drummer 9560-9569
CarverStar 9570-9579
Flutist 9580-9589
Violinist 9590-9599
Trumpeter 9600-9609
Pianist 9610-9619
Drummer 9620-9629
Storekeeper 9630-9989
PrisonOfficer 9990-9999
First we need to go to your source and find the case number of the NPC we want to add. i will be using 123456 as an example.
Then we need to get the NPC Mesh from the list above. I will use Prison Officer as an example.
Code:
123456 9995 2 0
Then we need to add the map and the coordinates. So you will have something that looks like this.
Code:
123456 9995 2 0 1002 500 500
**EDIT**
Anything i add will appear under this section.
Using "Case" to make an NPC instead of Control/Option/Linkback
This will make your source "look" better and a bit more efficient.
We will make the NPC the same kind of way we have made the others.
Lets make a very simple "Say Hello" NPC.
Lets quickly make this a bit easier to read and write.
Search for
Above that add this
Now create the NPc in NPC.txt hit F5 in the source and login and voila your new NPC works.
Lets make a very simple "Say Hello" NPC.
Lets quickly make this a bit easier to read and write.
Search for
Code:
public static void Handle(Main.GameClient GC, byte[] Data, uint NPC, byte Control) {
Code:
public static void Say(Main.GameClient GC, string Say) { GC.AddSend(Packets.NPCSay(Say)); } public static void Link(Main.GameClient GC, string Response, byte Control) { GC.AddSend(Packets.NPCLink(Response, Control)); } public static void Input(Main.GameClient GC, string Say, byte DialNr) { GC.AddSend(Packets.NPCLink2(Say, DialNr)); } public static void Finish(Main.GameClient GC, byte Face) { GC.AddSend(Packets.NPCSetFace(Face)); GC.AddSend(Packets.NPCFinish()); }
Code:
case 1234: { switch (Control) { case 0: { Say(GC, "Hello!"); Link(GC, "Hi there", 255); Finish(GC, 30); break; } } }
Next Part
Lets make this NPC have a link to another speech.
Code:
case 1234: { switch (Control) { case 0: { Say(GC, "Hello!"); Link(GC, "Hi there", 1); Link(GC, "Bye", 255); Finish(GC, 30); break; } case 1: { Say(GC, "Wow you clicked the link and it was a success!"); LinkK(GC, "Woooot.... Bye", 255); Finish(GC, 30); break; } } break; }
Now how easy was that?! More to come soon.
P.S Thanks to L33TS.
Job ID List
Code:
10,InternTrojan 11,Trojan 12,VeteranTrojan 13,TigerTrojan 14,DragonTrojan 15,TrojanMaster 20,InternWarrior 21,Warrior 22,BrassWarrior 23,SilverWarrior 24,GoldWarrior 25,WarriorMaster 40,InternArcher 41,Archer 42,EagleArcher 43,TigerArcher 44,DragonArcher 45,ArcherMaster 50,InternNinja 51,Ninja 52, 53, 54, 55,NinjaMaster ****InternTaoist ****Taoist 1***WaterTaoist 133,WaterWizard 134,WaterMaster 135,WaterSaint 142,FireTaoist 143,FireWizard 144,FireMaster 145,FireSaint
I am guessing you guys know how to add an NPC into your code.
If not i will post a guide on it later
Going to add more functions for people to use. Please dont flame me for this being hard to understand if you cant understand it properly i made it in like 5 minutes. ^^
**UPDATE**
[COLOR="Blue]Quick update : I have been away for a while so sorry nothing has been posted. Will get back to it soon got some very interesting ideas.[/COLOR="Blue]
e.g
Moving NPC's using LUA
NPC drop events
New Capture the flag game (5 a side/10 a side)
Some updates for 5165 - 5200
New map hopefully coming soon 100% coded by me. Havent stared yet so will be a while before the map is ready for public release.
Not all my ideas are on here i have some others that i wont share at the moment incase someone steals the idea from me haha
I know not all of this is NPC creation but i will be making a new "General" Thread for all my work as soon as i have completed it. If anyone can help with anything would be much appreciated as i am working on my own AGAIN!
NPC drop events
New Capture the flag game (5 a side/10 a side)
Some updates for 5165 - 5200
New map hopefully coming soon 100% coded by me. Havent stared yet so will be a while before the map is ready for public release.
Not all my ideas are on here i have some others that i wont share at the moment incase someone steals the idea from me haha
I know not all of this is NPC creation but i will be making a new "General" Thread for all my work as soon as i have completed it. If anyone can help with anything would be much appreciated as i am working on my own AGAIN!
Here is a complete guide of my work available to download. Everything you need to make an NPC and much more. Download from the bottom of this page...
Hit the Thanks button if it helped