View Full Version: Un renommer de container

RunUO.FR Support > Items > Un renommer de container


Title: Un renommer de container
Description: un outils pour renommer les container


crystal - August 10, 2003 10:49 AM (GMT)
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;
   
   }
  }
 
 }
}



Ajouter les items GraveurCoffre et BrodeurSac au menu Thinker .
Attention il perde 1 charge a chaque utilisation

Oxygene - August 10, 2003 03:46 PM (GMT)
Pas mal du tout ! :)

Et pourquoi pas utiliser les skills pour que n'importe qui ne puisse broder ou graver ? Et aussi pour les faire progresser ? Broderie sur sac, skill Tailor, et gravure sur bois, skill....heuu....Carpentrie ??? Ou tout simplement skill tinkering ?

crystal - August 10, 2003 05:10 PM (GMT)
le prérequis ,c'est pas dur a ajouter

le gain de skill c'est plus dur et on peut pas faire n'importe quoi sans détraquer le gameplay de RunUO . donc en général je n'ajoute aucun gain possible a mes script .

Libre a celui qui les reprends de foutre en l'air son shards , mais ce ne sera pas a cause de moi :)




Hosted for free by InvisionFree