Răsfoiți Sursa

噩梦模式协议修改

lt 1 an în urmă
părinte
comite
ca8bcb18a9

+ 42 - 0
RO_Server_Trunk-branch_0.1.39/roserver/db/model/orm_helper.go

@@ -46,6 +46,8 @@ const (
 	RoleTaskDataPrefix = "role_task_"
 	//困难模式任务
 	RoleTaskDataHardPrefix = "role_task_hard"
+	//困难模式任务
+	RoleTaskDataHard2Prefix = "role_task_hard2"
 	//竞技场数据
 	RoleArenaDataPrefix = "role_arena_"
 	//小红点
@@ -1539,6 +1541,7 @@ func SetRoleTaskToRedis(uid uint64, roleTask *serverproto.RoleTask) {
 	uidStr := strconv.FormatUint(uid, 10)
 	keyStr := RoleTaskDataPrefix + uidStr
 	KeyHardStr := RoleTaskDataHardPrefix + uidStr
+	KeyHard2Str := RoleTaskDataHard2Prefix + uidStr
 
 	for idx := range roleTask.TaskList {
 		taskInfo := roleTask.TaskList[idx]
@@ -1560,6 +1563,23 @@ func SetRoleTaskToRedis(uid uint64, roleTask *serverproto.RoleTask) {
 			if err != nil {
 				util.ErrorF("SetRoleTaskToRedis uid=%v err=%v %v", uid, err)
 			}
+		} else if taskInfo.TaskType == model.TASK_TYPE_HARD2 || taskInfo.TaskType == model.TASK_TYPE_HARD2_GROUP {
+			//困难模式任务删除
+			if taskInfo.HardState == TASK_REWARD_STATE_DELETE {
+				service.GetRedis().HDel(KeyHard2Str, fieldStr)
+				continue
+			}
+			msgData, err := rocommon.GetCodec().Marshal(taskInfo)
+			if err != nil {
+				util.ErrorF("SetRoleTaskToRedis uid=%v Marshal err=%v field=%v", uid, err, fieldStr)
+				continue
+			}
+			msgStr := base64.StdEncoding.EncodeToString(msgData.([]byte))
+
+			_, err = service.GetRedis().HSet(KeyHard2Str, fieldStr, msgStr).Result()
+			if err != nil {
+				util.ErrorF("SetRoleTaskToRedis uid=%v err=%v %v", uid, err)
+			}
 		} else {
 			//主线完成的任务直接删除
 			if taskInfo.State == TASK_REWARD_STATE_REWARD_DB && len(taskInfo.Progress) <= 0 {
@@ -1598,6 +1618,7 @@ func GetRoleTaskFromRedis(uid uint64, roleTask *serverproto.RoleTask) bool {
 	uidStr := strconv.FormatUint(uid, 10)
 	keyStr := RoleTaskDataPrefix + uidStr
 	KeyHardStr := RoleTaskDataHardPrefix + uidStr
+	KeyHard2Str := RoleTaskDataHard2Prefix + uidStr
 	msgStrList, err := service.GetRedis().HGetAll(keyStr).Result()
 	if err != nil {
 		util.ErrorF("GetRoleTaskFromRedis uid=%v err=%v", uid, err)
@@ -1609,6 +1630,12 @@ func GetRoleTaskFromRedis(uid uint64, roleTask *serverproto.RoleTask) bool {
 		return false
 	}
 
+	msgStrHard2List, er := service.GetRedis().HGetAll(KeyHard2Str).Result()
+	if er != nil {
+		util.ErrorF("GetRoleTaskFromRedis uid=%v err=%v", uid, err)
+		return false
+	}
+
 	var tmpTaskList []*serverproto.TaskData
 	for key, val := range msgStrList {
 		if key == "base" {
@@ -1651,6 +1678,21 @@ func GetRoleTaskFromRedis(uid uint64, roleTask *serverproto.RoleTask) bool {
 		}
 		tmpTaskList = append(tmpTaskList, taskInfo)
 
+	}
+	for _, val := range msgStrHard2List {
+		msgData, err1 := base64.StdEncoding.DecodeString(val)
+		if err1 != nil {
+			util.ErrorF("GetRoleTaskFromRedis Task DecodeString uid=%v err=%v", uid, err1)
+			continue
+		}
+		taskInfo := &serverproto.TaskData{}
+		err = rocommon.GetCodec().Unmarshal(msgData, taskInfo)
+		if err != nil {
+			util.ErrorF("GetRoleTaskFromRedis Task Unmarshal uid=%v err=%v", uid, err)
+			continue
+		}
+		tmpTaskList = append(tmpTaskList, taskInfo)
+
 	}
 	roleTask.TaskList = append(roleTask.TaskList, tmpTaskList...)
 	return true

+ 1 - 1
RO_Server_Trunk-branch_0.1.39/roserver/game/model/role_activity.go

@@ -3247,7 +3247,7 @@ func (this *RoleActivity) ActivitiesExchange(reqMsg *serverproto.CSActivitiesExc
 			bRet = this.DelCardExchangeItem(useItemList)
 		}
 		if bRet != serverproto.ErrorCode_ERROR_OK {
-			return bRet
+			return 100009
 		}
 
 		//ack奖励处理

+ 4 - 0
RO_Server_Trunk-branch_0.1.39/roserver/serverproto/login.proto

@@ -1041,6 +1041,10 @@ message SCPlayerBattleDataChangeNtf{
     uint64      max_income_time          = 4; //最大收益累计时间
     QuickBattleData quick_battle		 = 5; //快速战斗
     uint32      reward_map_count         = 6; //未领取奖励次数
+    uint32 hard_map_level  = 7; //当前困难Leve ID,默认为1
+    uint32 hard_map_id = 8; //当前困难地图ID,默认为1
+    uint32 hard_s_map_level  = 9; //当前噩梦Leve ID,默认为1
+    uint32 hard_s_map_id = 10; //当前噩梦地图ID,默认为1
 
 }
 // 战斗加速时间通知