Inheritance: global::ProtoBuf.IExtensible
 private void HandleRoomStoryMessage(Msg_LRL_StoryMessage msg_, PBChannel channel, int src, uint session)
 {
     UserProcessScheduler dataProcess = UserServer.Instance.UserProcessScheduler;
     UserThread userThread = dataProcess.GetUserThread(msg_.UserGuid);
     if (null != userThread) {
         userThread.QueueAction(userThread.HandleRoomStoryMessage, msg_);
     } else {
         dataProcess.DefaultUserThread.QueueAction(dataProcess.DefaultUserThread.HandleRoomStoryMessage, msg_);
     }
 }
 internal void HandleRoomStoryMessage(Msg_LRL_StoryMessage msg_)
 {
     UserProcessScheduler dataProcess = LobbyServer.Instance.UserProcessScheduler;
     UserInfo user = dataProcess.GetUserInfo(msg_.UserGuid);
     if (null != user) {
         RoomInfo info = m_LobbyInfo.GetRoomByID(user.CurrentRoomID);
         if (null != info) {
             msg_.RoomId = user.CurrentRoomID;
             LobbyServer.Instance.RoomSvrChannel.Send(info.RoomServerName, msg_);
         }
     }
 }
Ejemplo n.º 3
0
 internal void HandleRoomStoryMessage(Msg_LRL_StoryMessage msg, PBChannel channel)
 {
     Room room = GetRoomByID(msg.RoomId);
     if (null != room) {
         User user = room.GetUserByGuid(msg.UserGuid);
         Scene curScene = room.ActiveScene;
         if (null != user && null != curScene) {
             try {
                 string msgId = string.Format("server:{0}", msg.MsgId);
                 ArrayList args = new ArrayList();
                 args.Add(user.RoleId);
                 for (int i = 0; i < msg.Args.Count; i++) {
                     switch (msg.Args[i].val_type) {
                         case Msg_LRL_StoryMessage.ArgType.NULL://null
                             args.Add(null);
                             break;
                         case Msg_LRL_StoryMessage.ArgType.INT://int
                             args.Add(int.Parse(msg.Args[i].str_val));
                             break;
                         case Msg_LRL_StoryMessage.ArgType.FLOAT://float
                             args.Add(float.Parse(msg.Args[i].str_val));
                             break;
                         default://string
                             args.Add(msg.Args[i].str_val);
                             break;
                     }
                 }
                 object[] objArgs = args.ToArray();
                 curScene.StorySystem.SendMessage(msgId, objArgs);
             } catch (Exception ex) {
                 LogSys.Log(LOG_TYPE.ERROR, "Msg_CRC_StoryMessage throw exception:{0}\n{1}", ex.Message, ex.StackTrace);
             }
         }
     }
 }
 private void HandleStoryMessageFromRoom(Msg_LRL_StoryMessage msg, PBChannel channel, int src, uint session)
 {
     UserInfo user = m_UserProcessScheduler.GetUserInfo(msg.UserGuid);
     if(null!=user){
         ForwardToWorld(user.UserSvrName, msg);
     }
 }
 private void HandleStoryMessageFromUserServer(Msg_LRL_StoryMessage msg_, PBChannel channel, int src, uint session)
 {
     m_RoomProcessThread.QueueAction(m_RoomProcessThread.HandleRoomStoryMessage, msg_);
 }
Ejemplo n.º 6
0
 //---------------------------------------------------------------------------------------------
 internal void HandleRoomStoryMessage(Msg_LRL_StoryMessage msg)
 {
     string msgId = string.Format("server:{0}", msg.MsgId);
     ArrayList args = new ArrayList();
     args.Add(msg.UserGuid);
     for (int i = 0; i < msg.Args.Count; i++) {
         switch (msg.Args[i].val_type) {
             case Msg_LRL_StoryMessage.ArgType.NULL://null
                 args.Add(null);
                 break;
             case Msg_LRL_StoryMessage.ArgType.INT://int
                 args.Add(int.Parse(msg.Args[i].str_val));
                 break;
             case Msg_LRL_StoryMessage.ArgType.FLOAT://float
                 args.Add(float.Parse(msg.Args[i].str_val));
                 break;
             default://string
                 args.Add(msg.Args[i].str_val);
                 break;
         }
     }
     object[] objArgs = args.ToArray();
     SendStoryMessage(msgId, objArgs);
 }
        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;
        }
Ejemplo n.º 8
0
 private void HandleRoomStoryMessage(Msg_LRL_StoryMessage msg, PBChannel channel, int handle, uint seq)
 {
     bool isFieldRoom;
     int ix = GetActiveRoomThreadIndex(msg.RoomId, out isFieldRoom);
     if (ix >= 0) {
         if (isFieldRoom) {
             RoomThread roomThread = field_roomthread_list_[ix];
             roomThread.QueueAction(roomThread.HandleRoomStoryMessage, msg, channel);
         } else {
             RoomThread roomThread = roomthread_list_[ix];
             roomThread.QueueAction(roomThread.HandleRoomStoryMessage, msg, channel);
         }
     }
 }
        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;
        }