Пример #1
0
    public void SndChat(MsgPack pack)
    {
        SndChat data = pack.msg.sndChat;

        PlayerData playerData = cacheSvc.GetPlayerDataBySession(pack.session);

        // 任务进度更新
        TaskSys.Instance.CalcTaskPrgs(playerData, 6);

        GameMsg msg = new GameMsg {
            cmd     = (int)CMD.PshChat,
            pshChat = new PshChat {
                name = playerData.name,
                chat = data.chat
            }
        };

        // 广播所有在线客户端
        List <ServerSession> lst = cacheSvc.GetAllOnlineServerSessions();

        // 避免重复多次的Cpu自己的序列化二进制 消息(所以这里优先二进制,避免cpu重复多次浪费性能)
        byte[] bytes = PENet.PETool.PackNetMsg(msg);
        for (int i = 0; i < lst.Count; i++)
        {
            lst[i].SendMsg(bytes);
        }
    }