public void Deserialize(GenericReader reader) { state = PVPEventState.Setting; m_maker = reader.ReadMobile(); m_stone = (PVPStone)reader.ReadItem(); m_nom = reader.ReadString(); m_map = PVPMap.Deserialize(reader); m_teams = PVPTeamArrangement.Deserialize(reader, this); m_mode = PVPMode.Deserialize(reader, this); m_debutEvent = reader.ReadDateTime(); state = (PVPEventState)reader.ReadInt(); debutTimer = new WaitingTimer(this); if (state >= PVPEventState.Preparing) { // Event commencé : Despawn et effaçage. teams.DespawnAll(); StopEvent(); } else if (m_debutEvent < DateTime.Now) { // Event surpassé : Effaçage. StopEvent(); } else { // Event non débuté : Reboot. debutTimer.Start(); } }
/// <summary> /// Retire l'event de la liste d'instances et le détruit. /// </summary> public void StopEvent() { if (state == PVPEventState.Started && m_mode != null) { m_mode.Stop(); return; // m_mode.Stop() appelle la fonction StopEvent(). } if (state >= PVPEventState.Started) { map.StopUsing(); } // Logging, si on veut en faire. m_InstancesList.Remove(this); // Le garbage collector devrait déjà faire le travail de détruire après le remove de l'instance_list., mais on met tout à null par précaution. debutTimer.Stop(); debutTimer = null; m_stone = null; state = PVPEventState.Done; nom = ""; m_teams = null; map = null; mode = null; debutEvent = DateTime.Now; }
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); }
private PVPEvent(Mobile maker, PVPStone stone) { debutTimer = new WaitingTimer(this); state = PVPEventState.Setting; m_maker = maker; m_stone = stone; m_nom = ""; m_map = null; m_mode = null; m_teams = null; m_debutEvent = DateTime.Now; if (m_InstancesList == null) { m_InstancesList = new ArrayList(); } m_InstancesList.Add(this); }