Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev
This commit is contained in:
commit
97fc44039d
@ -4,8 +4,8 @@
|
||||
"var": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "rmbmoney",
|
||||
"n": 20
|
||||
"t": "gold",
|
||||
"n": 20000
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -14,7 +14,7 @@
|
||||
"var": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "rmbmoney",
|
||||
"t": "gold",
|
||||
"n": 20
|
||||
}
|
||||
]
|
||||
|
14480
bin/json/game_hero.json
14480
bin/json/game_hero.json
File diff suppressed because it is too large
Load Diff
@ -22,7 +22,7 @@
|
||||
"name": "高级经验精灵",
|
||||
"star": 4,
|
||||
"color": 3,
|
||||
"heroexp": 18518,
|
||||
"heroexp": 18510,
|
||||
"skilllevelup": 0,
|
||||
"needgold": 23324
|
||||
},
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -232,7 +232,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "14003",
|
||||
"star": 4,
|
||||
"star": 3,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
@ -364,7 +364,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "14007",
|
||||
"star": 4,
|
||||
"star": 5,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
@ -496,7 +496,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "15004",
|
||||
"star": 5,
|
||||
"star": 3,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
@ -694,7 +694,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "24002",
|
||||
"star": 4,
|
||||
"star": 3,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
@ -727,7 +727,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "24003",
|
||||
"star": 4,
|
||||
"star": 3,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
@ -760,7 +760,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "24004",
|
||||
"star": 4,
|
||||
"star": 3,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
@ -958,7 +958,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "25001",
|
||||
"star": 5,
|
||||
"star": 4,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
@ -1057,7 +1057,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "25004",
|
||||
"star": 5,
|
||||
"star": 3,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
@ -1552,7 +1552,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "35001",
|
||||
"star": 4,
|
||||
"star": 3,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
@ -1618,7 +1618,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "35003",
|
||||
"star": 5,
|
||||
"star": 3,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
@ -2113,7 +2113,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "44006",
|
||||
"star": 4,
|
||||
"star": 3,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
@ -2212,7 +2212,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "45003",
|
||||
"star": 5,
|
||||
"star": 3,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
@ -2278,7 +2278,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "44005",
|
||||
"star": 4,
|
||||
"star": 3,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
@ -2311,7 +2311,7 @@
|
||||
},
|
||||
{
|
||||
"hid": "15005",
|
||||
"star": 5,
|
||||
"star": 3,
|
||||
"energy": 6,
|
||||
"prize": [
|
||||
{
|
||||
|
@ -1,56 +1,56 @@
|
||||
[
|
||||
{
|
||||
"star": 1,
|
||||
"level": 1,
|
||||
"maxlevel": 10,
|
||||
"starup_hp": 0,
|
||||
"starup_atk": 0,
|
||||
"starup_def": 0,
|
||||
"starup_speed": 0
|
||||
},
|
||||
{
|
||||
"star": 2,
|
||||
"level": 10,
|
||||
"maxlevel": 20,
|
||||
"starup_hp": 9.5,
|
||||
"starup_atk": 9.5,
|
||||
"starup_def": 9.5,
|
||||
"starup_speed": 9.5
|
||||
},
|
||||
{
|
||||
"star": 3,
|
||||
"level": 20,
|
||||
"maxlevel": 30,
|
||||
"starup_hp": 19,
|
||||
"starup_atk": 19,
|
||||
"starup_def": 19,
|
||||
"starup_speed": 19
|
||||
},
|
||||
{
|
||||
"star": 4,
|
||||
"level": 30,
|
||||
"maxlevel": 40,
|
||||
"starup_hp": 28.5,
|
||||
"starup_atk": 28.5,
|
||||
"starup_def": 28.5,
|
||||
"starup_speed": 28.5
|
||||
},
|
||||
{
|
||||
"star": 5,
|
||||
"level": 40,
|
||||
"maxlevel": 50,
|
||||
"starup_hp": 38,
|
||||
"starup_atk": 38,
|
||||
"starup_def": 38,
|
||||
"starup_speed": 38
|
||||
},
|
||||
{
|
||||
"star": 6,
|
||||
"level": 50,
|
||||
"maxlevel": 60,
|
||||
"starup_hp": 47.5,
|
||||
"starup_atk": 47.5,
|
||||
"starup_def": 47.5,
|
||||
"starup_speed": 47.5
|
||||
}
|
||||
[
|
||||
{
|
||||
"star": 1,
|
||||
"level": 1,
|
||||
"maxlevel": 10,
|
||||
"starup_hp": 0,
|
||||
"starup_atk": 0,
|
||||
"starup_def": 0,
|
||||
"starup_speed": 0
|
||||
},
|
||||
{
|
||||
"star": 2,
|
||||
"level": 10,
|
||||
"maxlevel": 20,
|
||||
"starup_hp": 15,
|
||||
"starup_atk": 15,
|
||||
"starup_def": 15,
|
||||
"starup_speed": 15
|
||||
},
|
||||
{
|
||||
"star": 3,
|
||||
"level": 20,
|
||||
"maxlevel": 30,
|
||||
"starup_hp": 25,
|
||||
"starup_atk": 25,
|
||||
"starup_def": 25,
|
||||
"starup_speed": 25
|
||||
},
|
||||
{
|
||||
"star": 4,
|
||||
"level": 30,
|
||||
"maxlevel": 40,
|
||||
"starup_hp": 55,
|
||||
"starup_atk": 55,
|
||||
"starup_def": 55,
|
||||
"starup_speed": 55
|
||||
},
|
||||
{
|
||||
"star": 5,
|
||||
"level": 40,
|
||||
"maxlevel": 50,
|
||||
"starup_hp": 95,
|
||||
"starup_atk": 95,
|
||||
"starup_def": 95,
|
||||
"starup_speed": 95
|
||||
},
|
||||
{
|
||||
"star": 6,
|
||||
"level": 50,
|
||||
"maxlevel": 60,
|
||||
"starup_hp": 145,
|
||||
"starup_atk": 145,
|
||||
"starup_def": 145,
|
||||
"starup_speed": 145
|
||||
}
|
||||
]
|
File diff suppressed because it is too large
Load Diff
@ -1,14 +1,4 @@
|
||||
[
|
||||
{
|
||||
"index": "1",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "25001",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "2",
|
||||
"var": [
|
||||
@ -19,106 +9,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "3",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "25004",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "13",
|
||||
"var": [
|
||||
{
|
||||
"a": "equi",
|
||||
"t": "10051",
|
||||
"n": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "14",
|
||||
"var": [
|
||||
{
|
||||
"a": "equi",
|
||||
"t": "10052",
|
||||
"n": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "15",
|
||||
"var": [
|
||||
{
|
||||
"a": "equi",
|
||||
"t": "10053",
|
||||
"n": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "16",
|
||||
"var": [
|
||||
{
|
||||
"a": "equi",
|
||||
"t": "10054",
|
||||
"n": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "17",
|
||||
"var": [
|
||||
{
|
||||
"a": "equi",
|
||||
"t": "10055",
|
||||
"n": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "18",
|
||||
"var": [
|
||||
{
|
||||
"a": "equi",
|
||||
"t": "10056",
|
||||
"n": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "19",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "42911",
|
||||
"n": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "20",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "43911",
|
||||
"n": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "21",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "44911",
|
||||
"n": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "23",
|
||||
"var": [
|
||||
@ -129,356 +19,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "24",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "10006",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "25",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "10009",
|
||||
"n": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "26",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "10010",
|
||||
"n": 45
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "27",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "10011",
|
||||
"n": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "28",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "10012",
|
||||
"n": 1250
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "29",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "10013",
|
||||
"n": 1000
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "30",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "10014",
|
||||
"n": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "31",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "10015",
|
||||
"n": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "32",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "10016",
|
||||
"n": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "33",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "50001",
|
||||
"n": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "34",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "50002",
|
||||
"n": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "35",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "50003",
|
||||
"n": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "36",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "50004",
|
||||
"n": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "37",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "50005",
|
||||
"n": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "38",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "50006",
|
||||
"n": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "39",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "50007",
|
||||
"n": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "40",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "50008",
|
||||
"n": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "41",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "50009",
|
||||
"n": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "42",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "50010",
|
||||
"n": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "43",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "50011",
|
||||
"n": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "44",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "50012",
|
||||
"n": 200
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "45",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "30001",
|
||||
"n": 999
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "46",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "30002",
|
||||
"n": 999
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "47",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "30003",
|
||||
"n": 999
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "48",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "30004",
|
||||
"n": 999
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "49",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "30005",
|
||||
"n": 999
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "50",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "10002",
|
||||
"n": 1000
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "51",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "43921",
|
||||
"n": 50
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "52",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "44921",
|
||||
"n": 50
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "53",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "45921",
|
||||
"n": 50
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "54",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "44006",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "55",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "35001",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "56",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "44005",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "57",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "15004",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "59",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "14007",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "60",
|
||||
"var": [
|
||||
@ -488,115 +28,5 @@
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "61",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "24004",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "65",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "34006",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "66",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "24003",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "67",
|
||||
"var": [
|
||||
{
|
||||
"a": "item",
|
||||
"t": "10004",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "68",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "43901",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "69",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "43902",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "70",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "43903",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "71",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "14003",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "72",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "24002",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "73",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "15005",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": "74",
|
||||
"var": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "35003",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
@ -132,7 +132,7 @@
|
||||
"id": "10004",
|
||||
"name": {
|
||||
"key": "itemname_10004",
|
||||
"text": "声波自选箱"
|
||||
"text": "金币自选箱"
|
||||
},
|
||||
"usetype": 4,
|
||||
"color": 4,
|
||||
@ -168,7 +168,7 @@
|
||||
"synthetize_deplete": [],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_10004",
|
||||
"text": "声波自选箱不足"
|
||||
"text": "金币自选箱不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -777,7 +777,7 @@
|
||||
"id": "30001",
|
||||
"name": {
|
||||
"key": "itemname_30001",
|
||||
"text": "普通招募券"
|
||||
"text": "时空石"
|
||||
},
|
||||
"usetype": 3,
|
||||
"color": 5,
|
||||
@ -798,23 +798,23 @@
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10009",
|
||||
"ico": "wp_icon_10009",
|
||||
"ico": "wp_icon_10019",
|
||||
"intr": {
|
||||
"key": "itemdesc_30001",
|
||||
"text": "可以用于普通招募招募英雄"
|
||||
"text": "可以用于招募英雄"
|
||||
},
|
||||
"sale": [],
|
||||
"synthetize_deplete": [],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_30001",
|
||||
"text": "普通招募券不足"
|
||||
"text": "时空石不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "30002",
|
||||
"name": {
|
||||
"key": "itemname_30002",
|
||||
"text": "阵营1招募券"
|
||||
"text": "奥术石"
|
||||
},
|
||||
"usetype": 3,
|
||||
"color": 5,
|
||||
@ -835,23 +835,23 @@
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10010",
|
||||
"ico": "wp_icon_10010",
|
||||
"ico": "wp_icon_10020",
|
||||
"intr": {
|
||||
"key": "itemdesc_30002",
|
||||
"text": "可以用于阵营1招募英雄"
|
||||
"text": "可以用于奥术阵营招募英雄"
|
||||
},
|
||||
"sale": [],
|
||||
"synthetize_deplete": [],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_30002",
|
||||
"text": "阵营1招募券不足"
|
||||
"text": "奥术石不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "30003",
|
||||
"name": {
|
||||
"key": "itemname_30003",
|
||||
"text": "阵营2招募券"
|
||||
"text": "科技石"
|
||||
},
|
||||
"usetype": 3,
|
||||
"color": 5,
|
||||
@ -872,23 +872,23 @@
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10011",
|
||||
"ico": "wp_icon_10011",
|
||||
"ico": "wp_icon_10021",
|
||||
"intr": {
|
||||
"key": "itemdesc_30003",
|
||||
"text": "可以用于阵营2招募英雄"
|
||||
"text": "可以用于科技阵营招募英雄"
|
||||
},
|
||||
"sale": [],
|
||||
"synthetize_deplete": [],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_30003",
|
||||
"text": "阵营2招募券不足"
|
||||
"text": "科技石不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "30004",
|
||||
"name": {
|
||||
"key": "itemname_30004",
|
||||
"text": "阵营3招募券"
|
||||
"text": "自然石"
|
||||
},
|
||||
"usetype": 3,
|
||||
"color": 5,
|
||||
@ -909,23 +909,23 @@
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10012",
|
||||
"ico": "wp_icon_10012",
|
||||
"ico": "wp_icon_10022",
|
||||
"intr": {
|
||||
"key": "itemdesc_30004",
|
||||
"text": "可以用于阵营3招募英雄"
|
||||
"text": "可以用于自然阵营招募英雄"
|
||||
},
|
||||
"sale": [],
|
||||
"synthetize_deplete": [],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_30004",
|
||||
"text": "阵营3招募券不足"
|
||||
"text": "自然石不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "30005",
|
||||
"name": {
|
||||
"key": "itemname_30005",
|
||||
"text": "阵营4招募券"
|
||||
"text": "光耀石"
|
||||
},
|
||||
"usetype": 3,
|
||||
"color": 5,
|
||||
@ -946,23 +946,23 @@
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10013",
|
||||
"ico": "wp_icon_10013",
|
||||
"ico": "wp_icon_10023",
|
||||
"intr": {
|
||||
"key": "itemdesc_30005",
|
||||
"text": "可以用于阵营4招募英雄"
|
||||
"text": "可以用于光耀阵营招募英雄"
|
||||
},
|
||||
"sale": [],
|
||||
"synthetize_deplete": [],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_30005",
|
||||
"text": "阵营4招募券不足"
|
||||
"text": "光耀石不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "50001",
|
||||
"name": {
|
||||
"key": "itemname_50001",
|
||||
"text": "闪耀声波-低级"
|
||||
"text": "奥术美食-低级"
|
||||
},
|
||||
"usetype": 8,
|
||||
"color": 3,
|
||||
@ -971,7 +971,7 @@
|
||||
"special_type": 0,
|
||||
"time": 0,
|
||||
"effects": "",
|
||||
"box_id": 50005,
|
||||
"box_id": 0,
|
||||
"synthetize_num": 5,
|
||||
"access": [
|
||||
109
|
||||
@ -982,11 +982,11 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10013",
|
||||
"ico": "wp_icon_10013",
|
||||
"img": "wp_icon_10031",
|
||||
"ico": "wp_icon_10031",
|
||||
"intr": {
|
||||
"key": "itemdesc_50001",
|
||||
"text": "把它放在背包里会带来好运"
|
||||
"text": "食用后可以提升奥术系英雄的觉醒等级"
|
||||
},
|
||||
"sale": [
|
||||
{
|
||||
@ -1004,14 +1004,14 @@
|
||||
],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_50001",
|
||||
"text": "闪耀声波-低级不足"
|
||||
"text": "奥术美食-低级不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "50002",
|
||||
"name": {
|
||||
"key": "itemname_50002",
|
||||
"text": "灼热声波-低级"
|
||||
"text": "科技美食-低级"
|
||||
},
|
||||
"usetype": 8,
|
||||
"color": 3,
|
||||
@ -1020,7 +1020,7 @@
|
||||
"special_type": 0,
|
||||
"time": 0,
|
||||
"effects": "",
|
||||
"box_id": 50006,
|
||||
"box_id": 0,
|
||||
"synthetize_num": 5,
|
||||
"access": [
|
||||
109
|
||||
@ -1031,11 +1031,11 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10014",
|
||||
"ico": "wp_icon_10014",
|
||||
"img": "wp_icon_10032",
|
||||
"ico": "wp_icon_10032",
|
||||
"intr": {
|
||||
"key": "itemdesc_50002",
|
||||
"text": "你登录了游戏就是冒险家,就会获得这个勋章"
|
||||
"text": "食用后可以提升科技系英雄的觉醒等级"
|
||||
},
|
||||
"sale": [
|
||||
{
|
||||
@ -1053,14 +1053,14 @@
|
||||
],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_50002",
|
||||
"text": "灼热声波-低级不足"
|
||||
"text": "科技美食-低级不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "50003",
|
||||
"name": {
|
||||
"key": "itemname_50003",
|
||||
"text": "呼啸声波-低级"
|
||||
"text": "自然美食-低级"
|
||||
},
|
||||
"usetype": 8,
|
||||
"color": 3,
|
||||
@ -1069,7 +1069,7 @@
|
||||
"special_type": 0,
|
||||
"time": 0,
|
||||
"effects": "",
|
||||
"box_id": 50007,
|
||||
"box_id": 0,
|
||||
"synthetize_num": 5,
|
||||
"access": [
|
||||
109
|
||||
@ -1080,11 +1080,11 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10015",
|
||||
"ico": "wp_icon_10015",
|
||||
"img": "wp_icon_10033",
|
||||
"ico": "wp_icon_10033",
|
||||
"intr": {
|
||||
"key": "itemdesc_50003",
|
||||
"text": "比幸运草更幸运"
|
||||
"text": "食用后可以提升自然系英雄的觉醒等级"
|
||||
},
|
||||
"sale": [
|
||||
{
|
||||
@ -1102,14 +1102,14 @@
|
||||
],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_50003",
|
||||
"text": "呼啸声波-低级不足"
|
||||
"text": "自然美食-低级不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "50004",
|
||||
"name": {
|
||||
"key": "itemname_50004",
|
||||
"text": "涌动声波-低级"
|
||||
"text": "光耀美食-低级"
|
||||
},
|
||||
"usetype": 8,
|
||||
"color": 3,
|
||||
@ -1118,7 +1118,7 @@
|
||||
"special_type": 0,
|
||||
"time": 0,
|
||||
"effects": "",
|
||||
"box_id": 50008,
|
||||
"box_id": 0,
|
||||
"synthetize_num": 5,
|
||||
"access": [
|
||||
109
|
||||
@ -1129,11 +1129,11 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10016",
|
||||
"ico": "wp_icon_10016",
|
||||
"img": "wp_icon_10034",
|
||||
"ico": "wp_icon_10034",
|
||||
"intr": {
|
||||
"key": "itemdesc_50004",
|
||||
"text": "钻石是人造的,所以不能用来买商城的商品"
|
||||
"text": "食用后可以提升光耀系英雄的觉醒等级"
|
||||
},
|
||||
"sale": [
|
||||
{
|
||||
@ -1151,14 +1151,14 @@
|
||||
],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_50004",
|
||||
"text": "涌动声波-低级不足"
|
||||
"text": "光耀美食-低级不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "50005",
|
||||
"name": {
|
||||
"key": "itemname_50005",
|
||||
"text": "闪耀声波-中级"
|
||||
"text": "奥术美食-中级"
|
||||
},
|
||||
"usetype": 8,
|
||||
"color": 4,
|
||||
@ -1167,7 +1167,7 @@
|
||||
"special_type": 0,
|
||||
"time": 0,
|
||||
"effects": "",
|
||||
"box_id": 50009,
|
||||
"box_id": 0,
|
||||
"synthetize_num": 5,
|
||||
"access": [
|
||||
109
|
||||
@ -1178,11 +1178,11 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10013",
|
||||
"ico": "wp_icon_10013",
|
||||
"img": "wp_icon_10031",
|
||||
"ico": "wp_icon_10031",
|
||||
"intr": {
|
||||
"key": "itemdesc_50005",
|
||||
"text": "把它放在背包里会带来好运"
|
||||
"text": "食用后可以提升奥术系英雄的觉醒等级"
|
||||
},
|
||||
"sale": [
|
||||
{
|
||||
@ -1200,14 +1200,14 @@
|
||||
],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_50005",
|
||||
"text": "闪耀声波-中级不足"
|
||||
"text": "奥术美食-中级不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "50006",
|
||||
"name": {
|
||||
"key": "itemname_50006",
|
||||
"text": "灼热声波-中级"
|
||||
"text": "科技美食-中级"
|
||||
},
|
||||
"usetype": 8,
|
||||
"color": 4,
|
||||
@ -1216,7 +1216,7 @@
|
||||
"special_type": 0,
|
||||
"time": 0,
|
||||
"effects": "",
|
||||
"box_id": 50010,
|
||||
"box_id": 0,
|
||||
"synthetize_num": 5,
|
||||
"access": [
|
||||
109
|
||||
@ -1227,11 +1227,11 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10014",
|
||||
"ico": "wp_icon_10014",
|
||||
"img": "wp_icon_10032",
|
||||
"ico": "wp_icon_10032",
|
||||
"intr": {
|
||||
"key": "itemdesc_50006",
|
||||
"text": "你登录了游戏就是冒险家,就会获得这个勋章"
|
||||
"text": "食用后可以提升科技系英雄的觉醒等级"
|
||||
},
|
||||
"sale": [
|
||||
{
|
||||
@ -1249,14 +1249,14 @@
|
||||
],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_50006",
|
||||
"text": "灼热声波-中级不足"
|
||||
"text": "科技美食-中级不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "50007",
|
||||
"name": {
|
||||
"key": "itemname_50007",
|
||||
"text": "呼啸声波-中级"
|
||||
"text": "自然美食-中级"
|
||||
},
|
||||
"usetype": 8,
|
||||
"color": 4,
|
||||
@ -1265,7 +1265,7 @@
|
||||
"special_type": 0,
|
||||
"time": 0,
|
||||
"effects": "",
|
||||
"box_id": 50011,
|
||||
"box_id": 0,
|
||||
"synthetize_num": 5,
|
||||
"access": [
|
||||
109
|
||||
@ -1276,11 +1276,11 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10015",
|
||||
"ico": "wp_icon_10015",
|
||||
"img": "wp_icon_10033",
|
||||
"ico": "wp_icon_10033",
|
||||
"intr": {
|
||||
"key": "itemdesc_50007",
|
||||
"text": "比幸运草更幸运"
|
||||
"text": "食用后可以提升自然系英雄的觉醒等级"
|
||||
},
|
||||
"sale": [
|
||||
{
|
||||
@ -1298,14 +1298,14 @@
|
||||
],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_50007",
|
||||
"text": "呼啸声波-中级不足"
|
||||
"text": "自然美食-中级不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "50008",
|
||||
"name": {
|
||||
"key": "itemname_50008",
|
||||
"text": "涌动声波-中级"
|
||||
"text": "光耀美食-中级"
|
||||
},
|
||||
"usetype": 8,
|
||||
"color": 4,
|
||||
@ -1314,7 +1314,7 @@
|
||||
"special_type": 0,
|
||||
"time": 0,
|
||||
"effects": "",
|
||||
"box_id": 50012,
|
||||
"box_id": 0,
|
||||
"synthetize_num": 5,
|
||||
"access": [
|
||||
109
|
||||
@ -1325,11 +1325,11 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10016",
|
||||
"ico": "wp_icon_10016",
|
||||
"img": "wp_icon_10034",
|
||||
"ico": "wp_icon_10034",
|
||||
"intr": {
|
||||
"key": "itemdesc_50008",
|
||||
"text": "钻石是人造的,所以不能用来买商城的商品"
|
||||
"text": "食用后可以提升光耀系英雄的觉醒等级"
|
||||
},
|
||||
"sale": [
|
||||
{
|
||||
@ -1347,14 +1347,14 @@
|
||||
],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_50008",
|
||||
"text": "涌动声波-中级不足"
|
||||
"text": "光耀美食-中级不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "50009",
|
||||
"name": {
|
||||
"key": "itemname_50009",
|
||||
"text": "闪耀声波-高级"
|
||||
"text": "奥术美食-高级"
|
||||
},
|
||||
"usetype": 8,
|
||||
"color": 5,
|
||||
@ -1374,11 +1374,11 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10013",
|
||||
"ico": "wp_icon_10013",
|
||||
"img": "wp_icon_10031",
|
||||
"ico": "wp_icon_10031",
|
||||
"intr": {
|
||||
"key": "itemdesc_50009",
|
||||
"text": "把它放在背包里会带来好运"
|
||||
"text": "食用后可以提升奥术系英雄的觉醒等级"
|
||||
},
|
||||
"sale": [
|
||||
{
|
||||
@ -1390,14 +1390,14 @@
|
||||
"synthetize_deplete": [],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_50009",
|
||||
"text": "闪耀声波-高级不足"
|
||||
"text": "奥术美食-高级不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "50010",
|
||||
"name": {
|
||||
"key": "itemname_50010",
|
||||
"text": "灼热声波-高级"
|
||||
"text": "科技美食-高级"
|
||||
},
|
||||
"usetype": 8,
|
||||
"color": 5,
|
||||
@ -1417,11 +1417,11 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10014",
|
||||
"ico": "wp_icon_10014",
|
||||
"img": "wp_icon_10032",
|
||||
"ico": "wp_icon_10032",
|
||||
"intr": {
|
||||
"key": "itemdesc_50010",
|
||||
"text": "你登录了游戏就是冒险家,就会获得这个勋章"
|
||||
"text": "食用后可以提升科技系英雄的觉醒等级"
|
||||
},
|
||||
"sale": [
|
||||
{
|
||||
@ -1433,14 +1433,14 @@
|
||||
"synthetize_deplete": [],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_50010",
|
||||
"text": "灼热声波-高级不足"
|
||||
"text": "科技美食-高级不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "50011",
|
||||
"name": {
|
||||
"key": "itemname_50011",
|
||||
"text": "呼啸声波-高级"
|
||||
"text": "自然美食-高级"
|
||||
},
|
||||
"usetype": 8,
|
||||
"color": 5,
|
||||
@ -1460,11 +1460,11 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10015",
|
||||
"ico": "wp_icon_10015",
|
||||
"img": "wp_icon_10033",
|
||||
"ico": "wp_icon_10033",
|
||||
"intr": {
|
||||
"key": "itemdesc_50011",
|
||||
"text": "比幸运草更幸运"
|
||||
"text": "食用后可以提升自然系英雄的觉醒等级"
|
||||
},
|
||||
"sale": [
|
||||
{
|
||||
@ -1476,14 +1476,14 @@
|
||||
"synthetize_deplete": [],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_50011",
|
||||
"text": "呼啸声波-高级不足"
|
||||
"text": "自然美食-高级不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "50012",
|
||||
"name": {
|
||||
"key": "itemname_50012",
|
||||
"text": "涌动声波-高级"
|
||||
"text": "光耀美食-高级"
|
||||
},
|
||||
"usetype": 8,
|
||||
"color": 5,
|
||||
@ -1503,11 +1503,11 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10016",
|
||||
"ico": "wp_icon_10016",
|
||||
"img": "wp_icon_10034",
|
||||
"ico": "wp_icon_10034",
|
||||
"intr": {
|
||||
"key": "itemdesc_50012",
|
||||
"text": "钻石是人造的,所以不能用来买商城的商品"
|
||||
"text": "食用后可以提升光耀系英雄的觉醒等级"
|
||||
},
|
||||
"sale": [
|
||||
{
|
||||
@ -1519,7 +1519,7 @@
|
||||
"synthetize_deplete": [],
|
||||
"tipstxt": {
|
||||
"key": "itemtipstxt_50012",
|
||||
"text": "涌动声波-高级不足"
|
||||
"text": "光耀美食-高级不足"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -1546,8 +1546,8 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10009",
|
||||
"ico": "wp_icon_10009",
|
||||
"img": "wp_icon_10029",
|
||||
"ico": "wp_icon_10029",
|
||||
"intr": {
|
||||
"key": "itemdesc_60001",
|
||||
"text": "可以任选一件5星装备"
|
||||
@ -1583,8 +1583,8 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10009",
|
||||
"ico": "wp_icon_10009",
|
||||
"img": "wp_icon_10029",
|
||||
"ico": "wp_icon_10029",
|
||||
"intr": {
|
||||
"key": "itemdesc_60002",
|
||||
"text": "可以随机获得一件5星装备"
|
||||
@ -1620,8 +1620,8 @@
|
||||
"isani": 0,
|
||||
"star": 0,
|
||||
"race": 0,
|
||||
"img": "wp_icon_10009",
|
||||
"ico": "wp_icon_10009",
|
||||
"img": "wp_icon_10030",
|
||||
"ico": "wp_icon_10030",
|
||||
"intr": {
|
||||
"key": "itemdesc_60003",
|
||||
"text": "可以获得一套5星装备"
|
||||
|
File diff suppressed because it is too large
Load Diff
1388
bin/json/game_namelibrary.json
Normal file
1388
bin/json/game_namelibrary.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -37,7 +37,7 @@
|
||||
"id": "shop",
|
||||
"name": {
|
||||
"key": "opencond_name_10003",
|
||||
"text": "商店"
|
||||
"text": "购物"
|
||||
},
|
||||
"main": 1,
|
||||
"optional": "",
|
||||
@ -67,6 +67,57 @@
|
||||
},
|
||||
"uiid": 0
|
||||
},
|
||||
{
|
||||
"id": "mall",
|
||||
"name": {
|
||||
"key": "opencond_name_10003",
|
||||
"text": "商城"
|
||||
},
|
||||
"main": 999,
|
||||
"optional": "",
|
||||
"wkqbx": 2,
|
||||
"kqbx": 0,
|
||||
"img": "zc_icon_01",
|
||||
"prompt": {
|
||||
"key": "opencond_prompt_mall",
|
||||
"text": "功能暂未开启"
|
||||
},
|
||||
"uiid": 0
|
||||
},
|
||||
{
|
||||
"id": "rdtask",
|
||||
"name": {
|
||||
"key": "opencond_name_10003",
|
||||
"text": "随机任务总览"
|
||||
},
|
||||
"main": 1,
|
||||
"optional": "",
|
||||
"wkqbx": 0,
|
||||
"kqbx": 0,
|
||||
"img": "zc_icon_01",
|
||||
"prompt": {
|
||||
"key": "opencond_prompt_rdtask",
|
||||
"text": "功能暂未开启"
|
||||
},
|
||||
"uiid": 0
|
||||
},
|
||||
{
|
||||
"id": "currency",
|
||||
"name": {
|
||||
"key": "opencond_name_10003",
|
||||
"text": "货币栏"
|
||||
},
|
||||
"main": 999,
|
||||
"optional": "",
|
||||
"wkqbx": 2,
|
||||
"kqbx": 0,
|
||||
"img": "zc_icon_01",
|
||||
"prompt": {
|
||||
"key": "opencond_prompt_currency",
|
||||
"text": "功能暂未开启"
|
||||
},
|
||||
"uiid": 0
|
||||
},
|
||||
{
|
||||
"id": "alliance",
|
||||
"name": {
|
||||
|
@ -4,7 +4,7 @@
|
||||
"group": 1,
|
||||
"subgroup": 0,
|
||||
"type": 2,
|
||||
"preTid": 0,
|
||||
"preTid": 100104,
|
||||
"condition": [
|
||||
104
|
||||
],
|
||||
@ -79,6 +79,19 @@
|
||||
1008
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 100200,
|
||||
"group": 3,
|
||||
"subgroup": 0,
|
||||
"type": 2,
|
||||
"preTid": 100104,
|
||||
"condition": [
|
||||
0
|
||||
],
|
||||
"sidequest": [
|
||||
2035
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 100201,
|
||||
"group": 2,
|
||||
@ -212,9 +225,9 @@
|
||||
0
|
||||
],
|
||||
"sidequest": [
|
||||
2016,
|
||||
2017,
|
||||
2018
|
||||
2036,
|
||||
2037,
|
||||
2038
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -227,7 +240,9 @@
|
||||
0
|
||||
],
|
||||
"sidequest": [
|
||||
2019
|
||||
2016,
|
||||
2017,
|
||||
2018
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -240,7 +255,7 @@
|
||||
0
|
||||
],
|
||||
"sidequest": [
|
||||
2020
|
||||
2019
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -253,9 +268,7 @@
|
||||
0
|
||||
],
|
||||
"sidequest": [
|
||||
2021,
|
||||
2022,
|
||||
2023
|
||||
2020
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -268,9 +281,9 @@
|
||||
0
|
||||
],
|
||||
"sidequest": [
|
||||
2024,
|
||||
2025,
|
||||
2026
|
||||
2021,
|
||||
2022,
|
||||
2023
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -283,9 +296,9 @@
|
||||
0
|
||||
],
|
||||
"sidequest": [
|
||||
2027,
|
||||
2028,
|
||||
2029
|
||||
2024,
|
||||
2025,
|
||||
2026
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -297,6 +310,21 @@
|
||||
"condition": [
|
||||
0
|
||||
],
|
||||
"sidequest": [
|
||||
2027,
|
||||
2028,
|
||||
2029
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 100217,
|
||||
"group": 2,
|
||||
"subgroup": 0,
|
||||
"type": 2,
|
||||
"preTid": 100216,
|
||||
"condition": [
|
||||
0
|
||||
],
|
||||
"sidequest": [
|
||||
2030,
|
||||
2031,
|
||||
|
@ -217,7 +217,7 @@
|
||||
"needItem": [
|
||||
0
|
||||
],
|
||||
"nextTid": 100211
|
||||
"nextTid": 100212
|
||||
},
|
||||
{
|
||||
"id": 200011,
|
||||
@ -227,7 +227,7 @@
|
||||
"needItem": [
|
||||
0
|
||||
],
|
||||
"nextTid": 100213
|
||||
"nextTid": 100214
|
||||
},
|
||||
{
|
||||
"id": 200012,
|
||||
@ -287,7 +287,7 @@
|
||||
"needItem": [
|
||||
0
|
||||
],
|
||||
"nextTid": 100212
|
||||
"nextTid": 100213
|
||||
},
|
||||
{
|
||||
"id": 200018,
|
||||
@ -297,7 +297,7 @@
|
||||
"needItem": [
|
||||
0
|
||||
],
|
||||
"nextTid": 100213
|
||||
"nextTid": 100214
|
||||
},
|
||||
{
|
||||
"id": 200019,
|
||||
@ -307,7 +307,7 @@
|
||||
"needItem": [
|
||||
0
|
||||
],
|
||||
"nextTid": 100215
|
||||
"nextTid": 100216
|
||||
},
|
||||
{
|
||||
"id": 200020,
|
||||
@ -327,6 +327,26 @@
|
||||
"needItem": [
|
||||
0
|
||||
],
|
||||
"nextTid": 100216
|
||||
"nextTid": 100217
|
||||
},
|
||||
{
|
||||
"id": 200022,
|
||||
"num": 1,
|
||||
"preTid": 0,
|
||||
"gotoLevel": 0,
|
||||
"needItem": [
|
||||
0
|
||||
],
|
||||
"nextTid": -1
|
||||
},
|
||||
{
|
||||
"id": 200023,
|
||||
"num": 1,
|
||||
"preTid": 0,
|
||||
"gotoLevel": 0,
|
||||
"needItem": [
|
||||
0
|
||||
],
|
||||
"nextTid": 100211
|
||||
}
|
||||
]
|
@ -37,8 +37,8 @@
|
||||
"datatype": 2,
|
||||
"type": 4,
|
||||
"inited": [],
|
||||
"data1": 25001,
|
||||
"data2": 20,
|
||||
"data1": 25004,
|
||||
"data2": 10,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
@ -554,8 +554,8 @@
|
||||
"type": 46,
|
||||
"inited": [],
|
||||
"data1": 1,
|
||||
"data2": 1,
|
||||
"data3": 1,
|
||||
"data2": 6,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
@ -718,7 +718,7 @@
|
||||
"datatype": 2,
|
||||
"type": 61,
|
||||
"inited": [],
|
||||
"data1": 101,
|
||||
"data1": 109,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
@ -828,7 +828,799 @@
|
||||
"datatype": 2,
|
||||
"type": 70,
|
||||
"inited": [],
|
||||
"data1": 101,
|
||||
"data1": 109,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10001,
|
||||
"datatype": 2,
|
||||
"type": 24,
|
||||
"inited": [],
|
||||
"data1": 1,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10002,
|
||||
"datatype": 2,
|
||||
"type": 24,
|
||||
"inited": [],
|
||||
"data1": 5,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10003,
|
||||
"datatype": 2,
|
||||
"type": 24,
|
||||
"inited": [],
|
||||
"data1": 10,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10004,
|
||||
"datatype": 2,
|
||||
"type": 24,
|
||||
"inited": [],
|
||||
"data1": 20,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10005,
|
||||
"datatype": 2,
|
||||
"type": 24,
|
||||
"inited": [],
|
||||
"data1": 50,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10006,
|
||||
"datatype": 2,
|
||||
"type": 24,
|
||||
"inited": [],
|
||||
"data1": 100,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10007,
|
||||
"datatype": 2,
|
||||
"type": 24,
|
||||
"inited": [],
|
||||
"data1": 200,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10008,
|
||||
"datatype": 2,
|
||||
"type": 24,
|
||||
"inited": [],
|
||||
"data1": 300,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10009,
|
||||
"datatype": 2,
|
||||
"type": 24,
|
||||
"inited": [],
|
||||
"data1": 500,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10010,
|
||||
"datatype": 2,
|
||||
"type": 24,
|
||||
"inited": [],
|
||||
"data1": 1000,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10101,
|
||||
"datatype": 2,
|
||||
"type": 7,
|
||||
"inited": [],
|
||||
"data1": 1,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10201,
|
||||
"datatype": 2,
|
||||
"type": 18,
|
||||
"inited": [],
|
||||
"data1": 1,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10202,
|
||||
"datatype": 2,
|
||||
"type": 18,
|
||||
"inited": [],
|
||||
"data1": 5,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10203,
|
||||
"datatype": 2,
|
||||
"type": 18,
|
||||
"inited": [],
|
||||
"data1": 10,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10204,
|
||||
"datatype": 2,
|
||||
"type": 18,
|
||||
"inited": [],
|
||||
"data1": 20,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10205,
|
||||
"datatype": 2,
|
||||
"type": 18,
|
||||
"inited": [],
|
||||
"data1": 50,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10206,
|
||||
"datatype": 2,
|
||||
"type": 18,
|
||||
"inited": [],
|
||||
"data1": 100,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10207,
|
||||
"datatype": 2,
|
||||
"type": 18,
|
||||
"inited": [],
|
||||
"data1": 200,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10208,
|
||||
"datatype": 2,
|
||||
"type": 18,
|
||||
"inited": [],
|
||||
"data1": 300,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10209,
|
||||
"datatype": 2,
|
||||
"type": 18,
|
||||
"inited": [],
|
||||
"data1": 500,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10210,
|
||||
"datatype": 2,
|
||||
"type": 18,
|
||||
"inited": [],
|
||||
"data1": 1000,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10301,
|
||||
"datatype": 2,
|
||||
"type": 18,
|
||||
"inited": [],
|
||||
"data1": 1,
|
||||
"data2": 5,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10302,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 5,
|
||||
"data2": 5,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10303,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 10,
|
||||
"data2": 5,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10304,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 20,
|
||||
"data2": 5,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10305,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 50,
|
||||
"data2": 5,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10306,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 100,
|
||||
"data2": 5,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10307,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 200,
|
||||
"data2": 5,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10308,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 300,
|
||||
"data2": 5,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10309,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 500,
|
||||
"data2": 5,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10310,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 1000,
|
||||
"data2": 5,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10401,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 1,
|
||||
"data2": 6,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10402,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 5,
|
||||
"data2": 6,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10403,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 10,
|
||||
"data2": 6,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10404,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 20,
|
||||
"data2": 6,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10405,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 50,
|
||||
"data2": 6,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10406,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 100,
|
||||
"data2": 6,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10407,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 200,
|
||||
"data2": 6,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10408,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 300,
|
||||
"data2": 6,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10409,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 500,
|
||||
"data2": 6,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10410,
|
||||
"datatype": 2,
|
||||
"type": 50,
|
||||
"inited": [],
|
||||
"data1": 1000,
|
||||
"data2": 6,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10501,
|
||||
"datatype": 2,
|
||||
"type": 58,
|
||||
"inited": [],
|
||||
"data1": 1,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10502,
|
||||
"datatype": 2,
|
||||
"type": 58,
|
||||
"inited": [],
|
||||
"data1": 5,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10503,
|
||||
"datatype": 2,
|
||||
"type": 58,
|
||||
"inited": [],
|
||||
"data1": 10,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10504,
|
||||
"datatype": 2,
|
||||
"type": 58,
|
||||
"inited": [],
|
||||
"data1": 20,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10505,
|
||||
"datatype": 2,
|
||||
"type": 58,
|
||||
"inited": [],
|
||||
"data1": 30,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10506,
|
||||
"datatype": 2,
|
||||
"type": 58,
|
||||
"inited": [],
|
||||
"data1": 50,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10507,
|
||||
"datatype": 2,
|
||||
"type": 58,
|
||||
"inited": [],
|
||||
"data1": 70,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10508,
|
||||
"datatype": 2,
|
||||
"type": 58,
|
||||
"inited": [],
|
||||
"data1": 100,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10601,
|
||||
"datatype": 2,
|
||||
"type": 62,
|
||||
"inited": [],
|
||||
"data1": 1,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10602,
|
||||
"datatype": 2,
|
||||
"type": 62,
|
||||
"inited": [],
|
||||
"data1": 5,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10603,
|
||||
"datatype": 2,
|
||||
"type": 62,
|
||||
"inited": [],
|
||||
"data1": 99,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10701,
|
||||
"datatype": 2,
|
||||
"type": 64,
|
||||
"inited": [],
|
||||
"data1": 1,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10702,
|
||||
"datatype": 2,
|
||||
"type": 64,
|
||||
"inited": [],
|
||||
"data1": 5,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10703,
|
||||
"datatype": 2,
|
||||
"type": 64,
|
||||
"inited": [],
|
||||
"data1": 10,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10704,
|
||||
"datatype": 2,
|
||||
"type": 64,
|
||||
"inited": [],
|
||||
"data1": 20,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10705,
|
||||
"datatype": 2,
|
||||
"type": 64,
|
||||
"inited": [],
|
||||
"data1": 50,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10706,
|
||||
"datatype": 2,
|
||||
"type": 64,
|
||||
"inited": [],
|
||||
"data1": 100,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10707,
|
||||
"datatype": 2,
|
||||
"type": 64,
|
||||
"inited": [],
|
||||
"data1": 200,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10708,
|
||||
"datatype": 2,
|
||||
"type": 64,
|
||||
"inited": [],
|
||||
"data1": 300,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10709,
|
||||
"datatype": 2,
|
||||
"type": 64,
|
||||
"inited": [],
|
||||
"data1": 500,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10710,
|
||||
"datatype": 2,
|
||||
"type": 64,
|
||||
"inited": [],
|
||||
"data1": 1000,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10801,
|
||||
"datatype": 2,
|
||||
"type": 8,
|
||||
"inited": [],
|
||||
"data1": 1,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10802,
|
||||
"datatype": 2,
|
||||
"type": 8,
|
||||
"inited": [],
|
||||
"data1": 5,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10803,
|
||||
"datatype": 2,
|
||||
"type": 8,
|
||||
"inited": [],
|
||||
"data1": 10,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10804,
|
||||
"datatype": 2,
|
||||
"type": 8,
|
||||
"inited": [],
|
||||
"data1": 20,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10805,
|
||||
"datatype": 2,
|
||||
"type": 8,
|
||||
"inited": [],
|
||||
"data1": 50,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10806,
|
||||
"datatype": 2,
|
||||
"type": 8,
|
||||
"inited": [],
|
||||
"data1": 100,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10807,
|
||||
"datatype": 2,
|
||||
"type": 8,
|
||||
"inited": [],
|
||||
"data1": 200,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10808,
|
||||
"datatype": 2,
|
||||
"type": 8,
|
||||
"inited": [],
|
||||
"data1": 300,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10809,
|
||||
"datatype": 2,
|
||||
"type": 8,
|
||||
"inited": [],
|
||||
"data1": 500,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
"data5": 0
|
||||
},
|
||||
{
|
||||
"id": 10810,
|
||||
"datatype": 2,
|
||||
"type": 8,
|
||||
"inited": [],
|
||||
"data1": 1000,
|
||||
"data2": 0,
|
||||
"data3": 0,
|
||||
"data4": 0,
|
||||
|
@ -471,7 +471,7 @@
|
||||
20004
|
||||
],
|
||||
"endTid": [
|
||||
171
|
||||
-1
|
||||
],
|
||||
"storyEnd": 0,
|
||||
"reward": [
|
||||
@ -569,7 +569,7 @@
|
||||
"EntityInteractive": [
|
||||
false
|
||||
],
|
||||
"modelaction": "",
|
||||
"modelaction": "Enter",
|
||||
"rotation": {
|
||||
"x": 0,
|
||||
"y": -90,
|
||||
@ -588,7 +588,7 @@
|
||||
"endTid": [
|
||||
-1
|
||||
],
|
||||
"storyEnd": 311,
|
||||
"storyEnd": 0,
|
||||
"reward": [
|
||||
{
|
||||
"ChooseId": 20008,
|
||||
@ -693,7 +693,7 @@
|
||||
200015
|
||||
],
|
||||
"endTid": [
|
||||
-1
|
||||
118
|
||||
],
|
||||
"storyEnd": 0,
|
||||
"reward": [],
|
||||
@ -758,12 +758,11 @@
|
||||
200015
|
||||
],
|
||||
"endTid": [
|
||||
152,
|
||||
146
|
||||
104
|
||||
],
|
||||
"storyEnd": 317,
|
||||
"reward": [],
|
||||
"nextTid": 100210,
|
||||
"nextTid": 100211,
|
||||
"CD": 0
|
||||
},
|
||||
{
|
||||
@ -863,13 +862,13 @@
|
||||
"Reward": [
|
||||
{
|
||||
"a": "hero",
|
||||
"t": "45921",
|
||||
"n": 1
|
||||
"t": "43901",
|
||||
"n": 5
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"nextTid": 100211,
|
||||
"nextTid": 100212,
|
||||
"CD": 0
|
||||
},
|
||||
{
|
||||
@ -962,9 +961,9 @@
|
||||
"endTid": [
|
||||
158
|
||||
],
|
||||
"storyEnd": 322,
|
||||
"storyEnd": 0,
|
||||
"reward": [],
|
||||
"nextTid": 100212,
|
||||
"nextTid": 100213,
|
||||
"CD": 0
|
||||
},
|
||||
{
|
||||
@ -997,7 +996,7 @@
|
||||
],
|
||||
"storyEnd": 322,
|
||||
"reward": [],
|
||||
"nextTid": 100213,
|
||||
"nextTid": 100214,
|
||||
"CD": 0
|
||||
},
|
||||
{
|
||||
@ -1045,7 +1044,7 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"nextTid": 100214,
|
||||
"nextTid": 100215,
|
||||
"CD": 0
|
||||
},
|
||||
{
|
||||
@ -1141,7 +1140,7 @@
|
||||
],
|
||||
"storyEnd": 0,
|
||||
"reward": [],
|
||||
"nextTid": 100215,
|
||||
"nextTid": 100216,
|
||||
"CD": 0
|
||||
},
|
||||
{
|
||||
@ -1228,12 +1227,9 @@
|
||||
"enableAi": false,
|
||||
"boxreplace": "",
|
||||
"timeline": "",
|
||||
"chooseId": [
|
||||
200021,
|
||||
200020
|
||||
],
|
||||
"chooseId": [],
|
||||
"endTid": [
|
||||
106
|
||||
-1
|
||||
],
|
||||
"storyEnd": 0,
|
||||
"reward": [],
|
||||
@ -1293,13 +1289,16 @@
|
||||
"enableAi": false,
|
||||
"boxreplace": "",
|
||||
"timeline": "",
|
||||
"chooseId": [],
|
||||
"chooseId": [
|
||||
200021,
|
||||
200020
|
||||
],
|
||||
"endTid": [
|
||||
-1
|
||||
106
|
||||
],
|
||||
"storyEnd": 329,
|
||||
"reward": [],
|
||||
"nextTid": 100216,
|
||||
"nextTid": 100217,
|
||||
"CD": 0
|
||||
},
|
||||
{
|
||||
@ -1438,7 +1437,7 @@
|
||||
"EntityChange": [],
|
||||
"EntityStateChange": [],
|
||||
"EntityInteractive": [],
|
||||
"modelaction": "Enter",
|
||||
"modelaction": "",
|
||||
"rotation": {
|
||||
"x": 0,
|
||||
"y": -90,
|
||||
@ -1458,5 +1457,134 @@
|
||||
"reward": [],
|
||||
"nextTid": 100207,
|
||||
"CD": 0
|
||||
},
|
||||
{
|
||||
"id": 2035,
|
||||
"objType": 1,
|
||||
"location": "middle",
|
||||
"point": "model_07",
|
||||
"storyBegin": 999,
|
||||
"Entity": [],
|
||||
"EntityChange": [],
|
||||
"EntityStateChange": [],
|
||||
"EntityInteractive": [],
|
||||
"modelaction": "Enter",
|
||||
"rotation": {
|
||||
"x": 0,
|
||||
"y": -180,
|
||||
"z": 0
|
||||
},
|
||||
"modelstate": 0,
|
||||
"popup": "",
|
||||
"special": "",
|
||||
"enableAi": false,
|
||||
"boxreplace": "",
|
||||
"timeline": "",
|
||||
"chooseId": [
|
||||
200022
|
||||
],
|
||||
"endTid": [
|
||||
-1
|
||||
],
|
||||
"storyEnd": 0,
|
||||
"reward": [],
|
||||
"nextTid": 0,
|
||||
"CD": 0
|
||||
},
|
||||
{
|
||||
"id": 2036,
|
||||
"objType": 1,
|
||||
"location": "middle",
|
||||
"point": "model_07",
|
||||
"storyBegin": 338,
|
||||
"Entity": [],
|
||||
"EntityChange": [],
|
||||
"EntityStateChange": [],
|
||||
"EntityInteractive": [],
|
||||
"modelaction": "",
|
||||
"rotation": {
|
||||
"x": 0,
|
||||
"y": -180,
|
||||
"z": 0
|
||||
},
|
||||
"modelstate": 0,
|
||||
"popup": "",
|
||||
"special": "",
|
||||
"enableAi": false,
|
||||
"boxreplace": "",
|
||||
"timeline": "",
|
||||
"chooseId": [
|
||||
200023,
|
||||
200015
|
||||
],
|
||||
"endTid": [
|
||||
146
|
||||
],
|
||||
"storyEnd": 0,
|
||||
"reward": [],
|
||||
"nextTid": 0,
|
||||
"CD": 0
|
||||
},
|
||||
{
|
||||
"id": 2037,
|
||||
"objType": 1,
|
||||
"location": "middle",
|
||||
"point": "model_02",
|
||||
"storyBegin": 339,
|
||||
"Entity": [],
|
||||
"EntityChange": [],
|
||||
"EntityStateChange": [],
|
||||
"EntityInteractive": [],
|
||||
"modelaction": "",
|
||||
"rotation": {
|
||||
"x": 0,
|
||||
"y": -90,
|
||||
"z": 0
|
||||
},
|
||||
"modelstate": 0,
|
||||
"popup": "",
|
||||
"special": "",
|
||||
"enableAi": false,
|
||||
"boxreplace": "",
|
||||
"timeline": "",
|
||||
"chooseId": [],
|
||||
"endTid": [
|
||||
-1
|
||||
],
|
||||
"storyEnd": 0,
|
||||
"reward": [],
|
||||
"nextTid": -1,
|
||||
"CD": 0
|
||||
},
|
||||
{
|
||||
"id": 2038,
|
||||
"objType": 1,
|
||||
"location": "middle",
|
||||
"point": "model_03",
|
||||
"storyBegin": 340,
|
||||
"Entity": [],
|
||||
"EntityChange": [],
|
||||
"EntityStateChange": [],
|
||||
"EntityInteractive": [],
|
||||
"modelaction": "",
|
||||
"rotation": {
|
||||
"x": 0,
|
||||
"y": 90,
|
||||
"z": 0
|
||||
},
|
||||
"modelstate": 0,
|
||||
"popup": "",
|
||||
"special": "",
|
||||
"enableAi": false,
|
||||
"boxreplace": "",
|
||||
"timeline": "",
|
||||
"chooseId": [],
|
||||
"endTid": [
|
||||
-1
|
||||
],
|
||||
"storyEnd": 0,
|
||||
"reward": [],
|
||||
"nextTid": -1,
|
||||
"CD": 0
|
||||
}
|
||||
]
|
@ -29,13 +29,18 @@
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "diamond",
|
||||
"n": 20
|
||||
"n": 50
|
||||
}
|
||||
],
|
||||
"shopitem": [
|
||||
10001,
|
||||
10002,
|
||||
10003
|
||||
10001,
|
||||
10001,
|
||||
10001,
|
||||
10001,
|
||||
10001,
|
||||
10001,
|
||||
10001
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -43,7 +48,7 @@
|
||||
"tab": 2,
|
||||
"shopname": {
|
||||
"key": "shop_2",
|
||||
"text": "钻石商店"
|
||||
"text": "友情商店"
|
||||
},
|
||||
"upper_shop": {
|
||||
"key": "",
|
||||
@ -52,7 +57,7 @@
|
||||
"needshow": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "gold",
|
||||
"t": "friend",
|
||||
"n": 1
|
||||
},
|
||||
{
|
||||
@ -63,27 +68,10 @@
|
||||
],
|
||||
"rtype": 2,
|
||||
"rtime": 1,
|
||||
"rnum": 5,
|
||||
"rneed": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "diamond",
|
||||
"n": 20
|
||||
}
|
||||
],
|
||||
"rnum": -1,
|
||||
"rneed": [],
|
||||
"shopitem": [
|
||||
20001,
|
||||
20002,
|
||||
20003,
|
||||
20004,
|
||||
20005,
|
||||
20006,
|
||||
20007,
|
||||
20008,
|
||||
20009,
|
||||
20010,
|
||||
20011,
|
||||
20012
|
||||
20001
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -114,7 +102,9 @@
|
||||
"rnum": -1,
|
||||
"rneed": [],
|
||||
"shopitem": [
|
||||
10005
|
||||
30001,
|
||||
30002,
|
||||
30003
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -145,39 +135,8 @@
|
||||
"rnum": -1,
|
||||
"rneed": [],
|
||||
"shopitem": [
|
||||
10006
|
||||
]
|
||||
},
|
||||
{
|
||||
"shopid": 5,
|
||||
"tab": 5,
|
||||
"shopname": {
|
||||
"key": "shop_5",
|
||||
"text": "联盟商店"
|
||||
},
|
||||
"upper_shop": {
|
||||
"key": "shop_title1",
|
||||
"text": "玩法商店"
|
||||
},
|
||||
"needshow": [
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "gold",
|
||||
"n": 1
|
||||
},
|
||||
{
|
||||
"a": "attr",
|
||||
"t": "diamond",
|
||||
"n": 1
|
||||
}
|
||||
],
|
||||
"rtype": 2,
|
||||
"rtime": 14,
|
||||
"rnum": -1,
|
||||
"rneed": [],
|
||||
"shopitem": [
|
||||
10007,
|
||||
10008
|
||||
40001,
|
||||
40002
|
||||
]
|
||||
}
|
||||
]
|
File diff suppressed because it is too large
Load Diff
@ -2692,10 +2692,10 @@
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
300,
|
||||
150,
|
||||
1,
|
||||
5,
|
||||
500
|
||||
250
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [
|
||||
@ -2736,10 +2736,10 @@
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
300,
|
||||
150,
|
||||
1,
|
||||
5,
|
||||
600
|
||||
300
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [
|
||||
@ -2780,10 +2780,10 @@
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
300,
|
||||
150,
|
||||
1,
|
||||
5,
|
||||
600
|
||||
300
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [
|
||||
@ -2824,10 +2824,10 @@
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
300,
|
||||
150,
|
||||
1,
|
||||
5,
|
||||
700
|
||||
350
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [
|
||||
@ -2868,10 +2868,10 @@
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
300,
|
||||
150,
|
||||
1,
|
||||
5,
|
||||
700
|
||||
350
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [
|
||||
@ -3492,10 +3492,10 @@
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
800,
|
||||
400,
|
||||
1,
|
||||
5,
|
||||
1000
|
||||
500
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [],
|
||||
@ -3554,10 +3554,10 @@
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
800,
|
||||
400,
|
||||
1,
|
||||
5,
|
||||
1100
|
||||
550
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [],
|
||||
@ -3576,10 +3576,10 @@
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
800,
|
||||
400,
|
||||
1,
|
||||
5,
|
||||
1200
|
||||
600
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [],
|
||||
@ -3598,10 +3598,10 @@
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
800,
|
||||
400,
|
||||
1,
|
||||
5,
|
||||
1400
|
||||
700
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [],
|
||||
@ -9176,10 +9176,10 @@
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"ExecuteCnt": 3,
|
||||
"Type": 1,
|
||||
"Argu": [
|
||||
3,
|
||||
1,
|
||||
4,
|
||||
500
|
||||
],
|
||||
@ -9214,10 +9214,10 @@
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"ExecuteCnt": 3,
|
||||
"Type": 1,
|
||||
"Argu": [
|
||||
3,
|
||||
1,
|
||||
4,
|
||||
550
|
||||
],
|
||||
@ -9252,10 +9252,10 @@
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"ExecuteCnt": 3,
|
||||
"Type": 1,
|
||||
"Argu": [
|
||||
3,
|
||||
1,
|
||||
4,
|
||||
550
|
||||
],
|
||||
@ -9290,10 +9290,10 @@
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"ExecuteCnt": 3,
|
||||
"Type": 1,
|
||||
"Argu": [
|
||||
3,
|
||||
1,
|
||||
4,
|
||||
600
|
||||
],
|
||||
@ -9891,5 +9891,281 @@
|
||||
"SucFollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251002111,
|
||||
"EmitPR": 1000,
|
||||
"From": 4,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"Type": 1,
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
1000
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251002211,
|
||||
"EmitPR": 1000,
|
||||
"From": 4,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"Type": 1,
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
1200
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [
|
||||
251002212
|
||||
],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251002212,
|
||||
"EmitPR": 1000,
|
||||
"From": 4,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"Type": 3,
|
||||
"Argu": [
|
||||
390001007,
|
||||
500,
|
||||
2,
|
||||
1
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251003111,
|
||||
"EmitPR": 1000,
|
||||
"From": 4,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"Type": 1,
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
1000
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251003211,
|
||||
"EmitPR": 1000,
|
||||
"From": 4,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"Type": 1,
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
1200
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [
|
||||
251003212
|
||||
],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251003212,
|
||||
"EmitPR": 1000,
|
||||
"From": 4,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"Type": 3,
|
||||
"Argu": [
|
||||
390001105,
|
||||
250,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251004111,
|
||||
"EmitPR": 1000,
|
||||
"From": 4,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 2,
|
||||
"Type": 1,
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
500
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [
|
||||
251005112
|
||||
],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251004112,
|
||||
"EmitPR": 1000,
|
||||
"From": 4,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"Type": 3,
|
||||
"Argu": [
|
||||
390001007,
|
||||
200,
|
||||
1
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251004211,
|
||||
"EmitPR": 1000,
|
||||
"From": 4,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"Type": 1,
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
1800
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [
|
||||
251005212
|
||||
],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251004212,
|
||||
"EmitPR": 1000,
|
||||
"From": 4,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"Type": 3,
|
||||
"Argu": [
|
||||
390001006,
|
||||
200,
|
||||
2
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251005111,
|
||||
"EmitPR": 1000,
|
||||
"From": 4,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 2,
|
||||
"Type": 1,
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
500
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [
|
||||
251005112
|
||||
],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251005112,
|
||||
"EmitPR": 200,
|
||||
"From": 4,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"Type": 11,
|
||||
"Argu": [
|
||||
-200
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251005211,
|
||||
"EmitPR": 1000,
|
||||
"From": 2,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 10,
|
||||
"ExecuteCnt": 2,
|
||||
"Type": 1,
|
||||
"Argu": [
|
||||
1,
|
||||
4,
|
||||
500
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [
|
||||
251005212
|
||||
],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
},
|
||||
{
|
||||
"Id": 251005212,
|
||||
"EmitPR": 1000,
|
||||
"From": 4,
|
||||
"Where": "",
|
||||
"Order": "",
|
||||
"Limit": 1,
|
||||
"ExecuteCnt": 1,
|
||||
"Type": 11,
|
||||
"Argu": [
|
||||
-100
|
||||
],
|
||||
"FollowSK": [],
|
||||
"SucFollowSK": [],
|
||||
"FailFollowSK": [],
|
||||
"MustHit": false
|
||||
}
|
||||
]
|
@ -6963,5 +6963,205 @@
|
||||
},
|
||||
"buffid": [],
|
||||
"map": ""
|
||||
},
|
||||
{
|
||||
"id": 151002111,
|
||||
"level": 1,
|
||||
"MaxLV": 1,
|
||||
"Name": {
|
||||
"key": "skillname_151002111",
|
||||
"text": "盾击"
|
||||
},
|
||||
"ico": "jn_icon_046",
|
||||
"act": "Skill_1",
|
||||
"Type": 1,
|
||||
"CD": 1,
|
||||
"Target": 2,
|
||||
"ChildSkill": {
|
||||
"Id": [
|
||||
251002111
|
||||
]
|
||||
},
|
||||
"Desc": {
|
||||
"key": "skill_1510021111",
|
||||
"text": "对敌方一个目标发起攻击,造成攻击力100%的伤害"
|
||||
},
|
||||
"buffid": [],
|
||||
"map": ""
|
||||
},
|
||||
{
|
||||
"id": 151002211,
|
||||
"level": 1,
|
||||
"MaxLV": 1,
|
||||
"Name": {
|
||||
"key": "skillname_151002211",
|
||||
"text": "力倾"
|
||||
},
|
||||
"ico": "jn_icon_047",
|
||||
"act": "Skill_2",
|
||||
"Type": 1,
|
||||
"CD": 2,
|
||||
"Target": 2,
|
||||
"ChildSkill": {
|
||||
"Id": [
|
||||
251002211
|
||||
]
|
||||
},
|
||||
"Desc": {
|
||||
"key": "skill_1510022111",
|
||||
"text": "对敌方一个目标发起攻击,造成攻击力120%的伤害。并有50%概率附加2回合【防御下降】状态。"
|
||||
},
|
||||
"buffid": [],
|
||||
"map": ""
|
||||
},
|
||||
{
|
||||
"id": 151003111,
|
||||
"level": 1,
|
||||
"MaxLV": 1,
|
||||
"Name": {
|
||||
"key": "skillname_151003111",
|
||||
"text": "攻守之势"
|
||||
},
|
||||
"ico": "jn_icon_048",
|
||||
"act": "Skill_1",
|
||||
"Type": 1,
|
||||
"CD": 1,
|
||||
"Target": 2,
|
||||
"ChildSkill": {
|
||||
"Id": [
|
||||
251003111
|
||||
]
|
||||
},
|
||||
"Desc": {
|
||||
"key": "skill_1510031111",
|
||||
"text": "对敌方一个目标发起攻击,造成攻击力100%的伤害"
|
||||
},
|
||||
"buffid": [],
|
||||
"map": ""
|
||||
},
|
||||
{
|
||||
"id": 151003211,
|
||||
"level": 1,
|
||||
"MaxLV": 1,
|
||||
"Name": {
|
||||
"key": "skillname_151003211",
|
||||
"text": "重枪冲击"
|
||||
},
|
||||
"ico": "jn_icon_049",
|
||||
"act": "Skill_2",
|
||||
"Type": 1,
|
||||
"CD": 2,
|
||||
"Target": 2,
|
||||
"ChildSkill": {
|
||||
"Id": [
|
||||
251003211
|
||||
]
|
||||
},
|
||||
"Desc": {
|
||||
"key": "skill_1510032111",
|
||||
"text": "对敌方一个目标发起攻击,造成攻击力120%的伤害。并有25%概率附加1回合【眩晕】状态。"
|
||||
},
|
||||
"buffid": [],
|
||||
"map": ""
|
||||
},
|
||||
{
|
||||
"id": 151004111,
|
||||
"level": 1,
|
||||
"MaxLV": 1,
|
||||
"Name": {
|
||||
"key": "skillname_151004111",
|
||||
"text": "野性之力"
|
||||
},
|
||||
"ico": "jn_icon_050",
|
||||
"act": "Skill_1",
|
||||
"Type": 1,
|
||||
"CD": 1,
|
||||
"Target": 2,
|
||||
"ChildSkill": {
|
||||
"Id": [
|
||||
251004111
|
||||
]
|
||||
},
|
||||
"Desc": {
|
||||
"key": "skill_1510041111",
|
||||
"text": "对敌方1个目标发起2段攻击,每段可造成攻击力50%的伤害,并有20%概率减少目标20%行动值。"
|
||||
},
|
||||
"buffid": [],
|
||||
"map": ""
|
||||
},
|
||||
{
|
||||
"id": 151004211,
|
||||
"level": 1,
|
||||
"MaxLV": 1,
|
||||
"Name": {
|
||||
"key": "skillname_151004211",
|
||||
"text": "绝命上挑"
|
||||
},
|
||||
"ico": "jn_icon_051",
|
||||
"act": "Skill_2",
|
||||
"Type": 1,
|
||||
"CD": 3,
|
||||
"Target": 2,
|
||||
"ChildSkill": {
|
||||
"Id": [
|
||||
251004211
|
||||
]
|
||||
},
|
||||
"Desc": {
|
||||
"key": "skill_1510042111",
|
||||
"text": "对敌方全体发起2段攻击,每段可造成攻击50%的伤害,若发生暴击,可使目标减少10%行动值。"
|
||||
},
|
||||
"buffid": [],
|
||||
"map": ""
|
||||
},
|
||||
{
|
||||
"id": 151005111,
|
||||
"level": 1,
|
||||
"MaxLV": 1,
|
||||
"Name": {
|
||||
"key": "skillname_151005111",
|
||||
"text": "双重攻势"
|
||||
},
|
||||
"ico": "jn_icon_052",
|
||||
"act": "Skill_1",
|
||||
"Type": 1,
|
||||
"CD": 1,
|
||||
"Target": 2,
|
||||
"ChildSkill": {
|
||||
"Id": [
|
||||
251005111
|
||||
]
|
||||
},
|
||||
"Desc": {
|
||||
"key": "skill_1510051111",
|
||||
"text": "对敌方一个目标发起两段攻击,每段造成攻击力75%的伤害"
|
||||
},
|
||||
"buffid": [],
|
||||
"map": ""
|
||||
},
|
||||
{
|
||||
"id": 151005211,
|
||||
"level": 1,
|
||||
"MaxLV": 1,
|
||||
"Name": {
|
||||
"key": "skillname_151005211",
|
||||
"text": "力之回旋"
|
||||
},
|
||||
"ico": "jn_icon_053",
|
||||
"act": "Skill_2",
|
||||
"Type": 1,
|
||||
"CD": 3,
|
||||
"Target": 2,
|
||||
"ChildSkill": {
|
||||
"Id": [
|
||||
251005211
|
||||
]
|
||||
},
|
||||
"Desc": {
|
||||
"key": "skill_1510052111",
|
||||
"text": "对敌方1个目标发起攻击,造成攻击力180%的伤害,并附加2回合【攻击下降】状态。"
|
||||
},
|
||||
"buffid": [],
|
||||
"map": ""
|
||||
}
|
||||
]
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -87,7 +87,7 @@ const (
|
||||
APP_TESTCASE_INTRO = "选择左侧的测试接口"
|
||||
|
||||
// toolbar
|
||||
TOOLBAR_MONITOR = "监控"
|
||||
TOOLBAR_MONITOR = "推送"
|
||||
TOOLBAR_TESTER = "接口测试"
|
||||
TOOLBAR_GEN = "Luban"
|
||||
TOOLBAR_SEC = "密码器"
|
||||
|
@ -18,6 +18,8 @@ import (
|
||||
"github.com/BabySid/gobase"
|
||||
"github.com/Pallinder/go-randomdata"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/go-vgo/robotgo"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -98,6 +100,10 @@ func (ui *MainWindowImpl) createWindowContainer() {
|
||||
ui.at = newAppContainer(appRegister, ui.obs)
|
||||
content := container.NewBorder(ui.tb.toolbar, ui.sb.widget, nil, ui.toys.widget, ui.at)
|
||||
ui.w.SetContent(content)
|
||||
// 屏幕最大
|
||||
width, height := robotgo.GetScaleSize()
|
||||
ui.w.Resize(fyne.NewSize(float32(width), float32(height)))
|
||||
ui.w.CenterOnScreen()
|
||||
ui.w.SetCloseIntercept(ui.quiteHandle)
|
||||
}
|
||||
|
||||
@ -106,7 +112,13 @@ func (ui *MainWindowImpl) SetStatusMsg(msg string) {
|
||||
}
|
||||
|
||||
func (ui *MainWindowImpl) quiteHandle() {
|
||||
ui.app.Quit()
|
||||
dialog.ShowConfirm("推出系统", "确定退出吗", func(b bool) {
|
||||
if !b {
|
||||
return
|
||||
}
|
||||
ui.app.Quit()
|
||||
}, ui.w)
|
||||
|
||||
}
|
||||
|
||||
// CreateWindow ....
|
||||
|
@ -363,7 +363,7 @@ func (this *appGen) LazyInit(obs observer.Observer) error {
|
||||
quesWin := fyne.CurrentApp().NewWindow("使用说明")
|
||||
quesWin.SetContent(widget.NewRichTextFromMarkdown(
|
||||
`
|
||||
1. 先更新excel文件
|
||||
1. SVN更新excel文件
|
||||
2. 配置Luban(已做可忽略)
|
||||
3. 选择**生成类型**,单击生成
|
||||
4. 选择要覆盖的文件
|
||||
@ -475,6 +475,12 @@ func (f *fileList) changeItem(tmpDir, projectDir string) {
|
||||
return
|
||||
}
|
||||
|
||||
defer func() {
|
||||
if len(tmpFiles) == 0 || len(f.cachedList.Items) == 0 {
|
||||
showTip("没有任何变更的文件,请确定SVN拉取最新文件")
|
||||
}
|
||||
}()
|
||||
|
||||
projectFiles, err := ioutil.ReadDir(projectDir)
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
|
@ -21,7 +21,11 @@ func (this *RtaskDoitView) 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 == "" {
|
||||
@ -29,7 +33,8 @@ func (this *RtaskDoitView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
||||
return
|
||||
}
|
||||
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.RtaskApplyReq{
|
||||
RtaskId: cast.ToInt32(taskId.Text),
|
||||
RtaskId: cast.ToInt32(taskId.Text),
|
||||
RtaskSubId: cast.ToInt32(subTaskId.Text),
|
||||
}); err != nil {
|
||||
logrus.Error(err)
|
||||
}
|
12
go.mod
12
go.mod
@ -44,11 +44,23 @@ require (
|
||||
|
||||
require (
|
||||
github.com/BurntSushi/toml v1.2.0 // indirect
|
||||
github.com/StackExchange/wmi v1.2.1 // indirect
|
||||
github.com/go-vgo/robotgo v0.100.10 // indirect
|
||||
github.com/jtolds/gls v4.20.0+incompatible // indirect
|
||||
github.com/kr/fs v0.1.0 // indirect
|
||||
github.com/lxn/win v0.0.0-20210218163916-a377121e959e // indirect
|
||||
github.com/onsi/gomega v1.20.0 // indirect
|
||||
github.com/otiai10/gosseract v2.2.1+incompatible // indirect
|
||||
github.com/robotn/gohook v0.31.3 // indirect
|
||||
github.com/robotn/xgb v0.0.0-20190912153532-2cb92d044934 // indirect
|
||||
github.com/robotn/xgbutil v0.0.0-20190912154524-c861d6f87770 // indirect
|
||||
github.com/rogpeppe/go-internal v1.8.1 // indirect
|
||||
github.com/shirou/gopsutil v3.21.10+incompatible // indirect
|
||||
github.com/smartystreets/assertions v1.2.0 // indirect
|
||||
github.com/vcaesar/gops v0.21.3 // indirect
|
||||
github.com/vcaesar/imgo v0.30.0 // indirect
|
||||
github.com/vcaesar/keycode v0.10.0 // indirect
|
||||
github.com/vcaesar/tt v0.20.0 // indirect
|
||||
)
|
||||
|
||||
require (
|
||||
|
29
go.sum
29
go.sum
@ -53,6 +53,8 @@ fyne.io/systray v1.10.1-0.20220621085403-9a2652634e93/go.mod h1:oM2AQqGJ1AMo4nNq
|
||||
git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=
|
||||
github.com/BabySid/gobase v0.0.0-20220614103908-39ac0a583c02 h1:4VkwDX+9araWz3MeAx/3EAWuQTu+dYnJqBlYrk86i4k=
|
||||
github.com/BabySid/gobase v0.0.0-20220614103908-39ac0a583c02/go.mod h1:psRlcjEywZdxNf9jp6IdYY7VcAsYPtcnLHYQ+dWG5uw=
|
||||
github.com/BurntSushi/freetype-go v0.0.0-20160129220410-b763ddbfe298/go.mod h1:D+QujdIlUNfa0igpNMk6UIvlb6C252URs4yupRUV4lQ=
|
||||
github.com/BurntSushi/graphics-go v0.0.0-20160129215708-b43f31a4a966/go.mod h1:Mid70uvE93zn9wgF92A/r5ixgnvX8Lh68fxp9KQBaI0=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
|
||||
github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0=
|
||||
@ -64,6 +66,8 @@ github.com/Pallinder/go-randomdata v1.2.0 h1:DZ41wBchNRb/0GfsePLiSwb0PHZmT67XY00
|
||||
github.com/Pallinder/go-randomdata v1.2.0/go.mod h1:yHmJgulpD2Nfrm0cR9tI/+oAgRqCQQixsA8HyRZfV9Y=
|
||||
github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U=
|
||||
github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI=
|
||||
github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA=
|
||||
github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8=
|
||||
github.com/agiledragon/gomonkey/v2 v2.8.0 h1:u2K2nNGyk0ippzklz1CWalllEB9ptD+DtSXeCX5O000=
|
||||
github.com/agiledragon/gomonkey/v2 v2.8.0/go.mod h1:ap1AmDzcVOAz1YpeJ3TCzIgstoaWLA6jbbgxfB4w2iY=
|
||||
github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c=
|
||||
@ -197,6 +201,7 @@ github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
|
||||
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||
github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
|
||||
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
|
||||
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
|
||||
github.com/go-ping/ping v0.0.0-20211130115550-779d1e919534 h1:dhy9OQKGBh4zVXbjwbxxHjRxMJtLXj3zfgpBYQaR4Q4=
|
||||
@ -221,6 +226,8 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me
|
||||
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I=
|
||||
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
|
||||
github.com/go-test/deep v1.0.7 h1:/VSMRlnY/JSyqxQUzQLKVMAskpY/NZKFA5j2P+0pP2M=
|
||||
github.com/go-vgo/robotgo v0.100.10 h1:bZe7AslG6oq5ops1SWUxsPfM9Z3QQvlqfA3ezxLFNO4=
|
||||
github.com/go-vgo/robotgo v0.100.10/go.mod h1:7QeIpSHX7bjeXWRPxvQeKSx9mHI+3l80Ahq+CQF0C68=
|
||||
github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
|
||||
github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=
|
||||
github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg=
|
||||
@ -486,6 +493,8 @@ github.com/lucor/goinfo v0.0.0-20210802170112-c078a2b0f08b/go.mod h1:PRq09yoB+Q2
|
||||
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
|
||||
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
|
||||
github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI=
|
||||
github.com/lxn/win v0.0.0-20210218163916-a377121e959e h1:H+t6A/QJMbhCSEH5rAuRxh+CtW96g0Or0Fxa9IKr4uc=
|
||||
github.com/lxn/win v0.0.0-20210218163916-a377121e959e/go.mod h1:KxxjdtRkfNoYDCUP5ryK7XJJNTnpC8atvtmTheChOtk=
|
||||
github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
||||
github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
|
||||
github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
||||
@ -582,6 +591,8 @@ github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5h
|
||||
github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q=
|
||||
github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo=
|
||||
github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8=
|
||||
github.com/otiai10/gosseract v2.2.1+incompatible h1:Ry5ltVdpdp4LAa2bMjsSJH34XHVOV7XMi41HtzL8X2I=
|
||||
github.com/otiai10/gosseract v2.2.1+incompatible/go.mod h1:XrzWItCzCpFRZ35n3YtVTgq5bLAhFIkascoRo8G32QE=
|
||||
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
||||
github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY=
|
||||
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
||||
@ -629,6 +640,12 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5X
|
||||
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
||||
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
|
||||
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
|
||||
github.com/robotn/gohook v0.31.3 h1:kGX8iukJ9ensVRwRKnTtdojAMQOpa6KFnXDi4OA4RaI=
|
||||
github.com/robotn/gohook v0.31.3/go.mod h1:wyGik0yb4iwCfJjDprtNkTyxkgQWuKoVPQ3hkz6+6js=
|
||||
github.com/robotn/xgb v0.0.0-20190912153532-2cb92d044934 h1:2lhSR8N3T6I30q096DT7/5AKEIcf1vvnnWAmS0wfnNY=
|
||||
github.com/robotn/xgb v0.0.0-20190912153532-2cb92d044934/go.mod h1:SxQhJskUJ4rleVU44YvnrdvxQr0tKy5SRSigBrCgyyQ=
|
||||
github.com/robotn/xgbutil v0.0.0-20190912154524-c861d6f87770 h1:2uX8QRLkkxn2EpAQ6I3KhA79BkdRZfvugJUzJadiJwk=
|
||||
github.com/robotn/xgbutil v0.0.0-20190912154524-c861d6f87770/go.mod h1:svkDXUDQjUiWzLrA0OZgHc4lbOts3C+uRfP6/yjwYnU=
|
||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
@ -659,6 +676,8 @@ github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAm
|
||||
github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b/go.mod h1:/yeG0My1xr/u+HZrFQ1tOQQQQrOawfyMUH13ai5brBc=
|
||||
github.com/sethvargo/go-password v0.2.0 h1:BTDl4CC/gjf/axHMaDQtw507ogrXLci6XRiLc7i/UHI=
|
||||
github.com/sethvargo/go-password v0.2.0/go.mod h1:Ym4Mr9JXLBycr02MFuVQ/0JHidNetSgbzutTr3zsYXE=
|
||||
github.com/shirou/gopsutil v3.21.10+incompatible h1:AL2kpVykjkqeN+MFe1WcwSBVUjGjvdU8/ubvCuXAjrU=
|
||||
github.com/shirou/gopsutil v3.21.10+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
|
||||
github.com/shirou/gopsutil/v3 v3.22.7 h1:flKnuCMfUUrO+oAvwAd6GKZgnPzr098VA/UJ14nhJd4=
|
||||
github.com/shirou/gopsutil/v3 v3.22.7/go.mod h1:s648gW4IywYzUfE/KjXxUsqrqx/T2xO5VqOXxONeRfI=
|
||||
github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY=
|
||||
@ -780,6 +799,14 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw
|
||||
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||
github.com/valyala/fastrand v1.1.0 h1:f+5HkLW4rsgzdNoleUOB69hyT9IlD2ZQh9GyDMfb5G8=
|
||||
github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ=
|
||||
github.com/vcaesar/gops v0.21.3 h1:VR7amkxVv9CQfsotkXrmMyT19dVuNTa1PM/oopJeIc0=
|
||||
github.com/vcaesar/gops v0.21.3/go.mod h1:3e2EnlZTI9/44bqzRwkeZ3s0ZQwK2Cn4QPLx8Ii8Agk=
|
||||
github.com/vcaesar/imgo v0.30.0 h1:ODQVX0EFJEh+WkKahCBtE0SqcDCIjl/kjiOplR0Ouh8=
|
||||
github.com/vcaesar/imgo v0.30.0/go.mod h1:8TGnt5hjaMgwDByvMFIzUDSh5uSea4n1tAbSvnhvA6U=
|
||||
github.com/vcaesar/keycode v0.10.0 h1:Qx5QE8ZXHyRyjoA2QOxBp25OKMKB+zxMVqm0FWGV0d4=
|
||||
github.com/vcaesar/keycode v0.10.0/go.mod h1:JNlY7xbKsh+LAGfY2j4M3znVrGEm5W1R8s/Uv6BJcfQ=
|
||||
github.com/vcaesar/tt v0.20.0 h1:9t2Ycb9RNHcP0WgQgIaRKJBB+FrRdejuaL6uWIHuoBA=
|
||||
github.com/vcaesar/tt v0.20.0/go.mod h1:GHPxQYhn+7OgKakRusH7KJ0M5MhywoeLb8Fcffs/Gtg=
|
||||
github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU=
|
||||
github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM=
|
||||
github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU=
|
||||
@ -878,6 +905,7 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH
|
||||
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
|
||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||
golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
|
||||
golang.org/x/image v0.0.0-20220601225756-64ec528b34cd h1:9NbNcTg//wfC5JskFW4Z3sqwVnjmJKHxLAol1bW2qgw=
|
||||
golang.org/x/image v0.0.0-20220601225756-64ec528b34cd/go.mod h1:doUCurBvlfPMKfmIpRIywoHmhN3VyhnoFDbvIEWF4hY=
|
||||
golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
@ -1047,6 +1075,7 @@ golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
|
@ -62,7 +62,10 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
|
||||
if _hero.SameCount > 1 { //有堆叠的情况
|
||||
// 克隆一个新的
|
||||
_hero.SameCount -= 1
|
||||
_hero.JuexProperty = map[string]int32{}
|
||||
|
||||
newHero := this.module.modelHero.CloneNewHero(_hero)
|
||||
_hero.JuexProperty = map[string]int32{}
|
||||
chanegCard = append(chanegCard, newHero)
|
||||
_heroMap["isOverlying"] = false
|
||||
_heroMap["sameCount"] = 1
|
||||
|
@ -45,7 +45,7 @@ func (this *apiComp) ResonanceReset(session comm.IUserSession, req *pb.HeroReson
|
||||
return
|
||||
}
|
||||
|
||||
if _hero.ResonateNum*resonConfig.Energy >= _hero.DistributionResonate {
|
||||
if _hero.ResonateNum*resonConfig.Energy == _hero.DistributionResonate {
|
||||
code = pb.ErrorCode_HeroNotNeedResonate // 已经是重置状态
|
||||
return
|
||||
}
|
||||
|
@ -132,9 +132,20 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
|
||||
// 堆叠情况
|
||||
if _hero.SameCount > 1 {
|
||||
_hero.SameCount -= 1
|
||||
sz := make([]*pb.SkillData, 0)
|
||||
|
||||
for _, v := range _hero.NormalSkill {
|
||||
sz = append(sz, &pb.SkillData{
|
||||
SkillID: v.SkillID,
|
||||
SkillLv: v.SkillLv,
|
||||
})
|
||||
v.SkillLv = 1
|
||||
}
|
||||
newHero := this.module.modelHero.CloneNewHero(_hero)
|
||||
ChangeList = append(ChangeList, newHero)
|
||||
_hero.NormalSkill = sz
|
||||
}
|
||||
|
||||
_heroMap := map[string]interface{}{
|
||||
"normalSkill": _hero.NormalSkill,
|
||||
"isOverlying": false,
|
||||
@ -147,6 +158,7 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
}
|
||||
/////
|
||||
this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
|
||||
ChangeList = append(ChangeList, _hero)
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList})
|
||||
|
@ -131,6 +131,7 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
|
||||
if _hero.SameCount > 1 { //有堆叠的情况
|
||||
// 克隆一个新的
|
||||
_hero.SameCount -= 1
|
||||
|
||||
newHero := this.module.modelHero.CloneNewHero(_hero)
|
||||
chanegCard = append(chanegCard, newHero)
|
||||
}
|
||||
|
@ -52,6 +52,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
|
||||
if code != pb.ErrorCode_Success {
|
||||
return
|
||||
}
|
||||
//this.module.Debug("StrengthenUplv", log.Field{Key: "hero", Value: _hero})
|
||||
// 只有英雄卡才能升级
|
||||
if _hero.CardType != comm.CardTypeHero {
|
||||
code = pb.ErrorCode_HeroTypeErr
|
||||
@ -192,7 +193,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
|
||||
this.module.ModuleTask.SendToTask(session, comm.TaskTypeUpHeroLevel, &pb.TaskParam{Second: iLvUp})
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype4, utils.ToInt32(_hero.HeroID), _hero.Lv)
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype23, 1, _hero.Star, _hero.Lv)
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype24, iLvUp)
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype24, 1)
|
||||
this.module.ModuleRtask.SendToRtask(session, comm.Rtype29, 1, _hero.Lv, utils.ToInt32(_hero.HeroID))
|
||||
cfg := this.module.configure.GetHero(_hero.HeroID)
|
||||
if cfg != nil {
|
||||
|
@ -452,10 +452,14 @@ func (this *ModelHero) PropertyCompute(hero *pb.DBHero) {
|
||||
lvGrow.Speed, 0, 0, 0, stargrowCfg.StarupSpeed)
|
||||
speed, _ := mengine.ParseAndExec(exprSpeed)
|
||||
hero.Property = map[string]int32{
|
||||
comm.Hp: int32(math.Floor(hp)),
|
||||
comm.Atk: int32(math.Floor(atk)),
|
||||
comm.Def: int32(math.Floor(def)),
|
||||
comm.Speed: int32(math.Floor(speed)),
|
||||
comm.Hp: int32(math.Floor(hp)),
|
||||
comm.Atk: int32(math.Floor(atk)),
|
||||
comm.Def: int32(math.Floor(def)),
|
||||
comm.Speed: int32(math.Floor(speed)),
|
||||
comm.Cri: int32(lvGrow.Cri), //暴击
|
||||
comm.Effhit: int32(lvGrow.Effhit), //效果命中
|
||||
comm.Cridam: int32(lvGrow.Cridam), //暴击伤害
|
||||
comm.Effre: int32(lvGrow.Effre), //效果抵抗
|
||||
}
|
||||
}
|
||||
|
||||
@ -541,10 +545,12 @@ func (this *ModelHero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhe
|
||||
hero.Exp = curExp
|
||||
hero.IsOverlying = false
|
||||
hero.SameCount = 1
|
||||
|
||||
this.moduleHero.Debugf("add hero exp :%v", hero)
|
||||
if err := this.ChangeList(uid, hero.Id, update); err != nil {
|
||||
this.moduleHero.Errorf("add hero exp failed ChangeList %v", err)
|
||||
code = pb.ErrorCode_DBError
|
||||
}
|
||||
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -283,10 +283,14 @@ func (this *Hero) AddHeroExp(session comm.IUserSession, heroObjID string, exp in
|
||||
newhero *pb.DBHero
|
||||
_changeHero []*pb.DBHero // 变化的英雄
|
||||
)
|
||||
if heroObjID == "" {
|
||||
return
|
||||
}
|
||||
_hero, code = this.GetHeroByObjID(session.GetUserId(), heroObjID)
|
||||
if code != pb.ErrorCode_Success {
|
||||
return
|
||||
}
|
||||
//this.Debug("AddHeroExp", log.Field{Key: "hero", Value: _hero})
|
||||
newhero, code = this.modelHero.AddCardExp(session.GetUserId(), _hero, exp)
|
||||
if code != pb.ErrorCode_Success {
|
||||
return
|
||||
@ -295,7 +299,6 @@ func (this *Hero) AddHeroExp(session comm.IUserSession, heroObjID string, exp in
|
||||
if newhero != nil {
|
||||
_changeHero = append(_changeHero, newhero) // 原来的英雄 只是数量变化了
|
||||
}
|
||||
_changeHero = append(_changeHero, _hero)
|
||||
session.SendMsg(string(this.GetType()), "change", &pb.HeroChangePush{List: _changeHero})
|
||||
return
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.HuntingCha
|
||||
hunting.Boss[req.BossType] += 1
|
||||
mapData["boss"] = hunting.Boss
|
||||
mapData["challengeTime"] = hunting.BossTime
|
||||
if req.Report != nil && len(req.Report.Info.Redflist) > 0 {
|
||||
if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
|
||||
sz := make([]*pb.LineUp, 5)
|
||||
for i, v := range req.Report.Info.Redflist[0].Team {
|
||||
if v != nil {
|
||||
|
@ -60,7 +60,7 @@ func (this *Library) CreateLibrary(uid string, fids []int32, heroConfId string)
|
||||
Uid: uid,
|
||||
Fid: fid,
|
||||
Hero: map[string]int32{},
|
||||
Prize: false,
|
||||
Prize: map[int32]int32{},
|
||||
Fetterlv: 0,
|
||||
}
|
||||
|
||||
|
@ -102,10 +102,12 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MainlineCh
|
||||
this.module.Debugf("DispenseRes err:+%v", res)
|
||||
}
|
||||
// 加经验
|
||||
if req.Report != nil && len(req.Report.Info.Redflist) > 0 {
|
||||
for _, v := range req.Report.Info.Redflist[0].Team {
|
||||
if node.Exp > 0 {
|
||||
this.module.ModuleHero.AddHeroExp(session, v.Oid, node.Exp)
|
||||
if node.Episodetype != 5 && node.Episodetype != 7 {
|
||||
if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
|
||||
for _, v := range req.Report.Info.Redflist[0].Team {
|
||||
if node.Exp > 0 {
|
||||
this.module.ModuleHero.AddHeroExp(session, v.Oid, node.Exp)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
|
||||
}
|
||||
} else {
|
||||
// 记录爬塔明细数据
|
||||
if req.Report != nil && len(req.Report.Info.Redflist) > 0 {
|
||||
if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
|
||||
sz := make([]*pb.LineUp, 5)
|
||||
for i, v := range req.Report.Info.Redflist[0].Team {
|
||||
if v != nil {
|
||||
@ -129,7 +129,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
|
||||
session.SendMsg(string(this.module.GetType()), PagodaChallengeOverResp, &pb.PagodaChallengeOverResp{Data: pagoda})
|
||||
}
|
||||
// 加经验
|
||||
if req.Report != nil && len(req.Report.Info.Redflist) > 0 {
|
||||
if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
|
||||
for _, v := range req.Report.Info.Redflist[0].Team {
|
||||
if conf.Exp > 0 {
|
||||
this.module.ModuleHero.AddHeroExp(session, v.Oid, conf.Exp)
|
||||
|
@ -11,7 +11,9 @@ import (
|
||||
|
||||
// 做任务
|
||||
func (this *apiComp) ApplyCheck(session comm.IUserSession, req *pb.RtaskApplyReq) (code pb.ErrorCode) {
|
||||
|
||||
if req.RtaskId == 0 || req.RtaskSubId == 0 {
|
||||
code = pb.ErrorCode_ReqParameterError
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@ -38,9 +40,9 @@ func (this *apiComp) Apply(session comm.IUserSession, req *pb.RtaskApplyReq) (co
|
||||
var (
|
||||
frtaskArr *pb.FrtaskIds
|
||||
ok bool
|
||||
err error
|
||||
)
|
||||
|
||||
// 获取当前组下已完成的任务
|
||||
if frtaskArr, ok = rtask.FrtaskIds[conf.Group]; !ok {
|
||||
frtaskArr = &pb.FrtaskIds{}
|
||||
}
|
||||
@ -51,54 +53,42 @@ func (this *apiComp) Apply(session comm.IUserSession, req *pb.RtaskApplyReq) (co
|
||||
return
|
||||
}
|
||||
|
||||
if req.RtaskSubId == 0 {
|
||||
//校验前置任务和限定条件
|
||||
if err, ok = this.moduleRtask.modelRtask.checkHandle(session.GetUserId(), frtaskArr.RtaskIds, conf); !ok {
|
||||
this.moduleRtask.Error(err.Error())
|
||||
code = pb.ErrorCode_RtaskCondiNoReach
|
||||
return
|
||||
}
|
||||
} else {
|
||||
sideConf := this.moduleRtask.configure.getRtaskSidById(req.RtaskSubId)
|
||||
if sideConf == nil {
|
||||
code = pb.ErrorCode_ConfigNoFound
|
||||
log.Errorf("rdtask_side %v no found", req.RtaskSubId)
|
||||
return
|
||||
}
|
||||
|
||||
// 没有设置选项,表示任务完成
|
||||
if len(sideConf.EndTid) == 0 {
|
||||
code = pb.ErrorCode_ConfigurationException
|
||||
return
|
||||
}
|
||||
|
||||
if sideConf.EndTid[0] == -1 {
|
||||
frtaskArr.RtaskIds = append(frtaskArr.RtaskIds, req.RtaskId)
|
||||
if rtask.FrtaskIds == nil {
|
||||
rtask.FrtaskIds = make(map[int32]*pb.FrtaskIds)
|
||||
}
|
||||
rtask.FrtaskIds[conf.Group] = frtaskArr
|
||||
|
||||
update := map[string]interface{}{
|
||||
"frtaskIds": rtask.FrtaskIds,
|
||||
}
|
||||
|
||||
if err := this.moduleRtask.modelRtask.Change(session.GetUserId(), update); err != nil {
|
||||
code = pb.ErrorCode_SystemError
|
||||
}
|
||||
|
||||
} else {
|
||||
// 校验完成条件
|
||||
for _, v := range sideConf.EndTid {
|
||||
if err, ok := this.moduleRtask.modelRtask.checkCondi(session.GetUserId(), v); !ok {
|
||||
this.moduleRtask.Error(err.Error())
|
||||
code = pb.ErrorCode_RtaskCondiNoReach
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
sideConf := this.moduleRtask.configure.getRtaskSidById(req.RtaskSubId)
|
||||
if sideConf == nil {
|
||||
code = pb.ErrorCode_ConfigNoFound
|
||||
log.Errorf("rdtask_side %v no found", req.RtaskSubId)
|
||||
return
|
||||
}
|
||||
|
||||
if len(sideConf.EndTid) == 0 {
|
||||
code = pb.ErrorCode_ConfigurationException
|
||||
return
|
||||
}
|
||||
|
||||
// 没有设置选项,表示任务完成
|
||||
if sideConf.EndTid[0] == -1 && len(sideConf.ChooseId) == 0 {
|
||||
frtaskArr.RtaskIds = append(frtaskArr.RtaskIds, req.RtaskId)
|
||||
if rtask.FrtaskIds == nil {
|
||||
rtask.FrtaskIds = make(map[int32]*pb.FrtaskIds)
|
||||
}
|
||||
rtask.FrtaskIds[conf.Group] = frtaskArr
|
||||
|
||||
update := map[string]interface{}{
|
||||
"frtaskIds": rtask.FrtaskIds,
|
||||
}
|
||||
|
||||
if err := this.moduleRtask.modelRtask.Change(session.GetUserId(), update); err != nil {
|
||||
code = pb.ErrorCode_SystemError
|
||||
return
|
||||
}
|
||||
|
||||
if err := this.moduleRtask.modelRtask.updateUserRtaskId(session.GetUserId(), req.RtaskId); err != nil {
|
||||
this.moduleRtask.Errorf("update rtaskId err: %v", err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if err := session.SendMsg(string(this.moduleRtask.GetType()), RtaskSubTypeApply, &pb.RtaskApplyResp{
|
||||
RtaskId: req.RtaskId,
|
||||
}); err != nil {
|
@ -74,6 +74,14 @@ func (this *apiComp) Choose(session comm.IUserSession, req *pb.RtaskChooseReq) (
|
||||
}
|
||||
|
||||
if chooseCnf.NextTid != 0 {
|
||||
// 校验完成条件
|
||||
for _, v := range sideConf.EndTid {
|
||||
if err, ok := this.moduleRtask.modelRtask.checkCondi(session.GetUserId(), v); !ok {
|
||||
this.moduleRtask.Error(err.Error())
|
||||
code = pb.ErrorCode_RtaskCondiNoReach
|
||||
return
|
||||
}
|
||||
}
|
||||
// 更新完成的任务
|
||||
frtaskArr.RtaskIds = append(frtaskArr.RtaskIds, req.RtaskId)
|
||||
if rtask.FrtaskIds == nil {
|
||||
@ -87,6 +95,12 @@ func (this *apiComp) Choose(session comm.IUserSession, req *pb.RtaskChooseReq) (
|
||||
code = pb.ErrorCode_SystemError
|
||||
return
|
||||
}
|
||||
|
||||
// userexpand update
|
||||
if err := this.moduleRtask.modelRtask.updateUserRtaskId(session.GetUserId(), req.RtaskId); err != nil {
|
||||
this.moduleRtask.Errorf("update user rtaskId err %v", err)
|
||||
}
|
||||
|
||||
// 发奖励
|
||||
for _, v := range sideConf.Reward {
|
||||
if v.ChooseId == req.ChooseId {
|
||||
|
@ -1,27 +1,34 @@
|
||||
// 匹配类型和参数,返回任务条件ID
|
||||
package rtask
|
||||
|
||||
import cfg "go_dreamfactory/sys/configure/structs"
|
||||
import (
|
||||
cfg "go_dreamfactory/sys/configure/structs"
|
||||
|
||||
func (this *ModelRtaskRecord) equalFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) {
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
func (this *ModelRtaskRecord) equalFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) {
|
||||
//只查询参数于配置相等的情况下设置condiId,否则返回0
|
||||
if !soEqual(vals[0], cfg.Data1) {
|
||||
if ok, err1 := soEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
condiId = cfg.Id
|
||||
return
|
||||
}
|
||||
|
||||
func (this *ModelRtaskRecord) greatEqualFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) {
|
||||
if !soGreatEqual(vals[0], cfg.Data1) {
|
||||
func (this *ModelRtaskRecord) greatEqualFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) {
|
||||
if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
condiId = cfg.Id
|
||||
return
|
||||
}
|
||||
|
||||
func (this *ModelRtaskRecord) lessEqualFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) {
|
||||
if !soLessEqual(vals[0], cfg.Data1) {
|
||||
func (this *ModelRtaskRecord) lessEqualFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) {
|
||||
if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
condiId = cfg.Id
|
||||
@ -29,10 +36,8 @@ func (this *ModelRtaskRecord) lessEqualFirstParam(cfg *cfg.GameRdtaskCondiData,
|
||||
}
|
||||
|
||||
// 与每个参数比较
|
||||
// Deprecated
|
||||
func (this *ModelRtaskRecord) equalParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) {
|
||||
func (this *ModelRtaskRecord) equalParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) {
|
||||
var (
|
||||
err error
|
||||
paramLen int
|
||||
)
|
||||
if paramLen, err = lenParam(cfg, vals...); err != nil {
|
||||
@ -41,25 +46,68 @@ func (this *ModelRtaskRecord) equalParams(cfg *cfg.GameRdtaskCondiData, vals ...
|
||||
|
||||
switch paramLen {
|
||||
case 1:
|
||||
if !soEqual(vals[0], cfg.Data1) {
|
||||
if ok, err1 := soEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
case 2:
|
||||
if !(soEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2)) {
|
||||
if ok, err1 := soEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
case 3:
|
||||
if !(soEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && soGreatEqual(vals[2], cfg.Data3)) {
|
||||
if ok, err1 := soEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
case 4:
|
||||
if !(soEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) &&
|
||||
soGreatEqual(vals[2], cfg.Data3) && soGreatEqual(vals[3], cfg.Data4)) {
|
||||
if ok, err1 := soEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
case 5:
|
||||
if !(soEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) &&
|
||||
soGreatEqual(vals[2], cfg.Data3) && soGreatEqual(vals[3], cfg.Data4) && soGreatEqual(vals[4], cfg.Data5)) {
|
||||
if ok, err1 := soEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[4], cfg.Data5); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
default:
|
||||
@ -71,9 +119,8 @@ func (this *ModelRtaskRecord) equalParams(cfg *cfg.GameRdtaskCondiData, vals ...
|
||||
return
|
||||
}
|
||||
|
||||
func (this *ModelRtaskRecord) greatThanParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) {
|
||||
func (this *ModelRtaskRecord) greatThanParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) {
|
||||
var (
|
||||
err error
|
||||
paramLen int
|
||||
)
|
||||
if paramLen, err = lenParam(cfg, vals...); err != nil {
|
||||
@ -82,25 +129,68 @@ func (this *ModelRtaskRecord) greatThanParams(cfg *cfg.GameRdtaskCondiData, vals
|
||||
|
||||
switch paramLen {
|
||||
case 1:
|
||||
if !soGreatEqual(vals[0], cfg.Data1) {
|
||||
if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
case 2:
|
||||
if !(soGreatEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2)) {
|
||||
if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
case 3:
|
||||
if !(soGreatEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3)) {
|
||||
if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
case 4:
|
||||
if !(soGreatEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) &&
|
||||
soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4)) {
|
||||
if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
case 5:
|
||||
if !(soGreatEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) &&
|
||||
soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4) && soEqual(vals[4], cfg.Data5)) {
|
||||
if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[4], cfg.Data5); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
default:
|
||||
@ -112,9 +202,8 @@ func (this *ModelRtaskRecord) greatThanParams(cfg *cfg.GameRdtaskCondiData, vals
|
||||
}
|
||||
|
||||
// 需要累加更新的查询
|
||||
func (this *ModelRtaskRecord) lessThanParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) {
|
||||
func (this *ModelRtaskRecord) lessThanParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) {
|
||||
var (
|
||||
err error
|
||||
paramLen int
|
||||
)
|
||||
if paramLen, err = lenParam(cfg, vals...); err != nil {
|
||||
@ -123,25 +212,68 @@ func (this *ModelRtaskRecord) lessThanParams(cfg *cfg.GameRdtaskCondiData, vals
|
||||
|
||||
switch paramLen {
|
||||
case 1:
|
||||
if !soLessEqual(vals[0], cfg.Data1) {
|
||||
if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
case 2:
|
||||
if !(soLessEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2)) {
|
||||
if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
case 3:
|
||||
if !(soLessEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && soGreatEqual(vals[2], cfg.Data3)) {
|
||||
if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
case 4:
|
||||
if !(soLessEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) &&
|
||||
soGreatEqual(vals[2], cfg.Data3) && soGreatEqual(vals[3], cfg.Data4)) {
|
||||
if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
case 5:
|
||||
if !(soLessEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) &&
|
||||
soGreatEqual(vals[2], cfg.Data3) && soGreatEqual(vals[3], cfg.Data4) && soGreatEqual(vals[4], cfg.Data5)) {
|
||||
if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
if ok, err1 := soGreatEqual(vals[4], cfg.Data5); !ok {
|
||||
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
|
||||
return
|
||||
}
|
||||
default:
|
||||
|
@ -154,27 +154,27 @@ func lessEqual(actual, expected int32) bool {
|
||||
return actual <= expected
|
||||
}
|
||||
|
||||
func soEqual[T Num](actual T, expected T) (ok bool) {
|
||||
func soEqual[T Num](actual T, expected T) (ok bool, err error) {
|
||||
if !equal(actual, expected) {
|
||||
log.Debugf("实际:%v 期望:%v", actual, expected)
|
||||
err = errors.New(fmt.Sprintf("soEqual actual:%v expect:%v", actual, expected))
|
||||
return
|
||||
}
|
||||
ok = true
|
||||
return
|
||||
}
|
||||
|
||||
func soGreatEqual(actual, expected int32) (ok bool) {
|
||||
func soGreatEqual(actual, expected int32) (ok bool, err error) {
|
||||
if !greatEual(actual, expected) {
|
||||
log.Debugf("实际:%v 期望:%v", actual, expected)
|
||||
err = errors.New(fmt.Sprintf("soGreatEqual actual:%v expect:%v", actual, expected))
|
||||
return
|
||||
}
|
||||
ok = true
|
||||
return
|
||||
}
|
||||
|
||||
func soLessEqual(actual, expected int32) (ok bool) {
|
||||
func soLessEqual(actual, expected int32) (ok bool, err error) {
|
||||
if !lessEqual(actual, expected) {
|
||||
log.Debugf("实际:%v 期望:%v", actual, expected)
|
||||
err = errors.New(fmt.Sprintf("soLessEqual actual:%v expect:%v", actual, expected))
|
||||
return
|
||||
}
|
||||
ok = true
|
||||
|
@ -28,6 +28,14 @@ func (this *ModelRtask) Init(service core.IService, module core.IModule, comp co
|
||||
return
|
||||
}
|
||||
|
||||
// 更新玩家的随机任务ID
|
||||
func (this *ModelRtask) updateUserRtaskId(uid string, rtaskId int32) (err error) {
|
||||
ex_update := map[string]interface{}{
|
||||
"rtaskId": rtaskId,
|
||||
}
|
||||
return this.moduleRtask.ModuleUser.ChangeUserExpand(uid, ex_update)
|
||||
}
|
||||
|
||||
//查询用户随机任务
|
||||
func (this *ModelRtask) GetRtask(uid string) *pb.DBRtask {
|
||||
rtask := &pb.DBRtask{Uid: uid}
|
||||
@ -73,7 +81,7 @@ func (this *ModelRtask) checkCondi(uid string, condiId int32) (err error, ok boo
|
||||
var condi *rtaskCondi
|
||||
if condi, ok = this.moduleRtask.handleMap[condiId]; ok {
|
||||
if condi.verify != nil {
|
||||
if err, ok = condi.verify(uid, condi.cfg); !ok {
|
||||
if ok, err = condi.verify(uid, condi.cfg); !ok {
|
||||
err = errors.WithMessagef(err, "uid: %v do rtask %v condition not reach", uid, condiId)
|
||||
return
|
||||
}
|
||||
|
@ -20,8 +20,8 @@ type rtaskCondi struct {
|
||||
update updateDataHandle //更新任务数据
|
||||
}
|
||||
|
||||
type verifyHandle func(uid string, cfg *cfg.GameRdtaskCondiData) (error, bool)
|
||||
type condiFindHandle func(cfg *cfg.GameRdtaskCondiData, vals ...int32) int32
|
||||
type verifyHandle func(uid string, cfg *cfg.GameRdtaskCondiData) (bool, error)
|
||||
type condiFindHandle func(cfg *cfg.GameRdtaskCondiData, vals ...int32) (int32, error)
|
||||
type updateDataHandle func(uid string, cfg *cfg.GameRdtaskCondiData, vals ...int32) error
|
||||
|
||||
type ModuleRtask struct {
|
||||
@ -193,10 +193,12 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
|
||||
}
|
||||
|
||||
func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.TaskType, params ...int32) (code pb.ErrorCode) {
|
||||
log.Debugf("Rtask params: %v", params)
|
||||
this.Debugf("receive Rtask %v params: %v", rtaskType, params)
|
||||
var (
|
||||
err error
|
||||
condiId int32
|
||||
condi *rtaskCondi
|
||||
// condi *rtaskCondi
|
||||
condis []*rtaskCondi
|
||||
)
|
||||
|
||||
user := this.ModuleUser.GetUser(session.GetUserId())
|
||||
@ -211,29 +213,34 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T
|
||||
if v.find == nil {
|
||||
break
|
||||
}
|
||||
if condiId = v.find(v.cfg, params...); condiId == 0 {
|
||||
if condiId, err = v.find(v.cfg, params...); condiId == 0 {
|
||||
if err != nil {
|
||||
this.Error(err.Error())
|
||||
}
|
||||
continue
|
||||
} else {
|
||||
//数据记录方式是1
|
||||
// if v.cfg.Datatype == 1 ||
|
||||
// v.cfg.Datatype == 2 && this.ModuleSys.IsAccess("task", user.Lv) {
|
||||
condi = v
|
||||
condis = append(condis, v)
|
||||
// }
|
||||
break
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if condiId == 0 {
|
||||
log.Debugf("condi not found, typeId: %v params: %v", rtaskType, params)
|
||||
if len(condis) == 0 {
|
||||
this.Warnf("没有找到符合的条件任务, typeId: %v params: %v", rtaskType, params)
|
||||
code = pb.ErrorCode_RtaskCondiNoFound
|
||||
return
|
||||
}
|
||||
|
||||
// update
|
||||
if condi.update != nil {
|
||||
if err := condi.update(session.GetUserId(), condi.cfg, params...); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
for _, v := range condis {
|
||||
if v.update != nil {
|
||||
if err := v.update(session.GetUserId(), v.cfg, params...); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -11,7 +11,7 @@ import (
|
||||
"github.com/spf13/cast"
|
||||
)
|
||||
|
||||
func (this *ModelRtaskRecord) verifyFromDb(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtaskRecord) verifyFromDb(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
var rd *pb.RtaskData
|
||||
if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil {
|
||||
if len(rd.Data) == 0 {
|
||||
@ -23,23 +23,60 @@ func (this *ModelRtaskRecord) verifyFromDb(uid string, cfg *cfg.GameRdtaskCondiD
|
||||
//参数比较,默认第一个参数soGreateEqual,其它soEqual
|
||||
switch paramLen {
|
||||
case 1:
|
||||
return nil, soGreatEqual(rd.Data[0], cfg.Data1)
|
||||
return soGreatEqual(rd.Data[0], cfg.Data1)
|
||||
case 2:
|
||||
return nil, soGreatEqual(rd.Data[0], cfg.Data1) && soEqual(rd.Data[1], cfg.Data2)
|
||||
if ok, err = soGreatEqual(rd.Data[0], cfg.Data1); !ok {
|
||||
return
|
||||
}
|
||||
if ok, err = soEqual(rd.Data[1], cfg.Data2); !ok {
|
||||
return
|
||||
}
|
||||
case 3:
|
||||
return nil, soGreatEqual(rd.Data[0], cfg.Data1) && soEqual(rd.Data[1], cfg.Data2) && soEqual(rd.Data[2], cfg.Data3)
|
||||
if ok, err = soGreatEqual(rd.Data[0], cfg.Data1); !ok {
|
||||
return
|
||||
}
|
||||
if ok, err = soEqual(rd.Data[1], cfg.Data2); !ok {
|
||||
return
|
||||
}
|
||||
if ok, err = soEqual(rd.Data[2], cfg.Data3); !ok {
|
||||
return
|
||||
}
|
||||
case 4:
|
||||
return nil, soGreatEqual(rd.Data[0], cfg.Data1) && soEqual(rd.Data[1], cfg.Data2) && soEqual(rd.Data[2], cfg.Data3) && soEqual(rd.Data[3], cfg.Data4)
|
||||
if ok, err = soGreatEqual(rd.Data[0], cfg.Data1); !ok {
|
||||
return
|
||||
}
|
||||
if ok, err = soEqual(rd.Data[1], cfg.Data2); !ok {
|
||||
return
|
||||
}
|
||||
if ok, err = soEqual(rd.Data[2], cfg.Data3); !ok {
|
||||
return
|
||||
}
|
||||
if ok, err = soEqual(rd.Data[3], cfg.Data4); !ok {
|
||||
return
|
||||
}
|
||||
case 5:
|
||||
return nil, soGreatEqual(rd.Data[0], cfg.Data1) && soEqual(rd.Data[1], cfg.Data2) && soEqual(rd.Data[2], cfg.Data3) &&
|
||||
soEqual(rd.Data[3], cfg.Data4) && soEqual(rd.Data[4], cfg.Data5)
|
||||
if ok, err = soGreatEqual(rd.Data[0], cfg.Data1); !ok {
|
||||
return
|
||||
}
|
||||
if ok, err = soEqual(rd.Data[1], cfg.Data2); !ok {
|
||||
return
|
||||
}
|
||||
if ok, err = soEqual(rd.Data[2], cfg.Data3); !ok {
|
||||
return
|
||||
}
|
||||
if ok, err = soEqual(rd.Data[3], cfg.Data4); !ok {
|
||||
return
|
||||
}
|
||||
if ok, err = soEqual(rd.Data[4], cfg.Data5); !ok {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (this *ModelRtaskRecord) verifyFirstEqualParam(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtaskRecord) verifyFirstEqualParam(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
var rd *pb.RtaskData
|
||||
if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil {
|
||||
if len(rd.Data) == 0 {
|
||||
@ -47,12 +84,12 @@ func (this *ModelRtaskRecord) verifyFirstEqualParam(uid string, cfg *cfg.GameRdt
|
||||
return
|
||||
}
|
||||
|
||||
return nil, soEqual(rd.Data[0], cfg.Data1)
|
||||
return soEqual(rd.Data[0], cfg.Data1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (this *ModelRtaskRecord) verifyFirstGreatEqualParam(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtaskRecord) verifyFirstGreatEqualParam(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
var rd *pb.RtaskData
|
||||
if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil {
|
||||
if len(rd.Data) == 0 {
|
||||
@ -60,22 +97,22 @@ func (this *ModelRtaskRecord) verifyFirstGreatEqualParam(uid string, cfg *cfg.Ga
|
||||
return
|
||||
}
|
||||
|
||||
return nil, soGreatEqual(rd.Data[0], cfg.Data1)
|
||||
return soGreatEqual(rd.Data[0], cfg.Data1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 英雄指定
|
||||
func (this *ModelRtask) verfiyRtype1(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtask) verfiyRtype1(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
heroModule, err := this.service.GetModule(comm.ModuleHero)
|
||||
if err != nil {
|
||||
return err, false
|
||||
return false, err
|
||||
}
|
||||
|
||||
if h, y := heroModule.(comm.IHero); y {
|
||||
for _, v := range h.GetHeroList(uid) {
|
||||
if soEqual(cast.ToString(cfg.Data1), v.HeroID) {
|
||||
ok = true
|
||||
ok, err = soEqual(cast.ToString(cfg.Data1), v.HeroID)
|
||||
if ok {
|
||||
return
|
||||
}
|
||||
}
|
||||
@ -84,7 +121,7 @@ func (this *ModelRtask) verfiyRtype1(uid string, cfg *cfg.GameRdtaskCondiData) (
|
||||
}
|
||||
|
||||
// 剧情
|
||||
func (this *ModelRtask) verifyRtype2(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtask) verifyRtype2(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
m, err := this.service.GetModule(comm.ModuleMainline)
|
||||
if err != nil {
|
||||
return
|
||||
@ -92,13 +129,13 @@ func (this *ModelRtask) verifyRtype2(uid string, cfg *cfg.GameRdtaskCondiData) (
|
||||
|
||||
if ml, y := m.(comm.IMainline); y {
|
||||
qjId := ml.GetUsermainLineData(uid)
|
||||
return nil, soEqual(qjId, cfg.Data1)
|
||||
return soEqual(qjId, cfg.Data1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 每日任务
|
||||
func (this *ModelRtask) verifyRtype3(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtask) verifyRtype3(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
m, err := this.service.GetModule(comm.ModuleTask)
|
||||
if err != nil {
|
||||
return
|
||||
@ -116,7 +153,7 @@ func (this *ModelRtask) verifyRtype3(uid string, cfg *cfg.GameRdtaskCondiData) (
|
||||
}
|
||||
|
||||
// 指定英雄等级
|
||||
func (this *ModelRtask) verifyRtype4(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtask) verifyRtype4(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
defer printCondiLog(uid, cfg)
|
||||
m, err := this.service.GetModule(comm.ModuleHero)
|
||||
if err != nil {
|
||||
@ -132,15 +169,19 @@ func (this *ModelRtask) verifyRtype4(uid string, cfg *cfg.GameRdtaskCondiData) (
|
||||
}
|
||||
}
|
||||
if hero != nil {
|
||||
return nil, soEqual(hero.HeroID, cast.ToString(cfg.Data1)) &&
|
||||
soGreatEqual(hero.Lv, cfg.Data2)
|
||||
if ok, err = soEqual(hero.HeroID, cast.ToString(cfg.Data1)); !ok {
|
||||
return
|
||||
}
|
||||
if ok, err = soGreatEqual(hero.Lv, cfg.Data2); !ok {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 指定英雄的指定装备数量
|
||||
func (this *ModelRtask) verifyRtype5(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtask) verifyRtype5(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
defer printCondiLog(uid, cfg)
|
||||
m, err := this.service.GetModule(comm.ModuleHero)
|
||||
if err != nil {
|
||||
@ -164,14 +205,16 @@ func (this *ModelRtask) verifyRtype5(uid string, cfg *cfg.GameRdtaskCondiData) (
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil, soEqual(hero.HeroID, cast.ToString(cfg.Data1)) &&
|
||||
soGreatEqual(count, cfg.Data2)
|
||||
if ok, err = soEqual(hero.HeroID, cast.ToString(cfg.Data1)); !ok {
|
||||
return
|
||||
}
|
||||
return soGreatEqual(count, cfg.Data2)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 指定英雄星级
|
||||
func (this *ModelRtask) verifyRtype6(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtask) verifyRtype6(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
defer printCondiLog(uid, cfg)
|
||||
m, err := this.service.GetModule(comm.ModuleHero)
|
||||
if err != nil {
|
||||
@ -188,15 +231,17 @@ func (this *ModelRtask) verifyRtype6(uid string, cfg *cfg.GameRdtaskCondiData) (
|
||||
}
|
||||
|
||||
if hero != nil {
|
||||
return nil, soEqual(hero.HeroID, cast.ToString(cfg.Data1)) &&
|
||||
soGreatEqual(hero.Star, cfg.Data2)
|
||||
if ok, err = soEqual(hero.HeroID, cast.ToString(cfg.Data1)); !ok {
|
||||
return
|
||||
}
|
||||
return soGreatEqual(hero.Star, cfg.Data2)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 日常登录一次
|
||||
func (this *ModelRtask) verfiyRtype7(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtask) verfiyRtype7(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
defer printCondiLog(uid, cfg)
|
||||
userModule, err := this.service.GetModule(comm.ModuleUser)
|
||||
if err != nil {
|
||||
@ -205,14 +250,14 @@ func (this *ModelRtask) verfiyRtype7(uid string, cfg *cfg.GameRdtaskCondiData) (
|
||||
|
||||
if um, y := userModule.(comm.IUser); y {
|
||||
if user := um.GetUser(uid); user != nil {
|
||||
return nil, soEqual(utils.IsToday(user.Logintime), true)
|
||||
return soEqual(utils.IsToday(user.Logintime), true)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 累计登陆xx天
|
||||
func (this *ModelRtask) verfiyRtype8(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtask) verfiyRtype8(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
defer printCondiLog(uid, cfg)
|
||||
userModule, err := this.service.GetModule(comm.ModuleUser)
|
||||
if err != nil {
|
||||
@ -222,15 +267,15 @@ func (this *ModelRtask) verfiyRtype8(uid string, cfg *cfg.GameRdtaskCondiData) (
|
||||
if um, y := userModule.(comm.IUser); y {
|
||||
ud, err := um.GetUserExpand(uid)
|
||||
if err != nil {
|
||||
return err, false
|
||||
return false, err
|
||||
}
|
||||
return nil, soGreatEqual(ud.LoginAddCount, cfg.Data1)
|
||||
return soGreatEqual(ud.LoginAddCount, cfg.Data1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 连续登陆xx天
|
||||
func (this *ModelRtask) verfiyRtype9(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtask) verfiyRtype9(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
defer printCondiLog(uid, cfg)
|
||||
userModule, err := this.service.GetModule(comm.ModuleUser)
|
||||
if err != nil {
|
||||
@ -240,15 +285,15 @@ func (this *ModelRtask) verfiyRtype9(uid string, cfg *cfg.GameRdtaskCondiData) (
|
||||
if um, y := userModule.(comm.IUser); y {
|
||||
ud, err := um.GetUserExpand(uid)
|
||||
if err != nil {
|
||||
return err, false
|
||||
return false, err
|
||||
}
|
||||
return nil, soGreatEqual(ud.LoginContinueCount, cfg.Data1)
|
||||
return soGreatEqual(ud.LoginContinueCount, cfg.Data1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 拥有xx个好友
|
||||
func (this *ModelRtask) verfiyRtype10(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtask) verfiyRtype10(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
defer printCondiLog(uid, cfg)
|
||||
m, err := this.service.GetModule(comm.ModuleFriend)
|
||||
if err != nil {
|
||||
@ -257,13 +302,13 @@ func (this *ModelRtask) verfiyRtype10(uid string, cfg *cfg.GameRdtaskCondiData)
|
||||
|
||||
if mi, y := m.(comm.IFriend); y {
|
||||
count := mi.GetFriendCount(uid)
|
||||
return nil, soGreatEqual(count, cfg.Data1)
|
||||
return soGreatEqual(count, cfg.Data1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 用户等级达到xx级
|
||||
func (this *ModelRtask) verifyRtype20(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtask) verifyRtype20(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
defer printCondiLog(uid, cfg)
|
||||
userModule, err := this.service.GetModule(comm.ModuleUser)
|
||||
if err != nil {
|
||||
@ -272,14 +317,14 @@ func (this *ModelRtask) verifyRtype20(uid string, cfg *cfg.GameRdtaskCondiData)
|
||||
|
||||
if um, y := userModule.(comm.IUser); y {
|
||||
if user := um.GetUser(uid); user != nil {
|
||||
return nil, soGreatEqual(user.Lv, cfg.Data1)
|
||||
return soGreatEqual(user.Lv, cfg.Data1)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 日常任务活跃度达到xx
|
||||
func (this *ModelRtask) verifyRtype63(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) {
|
||||
func (this *ModelRtask) verifyRtype63(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
|
||||
userModule, err := this.service.GetModule(comm.ModuleUser)
|
||||
if err != nil {
|
||||
return
|
||||
@ -288,11 +333,11 @@ func (this *ModelRtask) verifyRtype63(uid string, cfg *cfg.GameRdtaskCondiData)
|
||||
if um, y := userModule.(comm.IUser); y {
|
||||
de, err := um.GetUserExpand(uid)
|
||||
if err != nil {
|
||||
return err, false
|
||||
return false, err
|
||||
}
|
||||
|
||||
if de != nil {
|
||||
ok = soGreatEqual(de.Activeday, cfg.Data1)
|
||||
return soGreatEqual(de.Activeday, cfg.Data1)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@ func TestVerify2(t *testing.T) {
|
||||
patches3 := gomonkey.ApplyGlobalVar(&vals, []int32{25001})
|
||||
defer patches3.Reset()
|
||||
|
||||
condiId := rtask.equalParams(conf, vals...)
|
||||
condiId, _ := rtask.equalParams(conf, vals...)
|
||||
So(condiId, ShouldEqual, 101)
|
||||
|
||||
})
|
||||
|
@ -1,6 +1,7 @@
|
||||
package task
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/core"
|
||||
event_v2 "go_dreamfactory/lego/sys/event/v2"
|
||||
@ -8,6 +9,7 @@ import (
|
||||
"go_dreamfactory/pb"
|
||||
"sort"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
@ -257,18 +259,22 @@ func (this *ModelTask) inStrategy(uid string, heroCfgId int32) (taskIds []int32,
|
||||
func (this *ModelTask) doTaskHandle(event interface{}, next func(event interface{})) {
|
||||
tl := event.(*TaskListen)
|
||||
|
||||
// 获取玩家的指定事件列表
|
||||
data, err := this.moduleTask.configure.getTasks(int32(tl.TaskType))
|
||||
if err != nil {
|
||||
this.moduleTask.Errorf("taskHandle err %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
// 获取玩家的任务条件数据
|
||||
dr := this.moduleTask.ModuleRtask.GetCondiData(tl.Uid)
|
||||
if dr == nil {
|
||||
return
|
||||
}
|
||||
|
||||
// 遍历事件列表
|
||||
for _, conf := range data {
|
||||
// 从任务条件中查找
|
||||
ret, ok := dr.Vals[conf.TypeId]
|
||||
if !ok {
|
||||
continue
|
||||
@ -286,6 +292,7 @@ func (this *ModelTask) doTaskHandle(event interface{}, next func(event interface
|
||||
"progress": progress,
|
||||
"status": 1,
|
||||
}
|
||||
err = this.updateActive(tl.Uid, conf.Key)
|
||||
} else {
|
||||
if ret != nil && len(ret.Data) > 0 {
|
||||
progress = ret.Data[0]
|
||||
@ -298,11 +305,38 @@ func (this *ModelTask) doTaskHandle(event interface{}, next func(event interface
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 更新活跃度
|
||||
func (this *ModelTask) updateActive(uid string, cfgId int32) error {
|
||||
// 更新活跃度
|
||||
de, err := this.moduleTask.ModuleUser.GetUserExpand(uid)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
conf := this.moduleTask.configure.getTaskById(cfgId)
|
||||
if conf == nil {
|
||||
return errors.New(fmt.Sprintf("%v config nil", cfgId))
|
||||
}
|
||||
|
||||
switch conf.IdTag {
|
||||
case int32(comm.TASK_DAILY):
|
||||
de.Activeday += conf.Active
|
||||
case int32(comm.TASK_WEEKLY):
|
||||
de.Activeweek += conf.Active
|
||||
}
|
||||
|
||||
update := map[string]interface{}{
|
||||
"activeday": de.Activeday,
|
||||
"activeweek": de.Activeweek,
|
||||
}
|
||||
|
||||
return this.moduleTask.ModuleUser.ChangeUserExpand(uid, update)
|
||||
}
|
||||
|
||||
type TaskListen struct {
|
||||
event_v2.Event
|
||||
Uid string
|
||||
|
@ -134,11 +134,12 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod
|
||||
} else {
|
||||
rsp.Ex = expand
|
||||
}
|
||||
|
||||
// if this.module.ModuleSys.IsAccess("", user.Lv) {
|
||||
this.module.ModuleRtask.InitCondiData(user.Uid)
|
||||
// }
|
||||
}
|
||||
|
||||
// if this.module.ModuleSys.IsAccess("", user.Lv) {
|
||||
this.module.ModuleRtask.InitCondiData(user.Uid)
|
||||
// }
|
||||
|
||||
mail := &pb.DBMailData{
|
||||
ObjId: primitive.NewObjectID().Hex(),
|
||||
Uid: user.Uid,
|
||||
|
@ -65,7 +65,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
|
||||
viking.Boss[req.BossType] += 1
|
||||
mapData["boss"] = viking.Boss
|
||||
|
||||
if req.Report != nil && len(req.Report.Info.Redflist) > 0 {
|
||||
if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
|
||||
sz := make([]*pb.LineUp, 5)
|
||||
for i, v := range req.Report.Info.Redflist[0].Team {
|
||||
if v != nil {
|
||||
|
@ -80,12 +80,13 @@ type DBLibrary struct {
|
||||
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
|
||||
Fid int32 `protobuf:"varint,3,opt,name=fid,proto3" json:"fid"` // 配置表id 羁绊id
|
||||
Hero map[string]int32 `protobuf:"bytes,4,rep,name=hero,proto3" json:"hero" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key: hid value: favorlv
|
||||
Prize bool `protobuf:"varint,5,opt,name=prize,proto3" json:"prize"` //是否领奖
|
||||
Fetterlv int32 `protobuf:"varint,6,opt,name=fetterlv,proto3" json:"fetterlv"` // 当前羁绊等级
|
||||
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
|
||||
Fid int32 `protobuf:"varint,3,opt,name=fid,proto3" json:"fid"` // 配置表id 羁绊id
|
||||
Hero map[string]int32 `protobuf:"bytes,4,rep,name=hero,proto3" json:"hero" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key: hid value: favorlv
|
||||
Prize map[int32]int32 `protobuf:"bytes,5,rep,name=prize,proto3" json:"prize" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //是否领奖
|
||||
Fetterlv int32 `protobuf:"varint,6,opt,name=fetterlv,proto3" json:"fetterlv"` // 当前羁绊等级
|
||||
Storyid int32 `protobuf:"varint,7,opt,name=storyid,proto3" json:"storyid"` // 故事id 用来判断是否领奖
|
||||
}
|
||||
|
||||
func (x *DBLibrary) Reset() {
|
||||
@ -148,11 +149,11 @@ func (x *DBLibrary) GetHero() map[string]int32 {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *DBLibrary) GetPrize() bool {
|
||||
func (x *DBLibrary) GetPrize() map[int32]int32 {
|
||||
if x != nil {
|
||||
return x.Prize
|
||||
}
|
||||
return false
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *DBLibrary) GetFetterlv() int32 {
|
||||
@ -162,6 +163,13 @@ func (x *DBLibrary) GetFetterlv() int32 {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *DBLibrary) GetStoryid() int32 {
|
||||
if x != nil {
|
||||
return x.Storyid
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
var File_library_library_db_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_library_library_db_proto_rawDesc = []byte{
|
||||
@ -169,21 +177,28 @@ var file_library_library_db_proto_rawDesc = []byte{
|
||||
0x79, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2a, 0x0a, 0x06, 0x46, 0x65,
|
||||
0x74, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0xd4, 0x01, 0x0a, 0x09, 0x44, 0x42, 0x4c, 0x69, 0x62,
|
||||
0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0xbf, 0x02, 0x0a, 0x09, 0x44, 0x42, 0x4c, 0x69, 0x62,
|
||||
0x72, 0x61, 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, 0x10, 0x0a, 0x03, 0x66, 0x69, 0x64, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f,
|
||||
0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x4c, 0x69, 0x62, 0x72, 0x61,
|
||||
0x72, 0x79, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x68, 0x65,
|
||||
0x72, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
|
||||
0x08, 0x52, 0x05, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x74, 0x74,
|
||||
0x65, 0x72, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x65, 0x74, 0x74,
|
||||
0x65, 0x72, 0x6c, 0x76, 0x1a, 0x37, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72,
|
||||
0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x42, 0x06, 0x5a,
|
||||
0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x72, 0x6f, 0x12, 0x2b, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x50, 0x72,
|
||||
0x69, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x12,
|
||||
0x1a, 0x0a, 0x08, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x08, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x6c, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x73,
|
||||
0x74, 0x6f, 0x72, 0x79, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74,
|
||||
0x6f, 0x72, 0x79, 0x69, 0x64, 0x1a, 0x37, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74,
|
||||
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x1a, 0x38,
|
||||
0x0a, 0x0a, 0x50, 0x72, 0x69, 0x7a, 0x65, 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
|
||||
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -198,19 +213,21 @@ func file_library_library_db_proto_rawDescGZIP() []byte {
|
||||
return file_library_library_db_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_library_library_db_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
||||
var file_library_library_db_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||
var file_library_library_db_proto_goTypes = []interface{}{
|
||||
(*Fetter)(nil), // 0: Fetter
|
||||
(*DBLibrary)(nil), // 1: DBLibrary
|
||||
nil, // 2: DBLibrary.HeroEntry
|
||||
nil, // 3: DBLibrary.PrizeEntry
|
||||
}
|
||||
var file_library_library_db_proto_depIdxs = []int32{
|
||||
2, // 0: DBLibrary.hero:type_name -> DBLibrary.HeroEntry
|
||||
1, // [1:1] is the sub-list for method output_type
|
||||
1, // [1:1] is the sub-list for method input_type
|
||||
1, // [1:1] is the sub-list for extension type_name
|
||||
1, // [1:1] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
3, // 1: DBLibrary.prize:type_name -> DBLibrary.PrizeEntry
|
||||
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_library_library_db_proto_init() }
|
||||
@ -250,7 +267,7 @@ func file_library_library_db_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_library_library_db_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 3,
|
||||
NumMessages: 4,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
|
42
sys/configure/structs/Game.NameLibrary.go
Normal file
42
sys/configure/structs/Game.NameLibrary.go
Normal file
@ -0,0 +1,42 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <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 GameNameLibrary struct {
|
||||
_dataMap map[int32]*GameNameLibraryData
|
||||
_dataList []*GameNameLibraryData
|
||||
}
|
||||
|
||||
func NewGameNameLibrary(_buf []map[string]interface{}) (*GameNameLibrary, error) {
|
||||
_dataList := make([]*GameNameLibraryData, 0, len(_buf))
|
||||
dataMap := make(map[int32]*GameNameLibraryData)
|
||||
for _, _ele_ := range _buf {
|
||||
if _v, err2 := DeserializeGameNameLibraryData(_ele_); err2 != nil {
|
||||
return nil, err2
|
||||
} else {
|
||||
_dataList = append(_dataList, _v)
|
||||
dataMap[_v.Id] = _v
|
||||
}
|
||||
}
|
||||
return &GameNameLibrary{_dataList:_dataList, _dataMap:dataMap}, nil
|
||||
}
|
||||
|
||||
func (table *GameNameLibrary) GetDataMap() map[int32]*GameNameLibraryData {
|
||||
return table._dataMap
|
||||
}
|
||||
|
||||
func (table *GameNameLibrary) GetDataList() []*GameNameLibraryData {
|
||||
return table._dataList
|
||||
}
|
||||
|
||||
func (table *GameNameLibrary) Get(key int32) *GameNameLibraryData {
|
||||
return table._dataMap[key]
|
||||
}
|
||||
|
||||
|
39
sys/configure/structs/Game.NameLibraryData.go
Normal file
39
sys/configure/structs/Game.NameLibraryData.go
Normal file
@ -0,0 +1,39 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <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 GameNameLibraryData struct {
|
||||
Id int32
|
||||
Surname string
|
||||
Name string
|
||||
}
|
||||
|
||||
const TypeId_GameNameLibraryData = 77094270
|
||||
|
||||
func (*GameNameLibraryData) GetTypeId() int32 {
|
||||
return 77094270
|
||||
}
|
||||
|
||||
func (_v *GameNameLibraryData)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["surname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Surname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Surname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
|
||||
{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 } } }
|
||||
return
|
||||
}
|
||||
|
||||
func DeserializeGameNameLibraryData(_buf map[string]interface{}) (*GameNameLibraryData, error) {
|
||||
v := &GameNameLibraryData{}
|
||||
if err := v.Deserialize(_buf); err == nil {
|
||||
return v, nil
|
||||
} else {
|
||||
return nil, err
|
||||
}
|
||||
}
|
@ -13,6 +13,7 @@ import "errors"
|
||||
type GameRdtaskData struct {
|
||||
Id int32
|
||||
Group int32
|
||||
Subgroup int32
|
||||
Type int32
|
||||
PreTid int32
|
||||
Condition []int32
|
||||
@ -28,6 +29,7 @@ func (*GameRdtaskData) GetTypeId() int32 {
|
||||
func (_v *GameRdtaskData)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["group"].(float64); !_ok_ { err = errors.New("group error"); return }; _v.Group = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["subgroup"].(float64); !_ok_ { err = errors.New("subgroup error"); return }; _v.Subgroup = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["preTid"].(float64); !_ok_ { err = errors.New("preTid error"); return }; _v.PreTid = int32(_tempNum_) }
|
||||
{
|
||||
|
@ -99,6 +99,7 @@ type Tables struct {
|
||||
Robot *GameRobot
|
||||
Ip *GameIp
|
||||
GameColor *GameGameColor
|
||||
NameLibrary *GameNameLibrary
|
||||
}
|
||||
|
||||
func NewTables(loader JsonLoader) (*Tables, error) {
|
||||
@ -634,5 +635,11 @@ func NewTables(loader JsonLoader) (*Tables, error) {
|
||||
if tables.GameColor, err = NewGameGameColor(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_namelibrary") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if tables.NameLibrary, err = NewGameNameLibrary(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return tables, nil
|
||||
}
|
||||
|
@ -41,6 +41,7 @@ type GameHeroData struct {
|
||||
Camerainterval float32
|
||||
Equiprcom []string
|
||||
Angle int32
|
||||
Deviation int32
|
||||
}
|
||||
|
||||
const TypeId_GameHeroData = 1513828672
|
||||
@ -125,6 +126,7 @@ func (_v *GameHeroData)Deserialize(_buf map[string]interface{}) (err error) {
|
||||
}
|
||||
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["angle"].(float64); !_ok_ { err = errors.New("angle error"); return }; _v.Angle = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["deviation"].(float64); !_ok_ { err = errors.New("deviation error"); return }; _v.Deviation = int32(_tempNum_) }
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -151,6 +151,7 @@ func (this *DBModel) UpdateModelLogs(table string, uID string, where bson.M, tar
|
||||
|
||||
//添加新的数据
|
||||
func (this *DBModel) Add(uid string, data interface{}, opt ...DBOption) (err error) {
|
||||
//defer log.Debug("DBModel Add", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "data", Value: data})
|
||||
if err = this.Redis.HMSet(this.ukey(uid), data); err != nil {
|
||||
return
|
||||
}
|
||||
@ -167,6 +168,7 @@ func (this *DBModel) Add(uid string, data interface{}, opt ...DBOption) (err err
|
||||
|
||||
//添加新的数据到列表
|
||||
func (this *DBModel) AddList(uid string, id string, data interface{}, opt ...DBOption) (err error) {
|
||||
//defer log.Debug("DBModel AddList", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "_id", Value: id}, log.Field{Key: "data", Value: data})
|
||||
key := this.ukeylist(uid, id)
|
||||
if err = this.Redis.HMSet(key, data); err != nil {
|
||||
return
|
||||
@ -187,6 +189,7 @@ func (this *DBModel) AddList(uid string, id string, data interface{}, opt ...DBO
|
||||
|
||||
//添加新的多个数据到列表 data map[string]type
|
||||
func (this *DBModel) AddLists(uid string, data interface{}, opt ...DBOption) (err error) {
|
||||
//defer log.Debug("DBModel AddLists", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "data", Value: data})
|
||||
vof := reflect.ValueOf(data)
|
||||
if !vof.IsValid() {
|
||||
return fmt.Errorf("Model_Comp: AddLists(nil)")
|
||||
@ -229,6 +232,7 @@ func (this *DBModel) AddLists(uid string, data interface{}, opt ...DBOption) (er
|
||||
|
||||
//添加队列
|
||||
func (this *DBModel) AddQueues(key string, uplimit int64, data interface{}) (outkey []string, err error) {
|
||||
//defer log.Debug("DBModel AddQueues", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "key", Value: key}, log.Field{Key: "data", Value: data})
|
||||
vof := reflect.ValueOf(data)
|
||||
if !vof.IsValid() {
|
||||
err = fmt.Errorf("Model_Comp: AddLists(nil)")
|
||||
@ -268,6 +272,7 @@ func (this *DBModel) AddQueues(key string, uplimit int64, data interface{}) (out
|
||||
|
||||
//修改数据多个字段 uid 作为主键
|
||||
func (this *DBModel) Change(uid string, data map[string]interface{}, opt ...DBOption) (err error) {
|
||||
//defer log.Debug("DBModel Change", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "data", Value: data})
|
||||
if err = this.Redis.HMSet(this.ukey(uid), data); err != nil {
|
||||
return
|
||||
}
|
||||
@ -284,7 +289,9 @@ func (this *DBModel) Change(uid string, data map[string]interface{}, opt ...DBOp
|
||||
|
||||
//修改数据多个字段 uid 作为主键
|
||||
func (this *DBModel) ChangeList(uid string, _id string, data map[string]interface{}, opt ...DBOption) (err error) {
|
||||
//defer log.Debug("DBModel ChangeList", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "_id", Value: _id}, log.Field{Key: "data", Value: data})
|
||||
if err = this.Redis.HMSet(this.ukeylist(uid, _id), data); err != nil {
|
||||
log.Error("DBModel ChangeList", log.Field{Key: "err", Value: err})
|
||||
return
|
||||
}
|
||||
|
||||
@ -301,6 +308,7 @@ func (this *DBModel) ChangeList(uid string, _id string, data map[string]interfac
|
||||
|
||||
//读取全部数据
|
||||
func (this *DBModel) Get(uid string, data interface{}, opt ...DBOption) (err error) {
|
||||
//defer log.Debug("DBModel Get", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "data", Value: data})
|
||||
if err = this.Redis.HGetAll(this.ukey(uid), data); err != nil && err != lgredis.RedisNil {
|
||||
return
|
||||
}
|
||||
@ -320,6 +328,7 @@ func (this *DBModel) Get(uid string, data interface{}, opt ...DBOption) (err err
|
||||
|
||||
//获取列表数据 注意 data 必须是 切片的指针 *[]type
|
||||
func (this *DBModel) GetList(uid string, data interface{}) (err error) {
|
||||
//defer log.Debug("DBModel GetList", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "data", Value: data})
|
||||
var (
|
||||
dtype reflect2.Type
|
||||
dkind reflect.Kind
|
||||
@ -435,6 +444,7 @@ func (this *DBModel) GetList(uid string, data interface{}) (err error) {
|
||||
|
||||
//获取队列数据
|
||||
func (this *DBModel) GetQueues(key string, count int, data interface{}) (err error) {
|
||||
//defer log.Debug("DBModel GetQueues", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "key", Value: key}, log.Field{Key: "data", Value: data})
|
||||
var (
|
||||
dtype reflect2.Type
|
||||
dkind reflect.Kind
|
||||
@ -505,6 +515,7 @@ func (this *DBModel) GetQueues(key string, count int, data interface{}) (err err
|
||||
|
||||
//读取单个数据中 多个字段数据
|
||||
func (this *DBModel) GetFields(uid string, data interface{}, fields ...string) (err error) {
|
||||
//defer log.Debug("DBModel GetFields", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "data", Value: data})
|
||||
if err = this.Redis.HMGet(this.ukey(uid), data, fields...); err != nil && err != lgredis.RedisNil {
|
||||
return
|
||||
}
|
||||
@ -524,6 +535,7 @@ func (this *DBModel) GetFields(uid string, data interface{}, fields ...string) (
|
||||
|
||||
//读取List列表中单个数据中 多个字段数据
|
||||
func (this *DBModel) GetListFields(uid string, id string, data interface{}, fields ...string) (err error) {
|
||||
//defer log.Debug("DBModel GetListFields", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "id", Value: id}, log.Field{Key: "data", Value: data})
|
||||
var (
|
||||
c *mongo.Cursor
|
||||
keys map[string]string
|
||||
@ -578,6 +590,7 @@ func (this *DBModel) GetListFields(uid string, id string, data interface{}, fiel
|
||||
|
||||
//读取列表数据中单个数据
|
||||
func (this *DBModel) GetListObj(uid string, id string, data interface{}) (err error) {
|
||||
//defer log.Debug("DBModel GetListObj", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "id", Value: id}, log.Field{Key: "data", Value: data})
|
||||
var (
|
||||
c *mongo.Cursor
|
||||
keys map[string]string
|
||||
@ -642,6 +655,7 @@ func (this *DBModel) GetListObj(uid string, id string, data interface{}) (err er
|
||||
|
||||
//读取列表数据中单个数据
|
||||
func (this *DBModel) GetListObjs(uid string, ids []string, data interface{}) (err error) {
|
||||
//defer log.Debug("DBModel GetListObjs", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "ids", Value: ids}, log.Field{Key: "data", Value: data})
|
||||
var (
|
||||
dtype reflect2.Type
|
||||
dkind reflect.Kind
|
||||
@ -754,6 +768,7 @@ func (this *DBModel) GetListObjs(uid string, ids []string, data interface{}) (er
|
||||
|
||||
//删除用户数据
|
||||
func (this *DBModel) Del(uid string, opt ...DBOption) (err error) {
|
||||
//defer log.Debug("DBModel Del", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid})
|
||||
err = this.Redis.Delete(this.ukey(uid))
|
||||
if err != nil {
|
||||
return err
|
||||
@ -767,6 +782,7 @@ func (this *DBModel) Del(uid string, opt ...DBOption) (err error) {
|
||||
|
||||
//删除多条数据
|
||||
func (this *DBModel) DelListlds(uid string, ids ...string) (err error) {
|
||||
//defer log.Debug("DBModel DelListlds", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "ids", Value: ids})
|
||||
listkey := this.ukey(uid)
|
||||
pipe := this.Redis.RedisPipe(context.TODO())
|
||||
for _, v := range ids {
|
||||
@ -782,6 +798,7 @@ func (this *DBModel) DelListlds(uid string, ids ...string) (err error) {
|
||||
|
||||
//批量删除数据
|
||||
func (this *DBModel) BatchDelLists(uid string) (err error) {
|
||||
//defer log.Debug("DBModel BatchDelLists", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid})
|
||||
var keys map[string]string
|
||||
pipe := this.Redis.RedisPipe(context.TODO())
|
||||
if keys, err = this.Redis.HGetAllToMapString(this.ukey(uid)); err == nil {
|
||||
|
Loading…
Reference in New Issue
Block a user