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); }
/// <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(); }