|
|
@@ -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
|