public void MergeFrom(QuestTask other)
        {
            if (other == null)
            {
                return;
            }
            switch (other.TypeCase)
            {
            case TypeOneofCase.ReqTask:
                if (ReqTask == null)
                {
                    ReqTask = new global::WUProtos.Data.RequirementsQuestTask();
                }
                ReqTask.MergeFrom(other.ReqTask);
                break;

            case TypeOneofCase.HookTask:
                if (HookTask == null)
                {
                    HookTask = new global::WUProtos.Data.HookQuestTask();
                }
                HookTask.MergeFrom(other.HookTask);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }
Exemple #2
0
    /// <summary>
    /// 回应任务完成请求
    /// </summary>
    public void ReqTask(PackMsg pack)
    {
        ReqTask       data    = pack.msg.reqTask;
        ServerSession session = pack.session;

        GameMsg msg = new GameMsg
        {
            cmd = (int)CMD.RspTask
        };

        PlayerData   playerData   = cacheSvc.GetPlayerDataCache(pack.session);
        AutoGuideCfg AutoGuideCfg = cfgSvc.GetAutoGuideCfg(data.taskID);

        //更新任务ID
        if (playerData.taskid == data.taskID)
        {
            PshTaskProgs pshTaskProgs = null;
            //更新任务智者点拨进度
            if (playerData.taskid == 1001)
            {
                pshTaskProgs = TaskSys.Instance.CalcTaskProgs(playerData, 1);
            }
            playerData.taskid++;
            //更新玩家数据
            playerData.coin += AutoGuideCfg.coin;
            PECommon.UpdateExp(playerData, AutoGuideCfg.exp);

            if (!cacheSvc.UpdatePlayerData(playerData.id, playerData))
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                RspTask rspTask = new RspTask
                {
                    taskID = playerData.taskid,
                    coin   = playerData.coin,
                    exp    = playerData.exp,
                    lv     = playerData.lv,
                    hp     = playerData.hp,
                };
                //发送回客户端
                msg.rspTask = rspTask;
                if (pshTaskProgs != null)
                {
                    msg.pshTaskProgs = pshTaskProgs;
                }
            }
        }
        else
        {
            msg.err = (int)ErrorCode.ServerDataError;
        }
        pack.session.SendMsg(msg);
    }
        public override int GetHashCode()
        {
            int hash = 1;

            if (typeCase_ == TypeOneofCase.ReqTask)
            {
                hash ^= ReqTask.GetHashCode();
            }
            if (typeCase_ == TypeOneofCase.HookTask)
            {
                hash ^= HookTask.GetHashCode();
            }
            hash ^= (int)typeCase_;
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }