| CODE |
private Timer m_DecayTimer; private DateTime m_DecayTime = TimeSpan.FromMinutes( 60.0 ); //ici timer = 60 minutes public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); // version writer.WriteDeltaTime( m_DecayTime ); } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: m_DecayTime = ( reader.ReadDeltaTime() - DateTime.Now ); m_DecayTimer = new InternalTimer( m_DecayTime ); m_DecayTimer.Start(); break; } } private class InternalTimer : Timer { public InternalTimer( TimeSpan delay ) : base( delay ) { Priority = TimerPriority.FiveSeconds; } protected override void OnTick() { //event } } |
| CODE |
| Scripts: Compiling C# scripts...failed (5 errors, 0 warnings) - Error: Scripts\Mobiles\Animals\Birds\poussin.cs: CS0029: (line 54, column 32) Cannot implicitly convert type 'System.TimeSpan' to 'System.DateTime' - Error: Scripts\Mobiles\Animals\Birds\poussin.cs: CS0029: (line 54, column 32) Cannot implicitly convert type 'System.TimeSpan' to 'System.DateTime' - Error: Scripts\Mobiles\Animals\Birds\poussin.cs: CS0029: (line 74, column 36) Cannot implicitly convert type 'System.TimeSpan' to 'System.DateTime' - Error: Scripts\Mobiles\Animals\Birds\poussin.cs: CS1502: (line 75, column 35) The best overloaded method match for 'Server.Mobiles.Poussin.InternalTimer.Inte rnalTimer(System.TimeSpan)' has some invalid arguments - Error: Scripts\Mobiles\Animals\Birds\poussin.cs: CS1503: (line 75, column 54) Argument '1': cannot convert from 'System.DateTime' to 'System.TimeSpan' |
| CODE |
using System; using System.Collections; using Server; using Server.Misc; namespace Server.Items { public class PrisonClock : Item { private int m_DecayTime; private Timer m_Timer; private Mobile m_from; private string m_name; private Container m_coffre; // Duree de la peine en minute [CommandProperty( AccessLevel.GameMaster )] public int GetTimeClock {get{return m_DecayTime;}set{m_DecayTime = value;}} public PrisonClock(Mobile from,Container coffre,int tempprisonier , string RegionName) : base(0x1813) { Movable = false; m_name = from.Name + " libéré dans"; m_DecayTime = tempprisonier; m_from = from; m_coffre = coffre; m_Timer = new InternalTimer( m_name , m_from , this); m_Timer.Start(); } public PrisonClock(Serial serial) : base(serial) { } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); // version writer.Write( (Mobile)m_from ); writer.Write( m_coffre ); writer.Write( m_name ); writer.Write( m_DecayTime ); } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_from = reader.ReadMobile(); m_coffre = reader.ReadItem() as PrisonCoffre; m_name = reader.ReadString(); m_DecayTime = reader.ReadInt(); m_Timer = new InternalTimer( m_name , m_from , this); m_Timer.Start(); break; } } } private class InternalTimer: Timer { private Item m_item; private Mobile m_from; private string m_nameclock; public InternalTimer(string nameclock , Mobile from , Item item): base( TimeSpan.FromSeconds( 60.0), TimeSpan.FromSeconds( 60.0)) { Priority = TimerPriority.FiftyMS; m_item = item; m_from= from; m_nameclock = nameclock; } protected override void OnTick() { if (m_from.NetState != null) //prisonnier Online { PrisonClock clock = (PrisonClock)m_item; if (m_from.Region.Name == "Prison") { int tmptolibre = clock.GetTimeClock; --tmptolibre; if ( tmptolibre <= 0) { m_item.Delete(); } clock.GetTimeClock = tmptolibre; } else clock.Delete(); } } } } } |