コード例 #1
0
        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));
                }
            }
        }
コード例 #2
0
 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();
     }
 }