Пример #1
0
    public void CalcTaskPrgs(PlayerData pd, int tid)
    {
        TaskRewardData trd = CalcTaskRewardData(pd, tid);
        TaskRewardCfg  trc = cfgSvc.GetTaskRewardCfg(tid);


        if (trd.prgs < trc.count)
        {
            trd.prgs += 1;

            //更新任务进度
            CalcTaskArr(pd, trd);

            ServerSession session = cacheSvc.GetOnlineServerSession(pd.id);
            if (session != null)
            {
                session.SendMsg(new GameMsg()
                {
                    cmd         = (int)CMD.PshTaskPrgs,
                    pshTaskPrgs = new PshTaskPrgs()
                    {
                        taskArr = pd.taskArr
                    }
                });
            }
        }
    }
Пример #2
0
    /// <summary>
    /// 更新玩家数据的任务进度
    /// </summary>
    /// <param name="pd">玩家数据</param>
    /// <param name="tid">进度id</param>
    public void CalcTaskPrgs(PlayerData pd, int tid)
    {
        TaskRewardData trd = CalcTaskRewardData(pd, tid);      //获得玩家当前任务信息
        TaskRewardCfg  trc = cfgSvc.GetTaskRewardCfgData(tid); //获得任务模板

        if (trd.prgs < trc.count)
        {
            //更新任务进度
            trd.prgs++;
            CalcUpdatePlayerTaskArr(pd, trd);

            ServerSession session = cacheSvc.GetOnlineServerSession(pd.id);
            if (session != null)
            {
                session.SendMsg(
                    new GameMsg
                {
                    cmd         = (int)CMD.PshTaskPrgs,
                    pshTaskPrgs = new PshTaskPrgs
                    {
                        taskArr = pd.taskArr
                    }
                }
                    );
            }
        }
    }
Пример #3
0
    public void SendChatInfo(MsgPack packMsg)
    {
        SendChatInfo data       = packMsg._msg.sndChat;
        PlayerData   playerData = cacheSvc.GetPlayerDataBySession(packMsg._session);

        NetMsg netMsg = new NetMsg
        {
            cmd     = (int)MsgCommand.Cmd_PshChat,
            pshChat = new PushChatInfo
            {
                roleName = playerData.name,
                chatInfo = data.chatInfo
            }
        };

        byte[] msgBytes = WZNet.WZTool.PackNetMsg(netMsg);
        List <ServerSession> onlineSessionList = cacheSvc.GetOnlineServerSession();

        for (int i = 0; i < onlineSessionList.Count; i++)
        {
            onlineSessionList[i].SendMsg(msgBytes);
        }

        TaskRewardSys.Instance.CalcTaskProgress(playerData, Constants.cTask_Chat);
    }
Пример #4
0
    public void SndChat(MsgPack pack)
    {
        SndChat    data = pack.gameMsg.val as SndChat;
        PlayerData pd   = cacheSvc.GetPlayerDataBySession(pack.session);

        TaskSys.Instance.CalcTaskPrgs(pd, 6);

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

        List <ServerSession> lst = cacheSvc.GetOnlineServerSession();

        byte[] bytes = PENet.PETool.PackNetMsg(msg);
        for (int i = 0; i < lst.Count; i++)
        {
            lst[i].SendMsg(bytes);
        }
    }