예제 #1
0
 static void BuffIcons_Removed(BuffIcon buffID)
 {
     if (buffID == BuffIcon.GiftOfLife && timer != null)
     {
         timer.Stop();
         timer = null;
     }
 }
예제 #2
0
 private static void BuffIcons_Added(BuffIcon buffID, BuffInfo buff)
 {
     if (buffID == BuffIcon.GiftOfLife && buff.Duration > 15)
     {
         if (timer != null)
             timer.Stop();
         timer = Timer.DelayedCallback(TimeSpan.FromSeconds(buff.Duration - 15), OnTimer);
         timer.Start();
     }
 }
예제 #3
0
        public BuffInfo( BuffIcon iconID, int titleCliloc, int secondaryCliloc, TimeSpan length, Mobile m, bool retainThroughDeath )
            : this(iconID, titleCliloc, secondaryCliloc)
        {
            m_TimeLength = length;
            m_TimeStart = DateTime.Now;

            m_Timer = Timer.DelayCall( length, new TimerStateCallback( RemoveBuffDelegate ), m );

            m_RetainThroughDeath = retainThroughDeath;
        }
예제 #4
0
		public RemoveBuffPacket( Mobile mob, BuffIcon iconID )
			: base( 0xDF )
		{
			this.EnsureCapacity( 13 );
			m_Stream.Write( (int) mob.Serial );

			m_Stream.Write( (short) iconID );
			m_Stream.Write( (short) 0x0 ); // Type 0 for removal. 1 for add 2 for Data

			m_Stream.Fill( 4 );
		}
예제 #5
0
 private static void BuffIcons_Added(BuffIcon buffId, BuffInfo info)
 {
     if (buffId == BuffIcon.BloodOathCurse)
     {
         Mobile mobile = World.FindMobile(lastSerial);
         if (mobile == null)
             return;
         lastOath = lastSerial;
         if (Utility.Distance(mobile.Position, World.Player.Position) < 2)
         {
             WorldEx.SendToServer(new SetWarMode(true));
             WorldEx.SendToServer(new SetWarMode(false));
             WorldEx.OverHeadMessage("!Blood Oath!", 0x0017);
         }
     }
 }
예제 #6
0
파일: BuffIcons.cs 프로젝트: nathanvy/runuo
		//Only the timed one needs to Mobile to know when to automagically remove it.
		public BuffInfo( BuffIcon iconID, int titleCliloc, int secondaryCliloc, TimeSpan length, Mobile m )
			: this( iconID, titleCliloc, secondaryCliloc )
		{
			m_TimeLength = length;
			m_TimeStart = DateTime.UtcNow;

			m_Timer = Timer.DelayCall( length, new TimerCallback(
				delegate
				{
					PlayerMobile pm = m as PlayerMobile;

					if( pm == null )
						return;

					pm.RemoveBuff( this );
				} ) );
		}
예제 #7
0
        public AddBuffPacket( Mobile mob, BuffIcon iconID, int titleCliloc, int secondaryCliloc, TextDefinition args, TimeSpan length )
            : base(0xDF)
        {
            bool hasArgs = (args != null);

            this.EnsureCapacity( (hasArgs ? (48 + args.ToString().Length * 2): 44) );
            m_Stream.Write( (int)mob.Serial );

            m_Stream.Write( (short)iconID );	//ID
            m_Stream.Write( (short)0x1 );	//Type 0 for removal. 1 for add 2 for Data

            m_Stream.Fill( 4 );

            m_Stream.Write( (short)iconID );	//ID
            m_Stream.Write( (short)0x01 );	//Type 0 for removal. 1 for add 2 for Data

            m_Stream.Fill( 4 );

            if( length < TimeSpan.Zero )
                length = TimeSpan.Zero;

            m_Stream.Write( (short)length.TotalSeconds );	//Time in seconds

            m_Stream.Fill( 3 );
            m_Stream.Write( (int)titleCliloc );
            m_Stream.Write( (int)secondaryCliloc );

            if( !hasArgs )
            {
                //m_Stream.Fill( 2 );
                m_Stream.Fill( 10 );
            }
            else
            {
                m_Stream.Fill( 4 );
                m_Stream.Write( (short)0x1 );	//Unknown -> Possibly something saying 'hey, I have more data!'?
                m_Stream.Fill( 2 );

                //m_Stream.WriteLittleUniNull( "\t#1018280" );
                m_Stream.WriteLittleUniNull( String.Format( "\t{0}", args.ToString() ) );

                m_Stream.Write( (short)0x1 );	//Even more Unknown -> Possibly something saying 'hey, I have more data!'?
                m_Stream.Fill( 2 );
            }
        }
예제 #8
0
 public BuffInfo(BuffIcon iconID, int titleCliloc, int secondaryCliloc, TextDefinition args)
     : this(iconID, titleCliloc, secondaryCliloc)
 {
     m_Args = args;
 }
예제 #9
0
 public BuffInfo( BuffIcon iconID, int titleCliloc, int secondaryCliloc, TextDefinition args )
     : this(iconID, titleCliloc, secondaryCliloc)
 {
     m_Args = args;
 }
예제 #10
0
 public BuffInfo( BuffIcon iconID, int titleCliloc, TimeSpan length, Mobile m )
     : this(iconID, titleCliloc, titleCliloc + 1, length, m)
 {
 }
예제 #11
0
 public BuffInfo( BuffIcon iconID, int titleCliloc )
     : this(iconID, titleCliloc, titleCliloc + 1)
 {
 }
예제 #12
0
 // Only the timed one needs to Mobile to know when to automagically remove it.
 public BuffInfo(BuffIcon iconID, int titleCliloc, int secondaryCliloc, TimeSpan length, Mobile m)
     : this(iconID, titleCliloc, secondaryCliloc, length, m, false)
 {
 }
예제 #13
0
 public BuffInfo(BuffIcon iconID, int titleCliloc, int secondaryCliloc, TimeSpan length, Mobile m, TextDefinition args, bool retainThroughDeath)
     : this(iconID, titleCliloc, secondaryCliloc, length, m)
 {
     m_Args = args;
     m_RetainThroughDeath = retainThroughDeath;
 }
예제 #14
0
 public BuffInfo(BuffIcon iconID, int titleCliloc)
     : this(iconID, titleCliloc, titleCliloc + 1)
 {
 }
예제 #15
0
 public BuffInfo(BuffIcon iconID, int titleCliloc, int secondaryCliloc, TimeSpan length, Mobile m, TextDefinition args)
     : this(iconID, titleCliloc, secondaryCliloc, length, m)
 {
     m_Args = args;
 }
예제 #16
0
 public BuffInfo(BuffIcon iconID, int titleCliloc, TimeSpan length, Mobile m, TextDefinition args)
     : this(iconID, titleCliloc, titleCliloc + 1, length, m, args)
 {
 }
예제 #17
0
 public BuffInfo(BuffIcon iconID, int titleCliloc, int secondaryCliloc, TextDefinition args, bool retainThroughDeath)
     : this(iconID, titleCliloc, secondaryCliloc, args)
 {
     m_RetainThroughDeath = retainThroughDeath;
 }
예제 #18
0
 public BuffInfo(BuffIcon iconID, int titleCliloc, TextDefinition args, bool retainThroughDeath)
     : this(iconID, titleCliloc, titleCliloc + 1, args, retainThroughDeath)
 {
 }
예제 #19
0
 public BuffInfo(BuffIcon iconID, int titleCliloc, int secondaryCliloc, bool retainThroughDeath)
     : this(iconID, titleCliloc, secondaryCliloc)
 {
     m_RetainThroughDeath = retainThroughDeath;
 }
예제 #20
0
 public BuffInfo(BuffIcon iconID, int titleCliloc, bool retainThroughDeath)
     : this(iconID, titleCliloc, titleCliloc + 1, retainThroughDeath)
 {
 }
예제 #21
0
 public BuffInfo(BuffIcon iconID, int titleCliloc, int secondaryCliloc)
 {
     ID              = iconID;
     TitleCliloc     = titleCliloc;
     SecondaryCliloc = secondaryCliloc;
 }
예제 #22
0
파일: BuffIcons.cs 프로젝트: nathanvy/runuo
		public BuffInfo( BuffIcon iconID, int titleCliloc, int secondaryCliloc, TimeSpan length, Mobile m, TextDefinition args, bool retainThroughDeath )
			: this( iconID, titleCliloc, secondaryCliloc, length, m )
		{
			m_Args = args;
			m_RetainThroughDeath = retainThroughDeath;
		}
예제 #23
0
 public BuffInfo(BuffIcon iconID, int titleCliloc, int secondaryCliloc)
 {
     m_ID              = iconID;
     m_TitleCliloc     = titleCliloc;
     m_SecondaryCliloc = secondaryCliloc;
 }
예제 #24
0
 // Only the timed one needs to Mobile to know when to automagically remove it.
 public BuffInfo( BuffIcon iconID, int titleCliloc, int secondaryCliloc, TimeSpan length, Mobile m )
     : this(iconID, titleCliloc, secondaryCliloc, length, m, false)
 {
 }
예제 #25
0
 public BuffInfo(BuffIcon iconID, int titleCliloc, TimeSpan length, Mobile m)
     : this(iconID, titleCliloc, titleCliloc + 1, length, m)
 {
 }
예제 #26
0
 public BuffInfo(BuffIcon iconID, int titleCliloc, TimeSpan length, Mobile m, TextDefinition args, bool retainThroughDeath)
     : this(iconID, titleCliloc, titleCliloc + 1, length, m, args, retainThroughDeath)
 {
 }
예제 #27
0
        private static void LoadGameLibraries()
        {
            Count = MapLibs.Length + Monsters.Length + Gates.Length + NPCs.Length + CArmours.Length +
                    CHair.Length + CWeapons.Length + CWeaponEffect.Length + AArmours.Length + AHair.Length + AWeaponsL.Length + AWeaponsR.Length +
                    ARArmours.Length + ARHair.Length + ARWeapons.Length + ARWeaponsS.Length +
                    CHumEffect.Length + AHumEffect.Length + ARHumEffect.Length + Mounts.Length + Fishing.Length + Pets.Length +
                    Transform.Length + TransformMounts.Length + TransformEffect.Length + TransformWeaponEffect.Length +
                    MonkArmours.Length + MonkHair.Length + MonkHumEffects.Length + MonkWeaponEffects.Length + MonkWeapons.Length +
                    17;

            Dragon.Initialize();
            Progress++;

            BuffIcon.Initialize();
            Progress++;

            Help.Initialize();
            Progress++;

            MiniMap.Initialize();
            Progress++;

            MagIcon.Initialize();
            Progress++;
            MagIcon2.Initialize();
            Progress++;

            Magic.Initialize();
            Progress++;
            Magic2.Initialize();
            Progress++;
            Magic3.Initialize();
            Progress++;
            MagicC.Initialize();
            Progress++;

            Effect.Initialize();
            Progress++;

            GuildSkill.Initialize();
            Progress++;

            Background.Initialize();
            Progress++;

            Deco.Initialize();
            Progress++;

            Items.Initialize();
            Progress++;
            StateItems.Initialize();
            Progress++;
            FloorItems.Initialize();
            Progress++;

            for (int i = 0; i < MapLibs.Length; i++)
            {
                if (MapLibs[i] == null)
                {
                    MapLibs[i] = new MLibrary("");
                }
                else
                {
                    MapLibs[i].Initialize();
                }
                Progress++;
            }

            for (int i = 0; i < Monsters.Length; i++)
            {
                Monsters[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < Gates.Length; i++)
            {
                Gates[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < NPCs.Length; i++)
            {
                NPCs[i].Initialize();
                Progress++;
            }


            for (int i = 0; i < CArmours.Length; i++)
            {
                CArmours[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < CHair.Length; i++)
            {
                CHair[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < CWeapons.Length; i++)
            {
                CWeapons[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < CWeaponEffect.Length; i++)
            {
                CWeaponEffect[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < AArmours.Length; i++)
            {
                AArmours[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < AHair.Length; i++)
            {
                AHair[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < AWeaponsL.Length; i++)
            {
                AWeaponsL[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < AWeaponsR.Length; i++)
            {
                AWeaponsR[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < ARArmours.Length; i++)
            {
                ARArmours[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < ARHair.Length; i++)
            {
                ARHair[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < ARWeapons.Length; i++)
            {
                ARWeapons[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < ARWeaponsS.Length; i++)
            {
                ARWeaponsS[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < CHumEffect.Length; i++)
            {
                CHumEffect[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < AHumEffect.Length; i++)
            {
                AHumEffect[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < ARHumEffect.Length; i++)
            {
                ARHumEffect[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < Mounts.Length; i++)
            {
                Mounts[i].Initialize();
                Progress++;
            }


            for (int i = 0; i < Fishing.Length; i++)
            {
                Fishing[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < Pets.Length; i++)
            {
                Pets[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < Transform.Length; i++)
            {
                Transform[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < TransformEffect.Length; i++)
            {
                TransformEffect[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < TransformWeaponEffect.Length; i++)
            {
                TransformWeaponEffect[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < TransformMounts.Length; i++)
            {
                TransformMounts[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < MonkArmours.Length; i++)
            {
                MonkArmours[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < MonkWeapons.Length; i++)
            {
                MonkWeapons[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < MonkHair.Length; i++)
            {
                MonkHair[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < MonkWeaponEffects.Length; i++)
            {
                MonkWeaponEffects[i].Initialize();
                Progress++;
            }

            for (int i = 0; i < MonkHumEffects.Length; i++)
            {
                MonkHumEffects[i].Initialize();
                Progress++;
            }

            Loaded = true;
        }
		public void RemoveBuff(BuffIcon b)
		{
			if (m_BuffTable == null || !m_BuffTable.ContainsKey(b))
			{
				return;
			}

			BuffInfo info = m_BuffTable[b];

			if (info.Timer != null && info.Timer.Running)
			{
				info.Timer.Stop();
			}

			m_BuffTable.Remove(b);

			NetState state = NetState;

			if (state != null && state.BuffIcon)
			{
				state.Send(new RemoveBuffPacket(this, b));
			}

			if (m_BuffTable.Count <= 0)
			{
				m_BuffTable = null;
			}
		}
예제 #29
0
 public BuffInfo( BuffIcon iconID, int titleCliloc, int secondaryCliloc, bool retainThroughDeath )
     : this(iconID, titleCliloc, secondaryCliloc)
 {
     m_RetainThroughDeath = retainThroughDeath;
 }
예제 #30
0
 public BuffInfo( BuffIcon iconID, int titleCliloc, int secondaryCliloc )
 {
     m_ID = iconID;
     m_TitleCliloc = titleCliloc;
     m_SecondaryCliloc = secondaryCliloc;
 }
예제 #31
0
 public BuffInfo( BuffIcon iconID, int titleCliloc, int secondaryCliloc, TextDefinition args, bool retainThroughDeath )
     : this(iconID, titleCliloc, secondaryCliloc, args)
 {
     m_RetainThroughDeath = retainThroughDeath;
 }
예제 #32
0
 public BuffInfo( BuffIcon iconID, int titleCliloc, TextDefinition args )
     : this(iconID, titleCliloc, titleCliloc + 1, args)
 {
 }
예제 #33
0
 public BuffInfo( BuffIcon iconID, int titleCliloc, int secondaryCliloc, TimeSpan length, Mobile m, TextDefinition args )
     : this(iconID, titleCliloc, secondaryCliloc, length, m)
 {
     m_Args = args;
 }
예제 #34
0
 public BuffInfo( BuffIcon iconID, int titleCliloc, bool retainThroughDeath )
     : this(iconID, titleCliloc, titleCliloc + 1, retainThroughDeath)
 {
 }
예제 #35
0
 public BuffInfo(BuffIcon iconID, int titleCliloc, TextDefinition args)
     : this(iconID, titleCliloc, titleCliloc + 1, args)
 {
 }
예제 #36
0
 public BuffInfo( BuffIcon iconID, int titleCliloc, TextDefinition args, bool retainThroughDeath )
     : this(iconID, titleCliloc, titleCliloc + 1, args, retainThroughDeath)
 {
 }
예제 #37
0
 private static void BuffIcons_Removed(BuffIcon buffId)
 {
     if (buffId == BuffIcon.BloodOathCurse)
         lastSerial = lastOath = 0;
 }
예제 #38
0
 public BuffInfo( BuffIcon iconID, int titleCliloc, TimeSpan length, Mobile m, TextDefinition args )
     : this(iconID, titleCliloc, titleCliloc + 1, length, m, args)
 {
 }
 public ActionShakeBuff(BuffIcon b, float time)
 {
     this.b = b;
     this.time = time;
 }
예제 #40
0
        public static void RemoveBuff( Mobile m, BuffIcon b )
        {
            PlayerMobile pm = m as PlayerMobile;

            if( pm != null )
                pm.RemoveBuff( b );
        }
예제 #41
0
파일: BuffIcons.cs 프로젝트: nathanvy/runuo
		public BuffInfo( BuffIcon iconID, int titleCliloc, TimeSpan length, Mobile m, TextDefinition args, bool retainThroughDeath )
			: this( iconID, titleCliloc, titleCliloc + 1, length, m, args, retainThroughDeath )
		{
		}
예제 #42
0
        public void RemoveBuff(BuffIcon b)
        {
            if (m_BuffTable == null || !m_BuffTable.ContainsKey(b))
                return;

            BuffInfo info = m_BuffTable[b];

            if (info.Timer != null && info.Timer.Running)
                info.Timer.Stop();

            m_BuffTable.Remove(b);

            NetState state = this.NetState;

            if (state != null && state.Version >= BuffInfo.RequiredClient)
            {
                state.Send(new RemoveBuffPacket(this, b));
            }

            if (m_BuffTable.Count <= 0)
                m_BuffTable = null;
        }
예제 #43
0
파일: BuffIcons.cs 프로젝트: ygtkms/ServUO
 public BuffInfo(BuffIcon iconID, int titleCliloc, int secondaryCliloc, TimeSpan length, Mobile m, bool notimer)
     : this(iconID, titleCliloc, secondaryCliloc, length, m)
 {
     m_NoTimer = notimer;
 }