public static MapleEvent GetEventById(int id) { MapleEvent ret = null; Events.TryGetValue(id, out ret); return(ret); }
public EventEngine(MapleCharacter starter, string script, int recreateMap = -1, bool skipSpawn = false) { Starter = starter; ChannelId = Starter.Client.Channel; if (!(DataBuffer.EventScripts.TryGetValue(script, out EventType) && EventType != null)) { return; } EventInstance = ScriptActivator.CreateScriptInstance(EventType, script, starter) as EventScript; if (EventInstance == null) { string error = string.Format("Error loading {0} {1}", "EventScript", script); ServerConsole.Error(error); FileLogging.Log("Event scripts", error); return; } RecreatedMap = recreateMap != -1; EventInstance.OnFinish += new Action(FinishEvent); EventInstance.OnSpawnMobs += new Action <int, int, int, int>(SpawnMobs); EventInstance.OnRandomSpawnMobs += new Action <int, int, Point, Point>(RandomSpawnMobs); if (RecreatedMap) { EventMap = new MapleEvent(recreateMap, DataBuffer.GetMapById(recreateMap), skipSpawn); EventId = Program.RegisterEvent(EventMap); if (Starter != null) { AddCharacter(Starter); } } }
public static int RegisterEvent(MapleEvent Event) { int eventId = EventId.Get; Events.Add(eventId, Event); return(eventId); }
private void FinishEvent() { Program.UnregisterEvent(EventId); EventInstance = null; EventMap = null; }