| CODE |
| using System; using Server; using Server.Items; using Server.Prompts; using Server.Targeting; using Server.Gumps; using Server.Network; using Server.Mobiles; using System.Collections; namespace Server.Items // /////Crystal 2003/////////////////// // //////////////////////////////////// // /// le brodeur de sacs /////////// // /// //////////////////////////////// { public class BrodeurSac : Item { private int crysuse2 = 10; //on initialise les charges a 10 [CommandProperty( AccessLevel.GameMaster )] public int m_crysu2 { get { return crysuse2; } set { crysuse2 = value; InvalidateProperties(); } } [Constructable] public BrodeurSac() : base( 0x12B3 ) { Weight = 1.0; Hue = 0x96D; Name = "Outil de broderie"; } public override void GetProperties( ObjectPropertyList list ) { base.GetProperties( list ); list.Add( 1060584, m_crysu2.ToString() ); // uses remaining: ~1_val~ } public virtual void DisplayDurabilityTo( Mobile from ) { LabelToAffix( from, 1017323, AffixType.Append, ": " + m_crysu2.ToString() ); // Durability } public override void OnDoubleClick( Mobile from ) { if ( IsChildOf( from.Backpack ) || Parent == from ) if ( crysuse2 > 0 ) // si il y a encore des charges { from.Target = new gratarget( from ); from.SendMessage( "Quel sac voulez-vous broder ?" ); crysuse2 = crysuse2 - 1; // on bouffe une charge } else { from.SendMessage(0x96D, "L'outil est usé !" ); //sinon on peu plus this.Delete(); } else { from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it. } } public BrodeurSac( Serial serial ) : base( serial ) { } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); // version writer.Write( (int) crysuse2 ); // on ecrit le nombre de charge } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { crysuse2 = reader.ReadInt();// on lit le nombre de charge break; } } } } public class gratarget : Target { private Mobile m_from; public gratarget(Mobile from) : base( 10, false, TargetFlags.None ) { m_from = from; } protected override void OnTarget( Mobile from, object o ) { ArrayList packitems = new ArrayList( m_from.Backpack.Items ); if(packitems.Contains(o)) if ( o is Bag || o is Backpack ) from.SendGump( new graveurgpu ( from, o ) ); else { if( o is Mobile) from.SendMessage( "quoi tu veux lui broder la tete ?" ); else from.SendMessage( "Ceci n'est pas un sac" ); } else from.SendMessage( "L'objet doit être dans votre inventaire!" ); } } } // //////////////////////////////////// // ///////Le gump pour ecrire ///////// // //////////////////////////////////// namespace Server.Gumps { public class graveurgpu : Gump { private Item m_o; private Mobile m_from; public graveurgpu (Mobile from, object o) : base(0,0) { m_o = o as Item; m_from = from; AddPage(0); AddBackground(1, 9, 372, 144, 5054); AddBackground(11, 19, 352, 124, 3500); AddLabel(50, 27, 0, "Quel Nom désirez vous lui donner ?"); AddImage( 48, 49, 1141 ); AddTextEntry( 57, 50, 91, 15, 0x000, 0, m_o.Name ); AddButton( 62, 85, 4023, 4025, 1, GumpButtonType.Reply, 0 ); AddButton( 222, 85, 4020, 4022, 2, GumpButtonType.Reply, 0 ); AddLabel(97, 93, 0, "Ok"); AddLabel(258, 93, 0, "Annuler"); } public override void OnResponse( NetState state, RelayInfo info ) { Mobile from = state.Mobile; switch ( info.ButtonID ) { case 0: break; case 1: m_o.Name = (string)info.GetTextEntry( 0 ).Text; break; case 2: break; } } } } namespace Server.Items // //////////////////////////////////// // /// le graveur de coffre/////////// // /// //////////////////////////////// { public class GraveurCoffre : Item { private int crysuse = 10; //on initialise les charges a 10 [CommandProperty( AccessLevel.GameMaster )] public int m_crysu { get { return crysuse; } set { crysuse = value; InvalidateProperties(); } } [Constructable] public GraveurCoffre() : base( 0x12B3 ) { Weight = 1.0; Hue = 0x96D; Name = "Outil de gravage"; } public override void GetProperties( ObjectPropertyList list ) { base.GetProperties( list ); list.Add( 1060584, m_crysu.ToString() ); // uses remaining: ~1_val~ } public virtual void DisplayDurabilityTo( Mobile from ) { LabelToAffix( from, 1017323, AffixType.Append, ": " + m_crysu.ToString() ); // Durability } public override void OnDoubleClick( Mobile from ) { if ( IsChildOf( from.Backpack ) || Parent == from ) if ( crysuse > 0 ) // si il y a encore des charges { from.Target = new poincetarget( from ); from.SendMessage( "Quel coffre voulez-vous graver ?" ); crysuse = crysuse - 1; // on bouffe une charge } else { from.SendMessage(0x96D, "L'outil est usé !" ); //sinon on peu plus this.Delete(); } else { from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it. } } public GraveurCoffre( Serial serial ) : base( serial ) { } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); // version writer.Write( (int) crysuse ); // on ecrit le nombre de charge } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { crysuse = reader.ReadInt();// on lit le nombre de charge break; } } } } public class poincetarget : Target { private Mobile m_from; public poincetarget(Mobile from) : base( 10, false, TargetFlags.None ) { m_from = from; } protected override void OnTarget( Mobile from, object o ) { ArrayList packitems = new ArrayList( m_from.Backpack.Items ); if(packitems.Contains(o)) if ( o is WoodenBox || o is SmallCrate || o is MediumCrate || o is LargeCrate || o is MetalChest || o is MetalGoldenChest || o is WoodenChest ) from.SendGump( new graveurgpu2 ( from, o ) ); else { if( o is Mobile) from.SendMessage( "quoi tu veux lui broder la tete ?" ); else from.SendMessage( "Ceci n'est pas un coffre" ); } else from.SendMessage( "L'objet doit être dans votre inventaire!" ); } } } // //////////////////////////////////// // ///////Le gump pour ecrire ///////// // //////////////////////////////////// namespace Server.Gumps { public class graveurgpu2 : Gump { private Item m_o; private Mobile m_from; public graveurgpu2 (Mobile from, object o) : base(0,0) { m_o = o as Item; m_from = from; AddPage(0); AddBackground(1, 9, 372, 144, 5054); AddBackground(11, 19, 352, 124, 3500); AddLabel(50, 27, 0, "Quel Nom désirez vous lui donner ?"); AddImage( 48, 49, 1141 ); AddTextEntry( 57, 50, 91, 15, 0x000, 0, m_o.Name ); AddButton( 62, 85, 4023, 4025, 1, GumpButtonType.Reply, 0 ); AddButton( 222, 85, 4020, 4022, 2, GumpButtonType.Reply, 0 ); AddLabel(97, 93, 0, "Ok"); AddLabel(258, 93, 0, "Annuler"); } public override void OnResponse( NetState state, RelayInfo info ) { Mobile from = state.Mobile; switch ( info.ButtonID ) { case 0: break; case 1: m_o.Name = (string)info.GetTextEntry( 0 ).Text; break; case 2: break; } } } } |