protected override bool ExecCommand(StoryInstance instance, long delta) { string _msg = m_Msg.Value; Msg_CLC_StoryMessage protoData = new Msg_CLC_StoryMessage(); protoData.m_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_CLC_StoryMessage.MessageArg arg = new Msg_CLC_StoryMessage.MessageArg(); arg.val_type = LobbyArgType.NULL; arg.str_val = ""; protoData.m_Args.Add(arg); } else if (v is int) { Msg_CLC_StoryMessage.MessageArg arg = new Msg_CLC_StoryMessage.MessageArg(); arg.val_type = LobbyArgType.INT; arg.str_val = ((int)v).ToString(); protoData.m_Args.Add(arg); } else if (v is float) { Msg_CLC_StoryMessage.MessageArg arg = new Msg_CLC_StoryMessage.MessageArg(); arg.val_type = LobbyArgType.FLOAT; arg.str_val = ((float)v).ToString(); protoData.m_Args.Add(arg); } else { Msg_CLC_StoryMessage.MessageArg arg = new Msg_CLC_StoryMessage.MessageArg(); arg.val_type = LobbyArgType.STRING; arg.str_val = v.ToString(); protoData.m_Args.Add(arg); } } try { Network.NodeMessage msg = new Network.NodeMessage(LobbyMessageDefine.Msg_CLC_StoryMessage, Network.UserNetworkSystem.Instance.Guid); msg.m_ProtoData = protoData; Network.NodeMessageDispatcher.SendMessage(msg); } catch (Exception ex) { LogSystem.Error("LobbyNetworkSystem.SendMessage throw Exception:{0}\n{1}", ex.Message, ex.StackTrace); } 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_CLC_StoryMessage msg = new Msg_CLC_StoryMessage(); msg.m_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_CLC_StoryMessage.MessageArg arg = new Msg_CLC_StoryMessage.MessageArg(); arg.val_type = LobbyArgType.NULL; arg.str_val = ""; msg.m_Args.Add(arg); } else if (v is int) { Msg_CLC_StoryMessage.MessageArg arg = new Msg_CLC_StoryMessage.MessageArg(); arg.val_type = LobbyArgType.INT; arg.str_val = ((int)v).ToString(); msg.m_Args.Add(arg); } else if (v is float) { Msg_CLC_StoryMessage.MessageArg arg = new Msg_CLC_StoryMessage.MessageArg(); arg.val_type = LobbyArgType.FLOAT; arg.str_val = ((float)v).ToString(); msg.m_Args.Add(arg); } else { Msg_CLC_StoryMessage.MessageArg arg = new Msg_CLC_StoryMessage.MessageArg(); arg.val_type = LobbyArgType.STRING; arg.str_val = v.ToString(); msg.m_Args.Add(arg); } } if (m_HaveUserGuid) { ulong userGuid = m_UserGuid.Value; userThread.NotifyUser(userGuid, LobbyMessageDefine.Msg_CLC_StoryMessage, msg); } else { userThread.NotifyAllUser(LobbyMessageDefine.Msg_CLC_StoryMessage, msg); } } return false; }