支线剧情任务
This commit is contained in:
parent
526e32e708
commit
5e571fcdbc
@ -1,758 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"id": 10011,
|
|
||||||
"type": 1001,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 1,
|
|
||||||
"level": 1,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "马马虎虎"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "魔法厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 3600,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 1000,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "无"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10012,
|
|
||||||
"type": 1001,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 2,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "匠心独运"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "魔法厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 7200,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 500,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "极低"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10013,
|
|
||||||
"type": 1001,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 3,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "孰能生巧"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "魔法厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 14400,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 20,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "中等"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10014,
|
|
||||||
"type": 1001,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 4,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "可圈可点"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "魔法厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 28800,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 10,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "较高"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10021,
|
|
||||||
"type": 1002,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 1,
|
|
||||||
"level": 1,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "马马虎虎"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "功夫厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 3600,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 1000,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "无"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10022,
|
|
||||||
"type": 1002,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 2,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "匠心独运"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "功夫厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 7200,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 500,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "极低"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10023,
|
|
||||||
"type": 1002,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 3,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "孰能生巧"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "功夫厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 14400,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 20,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "中等"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10024,
|
|
||||||
"type": 1002,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 4,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "可圈可点"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "功夫厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 28800,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 10,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "较高"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10031,
|
|
||||||
"type": 1003,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 1,
|
|
||||||
"level": 1,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "马马虎虎"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "科技厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 3600,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 1000,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "无"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10032,
|
|
||||||
"type": 1003,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 2,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "匠心独运"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "科技厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 7200,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 500,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "极低"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10033,
|
|
||||||
"type": 1003,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 3,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "孰能生巧"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "科技厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 14400,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 20,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "中等"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10034,
|
|
||||||
"type": 1003,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 4,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "可圈可点"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "科技厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 28800,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 10,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "较高"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10041,
|
|
||||||
"type": 1004,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 1,
|
|
||||||
"level": 1,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "马马虎虎"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "月能厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 3600,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 1000,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "无"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10042,
|
|
||||||
"type": 1004,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 2,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "匠心独运"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "月能厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 7200,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 500,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "极低"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10043,
|
|
||||||
"type": 1004,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 3,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "孰能生巧"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "月能厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 14400,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 20,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "中等"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10044,
|
|
||||||
"type": 1004,
|
|
||||||
"skill_type": 1,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 4,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "可圈可点"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "月能厨艺"
|
|
||||||
},
|
|
||||||
"needtime": 28800,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 10,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "较高"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10051,
|
|
||||||
"type": 1005,
|
|
||||||
"skill_type": 2,
|
|
||||||
"initial": 1,
|
|
||||||
"level": 1,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "马马虎虎"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "高效制作"
|
|
||||||
},
|
|
||||||
"needtime": -300,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 1000,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln1",
|
|
||||||
"text": "出餐时间-5分钟"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10052,
|
|
||||||
"type": 1005,
|
|
||||||
"skill_type": 2,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 2,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "匠心独运"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "高效制作"
|
|
||||||
},
|
|
||||||
"needtime": -600,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 500,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln2",
|
|
||||||
"text": "出餐时间-10分钟"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10053,
|
|
||||||
"type": 1005,
|
|
||||||
"skill_type": 2,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 3,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "孰能生巧"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "高效制作"
|
|
||||||
},
|
|
||||||
"needtime": -900,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 20,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln3",
|
|
||||||
"text": "出餐时间-15分钟"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 10054,
|
|
||||||
"type": 1005,
|
|
||||||
"skill_type": 2,
|
|
||||||
"initial": 0,
|
|
||||||
"level": 4,
|
|
||||||
"levelname": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "可圈可点"
|
|
||||||
},
|
|
||||||
"colour": 0,
|
|
||||||
"name": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "高效制作"
|
|
||||||
},
|
|
||||||
"needtime": -1200,
|
|
||||||
"display": 1000,
|
|
||||||
"probability": 10,
|
|
||||||
"icon": "ty_wz_k1",
|
|
||||||
"item": [],
|
|
||||||
"affix": {
|
|
||||||
"key": "gourmet_ln4",
|
|
||||||
"text": "出餐时间-20分钟"
|
|
||||||
},
|
|
||||||
"affix_colour": 0,
|
|
||||||
"consume": [
|
|
||||||
{
|
|
||||||
"a": "item",
|
|
||||||
"t": "10002",
|
|
||||||
"n": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
File diff suppressed because it is too large
Load Diff
@ -3,6 +3,9 @@ package common
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
@ -68,3 +71,38 @@ func IsUpgrade(newVersion, oldVersion string) bool {
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Copy(srcFile, destFile string) (int, error) {
|
||||||
|
input, err := ioutil.ReadFile(srcFile)
|
||||||
|
if err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = ioutil.WriteFile(destFile, input, 0644)
|
||||||
|
if err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return len(input), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func RemoveContents(dir string) error {
|
||||||
|
d, err := os.Open(dir)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer d.Close()
|
||||||
|
names, err := d.Readdirnames(-1)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for _, name := range names {
|
||||||
|
err = os.RemoveAll(filepath.Join(dir, name))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
@ -3,6 +3,7 @@ package model
|
|||||||
type GenTool struct {
|
type GenTool struct {
|
||||||
ServerAddr string //服务地址
|
ServerAddr string //服务地址
|
||||||
ProjectDir string //项目目录
|
ProjectDir string //项目目录
|
||||||
|
TmpDir string //临时目录
|
||||||
Client string //Client 文件路径
|
Client string //Client 文件路径
|
||||||
WorkDir string //工作目录
|
WorkDir string //工作目录
|
||||||
InputDir string //输入目录
|
InputDir string //输入目录
|
||||||
|
@ -10,6 +10,7 @@ import (
|
|||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
"go_dreamfactory/modules/friend"
|
"go_dreamfactory/modules/friend"
|
||||||
"go_dreamfactory/modules/hero"
|
"go_dreamfactory/modules/hero"
|
||||||
|
"go_dreamfactory/modules/linestory"
|
||||||
"go_dreamfactory/modules/mainline"
|
"go_dreamfactory/modules/mainline"
|
||||||
"go_dreamfactory/modules/rtask"
|
"go_dreamfactory/modules/rtask"
|
||||||
"go_dreamfactory/modules/task"
|
"go_dreamfactory/modules/task"
|
||||||
@ -83,6 +84,9 @@ var (
|
|||||||
ff(comm.ModuleRtask, rtask.RtaskSubTypeChoose): &formview.RtaskChooseView{},
|
ff(comm.ModuleRtask, rtask.RtaskSubTypeChoose): &formview.RtaskChooseView{},
|
||||||
ff(comm.ModuleRtask, rtask.RtaskSubTypeReward): &formview.RtaskRewardView{},
|
ff(comm.ModuleRtask, rtask.RtaskSubTypeReward): &formview.RtaskRewardView{},
|
||||||
ff(comm.ModuleRtask, "rtest"): &formview.RtaskTestView{},
|
ff(comm.ModuleRtask, "rtest"): &formview.RtaskTestView{},
|
||||||
|
// linestory
|
||||||
|
ff(comm.ModuleLinestory, linestory.LinestorySubTypeDostart): &formview.LinestoryStartView{},
|
||||||
|
ff(comm.ModuleLinestory, linestory.LinestorySubTypeDotask): &formview.LinestoryTaskView{},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -102,6 +106,7 @@ var (
|
|||||||
string(comm.ModuleMainline),
|
string(comm.ModuleMainline),
|
||||||
string(comm.ModulePagoda),
|
string(comm.ModulePagoda),
|
||||||
string(comm.ModuleRtask),
|
string(comm.ModuleRtask),
|
||||||
|
string(comm.ModuleLinestory),
|
||||||
},
|
},
|
||||||
"gm": {ff(comm.ModuleGM, "cmd")},
|
"gm": {ff(comm.ModuleGM, "cmd")},
|
||||||
"user": {
|
"user": {
|
||||||
@ -165,6 +170,9 @@ var (
|
|||||||
ff(comm.ModuleRtask, rtask.RtaskSubTypeReward),
|
ff(comm.ModuleRtask, rtask.RtaskSubTypeReward),
|
||||||
ff(comm.ModuleRtask, "rtest"),
|
ff(comm.ModuleRtask, "rtest"),
|
||||||
},
|
},
|
||||||
|
"linestory": {
|
||||||
|
ff(comm.ModuleLinestory, linestory.LinestorySubTypeDostart),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -592,6 +600,26 @@ var (
|
|||||||
SubType: "rtest",
|
SubType: "rtest",
|
||||||
Enabled: true,
|
Enabled: true,
|
||||||
},
|
},
|
||||||
|
//linestory
|
||||||
|
string(comm.ModuleLinestory): {
|
||||||
|
NavLabel: "支线剧情任务",
|
||||||
|
MainType: string(comm.ModuleLinestory),
|
||||||
|
Enabled: true,
|
||||||
|
},
|
||||||
|
ff(comm.ModuleLinestory, linestory.LinestorySubTypeDostart): {
|
||||||
|
NavLabel: "启动",
|
||||||
|
Desc: "启动剧情任务",
|
||||||
|
MainType: string(comm.ModuleLinestory),
|
||||||
|
SubType: linestory.LinestorySubTypeDostart,
|
||||||
|
Enabled: true,
|
||||||
|
},
|
||||||
|
ff(comm.ModuleLinestory, linestory.LinestorySubTypeDotask): {
|
||||||
|
NavLabel: "做任务",
|
||||||
|
Desc: "做任务",
|
||||||
|
MainType: string(comm.ModuleLinestory),
|
||||||
|
SubType: linestory.LinestorySubTypeDotask,
|
||||||
|
Enabled: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -7,12 +7,18 @@ import (
|
|||||||
"go_dreamfactory/cmd/v2/model"
|
"go_dreamfactory/cmd/v2/model"
|
||||||
"go_dreamfactory/cmd/v2/service"
|
"go_dreamfactory/cmd/v2/service"
|
||||||
"go_dreamfactory/cmd/v2/service/observer"
|
"go_dreamfactory/cmd/v2/service/observer"
|
||||||
|
"go_dreamfactory/utils"
|
||||||
|
"io/ioutil"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
"time"
|
||||||
|
|
||||||
"fyne.io/fyne/v2"
|
"fyne.io/fyne/v2"
|
||||||
"fyne.io/fyne/v2/container"
|
"fyne.io/fyne/v2/container"
|
||||||
|
"fyne.io/fyne/v2/data/binding"
|
||||||
"fyne.io/fyne/v2/dialog"
|
"fyne.io/fyne/v2/dialog"
|
||||||
|
"fyne.io/fyne/v2/layout"
|
||||||
"fyne.io/fyne/v2/theme"
|
"fyne.io/fyne/v2/theme"
|
||||||
"fyne.io/fyne/v2/widget"
|
"fyne.io/fyne/v2/widget"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
@ -21,11 +27,17 @@ import (
|
|||||||
type appGen struct {
|
type appGen struct {
|
||||||
appAdapter
|
appAdapter
|
||||||
|
|
||||||
obs observer.Observer
|
obs observer.Observer
|
||||||
|
goList *fileList
|
||||||
|
jsonList *fileList
|
||||||
|
goChkList *widget.List
|
||||||
|
jsonChkList *widget.List
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *appGen) LazyInit(obs observer.Observer) error {
|
func (this *appGen) LazyInit(obs observer.Observer) error {
|
||||||
this.obs = obs
|
this.obs = obs
|
||||||
|
this.goList = NewFileList()
|
||||||
|
this.jsonList = NewFileList()
|
||||||
|
|
||||||
this.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_GEN, theme.ContentCopyIcon(), nil)
|
this.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_GEN, theme.ContentCopyIcon(), nil)
|
||||||
|
|
||||||
@ -64,6 +76,10 @@ func (this *appGen) LazyInit(obs observer.Observer) error {
|
|||||||
inputDir := widget.NewEntry()
|
inputDir := widget.NewEntry()
|
||||||
inputDir.Text = "Datas"
|
inputDir.Text = "Datas"
|
||||||
|
|
||||||
|
tmpDir := widget.NewEntry()
|
||||||
|
tmpDir.Text = filepath.Join("c:\\tmp\\")
|
||||||
|
tmpDir.PlaceHolder = "临时目录,不要和工作目录和项目目录重复"
|
||||||
|
|
||||||
//genType
|
//genType
|
||||||
var genTypeText string
|
var genTypeText string
|
||||||
genType := widget.NewSelect([]string{"go", "json", "all"}, func(s string) {
|
genType := widget.NewSelect([]string{"go", "json", "all"}, func(s string) {
|
||||||
@ -78,16 +94,18 @@ func (this *appGen) LazyInit(obs observer.Observer) error {
|
|||||||
client.Text = gt.Client //"Luban.Client\\Luban.Client.exe"
|
client.Text = gt.Client //"Luban.Client\\Luban.Client.exe"
|
||||||
genType.Selected = gt.GenType
|
genType.Selected = gt.GenType
|
||||||
genTypeText = gt.GenType
|
genTypeText = gt.GenType
|
||||||
|
tmpDir.Text = gt.TmpDir
|
||||||
}
|
}
|
||||||
|
|
||||||
form := widget.NewForm(
|
form := widget.NewForm(
|
||||||
widget.NewFormItem("服务地址", serverAddr),
|
widget.NewFormItem("服务地址", serverAddr),
|
||||||
widget.NewFormItem("项目目录", projectDir),
|
widget.NewFormItem("项目目录", projectDir),
|
||||||
widget.NewFormItem("工作目录", workDir),
|
widget.NewFormItem("工作目录", workDir),
|
||||||
widget.NewFormItem("Client", client),
|
widget.NewFormItem("LuBan Cli", client),
|
||||||
widget.NewFormItem("输入目录", inputDir),
|
widget.NewFormItem("输入目录", inputDir),
|
||||||
widget.NewFormItem("输出Code目录", outputCodeDir),
|
widget.NewFormItem("输出Code目录", outputCodeDir),
|
||||||
widget.NewFormItem("输出JSON目录", outputJsonDir),
|
widget.NewFormItem("输出JSON目录", outputJsonDir),
|
||||||
|
widget.NewFormItem("临时目录", tmpDir),
|
||||||
widget.NewFormItem("生成类型", genType),
|
widget.NewFormItem("生成类型", genType),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -116,16 +134,72 @@ func (this *appGen) LazyInit(obs observer.Observer) error {
|
|||||||
OutputCodeDir: outputCodeDir.Text,
|
OutputCodeDir: outputCodeDir.Text,
|
||||||
OutputJsonDir: outputJsonDir.Text,
|
OutputJsonDir: outputJsonDir.Text,
|
||||||
GenType: genTypeText,
|
GenType: genTypeText,
|
||||||
|
TmpDir: tmpDir.Text,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
logrus.WithField("err", err).Debug("保存配置")
|
logrus.WithField("err", err).Debug("保存配置")
|
||||||
}
|
}
|
||||||
logrus.Debug("save luban conf")
|
logrus.Debug("save luban conf")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
//go
|
||||||
|
this.goList.titleLabel = widget.NewLabel("Go文件")
|
||||||
|
this.goList.titleLabel.Hide()
|
||||||
|
// 复选列表
|
||||||
|
this.goChkList = this.goList.createList()
|
||||||
|
|
||||||
|
// 覆盖 -go
|
||||||
|
go_overrideBtn := &widget.Button{Text: "覆盖Go", Icon: theme.ConfirmIcon()}
|
||||||
|
go_overrideBtn.Hide()
|
||||||
|
go_overrideBtn.OnTapped = func() {
|
||||||
|
go_overrideBtn.Disable()
|
||||||
|
defer func() {
|
||||||
|
go_overrideBtn.Enable()
|
||||||
|
// _ = common.RemoveContents(filepath.Join(tmpDir.Text, "go"))
|
||||||
|
}()
|
||||||
|
for _, v := range this.goList.selItemIds {
|
||||||
|
// logrus.WithField("path1", filepath.Join(tmpDir.Text, "go", v)).Debug("copy go")
|
||||||
|
// logrus.WithField("path2", filepath.Join(projectDir.Text, outputCodeDir.Text, v)).Debug("copy go")
|
||||||
|
_, err := common.Copy(filepath.Join(tmpDir.Text, "go", v),
|
||||||
|
filepath.Join(projectDir.Text, outputCodeDir.Text, v))
|
||||||
|
if err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// json
|
||||||
|
this.jsonList.titleLabel = widget.NewLabel("Json文件")
|
||||||
|
this.jsonList.titleLabel.Hide()
|
||||||
|
// 复选列表
|
||||||
|
this.jsonChkList = this.jsonList.createList()
|
||||||
|
|
||||||
|
// 覆盖 -go
|
||||||
|
json_overrideBtn := &widget.Button{Text: "覆盖Json", Icon: theme.ConfirmIcon()}
|
||||||
|
json_overrideBtn.Hide()
|
||||||
|
json_overrideBtn.OnTapped = func() {
|
||||||
|
json_overrideBtn.Disable()
|
||||||
|
defer func() {
|
||||||
|
json_overrideBtn.Enable()
|
||||||
|
// _ = common.RemoveContents(filepath.Join(tmpDir.Text, "json"))
|
||||||
|
}()
|
||||||
|
for _, v := range this.jsonList.selItemIds {
|
||||||
|
// logrus.WithField("path1", filepath.Join(tmpDir.Text, "json", v)).Debug("copy json")
|
||||||
|
// logrus.WithField("path2", filepath.Join(projectDir.Text, outputJsonDir.Text, v)).Debug("copy json")
|
||||||
|
_, err := common.Copy(filepath.Join(tmpDir.Text, "json", v),
|
||||||
|
filepath.Join(projectDir.Text, outputJsonDir.Text, v))
|
||||||
|
if err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
}
|
||||||
|
logrus.Debug(v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
genBtn := &widget.Button{Text: "生成", Icon: theme.ConfirmIcon()}
|
genBtn := &widget.Button{Text: "生成", Icon: theme.ConfirmIcon()}
|
||||||
genBtn.OnTapped = func() {
|
genBtn.OnTapped = func() {
|
||||||
genBtn.Disable()
|
genBtn.Disable()
|
||||||
defer genBtn.Enable()
|
defer func() {
|
||||||
|
genBtn.Enable()
|
||||||
|
}()
|
||||||
if runtime.GOOS != "windows" {
|
if runtime.GOOS != "windows" {
|
||||||
dialog.ShowError(errors.New("no support "+runtime.GOOS), toolWin.w)
|
dialog.ShowError(errors.New("no support "+runtime.GOOS), toolWin.w)
|
||||||
return
|
return
|
||||||
@ -143,8 +217,8 @@ func (this *appGen) LazyInit(obs observer.Observer) error {
|
|||||||
serverAddr.Text,
|
serverAddr.Text,
|
||||||
fmt.Sprintf("%s%s", workDir.Text, define.Text),
|
fmt.Sprintf("%s%s", workDir.Text, define.Text),
|
||||||
fmt.Sprintf("%s%s", workDir.Text, inputDir.Text),
|
fmt.Sprintf("%s%s", workDir.Text, inputDir.Text),
|
||||||
fmt.Sprintf("%s%s", projectDir.Text, outputCodeDir.Text),
|
fmt.Sprintf("%s%s", tmpDir.Text, "go"),
|
||||||
fmt.Sprintf("%s%s", projectDir.Text, outputJsonDir.Text),
|
fmt.Sprintf("%s%s", tmpDir.Text, "json"),
|
||||||
getType(),
|
getType(),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -154,15 +228,115 @@ func (this *appGen) LazyInit(obs observer.Observer) error {
|
|||||||
dialog.ShowError(err, toolWin.w)
|
dialog.ShowError(err, toolWin.w)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 更新列表
|
||||||
|
if genTypeText == "go" {
|
||||||
|
this.goList.changeItem(filepath.Join(tmpDir.Text, "go"))
|
||||||
|
this.goList.titleLabel.SetText(fmt.Sprintf("(%d/%d个)", len(this.goList.selItemIds), this.goList.fileTotal))
|
||||||
|
go_overrideBtn.Show()
|
||||||
|
this.goList.titleLabel.Show()
|
||||||
|
} else if genTypeText == "json" {
|
||||||
|
this.jsonList.changeItem(filepath.Join(tmpDir.Text, "json"))
|
||||||
|
this.jsonList.titleLabel.SetText(fmt.Sprintf("(%d/%d)", len(this.jsonList.selItemIds), this.jsonList.fileTotal))
|
||||||
|
json_overrideBtn.Show()
|
||||||
|
this.jsonList.titleLabel.Show()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
c := container.NewGridWithColumns(2, saveBtn, genBtn)
|
// layout
|
||||||
content.Objects = append(content.Objects, container.NewBorder(form, c, nil, nil))
|
left := container.NewVBox(form, container.NewHBox(&layout.Spacer{}, saveBtn, genBtn))
|
||||||
|
right := container.NewBorder(
|
||||||
|
container.NewHBox(widget.NewLabel("Go文件"), this.goList.titleLabel, &layout.Spacer{}, widget.NewLabel("Json文件"), this.jsonList.titleLabel),
|
||||||
|
container.NewHBox(go_overrideBtn, &layout.Spacer{}, json_overrideBtn), nil, nil,
|
||||||
|
container.NewMax(
|
||||||
|
container.NewGridWithColumns(2,
|
||||||
|
container.NewVScroll(this.goChkList),
|
||||||
|
container.NewVScroll(this.jsonChkList),
|
||||||
|
)))
|
||||||
|
|
||||||
|
content.Objects = append(content.Objects, container.NewGridWithColumns(2, left, right))
|
||||||
|
|
||||||
this.tabItem.Content = content
|
this.tabItem.Content = content
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type fileList struct {
|
||||||
|
dataBinding binding.UntypedList
|
||||||
|
selItemIds []string //选择的ID
|
||||||
|
itemListData *model.ItemModelList
|
||||||
|
fileTotal int //文件总数
|
||||||
|
titleLabel *widget.Label
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewFileList() *fileList {
|
||||||
|
return &fileList{
|
||||||
|
dataBinding: binding.NewUntypedList(),
|
||||||
|
titleLabel: &widget.Label{},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fileList) createList() *widget.List {
|
||||||
|
return widget.NewListWithData(f.dataBinding,
|
||||||
|
func() fyne.CanvasObject {
|
||||||
|
return container.NewHBox(
|
||||||
|
&widget.Check{Checked: true},
|
||||||
|
// widget.NewCheck("", func(b bool) { }),
|
||||||
|
widget.NewLabelWithStyle("", fyne.TextAlignCenter, fyne.TextStyle{}),
|
||||||
|
widget.NewLabel(""),
|
||||||
|
)
|
||||||
|
},
|
||||||
|
func(data binding.DataItem, item fyne.CanvasObject) {
|
||||||
|
o, _ := data.(binding.Untyped).Get()
|
||||||
|
pd := o.(*model.ItemModel)
|
||||||
|
item.(*fyne.Container).Objects[0].(*widget.Check).OnChanged = func(b bool) {
|
||||||
|
if b {
|
||||||
|
f.selItemIds = append(f.selItemIds, pd.Id)
|
||||||
|
} else {
|
||||||
|
f.selItemIds = utils.DeleteString(f.selItemIds, pd.Id)
|
||||||
|
}
|
||||||
|
f.titleLabel.SetText(fmt.Sprintf("(%d/%d)", len(f.selItemIds), f.fileTotal))
|
||||||
|
}
|
||||||
|
item.(*fyne.Container).Objects[1].(*widget.Label).SetText(pd.Label)
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fileList) changeItem(dir string) {
|
||||||
|
f.itemListData = model.NewItemModelList()
|
||||||
|
files, err := ioutil.ReadDir(dir)
|
||||||
|
if err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
now := time.Now().Unix()
|
||||||
|
for _, file := range files {
|
||||||
|
if !file.IsDir() {
|
||||||
|
// 仅筛选出变更的文件
|
||||||
|
if now-file.ModTime().Unix() < 5 {
|
||||||
|
fm := &model.ItemModel{
|
||||||
|
Id: file.Name(),
|
||||||
|
Label: file.Name(),
|
||||||
|
}
|
||||||
|
f.itemListData.DataList = append(f.itemListData.DataList, fm)
|
||||||
|
f.selItemIds = append(f.selItemIds, fm.Id)
|
||||||
|
f.fileTotal++
|
||||||
|
logrus.Debugf("%v", fm.Id)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
f.reloadListData()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *fileList) reloadListData() {
|
||||||
|
if f.itemListData != nil {
|
||||||
|
d := f.itemListData.AsInterfaceArray()
|
||||||
|
f.dataBinding.Set(d)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (a *appGen) GetAppName() string {
|
func (a *appGen) GetAppName() string {
|
||||||
return common.TOOLBAR_GEN
|
return common.TOOLBAR_GEN
|
||||||
}
|
}
|
||||||
|
53
cmd/v2/ui/views/linestory_dotask.go
Normal file
53
cmd/v2/ui/views/linestory_dotask.go
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
package formview
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"go_dreamfactory/cmd/v2/model"
|
||||||
|
"go_dreamfactory/cmd/v2/service"
|
||||||
|
"go_dreamfactory/pb"
|
||||||
|
|
||||||
|
"fyne.io/fyne/v2"
|
||||||
|
"fyne.io/fyne/v2/dialog"
|
||||||
|
"fyne.io/fyne/v2/widget"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
"github.com/spf13/cast"
|
||||||
|
)
|
||||||
|
|
||||||
|
type LinestoryTaskView struct {
|
||||||
|
BaseformView
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *LinestoryTaskView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
||||||
|
taskId := widget.NewEntry()
|
||||||
|
taskId.PlaceHolder = "任务ID"
|
||||||
|
|
||||||
|
subTaskId := widget.NewEntry()
|
||||||
|
subTaskId.PlaceHolder = "子任务ID"
|
||||||
|
|
||||||
|
this.form.AppendItem(widget.NewFormItem("任务ID", taskId))
|
||||||
|
this.form.AppendItem(widget.NewFormItem("子任务ID", subTaskId))
|
||||||
|
|
||||||
|
this.form.OnSubmit = func() {
|
||||||
|
if taskId.Text == "" {
|
||||||
|
dialog.ShowError(errors.New("请任务ID"), this.w)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if subTaskId.Text == "" {
|
||||||
|
dialog.ShowError(errors.New("请子任务ID"), this.w)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err := service.GetPttService().SendToClient(
|
||||||
|
t.MainType,
|
||||||
|
t.SubType,
|
||||||
|
&pb.LinestoryDotaskReq{
|
||||||
|
TaskId: cast.ToInt32(taskId.Text),
|
||||||
|
SubtaskId: cast.ToInt32(subTaskId.Text),
|
||||||
|
},
|
||||||
|
); err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this.form
|
||||||
|
}
|
43
cmd/v2/ui/views/linestory_start.go
Normal file
43
cmd/v2/ui/views/linestory_start.go
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
package formview
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"go_dreamfactory/cmd/v2/model"
|
||||||
|
"go_dreamfactory/cmd/v2/service"
|
||||||
|
"go_dreamfactory/pb"
|
||||||
|
|
||||||
|
"fyne.io/fyne/v2"
|
||||||
|
"fyne.io/fyne/v2/dialog"
|
||||||
|
"fyne.io/fyne/v2/widget"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
"github.com/spf13/cast"
|
||||||
|
)
|
||||||
|
|
||||||
|
type LinestoryStartView struct {
|
||||||
|
BaseformView
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *LinestoryStartView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
||||||
|
jqId := widget.NewEntry()
|
||||||
|
jqId.PlaceHolder = "情景ID"
|
||||||
|
|
||||||
|
this.form.AppendItem(widget.NewFormItem("情景ID", jqId))
|
||||||
|
|
||||||
|
this.form.OnSubmit = func() {
|
||||||
|
if jqId.Text == "" {
|
||||||
|
dialog.ShowError(errors.New("请情景ID"), this.w)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err := service.GetPttService().SendToClient(
|
||||||
|
t.MainType,
|
||||||
|
t.SubType,
|
||||||
|
&pb.LinestoryStartReq{
|
||||||
|
JqId: cast.ToInt32(jqId.Text),
|
||||||
|
},
|
||||||
|
); err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this.form
|
||||||
|
}
|
@ -1,14 +1,12 @@
|
|||||||
package formview
|
package formview
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
|
||||||
"go_dreamfactory/cmd/v2/model"
|
"go_dreamfactory/cmd/v2/model"
|
||||||
"go_dreamfactory/cmd/v2/service"
|
"go_dreamfactory/cmd/v2/service"
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
"go_dreamfactory/utils"
|
"go_dreamfactory/utils"
|
||||||
|
|
||||||
"fyne.io/fyne/v2"
|
"fyne.io/fyne/v2"
|
||||||
"fyne.io/fyne/v2/dialog"
|
|
||||||
"fyne.io/fyne/v2/widget"
|
"fyne.io/fyne/v2/widget"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"github.com/spf13/cast"
|
"github.com/spf13/cast"
|
||||||
@ -24,24 +22,32 @@ func (this *RtaskTestView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
|||||||
paramsInput := widget.NewEntry()
|
paramsInput := widget.NewEntry()
|
||||||
paramsInput.PlaceHolder = "多个数值使用,分隔"
|
paramsInput.PlaceHolder = "多个数值使用,分隔"
|
||||||
|
|
||||||
|
condiInput := widget.NewEntry()
|
||||||
|
condiInput.PlaceHolder = "条件配置ID"
|
||||||
|
|
||||||
this.form.AppendItem(widget.NewFormItem("任务类型", rtaskTypeInput))
|
this.form.AppendItem(widget.NewFormItem("任务类型", rtaskTypeInput))
|
||||||
this.form.AppendItem(widget.NewFormItem("参数", paramsInput))
|
this.form.AppendItem(widget.NewFormItem("参数", paramsInput))
|
||||||
|
this.form.AppendItem(widget.NewFormItem("条件ID", condiInput))
|
||||||
|
|
||||||
this.form.OnSubmit = func() {
|
this.form.OnSubmit = func() {
|
||||||
if rtaskTypeInput.Text == "" {
|
// if rtaskTypeInput.Text == "" {
|
||||||
dialog.ShowError(errors.New("请填写任务类型ID"), this.w)
|
// dialog.ShowError(errors.New("请填写任务类型ID"), this.w)
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
if paramsInput.Text == "" {
|
// if paramsInput.Text == "" {
|
||||||
dialog.ShowError(errors.New("请填写任务条件参数"), this.w)
|
// dialog.ShowError(errors.New("请填写任务条件参数"), this.w)
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
if err := service.GetPttService().SendToClient(
|
if err := service.GetPttService().SendToClient(
|
||||||
t.MainType,
|
t.MainType,
|
||||||
t.SubType,
|
t.SubType,
|
||||||
&pb.RtaskTestReq{RtaskType: cast.ToInt32(rtaskTypeInput.Text), Params: utils.TrInt32(paramsInput.Text)},
|
&pb.RtaskTestReq{
|
||||||
|
RtaskType: cast.ToInt32(rtaskTypeInput.Text),
|
||||||
|
Params: utils.TrInt32(paramsInput.Text),
|
||||||
|
CondiId: cast.ToInt32(condiInput.Text),
|
||||||
|
},
|
||||||
); err != nil {
|
); err != nil {
|
||||||
logrus.Error(err)
|
logrus.Error(err)
|
||||||
return
|
return
|
||||||
|
@ -58,6 +58,7 @@ const (
|
|||||||
ModuleViking core.M_Modules = "viking" //维京远征
|
ModuleViking core.M_Modules = "viking" //维京远征
|
||||||
ModuleMoonfantasy core.M_Modules = "moonfantasy" //月之秘境模块
|
ModuleMoonfantasy core.M_Modules = "moonfantasy" //月之秘境模块
|
||||||
ModuleHunting core.M_Modules = "hunting" //狩猎
|
ModuleHunting core.M_Modules = "hunting" //狩猎
|
||||||
|
ModuleLinestory core.M_Modules = "linestory" //支线剧情
|
||||||
ModuleBattle core.M_Modules = "battle" //战斗
|
ModuleBattle core.M_Modules = "battle" //战斗
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -129,6 +130,9 @@ const (
|
|||||||
TableHunting = "hunting"
|
TableHunting = "hunting"
|
||||||
// 维京远征排行榜
|
// 维京远征排行榜
|
||||||
TableHuntingRank = "huntingrank"
|
TableHuntingRank = "huntingrank"
|
||||||
|
|
||||||
|
// 支线剧情任务
|
||||||
|
TableLinestory = "linestory"
|
||||||
)
|
)
|
||||||
|
|
||||||
//RPC服务接口定义处
|
//RPC服务接口定义处
|
||||||
|
@ -109,10 +109,13 @@ type (
|
|||||||
CleanData(uid string)
|
CleanData(uid string)
|
||||||
// 获取当前任务
|
// 获取当前任务
|
||||||
GetTaskById(uid string, taskId int32) *pb.DBTask
|
GetTaskById(uid string, taskId int32) *pb.DBTask
|
||||||
|
// 获取已完成的任务列表
|
||||||
|
GetTaskFinished(uid string, taskType TaskTag) []*pb.DBTask
|
||||||
}
|
}
|
||||||
|
|
||||||
// 随机任务
|
// 随机任务
|
||||||
IRtask interface {
|
IRtask interface {
|
||||||
|
CheckCondi(session IUserSession, condiId int32) (code pb.ErrorCode)
|
||||||
//任务触发
|
//任务触发
|
||||||
SendToRtask(session IUserSession, rtaskType TaskType, params ...int32) (code pb.ErrorCode)
|
SendToRtask(session IUserSession, rtaskType TaskType, params ...int32) (code pb.ErrorCode)
|
||||||
}
|
}
|
||||||
@ -121,6 +124,8 @@ type (
|
|||||||
IFriend interface {
|
IFriend interface {
|
||||||
// 重置点赞列表和每日友情点
|
// 重置点赞列表和每日友情点
|
||||||
ResetFriend(uid string)
|
ResetFriend(uid string)
|
||||||
|
// 获取好友数量
|
||||||
|
GetFriendCount(uid string) int32
|
||||||
}
|
}
|
||||||
|
|
||||||
//聊天系统
|
//聊天系统
|
||||||
|
@ -99,5 +99,7 @@ func (this *apiComp) Agree(session comm.IUserSession, req *pb.FriendAgreeReq) (c
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 拥有xx个好友
|
||||||
|
this.moduleFriend.ModuleRtask.SendToRtask(session, comm.Rtype10, int32(len(agreeIds)))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -42,5 +42,7 @@ func (this *apiComp) Assisthero(session comm.IUserSession, req *pb.FriendAssisth
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.moduleFriend.ModuleRtask.SendToRtask(session, comm.Rtype13, 1)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -98,5 +98,7 @@ func (this *apiComp) Zan(session comm.IUserSession, req *pb.FriendZanReq) (code
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 赠送X次友情点
|
||||||
|
this.moduleFriend.ModuleRtask.SendToRtask(session, comm.Rtype11, 1)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,12 @@ import (
|
|||||||
|
|
||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
"go_dreamfactory/lego/sys/log"
|
"go_dreamfactory/lego/sys/log"
|
||||||
|
|
||||||
|
"github.com/spf13/cast"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var _ comm.IFriend = (*Friend)(nil)
|
||||||
|
|
||||||
func NewModule() core.IModule {
|
func NewModule() core.IModule {
|
||||||
m := new(Friend)
|
m := new(Friend)
|
||||||
return m
|
return m
|
||||||
@ -56,3 +60,10 @@ func (this *Friend) ResetFriend(uid string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *Friend) GetFriendCount(uid string) (count int32) {
|
||||||
|
if friend := this.modelFriend.GetFriend(uid); friend != nil {
|
||||||
|
count = cast.ToInt32(len(friend.FriendIds))
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
29
modules/linestory/api.go
Normal file
29
modules/linestory/api.go
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package linestory
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go_dreamfactory/lego/core"
|
||||||
|
"go_dreamfactory/modules"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
LinestorySubTypeDostart = "dostart" //开始
|
||||||
|
LinestorySubTypeDotask = "dotask" //做任务
|
||||||
|
)
|
||||||
|
|
||||||
|
type apiComp struct {
|
||||||
|
modules.MCompGate
|
||||||
|
service core.IService
|
||||||
|
moduleLinestory *ModuleLinestory
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||||
|
this.MCompGate.Init(service, module, comp, options)
|
||||||
|
this.moduleLinestory = module.(*ModuleLinestory)
|
||||||
|
this.service = service
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *apiComp) Start() (err error) {
|
||||||
|
err = this.MCompGate.Start()
|
||||||
|
return
|
||||||
|
}
|
139
modules/linestory/api_dotask.go
Normal file
139
modules/linestory/api_dotask.go
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
package linestory
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go_dreamfactory/comm"
|
||||||
|
"go_dreamfactory/lego/sys/log"
|
||||||
|
"go_dreamfactory/pb"
|
||||||
|
"go_dreamfactory/utils"
|
||||||
|
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (this *apiComp) DotaskCheck(session comm.IUserSession, req *pb.LinestoryDotaskReq) (code pb.ErrorCode) {
|
||||||
|
if req.TaskId == 0 || req.SubtaskId == 0 {
|
||||||
|
code = pb.ErrorCode_ReqParameterError
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *apiComp) Dotask(session comm.IUserSession, req *pb.LinestoryDotaskReq) (code pb.ErrorCode, data proto.Message) {
|
||||||
|
if code = this.DotaskCheck(session, req); code != pb.ErrorCode_Success {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// task conf
|
||||||
|
conf := this.moduleLinestory.configure.getLinestoryTaskCfgById(req.TaskId)
|
||||||
|
if conf == nil {
|
||||||
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// stage conf
|
||||||
|
stageConf := this.moduleLinestory.configure.getLinestoryStageCfgById(req.SubtaskId)
|
||||||
|
if stageConf == nil {
|
||||||
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询当前玩家的支线任务数据
|
||||||
|
dbLinestory := &pb.DBLinestory{}
|
||||||
|
if err := this.moduleLinestory.modelLinestory.Get(session.GetUserId(), dbLinestory); err != nil {
|
||||||
|
code = pb.ErrorCode_DBError
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if dbLinestory.Tasks == nil {
|
||||||
|
dbLinestory.Tasks = make(map[int32]*pb.TaskNode)
|
||||||
|
} else {
|
||||||
|
if v, ok := dbLinestory.Tasks[req.TaskId]; ok {
|
||||||
|
// 是否被禁止进入
|
||||||
|
if v.Status == 3 {
|
||||||
|
code = pb.ErrorCode_LinestoryTaskDisabledEnter
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var curTask *pb.TaskNode //当前任务
|
||||||
|
rsp := &pb.LinestoryDotaskResp{}
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
if err := session.SendMsg(string(this.moduleLinestory.GetType()), LinestorySubTypeDotask, rsp); err != nil {
|
||||||
|
code = pb.ErrorCode_SystemError
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
//校验前置
|
||||||
|
if conf.PreTId != -1 {
|
||||||
|
if tn, ok := dbLinestory.Tasks[conf.PreTId]; !ok {
|
||||||
|
code = pb.ErrorCode_LinestoryTaskNoFinished
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
curTask = tn
|
||||||
|
// 判此任务是否是结局
|
||||||
|
if conf.Ending == 0 && conf.Resetto != -1 {
|
||||||
|
// 重置任务
|
||||||
|
for k, _ := range dbLinestory.Tasks {
|
||||||
|
if k >= conf.Resetto {
|
||||||
|
delete(dbLinestory.Tasks, k)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dbLinestory.Tasks[req.TaskId] = &pb.TaskNode{Status: 3}
|
||||||
|
}
|
||||||
|
// 判断是否最后一个 发奖励
|
||||||
|
if code = this.moduleLinestory.DispenseRes(session, conf.Reward, true); code != pb.ErrorCode_Success {
|
||||||
|
log.Errorf("%v", code)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 校验子任务是否完成
|
||||||
|
if _, ok := utils.Findx(curTask.SubtaskIds, req.SubtaskId); !ok {
|
||||||
|
code = pb.ErrorCode_LinestorySubTaskNoFinished
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 校验子任务前置
|
||||||
|
if stageConf.PreTId != -1 {
|
||||||
|
module, err := this.service.GetModule(comm.ModuleRtask)
|
||||||
|
if err != nil {
|
||||||
|
code = pb.ErrorCode_SystemError
|
||||||
|
return
|
||||||
|
}
|
||||||
|
//校验子任务完成条件
|
||||||
|
if m, ok := module.(comm.IRtask); ok {
|
||||||
|
for _, condiId := range stageConf.Cond {
|
||||||
|
if code = m.CheckCondi(session, condiId); code != pb.ErrorCode_Success {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 全部符合条件
|
||||||
|
curTask.SubtaskIds = append(curTask.SubtaskIds, req.SubtaskId)
|
||||||
|
if len(conf.StageTId) == len(curTask.SubtaskIds) {
|
||||||
|
curTask.Status = 2 //完成
|
||||||
|
} else {
|
||||||
|
curTask.Status = 1 //进行中
|
||||||
|
}
|
||||||
|
dbLinestory.Tasks[conf.PreTId] = curTask
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新子任务
|
||||||
|
update := map[string]interface{}{
|
||||||
|
"tasks": dbLinestory.Tasks,
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := this.moduleLinestory.modelLinestory.Change(session.GetUserId(), update); err != nil {
|
||||||
|
code = pb.ErrorCode_DBError
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if stageConf.NextTId == -1 {
|
||||||
|
//派发奖励
|
||||||
|
code = this.moduleLinestory.DispenseRes(session, stageConf.Reward, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
74
modules/linestory/api_start.go
Normal file
74
modules/linestory/api_start.go
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
package linestory
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go_dreamfactory/comm"
|
||||||
|
"go_dreamfactory/pb"
|
||||||
|
|
||||||
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||||
|
"go.mongodb.org/mongo-driver/mongo"
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (this *apiComp) DostartCheck(session comm.IUserSession, req *pb.LinestoryStartReq) (code pb.ErrorCode) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *apiComp) Dostart(session comm.IUserSession, req *pb.LinestoryStartReq) (code pb.ErrorCode, data proto.Message) {
|
||||||
|
conf := this.moduleLinestory.configure.getLinestoryChapterCfgById(req.JqId)
|
||||||
|
if conf == nil {
|
||||||
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
module, err := this.service.GetModule(comm.ModuleRtask)
|
||||||
|
if err != nil {
|
||||||
|
code = pb.ErrorCode_SystemError
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if m, ok := module.(comm.IRtask); ok {
|
||||||
|
// 校验限定条件
|
||||||
|
for _, condiId := range conf.Cond {
|
||||||
|
if code = m.CheckCondi(session, condiId); code != pb.ErrorCode_Success {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rsp := &pb.LinestoryStartResp{
|
||||||
|
JqId: req.JqId,
|
||||||
|
}
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
if err := session.SendMsg(string(this.moduleLinestory.GetType()), LinestorySubTypeDostart,
|
||||||
|
rsp); err != nil {
|
||||||
|
code = pb.ErrorCode_SystemError
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
dbLinestory := &pb.DBLinestory{}
|
||||||
|
if err := this.moduleLinestory.modelLinestory.Get(session.GetUserId(), dbLinestory); err != nil {
|
||||||
|
if err == mongo.ErrNoDocuments {
|
||||||
|
//创建任务记录
|
||||||
|
if err := this.moduleLinestory.modelLinestory.Add(session.GetUserId(), &pb.DBLinestory{
|
||||||
|
Id: primitive.NewObjectID().Hex(),
|
||||||
|
Uid: session.GetUserId(),
|
||||||
|
JqId: req.JqId,
|
||||||
|
}); err != nil {
|
||||||
|
code = pb.ErrorCode_DBError
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
code = pb.ErrorCode_DBError
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if dbLinestory.Tasks != nil {
|
||||||
|
for k, _ := range dbLinestory.Tasks {
|
||||||
|
rsp.TaskIds = append(rsp.TaskIds, k)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
113
modules/linestory/config.go
Normal file
113
modules/linestory/config.go
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
package linestory
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go_dreamfactory/lego/core"
|
||||||
|
"go_dreamfactory/lego/sys/log"
|
||||||
|
"go_dreamfactory/modules"
|
||||||
|
cfg "go_dreamfactory/sys/configure/structs"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
gameLinestoryChapter = "game_linestorychapter.json"
|
||||||
|
gameLinestoryTask = "game_linestorytask.json"
|
||||||
|
gameLinestoryStagetask = "game_linestorystagetask.json"
|
||||||
|
)
|
||||||
|
|
||||||
|
type configureComp struct {
|
||||||
|
modules.MCompConfigure
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||||
|
err = this.MCompConfigure.Init(service, module, comp, options)
|
||||||
|
err = this.LoadMultiConfigure(map[string]interface{}{
|
||||||
|
gameLinestoryChapter: cfg.NewGameLineStoryChapter,
|
||||||
|
gameLinestoryTask: cfg.NewGameLineStoryTask,
|
||||||
|
gameLinestoryStagetask: cfg.NewGameLineStoryStageTask,
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *configureComp) getLinestoryChapterCfg() (data *cfg.GameLineStoryChapter, err error) {
|
||||||
|
var (
|
||||||
|
v interface{}
|
||||||
|
ok bool
|
||||||
|
)
|
||||||
|
if v, err = this.GetConfigure(gameLinestoryChapter); err != nil {
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
if data, ok = v.(*cfg.GameLineStoryChapter); !ok {
|
||||||
|
err = fmt.Errorf("%T no is *cfg.GameLineStoryChapter", v)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *configureComp) getLinestoryTaskCfg() (data *cfg.GameLineStoryTask, err error) {
|
||||||
|
var (
|
||||||
|
v interface{}
|
||||||
|
ok bool
|
||||||
|
)
|
||||||
|
if v, err = this.GetConfigure(gameLinestoryTask); err != nil {
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
if data, ok = v.(*cfg.GameLineStoryTask); !ok {
|
||||||
|
err = fmt.Errorf("%T no is *cfg.GameLineStoryTask", v)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *configureComp) getLinestoryStageCfg() (data *cfg.GameLineStoryStageTask, err error) {
|
||||||
|
var (
|
||||||
|
v interface{}
|
||||||
|
ok bool
|
||||||
|
)
|
||||||
|
if v, err = this.GetConfigure(gameLinestoryStagetask); err != nil {
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
if data, ok = v.(*cfg.GameLineStoryStageTask); !ok {
|
||||||
|
err = fmt.Errorf("%T no is *cfg.GameLineStoryStageTask", v)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *configureComp) getLinestoryChapterCfgById(id int32) (data *cfg.GameLineStoryChapterData) {
|
||||||
|
if cfg, err := this.getLinestoryChapterCfg(); err != nil {
|
||||||
|
log.Errorf("%v", err)
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
if cfg != nil {
|
||||||
|
data = cfg.GetDataMap()[id]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *configureComp) getLinestoryTaskCfgById(id int32) (data *cfg.GameLineStoryTaskData) {
|
||||||
|
if cfg, err := this.getLinestoryTaskCfg(); err != nil {
|
||||||
|
log.Errorf("%v", err)
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
if cfg != nil {
|
||||||
|
data = cfg.GetDataMap()[id]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *configureComp) getLinestoryStageCfgById(id int32) (data *cfg.GameLineStoryStageTaskData) {
|
||||||
|
if cfg, err := this.getLinestoryStageCfg(); err != nil {
|
||||||
|
log.Errorf("%v", err)
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
if cfg != nil {
|
||||||
|
data = cfg.GetDataMap()[id]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
21
modules/linestory/model_linestory.go
Normal file
21
modules/linestory/model_linestory.go
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package linestory
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go_dreamfactory/comm"
|
||||||
|
"go_dreamfactory/lego/core"
|
||||||
|
"go_dreamfactory/modules"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ModelLinestory struct {
|
||||||
|
modules.MCompModel
|
||||||
|
moduleLinestory *ModuleLinestory
|
||||||
|
service core.IService
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *ModelLinestory) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||||
|
this.TableName = comm.TableLinestory
|
||||||
|
err = this.MCompModel.Init(service, module, comp, options)
|
||||||
|
this.moduleLinestory = module.(*ModuleLinestory)
|
||||||
|
this.service = service
|
||||||
|
return
|
||||||
|
}
|
34
modules/linestory/module.go
Normal file
34
modules/linestory/module.go
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package linestory
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go_dreamfactory/comm"
|
||||||
|
"go_dreamfactory/lego/core"
|
||||||
|
"go_dreamfactory/modules"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ModuleLinestory struct {
|
||||||
|
modules.ModuleBase
|
||||||
|
api *apiComp
|
||||||
|
configure *configureComp
|
||||||
|
modelLinestory *ModelLinestory
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewModule() core.IModule {
|
||||||
|
return &ModuleLinestory{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *ModuleLinestory) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
|
||||||
|
err = this.ModuleBase.Init(service, module, options)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *ModuleLinestory) OnInstallComp() {
|
||||||
|
this.ModuleBase.OnInstallComp()
|
||||||
|
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
|
||||||
|
this.modelLinestory = this.RegisterComp(new(ModelLinestory)).(*ModelLinestory)
|
||||||
|
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *ModuleLinestory) GetType() core.M_Modules {
|
||||||
|
return comm.ModuleLinestory
|
||||||
|
}
|
@ -2,8 +2,10 @@ package rtask
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"go_dreamfactory/comm"
|
"go_dreamfactory/comm"
|
||||||
|
"go_dreamfactory/lego/sys/log"
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
|
|
||||||
|
"github.com/pkg/errors"
|
||||||
"google.golang.org/protobuf/proto"
|
"google.golang.org/protobuf/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -12,9 +14,19 @@ func (this *apiComp) RtestCheck(session comm.IUserSession, req *pb.RtaskTestReq)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *apiComp) Rtest(session comm.IUserSession, req *pb.RtaskTestReq) (code pb.ErrorCode, data proto.Message) {
|
func (this *apiComp) Rtest(session comm.IUserSession, req *pb.RtaskTestReq) (code pb.ErrorCode, data proto.Message) {
|
||||||
code = this.moduleRtask.SendToRtask(session, comm.TaskType(req.RtaskType), req.Params...)
|
rsp := &pb.RtaskTestResp{Flag: true}
|
||||||
|
if req.CondiId != 0 {
|
||||||
|
if err, ok := this.moduleRtask.modelRtask.checkCondi(session.GetUserId(), req.CondiId); !ok {
|
||||||
|
rsp.Flag = false
|
||||||
|
log.Errorf("%v", errors.WithMessage(err, session.GetUserId()))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if code = this.moduleRtask.SendToRtask(session, comm.TaskType(req.RtaskType), req.Params...); code != pb.ErrorCode_Success {
|
||||||
|
rsp.Flag = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if err := session.SendMsg(string(this.moduleRtask.GetType()), "rtasktest", &pb.RtaskTestResp{Flag: true}); err != nil {
|
if err := session.SendMsg(string(this.moduleRtask.GetType()), "rtest", rsp); err != nil {
|
||||||
code = pb.ErrorCode_SystemError
|
code = pb.ErrorCode_SystemError
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
@ -13,19 +13,116 @@ func (this *ModelRtaskRecord) equalParams(cfg *cfg.GameRdtaskCondiData, vals ...
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if paramLen == 1 {
|
switch paramLen {
|
||||||
if vals[0] == cfg.Data1 {
|
case 1:
|
||||||
condiId = cfg.Id
|
if !soEqual(vals[0], cfg.Data1) {
|
||||||
|
return
|
||||||
}
|
}
|
||||||
} else if paramLen == 2 {
|
case 2:
|
||||||
if vals[0] == cfg.Data1 && vals[1] == cfg.Data2 {
|
if !(soEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2)) {
|
||||||
condiId = cfg.Id
|
return
|
||||||
}
|
}
|
||||||
} else if paramLen == 3 {
|
case 3:
|
||||||
if vals[0] == cfg.Data1 && vals[1] == cfg.Data2 && vals[2] == cfg.Data3 {
|
if !(soEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3)) {
|
||||||
condiId = cfg.Id
|
return
|
||||||
}
|
}
|
||||||
|
case 4:
|
||||||
|
if !(soEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) &&
|
||||||
|
soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
case 5:
|
||||||
|
if !(soEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) &&
|
||||||
|
soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4) && soEqual(vals[4], cfg.Data5)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
condiId = cfg.Id
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *ModelRtaskRecord) greatThanParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) {
|
||||||
|
var (
|
||||||
|
err error
|
||||||
|
paramLen int
|
||||||
|
)
|
||||||
|
if paramLen, err = verifyParam(cfg, vals...); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
switch paramLen {
|
||||||
|
case 1:
|
||||||
|
if !soGreatThan(vals[0], cfg.Data1) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
case 2:
|
||||||
|
if !(soGreatThan(vals[0], cfg.Data1) && soGreatThan(vals[1], cfg.Data2)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
case 3:
|
||||||
|
if !(soGreatThan(vals[0], cfg.Data1) && soGreatThan(vals[1], cfg.Data2) && soGreatThan(vals[2], cfg.Data3)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
case 4:
|
||||||
|
if !(soGreatThan(vals[0], cfg.Data1) && soGreatThan(vals[1], cfg.Data2) &&
|
||||||
|
soGreatThan(vals[2], cfg.Data3) && soGreatThan(vals[3], cfg.Data4)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
case 5:
|
||||||
|
if !(soGreatThan(vals[0], cfg.Data1) && soGreatThan(vals[1], cfg.Data2) &&
|
||||||
|
soGreatThan(vals[2], cfg.Data3) && soGreatThan(vals[3], cfg.Data4) && soGreatThan(vals[4], cfg.Data5)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
condiId = cfg.Id
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 需要累加更新的查询
|
||||||
|
func (this *ModelRtaskRecord) lessThanParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) {
|
||||||
|
var (
|
||||||
|
err error
|
||||||
|
paramLen int
|
||||||
|
)
|
||||||
|
if paramLen, err = verifyParam(cfg, vals...); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
switch paramLen {
|
||||||
|
case 1:
|
||||||
|
if !soLessThan(vals[0], cfg.Data1) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
case 2:
|
||||||
|
if !(soLessThan(vals[0], cfg.Data1) && soLessThan(vals[1], cfg.Data2)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
case 3:
|
||||||
|
if !(soLessThan(vals[0], cfg.Data1) && soLessThan(vals[1], cfg.Data2) && soLessThan(vals[2], cfg.Data3)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
case 4:
|
||||||
|
if !(soLessThan(vals[0], cfg.Data1) && soLessThan(vals[1], cfg.Data2) &&
|
||||||
|
soLessThan(vals[2], cfg.Data3) && soLessThan(vals[3], cfg.Data4)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
case 5:
|
||||||
|
if !(soLessThan(vals[0], cfg.Data1) && soLessThan(vals[1], cfg.Data2) &&
|
||||||
|
soLessThan(vals[2], cfg.Data3) && soLessThan(vals[3], cfg.Data4) && soLessThan(vals[4], cfg.Data5)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
condiId = cfg.Id
|
||||||
|
return
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package rtask
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"go_dreamfactory/lego/sys/log"
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
cfg "go_dreamfactory/sys/configure/structs"
|
cfg "go_dreamfactory/sys/configure/structs"
|
||||||
|
|
||||||
@ -9,14 +10,23 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func verifyParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (n int, err error) {
|
func verifyParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (n int, err error) {
|
||||||
// if cfg.Data1 != 0 && cfg.Data2 != 0 && cfg.Data3 != 0 {
|
if cfg.Data1 != 0 && cfg.Data2 != 0 && cfg.Data3 != 0 && cfg.Data4 != 0 && cfg.Data5 != 0 {
|
||||||
// if len(vals) != 3 {
|
if len(vals) != 5 {
|
||||||
// err = errors.New(fmt.Sprintf("参数个数不一致,期望3实际是%v", len(vals)))
|
err = errors.New(fmt.Sprintf("参数个数不一致,期望5实际是%v", len(vals)))
|
||||||
// return
|
return
|
||||||
// } else {
|
} else {
|
||||||
// n = len(vals)
|
n = len(vals)
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
|
|
||||||
|
if cfg.Data1 != 0 && cfg.Data2 != 0 && cfg.Data3 != 0 && cfg.Data4 != 0 {
|
||||||
|
if len(vals) != 4 {
|
||||||
|
err = errors.New(fmt.Sprintf("参数个数不一致,期望4实际是%v", len(vals)))
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
n = len(vals)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if cfg.Data1 != 0 && cfg.Data2 != 0 && cfg.Data3 != 0 {
|
if cfg.Data1 != 0 && cfg.Data2 != 0 && cfg.Data3 != 0 {
|
||||||
if len(vals) != 3 {
|
if len(vals) != 3 {
|
||||||
@ -63,32 +73,102 @@ func toArr(m map[int32]int32) (params []int32) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func isEqual(len int, data *pb.RtaskData, cfg *cfg.GameRdtaskCondiData, vals ...int32) map[int32]int32 {
|
func hasUpdateData(len int, data *pb.RtaskData, vals ...int32) map[int32]int32 {
|
||||||
if data == nil || len == 0 {
|
if data == nil || len == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
res := make(map[int32]int32)
|
res := make(map[int32]int32)
|
||||||
|
|
||||||
if len == 1 {
|
switch len {
|
||||||
if data.Data[0] != cfg.Data1 {
|
case 1:
|
||||||
|
if vals[0] > data.Data[0] {
|
||||||
res[0] = vals[0]
|
res[0] = vals[0]
|
||||||
}
|
}
|
||||||
}
|
case 2:
|
||||||
|
if vals[0] > data.Data[0] {
|
||||||
if len == 2 {
|
|
||||||
if data.Data[0] != cfg.Data1 || data.Data[1] != cfg.Data2 {
|
|
||||||
res[0] = vals[0]
|
res[0] = vals[0]
|
||||||
|
} else if vals[1] > data.Data[1] {
|
||||||
res[1] = vals[1]
|
res[1] = vals[1]
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if len == 3 {
|
case 3:
|
||||||
if data.Data[0] != cfg.Data1 || data.Data[1] != cfg.Data2 || data.Data[2] != cfg.Data3 {
|
if vals[0] > data.Data[0] {
|
||||||
res[0] = vals[0]
|
res[0] = vals[0]
|
||||||
|
} else if vals[1] > data.Data[1] {
|
||||||
res[1] = vals[1]
|
res[1] = vals[1]
|
||||||
|
} else if vals[2] > data.Data[2] {
|
||||||
res[2] = vals[2]
|
res[2] = vals[2]
|
||||||
}
|
}
|
||||||
|
case 4:
|
||||||
|
if vals[0] > data.Data[0] {
|
||||||
|
res[0] = vals[0]
|
||||||
|
} else if vals[1] > data.Data[1] {
|
||||||
|
res[1] = vals[1]
|
||||||
|
} else if vals[2] > data.Data[2] {
|
||||||
|
res[2] = vals[2]
|
||||||
|
} else if vals[3] > data.Data[3] {
|
||||||
|
res[3] = vals[3]
|
||||||
|
}
|
||||||
|
case 5:
|
||||||
|
if vals[0] > data.Data[0] {
|
||||||
|
res[0] = vals[0]
|
||||||
|
} else if vals[1] > data.Data[1] {
|
||||||
|
res[1] = vals[1]
|
||||||
|
} else if vals[2] > data.Data[2] {
|
||||||
|
res[2] = vals[2]
|
||||||
|
} else if vals[3] > data.Data[3] {
|
||||||
|
res[3] = vals[3]
|
||||||
|
} else if vals[4] > data.Data[4] {
|
||||||
|
res[4] = vals[4]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func printCondiLog(uid string, cfg *cfg.GameRdtaskCondiData) {
|
||||||
|
log.Infof("uid:%v condiId:%v rtype:%v", uid, cfg.Id, cfg.Type)
|
||||||
|
}
|
||||||
|
|
||||||
|
type Num interface {
|
||||||
|
~int32 | ~string | ~bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func equal[T Num](actual, expected T) bool {
|
||||||
|
return actual == expected
|
||||||
|
}
|
||||||
|
|
||||||
|
func greatThan(actual, expected int32) bool {
|
||||||
|
return actual >= expected
|
||||||
|
}
|
||||||
|
|
||||||
|
func lessThan(actual, expected int32) bool {
|
||||||
|
return actual <= expected
|
||||||
|
}
|
||||||
|
|
||||||
|
func soEqual[T Num](actual T, expected T) (ok bool) {
|
||||||
|
if !equal(actual, expected) {
|
||||||
|
log.Debugf("实际:%v 期望:%v", actual, expected)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ok = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func soGreatThan(actual, expected int32) (ok bool) {
|
||||||
|
if !greatThan(actual, expected) {
|
||||||
|
log.Debugf("实际:%v 期望:%v", actual, expected)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ok = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func soLessThan(actual, expected int32) (ok bool) {
|
||||||
|
if !lessThan(actual, expected) {
|
||||||
|
log.Debugf("实际:%v 期望:%v", actual, expected)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ok = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
@ -72,38 +72,12 @@ func (this *ModelRtask) checkCondi(uid string, condiId int32) (err error, ok boo
|
|||||||
//验证限定条件
|
//验证限定条件
|
||||||
var condi *rtaskCondi
|
var condi *rtaskCondi
|
||||||
if condi, ok = this.moduleRtask.handleMap[condiId]; ok {
|
if condi, ok = this.moduleRtask.handleMap[condiId]; ok {
|
||||||
if err, ok = condi.verify(uid, condi.cfg); !ok {
|
if condi.verify != nil {
|
||||||
err = errors.WithMessagef(err, "uid: %v do rtask %v condition not reach", uid, condiId)
|
if err, ok = condi.verify(uid, condi.cfg); !ok {
|
||||||
return
|
err = errors.WithMessagef(err, "uid: %v do rtask %v condition not reach", uid, condiId)
|
||||||
}
|
return
|
||||||
return
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 任务记录
|
|
||||||
func (this *ModelRtask) findAndUpdate(uid string, rtypeId comm.TaskType, vals ...int32) (err error) {
|
|
||||||
var (
|
|
||||||
condiId int32
|
|
||||||
condi *rtaskCondi
|
|
||||||
)
|
|
||||||
// 遍历当前已注册的任务条件
|
|
||||||
for _, v := range this.moduleRtask.handleMap {
|
|
||||||
// 找到任务类型
|
|
||||||
if int32(rtypeId) == v.cfg.Type {
|
|
||||||
if condiId = v.find(v.cfg, vals...); condiId == 0 {
|
|
||||||
continue
|
|
||||||
} else {
|
|
||||||
condi = v
|
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// update
|
|
||||||
if condiId != 0 {
|
|
||||||
err = condi.update(uid, condi.cfg, vals...)
|
|
||||||
}
|
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,8 @@ import (
|
|||||||
cfg "go_dreamfactory/sys/configure/structs"
|
cfg "go_dreamfactory/sys/configure/structs"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var _ comm.IRtask = (*ModuleRtask)(nil)
|
||||||
|
|
||||||
// 限定条件
|
// 限定条件
|
||||||
type rtaskCondi struct {
|
type rtaskCondi struct {
|
||||||
cfg *cfg.GameRdtaskCondiData
|
cfg *cfg.GameRdtaskCondiData
|
||||||
@ -76,180 +78,465 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
|
|||||||
case comm.Rtype1:
|
case comm.Rtype1:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtask.verfiyRtype1,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
|
||||||
})
|
})
|
||||||
case comm.Rtype2:
|
case comm.Rtype2:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtask.verifyRtype2,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
|
||||||
})
|
})
|
||||||
case comm.Rtype3:
|
case comm.Rtype3:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtask.verifyRtype3,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
|
||||||
})
|
})
|
||||||
case comm.Rtype4:
|
case comm.Rtype4:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtask.verifyRtype4,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
|
||||||
})
|
})
|
||||||
case comm.Rtype5:
|
case comm.Rtype5:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtask.verifyRtype5,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
|
||||||
})
|
})
|
||||||
case comm.Rtype6:
|
case comm.Rtype6:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
verify: this.modelRtask.verifyRtype6,
|
||||||
verify: this.modelRtaskRecord.verify,
|
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
|
||||||
})
|
})
|
||||||
case comm.Rtype7:
|
case comm.Rtype7:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
verify: this.modelRtask.verfiyRtype7,
|
||||||
verify: this.modelRtaskRecord.verify,
|
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
|
||||||
})
|
})
|
||||||
case comm.Rtype8:
|
case comm.Rtype8:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
verify: this.modelRtask.verfiyRtype8,
|
||||||
verify: this.modelRtaskRecord.verify,
|
|
||||||
update: this.modelRtaskRecord.addUpdate,
|
|
||||||
})
|
})
|
||||||
case comm.Rtype9:
|
case comm.Rtype9:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
verify: this.modelRtask.verfiyRtype9,
|
||||||
verify: this.modelRtaskRecord.verify,
|
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
|
||||||
})
|
})
|
||||||
case comm.Rtype10:
|
case comm.Rtype10:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
verify: this.modelRtask.verfiyRtype10,
|
||||||
verify: this.modelRtaskRecord.verify,
|
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
|
||||||
})
|
})
|
||||||
case comm.Rtype11:
|
case comm.Rtype11:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.equalParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype12:
|
case comm.Rtype12:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.greatThanParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype13:
|
case comm.Rtype13:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.lessThanParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype14:
|
case comm.Rtype14:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.equalParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype15:
|
case comm.Rtype15:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.equalParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype16:
|
case comm.Rtype16:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.equalParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype17:
|
case comm.Rtype17:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.equalParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype18:
|
case comm.Rtype18:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.equalParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype19:
|
case comm.Rtype19:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.equalParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype20:
|
case comm.Rtype20:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
verify: this.modelRtask.verifyRtype20,
|
||||||
verify: this.modelRtaskRecord.verify,
|
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
|
||||||
})
|
})
|
||||||
case comm.Rtype21:
|
case comm.Rtype21:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.equalParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype22:
|
case comm.Rtype22:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.equalParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype23:
|
case comm.Rtype23:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.equalParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype24:
|
case comm.Rtype24:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.equalParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype25:
|
case comm.Rtype25:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
cfg: typeCfg,
|
cfg: typeCfg,
|
||||||
find: this.modelRtaskRecord.equalParams,
|
find: this.modelRtaskRecord.equalParams,
|
||||||
verify: this.modelRtaskRecord.verify,
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
update: this.modelRtaskRecord.overrideUpdate,
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
})
|
})
|
||||||
|
case comm.Rtype26:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype27:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype28:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype29:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype30:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype31:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype32:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype33:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype34:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype35:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype36:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype37:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype38:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype39:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype40:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype41:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype42:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype43:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype44:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype45:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype46:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype47:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype48:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype49:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype50:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype51:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype52:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype53:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype54:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype55:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype56:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype57:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype58:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype59:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype60:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype61:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype62:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype63:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
verify: this.modelRtask.verifyRtype63,
|
||||||
|
})
|
||||||
|
case comm.Rtype64:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype65:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype66:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype67:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype68:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
case comm.Rtype69:
|
||||||
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
cfg: typeCfg,
|
||||||
|
find: this.modelRtaskRecord.equalParams,
|
||||||
|
verify: this.modelRtaskRecord.verifyFromDb,
|
||||||
|
update: this.modelRtaskRecord.overrideUpdate,
|
||||||
|
})
|
||||||
|
|
||||||
default:
|
default:
|
||||||
log.Warnf("%v rtask type not configure", typeCfg.Type)
|
log.Warnf("rtaskType[%v] not register", typeCfg.Type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -257,8 +544,45 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.TaskType, params ...int32) (code pb.ErrorCode) {
|
func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.TaskType, params ...int32) (code pb.ErrorCode) {
|
||||||
if err := this.modelRtask.findAndUpdate(session.GetUserId(), rtaskType, params...); err != nil {
|
var (
|
||||||
code = pb.ErrorCode_DBError
|
condiId int32
|
||||||
|
condi *rtaskCondi
|
||||||
|
)
|
||||||
|
|
||||||
|
for _, v := range this.handleMap {
|
||||||
|
// 找到任务类型
|
||||||
|
if int32(rtaskType) == v.cfg.Type {
|
||||||
|
if v.find == nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if condiId = v.find(v.cfg, params...); condiId == 0 {
|
||||||
|
continue
|
||||||
|
} else {
|
||||||
|
condi = v
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if condiId == 0 {
|
||||||
|
log.Debugf("condi not found, typeId: %v params: %v", rtaskType, params)
|
||||||
|
code = pb.ErrorCode_ConfigNoFound
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// update
|
||||||
|
if condi.update != nil {
|
||||||
|
if err := condi.update(session.GetUserId(), condi.cfg, params...); err != nil {
|
||||||
|
code = pb.ErrorCode_DBError
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
return
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ package rtask
|
|||||||
import (
|
import (
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
cfg "go_dreamfactory/sys/configure/structs"
|
cfg "go_dreamfactory/sys/configure/structs"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||||
@ -28,28 +29,40 @@ func (this *ModelRtaskRecord) overrideUpdate(uid string, cfg *cfg.GameRdtaskCond
|
|||||||
|
|
||||||
if record.Vals == nil {
|
if record.Vals == nil {
|
||||||
data := &pb.RtaskData{
|
data := &pb.RtaskData{
|
||||||
Data: toMap(vals...),
|
Rtype: cfg.Type,
|
||||||
|
Data: toMap(vals...),
|
||||||
|
Timestamp: time.Now().Unix(),
|
||||||
}
|
}
|
||||||
record.Vals = map[int32]*pb.RtaskData{
|
record.Vals = map[int32]*pb.RtaskData{
|
||||||
cfg.Id: data,
|
cfg.Id: data,
|
||||||
}
|
}
|
||||||
record.Id = primitive.NewObjectID().Hex()
|
record.Id = primitive.NewObjectID().Hex()
|
||||||
record.Uid = uid
|
record.Uid = uid
|
||||||
record.RType = cfg.Type
|
|
||||||
|
|
||||||
if err := this.Add(uid, record); err != nil {
|
if err := this.Add(uid, record); err != nil {
|
||||||
return errors.Wrapf(err, "添加玩家任务记录 err: %v rtype[%v]", uid, cfg.Id)
|
return errors.Wrapf(err, "添加玩家任务记录 err: %v rtype[%v]", uid, cfg.Id)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if v, ok := record.Vals[cfg.Id]; ok {
|
if v, ok := record.Vals[cfg.Id]; ok {
|
||||||
m := isEqual(paramLen, v, cfg, vals...)
|
m := hasUpdateData(paramLen, v, vals...)
|
||||||
if len(m) > 0 {
|
if len(m) > 0 {
|
||||||
update := map[string]interface{}{
|
update := map[string]interface{}{
|
||||||
"vals": m,
|
"vals": m,
|
||||||
}
|
}
|
||||||
err = this.Change(uid, update)
|
err = this.Change(uid, update)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
data := &pb.RtaskData{
|
||||||
|
Rtype: cfg.Type,
|
||||||
|
Data: toMap(vals...),
|
||||||
|
Timestamp: time.Now().Unix(),
|
||||||
|
}
|
||||||
|
record.Vals[cfg.Id] = data
|
||||||
|
|
||||||
|
update := map[string]interface{}{
|
||||||
|
"vals": record.Vals,
|
||||||
|
}
|
||||||
|
err = this.Change(uid, update)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,13 +2,17 @@
|
|||||||
package rtask
|
package rtask
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"go_dreamfactory/comm"
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
cfg "go_dreamfactory/sys/configure/structs"
|
cfg "go_dreamfactory/sys/configure/structs"
|
||||||
|
"go_dreamfactory/utils"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
"github.com/spf13/cast"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (this *ModelRtaskRecord) verify(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
// Deprecated
|
||||||
|
func (this *ModelRtaskRecord) verifyFromDb(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||||
var rd *pb.RtaskData
|
var rd *pb.RtaskData
|
||||||
if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil {
|
if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil {
|
||||||
if len(rd.Data) == 0 {
|
if len(rd.Data) == 0 {
|
||||||
@ -29,3 +33,240 @@ func (this *ModelRtaskRecord) verify(uid string, cfg *cfg.GameRdtaskCondiData) (
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 英雄指定
|
||||||
|
func (this *ModelRtask) verfiyRtype1(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||||
|
heroModule, err := this.service.GetModule(comm.ModuleHero)
|
||||||
|
if err != nil {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
|
||||||
|
if h, y := heroModule.(comm.IHero); y {
|
||||||
|
for _, v := range h.GetHeroList(uid) {
|
||||||
|
if cast.ToString(cfg.Data1) == v.HeroID {
|
||||||
|
ok = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 剧情
|
||||||
|
func (this *ModelRtask) verifyRtype2(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||||
|
m, err := this.service.GetModule(comm.ModuleMainline)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if ml, y := m.(comm.IMainline); y {
|
||||||
|
qjId := ml.GetUsermainLineData(uid)
|
||||||
|
return nil, qjId == cfg.Data1
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 每日任务
|
||||||
|
func (this *ModelRtask) verifyRtype3(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||||
|
m, err := this.service.GetModule(comm.ModuleTask)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if ml, y := m.(comm.ITask); y {
|
||||||
|
for _, task := range ml.GetTaskFinished(uid, comm.TASK_DAILY) {
|
||||||
|
if task.TaskId >= cfg.Data1 {
|
||||||
|
ok = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 指定英雄等级
|
||||||
|
func (this *ModelRtask) verifyRtype4(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||||
|
defer printCondiLog(uid, cfg)
|
||||||
|
m, err := this.service.GetModule(comm.ModuleHero)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if ml, y := m.(comm.IHero); y {
|
||||||
|
var hero *pb.DBHero
|
||||||
|
for _, v := range ml.GetHeroList(uid) {
|
||||||
|
if cast.ToString(cfg.Data1) == v.HeroID {
|
||||||
|
hero = v
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if hero != nil {
|
||||||
|
return nil, soEqual(hero.HeroID, cast.ToString(cfg.Data1)) &&
|
||||||
|
soEqual(hero.Lv, cfg.Data2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 指定英雄的指定装备数量
|
||||||
|
func (this *ModelRtask) verifyRtype5(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||||
|
defer printCondiLog(uid, cfg)
|
||||||
|
m, err := this.service.GetModule(comm.ModuleHero)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if ml, y := m.(comm.IHero); y {
|
||||||
|
var hero *pb.DBHero
|
||||||
|
for _, v := range ml.GetHeroList(uid) {
|
||||||
|
if cast.ToString(cfg.Data1) == v.HeroID {
|
||||||
|
hero = v
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var count int32
|
||||||
|
if hero != nil {
|
||||||
|
for _, v := range hero.EquipID {
|
||||||
|
if v != "" {
|
||||||
|
count++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil, soEqual(hero.HeroID, cast.ToString(cfg.Data1)) &&
|
||||||
|
soEqual(count, cfg.Data2)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 指定英雄星级
|
||||||
|
func (this *ModelRtask) verifyRtype6(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||||
|
defer printCondiLog(uid, cfg)
|
||||||
|
m, err := this.service.GetModule(comm.ModuleHero)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if ml, y := m.(comm.IHero); y {
|
||||||
|
var hero *pb.DBHero
|
||||||
|
for _, v := range ml.GetHeroList(uid) {
|
||||||
|
if cast.ToString(cfg.Data1) == v.HeroID {
|
||||||
|
hero = v
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if hero != nil {
|
||||||
|
return nil, soEqual(hero.HeroID, cast.ToString(cfg.Data1)) &&
|
||||||
|
soEqual(hero.Star, cfg.Data2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 日常登录一次
|
||||||
|
func (this *ModelRtask) verfiyRtype7(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||||
|
defer printCondiLog(uid, cfg)
|
||||||
|
userModule, err := this.service.GetModule(comm.ModuleUser)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if um, y := userModule.(comm.IUser); y {
|
||||||
|
if user := um.GetUser(uid); user != nil {
|
||||||
|
return nil, soEqual(utils.IsToday(user.Logintime), true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 累计登陆xx天
|
||||||
|
func (this *ModelRtask) verfiyRtype8(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||||
|
defer printCondiLog(uid, cfg)
|
||||||
|
userModule, err := this.service.GetModule(comm.ModuleUser)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if um, y := userModule.(comm.IUser); y {
|
||||||
|
ud, err := um.GetUserExpand(uid)
|
||||||
|
if err != nil {
|
||||||
|
return err, false
|
||||||
|
}
|
||||||
|
return nil, soEqual(ud.LoginAddCount, cfg.Data1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 连续登陆xx天
|
||||||
|
func (this *ModelRtask) verfiyRtype9(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||||
|
defer printCondiLog(uid, cfg)
|
||||||
|
userModule, err := this.service.GetModule(comm.ModuleUser)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if um, y := userModule.(comm.IUser); y {
|
||||||
|
ud, err := um.GetUserExpand(uid)
|
||||||
|
if err != nil {
|
||||||
|
return err, false
|
||||||
|
}
|
||||||
|
return nil, soEqual(ud.LoginContinueCount, cfg.Data1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 拥有xx个好友
|
||||||
|
func (this *ModelRtask) verfiyRtype10(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||||
|
defer printCondiLog(uid, cfg)
|
||||||
|
m, err := this.service.GetModule(comm.ModuleFriend)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if mi, y := m.(comm.IFriend); y {
|
||||||
|
count := mi.GetFriendCount(uid)
|
||||||
|
return nil, soGreatThan(count, cfg.Data1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 用户等级达到xx级
|
||||||
|
func (this *ModelRtask) verifyRtype20(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||||
|
defer printCondiLog(uid, cfg)
|
||||||
|
userModule, err := this.service.GetModule(comm.ModuleUser)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if um, y := userModule.(comm.IUser); y {
|
||||||
|
if user := um.GetUser(uid); user != nil {
|
||||||
|
return nil, soEqual(user.Lv, cfg.Data1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 日常任务活跃度达到xx
|
||||||
|
func (this *ModelRtask) verifyRtype63(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||||
|
userModule, err := this.service.GetModule(comm.ModuleUser)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if um, y := userModule.(comm.IUser); y {
|
||||||
|
de, err := um.GetUserExpand(uid)
|
||||||
|
if err != nil {
|
||||||
|
return err, false
|
||||||
|
}
|
||||||
|
|
||||||
|
if de != nil {
|
||||||
|
if de.Activeday == cfg.Data1 {
|
||||||
|
ok = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
@ -54,7 +54,7 @@ func TestVerify2(t *testing.T) {
|
|||||||
Type: 1,
|
Type: 1,
|
||||||
Data1: 25001,
|
Data1: 25001,
|
||||||
}
|
}
|
||||||
err, ok := rtask.verify("11", conf)
|
err, ok := rtask.verifyFromDb("11", conf)
|
||||||
So(err, ShouldEqual, nil)
|
So(err, ShouldEqual, nil)
|
||||||
So(ok, ShouldEqual, true)
|
So(ok, ShouldEqual, true)
|
||||||
|
|
||||||
|
@ -148,6 +148,17 @@ func (this *ModelTask) getUserTask(uid string, taskId string) *pb.DBTask {
|
|||||||
return userTask
|
return userTask
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取已完成的任务
|
||||||
|
func (this *ModelTask) getFinishTasks(uid string, taskTag comm.TaskTag) (list []*pb.DBTask) {
|
||||||
|
taskList := this.getTaskListByTag(uid, taskTag)
|
||||||
|
for _, v := range taskList {
|
||||||
|
if v.Status == 1 {
|
||||||
|
list = append(list, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// 获取待处理的任务
|
// 获取待处理的任务
|
||||||
func (this *ModelTask) getUnFinishTasks(uid string, taskId int32) (list []*pb.DBTask) {
|
func (this *ModelTask) getUnFinishTasks(uid string, taskId int32) (list []*pb.DBTask) {
|
||||||
taskList := this.getTaskById(uid, taskId)
|
taskList := this.getTaskById(uid, taskId)
|
||||||
|
@ -10,6 +10,8 @@ import (
|
|||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var _ comm.ITask = (*ModuleTask)(nil)
|
||||||
|
|
||||||
type ModuleTask struct {
|
type ModuleTask struct {
|
||||||
modules.ModuleBase
|
modules.ModuleBase
|
||||||
modelTask *ModelTask
|
modelTask *ModelTask
|
||||||
@ -110,6 +112,10 @@ func (this *ModuleTask) SendToTask(session comm.IUserSession, taskType comm.Task
|
|||||||
if err := session.SendMsg(string(comm.ModuleTask), TaskSubTypeFinishedPush, &pb.TaskFinishedPush{TaskId: t.TaskId}); err != nil {
|
if err := session.SendMsg(string(comm.ModuleTask), TaskSubTypeFinishedPush, &pb.TaskFinishedPush{TaskId: t.TaskId}); err != nil {
|
||||||
this.modelTask.moduleTask.Errorf("SendToTask sendmsg err:%v", err)
|
this.modelTask.moduleTask.Errorf("SendToTask sendmsg err:%v", err)
|
||||||
}
|
}
|
||||||
|
// 每日任务
|
||||||
|
if t.Tag == int32(comm.TASK_DAILY) {
|
||||||
|
this.ModuleRtask.SendToRtask(session, comm.Rtype3, t.TaskId)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
@ -157,3 +163,7 @@ func (this *ModuleTask) initTaskHandle() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *ModuleTask) GetTaskFinished(uid string, taskTage comm.TaskTag) []*pb.DBTask {
|
||||||
|
return this.modelTask.getFinishTasks(uid, taskTage)
|
||||||
|
}
|
||||||
|
@ -105,7 +105,7 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod
|
|||||||
}
|
}
|
||||||
|
|
||||||
if this.module.modelUser.isLoginFirst(lastLoginTime) {
|
if this.module.modelUser.isLoginFirst(lastLoginTime) {
|
||||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype7, 1)
|
this.module.modelExpand.updateLoginDay(user.Uid, lastLoginTime)
|
||||||
//清空日常
|
//清空日常
|
||||||
this.module.ModuleTask.ResetTask(user.Uid, comm.TASK_DAILY)
|
this.module.ModuleTask.ResetTask(user.Uid, comm.TASK_DAILY)
|
||||||
//清周常
|
//清周常
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
"go_dreamfactory/modules"
|
"go_dreamfactory/modules"
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
|
"go_dreamfactory/utils"
|
||||||
|
|
||||||
"go.mongodb.org/mongo-driver/mongo"
|
"go.mongodb.org/mongo-driver/mongo"
|
||||||
)
|
)
|
||||||
@ -50,3 +51,21 @@ func (this *ModelExpand) ChangeUserExpand(uid string, value map[string]interface
|
|||||||
return this.module.modelExpand.Change(uid, value)
|
return this.module.modelExpand.Change(uid, value)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 累计登录天数
|
||||||
|
func (this *ModelExpand) updateLoginDay(uid string, timestamp int64) (err error) {
|
||||||
|
var de *pb.DBUserExpand
|
||||||
|
if de, err = this.GetUserExpand(uid); err == nil {
|
||||||
|
count := de.LoginAddCount + 1
|
||||||
|
update := map[string]interface{}{
|
||||||
|
"loginAddCount": count,
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新连续等登录天数
|
||||||
|
if utils.IsYestoday(timestamp) {
|
||||||
|
update["loginContinueCount"] = de.LoginContinueCount + 1
|
||||||
|
}
|
||||||
|
err = this.ChangeUserExpand(uid, update)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
@ -10,6 +10,8 @@ import (
|
|||||||
"go_dreamfactory/lego/sys/event"
|
"go_dreamfactory/lego/sys/event"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var _ comm.IUser = (*User)(nil)
|
||||||
|
|
||||||
func NewModule() core.IModule {
|
func NewModule() core.IModule {
|
||||||
m := new(User)
|
m := new(User)
|
||||||
return m
|
return m
|
||||||
|
@ -165,12 +165,22 @@ const (
|
|||||||
ErrorCode_VikingBoosType ErrorCode = 2302 // BOSS 类型不对
|
ErrorCode_VikingBoosType ErrorCode = 2302 // BOSS 类型不对
|
||||||
ErrorCode_VikingBuyMaxCount ErrorCode = 2303 // 购买达到最大次数
|
ErrorCode_VikingBuyMaxCount ErrorCode = 2303 // 购买达到最大次数
|
||||||
// moonfantasy 月之秘境
|
// moonfantasy 月之秘境
|
||||||
|
<<<<<<< HEAD
|
||||||
ErrorCode_MoonfantasyHasExpired ErrorCode = 2401 // boos 连接已失效
|
ErrorCode_MoonfantasyHasExpired ErrorCode = 2401 // boos 连接已失效
|
||||||
ErrorCode_MoonfantasyJoinUp ErrorCode = 2402 // boos 参与人数已达上限
|
ErrorCode_MoonfantasyJoinUp ErrorCode = 2402 // boos 参与人数已达上限
|
||||||
ErrorCode_MoonfantasyDareUp ErrorCode = 2403 // boos 挑战次数已达上限
|
ErrorCode_MoonfantasyDareUp ErrorCode = 2403 // boos 挑战次数已达上限
|
||||||
ErrorCode_MoonfantasyBattleNoEnd ErrorCode = 2404 // boos 战斗未结束
|
ErrorCode_MoonfantasyBattleNoEnd ErrorCode = 2404 // boos 战斗未结束
|
||||||
ErrorCode_MoonfantasyBattleNoWin ErrorCode = 2405 // boos 战斗魏未胜利
|
ErrorCode_MoonfantasyBattleNoWin ErrorCode = 2405 // boos 战斗魏未胜利
|
||||||
ErrorCode_BattleNoFoundRecord ErrorCode = 2501 // 未找到记录
|
ErrorCode_BattleNoFoundRecord ErrorCode = 2501 // 未找到记录
|
||||||
|
=======
|
||||||
|
ErrorCode_MoonfantasyHasExpired ErrorCode = 2401 // boos 连接已失效
|
||||||
|
ErrorCode_MoonfantasyJoinUp ErrorCode = 2402 // boos 参与人数已达上限
|
||||||
|
ErrorCode_MoonfantasyDareUp ErrorCode = 2403 // boos 挑战次数已达上限
|
||||||
|
// linestory
|
||||||
|
ErrorCode_LinestoryTaskNoFinished ErrorCode = 2501 //任务未完成
|
||||||
|
ErrorCode_LinestorySubTaskNoFinished ErrorCode = 2502 //子任务未完成
|
||||||
|
ErrorCode_LinestoryTaskDisabledEnter ErrorCode = 2503 //禁止进入
|
||||||
|
>>>>>>> e241cbe (支线剧情任务)
|
||||||
)
|
)
|
||||||
|
|
||||||
// Enum value maps for ErrorCode.
|
// Enum value maps for ErrorCode.
|
||||||
@ -306,6 +316,7 @@ var (
|
|||||||
2401: "MoonfantasyHasExpired",
|
2401: "MoonfantasyHasExpired",
|
||||||
2402: "MoonfantasyJoinUp",
|
2402: "MoonfantasyJoinUp",
|
||||||
2403: "MoonfantasyDareUp",
|
2403: "MoonfantasyDareUp",
|
||||||
|
<<<<<<< HEAD
|
||||||
2404: "MoonfantasyBattleNoEnd",
|
2404: "MoonfantasyBattleNoEnd",
|
||||||
2405: "MoonfantasyBattleNoWin",
|
2405: "MoonfantasyBattleNoWin",
|
||||||
2501: "BattleNoFoundRecord",
|
2501: "BattleNoFoundRecord",
|
||||||
@ -444,6 +455,146 @@ var (
|
|||||||
"MoonfantasyBattleNoEnd": 2404,
|
"MoonfantasyBattleNoEnd": 2404,
|
||||||
"MoonfantasyBattleNoWin": 2405,
|
"MoonfantasyBattleNoWin": 2405,
|
||||||
"BattleNoFoundRecord": 2501,
|
"BattleNoFoundRecord": 2501,
|
||||||
|
=======
|
||||||
|
2501: "LinestoryTaskNoFinished",
|
||||||
|
2502: "LinestorySubTaskNoFinished",
|
||||||
|
2503: "LinestoryTaskDisabledEnter",
|
||||||
|
}
|
||||||
|
ErrorCode_value = map[string]int32{
|
||||||
|
"Success": 0,
|
||||||
|
"NoFindService": 10,
|
||||||
|
"NoFindServiceHandleFunc": 11,
|
||||||
|
"RpcFuncExecutionError": 12,
|
||||||
|
"CacheReadError": 13,
|
||||||
|
"SqlExecutionError": 14,
|
||||||
|
"ReqParameterError": 15,
|
||||||
|
"SignError": 16,
|
||||||
|
"InsufficientPermissions": 17,
|
||||||
|
"NoLogin": 18,
|
||||||
|
"UserSessionNobeing": 19,
|
||||||
|
"StateInvalid": 20,
|
||||||
|
"DBError": 21,
|
||||||
|
"SystemError": 22,
|
||||||
|
"DecodeError": 23,
|
||||||
|
"TimestampTimeout": 24,
|
||||||
|
"PbError": 25,
|
||||||
|
"AgentUidEmpty": 26,
|
||||||
|
"Exception": 100,
|
||||||
|
"Unknown": 101,
|
||||||
|
"ResNoEnough": 102,
|
||||||
|
"ConfigurationException": 103,
|
||||||
|
"ConfigNoFound": 104,
|
||||||
|
"SecKeyInvalid": 1000,
|
||||||
|
"SecKey": 1001,
|
||||||
|
"BindUser": 1002,
|
||||||
|
"GoldNoEnough": 1003,
|
||||||
|
"DiamondNoEnough": 1004,
|
||||||
|
"RoleCreated": 1005,
|
||||||
|
"UserNickNameExist": 1006,
|
||||||
|
"VeriCodeNoValid": 1007,
|
||||||
|
"VeriCodeExpired": 1008,
|
||||||
|
"UserResetData": 1009,
|
||||||
|
"UserModiNameCount": 1010,
|
||||||
|
"UserNickNameEmpty": 1011,
|
||||||
|
"UserExpandNull": 1012,
|
||||||
|
"FriendNotSelf": 1100,
|
||||||
|
"FriendSelfMax": 1101,
|
||||||
|
"FriendTargetMax": 1102,
|
||||||
|
"FriendSelfNoData": 1103,
|
||||||
|
"FriendTargetNoData": 1104,
|
||||||
|
"FriendYet": 1105,
|
||||||
|
"FriendApplyYet": 1106,
|
||||||
|
"FriendSelfBlackYet": 1107,
|
||||||
|
"FriendTargetBlackYet": 1108,
|
||||||
|
"FriendApplyError": 1109,
|
||||||
|
"FriendBlackMax": 1110,
|
||||||
|
"FriendSearchNameEmpty": 1111,
|
||||||
|
"FriendZaned": 1112,
|
||||||
|
"FriendZanreceived": 1113,
|
||||||
|
"FriendZanSelf": 1114,
|
||||||
|
"FriendPointLimit": 1115,
|
||||||
|
"ItemsNoEnough": 1200,
|
||||||
|
"ItemsNoFoundGird": 1201,
|
||||||
|
"ItemsGridNumUpper": 1202,
|
||||||
|
"ItemsGirdAmountUpper": 1203,
|
||||||
|
"ItemsUseNotSupported": 1204,
|
||||||
|
"HeroNoExist": 1300,
|
||||||
|
"HeroNoEnough": 1301,
|
||||||
|
"HeroMaxLv": 1302,
|
||||||
|
"HeroInitCreat": 1303,
|
||||||
|
"HeroColorErr": 1304,
|
||||||
|
"HeroSkillUpErr": 1305,
|
||||||
|
"HeroMaxResonate": 1306,
|
||||||
|
"HeroNoResonate": 1307,
|
||||||
|
"HeroNotNeedResonate": 1308,
|
||||||
|
"HeroNoEnergy": 1309,
|
||||||
|
"HeroCreate": 1310,
|
||||||
|
"HeroEquipUpdate": 1311,
|
||||||
|
"HeroMaxAwaken": 1312,
|
||||||
|
"HeroIsLock": 1313,
|
||||||
|
"HeroMaxCount": 1314,
|
||||||
|
"HeroCostTypeErr": 1315,
|
||||||
|
"HeroStarErr": 1316,
|
||||||
|
"HeroTypeErr": 1317,
|
||||||
|
"HeroExpTypeErr": 1318,
|
||||||
|
"HeroAddMaxExp": 1319,
|
||||||
|
"HeroStarLvErr": 1320,
|
||||||
|
"HeroMaxStarLv": 1321,
|
||||||
|
"DrawCardTypeNotFound": 1322,
|
||||||
|
"HeroMaxSkillLv": 1323,
|
||||||
|
"HeroAlreadyKongFuStatus": 1324,
|
||||||
|
"EquipmentOnFoundEquipment": 1400,
|
||||||
|
"EquipmentLvlimitReached": 1401,
|
||||||
|
"EquipmentIsWorn": 1402,
|
||||||
|
"EquipmentNoCanSell": 1403,
|
||||||
|
"MainlineNotFindChapter": 1500,
|
||||||
|
"MainlineIDFailed": 1501,
|
||||||
|
"MainlineNotFound": 1502,
|
||||||
|
"MainlinePreNotFound": 1503,
|
||||||
|
"MainlineRepeatReward": 1504,
|
||||||
|
"MainlineCompleteReward": 1505,
|
||||||
|
"TaskInit": 1600,
|
||||||
|
"TaskReset": 1601,
|
||||||
|
"TaskHandle": 1602,
|
||||||
|
"TaskReceived": 1603,
|
||||||
|
"TaskActiveInit": 1604,
|
||||||
|
"TaskActiveNofound": 1605,
|
||||||
|
"TaskActiveNoenough": 1606,
|
||||||
|
"TaskNoFinished": 1607,
|
||||||
|
"TaskFinished": 1608,
|
||||||
|
"TaskTagEmpty": 1609,
|
||||||
|
"TaskIdEmpty": 1610,
|
||||||
|
"TaskNotFound": 1611,
|
||||||
|
"ShopGoodsIsSoldOut": 1700,
|
||||||
|
"ShopNoSurplusRefreshNum": 1701,
|
||||||
|
"MailErr": 1800,
|
||||||
|
"PagodaNotFound": 1900,
|
||||||
|
"PagodaLevlErr": 1901,
|
||||||
|
"PagodaGetRewardErr": 1902,
|
||||||
|
"PagodaConditionErr": 1903,
|
||||||
|
"MartialhallNotUnlocked": 2000,
|
||||||
|
"MartialhallInUse": 2001,
|
||||||
|
"MartialhallUnlocked": 2002,
|
||||||
|
"MartialhallNoUnlocked": 2003,
|
||||||
|
"GourmetMoreOrderTime": 2101,
|
||||||
|
"GourmetSkillMaxLv": 2102,
|
||||||
|
"RtaskFinished": 2201,
|
||||||
|
"RtaskUnFinished": 2202,
|
||||||
|
"RtaskNoRtask": 2203,
|
||||||
|
"RtaskRewarded": 2204,
|
||||||
|
"RtaskPreNoFinish": 2205,
|
||||||
|
"RtaskCondiNoReach": 2206,
|
||||||
|
"RtaskNoLastOne": 2207,
|
||||||
|
"VikingLvErr": 2301,
|
||||||
|
"VikingBoosType": 2302,
|
||||||
|
"VikingBuyMaxCount": 2303,
|
||||||
|
"MoonfantasyHasExpired": 2401,
|
||||||
|
"MoonfantasyJoinUp": 2402,
|
||||||
|
"MoonfantasyDareUp": 2403,
|
||||||
|
"LinestoryTaskNoFinished": 2501,
|
||||||
|
"LinestorySubTaskNoFinished": 2502,
|
||||||
|
"LinestoryTaskDisabledEnter": 2503,
|
||||||
|
>>>>>>> e241cbe (支线剧情任务)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -478,7 +629,11 @@ var File_errorcode_proto protoreflect.FileDescriptor
|
|||||||
|
|
||||||
var file_errorcode_proto_rawDesc = []byte{
|
var file_errorcode_proto_rawDesc = []byte{
|
||||||
0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
||||||
|
<<<<<<< HEAD
|
||||||
0x6f, 0x2a, 0xd3, 0x16, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
|
0x6f, 0x2a, 0xd3, 0x16, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
|
||||||
|
=======
|
||||||
|
0x6f, 0x2a, 0xdf, 0x16, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
|
||||||
|
>>>>>>> e241cbe (支线剧情任务)
|
||||||
0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
|
0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
|
||||||
0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12,
|
0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12,
|
||||||
0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
|
0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
|
||||||
@ -654,6 +809,7 @@ var file_errorcode_proto_rawDesc = []byte{
|
|||||||
0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61,
|
0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61,
|
||||||
0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d,
|
0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d,
|
||||||
0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x44, 0x61, 0x72, 0x65, 0x55, 0x70,
|
0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x44, 0x61, 0x72, 0x65, 0x55, 0x70,
|
||||||
|
<<<<<<< HEAD
|
||||||
0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61,
|
0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61,
|
||||||
0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x45, 0x6e, 0x64, 0x10, 0xe4, 0x12,
|
0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x45, 0x6e, 0x64, 0x10, 0xe4, 0x12,
|
||||||
0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42,
|
0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42,
|
||||||
@ -661,6 +817,16 @@ var file_errorcode_proto_rawDesc = []byte{
|
|||||||
0x13, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65,
|
0x13, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65,
|
||||||
0x63, 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62,
|
0x63, 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62,
|
||||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
|
=======
|
||||||
|
0x10, 0xe3, 0x12, 0x12, 0x1c, 0x0a, 0x17, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79,
|
||||||
|
0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc5,
|
||||||
|
0x13, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75,
|
||||||
|
0x62, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10,
|
||||||
|
0xc6, 0x13, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54,
|
||||||
|
0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x65, 0x72,
|
||||||
|
0x10, 0xc7, 0x13, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
|
||||||
|
0x74, 0x6f, 0x33,
|
||||||
|
>>>>>>> e241cbe (支线剧情任务)
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
251
pb/linestory_db.pb.go
Normal file
251
pb/linestory_db.pb.go
Normal file
@ -0,0 +1,251 @@
|
|||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.28.0
|
||||||
|
// protoc v3.20.0
|
||||||
|
// source: linestory/linestory_db.proto
|
||||||
|
|
||||||
|
package pb
|
||||||
|
|
||||||
|
import (
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
reflect "reflect"
|
||||||
|
sync "sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Verify that this generated code is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||||
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
|
)
|
||||||
|
|
||||||
|
type TaskNode struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status" bson:"status"` //状态 0未做
|
||||||
|
// 1进行中(子任务没有全部完成) 2已做 3禁止进入
|
||||||
|
SubtaskIds []int32 `protobuf:"varint,2,rep,packed,name=subtaskIds,proto3" json:"subtaskIds" bson:"subtasks"` //子任务
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *TaskNode) Reset() {
|
||||||
|
*x = TaskNode{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_linestory_linestory_db_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *TaskNode) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*TaskNode) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *TaskNode) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_linestory_linestory_db_proto_msgTypes[0]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use TaskNode.ProtoReflect.Descriptor instead.
|
||||||
|
func (*TaskNode) Descriptor() ([]byte, []int) {
|
||||||
|
return file_linestory_linestory_db_proto_rawDescGZIP(), []int{0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *TaskNode) GetStatus() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Status
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *TaskNode) GetSubtaskIds() []int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.SubtaskIds
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type DBLinestory struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
|
||||||
|
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
|
||||||
|
JqId int32 `protobuf:"varint,3,opt,name=jqId,proto3" json:"jqId" bson:"jqId"` //剧情ID
|
||||||
|
Tasks map[int32]*TaskNode `protobuf:"bytes,4,rep,name=tasks,proto3" json:"tasks" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" bson:"tasks"` //任务
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBLinestory) Reset() {
|
||||||
|
*x = DBLinestory{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_linestory_linestory_db_proto_msgTypes[1]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBLinestory) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*DBLinestory) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *DBLinestory) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_linestory_linestory_db_proto_msgTypes[1]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use DBLinestory.ProtoReflect.Descriptor instead.
|
||||||
|
func (*DBLinestory) Descriptor() ([]byte, []int) {
|
||||||
|
return file_linestory_linestory_db_proto_rawDescGZIP(), []int{1}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBLinestory) GetId() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Id
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBLinestory) GetUid() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Uid
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBLinestory) GetJqId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.JqId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DBLinestory) GetTasks() map[int32]*TaskNode {
|
||||||
|
if x != nil {
|
||||||
|
return x.Tasks
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var File_linestory_linestory_db_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
var file_linestory_linestory_db_proto_rawDesc = []byte{
|
||||||
|
0x0a, 0x1c, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x6c, 0x69, 0x6e, 0x65,
|
||||||
|
0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x42,
|
||||||
|
0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
|
||||||
|
0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
|
||||||
|
0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73,
|
||||||
|
0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x49,
|
||||||
|
0x64, 0x73, 0x22, 0xb7, 0x01, 0x0a, 0x0b, 0x44, 0x42, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f,
|
||||||
|
0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
|
||||||
|
0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
|
0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6a, 0x71, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01,
|
||||||
|
0x28, 0x05, 0x52, 0x04, 0x6a, 0x71, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b,
|
||||||
|
0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x4c, 0x69, 0x6e, 0x65,
|
||||||
|
0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
|
||||||
|
0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x1a, 0x43, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x73,
|
||||||
|
0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
|
||||||
|
0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
|
||||||
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x64,
|
||||||
|
0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04,
|
||||||
|
0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
file_linestory_linestory_db_proto_rawDescOnce sync.Once
|
||||||
|
file_linestory_linestory_db_proto_rawDescData = file_linestory_linestory_db_proto_rawDesc
|
||||||
|
)
|
||||||
|
|
||||||
|
func file_linestory_linestory_db_proto_rawDescGZIP() []byte {
|
||||||
|
file_linestory_linestory_db_proto_rawDescOnce.Do(func() {
|
||||||
|
file_linestory_linestory_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_linestory_linestory_db_proto_rawDescData)
|
||||||
|
})
|
||||||
|
return file_linestory_linestory_db_proto_rawDescData
|
||||||
|
}
|
||||||
|
|
||||||
|
var file_linestory_linestory_db_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
||||||
|
var file_linestory_linestory_db_proto_goTypes = []interface{}{
|
||||||
|
(*TaskNode)(nil), // 0: TaskNode
|
||||||
|
(*DBLinestory)(nil), // 1: DBLinestory
|
||||||
|
nil, // 2: DBLinestory.TasksEntry
|
||||||
|
}
|
||||||
|
var file_linestory_linestory_db_proto_depIdxs = []int32{
|
||||||
|
2, // 0: DBLinestory.tasks:type_name -> DBLinestory.TasksEntry
|
||||||
|
0, // 1: DBLinestory.TasksEntry.value:type_name -> TaskNode
|
||||||
|
2, // [2:2] is the sub-list for method output_type
|
||||||
|
2, // [2:2] is the sub-list for method input_type
|
||||||
|
2, // [2:2] is the sub-list for extension type_name
|
||||||
|
2, // [2:2] is the sub-list for extension extendee
|
||||||
|
0, // [0:2] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_linestory_linestory_db_proto_init() }
|
||||||
|
func file_linestory_linestory_db_proto_init() {
|
||||||
|
if File_linestory_linestory_db_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !protoimpl.UnsafeEnabled {
|
||||||
|
file_linestory_linestory_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*TaskNode); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_linestory_linestory_db_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*DBLinestory); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: file_linestory_linestory_db_proto_rawDesc,
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 3,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 0,
|
||||||
|
},
|
||||||
|
GoTypes: file_linestory_linestory_db_proto_goTypes,
|
||||||
|
DependencyIndexes: file_linestory_linestory_db_proto_depIdxs,
|
||||||
|
MessageInfos: file_linestory_linestory_db_proto_msgTypes,
|
||||||
|
}.Build()
|
||||||
|
File_linestory_linestory_db_proto = out.File
|
||||||
|
file_linestory_linestory_db_proto_rawDesc = nil
|
||||||
|
file_linestory_linestory_db_proto_goTypes = nil
|
||||||
|
file_linestory_linestory_db_proto_depIdxs = nil
|
||||||
|
}
|
500
pb/linestory_msg.pb.go
Normal file
500
pb/linestory_msg.pb.go
Normal file
@ -0,0 +1,500 @@
|
|||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.28.0
|
||||||
|
// protoc v3.20.0
|
||||||
|
// source: linestory/linestory_msg.proto
|
||||||
|
|
||||||
|
package pb
|
||||||
|
|
||||||
|
import (
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
reflect "reflect"
|
||||||
|
sync "sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Verify that this generated code is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||||
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
|
)
|
||||||
|
|
||||||
|
// 剧情开始
|
||||||
|
type LinestoryStartReq struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
JqId int32 `protobuf:"varint,1,opt,name=jqId,proto3" json:"jqId"` //剧情ID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryStartReq) Reset() {
|
||||||
|
*x = LinestoryStartReq{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_linestory_linestory_msg_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryStartReq) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*LinestoryStartReq) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *LinestoryStartReq) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_linestory_linestory_msg_proto_msgTypes[0]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use LinestoryStartReq.ProtoReflect.Descriptor instead.
|
||||||
|
func (*LinestoryStartReq) Descriptor() ([]byte, []int) {
|
||||||
|
return file_linestory_linestory_msg_proto_rawDescGZIP(), []int{0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryStartReq) GetJqId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.JqId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type LinestoryStartResp struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
JqId int32 `protobuf:"varint,1,opt,name=jqId,proto3" json:"jqId"`
|
||||||
|
TaskIds []int32 `protobuf:"varint,2,rep,packed,name=taskIds,proto3" json:"taskIds"` //已完成的任务ID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryStartResp) Reset() {
|
||||||
|
*x = LinestoryStartResp{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_linestory_linestory_msg_proto_msgTypes[1]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryStartResp) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*LinestoryStartResp) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *LinestoryStartResp) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_linestory_linestory_msg_proto_msgTypes[1]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use LinestoryStartResp.ProtoReflect.Descriptor instead.
|
||||||
|
func (*LinestoryStartResp) Descriptor() ([]byte, []int) {
|
||||||
|
return file_linestory_linestory_msg_proto_rawDescGZIP(), []int{1}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryStartResp) GetJqId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.JqId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryStartResp) GetTaskIds() []int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.TaskIds
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 做任务
|
||||||
|
type LinestoryDotaskReq struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
TaskId int32 `protobuf:"varint,1,opt,name=taskId,proto3" json:"taskId"` //任务ID
|
||||||
|
SubtaskId int32 `protobuf:"varint,2,opt,name=subtaskId,proto3" json:"subtaskId"` //子任务ID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDotaskReq) Reset() {
|
||||||
|
*x = LinestoryDotaskReq{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_linestory_linestory_msg_proto_msgTypes[2]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDotaskReq) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*LinestoryDotaskReq) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *LinestoryDotaskReq) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_linestory_linestory_msg_proto_msgTypes[2]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use LinestoryDotaskReq.ProtoReflect.Descriptor instead.
|
||||||
|
func (*LinestoryDotaskReq) Descriptor() ([]byte, []int) {
|
||||||
|
return file_linestory_linestory_msg_proto_rawDescGZIP(), []int{2}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDotaskReq) GetTaskId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.TaskId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDotaskReq) GetSubtaskId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.SubtaskId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type LinestoryDotaskResp struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
TaskId int32 `protobuf:"varint,1,opt,name=taskId,proto3" json:"taskId"` //任务ID
|
||||||
|
SubtaskId int32 `protobuf:"varint,2,opt,name=subtaskId,proto3" json:"subtaskId"` //子任务ID
|
||||||
|
ResetTaskId int32 `protobuf:"varint,3,opt,name=resetTaskId,proto3" json:"resetTaskId"` //重置任务起始ID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDotaskResp) Reset() {
|
||||||
|
*x = LinestoryDotaskResp{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_linestory_linestory_msg_proto_msgTypes[3]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDotaskResp) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*LinestoryDotaskResp) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *LinestoryDotaskResp) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_linestory_linestory_msg_proto_msgTypes[3]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use LinestoryDotaskResp.ProtoReflect.Descriptor instead.
|
||||||
|
func (*LinestoryDotaskResp) Descriptor() ([]byte, []int) {
|
||||||
|
return file_linestory_linestory_msg_proto_rawDescGZIP(), []int{3}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDotaskResp) GetTaskId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.TaskId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDotaskResp) GetSubtaskId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.SubtaskId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDotaskResp) GetResetTaskId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.ResetTaskId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// 做子任务
|
||||||
|
type LinestoryDosubtaskReq struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
SubtaskId int32 `protobuf:"varint,1,opt,name=subtaskId,proto3" json:"subtaskId"` //子任务ID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDosubtaskReq) Reset() {
|
||||||
|
*x = LinestoryDosubtaskReq{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_linestory_linestory_msg_proto_msgTypes[4]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDosubtaskReq) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*LinestoryDosubtaskReq) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *LinestoryDosubtaskReq) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_linestory_linestory_msg_proto_msgTypes[4]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use LinestoryDosubtaskReq.ProtoReflect.Descriptor instead.
|
||||||
|
func (*LinestoryDosubtaskReq) Descriptor() ([]byte, []int) {
|
||||||
|
return file_linestory_linestory_msg_proto_rawDescGZIP(), []int{4}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDosubtaskReq) GetSubtaskId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.SubtaskId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type LinestoryDosubtaskResp struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
SubtaskId int32 `protobuf:"varint,1,opt,name=subtaskId,proto3" json:"subtaskId"` //子任务ID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDosubtaskResp) Reset() {
|
||||||
|
*x = LinestoryDosubtaskResp{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_linestory_linestory_msg_proto_msgTypes[5]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDosubtaskResp) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*LinestoryDosubtaskResp) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *LinestoryDosubtaskResp) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_linestory_linestory_msg_proto_msgTypes[5]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use LinestoryDosubtaskResp.ProtoReflect.Descriptor instead.
|
||||||
|
func (*LinestoryDosubtaskResp) Descriptor() ([]byte, []int) {
|
||||||
|
return file_linestory_linestory_msg_proto_rawDescGZIP(), []int{5}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *LinestoryDosubtaskResp) GetSubtaskId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.SubtaskId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
var File_linestory_linestory_msg_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
var file_linestory_linestory_msg_proto_rawDesc = []byte{
|
||||||
|
0x0a, 0x1d, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x6c, 0x69, 0x6e, 0x65,
|
||||||
|
0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
|
||||||
|
0x27, 0x0a, 0x11, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x72,
|
||||||
|
0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6a, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||||
|
0x28, 0x05, 0x52, 0x04, 0x6a, 0x71, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x12, 0x4c, 0x69, 0x6e, 0x65,
|
||||||
|
0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12,
|
||||||
|
0x0a, 0x04, 0x6a, 0x71, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6a, 0x71,
|
||||||
|
0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20,
|
||||||
|
0x03, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x22, 0x4a, 0x0a, 0x12,
|
||||||
|
0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x6f, 0x74, 0x61, 0x73, 0x6b, 0x52,
|
||||||
|
0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||||
|
0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75,
|
||||||
|
0x62, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73,
|
||||||
|
0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x6d, 0x0a, 0x13, 0x4c, 0x69, 0x6e, 0x65,
|
||||||
|
0x73, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x6f, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12,
|
||||||
|
0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||||
|
0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x74, 0x61,
|
||||||
|
0x73, 0x6b, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x75, 0x62, 0x74,
|
||||||
|
0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x74, 0x54, 0x61,
|
||||||
|
0x73, 0x6b, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65,
|
||||||
|
0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x35, 0x0a, 0x15, 0x4c, 0x69, 0x6e, 0x65, 0x73,
|
||||||
|
0x74, 0x6f, 0x72, 0x79, 0x44, 0x6f, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71,
|
||||||
|
0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20,
|
||||||
|
0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x36,
|
||||||
|
0x0a, 0x16, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x6f, 0x73, 0x75, 0x62,
|
||||||
|
0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x74,
|
||||||
|
0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x75, 0x62,
|
||||||
|
0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06,
|
||||||
|
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
file_linestory_linestory_msg_proto_rawDescOnce sync.Once
|
||||||
|
file_linestory_linestory_msg_proto_rawDescData = file_linestory_linestory_msg_proto_rawDesc
|
||||||
|
)
|
||||||
|
|
||||||
|
func file_linestory_linestory_msg_proto_rawDescGZIP() []byte {
|
||||||
|
file_linestory_linestory_msg_proto_rawDescOnce.Do(func() {
|
||||||
|
file_linestory_linestory_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_linestory_linestory_msg_proto_rawDescData)
|
||||||
|
})
|
||||||
|
return file_linestory_linestory_msg_proto_rawDescData
|
||||||
|
}
|
||||||
|
|
||||||
|
var file_linestory_linestory_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
|
||||||
|
var file_linestory_linestory_msg_proto_goTypes = []interface{}{
|
||||||
|
(*LinestoryStartReq)(nil), // 0: LinestoryStartReq
|
||||||
|
(*LinestoryStartResp)(nil), // 1: LinestoryStartResp
|
||||||
|
(*LinestoryDotaskReq)(nil), // 2: LinestoryDotaskReq
|
||||||
|
(*LinestoryDotaskResp)(nil), // 3: LinestoryDotaskResp
|
||||||
|
(*LinestoryDosubtaskReq)(nil), // 4: LinestoryDosubtaskReq
|
||||||
|
(*LinestoryDosubtaskResp)(nil), // 5: LinestoryDosubtaskResp
|
||||||
|
}
|
||||||
|
var file_linestory_linestory_msg_proto_depIdxs = []int32{
|
||||||
|
0, // [0:0] is the sub-list for method output_type
|
||||||
|
0, // [0:0] is the sub-list for method input_type
|
||||||
|
0, // [0:0] is the sub-list for extension type_name
|
||||||
|
0, // [0:0] is the sub-list for extension extendee
|
||||||
|
0, // [0:0] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_linestory_linestory_msg_proto_init() }
|
||||||
|
func file_linestory_linestory_msg_proto_init() {
|
||||||
|
if File_linestory_linestory_msg_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !protoimpl.UnsafeEnabled {
|
||||||
|
file_linestory_linestory_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*LinestoryStartReq); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_linestory_linestory_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*LinestoryStartResp); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_linestory_linestory_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*LinestoryDotaskReq); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_linestory_linestory_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*LinestoryDotaskResp); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_linestory_linestory_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*LinestoryDosubtaskReq); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_linestory_linestory_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*LinestoryDosubtaskResp); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: file_linestory_linestory_msg_proto_rawDesc,
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 6,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 0,
|
||||||
|
},
|
||||||
|
GoTypes: file_linestory_linestory_msg_proto_goTypes,
|
||||||
|
DependencyIndexes: file_linestory_linestory_msg_proto_depIdxs,
|
||||||
|
MessageInfos: file_linestory_linestory_msg_proto_msgTypes,
|
||||||
|
}.Build()
|
||||||
|
File_linestory_linestory_msg_proto = out.File
|
||||||
|
file_linestory_linestory_msg_proto_rawDesc = nil
|
||||||
|
file_linestory_linestory_msg_proto_goTypes = nil
|
||||||
|
file_linestory_linestory_msg_proto_depIdxs = nil
|
||||||
|
}
|
@ -152,7 +152,9 @@ type RtaskData struct {
|
|||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
Data map[int32]int32 `protobuf:"bytes,1,rep,name=data,proto3" json:"data" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"data"` // 当前任务值
|
Data map[int32]int32 `protobuf:"bytes,1,rep,name=data,proto3" json:"data" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"data"` // 当前任务值
|
||||||
|
Rtype int32 `protobuf:"varint,2,opt,name=rtype,proto3" json:"rtype" bson:"rtype"` // 任务类型
|
||||||
|
Timestamp int64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp"` //@go_tasg(`bson:"timestamp"`) 时间戳
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *RtaskData) Reset() {
|
func (x *RtaskData) Reset() {
|
||||||
@ -194,17 +196,29 @@ func (x *RtaskData) GetData() map[int32]int32 {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *RtaskData) GetRtype() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Rtype
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RtaskData) GetTimestamp() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Timestamp
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
// 玩家任务记录
|
// 玩家任务记录
|
||||||
type DBRtaskRecord struct {
|
type DBRtaskRecord struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
|
||||||
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
|
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
|
||||||
RType int32 `protobuf:"varint,3,opt,name=rType,proto3" json:"rType" bson:"rType"` //任务类型
|
Vals map[int32]*RtaskData `protobuf:"bytes,3,rep,name=vals,proto3" json:"vals" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" bson:"vals"` //任务记录值
|
||||||
Vals map[int32]*RtaskData `protobuf:"bytes,4,rep,name=vals,proto3" json:"vals" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" bson:"vals"` //任务记录值
|
|
||||||
Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp"` //@go_tasg(`bson:"timestamp"`) 时间戳
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DBRtaskRecord) Reset() {
|
func (x *DBRtaskRecord) Reset() {
|
||||||
@ -253,13 +267,6 @@ func (x *DBRtaskRecord) GetUid() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DBRtaskRecord) GetRType() int32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.RType
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *DBRtaskRecord) GetVals() map[int32]*RtaskData {
|
func (x *DBRtaskRecord) GetVals() map[int32]*RtaskData {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Vals
|
return x.Vals
|
||||||
@ -267,13 +274,6 @@ func (x *DBRtaskRecord) GetVals() map[int32]*RtaskData {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DBRtaskRecord) GetTimestamp() int64 {
|
|
||||||
if x != nil {
|
|
||||||
return x.Timestamp
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
var File_rtask_rtask_db_proto protoreflect.FileDescriptor
|
var File_rtask_rtask_db_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_rtask_rtask_db_proto_rawDesc = []byte{
|
var file_rtask_rtask_db_proto_rawDesc = []byte{
|
||||||
@ -295,29 +295,29 @@ var file_rtask_rtask_db_proto_rawDesc = []byte{
|
|||||||
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
|
0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
|
||||||
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
|
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
|
||||||
0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6e, 0x0a, 0x09,
|
0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa2, 0x01, 0x0a,
|
||||||
0x72, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74,
|
0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61,
|
||||||
0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x44,
|
0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x61, 0x73, 0x6b,
|
||||||
0x61, 0x74, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64,
|
0x44, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04,
|
||||||
0x61, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79,
|
0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
|
||||||
|
0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69,
|
||||||
|
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74,
|
||||||
|
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61,
|
||||||
|
0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
|
||||||
|
0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
|
||||||
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
|
||||||
|
0x01, 0x22, 0xa4, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63,
|
||||||
|
0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
|
0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
||||||
|
0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x04, 0x76, 0x61, 0x6c, 0x73, 0x18, 0x03, 0x20,
|
||||||
|
0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63,
|
||||||
|
0x6f, 0x72, 0x64, 0x2e, 0x56, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x76,
|
||||||
|
0x61, 0x6c, 0x73, 0x1a, 0x43, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
|
||||||
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b,
|
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b,
|
||||||
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd8, 0x01, 0x0a,
|
0x0b, 0x32, 0x0a, 0x2e, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76,
|
||||||
0x0d, 0x44, 0x42, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e,
|
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
|
||||||
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10,
|
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64,
|
|
||||||
0x12, 0x14, 0x0a, 0x05, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
|
|
||||||
0x05, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x76, 0x61, 0x6c, 0x73, 0x18, 0x04,
|
|
||||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65,
|
|
||||||
0x63, 0x6f, 0x72, 0x64, 0x2e, 0x56, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04,
|
|
||||||
0x76, 0x61, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
|
|
||||||
0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
|
|
||||||
0x6d, 0x70, 0x1a, 0x43, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
|
|
||||||
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65,
|
|
||||||
0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
|
|
||||||
0x32, 0x0a, 0x2e, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61,
|
|
||||||
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62,
|
|
||||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -512,6 +512,7 @@ type RtaskTestReq struct {
|
|||||||
|
|
||||||
RtaskType int32 `protobuf:"varint,1,opt,name=rtaskType,proto3" json:"rtaskType"` //任务类型
|
RtaskType int32 `protobuf:"varint,1,opt,name=rtaskType,proto3" json:"rtaskType"` //任务类型
|
||||||
Params []int32 `protobuf:"varint,2,rep,packed,name=params,proto3" json:"params"` //参数
|
Params []int32 `protobuf:"varint,2,rep,packed,name=params,proto3" json:"params"` //参数
|
||||||
|
CondiId int32 `protobuf:"varint,3,opt,name=condiId,proto3" json:"condiId"` //条件ID
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *RtaskTestReq) Reset() {
|
func (x *RtaskTestReq) Reset() {
|
||||||
@ -560,6 +561,13 @@ func (x *RtaskTestReq) GetParams() []int32 {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *RtaskTestReq) GetCondiId() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.CondiId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
type RtaskTestResp struct {
|
type RtaskTestResp struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@ -650,14 +658,16 @@ var file_rtask_rtask_msg_proto_rawDesc = []byte{
|
|||||||
0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b,
|
0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b,
|
||||||
0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64,
|
0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64,
|
||||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62,
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62,
|
||||||
0x49, 0x64, 0x22, 0x44, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x52,
|
0x49, 0x64, 0x22, 0x5e, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x52,
|
||||||
0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18,
|
0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18,
|
||||||
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65,
|
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65,
|
||||||
0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05,
|
0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05,
|
||||||
0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x23, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73,
|
0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x64,
|
||||||
0x6b, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61,
|
0x69, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x64, 0x69,
|
||||||
0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x06, 0x5a,
|
0x49, 0x64, 0x22, 0x23, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x52,
|
||||||
0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
|
0x08, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62,
|
||||||
|
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -13,6 +13,7 @@ import (
|
|||||||
"go_dreamfactory/modules/hero"
|
"go_dreamfactory/modules/hero"
|
||||||
"go_dreamfactory/modules/hunting"
|
"go_dreamfactory/modules/hunting"
|
||||||
"go_dreamfactory/modules/items"
|
"go_dreamfactory/modules/items"
|
||||||
|
"go_dreamfactory/modules/linestory"
|
||||||
"go_dreamfactory/modules/mail"
|
"go_dreamfactory/modules/mail"
|
||||||
"go_dreamfactory/modules/mainline"
|
"go_dreamfactory/modules/mainline"
|
||||||
"go_dreamfactory/modules/martialhall"
|
"go_dreamfactory/modules/martialhall"
|
||||||
@ -76,6 +77,7 @@ func main() {
|
|||||||
moonfantasy.NewModule(),
|
moonfantasy.NewModule(),
|
||||||
hunting.NewModule(),
|
hunting.NewModule(),
|
||||||
battle.NewModule(),
|
battle.NewModule(),
|
||||||
|
linestory.NewModule(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,11 +12,10 @@ import "errors"
|
|||||||
|
|
||||||
type GameLineStoryStageTaskData struct {
|
type GameLineStoryStageTaskData struct {
|
||||||
Id int32
|
Id int32
|
||||||
PosTId int32
|
PreTId int32
|
||||||
NextTId int32
|
NextTId int32
|
||||||
Cond []int32
|
Cond []int32
|
||||||
Reward []*Gameatn
|
Reward []*Gameatn
|
||||||
Jump string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const TypeId_GameLineStoryStageTaskData = 884678024
|
const TypeId_GameLineStoryStageTaskData = 884678024
|
||||||
@ -27,7 +26,7 @@ func (*GameLineStoryStageTaskData) GetTypeId() int32 {
|
|||||||
|
|
||||||
func (_v *GameLineStoryStageTaskData)Deserialize(_buf map[string]interface{}) (err error) {
|
func (_v *GameLineStoryStageTaskData)Deserialize(_buf map[string]interface{}) (err error) {
|
||||||
{ 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["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
|
||||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["posTId"].(float64); !_ok_ { err = errors.New("posTId error"); return }; _v.PosTId = int32(_tempNum_) }
|
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["preTId"].(float64); !_ok_ { err = errors.New("preTId error"); return }; _v.PreTId = int32(_tempNum_) }
|
||||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["nextTId"].(float64); !_ok_ { err = errors.New("nextTId error"); return }; _v.NextTId = int32(_tempNum_) }
|
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["nextTId"].(float64); !_ok_ { err = errors.New("nextTId error"); return }; _v.NextTId = int32(_tempNum_) }
|
||||||
{
|
{
|
||||||
var _arr_ []interface{}
|
var _arr_ []interface{}
|
||||||
@ -57,7 +56,6 @@ func (_v *GameLineStoryStageTaskData)Deserialize(_buf map[string]interface{}) (e
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{ var _ok_ bool; if _v.Jump, _ok_ = _buf["jump"].(string); !_ok_ { err = errors.New("jump error"); return } }
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ type GameLineStoryTaskData struct {
|
|||||||
Reward []*Gameatn
|
Reward []*Gameatn
|
||||||
Finish int32
|
Finish int32
|
||||||
Ending int32
|
Ending int32
|
||||||
|
Resetto int32
|
||||||
}
|
}
|
||||||
|
|
||||||
const TypeId_GameLineStoryTaskData = -2080476076
|
const TypeId_GameLineStoryTaskData = -2080476076
|
||||||
@ -58,6 +59,7 @@ func (_v *GameLineStoryTaskData)Deserialize(_buf map[string]interface{}) (err er
|
|||||||
|
|
||||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["finish"].(float64); !_ok_ { err = errors.New("finish error"); return }; _v.Finish = int32(_tempNum_) }
|
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["finish"].(float64); !_ok_ { err = errors.New("finish error"); return }; _v.Finish = int32(_tempNum_) }
|
||||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["ending"].(float64); !_ok_ { err = errors.New("ending error"); return }; _v.Ending = int32(_tempNum_) }
|
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["ending"].(float64); !_ok_ { err = errors.New("ending error"); return }; _v.Ending = int32(_tempNum_) }
|
||||||
|
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["resetto"].(float64); !_ok_ { err = errors.New("resetto error"); return }; _v.Resetto = int32(_tempNum_) }
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// <auto-generated>
|
|
||||||
// This code was generated by a tool.
|
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
// the code is regenerated.
|
|
||||||
// </auto-generated>
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
package cfg
|
|
||||||
|
|
||||||
type GameSkill struct {
|
|
||||||
_dataMap map[int32]*GameSkillData
|
|
||||||
_dataList []*GameSkillData
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewGameSkill(_buf []map[string]interface{}) (*GameSkill, error) {
|
|
||||||
_dataList := make([]*GameSkillData, 0, len(_buf))
|
|
||||||
dataMap := make(map[int32]*GameSkillData)
|
|
||||||
for _, _ele_ := range _buf {
|
|
||||||
if _v, err2 := DeserializeGameSkillData(_ele_); err2 != nil {
|
|
||||||
return nil, err2
|
|
||||||
} else {
|
|
||||||
_dataList = append(_dataList, _v)
|
|
||||||
dataMap[_v.Id] = _v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return &GameSkill{_dataList:_dataList, _dataMap:dataMap}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (table *GameSkill) GetDataMap() map[int32]*GameSkillData {
|
|
||||||
return table._dataMap
|
|
||||||
}
|
|
||||||
|
|
||||||
func (table *GameSkill) GetDataList() []*GameSkillData {
|
|
||||||
return table._dataList
|
|
||||||
}
|
|
||||||
|
|
||||||
func (table *GameSkill) Get(key int32) *GameSkillData {
|
|
||||||
return table._dataMap[key]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,107 +0,0 @@
|
|||||||
//------------------------------------------------------------------------------
|
|
||||||
// <auto-generated>
|
|
||||||
// This code was generated by a tool.
|
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
// the code is regenerated.
|
|
||||||
// </auto-generated>
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
package cfg
|
|
||||||
|
|
||||||
import "errors"
|
|
||||||
|
|
||||||
type GameSkillData struct {
|
|
||||||
Id int32
|
|
||||||
Name string
|
|
||||||
Ico string
|
|
||||||
Act string
|
|
||||||
Type int32
|
|
||||||
MaxLV int32
|
|
||||||
CD []int32
|
|
||||||
Target int32
|
|
||||||
ChildSkill []*GameChildSkills
|
|
||||||
Desc []string
|
|
||||||
Buffid []int32
|
|
||||||
}
|
|
||||||
|
|
||||||
const TypeId_GameSkillData = -598580577
|
|
||||||
|
|
||||||
func (*GameSkillData) GetTypeId() int32 {
|
|
||||||
return -598580577
|
|
||||||
}
|
|
||||||
|
|
||||||
func (_v *GameSkillData)Deserialize(_buf map[string]interface{}) (err error) {
|
|
||||||
{ 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 __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["Name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
|
|
||||||
{ var _ok_ bool; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } }
|
|
||||||
{ var _ok_ bool; if _v.Act, _ok_ = _buf["act"].(string); !_ok_ { err = errors.New("act error"); return } }
|
|
||||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Type"].(float64); !_ok_ { err = errors.New("Type error"); return }; _v.Type = int32(_tempNum_) }
|
|
||||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["MaxLV"].(float64); !_ok_ { err = errors.New("MaxLV error"); return }; _v.MaxLV = int32(_tempNum_) }
|
|
||||||
{
|
|
||||||
var _arr_ []interface{}
|
|
||||||
var _ok_ bool
|
|
||||||
if _arr_, _ok_ = _buf["CD"].([]interface{}); !_ok_ { err = errors.New("CD error"); return }
|
|
||||||
|
|
||||||
_v.CD = 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.CD = append(_v.CD, _list_v_)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Target"].(float64); !_ok_ { err = errors.New("Target error"); return }; _v.Target = int32(_tempNum_) }
|
|
||||||
{
|
|
||||||
var _arr_ []interface{}
|
|
||||||
var _ok_ bool
|
|
||||||
if _arr_, _ok_ = _buf["ChildSkill"].([]interface{}); !_ok_ { err = errors.New("ChildSkill error"); return }
|
|
||||||
|
|
||||||
_v.ChildSkill = make([]*GameChildSkills, 0, len(_arr_))
|
|
||||||
|
|
||||||
for _, _e_ := range _arr_ {
|
|
||||||
var _list_v_ *GameChildSkills
|
|
||||||
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameChildSkills(_x_); err != nil { return } }
|
|
||||||
_v.ChildSkill = append(_v.ChildSkill, _list_v_)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
var _arr_ []interface{}
|
|
||||||
var _ok_ bool
|
|
||||||
if _arr_, _ok_ = _buf["Desc"].([]interface{}); !_ok_ { err = errors.New("Desc error"); return }
|
|
||||||
|
|
||||||
_v.Desc = make([]string, 0, len(_arr_))
|
|
||||||
|
|
||||||
for _, _e_ := range _arr_ {
|
|
||||||
var _list_v_ string
|
|
||||||
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
|
|
||||||
_v.Desc = append(_v.Desc, _list_v_)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
var _arr_ []interface{}
|
|
||||||
var _ok_ bool
|
|
||||||
if _arr_, _ok_ = _buf["buffid"].([]interface{}); !_ok_ { err = errors.New("buffid error"); return }
|
|
||||||
|
|
||||||
_v.Buffid = 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.Buffid = append(_v.Buffid, _list_v_)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func DeserializeGameSkillData(_buf map[string]interface{}) (*GameSkillData, error) {
|
|
||||||
v := &GameSkillData{}
|
|
||||||
if err := v.Deserialize(_buf); err == nil {
|
|
||||||
return v, nil
|
|
||||||
} else {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
|
@ -23,8 +23,11 @@ type GameStroyData struct {
|
|||||||
Listen string
|
Listen string
|
||||||
Emoji string
|
Emoji string
|
||||||
Des string
|
Des string
|
||||||
|
<<<<<<< HEAD
|
||||||
Modelstatetarget string
|
Modelstatetarget string
|
||||||
Modelstate int32
|
Modelstate int32
|
||||||
|
=======
|
||||||
|
>>>>>>> e241cbe (支线剧情任务)
|
||||||
Modelaction string
|
Modelaction string
|
||||||
State string
|
State string
|
||||||
Chose []int32
|
Chose []int32
|
||||||
@ -59,8 +62,11 @@ func (_v *GameStroyData)Deserialize(_buf map[string]interface{}) (err error) {
|
|||||||
{ var _ok_ bool; if _v.Listen, _ok_ = _buf["listen"].(string); !_ok_ { err = errors.New("listen error"); return } }
|
{ var _ok_ bool; if _v.Listen, _ok_ = _buf["listen"].(string); !_ok_ { err = errors.New("listen error"); return } }
|
||||||
{ var _ok_ bool; if _v.Emoji, _ok_ = _buf["emoji"].(string); !_ok_ { err = errors.New("emoji error"); return } }
|
{ var _ok_ bool; if _v.Emoji, _ok_ = _buf["emoji"].(string); !_ok_ { err = errors.New("emoji error"); return } }
|
||||||
{ var _ok_ bool; if _v.Des, _ok_ = _buf["des"].(string); !_ok_ { err = errors.New("des error"); return } }
|
{ var _ok_ bool; if _v.Des, _ok_ = _buf["des"].(string); !_ok_ { err = errors.New("des error"); return } }
|
||||||
|
<<<<<<< HEAD
|
||||||
{ var _ok_ bool; if _v.Modelstatetarget, _ok_ = _buf["modelstatetarget"].(string); !_ok_ { err = errors.New("modelstatetarget error"); return } }
|
{ var _ok_ bool; if _v.Modelstatetarget, _ok_ = _buf["modelstatetarget"].(string); !_ok_ { err = errors.New("modelstatetarget error"); return } }
|
||||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["modelstate"].(float64); !_ok_ { err = errors.New("modelstate error"); return }; _v.Modelstate = int32(_tempNum_) }
|
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["modelstate"].(float64); !_ok_ { err = errors.New("modelstate error"); return }; _v.Modelstate = int32(_tempNum_) }
|
||||||
|
=======
|
||||||
|
>>>>>>> e241cbe (支线剧情任务)
|
||||||
{ var _ok_ bool; if _v.Modelaction, _ok_ = _buf["modelaction"].(string); !_ok_ { err = errors.New("modelaction error"); return } }
|
{ var _ok_ bool; if _v.Modelaction, _ok_ = _buf["modelaction"].(string); !_ok_ { err = errors.New("modelaction error"); return } }
|
||||||
{ var _ok_ bool; if _v.State, _ok_ = _buf["state"].(string); !_ok_ { err = errors.New("state error"); return } }
|
{ var _ok_ bool; if _v.State, _ok_ = _buf["state"].(string); !_ok_ { err = errors.New("state error"); return } }
|
||||||
{
|
{
|
||||||
|
@ -28,3 +28,9 @@ func GetZeroTime(curTime int64) int64 {
|
|||||||
|
|
||||||
return startTime.Unix() + 86400 //3600*24
|
return startTime.Unix() + 86400 //3600*24
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func IsYestoday(timestamp int64) bool {
|
||||||
|
tt := time.Unix(timestamp, 0)
|
||||||
|
yesTime := time.Now().AddDate(0, 0, -1)
|
||||||
|
return tt.Year() == yesTime.Year() && tt.Month() == yesTime.Month() && tt.Day() == yesTime.Day()
|
||||||
|
}
|
||||||
|
@ -5,6 +5,8 @@ import (
|
|||||||
"go_dreamfactory/utils"
|
"go_dreamfactory/utils"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
. "github.com/smartystreets/goconvey/convey"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestIsToday(t *testing.T) {
|
func TestIsToday(t *testing.T) {
|
||||||
@ -13,6 +15,14 @@ func TestIsToday(t *testing.T) {
|
|||||||
fmt.Println(time.Now().Before(tt))
|
fmt.Println(time.Now().Before(tt))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIsYestoday(t *testing.T) {
|
||||||
|
Convey("昨天", t, func() {
|
||||||
|
b := utils.IsYestoday(1661912369)
|
||||||
|
So(b, ShouldEqual, true)
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func TestSubTime(t *testing.T) {
|
func TestSubTime(t *testing.T) {
|
||||||
fmt.Println(utils.IsAfterWeek(1657172915))
|
fmt.Println(utils.IsAfterWeek(1657172915))
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user