Пример #1
0
 public static void DeathAnim_OnAnimationEnd(Animation a, Mobile m)
 {
     if (m != null)
     {
         Item item = World.FindItem(m.CorpseSerial);
         m.Visible = false;
         m.CorpseSerial = 0;
         m.Update();
         if (item != null)
         {
             item.CorpseSerial = 0;
             item.Direction = m.Direction;
             item.Visible = true;
             item.Update();
         }
     }
 }
Пример #2
0
 public static void Resurrect_OnAnimationEnd(Animation a, Mobile m)
 {
     if (m != null)
     {
         m.Visible = false;
         m.Update();
     }
 }
Пример #3
0
        private static void Mobile_Animation(PacketReader pvSrc)
        {
            int num;
            int num3;
            bool flag;
            bool flag2;
            int num4;
            int num5;
            Mobile mobile = World.FindMobile(pvSrc.ReadInt32());
            if (mobile != null)
            {
                num = pvSrc.ReadInt16();
                int num2 = pvSrc.ReadInt16();
                num3 = pvSrc.ReadInt16();
                flag = !pvSrc.ReadBoolean();
                flag2 = pvSrc.ReadBoolean();
                num4 = pvSrc.ReadByte();
                switch (Engine.m_Animations.GetBodyType(mobile.Body))
                {
                    case BodyType.Monster:
                        num = num % 0x16;
                        goto Label_00D9;

                    case BodyType.Sea:
                    case BodyType.Animal:
                    {
                        object obj2 = Engine.m_Animations.ActionDef1[num];
                        if (obj2 != null)
                        {
                            num = (int) obj2;
                        }
                        num = num % 13;
                        goto Label_00D9;
                    }
                    case BodyType.Human:
                    case BodyType.Equipment:
                    {
                        object obj3 = Engine.m_Animations.ActionDef2[num];
                        if (obj3 != null)
                        {
                            num = (int) obj3;
                        }
                        num = num % 0x23;
                        goto Label_00D9;
                    }
                }
            }
            return;
            Label_00D9:
            num5 = Engine.GetAnimDirection(mobile.Direction) & 7;
            if (Engine.m_Animations.IsValid(mobile.Body, num, num5))
            {
                Animation animation = new Animation {
                    Action = num,
                    RepeatCount = num3,
                    Forward = flag,
                    Repeat = flag2,
                    Delay = num4
                };
                mobile.Animation = animation;
                animation.Run();
            }
        }