| CODE |
| // created on 13/08/2003 at 19:26 /************************************************************************************/ /* Bouquin d'etude beta 1.0 pour RunUO. */ /* Julien [Sniperbart] */ /* Caractèristique : */ /* - Augmentation du skills etudiable */ /* - Timer pour eviter abus de etude */ /* - Au Double clic, livre devient utilisable seulement par un joueur unique */ /* - limitation en skills caps (A venir dans prochaine Version) */ /* Remerciement : crystal, Sna, Inconu. */ /* - L'idée du script n'est pas de moi, mais j'avais envie d'essayer de le coder */ /************************************************************************************/ using Server; using System; using Server.Mobiles; using Server.Network; using Server.Items; namespace Server.Items { public class BouquinAnatomy05 : Item { public Mobile Proprietaire; public bool m_Utilise; public double dbl_DureeTimer; public double dbl_DureeOnTick; public int int_AugmDeEtude; public int Clic_2; /**************** GM command*****************/ [CommandProperty( AccessLevel.GameMaster )] public bool Utilise { get { return m_Utilise; } set { m_Utilise = value; } } [CommandProperty( AccessLevel.GameMaster )] public double DureeTimer { get { return dbl_DureeTimer; } set { dbl_DureeTimer = value; } } [CommandProperty( AccessLevel.GameMaster )] public double DureeOnTick { get { return dbl_DureeOnTick; } set { dbl_DureeOnTick = value; } } [CommandProperty( AccessLevel.GameMaster )] public int AugmDeEtude { get { return int_AugmDeEtude; } set { int_AugmDeEtude = value; } } /************************Objet***********/ [Constructable] public BouquinAnatomy05() : base( 0xFF0 ) { Weight = 2.0; Name = "Bouquin d'etude"; dbl_DureeTimer = 30.0; dbl_DureeOnTick = 1.0; int_AugmDeEtude = 5; } /********************** Lorsque on double clique****************/ public override void OnDoubleClick( Mobile from ) { if(Proprietaire == null) { Proprietaire = from; } if ((Proprietaire == from) && (m_Utilise == false)) { m_Utilise = true; from.PlaySound(0x249); new TimerBouquinAnatomy05(this).Start(); } if (Proprietaire != from) { from.SendMessage("Ce livre ne vous appartient pas"); } if ((Proprietaire == from)&& (m_Utilise == true)) { from.SendMessage("Vous êtes concentrée sur votre lecture"); } } /*************************Serialize***************************/ public BouquinAnatomy05( Serial serial ) : base( serial ) { } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); writer.Write( (Mobile) Proprietaire); writer.Write( (bool) m_Utilise); writer.Write( (double) dbl_DureeTimer); writer.Write( (double) dbl_DureeOnTick); writer.Write( (int) int_AugmDeEtude); } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { Proprietaire = reader.ReadMobile(); m_Utilise = reader.ReadBool(); dbl_DureeTimer = reader.ReadDouble(); dbl_DureeOnTick = reader.ReadDouble(); int_AugmDeEtude = reader.ReadInt(); break; } } } } /*************Timer*********************/ public class TimerBouquinAnatomy05 : Timer { private BouquinAnatomy05 m_TimerBouquinAnatomy05Var; public TimerBouquinAnatomy05(BouquinAnatomy05 m_TimerBouquinAnatomy05) : base( TimeSpan.FromSeconds(m_TimerBouquinAnatomy05.dbl_DureeTimer),TimeSpan.FromSeconds (m_TimerBouquinAnatomy05.dbl_DureeOnTick),1) //base( TimeSpan.FromSeconds(delai avant premier tick),TimeSpan.FromSeconds(durée du tick),nombre de répétition) { m_TimerBouquinAnatomy05Var = m_TimerBouquinAnatomy05; } protected override void OnTick() { m_TimerBouquinAnatomy05Var.m_Utilise = false; m_TimerBouquinAnatomy05Var.Proprietaire.Skills[SkillName.Anatomy].BaseFixedPoint += m_TimerBouquinAnatomy05Var.int_AugmDeEtude; m_TimerBouquinAnatomy05Var.Proprietaire.SendMessage("La lecture prend fin"); m_TimerBouquinAnatomy05Var.Proprietaire.PlaySound(0x217); Stop(); } } } |
| CODE |
| public class BouquinAnatomy05 : Item |
| CODE |
| [Constructable] public BouquinAnatomy05() : base( 0xFF0 ) |
| CODE |
| /*************************Serialize***************************/ public BouquinAnatomy05( Serial serial ) : base( serial ) { } |
| CODE |
| public class TimerBouquinAnatomy05 : Timer |
| CODE |
| public class TimerBouquinMagery05 : Timer |
| CODE |
| private BouquinAnatomy05 m_TimerBouquinAnatomy05Var; |
| CODE |
| private BouquinMagery05 m_TimerMagery05Var; |
| CODE |
| public TimerBouquinAnatomy05(BouquinAnatomy05 m_TimerBouquinAnatomy05) |
| CODE |
| public TimerBouquinMagery05(BouquinMagery05 m_TimerBouquinMagery05) |
| CODE |
| base( TimeSpan.FromSeconds(m_TimerBouquinAnatomy05.dbl_DureeTimer),TimeSpan.FromSeconds (m_TimerBouquinAnatomy05.dbl_DureeOnTick),1) |
| CODE |
| base( TimeSpan.FromSeconds(m_TimerBouquinMagery05.dbl_DureeTimer),TimeSpan.FromSeconds (m_TimerBouquinMagery05.dbl_DureeOnTick),1) |
| CODE |
| { m_TimerBouquinAnatomy05Var = m_TimerBouquinAnatomy05; } protected override void OnTick() { m_TimerBouquinAnatomy05Var.m_Utilise = false; m_TimerBouquinAnatomy05Var.Proprietaire.Skills[SkillName.Anatomy].BaseFixedPoint += m_TimerBouquinAnatomy05Var.int_AugmDeEtude; m_TimerBouquinAnatomy05Var.Proprietaire.SendMessage("La lecture prend fin"); m_TimerBouquinAnatomy05Var.Proprietaire.PlaySound(0x217); Stop(); } |
| CODE |
| new TimerBouquinAnatomy05(this).Start(); |
| CODE |
| new TimerBouquinMagery05(this).Start(); |
| CODE |
public BouquinAnatomy05() : base( 0xFF0 ) { Weight = 2.0; // Ici le poids du livre Name = "Bouquin d'etude"; // ici le nom du livre dbl_DureeTimer = 30.0; // Alors ici la durée avant la fin de la lecture dbl_DureeOnTick = 1.0; // La durée du OnTick, laissée a 1 seconde par default int_AugmDeEtude = 5; // Augmentation de etude, ici 0.5 par lecture } |
| CODE |
protected override void OnTick() { m_TimerBouquinAnatomy05Var.m_Utilise = false; // ICI m_TimerBouquinAnatomy05Var.Proprietaire.Skills [SkillName.Anatomy].BaseFixedPoint += m_TimerBouquinAnatomy05Var.int_AugmDeEtude; // Remplacée "Anatomy" par le skills voulu. m_TimerBouquinAnatomy05Var.Proprietaire.SendMessage("La lecture prend fin"); m_TimerBouquinAnatomy05Var.Proprietaire.PlaySound(0x217); Stop(); } |