CODE |
using System; using Server.Misc; using Server.Network; using Server.Prompts; using Server.Items; using Server.Mobiles; using Server.Targeting; namespace Server.Items { public class EngravingTool : Item { [Constructable] public EngravingTool() : base( 0x12B3 ) { Weight = 1.0; Name = "Engraving Tool"; Hue = 548; } public EngravingTool( Serial serial ) : base( serial ) { } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); // version } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); } public override void OnDoubleClick( Mobile from ) { if ( from.InRange( this.GetWorldLocation(), 2 ) ) { from.Target = new EngravingToolTarget( this ); } else { from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that. } } } public class EngravingToolTarget : Target { private EngravingTool m_Tool; public EngravingToolTarget( EngravingTool tool ) : base( 18, false, TargetFlags.None ) { m_Tool = tool; } protected override void OnTarget( Mobile from, object targeted ) { if ( m_Tool.Deleted ) return; if ( targeted is BaseContainer ) m_Tool.ContainerNameChangePrompt( from, this ); } } public class ContainerNameChangePrompt : Prompt { private Item m_Item; public ContainerNameChangePrompt( Mobile from, Item item ) { m_Item = item; from.SendMessage("What would you like to name the container (2-16 characters)?"); } public override void OnResponse( Mobile from, string text ) { if (m_Item == null || !m_Item.IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 ); text = text.Trim(); if (!NameVerification.Validate( text, 2, 16, true, false, true, 1, NameVerification.SpaceDashPeriodQuote )) from.SendMessage( "Names must contain 2-16 alphabetic characters." ); else { from.Name = text; // m_Item.Delete(); } } } } |
CODE |
- Error: Scripts\Custom\Ally\EngravingTool.cs: CS0117: (line 69, column 14) 'Se rver.Items.EngravingTool' does not contain a definition for 'ContainerNameChange Prompt' |
QUOTE |
using System; using Server.Misc; using Server.Network; using Server.Prompts; using Server.Items; using Server.Mobiles; using Server.Targeting; namespace Server.Items { public class EngravingTool : Item { [Constructable] public EngravingTool() : base( 0x12B3 ) { Weight = 1.0; Name = "Engraving Tool"; Hue = 548; } public EngravingTool( Serial serial ) : base( serial ) { } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); // version } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); } public override void OnDoubleClick( Mobile from ) { if ( from.InRange( this.GetWorldLocation(), 2 ) ) { from.Target = new EngravingToolTarget( this ); } else { from.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that. } } } public class EngravingToolTarget : Target { private EngravingTool m_Tool; public EngravingToolTarget( EngravingTool tool ) : base( 18, false, TargetFlags.None ) { m_Tool = tool; } protected override void OnTarget( Mobile from, Item targeted ) { if ( m_Tool.Deleted ) return; if ( targeted is BaseContainer ) from.Prompt = new ContainerNameChangePrompt( from, targeted ); } } public class ContainerNameChangePrompt : Prompt { private Item m_Item; public ContainerNameChangePrompt( Mobile from, Item item ) { m_Item = item; from.SendMessage("What would you like to name the container (2-16 characters)?"); } public override void OnResponse( Mobile from, string text ) { if (m_Item == null || !m_Item.IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 ); text = text.Trim(); if (!NameVerification.Validate( text, 2, 16, true, false, true, 1, NameVerification.SpaceDashPeriodQuote )) from.SendMessage( "Names must contain 2-16 alphabetic characters." ); else { from.Name = text; // m_Item.Delete(); } } } } |
CODE |
if ( targeted is BaseContainer && targeted.IsChildOf( from.Backpack ) ) |