随机任务条件数据初始

This commit is contained in:
wh_zcy 2022-09-22 23:08:35 +08:00
parent 7f0db52213
commit 22e0c83866
7 changed files with 241 additions and 1 deletions

View File

@ -94,7 +94,7 @@
101
],
"sidequest": [
2022,
2002,
2004
]
},

View File

@ -3,6 +3,7 @@
"id": 101,
"datatype": 2,
"type": 1,
"inited": [],
"data1": 25001,
"data2": 0,
"data3": 0,
@ -13,6 +14,7 @@
"id": 102,
"datatype": 2,
"type": 2,
"inited": [],
"data1": 3,
"data2": 0,
"data3": 0,
@ -23,6 +25,7 @@
"id": 103,
"datatype": 2,
"type": 3,
"inited": [],
"data1": 2,
"data2": 0,
"data3": 0,
@ -33,6 +36,7 @@
"id": 104,
"datatype": 2,
"type": 4,
"inited": [],
"data1": 25001,
"data2": 20,
"data3": 0,
@ -43,6 +47,7 @@
"id": 105,
"datatype": 2,
"type": 5,
"inited": [],
"data1": 25001,
"data2": 2,
"data3": 0,
@ -53,6 +58,7 @@
"id": 106,
"datatype": 2,
"type": 6,
"inited": [],
"data1": 25004,
"data2": 4,
"data3": 0,
@ -63,6 +69,7 @@
"id": 107,
"datatype": 2,
"type": 7,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -73,6 +80,7 @@
"id": 108,
"datatype": 2,
"type": 8,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -83,6 +91,7 @@
"id": 109,
"datatype": 2,
"type": 9,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -93,6 +102,7 @@
"id": 110,
"datatype": 2,
"type": 10,
"inited": [],
"data1": 2,
"data2": 0,
"data3": 0,
@ -103,6 +113,7 @@
"id": 111,
"datatype": 2,
"type": 11,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -113,6 +124,7 @@
"id": 112,
"datatype": 2,
"type": 12,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -123,6 +135,7 @@
"id": 113,
"datatype": 2,
"type": 13,
"inited": [],
"data1": 2,
"data2": 0,
"data3": 0,
@ -133,6 +146,13 @@
"id": 114,
"datatype": 2,
"type": 14,
"inited": [
1,
-1,
-1,
-1,
-1
],
"data1": 10,
"data2": 0,
"data3": 0,
@ -143,6 +163,13 @@
"id": 115,
"datatype": 2,
"type": 15,
"inited": [
1,
-1,
-1,
-1,
-1
],
"data1": 10,
"data2": 0,
"data3": 0,
@ -153,6 +180,13 @@
"id": 116,
"datatype": 2,
"type": 16,
"inited": [
1,
0,
-1,
-1,
-1
],
"data1": 5,
"data2": 3,
"data3": 0,
@ -163,6 +197,13 @@
"id": 117,
"datatype": 2,
"type": 17,
"inited": [
1,
0,
-1,
-1,
-1
],
"data1": 7,
"data2": 5,
"data3": 0,
@ -173,6 +214,13 @@
"id": 118,
"datatype": 2,
"type": 18,
"inited": [
1,
-1,
-1,
-1,
-1
],
"data1": 1,
"data2": 0,
"data3": 0,
@ -183,6 +231,13 @@
"id": 119,
"datatype": 2,
"type": 19,
"inited": [
1,
-1,
-1,
-1,
-1
],
"data1": 2,
"data2": 0,
"data3": 0,
@ -193,6 +248,7 @@
"id": 120,
"datatype": 2,
"type": 20,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -203,6 +259,13 @@
"id": 121,
"datatype": 2,
"type": 21,
"inited": [
1,
-1,
-1,
-1,
-1
],
"data1": 2,
"data2": 0,
"data3": 0,
@ -213,6 +276,13 @@
"id": 122,
"datatype": 2,
"type": 22,
"inited": [
1,
-1,
-1,
-1,
-1
],
"data1": 25001,
"data2": 0,
"data3": 0,
@ -223,6 +293,13 @@
"id": 123,
"datatype": 2,
"type": 23,
"inited": [
1,
0,
0,
-1,
-1
],
"data1": 3,
"data2": 5,
"data3": 20,
@ -233,6 +310,7 @@
"id": 124,
"datatype": 2,
"type": 24,
"inited": [],
"data1": 4,
"data2": 0,
"data3": 0,
@ -243,6 +321,7 @@
"id": 125,
"datatype": 2,
"type": 25,
"inited": [],
"data1": 3,
"data2": 25001,
"data3": 6,
@ -253,6 +332,7 @@
"id": 126,
"datatype": 2,
"type": 26,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -263,6 +343,7 @@
"id": 127,
"datatype": 2,
"type": 27,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -273,6 +354,7 @@
"id": 128,
"datatype": 2,
"type": 28,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -283,6 +365,7 @@
"id": 129,
"datatype": 2,
"type": 29,
"inited": [],
"data1": 2,
"data2": 22,
"data3": 25004,
@ -293,6 +376,7 @@
"id": 130,
"datatype": 2,
"type": 30,
"inited": [],
"data1": 5,
"data2": 3,
"data3": 0,
@ -303,6 +387,7 @@
"id": 131,
"datatype": 2,
"type": 31,
"inited": [],
"data1": 4,
"data2": 3,
"data3": 0,
@ -313,6 +398,7 @@
"id": 132,
"datatype": 2,
"type": 32,
"inited": [],
"data1": 3,
"data2": 3,
"data3": 20,
@ -323,6 +409,7 @@
"id": 133,
"datatype": 2,
"type": 33,
"inited": [],
"data1": 3,
"data2": 3,
"data3": 23,
@ -333,6 +420,7 @@
"id": 134,
"datatype": 2,
"type": 34,
"inited": [],
"data1": 5,
"data2": 2,
"data3": 0,
@ -343,6 +431,7 @@
"id": 135,
"datatype": 2,
"type": 35,
"inited": [],
"data1": 2,
"data2": 25001,
"data3": 0,
@ -353,6 +442,7 @@
"id": 136,
"datatype": 2,
"type": 36,
"inited": [],
"data1": 1,
"data2": 3,
"data3": 3,
@ -363,6 +453,7 @@
"id": 137,
"datatype": 2,
"type": 37,
"inited": [],
"data1": 1,
"data2": 3,
"data3": 0,
@ -373,6 +464,7 @@
"id": 138,
"datatype": 2,
"type": 38,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -383,6 +475,7 @@
"id": 139,
"datatype": 2,
"type": 39,
"inited": [],
"data1": 2,
"data2": 0,
"data3": 0,
@ -393,6 +486,7 @@
"id": 140,
"datatype": 2,
"type": 40,
"inited": [],
"data1": 2,
"data2": 2,
"data3": 0,
@ -403,6 +497,7 @@
"id": 141,
"datatype": 2,
"type": 41,
"inited": [],
"data1": 2,
"data2": 2,
"data3": 1,
@ -413,6 +508,7 @@
"id": 142,
"datatype": 2,
"type": 42,
"inited": [],
"data1": 2,
"data2": 2,
"data3": 2,
@ -423,6 +519,7 @@
"id": 143,
"datatype": 2,
"type": 43,
"inited": [],
"data1": 2,
"data2": 2,
"data3": 0,
@ -433,6 +530,7 @@
"id": 144,
"datatype": 2,
"type": 44,
"inited": [],
"data1": 3,
"data2": 0,
"data3": 0,
@ -443,6 +541,7 @@
"id": 145,
"datatype": 2,
"type": 45,
"inited": [],
"data1": 2,
"data2": 1,
"data3": 1,
@ -453,6 +552,7 @@
"id": 146,
"datatype": 2,
"type": 46,
"inited": [],
"data1": 1,
"data2": 1,
"data3": 1,
@ -463,6 +563,7 @@
"id": 147,
"datatype": 2,
"type": 47,
"inited": [],
"data1": 2,
"data2": 0,
"data3": 0,
@ -473,6 +574,7 @@
"id": 148,
"datatype": 2,
"type": 48,
"inited": [],
"data1": 1,
"data2": 1,
"data3": 2,
@ -483,6 +585,7 @@
"id": 149,
"datatype": 2,
"type": 49,
"inited": [],
"data1": 1,
"data2": 1,
"data3": 2,
@ -493,6 +596,7 @@
"id": 150,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 1,
"data2": 1,
"data3": 0,
@ -503,6 +607,7 @@
"id": 151,
"datatype": 2,
"type": 51,
"inited": [],
"data1": 1,
"data2": 1,
"data3": 0,
@ -513,6 +618,7 @@
"id": 152,
"datatype": 2,
"type": 52,
"inited": [],
"data1": 1,
"data2": 45003,
"data3": 0,
@ -523,6 +629,7 @@
"id": 153,
"datatype": 2,
"type": 53,
"inited": [],
"data1": 2,
"data2": 0,
"data3": 0,
@ -533,6 +640,7 @@
"id": 154,
"datatype": 2,
"type": 54,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -543,6 +651,7 @@
"id": 155,
"datatype": 2,
"type": 55,
"inited": [],
"data1": 2,
"data2": 3,
"data3": 0,
@ -553,6 +662,7 @@
"id": 156,
"datatype": 2,
"type": 56,
"inited": [],
"data1": 1,
"data2": 1,
"data3": 2,
@ -563,6 +673,7 @@
"id": 157,
"datatype": 2,
"type": 57,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -573,6 +684,7 @@
"id": 158,
"datatype": 2,
"type": 58,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -583,6 +695,7 @@
"id": 159,
"datatype": 2,
"type": 59,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -593,6 +706,7 @@
"id": 160,
"datatype": 2,
"type": 60,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -603,6 +717,7 @@
"id": 161,
"datatype": 2,
"type": 61,
"inited": [],
"data1": 101,
"data2": 0,
"data3": 0,
@ -613,6 +728,7 @@
"id": 162,
"datatype": 2,
"type": 62,
"inited": [],
"data1": 2,
"data2": 0,
"data3": 0,
@ -623,6 +739,7 @@
"id": 163,
"datatype": 2,
"type": 63,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -633,6 +750,7 @@
"id": 164,
"datatype": 2,
"type": 64,
"inited": [],
"data1": 2,
"data2": 0,
"data3": 0,
@ -643,6 +761,7 @@
"id": 165,
"datatype": 2,
"type": 65,
"inited": [],
"data1": 2,
"data2": 10001,
"data3": 0,
@ -653,6 +772,7 @@
"id": 166,
"datatype": 2,
"type": 66,
"inited": [],
"data1": 2,
"data2": 1,
"data3": 0,
@ -663,6 +783,7 @@
"id": 167,
"datatype": 2,
"type": 67,
"inited": [],
"data1": 1000,
"data2": 1,
"data3": 0,
@ -673,6 +794,7 @@
"id": 168,
"datatype": 2,
"type": 68,
"inited": [],
"data1": 1000,
"data2": 1,
"data3": 0,
@ -683,6 +805,7 @@
"id": 169,
"datatype": 2,
"type": 69,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
@ -693,6 +816,7 @@
"id": 170,
"datatype": 2,
"type": 1,
"inited": [],
"data1": 25004,
"data2": 0,
"data3": 0,
@ -703,6 +827,7 @@
"id": 171,
"datatype": 2,
"type": 70,
"inited": [],
"data1": 101,
"data2": 0,
"data3": 0,

View File

@ -121,9 +121,12 @@ type (
// 随机任务
IRtask interface {
// 条件校验
CheckCondi(session IUserSession, condiId int32) (code pb.ErrorCode)
//任务触发
SendToRtask(session IUserSession, rtaskType TaskType, params ...int32) (code pb.ErrorCode)
// 初始化条件数据
InitCondiData(uid string) error
}
//好友

View File

@ -6,8 +6,10 @@ import (
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"time"
"github.com/pkg/errors"
"go.mongodb.org/mongo-driver/bson/primitive"
)
type ModelRtaskRecord struct {
@ -42,3 +44,89 @@ func (this *ModelRtaskRecord) getRecord(uid string) *pb.DBRtaskRecord {
}
return record
}
// 初始化任务条件数据
func (this *ModelRtaskRecord) initCondiData(uid string) error {
dr := this.getRecord(uid)
grc, err := this.moduleRtask.configure.getRtaskCondiCfg()
if err != nil {
return err
}
if grc == nil {
return errors.New("getRtaskCondiCfg err")
}
if dr != nil && dr.Vals == nil {
record := &pb.DBRtaskRecord{Uid: uid}
record.Id = primitive.NewObjectID().Hex()
record.Vals = make(map[int32]*pb.RtaskData)
for _, v := range grc.GetDataList() {
// 不符合参数配置长度则不初始化
if len(v.Inited) != 5 {
continue
}
vals := []int32{}
for _, p := range v.Inited {
if p == 1 {
vals = append(vals, 0)
} else if p == 0 {
vals = append(vals)
} else if p == -1 {
break
}
}
record.Vals[v.Id] = &pb.RtaskData{
Data: toMap(vals...),
Rtype: v.Type,
Timestamp: time.Now().Unix(),
}
}
if err := this.Add(uid, record); err != nil {
return err
}
} else {
for _, v := range grc.GetDataList() {
if len(v.Inited) != 5 {
continue
}
vals := []int32{}
for i, p := range v.Inited {
if p == 1 {
vals = append(vals, 0)
} else if p == 0 {
sv := int32(0)
switch i {
case 0:
sv = v.Data1
case 1:
sv = v.Data2
case 2:
sv = v.Data3
case 3:
sv = v.Data4
case 4:
sv = v.Data5
}
vals = append(vals, sv)
} else if p == -1 {
break
}
}
dr.Vals[v.Id] = &pb.RtaskData{
Data: toMap(vals...),
Rtype: v.Type,
Timestamp: time.Now().Unix(),
}
}
update := map[string]interface{}{
"vals": dr.Vals,
}
err = this.Change(uid, update)
}
return nil
}

View File

@ -240,9 +240,15 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T
return
}
// 任务条件校验
func (this *ModuleRtask) CheckCondi(session comm.IUserSession, condiId int32) (code pb.ErrorCode) {
if _, ok := this.modelRtask.checkCondi(session.GetUserId(), condiId); !ok {
code = pb.ErrorCode_RtaskCondiNoReach
}
return
}
// 初始化任务条件数据
func (this *ModuleRtask) InitCondiData(uid string) error {
return this.modelRtaskRecord.initCondiData(uid)
}

View File

@ -135,6 +135,9 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod
rsp.Ex = expand
}
// if this.module.ModuleSys.IsAccess("", user.Lv) {
this.module.ModuleRtask.InitCondiData(user.Uid)
// }
}
mail := &pb.DBMailData{
ObjId: primitive.NewObjectID().Hex(),

View File

@ -14,6 +14,7 @@ type GameRdtaskCondiData struct {
Id int32
Datatype int32
Type int32
Inited []int32
Data1 int32
Data2 int32
Data3 int32
@ -31,6 +32,20 @@ func (_v *GameRdtaskCondiData)Deserialize(_buf map[string]interface{}) (err erro
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["datatype"].(float64); !_ok_ { err = errors.New("datatype error"); return }; _v.Datatype = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["inited"].([]interface{}); !_ok_ { err = errors.New("inited error"); return }
_v.Inited = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ int32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.Inited = append(_v.Inited, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data1"].(float64); !_ok_ { err = errors.New("data1 error"); return }; _v.Data1 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data2"].(float64); !_ok_ { err = errors.New("data2 error"); return }; _v.Data2 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data3"].(float64); !_ok_ { err = errors.New("data3 error"); return }; _v.Data3 = int32(_tempNum_) }