View Full Version: Deleter l'objet apres l'avori utilisé

RunUO.FR Support > Probleme de script > Deleter l'objet apres l'avori utilisé


Title: Deleter l'objet apres l'avori utilisé


Myron - May 20, 2004 12:48 PM (GMT)
Voila j'ai scripté un vernis pour mettre les livres en writable false mais je ne sait pas comment faire pour deleter la bouteille de vernis (uniquement en cas de bonne utilisation).

CODE
// created on 20/05/2004 at 13:06 -=Dev Skynet=-
using System;
using Server;
using Server.Items;
using Server.Targeting;

namespace Server.Items
{

  public class VernisLivre : Item
  {
     [Constructable]
     public VernisLivre() : base( 0xEFC )
     {
        Name = "Fiole de Vernis";
     }

     public VernisLivre( Serial serial ) : base( serial )
     {
     }
  public override void OnDoubleClick( Mobile LePj )
     {
     LePj.Target=new VerrouTarget();
     }
     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();
     }
       
      private class VerrouTarget : Target
 {
 
       public VerrouTarget() : base( -1, true, TargetFlags.None )
        {
        }

 protected override void OnTarget( Mobile Pj, object o )
 {
 if (o is BaseBook)
 {
 ((BaseBook) o).Writable = false;
 Pj.SendMessage ("Vous appliquez le vernis sur le livre");
 
 }
 else
 {
 Pj.SendMessage ("Vous devez utiliser le vernis sur un livre!");
 }
 
}
}


}
}

Injall - May 21, 2004 04:27 PM (GMT)
// created on 20/05/2004 at 13:06 -=Dev Skynet=-
using System;
using Server;
using Server.Items;
using Server.Targeting;

namespace Server.Items
{

  public class VernisLivre : Item
  {
     [Constructable]
     public VernisLivre() : base( 0xEFC )
     {
        Name = "Fiole de Vernis";
     }

     public VernisLivre( Serial serial ) : base( serial )
     {
     }
  public override void OnDoubleClick( Mobile LePj )
     {
     LePj.Target=new VerrouTarget();
     }
     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();
     }
       
      private class VerrouTarget : Target
 {
 
       public VerrouTarget() : base( -1, true, TargetFlags.None )
        {
        }

 protected override void OnTarget( Mobile Pj, object o )
 {
 if (o is BaseBook)
 {
 ((BaseBook) o).Writable = false;
 Pj.SendMessage ("Vous appliquez le vernis sur le livre");
 this.delete();
 }
 else
 {
 Pj.SendMessage ("Vous devez utiliser le vernis sur un livre!");
 }
 
}
}


}
}

Essaye comme ca :lol:

Myron - May 22, 2004 04:43 PM (GMT)
j'ai un message d'erreur , si on place le this.delete(); dans le target ca va pas et si on le tape dans le vernis il se dilite meme si on fait escape pour annuler le target

Didi - May 22, 2004 05:23 PM (GMT)
Fait comme sa :)
QUOTE (Myron @ May 20 2004, 01:48 PM)
// created on 20/05/2004 at 13:06 -=Dev Skynet=-
using System;
using Server;
using Server.Items;
using Server.Targeting;

namespace Server.Items
{

  public class VernisLivre : Item
  {
     [Constructable]
     public VernisLivre() : base( 0xEFC )
     {
        Name = "Fiole de Vernis";
     }

     public VernisLivre( Serial serial ) : base( serial )
     {
     }
  public override void OnDoubleClick( Mobile LePj )
     {
     LePj.Target=new VerrouTarget(this);
     }
     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();
     }
       
      private class VerrouTarget : Target
 {
  private VernisLivre Vbook;
       public VerrouTarget(VernisLivre it) : base( -1, true, TargetFlags.None )
        {
   Vbook = it;
        }

 protected override void OnTarget( Mobile Pj, object o )
 {
 if (o is BaseBook)
 {
 ((BaseBook) o).Writable = false;
 Pj.SendMessage ("Vous appliquez le vernis sur le livre");
 Vbook.Delete();
 }
 else
 {
 Pj.SendMessage ("Vous devez utiliser le vernis sur un livre!");
 }
 
}
}


}
}

Myron - May 22, 2004 06:58 PM (GMT)
Merci bcp :)




Hosted for free by InvisionFree