public void EventStarted(Player player, Actor target, EventStartPacket eventStart) { List <LuaParam> lparams = eventStart.luaParams; lparams.Insert(0, new LuaParam(2, eventStart.triggerName)); if (mSleepingOnPlayerEvent.ContainsKey(player.actorId)) { Coroutine coroutine = mSleepingOnPlayerEvent[player.actorId]; mSleepingOnPlayerEvent.Remove(player.actorId); try { DynValue value = coroutine.Resume(); ResolveResume(null, coroutine, value); } catch (ScriptRuntimeException e) { LuaEngine.SendError(player, String.Format("OnEventStarted: {0}", e.DecoratedMessage)); player.EndEvent(); } } else { if (target is Director) { ((Director)target).OnEventStart(player, LuaUtils.CreateLuaParamObjectList(lparams)); } else { CallLuaFunction(player, target, "onEventStarted", false, LuaUtils.CreateLuaParamObjectList(lparams)); } } }
public void OnEventUpdate(Player player, List <LuaParam> args) { if (mSleepingOnPlayerEvent.ContainsKey(player.actorId)) { try { Coroutine coroutine = mSleepingOnPlayerEvent[player.actorId]; mSleepingOnPlayerEvent.Remove(player.actorId); DynValue value = coroutine.Resume(LuaUtils.CreateLuaParamObjectList(args)); ResolveResume(player, coroutine, value); } catch (ScriptRuntimeException e) { LuaEngine.SendError(player, String.Format("OnEventUpdated: {0}", e.DecoratedMessage)); player.EndEvent(); } } else { player.EndEvent(); } }