コード例 #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)
                {
                    var baseX  = m_WellOfTearsArea.X;
                    var baseY  = m_WellOfTearsArea.Y;
                    var width  = m_WellOfTearsArea.Width;
                    var height = m_WellOfTearsArea.Height;
                    var map    = 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 (var i = 0; i < 15; i++)
                    {
                        var x = baseX + Utility.Random(width);
                        var y = baseY + Utility.Random(height);
                        var z = map.GetAverageZ(x, y);

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

                        var 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)
                    {
                        Frozen = true,

                        Location = moongate.Location,
                        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++;
            }
コード例 #3
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++;
			}