示例#1
0
        public static PVPEvent CreateEvent(Mobile maker, PVPStone stone)
        {
            PVPEvent pvpevent = new PVPEvent(maker, stone);

            if (maker != null)
            {
                foreach (PVPEvent _event in PVPEvent.m_InstancesList)
                {
                    if (maker == _event.m_maker && _event != pvpevent)
                    {
                        maker.SendMessage("Vous ne pouvez pas créer un autre event, étant donné que vous avez déjà créé " + _event.nom);
                        pvpevent.StopEvent();
                        return(pvpevent = null);
                    }
                }
            }

            return(pvpevent);
        }
示例#2
0
        /// <summary>
        /// Fonction qui doit être appellée à la fin de l'event (Ex: Les membres d'une équipe ont été tués 50 fois.)
        /// Cette fonction doit être appellée par la classe déviant de la classe PVPMode manuellement.
        /// </summary>
        public void Stop()
        {
            m_pvpevent.state = PVPEventState.Done;

            m_pvpevent.teams.DespawnAll();

            m_timeoutTimer.Stop();

            foreach (PVPTeam team in m_pvpevent.teams)
            {
                foreach (ScriptMobile joueur in team)
                {
                    joueur.PVPInfo = null;
                }
            }

            if (playerdeathhandler != null)
            {
                EventSink.PlayerDeath -= playerdeathhandler;
            }
            if (disconnectedhandler != null)
            {
                EventSink.Disconnected -= disconnectedhandler;
            }

            foreach (PVPTeam team in m_pvpevent.teams)
            {
                foreach (ScriptMobile joueur in team)
                {
                    if (joueur.Corpse != null)
                    {
                        if (joueur.Corpse is Corpse)
                        {
                            Corpse c = (Corpse)joueur.Corpse;
                            c.Open(c.Owner, true);
                        }
                    }
                }
            }

            m_pvpevent.StopEvent();
        }