protected override bool ExecCommand(StoryInstance instance, long delta) { Scene scene = instance.Context as Scene; if (null != scene) { string _msg = m_Msg.Value; Msg_LRL_StoryMessage msg = new Msg_LRL_StoryMessage(); msg.MsgId = _msg; for (int i = 0; i < m_Args.Count; ++i) { IStoryValue<object> val = m_Args[i]; object v = val.Value; if (null == v) { Msg_LRL_StoryMessage.MessageArg arg = new Msg_LRL_StoryMessage.MessageArg(); arg.val_type = Msg_LRL_StoryMessage.ArgType.NULL; arg.str_val = ""; msg.Args.Add(arg); } else if (v is int) { Msg_LRL_StoryMessage.MessageArg arg = new Msg_LRL_StoryMessage.MessageArg(); arg.val_type = Msg_LRL_StoryMessage.ArgType.INT; arg.str_val = ((int)v).ToString(); msg.Args.Add(arg); } else if (v is float) { Msg_LRL_StoryMessage.MessageArg arg = new Msg_LRL_StoryMessage.MessageArg(); arg.val_type = Msg_LRL_StoryMessage.ArgType.FLOAT; arg.str_val = ((float)v).ToString(); msg.Args.Add(arg); } else { Msg_LRL_StoryMessage.MessageArg arg = new Msg_LRL_StoryMessage.MessageArg(); arg.val_type = Msg_LRL_StoryMessage.ArgType.STRING; arg.str_val = v.ToString(); msg.Args.Add(arg); } } if (m_HaveUserId) { int userId = m_UserId.Value; EntityInfo user = scene.GetEntityById(userId); if (null != user) { User us = user.CustomData as User; if (null != us) { msg.UserGuid = us.Guid; scene.GetRoom().SendServerMessage(msg); } } } else { scene.GetRoom().SendServerMessage(msg); } } return false; }
protected override bool ExecCommand(StoryInstance instance, long delta) { UserThread userThread = instance.Context as UserThread; if (null != userThread) { string _msg = m_Msg.Value; Msg_LRL_StoryMessage msg = new Msg_LRL_StoryMessage(); msg.MsgId = _msg; for (int i = 0; i < m_Args.Count; ++i) { IStoryValue<object> val = m_Args[i]; object v = val.Value; if (null == v) { Msg_LRL_StoryMessage.MessageArg arg = new Msg_LRL_StoryMessage.MessageArg(); arg.val_type = Msg_LRL_StoryMessage.ArgType.NULL; arg.str_val = ""; msg.Args.Add(arg); } else if (v is int) { Msg_LRL_StoryMessage.MessageArg arg = new Msg_LRL_StoryMessage.MessageArg(); arg.val_type = Msg_LRL_StoryMessage.ArgType.INT; arg.str_val = ((int)v).ToString(); msg.Args.Add(arg); } else if (v is float) { Msg_LRL_StoryMessage.MessageArg arg = new Msg_LRL_StoryMessage.MessageArg(); arg.val_type = Msg_LRL_StoryMessage.ArgType.FLOAT; arg.str_val = ((float)v).ToString(); msg.Args.Add(arg); } else { Msg_LRL_StoryMessage.MessageArg arg = new Msg_LRL_StoryMessage.MessageArg(); arg.val_type = Msg_LRL_StoryMessage.ArgType.STRING; arg.str_val = v.ToString(); msg.Args.Add(arg); } } if (m_HaveUserGuid) { ulong userGuid = m_UserGuid.Value; msg.UserGuid = userGuid; userThread.SendServerMessage(msg); } else { userThread.SendServerMessage(msg); } } return false; }