First is the SurgeonMiracle NPC to change size/gender for one dragonball.
In Dialogs.cs
Code:
#region SurgeonMiracle case 111812: { switch (npcRequest.OptionID) { case 0: { dialog.Text("Do you want to have your size changed so that you can become much more"); dialog.Text(" adorable? Now here is a precious chance for you."); dialog.Option("I want to change my size.", 1); dialog.Option("I want to change my gender.", 2); dialog.Option("I don't want to change.", 255); dialog.Send(); break; } case 1: { dialog.Text("If you pay me one dragonball, I can have your size changed. You will become"); dialog.Text("more attractive and start a fresh life. By the way, to avoid some unexpected"); dialog.Text("things, make sure you are not in any disguise form."); dialog.Option("Here is a dragonball.", 3); dialog.Option("I have no dragonball.", 255); dialog.Send(); break; } case 2: { dialog.Text("If you pay me one dragonball, I can have your gender changed. You will become"); dialog.Text("more attractive and start a fresh life. By the way, to avoid some unexpected"); dialog.Text("things, make sure you are not in any disguise form."); dialog.Option("Here is a dragonball.", 4); dialog.Option("I have no dragonball.", 255); dialog.Send(); break; } case 3: { if (client.Inventory.Contains(1088000, 1)) { client.Inventory.Remove(1088000, 1); client.Equipment.Remove(9); int Model = (int)client.Entity.Body % 10; switch (Model) { case 2: case 4: client.Entity.Body--; break; case 1: case 3: client.Entity.Body++; break; } client.Send(new Message("Your size has been changed.", System.Drawing.Color.BurlyWood, Message.TopLeft)); EntityTable.SaveEntity(client); client.Inventory.Remove(1088000, 1); client.Equipment.Remove(9); break; } else { dialog.Text("Sorry, there is no dragonball in your inventory. I can't have your size changed."); dialog.Option("Ok, Sorry.", 255); dialog.Send(); } break; } case 4: { if (client.Inventory.Contains(1088000, 1)) { client.Inventory.Remove(1088000, 1); client.Equipment.Remove(9); int Model = (int)client.Entity.Body % 10; switch (Model) { case 3: case 4: client.Entity.Body -= 2; break; case 1: case 2: client.Entity.Body += 2; break; } client.Send(new Message("Your gender has been changed.", System.Drawing.Color.BurlyWood, Message.TopLeft)); EntityTable.SaveEntity(client); break; } else { dialog.Text("Sorry, there is no dragonball in your inventory. I can't have your size changed."); dialog.Option("Ok, Sorry.", 255); dialog.Send(); } } break; } break; } #endregion
In Dialogs.cs
Code:
#region CPAdmin case 111816: { switch (npcRequest.OptionID) { case 0: { dialog.Text("Greetings, here you can exchange either a Dragonball or a DragonScroll for cps. "); dialog.Text("One Dragonball will get you 215 cps and a DragonScroll will get you 2150. "); dialog.Text("What would you like to trade? Or would you rather not?"); dialog.Option("Dragonball", 1); dialog.Option("DragonScroll", 2); dialog.Option("I'll just leave", 255); dialog.Send(); break; } case 1: { lock (client.Inventory) { if (client.Inventory.Contains(1088000, 1)) { client.Inventory.Remove(1088000, 1); client.Entity.ConquerPoints += 215; } else { dialog.Text("You do not have a Dragonball"); dialog.Send(); } break; } } case 2: { lock (client.Inventory) { if (client.Inventory.Contains(721511, 1)) { client.Inventory.Remove(721511, 1); client.Entity.ConquerPoints += 2150; } else { dialog.Text("You do not have a DragonPack"); dialog.Send(); } break; } } } break; } #endregion
In Dialogs.cs
Code:
#region Tinter case 11191: { switch (npcRequest.OptionID) { case 0: { dialog.Text("I can dye your armor or your headgear. Care to get started?"); dialog.Option("Armor", 1); dialog.Option("Headgear", 2); dialog.Option("I'll just leave", 255); dialog.Send(); break; } case 1: { dialog.Text("What color armor would like sir?"); dialog.Option("White", 4); dialog.Option("Purple", 5); dialog.Option("Orange", 6); dialog.Option("Light Blue", 7); dialog.Option("Blue", 8); dialog.Option("Red", 9); dialog.Option("Yellow", 10); dialog.Send(); break; } case 4: { IConquerItem armor = client.Equipment.TryGetItem(3); if (armor != null && armor.ID != 0) { armor.Color = Conquer_Online_Server.Game.Enums.Color.White; armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; armor.Send(client); armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } case 5: { IConquerItem armor = client.Equipment.TryGetItem(3); if (armor != null && armor.ID != 0) { armor.Color = Conquer_Online_Server.Game.Enums.Color.Purple; armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; armor.Send(client); armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } case 6: { IConquerItem armor = client.Equipment.TryGetItem(3); if (armor != null && armor.ID != 0) { armor.Color = Conquer_Online_Server.Game.Enums.Color.Orange; armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; armor.Send(client); armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } case 7: { IConquerItem armor = client.Equipment.TryGetItem(3); if (armor != null && armor.ID != 0) { armor.Color = Conquer_Online_Server.Game.Enums.Color.LightBlue; armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; armor.Send(client); armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } case 8: { IConquerItem armor = client.Equipment.TryGetItem(3); if (armor != null && armor.ID != 0) { armor.Color = Conquer_Online_Server.Game.Enums.Color.Blue; armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; armor.Send(client); armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } case 9: { IConquerItem armor = client.Equipment.TryGetItem(3); if (armor != null && armor.ID != 0) { armor.Color = Conquer_Online_Server.Game.Enums.Color.Red; armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; armor.Send(client); armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } case 10: { IConquerItem armor = client.Equipment.TryGetItem(3); if (armor != null && armor.ID != 0) { armor.Color = Conquer_Online_Server.Game.Enums.Color.Yellow; armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; armor.Send(client); armor.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } case 2: { dialog.Text("What color armor would like sir?"); dialog.Option("White", 11); dialog.Option("Purple", 12); dialog.Option("Orange", 13); dialog.Option("Light Blue", 14); dialog.Option("Blue", 15); dialog.Option("Red", 16); dialog.Option("Yellow", 17); dialog.Send(); break; } case 11: { IConquerItem headgear = client.Equipment.TryGetItem(1); if (headgear != null && headgear.ID != 0) { headgear.Color = Conquer_Online_Server.Game.Enums.Color.White; headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; headgear.Send(client); headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } case 12: { IConquerItem headgear = client.Equipment.TryGetItem(1); if (headgear != null && headgear.ID != 0) { headgear.Color = Conquer_Online_Server.Game.Enums.Color.Purple; headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; headgear.Send(client); headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } case 13: { IConquerItem headgear = client.Equipment.TryGetItem(1); if (headgear != null && headgear.ID != 0) { headgear.Color = Conquer_Online_Server.Game.Enums.Color.Orange; headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; headgear.Send(client); headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } case 14: { IConquerItem headgear = client.Equipment.TryGetItem(1); if (headgear != null && headgear.ID != 0) { headgear.Color = Conquer_Online_Server.Game.Enums.Color.LightBlue; headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; headgear.Send(client); headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } case 15: { IConquerItem headgear = client.Equipment.TryGetItem(1); if (headgear != null && headgear.ID != 0) { headgear.Color = Conquer_Online_Server.Game.Enums.Color.Blue; headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; headgear.Send(client); headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } case 16: { IConquerItem headgear = client.Equipment.TryGetItem(1); if (headgear != null && headgear.ID != 0) { headgear.Color = Conquer_Online_Server.Game.Enums.Color.Red; headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; headgear.Send(client); headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } case 17: { IConquerItem headgear = client.Equipment.TryGetItem(1); if (headgear != null && headgear.ID != 0) { headgear.Color = Conquer_Online_Server.Game.Enums.Color.Yellow; headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update; headgear.Send(client); headgear.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Default; } else { dialog.Text("Your not wearing any armor right now. Therefore, I can't do anything."); dialog.Option("Ah alright.", 255); dialog.Send(); } break; } } break; } #endregion
it uses the helpdesk npc in tc
In Dialogs.cs above
Code:
public static ISkill LearnableSpell(ushort spellid)
Code:
public static IConquerItem AwardItem(uint itemid, GameState Client) { IConquerItem item = new ConquerItem(true); item.ID = itemid; item.Bless = 7; item.Color = (Conquer_Online_Server.Game.Enums.Color)Kernel.Random.Next(4, 8); item.Enchant = 255; item.UID = ConquerItem.ItemUID.Next; item.Plus = 12; item.SocketOne = (Enums.Gem)13; item.SocketTwo = (Enums.Gem)13; ConquerItemInformation iteminfos = new ConquerItemInformation(item.ID, item.Plus); item.Durability = item.MaximDurability = iteminfos.BaseInformation.Durability; Client.Inventory.Add(item, Enums.ItemUse.Add); EntityTable.SaveEntity(Client); return item; }
Code:
#region HelpDesk case 12111: { switch (npcRequest.OptionID) { case 0: { dialog.Text("What free item would you like?"); dialog.Option("BuriedBlade", 1); dialog.Option("Blizzard", 2); dialog.Option("Thunder", 3); dialog.Option("MagicCoronet", 4); dialog.Option("CrystalEarrings", 5); dialog.Option("Tornado", 6); dialog.Option("KingsClub", 7); dialog.Option("KingofSword", 8); dialog.Send(); break; } case 1: { if (client.Inventory.Count < 40) { AwardItem(410339, client); break; } else { client.Send(Constants.FullInventory); break; } } case 2: { if (client.Inventory.Count < 40) { AwardItem(160249, client); break; } else { client.Send(Constants.FullInventory); break; } } case 3: { if (client.Inventory.Count < 40) { AwardItem(150249, client); break; } else { client.Send(Constants.FullInventory); break; } } case 4: { if (client.Inventory.Count < 40) { AwardItem(118109, client); break; } else { client.Send(Constants.FullInventory); break; } } case 5: { if (client.Inventory.Count < 40) { AwardItem(117099, client); break; } else { client.Send(Constants.FullInventory); break; } } case 6: { if (client.Inventory.Count < 40) { AwardItem(120249, client); break; } else { client.Send(Constants.FullInventory); break; } } case 7: { if (client.Inventory.Count < 40) { AwardItem(480339, client); break; } else { client.Send(Constants.FullInventory); break; } } case 8: { if (client.Inventory.Count < 40) { AwardItem(420339, client); break; } else { client.Send(Constants.FullInventory); break; } } } break; } #endregion
Code:
#region MillionaireLee case 111811: { switch (npcRequest.OptionID) { case 0: { dialog.Text("Hello, I can take your meteors and dragonballs and pack them for you. "); dialog.Text("Did I mention my services are free?"); dialog.Option("Pack my meteors.", 1); dialog.Option("Pack my dragonballs.", 2); dialog.Option("I'd rather leave", 255); dialog.Send(); break; } case 1: { lock (client.Inventory) { if (client.Inventory.Contains(1088001, 10)) { client.Inventory.Remove(1088001, 10); client.Inventory.Add(720027, Enums.ItemEffect.None); client.Send(new Message("Your meteors have successfully been packed.", System.Drawing.Color.Blue, Message.TopLeft)); } else { dialog.Text("You do not have enough meteors for this."); dialog.Option("Okay, sorry sir", 255); dialog.Send(); } } break; } case 2: { lock (client.Inventory) { if (client.Inventory.Contains(1088000, 10)) { client.Inventory.Remove(1088000, 10); client.Inventory.Add(720028, Enums.ItemEffect.None); client.Send(new Message("Your dragonballs have successfully been packed.", System.Drawing.Color.Blue, Message.TopLeft)); } else { dialog.Text("You do not have enough dragonballs for this."); dialog.Option("Okay, sorry sir", 255); dialog.Send(); } } break; } } break; } #endregion
EDIT: Added garment unequip for SurgeonMiracle and added MillionaireLee.