Пример #1
0
        public void SendAnimation(ushort Animation, Sprite To, Sprite From, byte speed = 100, bool repeat = false)
        {
            var format = new ServerFormat29((uint)From.Serial, (uint)To.Serial, Animation, 0, speed);

            if (!repeat)
            {
                Aisling.Show(Scope.NearbyAislings, format);
                return;
            }

            if (To is Aisling)
            {
                new TaskFactory().StartNew(() =>
                {
                    while (true)
                    {
                        if (!Aisling.InsideView(To))
                        {
                            break;
                        }

                        (To as Aisling).Show(Scope.NearbyAislings, format);

                        Thread.Sleep(1000);
                    }
                });
            }
        }
Пример #2
0
        public override void OnUse(Sprite sprite, Action <int> cb)
        {
            var enemy = sprite.GetInfront(8);
            var count = 1;

            if (enemy != null)
            {
                foreach (var i in enemy)
                {
                    if (i == null)
                    {
                        continue;
                    }

                    if (sprite.Serial == i.Serial)
                    {
                        continue;
                    }

                    if (i is Money)
                    {
                        continue;
                    }

                    var animation = new ServerFormat29
                    {
                        CasterSerial = (uint)sprite.Serial,
                        TargetSerial = (uint)i.Serial,
                        CasterEffect = 10011,
                        TargetEffect = 10011,
                        Speed        = 100
                    };

                    //=$E$1*10 *$F$1 *G1 / 10
                    var dmg = sprite.Dex * 3 * sprite.Position.DistanceFrom(i.Position);

                    dmg *= count;
                    i.ApplyDamage(sprite, dmg, false, 28);

                    sprite.Show(Scope.NearbyAislings, animation);
                    cb?.Invoke(count++);
                }
            }
        }
Пример #3
0
        public void SendAnimation(ushort Animation, Sprite To, Sprite From, byte speed = 100)
        {
            var format = new ServerFormat29((uint)From.Serial, (uint)To.Serial, Animation, 0, speed);

            Aisling.Show(Scope.NearbyAislings, format);
        }
 public virtual void Format29Handler(ServerFormat29 format)
 {
 }