示例#1
0
            protected override void OnTick()
            {
                if (m_Player.Deleted)
                {
                    Stop();
                    return;
                }

                if (!m_Player.Mounted)
                {
                    m_Player.Animate(Utility.RandomBool() ? 16 : 17, 7, 1, true, false, 0);
                }

                if (m_Step == 4)
                {
                    int baseX  = KronusScroll.m_WellOfTearsArea.X;
                    int baseY  = KronusScroll.m_WellOfTearsArea.Y;
                    int width  = KronusScroll.m_WellOfTearsArea.Width;
                    int height = KronusScroll.m_WellOfTearsArea.Height;
                    Map map    = KronusScroll.m_WellOfTearsMap;

                    Effects.SendLocationParticles(EffectItem.Create(m_Player.Location, m_Player.Map, TimeSpan.FromSeconds(1.0)), 0, 0, 0, 0x13C4);
                    Effects.PlaySound(m_Player.Location, m_Player.Map, 0x243);

                    for (int i = 0; i < 15; i++)
                    {
                        int x = baseX + Utility.Random(width);
                        int y = baseY + Utility.Random(height);
                        int z = map.GetAverageZ(x, y);

                        Point3D from = new Point3D(x, y, z + Utility.RandomMinMax(5, 20));
                        Point3D to   = new Point3D(x, y, z);

                        int hue = Utility.RandomList(0x481, 0x482, 0x489, 0x497, 0x66D);

                        Effects.SendPacket(from, map, new HuedEffect(EffectType.Moving, Serial.Zero, Serial.Zero, 0x36D4, from, to, 0, 0, false, true, hue, 0));
                    }
                }

                if (m_Step < 5)
                {
                    m_Player.Frozen = true;
                }
                else // Cast completed
                {
                    m_Player.Frozen = false;

                    SummonedPaladin.BeginSummon(m_Player);
                }

                m_Step++;
            }
示例#2
0
            protected override void OnTick()
            {
                if (m_Player.Deleted)
                {
                    if (m_Step > 0)
                    {
                        m_Paladin.Delete();
                    }

                    return;
                }

                if (m_Step > 0 && m_Paladin.Deleted)
                {
                    return;
                }

                if (m_Step == 0)
                {
                    SummonedPaladinMoongate moongate = new SummonedPaladinMoongate();
                    moongate.MoveToWorld(new Point3D(2091, 1348, -90), Map.Malas);

                    Effects.PlaySound(moongate.Location, moongate.Map, 0x20E);

                    m_Paladin        = new SummonedPaladin(m_Player);
                    m_Paladin.Frozen = true;

                    m_Paladin.Location = moongate.Location;
                    m_Paladin.Map      = moongate.Map;

                    Delay = TimeSpan.FromSeconds(2.0);
                    Start();
                }
                else if (m_Step == 1)
                {
                    m_Paladin.Direction = m_Paladin.GetDirectionTo(m_Player);
                    m_Paladin.Say(1060122); // STOP WICKED ONE!

                    Delay = TimeSpan.FromSeconds(3.0);
                    Start();
                }
                else
                {
                    m_Paladin.Frozen = false;

                    m_Paladin.Say(1060123); // I will slay you before I allow you to complete your evil rites!

                    m_Paladin.Combatant = m_Player;
                }

                m_Step++;
            }