예제 #1
0
            protected override void OnTick()
            {
                List <BaseCreature> pets = new List <BaseCreature>();

                m_Player.Frozen = false;

                foreach (Mobile m in World.Mobiles.Values)
                {
                    if (m is BaseCreature)
                    {
                        BaseCreature bc = (BaseCreature)m;

                        if ((bc.Controlled && bc.ControlMaster == m_Player) || (bc.Summoned && bc.SummonMaster == m_Player))
                        {
                            pets.Add(bc);
                        }
                    }
                }

                if (pets.Count > 0)
                {
                    for (int i = 0; i < pets.Count; i++)
                    {
                        if (pets[i] is IMount)
                        {
                            if (((IMount)pets[i]).Rider != null)
                            {
                                continue;
                            }
                        }
                        pets[i].MoveToWorld(m_Player.Location, m_Player.Map);
                        if (pets[i].Controlled)
                        {
                            pets[i].ControlTarget = m_Player;
                            pets[i].ControlOrder  = OrderType.Follow;
                        }
                    }
                    m_Player.PlaySound(1480);
                    m_Player.LocalOverheadMessage(Server.Network.MessageType.Regular, 78, true, "Your pets have been summoned!");
                    if (m_Bell.UsesRemaining != -1)
                    {
                        m_Bell.UsesRemaining--;
                        if (m_Bell.UsesRemaining == 0 && m_Bell.DeleteOnZeroCharges)
                        {
                            m_Player.SendMessage(78, "Your bell crumbles to dust.");
                            m_Bell.Delete();
                        }
                    }
                }
                else
                {
                    m_Player.LocalOverheadMessage(Server.Network.MessageType.Regular, 32, true, "You have no pets to summon.");
                }
            }