Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into platform_10.0.0.7

This commit is contained in:
liwei 2022-09-22 10:06:45 +08:00
commit f7f89a24e8
78 changed files with 4479 additions and 2660 deletions

2
.gitignore vendored
View File

@ -24,3 +24,5 @@ pb.bat
cmd/v2/.cache.meta cmd/v2/.cache.meta
cmd/v2/my.db cmd/v2/my.db
.idea/ .idea/
bin/cross.json
bin/gm.json

View File

@ -2,6 +2,7 @@ CGO_ENABLED=0
GO111MODULE=on GO111MODULE=on
GOOS=linux GOOS=linux
cd ../ cd ../
go build -o ./bin/cmd ./services/cmd/main.go
go build -o ./bin/mainte ./services/mainte/main.go go build -o ./bin/mainte ./services/mainte/main.go
go build -o ./bin/gateway ./services/gateway/main.go go build -o ./bin/gateway ./services/gateway/main.go
go build -o ./bin/worker ./services/worker/main.go go build -o ./bin/worker ./services/worker/main.go

View File

@ -3,7 +3,7 @@
"key": 1, "key": 1,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool1",
"star": 4, "star": 3,
"race": 1, "race": 1,
"id": "14007", "id": "14007",
"weight": 1000 "weight": 1000
@ -13,318 +13,264 @@
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool1",
"star": 4, "star": 4,
"race": 2, "race": 1,
"id": "24002", "id": "14007",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 3, "key": 3,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool1",
"star": 4, "star": 5,
"race": 2, "race": 1,
"id": "35001", "id": "14007",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 4, "key": 4,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool2",
"star": 4, "star": 5,
"race": 4, "race": 1,
"id": "44006", "id": "14007",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 5, "key": 5,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool2",
"star": 4, "star": 3,
"race": 4, "race": 2,
"id": "44005", "id": "24002",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 6, "key": 6,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool2",
"star": 5, "star": 3,
"race": 1, "race": 2,
"id": "15004", "id": "35001",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 7, "key": 7,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool2",
"star": 5, "star": 3,
"race": 2, "race": 4,
"id": "25001", "id": "44006",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 8, "key": 8,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool2",
"star": 5, "star": 3,
"race": 2, "race": 4,
"id": "25004", "id": "44005",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 9, "key": 9,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool2",
"star": 5, "star": 4,
"race": 4, "race": 1,
"id": "45003", "id": "15004",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 10, "key": 10,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool2",
"star": 4, "star": 4,
"race": 1, "race": 2,
"id": "14007", "id": "25001",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 11, "key": 11,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool2",
"star": 4, "star": 4,
"race": 2, "race": 2,
"id": "24002", "id": "25004",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 12, "key": 12,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool2",
"star": 4, "star": 4,
"race": 2, "race": 4,
"id": "35001", "id": "45003",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 13, "key": 13,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool3",
"star": 4, "star": 5,
"race": 4, "race": 1,
"id": "44006", "id": "14007",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 14, "key": 14,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool3",
"star": 4, "star": 3,
"race": 4, "race": 2,
"id": "44005", "id": "24002",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 15, "key": 15,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool3",
"star": 5, "star": 3,
"race": 1, "race": 2,
"id": "15004", "id": "35001",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 16, "key": 16,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool3",
"star": 5, "star": 3,
"race": 2, "race": 4,
"id": "25001", "id": "44006",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 17, "key": 17,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool3",
"star": 5, "star": 3,
"race": 2, "race": 4,
"id": "25004", "id": "44005",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 18, "key": 18,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool3",
"star": 5, "star": 4,
"race": 4, "race": 1,
"id": "45003", "id": "15004",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 19, "key": 19,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool3",
"star": 4, "star": 4,
"race": 1, "race": 2,
"id": "14007", "id": "25001",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 20, "key": 20,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool3",
"star": 4, "star": 4,
"race": 2, "race": 2,
"id": "24002", "id": "25004",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 21, "key": 21,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool3",
"star": 4, "star": 4,
"race": 2, "race": 4,
"id": "35001", "id": "45003",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 22, "key": 22,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool4",
"star": 4,
"race": 4,
"id": "44006",
"weight": 1000
},
{
"key": 23,
"recruitment_type": 1,
"card_pool_type": "base_pool1",
"star": 4,
"race": 4,
"id": "44005",
"weight": 1000
},
{
"key": 24,
"recruitment_type": 1,
"card_pool_type": "base_pool1",
"star": 5, "star": 5,
"race": 1, "race": 1,
"id": "15004",
"weight": 1000
},
{
"key": 25,
"recruitment_type": 1,
"card_pool_type": "base_pool1",
"star": 5,
"race": 2,
"id": "25001",
"weight": 1000
},
{
"key": 26,
"recruitment_type": 1,
"card_pool_type": "base_pool1",
"star": 5,
"race": 2,
"id": "25004",
"weight": 1000
},
{
"key": 27,
"recruitment_type": 1,
"card_pool_type": "base_pool1",
"star": 5,
"race": 4,
"id": "45003",
"weight": 1000
},
{
"key": 28,
"recruitment_type": 1,
"card_pool_type": "base_pool1",
"star": 4,
"race": 1,
"id": "14007", "id": "14007",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 29, "key": 23,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool4",
"star": 4, "star": 3,
"race": 2, "race": 2,
"id": "24002", "id": "24002",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 30, "key": 24,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool4",
"star": 4, "star": 3,
"race": 2, "race": 2,
"id": "35001", "id": "35001",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 31, "key": 25,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool4",
"star": 4, "star": 3,
"race": 4, "race": 4,
"id": "44006", "id": "44006",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 32, "key": 26,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool4",
"star": 4, "star": 3,
"race": 4, "race": 4,
"id": "44005", "id": "44005",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 33, "key": 27,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool4",
"star": 5, "star": 4,
"race": 1, "race": 1,
"id": "15004", "id": "15004",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 34, "key": 28,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool4",
"star": 5, "star": 4,
"race": 2, "race": 2,
"id": "25001", "id": "25001",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 35, "key": 29,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool4",
"star": 5, "star": 4,
"race": 2, "race": 2,
"id": "25004", "id": "25004",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 36, "key": 30,
"recruitment_type": 1, "recruitment_type": 1,
"card_pool_type": "base_pool1", "card_pool_type": "base_pool4",
"star": 5, "star": 4,
"race": 4, "race": 4,
"id": "45003", "id": "45003",
"weight": 1000 "weight": 1000
}, },
{ {
"key": 121, "key": 31,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 3, "star": 3,
@ -333,7 +279,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 122, "key": 32,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 3, "star": 3,
@ -342,7 +288,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 123, "key": 33,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 3, "star": 3,
@ -351,7 +297,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 124, "key": 34,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 3, "star": 3,
@ -360,7 +306,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 125, "key": 35,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 3, "star": 3,
@ -369,7 +315,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 126, "key": 36,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 4, "star": 4,
@ -378,7 +324,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 127, "key": 37,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 4, "star": 4,
@ -387,7 +333,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 128, "key": 38,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 4, "star": 4,
@ -396,7 +342,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 129, "key": 39,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 4, "star": 4,
@ -405,7 +351,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 130, "key": 40,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 4, "star": 4,
@ -414,7 +360,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 131, "key": 41,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 4, "star": 4,
@ -423,7 +369,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 132, "key": 42,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 4, "star": 4,
@ -432,7 +378,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 133, "key": 43,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 5, "star": 5,
@ -441,7 +387,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 134, "key": 44,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 5, "star": 5,
@ -450,7 +396,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 135, "key": 45,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 5, "star": 5,
@ -459,7 +405,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 136, "key": 46,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp1_pool", "card_pool_type": "camp1_pool",
"star": 5, "star": 5,
@ -468,7 +414,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 137, "key": 47,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 3, "star": 3,
@ -477,7 +423,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 138, "key": 48,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 3, "star": 3,
@ -486,7 +432,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 139, "key": 49,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 3, "star": 3,
@ -495,7 +441,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 140, "key": 50,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 3, "star": 3,
@ -504,7 +450,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 141, "key": 51,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 4, "star": 4,
@ -513,7 +459,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 142, "key": 52,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 4, "star": 4,
@ -522,7 +468,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 143, "key": 53,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 4, "star": 4,
@ -531,7 +477,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 144, "key": 54,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 4, "star": 4,
@ -540,7 +486,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 145, "key": 55,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 4, "star": 4,
@ -549,7 +495,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 146, "key": 56,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 4, "star": 4,
@ -558,7 +504,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 147, "key": 57,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 4, "star": 4,
@ -567,7 +513,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 148, "key": 58,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 4, "star": 4,
@ -576,7 +522,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 149, "key": 59,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 4, "star": 4,
@ -585,7 +531,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 150, "key": 60,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 5, "star": 5,
@ -594,7 +540,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 151, "key": 61,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 5, "star": 5,
@ -603,7 +549,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 152, "key": 62,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 5, "star": 5,
@ -612,7 +558,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 153, "key": 63,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp2_pool", "card_pool_type": "camp2_pool",
"star": 5, "star": 5,
@ -621,7 +567,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 154, "key": 64,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 3, "star": 3,
@ -630,7 +576,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 155, "key": 65,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 3, "star": 3,
@ -639,7 +585,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 156, "key": 66,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 3, "star": 3,
@ -648,7 +594,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 157, "key": 67,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 3, "star": 3,
@ -657,7 +603,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 158, "key": 68,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 3, "star": 3,
@ -666,7 +612,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 159, "key": 69,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 3, "star": 3,
@ -675,7 +621,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 160, "key": 70,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 4, "star": 4,
@ -684,7 +630,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 161, "key": 71,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 4, "star": 4,
@ -693,7 +639,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 162, "key": 72,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 4, "star": 4,
@ -702,7 +648,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 163, "key": 73,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 4, "star": 4,
@ -711,7 +657,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 164, "key": 74,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 4, "star": 4,
@ -720,7 +666,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 165, "key": 75,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 4, "star": 4,
@ -729,7 +675,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 166, "key": 76,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 4, "star": 4,
@ -738,7 +684,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 167, "key": 77,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 4, "star": 4,
@ -747,7 +693,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 168, "key": 78,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 5, "star": 5,
@ -756,7 +702,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 169, "key": 79,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 5, "star": 5,
@ -765,7 +711,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 170, "key": 80,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 5, "star": 5,
@ -774,7 +720,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 171, "key": 81,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 5, "star": 5,
@ -783,7 +729,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 172, "key": 82,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp3_pool", "card_pool_type": "camp3_pool",
"star": 5, "star": 5,
@ -792,7 +738,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 173, "key": 83,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 3, "star": 3,
@ -801,7 +747,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 174, "key": 84,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 3, "star": 3,
@ -810,7 +756,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 175, "key": 85,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 3, "star": 3,
@ -819,7 +765,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 176, "key": 86,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 3, "star": 3,
@ -828,7 +774,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 177, "key": 87,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 3, "star": 3,
@ -837,7 +783,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 178, "key": 88,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 3, "star": 3,
@ -846,7 +792,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 179, "key": 89,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 3, "star": 3,
@ -855,7 +801,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 180, "key": 90,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 4, "star": 4,
@ -864,7 +810,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 181, "key": 91,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 4, "star": 4,
@ -873,7 +819,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 182, "key": 92,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 4, "star": 4,
@ -882,7 +828,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 183, "key": 93,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 4, "star": 4,
@ -891,7 +837,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 184, "key": 94,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 4, "star": 4,
@ -900,7 +846,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 185, "key": 95,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 5, "star": 5,
@ -909,7 +855,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 186, "key": 96,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 5, "star": 5,
@ -918,7 +864,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 187, "key": 97,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 5, "star": 5,
@ -927,7 +873,7 @@
"weight": 1000 "weight": 1000
}, },
{ {
"key": 188, "key": 98,
"recruitment_type": 2, "recruitment_type": 2,
"card_pool_type": "camp4_pool", "card_pool_type": "camp4_pool",
"star": 5, "star": 5,

View File

@ -104,12 +104,12 @@
"camp3_pool1": "camp3_pool", "camp3_pool1": "camp3_pool",
"camp4_pool1": "camp4_pool", "camp4_pool1": "camp4_pool",
"base_pool1": { "base_pool1": {
"s": 1, "s": 0,
"e": 60, "e": 1,
"p": "base_pool1" "p": "base_pool1"
}, },
"base_pool2": { "base_pool2": {
"s": 61, "s": 2,
"e": 200, "e": 200,
"p": "base_pool2" "p": "base_pool2"
}, },
@ -119,7 +119,7 @@
"p": "base_pool3" "p": "base_pool3"
}, },
"base_pool4": { "base_pool4": {
"s": 1000, "s": 1001,
"e": 99999999, "e": 99999999,
"p": "base_pool4" "p": "base_pool4"
}, },

View File

@ -654,8 +654,8 @@
"key": "hero_14007", "key": "hero_14007",
"text": "格里斯特王子" "text": "格里斯特王子"
}, },
"star": 4, "star": 5,
"color": 3, "color": 4,
"race": 1, "race": 1,
"job": 2, "job": 2,
"type": 1, "type": 1,
@ -890,8 +890,8 @@
"key": "hero_15004", "key": "hero_15004",
"text": "小欧" "text": "小欧"
}, },
"star": 5, "star": 3,
"color": 4, "color": 2,
"race": 1, "race": 1,
"job": 4, "job": 4,
"type": 1, "type": 1,
@ -1244,8 +1244,8 @@
"key": "hero_24002", "key": "hero_24002",
"text": "牙仙" "text": "牙仙"
}, },
"star": 4, "star": 3,
"color": 3, "color": 2,
"race": 2, "race": 2,
"job": 1, "job": 1,
"type": 1, "type": 1,
@ -1271,7 +1271,7 @@
"y": 0, "y": 0,
"z": 0 "z": 0
}, },
"skill": 124002011, "skill": 0,
"skill1": 124002111, "skill1": 124002111,
"skill2": 124002211, "skill2": 124002211,
"skill3": 124002311, "skill3": 124002311,
@ -1303,8 +1303,8 @@
"key": "hero_24003", "key": "hero_24003",
"text": "睡神沙人" "text": "睡神沙人"
}, },
"star": 4, "star": 3,
"color": 3, "color": 2,
"race": 2, "race": 2,
"job": 4, "job": 4,
"type": 1, "type": 1,
@ -1362,8 +1362,8 @@
"key": "hero_24004", "key": "hero_24004",
"text": "邦尼兔" "text": "邦尼兔"
}, },
"star": 4, "star": 3,
"color": 3, "color": 2,
"race": 2, "race": 2,
"job": 1, "job": 1,
"type": 1, "type": 1,
@ -1716,8 +1716,8 @@
"key": "hero_25001", "key": "hero_25001",
"text": "阿宝" "text": "阿宝"
}, },
"star": 5, "star": 4,
"color": 4, "color": 3,
"race": 2, "race": 2,
"job": 2, "job": 2,
"type": 1, "type": 1,
@ -1893,8 +1893,8 @@
"key": "hero_25004", "key": "hero_25004",
"text": "波比" "text": "波比"
}, },
"star": 5, "star": 3,
"color": 4, "color": 2,
"race": 2, "race": 2,
"job": 3, "job": 3,
"type": 1, "type": 1,
@ -2778,8 +2778,8 @@
"key": "hero_35001", "key": "hero_35001",
"text": "师父" "text": "师父"
}, },
"star": 4, "star": 3,
"color": 3, "color": 2,
"race": 2, "race": 2,
"job": 2, "job": 2,
"type": 1, "type": 1,
@ -3781,8 +3781,8 @@
"key": "hero_44006", "key": "hero_44006",
"text": "悍娇虎" "text": "悍娇虎"
}, },
"star": 4, "star": 3,
"color": 3, "color": 2,
"race": 4, "race": 4,
"job": 1, "job": 1,
"type": 1, "type": 1,
@ -3808,7 +3808,7 @@
"y": 0, "y": 0,
"z": 0 "z": 0
}, },
"skill": 144006011, "skill": 0,
"skill1": 144006111, "skill1": 144006111,
"skill2": 144006211, "skill2": 144006211,
"skill3": 144006311, "skill3": 144006311,
@ -3958,8 +3958,8 @@
"key": "hero_45003", "key": "hero_45003",
"text": "盖" "text": "盖"
}, },
"star": 5, "star": 3,
"color": 4, "color": 2,
"race": 4, "race": 4,
"job": 3, "job": 3,
"type": 1, "type": 1,
@ -5434,7 +5434,7 @@
"text": "致命纳得" "text": "致命纳得"
}, },
"star": 4, "star": 4,
"color": 1, "color": 3,
"race": 4, "race": 4,
"job": 1, "job": 1,
"type": 5, "type": 5,
@ -6379,8 +6379,8 @@
"key": "hero_44005", "key": "hero_44005",
"text": "小伊" "text": "小伊"
}, },
"star": 4, "star": 3,
"color": 4, "color": 2,
"race": 4, "race": 4,
"job": 3, "job": 3,
"type": 1, "type": 1,
@ -6439,7 +6439,7 @@
"text": "亚力克斯" "text": "亚力克斯"
}, },
"star": 5, "star": 5,
"color": 5, "color": 4,
"race": 1, "race": 1,
"job": 3, "job": 3,
"type": 1, "type": 1,
@ -7125,7 +7125,7 @@
"text": "黑化小伊" "text": "黑化小伊"
}, },
"star": 4, "star": 4,
"color": 4, "color": 3,
"race": 4, "race": 4,
"job": 3, "job": 3,
"type": 1, "type": 1,

View File

@ -4,27 +4,27 @@
"name": "初级经验精灵", "name": "初级经验精灵",
"star": 2, "star": 2,
"color": 1, "color": 1,
"heroexp": 1000, "heroexp": 4630,
"skilllevelup": 0, "skilllevelup": 0,
"needgold": 1000 "needgold": 5663
}, },
{ {
"hid": "43911", "hid": "43911",
"name": "中级经验精灵", "name": "中级经验精灵",
"star": 3, "star": 3,
"color": 2, "color": 2,
"heroexp": 5000, "heroexp": 9259,
"skilllevelup": 0, "skilllevelup": 0,
"needgold": 5000 "needgold": 11951
}, },
{ {
"hid": "44911", "hid": "44911",
"name": "高级经验精灵", "name": "高级经验精灵",
"star": 4, "star": 4,
"color": 3, "color": 3,
"heroexp": 20000, "heroexp": 18518,
"skilllevelup": 0, "skilllevelup": 0,
"needgold": 20000 "needgold": 23324
}, },
{ {
"hid": "43921", "hid": "43921",
@ -33,7 +33,7 @@
"color": 2, "color": 2,
"heroexp": 0, "heroexp": 0,
"skilllevelup": 1, "skilllevelup": 1,
"needgold": 1000 "needgold": 5663
}, },
{ {
"hid": "44921", "hid": "44921",
@ -42,7 +42,7 @@
"color": 3, "color": 3,
"heroexp": 0, "heroexp": 0,
"skilllevelup": 1, "skilllevelup": 1,
"needgold": 1000 "needgold": 11951
}, },
{ {
"hid": "45921", "hid": "45921",
@ -51,6 +51,6 @@
"color": 4, "color": 4,
"heroexp": 0, "heroexp": 0,
"skilllevelup": 1, "skilllevelup": 1,
"needgold": 1000 "needgold": 23324
} }
] ]

View File

@ -5,7 +5,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 300 "n": 40
} }
], ],
"hp": 1857, "hp": 1857,
@ -18,7 +18,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 320 "n": 80
} }
], ],
"hp": 1953, "hp": 1953,
@ -31,7 +31,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 340 "n": 120
} }
], ],
"hp": 2049, "hp": 2049,
@ -44,7 +44,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 360 "n": 160
} }
], ],
"hp": 2145, "hp": 2145,
@ -57,7 +57,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 380 "n": 200
} }
], ],
"hp": 2241, "hp": 2241,
@ -70,7 +70,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 400 "n": 240
} }
], ],
"hp": 2337, "hp": 2337,
@ -83,7 +83,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 420 "n": 280
} }
], ],
"hp": 2433, "hp": 2433,
@ -96,7 +96,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 440 "n": 320
} }
], ],
"hp": 2529, "hp": 2529,
@ -109,7 +109,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 460 "n": 360
} }
], ],
"hp": 2625, "hp": 2625,
@ -122,7 +122,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 480 "n": 400
} }
], ],
"hp": 2721, "hp": 2721,
@ -135,7 +135,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1100 "n": 440
} }
], ],
"hp": 2817, "hp": 2817,
@ -148,7 +148,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1200 "n": 900
} }
], ],
"hp": 2913, "hp": 2913,
@ -161,7 +161,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1300 "n": 975
} }
], ],
"hp": 3009, "hp": 3009,
@ -174,7 +174,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1400 "n": 1050
} }
], ],
"hp": 3105, "hp": 3105,
@ -187,7 +187,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1500 "n": 1125
} }
], ],
"hp": 3201, "hp": 3201,
@ -200,7 +200,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1600 "n": 1200
} }
], ],
"hp": 3297, "hp": 3297,
@ -213,7 +213,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1700 "n": 1275
} }
], ],
"hp": 3393, "hp": 3393,
@ -226,7 +226,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1800 "n": 1350
} }
], ],
"hp": 3489, "hp": 3489,
@ -239,7 +239,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1900 "n": 1425
} }
], ],
"hp": 3585, "hp": 3585,
@ -252,7 +252,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 2000 "n": 1500
} }
], ],
"hp": 3681, "hp": 3681,
@ -265,7 +265,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 6300 "n": 2120
} }
], ],
"hp": 3777, "hp": 3777,
@ -278,7 +278,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 6600 "n": 2240
} }
], ],
"hp": 3873, "hp": 3873,
@ -291,7 +291,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 6900 "n": 2380
} }
], ],
"hp": 3969, "hp": 3969,
@ -304,7 +304,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 7200 "n": 2520
} }
], ],
"hp": 4065, "hp": 4065,
@ -317,7 +317,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 7500 "n": 2680
} }
], ],
"hp": 4161, "hp": 4161,
@ -330,7 +330,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 7800 "n": 2840
} }
], ],
"hp": 4257, "hp": 4257,
@ -343,7 +343,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 8100 "n": 3020
} }
], ],
"hp": 4353, "hp": 4353,
@ -356,7 +356,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 8400 "n": 3200
} }
], ],
"hp": 4449, "hp": 4449,
@ -369,7 +369,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 8700 "n": 3400
} }
], ],
"hp": 4545, "hp": 4545,
@ -382,7 +382,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 9000 "n": 3600
} }
], ],
"hp": 4641, "hp": 4641,
@ -395,7 +395,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 15500 "n": 5700
} }
], ],
"hp": 4737, "hp": 4737,
@ -408,7 +408,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 16000 "n": 6000
} }
], ],
"hp": 4833, "hp": 4833,
@ -421,7 +421,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 16500 "n": 6330
} }
], ],
"hp": 4929, "hp": 4929,
@ -434,7 +434,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 17000 "n": 6660
} }
], ],
"hp": 5025, "hp": 5025,
@ -447,7 +447,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 17500 "n": 7020
} }
], ],
"hp": 5121, "hp": 5121,
@ -460,7 +460,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 18000 "n": 7380
} }
], ],
"hp": 5217, "hp": 5217,
@ -473,7 +473,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 18500 "n": 7770
} }
], ],
"hp": 5313, "hp": 5313,
@ -486,7 +486,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 19000 "n": 8160
} }
], ],
"hp": 5409, "hp": 5409,
@ -499,7 +499,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 19500 "n": 8580
} }
], ],
"hp": 5505, "hp": 5505,
@ -512,7 +512,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 20000 "n": 9000
} }
], ],
"hp": 5601, "hp": 5601,
@ -525,7 +525,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 24600 "n": 9600
} }
], ],
"hp": 5697, "hp": 5697,
@ -538,7 +538,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 25200 "n": 10200
} }
], ],
"hp": 5793, "hp": 5793,
@ -551,7 +551,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 25800 "n": 10800
} }
], ],
"hp": 5889, "hp": 5889,
@ -564,7 +564,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 26400 "n": 11400
} }
], ],
"hp": 5985, "hp": 5985,
@ -577,7 +577,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 27000 "n": 12000
} }
], ],
"hp": 6081, "hp": 6081,
@ -590,7 +590,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 27600 "n": 12900
} }
], ],
"hp": 6177, "hp": 6177,
@ -603,7 +603,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 28200 "n": 13800
} }
], ],
"hp": 6273, "hp": 6273,
@ -616,7 +616,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 28800 "n": 14700
} }
], ],
"hp": 6369, "hp": 6369,
@ -629,7 +629,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 29400 "n": 15600
} }
], ],
"hp": 6465, "hp": 6465,
@ -642,7 +642,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 30000 "n": 16500
} }
], ],
"hp": 6561, "hp": 6561,
@ -655,7 +655,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 48450 "n": 23600
} }
], ],
"hp": 6657, "hp": 6657,
@ -668,7 +668,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 49400 "n": 25200
} }
], ],
"hp": 6753, "hp": 6753,
@ -681,7 +681,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 50350 "n": 26800
} }
], ],
"hp": 6849, "hp": 6849,
@ -694,7 +694,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 51300 "n": 28400
} }
], ],
"hp": 6945, "hp": 6945,
@ -707,7 +707,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 52250 "n": 30000
} }
], ],
"hp": 7041, "hp": 7041,
@ -720,7 +720,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 53200 "n": 32000
} }
], ],
"hp": 7137, "hp": 7137,
@ -733,7 +733,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 54150 "n": 34000
} }
], ],
"hp": 7233, "hp": 7233,
@ -746,7 +746,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 55100 "n": 36000
} }
], ],
"hp": 7329, "hp": 7329,
@ -759,7 +759,7 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 56050 "n": 38000
} }
], ],
"hp": 7425, "hp": 7425,

View File

@ -30,12 +30,7 @@
"hpscale": 736, "hpscale": 736,
"atkscale": 90, "atkscale": 90,
"defscale": 174, "defscale": 174,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "13002", "hid": "13002",
@ -68,12 +63,7 @@
"hpscale": 106, "hpscale": 106,
"atkscale": 50, "atkscale": 50,
"defscale": 844, "defscale": 844,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "13003", "hid": "13003",
@ -106,12 +96,7 @@
"hpscale": 255, "hpscale": 255,
"atkscale": 140, "atkscale": 140,
"defscale": 605, "defscale": 605,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "13004", "hid": "13004",
@ -144,12 +129,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "13005", "hid": "13005",
@ -182,12 +162,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "14001", "hid": "14001",
@ -220,12 +195,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "14002", "hid": "14002",
@ -258,12 +228,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "14003", "hid": "14003",
@ -296,12 +261,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "14004", "hid": "14004",
@ -334,12 +294,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "14005", "hid": "14005",
@ -372,12 +327,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "14006", "hid": "14006",
@ -410,12 +360,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "14007", "hid": "14007",
@ -448,12 +393,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "15001", "hid": "15001",
@ -486,12 +426,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "15002", "hid": "15002",
@ -524,12 +459,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "15003", "hid": "15003",
@ -562,12 +492,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "15004", "hid": "15004",
@ -600,12 +525,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "23001", "hid": "23001",
@ -638,12 +558,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "23002", "hid": "23002",
@ -676,12 +591,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "23003", "hid": "23003",
@ -714,12 +624,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "23004", "hid": "23004",
@ -752,12 +657,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "24001", "hid": "24001",
@ -790,12 +690,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "24002", "hid": "24002",
@ -828,12 +723,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "24003", "hid": "24003",
@ -866,12 +756,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "24004", "hid": "24004",
@ -904,12 +789,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "24005", "hid": "24005",
@ -942,12 +822,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "24006", "hid": "24006",
@ -980,12 +855,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "24007", "hid": "24007",
@ -1018,12 +888,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "24008", "hid": "24008",
@ -1056,12 +921,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "24009", "hid": "24009",
@ -1094,12 +954,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "25001", "hid": "25001",
@ -1132,12 +987,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "25002", "hid": "25002",
@ -1170,12 +1020,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "25003", "hid": "25003",
@ -1208,12 +1053,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "25004", "hid": "25004",
@ -1246,12 +1086,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "33001", "hid": "33001",
@ -1284,12 +1119,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "33002", "hid": "33002",
@ -1322,12 +1152,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "33003", "hid": "33003",
@ -1360,12 +1185,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "33004", "hid": "33004",
@ -1398,12 +1218,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "33005", "hid": "33005",
@ -1436,12 +1251,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "33006", "hid": "33006",
@ -1474,12 +1284,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "34001", "hid": "34001",
@ -1512,12 +1317,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "34002", "hid": "34002",
@ -1550,12 +1350,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "34003", "hid": "34003",
@ -1588,12 +1383,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "34004", "hid": "34004",
@ -1626,12 +1416,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "34005", "hid": "34005",
@ -1664,12 +1449,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "34006", "hid": "34006",
@ -1702,12 +1482,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "34007", "hid": "34007",
@ -1740,12 +1515,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "34008", "hid": "34008",
@ -1778,12 +1548,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "35001", "hid": "35001",
@ -1816,12 +1581,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "35002", "hid": "35002",
@ -1854,12 +1614,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "35003", "hid": "35003",
@ -1892,12 +1647,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "35004", "hid": "35004",
@ -1930,12 +1680,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "35005", "hid": "35005",
@ -1968,12 +1713,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "35006", "hid": "35006",
@ -2006,12 +1746,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "43001", "hid": "43001",
@ -2044,12 +1779,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "43002", "hid": "43002",
@ -2082,12 +1812,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "43003", "hid": "43003",
@ -2120,12 +1845,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "43004", "hid": "43004",
@ -2158,12 +1878,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "43005", "hid": "43005",
@ -2196,12 +1911,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "43006", "hid": "43006",
@ -2234,12 +1944,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "43007", "hid": "43007",
@ -2272,12 +1977,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "44001", "hid": "44001",
@ -2310,12 +2010,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "44002", "hid": "44002",
@ -2348,12 +2043,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "44003", "hid": "44003",
@ -2386,12 +2076,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "44004", "hid": "44004",
@ -2424,12 +2109,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "44006", "hid": "44006",
@ -2462,12 +2142,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "45001", "hid": "45001",
@ -2500,12 +2175,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "45002", "hid": "45002",
@ -2538,12 +2208,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "45003", "hid": "45003",
@ -2576,12 +2241,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "45004", "hid": "45004",
@ -2614,12 +2274,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "44005", "hid": "44005",
@ -2652,12 +2307,7 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
}, },
{ {
"hid": "15005", "hid": "15005",
@ -2690,11 +2340,6 @@
"hpscale": 105, "hpscale": 105,
"atkscale": 750, "atkscale": 750,
"defscale": 145, "defscale": 145,
"maxnum": 6, "maxnum": 6
"recommend_percentage": [
750,
175,
75
]
} }
] ]

View File

@ -2,7 +2,7 @@
{ {
"key": 1, "key": 1,
"id": "25001", "id": "25001",
"star": 5, "star": 4,
"needhero": "", "needhero": "",
"needherostar": 0, "needherostar": 0,
"needheronum": 0, "needheronum": 0,
@ -12,25 +12,13 @@
3, 3,
4 4
], ],
"needracestar": 5, "needracestar": 4,
"needracenum": 5, "needracenum": 4,
"gold": 10000 "gold": 10000
}, },
{ {
"key": 2, "key": 2,
"id": "25001", "id": "25001",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 3,
"id": "14003",
"star": 5, "star": 5,
"needhero": "", "needhero": "",
"needherostar": 0, "needherostar": 0,
@ -46,8 +34,8 @@
"gold": 10000 "gold": 10000
}, },
{ {
"key": 4, "key": 3,
"id": "14003", "id": "25001",
"star": 6, "star": 6,
"needhero": "", "needhero": "",
"needherostar": 0, "needherostar": 0,
@ -58,9 +46,9 @@
"gold": 0 "gold": 0
}, },
{ {
"key": 5, "key": 4,
"id": "14007", "id": "25004",
"star": 5, "star": 3,
"needhero": "", "needhero": "",
"needherostar": 0, "needherostar": 0,
"needheronum": 0, "needheronum": 0,
@ -70,12 +58,327 @@
3, 3,
4 4
], ],
"needracestar": 5, "needracestar": 3,
"needracenum": 5, "needracenum": 3,
"gold": 10000
},
{
"key": 5,
"id": "25004",
"star": 4,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 4,
"needracenum": 4,
"gold": 10000 "gold": 10000
}, },
{ {
"key": 6, "key": 6,
"id": "25004",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 7,
"id": "25004",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 8,
"id": "44006",
"star": 3,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 3,
"needracenum": 3,
"gold": 10000
},
{
"key": 9,
"id": "44006",
"star": 4,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 4,
"needracenum": 4,
"gold": 10000
},
{
"key": 10,
"id": "44006",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 11,
"id": "44006",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 12,
"id": "35001",
"star": 3,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 3,
"needracenum": 3,
"gold": 10000
},
{
"key": 13,
"id": "35001",
"star": 4,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 4,
"needracenum": 4,
"gold": 10000
},
{
"key": 14,
"id": "35001",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 15,
"id": "35001",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 16,
"id": "44005",
"star": 3,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 3,
"needracenum": 3,
"gold": 10000
},
{
"key": 17,
"id": "44005",
"star": 4,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 4,
"needracenum": 4,
"gold": 10000
},
{
"key": 18,
"id": "44005",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 19,
"id": "44005",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 20,
"id": "15004",
"star": 3,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 3,
"needracenum": 3,
"gold": 10000
},
{
"key": 21,
"id": "15004",
"star": 4,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 4,
"needracenum": 4,
"gold": 10000
},
{
"key": 22,
"id": "15004",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 23,
"id": "15004",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 24,
"id": "14007",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 25,
"id": "14007", "id": "14007",
"star": 6, "star": 6,
"needhero": "", "needhero": "",
@ -86,300 +389,27 @@
"needracenum": 0, "needracenum": 0,
"gold": 0 "gold": 0
}, },
{
"key": 7,
"id": "15004",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 8,
"id": "15004",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 9,
"id": "15005",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 10,
"id": "15005",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 11,
"id": "24002",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 12,
"id": "24002",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 13,
"id": "24003",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 14,
"id": "24003",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 15,
"id": "24004",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 16,
"id": "24004",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 17,
"id": "25004",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 18,
"id": "25004",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 19,
"id": "34006",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 20,
"id": "34006",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 21,
"id": "35001",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 22,
"id": "35001",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 23,
"id": "35003",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 24,
"id": "35003",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 25,
"id": "44005",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{ {
"key": 26, "key": 26,
"id": "44005", "id": "45003",
"star": 6, "star": 3,
"needhero": "", "needhero": "",
"needherostar": 0, "needherostar": 0,
"needheronum": 0, "needheronum": 0,
"needrace": [], "needrace": [
"needracestar": 0, 1,
"needracenum": 0, 2,
"gold": 0 3,
4
],
"needracestar": 3,
"needracenum": 3,
"gold": 10000
}, },
{ {
"key": 27, "key": 27,
"id": "44006", "id": "45003",
"star": 5, "star": 4,
"needhero": "", "needhero": "",
"needherostar": 0, "needherostar": 0,
"needheronum": 0, "needheronum": 0,
@ -389,24 +419,12 @@
3, 3,
4 4
], ],
"needracestar": 5, "needracestar": 4,
"needracenum": 5, "needracenum": 4,
"gold": 10000 "gold": 10000
}, },
{ {
"key": 28, "key": 28,
"id": "44006",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 29,
"id": "45003", "id": "45003",
"star": 5, "star": 5,
"needhero": "", "needhero": "",
@ -423,7 +441,7 @@
"gold": 10000 "gold": 10000
}, },
{ {
"key": 30, "key": 29,
"id": "45003", "id": "45003",
"star": 6, "star": 6,
"needhero": "", "needhero": "",
@ -433,5 +451,177 @@
"needracestar": 0, "needracestar": 0,
"needracenum": 0, "needracenum": 0,
"gold": 0 "gold": 0
},
{
"key": 30,
"id": "24004",
"star": 3,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 3,
"needracenum": 3,
"gold": 10000
},
{
"key": 31,
"id": "24004",
"star": 4,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 4,
"needracenum": 4,
"gold": 10000
},
{
"key": 32,
"id": "24004",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 33,
"id": "24004",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 34,
"id": "34006",
"star": 4,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 4,
"needracenum": 4,
"gold": 10000
},
{
"key": 35,
"id": "34006",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 36,
"id": "34006",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 37,
"id": "24003",
"star": 3,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 3,
"needracenum": 3,
"gold": 10000
},
{
"key": 38,
"id": "24003",
"star": 4,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 4,
"needracenum": 4,
"gold": 10000
},
{
"key": 39,
"id": "24003",
"star": 5,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [
1,
2,
3,
4
],
"needracestar": 5,
"needracenum": 5,
"gold": 10000
},
{
"key": 40,
"id": "24003",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
} }
] ]

View File

@ -179,16 +179,6 @@
} }
] ]
}, },
{
"index": "22",
"var": [
{
"a": "hero",
"t": "11001",
"n": 1
}
]
},
{ {
"index": "23", "index": "23",
"var": [ "var": [
@ -598,5 +588,75 @@
"n": 5 "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
}
]
} }
] ]

File diff suppressed because it is too large Load Diff

View File

@ -148,7 +148,7 @@
}, },
"desc": { "desc": {
"key": "mainline_desc_10004", "key": "mainline_desc_10004",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。" "text": "自负的毒蛇大师虽然给人的感觉稍显轻浮,但对这件事的态度就有如她善变的性格,不太明朗;螳螂大师算是几位高手中最聪明的一个,对阿宝的现状很是无奈,总是暗中帮忙。"
}, },
"icon": "wp_icon_0002", "icon": "wp_icon_0002",
"text": { "text": {
@ -189,11 +189,11 @@
"map": "zx_ddt_zj01", "map": "zx_ddt_zj01",
"title": { "title": {
"key": "mainline_title_10005", "key": "mainline_title_10005",
"text": "第5章太狼来袭" "text": "第5章激烈战斗"
}, },
"desc": { "desc": {
"key": "mainline_desc_10005", "key": "mainline_desc_10005",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。" "text": "最后要将阿宝调教成“功夫高手”的一代宗师“师父”华丽丽地出场了,然而有着一身好功夫并不意味着就是完美的,“师父”因为过去犯下的一个错误,一直纠结着没办法释然。"
}, },
"icon": "wp_icon_0002", "icon": "wp_icon_0002",
"text": { "text": {
@ -234,11 +234,11 @@
"map": "zx_ddt_zj02", "map": "zx_ddt_zj02",
"title": { "title": {
"key": "mainline_title_10006", "key": "mainline_title_10006",
"text": "第6章乌龟大师" "text": "第6章下山"
}, },
"desc": { "desc": {
"key": "mainline_desc_10006", "key": "mainline_desc_10006",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。" "text": "至于那个让人人都如临大敌的太郎则是一只非常自恋的雪豹他等待复仇的这一天已经整整等了20年了可是他做梦也没想到自己等来的竟然是一只大熊猫。"
}, },
"icon": "wp_icon_0002", "icon": "wp_icon_0002",
"text": { "text": {
@ -279,11 +279,11 @@
"map": "zx_ddt_zj03", "map": "zx_ddt_zj03",
"title": { "title": {
"key": "mainline_title_10007", "key": "mainline_title_10007",
"text": "第7章太狼来袭" "text": "第7章事件余波"
}, },
"desc": { "desc": {
"key": "mainline_desc_10007", "key": "mainline_desc_10007",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。" "text": "激烈的战斗后,阿宝以自己对武功的悟性和师父传授的武术,战胜了太郎,拯救了山谷,为山谷带来了和平。"
}, },
"icon": "wp_icon_0002", "icon": "wp_icon_0002",
"text": { "text": {

View File

@ -4,6 +4,7 @@
"preson": "12003", "preson": "12003",
"presonshow": "12003", "presonshow": "12003",
"presonstory": "12003", "presonstory": "12003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 0.1, "weight": 0.1,
"ico": "tx_js_12003", "ico": "tx_js_12003",
@ -28,6 +29,7 @@
"preson": "13001", "preson": "13001",
"presonshow": "13001", "presonshow": "13001",
"presonstory": "13001", "presonstory": "13001",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_13001", "ico": "tx_js_13001",
@ -52,6 +54,7 @@
"preson": "13002", "preson": "13002",
"presonshow": "13002", "presonshow": "13002",
"presonstory": "13002", "presonstory": "13002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_13002", "ico": "tx_js_13002",
@ -76,6 +79,7 @@
"preson": "13003", "preson": "13003",
"presonshow": "13003", "presonshow": "13003",
"presonstory": "13003", "presonstory": "13003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_13003", "ico": "tx_js_13003",
@ -100,6 +104,7 @@
"preson": "13004", "preson": "13004",
"presonshow": "13004", "presonshow": "13004",
"presonstory": "13004", "presonstory": "13004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_13004", "ico": "tx_js_13004",
@ -124,6 +129,7 @@
"preson": "13005", "preson": "13005",
"presonshow": "13005", "presonshow": "13005",
"presonstory": "13005", "presonstory": "13005",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_13005", "ico": "tx_js_13005",
@ -148,6 +154,7 @@
"preson": "14001", "preson": "14001",
"presonshow": "14001", "presonshow": "14001",
"presonstory": "14001", "presonstory": "14001",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_14001", "ico": "tx_js_14001",
@ -172,6 +179,7 @@
"preson": "14002", "preson": "14002",
"presonshow": "14002", "presonshow": "14002",
"presonstory": "14002", "presonstory": "14002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_14002", "ico": "tx_js_14002",
@ -196,6 +204,7 @@
"preson": "14003", "preson": "14003",
"presonshow": "14003", "presonshow": "14003",
"presonstory": "14003", "presonstory": "14003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_14003", "ico": "tx_js_14003",
@ -220,6 +229,7 @@
"preson": "14004", "preson": "14004",
"presonshow": "14004", "presonshow": "14004",
"presonstory": "14004", "presonstory": "14004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_14004", "ico": "tx_js_14004",
@ -244,6 +254,7 @@
"preson": "14005", "preson": "14005",
"presonshow": "14005", "presonshow": "14005",
"presonstory": "14005", "presonstory": "14005",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_14005", "ico": "tx_js_14005",
@ -268,6 +279,7 @@
"preson": "14006", "preson": "14006",
"presonshow": "14006", "presonshow": "14006",
"presonstory": "14006", "presonstory": "14006",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_14006", "ico": "tx_js_14006",
@ -292,6 +304,7 @@
"preson": "14007", "preson": "14007",
"presonshow": "14007_exhibition", "presonshow": "14007_exhibition",
"presonstory": "14007", "presonstory": "14007",
"presondraw": "14007_gachashow",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_14007", "ico": "tx_js_14007",
@ -316,6 +329,7 @@
"preson": "15001", "preson": "15001",
"presonshow": "15001", "presonshow": "15001",
"presonstory": "15001", "presonstory": "15001",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_15001", "ico": "tx_js_15001",
@ -340,6 +354,7 @@
"preson": "15002", "preson": "15002",
"presonshow": "15002", "presonshow": "15002",
"presonstory": "15002", "presonstory": "15002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_15002", "ico": "tx_js_15002",
@ -362,8 +377,9 @@
{ {
"id": "15003", "id": "15003",
"preson": "15003", "preson": "15003",
"presonshow": "15004_exhibition", "presonshow": "15003",
"presonstory": "15003", "presonstory": "15003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_15003", "ico": "tx_js_15003",
@ -386,8 +402,9 @@
{ {
"id": "15004", "id": "15004",
"preson": "15004", "preson": "15004",
"presonshow": "15004", "presonshow": "15004_exhibition",
"presonstory": "15004", "presonstory": "15004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_15004", "ico": "tx_js_15004",
@ -412,6 +429,7 @@
"preson": "15005", "preson": "15005",
"presonshow": "15005", "presonshow": "15005",
"presonstory": "15005", "presonstory": "15005",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_15005", "ico": "tx_js_15005",
@ -436,6 +454,7 @@
"preson": "23001", "preson": "23001",
"presonshow": "23001", "presonshow": "23001",
"presonstory": "23001", "presonstory": "23001",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_23001", "ico": "tx_js_23001",
@ -460,6 +479,7 @@
"preson": "23002", "preson": "23002",
"presonshow": "23002", "presonshow": "23002",
"presonstory": "23002", "presonstory": "23002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_23002", "ico": "tx_js_23002",
@ -484,6 +504,7 @@
"preson": "23003", "preson": "23003",
"presonshow": "23003", "presonshow": "23003",
"presonstory": "23003", "presonstory": "23003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_23003", "ico": "tx_js_23003",
@ -508,6 +529,7 @@
"preson": "23004", "preson": "23004",
"presonshow": "23004", "presonshow": "23004",
"presonstory": "23004", "presonstory": "23004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_23004", "ico": "tx_js_23004",
@ -532,6 +554,7 @@
"preson": "24001", "preson": "24001",
"presonshow": "24001", "presonshow": "24001",
"presonstory": "24001", "presonstory": "24001",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_24001", "ico": "tx_js_24001",
@ -556,6 +579,7 @@
"preson": "24002", "preson": "24002",
"presonshow": "24002", "presonshow": "24002",
"presonstory": "24002", "presonstory": "24002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_24002", "ico": "tx_js_24002",
@ -580,6 +604,7 @@
"preson": "24003", "preson": "24003",
"presonshow": "24003", "presonshow": "24003",
"presonstory": "24003", "presonstory": "24003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_24003", "ico": "tx_js_24003",
@ -604,6 +629,7 @@
"preson": "24004", "preson": "24004",
"presonshow": "24004_exhibition", "presonshow": "24004_exhibition",
"presonstory": "24004", "presonstory": "24004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_24004", "ico": "tx_js_24004",
@ -628,6 +654,7 @@
"preson": "24005", "preson": "24005",
"presonshow": "24005", "presonshow": "24005",
"presonstory": "24005", "presonstory": "24005",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_24005", "ico": "tx_js_24005",
@ -652,6 +679,7 @@
"preson": "24006", "preson": "24006",
"presonshow": "24006", "presonshow": "24006",
"presonstory": "24006", "presonstory": "24006",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_24006", "ico": "tx_js_24006",
@ -676,6 +704,7 @@
"preson": "24007", "preson": "24007",
"presonshow": "24007", "presonshow": "24007",
"presonstory": "24007", "presonstory": "24007",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_24007", "ico": "tx_js_24007",
@ -700,6 +729,7 @@
"preson": "24008", "preson": "24008",
"presonshow": "24008", "presonshow": "24008",
"presonstory": "24008", "presonstory": "24008",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_24008", "ico": "tx_js_24008",
@ -724,6 +754,7 @@
"preson": "24009", "preson": "24009",
"presonshow": "24009", "presonshow": "24009",
"presonstory": "24009", "presonstory": "24009",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_24009", "ico": "tx_js_24009",
@ -748,6 +779,7 @@
"preson": "25001", "preson": "25001",
"presonshow": "25001_exhibition", "presonshow": "25001_exhibition",
"presonstory": "25001_story", "presonstory": "25001_story",
"presondraw": "",
"height": 2.2, "height": 2.2,
"weight": 0.1, "weight": 0.1,
"ico": "tx_js_25001", "ico": "tx_js_25001",
@ -772,6 +804,7 @@
"preson": "25002", "preson": "25002",
"presonshow": "25002", "presonshow": "25002",
"presonstory": "25002", "presonstory": "25002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_25002", "ico": "tx_js_25002",
@ -796,6 +829,7 @@
"preson": "25003", "preson": "25003",
"presonshow": "25003", "presonshow": "25003",
"presonstory": "25003", "presonstory": "25003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_25003", "ico": "tx_js_25003",
@ -820,6 +854,7 @@
"preson": "25004", "preson": "25004",
"presonshow": "25004_exhibition", "presonshow": "25004_exhibition",
"presonstory": "25004_story", "presonstory": "25004_story",
"presondraw": "",
"height": 0.8, "height": 0.8,
"weight": 0.1, "weight": 0.1,
"ico": "tx_js_25004", "ico": "tx_js_25004",
@ -844,6 +879,7 @@
"preson": "33001", "preson": "33001",
"presonshow": "33001", "presonshow": "33001",
"presonstory": "33001", "presonstory": "33001",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_33001", "ico": "tx_js_33001",
@ -868,6 +904,7 @@
"preson": "33002", "preson": "33002",
"presonshow": "33002", "presonshow": "33002",
"presonstory": "33002", "presonstory": "33002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_33002", "ico": "tx_js_33002",
@ -892,6 +929,7 @@
"preson": "33003", "preson": "33003",
"presonshow": "33003", "presonshow": "33003",
"presonstory": "33003", "presonstory": "33003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_33003", "ico": "tx_js_33003",
@ -916,6 +954,7 @@
"preson": "33004", "preson": "33004",
"presonshow": "33004", "presonshow": "33004",
"presonstory": "33004", "presonstory": "33004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_33004", "ico": "tx_js_33004",
@ -940,6 +979,7 @@
"preson": "33005", "preson": "33005",
"presonshow": "33005", "presonshow": "33005",
"presonstory": "33005", "presonstory": "33005",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_33005", "ico": "tx_js_33005",
@ -964,6 +1004,7 @@
"preson": "33006", "preson": "33006",
"presonshow": "33006", "presonshow": "33006",
"presonstory": "33006", "presonstory": "33006",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_33006", "ico": "tx_js_33006",
@ -988,6 +1029,7 @@
"preson": "34001", "preson": "34001",
"presonshow": "34001", "presonshow": "34001",
"presonstory": "34001", "presonstory": "34001",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_34001", "ico": "tx_js_34001",
@ -1012,6 +1054,7 @@
"preson": "34002", "preson": "34002",
"presonshow": "34002", "presonshow": "34002",
"presonstory": "34002", "presonstory": "34002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_34002", "ico": "tx_js_34002",
@ -1036,6 +1079,7 @@
"preson": "34003", "preson": "34003",
"presonshow": "34003", "presonshow": "34003",
"presonstory": "34003", "presonstory": "34003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_34003", "ico": "tx_js_34003",
@ -1060,6 +1104,7 @@
"preson": "34004", "preson": "34004",
"presonshow": "34004", "presonshow": "34004",
"presonstory": "34004", "presonstory": "34004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_34004", "ico": "tx_js_34004",
@ -1084,6 +1129,7 @@
"preson": "34005", "preson": "34005",
"presonshow": "34005", "presonshow": "34005",
"presonstory": "34005", "presonstory": "34005",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_34005", "ico": "tx_js_34005",
@ -1108,6 +1154,7 @@
"preson": "34006", "preson": "34006",
"presonshow": "34006", "presonshow": "34006",
"presonstory": "34006", "presonstory": "34006",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_34006", "ico": "tx_js_34006",
@ -1132,6 +1179,7 @@
"preson": "34007", "preson": "34007",
"presonshow": "34007", "presonshow": "34007",
"presonstory": "34007", "presonstory": "34007",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_34007", "ico": "tx_js_34007",
@ -1156,6 +1204,7 @@
"preson": "34008", "preson": "34008",
"presonshow": "34008", "presonshow": "34008",
"presonstory": "34008", "presonstory": "34008",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_34008", "ico": "tx_js_34008",
@ -1180,6 +1229,7 @@
"preson": "35001", "preson": "35001",
"presonshow": "35001_exhibition", "presonshow": "35001_exhibition",
"presonstory": "35001_story", "presonstory": "35001_story",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_35001", "ico": "tx_js_35001",
@ -1204,6 +1254,7 @@
"preson": "35002", "preson": "35002",
"presonshow": "35002", "presonshow": "35002",
"presonstory": "35002_story", "presonstory": "35002_story",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_35002", "ico": "tx_js_35002",
@ -1228,6 +1279,7 @@
"preson": "35003", "preson": "35003",
"presonshow": "35003", "presonshow": "35003",
"presonstory": "35003", "presonstory": "35003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_35003", "ico": "tx_js_35003",
@ -1252,6 +1304,7 @@
"preson": "35004", "preson": "35004",
"presonshow": "35004", "presonshow": "35004",
"presonstory": "35004", "presonstory": "35004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_35004", "ico": "tx_js_35004",
@ -1276,6 +1329,7 @@
"preson": "35005", "preson": "35005",
"presonshow": "35005", "presonshow": "35005",
"presonstory": "35005", "presonstory": "35005",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_35005", "ico": "tx_js_35005",
@ -1300,6 +1354,7 @@
"preson": "35006", "preson": "35006",
"presonshow": "35006", "presonshow": "35006",
"presonstory": "35006", "presonstory": "35006",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_35006", "ico": "tx_js_35006",
@ -1324,6 +1379,7 @@
"preson": "43001", "preson": "43001",
"presonshow": "43001", "presonshow": "43001",
"presonstory": "43001", "presonstory": "43001",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_43001", "ico": "tx_js_43001",
@ -1348,6 +1404,7 @@
"preson": "43002", "preson": "43002",
"presonshow": "43002", "presonshow": "43002",
"presonstory": "43002", "presonstory": "43002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_43002", "ico": "tx_js_43002",
@ -1372,6 +1429,7 @@
"preson": "43003", "preson": "43003",
"presonshow": "43003", "presonshow": "43003",
"presonstory": "43003", "presonstory": "43003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_43003", "ico": "tx_js_43003",
@ -1396,6 +1454,7 @@
"preson": "43004", "preson": "43004",
"presonshow": "43004", "presonshow": "43004",
"presonstory": "43004", "presonstory": "43004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_43004", "ico": "tx_js_43004",
@ -1420,6 +1479,7 @@
"preson": "43005", "preson": "43005",
"presonshow": "43005", "presonshow": "43005",
"presonstory": "43005", "presonstory": "43005",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_43005", "ico": "tx_js_43005",
@ -1444,6 +1504,7 @@
"preson": "43006", "preson": "43006",
"presonshow": "43006", "presonshow": "43006",
"presonstory": "43006", "presonstory": "43006",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_43006", "ico": "tx_js_43006",
@ -1468,6 +1529,7 @@
"preson": "43007", "preson": "43007",
"presonshow": "43007", "presonshow": "43007",
"presonstory": "43007", "presonstory": "43007",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_43007", "ico": "tx_js_43007",
@ -1492,6 +1554,7 @@
"preson": "44001", "preson": "44001",
"presonshow": "44001", "presonshow": "44001",
"presonstory": "44001", "presonstory": "44001",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_44001", "ico": "tx_js_44001",
@ -1516,6 +1579,7 @@
"preson": "44002", "preson": "44002",
"presonshow": "44002", "presonshow": "44002",
"presonstory": "44002", "presonstory": "44002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_44002", "ico": "tx_js_44002",
@ -1540,6 +1604,7 @@
"preson": "44003", "preson": "44003",
"presonshow": "44003", "presonshow": "44003",
"presonstory": "44003", "presonstory": "44003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_44003", "ico": "tx_js_44003",
@ -1564,6 +1629,7 @@
"preson": "44004", "preson": "44004",
"presonshow": "44004", "presonshow": "44004",
"presonstory": "44004", "presonstory": "44004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_44004", "ico": "tx_js_44004",
@ -1588,6 +1654,7 @@
"preson": "44005", "preson": "44005",
"presonshow": "44005_exhibition", "presonshow": "44005_exhibition",
"presonstory": "44005_story", "presonstory": "44005_story",
"presondraw": "",
"height": 1.5, "height": 1.5,
"weight": 0.3, "weight": 0.3,
"ico": "tx_js_44005", "ico": "tx_js_44005",
@ -1612,6 +1679,7 @@
"preson": "44006", "preson": "44006",
"presonshow": "44006_exhibition", "presonshow": "44006_exhibition",
"presonstory": "44006", "presonstory": "44006",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_44006", "ico": "tx_js_44006",
@ -1636,6 +1704,7 @@
"preson": "45001", "preson": "45001",
"presonshow": "45001", "presonshow": "45001",
"presonstory": "45001", "presonstory": "45001",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_45001", "ico": "tx_js_45001",
@ -1660,6 +1729,7 @@
"preson": "45002", "preson": "45002",
"presonshow": "45002", "presonshow": "45002",
"presonstory": "45002", "presonstory": "45002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_45002", "ico": "tx_js_45002",
@ -1684,6 +1754,7 @@
"preson": "45003", "preson": "45003",
"presonshow": "45003_exhibition", "presonshow": "45003_exhibition",
"presonstory": "45003_story", "presonstory": "45003_story",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_45003", "ico": "tx_js_45003",
@ -1708,6 +1779,7 @@
"preson": "45004", "preson": "45004",
"presonshow": "45004", "presonshow": "45004",
"presonstory": "45004", "presonstory": "45004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_45004", "ico": "tx_js_45004",
@ -1732,6 +1804,7 @@
"preson": "43901", "preson": "43901",
"presonshow": "43901", "presonshow": "43901",
"presonstory": "43901", "presonstory": "43901",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_43901", "ico": "tx_js_43901",
@ -1756,6 +1829,7 @@
"preson": "42911", "preson": "42911",
"presonshow": "42911", "presonshow": "42911",
"presonstory": "42911", "presonstory": "42911",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_42911", "ico": "tx_js_42911",
@ -1780,6 +1854,7 @@
"preson": "43911", "preson": "43911",
"presonshow": "43911", "presonshow": "43911",
"presonstory": "43911", "presonstory": "43911",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_43911", "ico": "tx_js_43911",
@ -1804,6 +1879,7 @@
"preson": "44911", "preson": "44911",
"presonshow": "44911", "presonshow": "44911",
"presonstory": "44911", "presonstory": "44911",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_44911", "ico": "tx_js_44911",
@ -1828,6 +1904,7 @@
"preson": "43921", "preson": "43921",
"presonshow": "43921", "presonshow": "43921",
"presonstory": "43921", "presonstory": "43921",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_43921", "ico": "tx_js_43921",
@ -1852,6 +1929,7 @@
"preson": "44921", "preson": "44921",
"presonshow": "44921", "presonshow": "44921",
"presonstory": "44921", "presonstory": "44921",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_44921", "ico": "tx_js_44921",
@ -1876,6 +1954,7 @@
"preson": "45921", "preson": "45921",
"presonshow": "45921", "presonshow": "45921",
"presonstory": "45921", "presonstory": "45921",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_45921", "ico": "tx_js_45921",
@ -1900,6 +1979,7 @@
"preson": "51001", "preson": "51001",
"presonshow": "51001", "presonshow": "51001",
"presonstory": "51001", "presonstory": "51001",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51001", "ico": "tx_js_51001",
@ -1924,6 +2004,7 @@
"preson": "51002", "preson": "51002",
"presonshow": "51002", "presonshow": "51002",
"presonstory": "51002", "presonstory": "51002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51002", "ico": "tx_js_51002",
@ -1948,6 +2029,7 @@
"preson": "51003", "preson": "51003",
"presonshow": "51003", "presonshow": "51003",
"presonstory": "51003", "presonstory": "51003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51003", "ico": "tx_js_51003",
@ -1972,6 +2054,7 @@
"preson": "51004", "preson": "51004",
"presonshow": "51004", "presonshow": "51004",
"presonstory": "51004", "presonstory": "51004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51004", "ico": "tx_js_51004",
@ -1996,6 +2079,7 @@
"preson": "51005", "preson": "51005",
"presonshow": "51005", "presonshow": "51005",
"presonstory": "51005", "presonstory": "51005",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51005", "ico": "tx_js_51005",
@ -2020,6 +2104,7 @@
"preson": "51006", "preson": "51006",
"presonshow": "51006", "presonshow": "51006",
"presonstory": "51006", "presonstory": "51006",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51006", "ico": "tx_js_51006",
@ -2044,6 +2129,7 @@
"preson": "51007", "preson": "51007",
"presonshow": "51007", "presonshow": "51007",
"presonstory": "51007", "presonstory": "51007",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51007", "ico": "tx_js_51007",
@ -2068,6 +2154,7 @@
"preson": "51008", "preson": "51008",
"presonshow": "51008", "presonshow": "51008",
"presonstory": "51008", "presonstory": "51008",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51008", "ico": "tx_js_51008",
@ -2092,6 +2179,7 @@
"preson": "51009", "preson": "51009",
"presonshow": "51009", "presonshow": "51009",
"presonstory": "51009", "presonstory": "51009",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51009", "ico": "tx_js_51009",
@ -2116,6 +2204,7 @@
"preson": "51010", "preson": "51010",
"presonshow": "51010", "presonshow": "51010",
"presonstory": "51010", "presonstory": "51010",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51010", "ico": "tx_js_51010",
@ -2140,6 +2229,7 @@
"preson": "51011", "preson": "51011",
"presonshow": "51011", "presonshow": "51011",
"presonstory": "51011", "presonstory": "51011",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51011", "ico": "tx_js_51011",
@ -2164,6 +2254,7 @@
"preson": "51012", "preson": "51012",
"presonshow": "51012", "presonshow": "51012",
"presonstory": "51012", "presonstory": "51012",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51012", "ico": "tx_js_51012",
@ -2188,6 +2279,7 @@
"preson": "51013", "preson": "51013",
"presonshow": "51013", "presonshow": "51013",
"presonstory": "51013", "presonstory": "51013",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51013", "ico": "tx_js_51013",
@ -2212,6 +2304,7 @@
"preson": "51014", "preson": "51014",
"presonshow": "51014", "presonshow": "51014",
"presonstory": "51014", "presonstory": "51014",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_51014", "ico": "tx_js_51014",
@ -2236,6 +2329,7 @@
"preson": "53001", "preson": "53001",
"presonshow": "53001", "presonshow": "53001",
"presonstory": "53001", "presonstory": "53001",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_53001", "ico": "tx_js_53001",
@ -2260,6 +2354,7 @@
"preson": "53002", "preson": "53002",
"presonshow": "53002", "presonshow": "53002",
"presonstory": "53002", "presonstory": "53002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_53002", "ico": "tx_js_53002",
@ -2284,6 +2379,7 @@
"preson": "53003", "preson": "53003",
"presonshow": "53003", "presonshow": "53003",
"presonstory": "53003", "presonstory": "53003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_53003", "ico": "tx_js_53003",
@ -2308,6 +2404,7 @@
"preson": "53004", "preson": "53004",
"presonshow": "53004", "presonshow": "53004",
"presonstory": "53004", "presonstory": "53004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_53004", "ico": "tx_js_53004",
@ -2332,6 +2429,7 @@
"preson": "53005", "preson": "53005",
"presonshow": "53005", "presonshow": "53005",
"presonstory": "53005", "presonstory": "53005",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_53005", "ico": "tx_js_53005",
@ -2356,6 +2454,7 @@
"preson": "53006", "preson": "53006",
"presonshow": "53006", "presonshow": "53006",
"presonstory": "53006", "presonstory": "53006",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_53006", "ico": "tx_js_53006",
@ -2380,6 +2479,7 @@
"preson": "55001", "preson": "55001",
"presonshow": "55001", "presonshow": "55001",
"presonstory": "55001", "presonstory": "55001",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_55001", "ico": "tx_js_55001",
@ -2404,6 +2504,7 @@
"preson": "55002", "preson": "55002",
"presonshow": "55002", "presonshow": "55002",
"presonstory": "55002", "presonstory": "55002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_55002", "ico": "tx_js_55002",
@ -2428,6 +2529,7 @@
"preson": "55002", "preson": "55002",
"presonshow": "55002", "presonshow": "55002",
"presonstory": "55002", "presonstory": "55002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_55003", "ico": "tx_js_55003",
@ -2452,6 +2554,7 @@
"preson": "55004", "preson": "55004",
"presonshow": "55004", "presonshow": "55004",
"presonstory": "55004", "presonstory": "55004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_55004", "ico": "tx_js_55004",
@ -2476,6 +2579,7 @@
"preson": "55004", "preson": "55004",
"presonshow": "55004", "presonshow": "55004",
"presonstory": "55004", "presonstory": "55004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_55005", "ico": "tx_js_55005",
@ -2500,6 +2604,7 @@
"preson": "55006", "preson": "55006",
"presonshow": "55006", "presonshow": "55006",
"presonstory": "55006", "presonstory": "55006",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_55006", "ico": "tx_js_55006",
@ -2524,6 +2629,7 @@
"preson": "55007", "preson": "55007",
"presonshow": "55007", "presonshow": "55007",
"presonstory": "55007", "presonstory": "55007",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_55007", "ico": "tx_js_55007",
@ -2548,6 +2654,7 @@
"preson": "63002", "preson": "63002",
"presonshow": "63002", "presonshow": "63002",
"presonstory": "63002", "presonstory": "63002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_63002", "ico": "tx_js_63002",
@ -2572,6 +2679,7 @@
"preson": "63003", "preson": "63003",
"presonshow": "63003", "presonshow": "63003",
"presonstory": "63003", "presonstory": "63003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_63003", "ico": "tx_js_63003",
@ -2596,6 +2704,7 @@
"preson": "63004", "preson": "63004",
"presonshow": "63004", "presonshow": "63004",
"presonstory": "63004", "presonstory": "63004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_63004", "ico": "tx_js_63004",
@ -2620,6 +2729,7 @@
"preson": "64003", "preson": "64003",
"presonshow": "64003", "presonshow": "64003",
"presonstory": "64003", "presonstory": "64003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_64003", "ico": "tx_js_64003",
@ -2644,6 +2754,7 @@
"preson": "74002", "preson": "74002",
"presonshow": "74002", "presonshow": "74002",
"presonstory": "74002", "presonstory": "74002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_74002", "ico": "tx_js_74002",
@ -2668,6 +2779,7 @@
"preson": "74003", "preson": "74003",
"presonshow": "74003", "presonshow": "74003",
"presonstory": "74003", "presonstory": "74003",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_74003", "ico": "tx_js_74003",
@ -2692,6 +2804,7 @@
"preson": "74004", "preson": "74004",
"presonshow": "74004", "presonshow": "74004",
"presonstory": "74004", "presonstory": "74004",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_74004", "ico": "tx_js_74004",
@ -2716,6 +2829,7 @@
"preson": "83002", "preson": "83002",
"presonshow": "83002", "presonshow": "83002",
"presonstory": "83002", "presonstory": "83002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_83002", "ico": "tx_js_83002",
@ -2740,6 +2854,7 @@
"preson": "83006", "preson": "83006",
"presonshow": "83006", "presonshow": "83006",
"presonstory": "83006", "presonstory": "83006",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_83006", "ico": "tx_js_83006",
@ -2764,6 +2879,7 @@
"preson": "84002", "preson": "84002",
"presonshow": "84002", "presonshow": "84002",
"presonstory": "84002", "presonstory": "84002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_84002", "ico": "tx_js_84002",
@ -2788,6 +2904,7 @@
"preson": "94002", "preson": "94002",
"presonshow": "94002", "presonshow": "94002",
"presonstory": "94002", "presonstory": "94002",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_94002", "ico": "tx_js_94002",
@ -2812,6 +2929,7 @@
"preson": "94005", "preson": "94005",
"presonshow": "94005", "presonshow": "94005",
"presonstory": "94005", "presonstory": "94005",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_94005", "ico": "tx_js_94005",
@ -2836,6 +2954,7 @@
"preson": "64007", "preson": "64007",
"presonshow": "64007", "presonshow": "64007",
"presonstory": "64007", "presonstory": "64007",
"presondraw": "",
"height": 1, "height": 1,
"weight": 1, "weight": 1,
"ico": "tx_js_64007", "ico": "tx_js_64007",

View File

@ -81,6 +81,6 @@
}, },
{ {
"lv": 21, "lv": 21,
"exp": 0 "exp": 25000
} }
] ]

View File

@ -5,7 +5,7 @@
"type": 2, "type": 2,
"preTid": 0, "preTid": 0,
"condition": [ "condition": [
103 104
], ],
"sidequest": [ "sidequest": [
1001, 1001,
@ -127,14 +127,13 @@
{ {
"id": 100205, "id": 100205,
"group": 2, "group": 2,
"type": 2, "type": 3,
"preTid": 100204, "preTid": 100204,
"condition": [ "condition": [
101 101
], ],
"sidequest": [ "sidequest": [
2007, 2010
2006
] ]
}, },
{ {
@ -146,7 +145,8 @@
101 101
], ],
"sidequest": [ "sidequest": [
2008 2007,
2006
] ]
}, },
{ {
@ -158,7 +158,8 @@
101 101
], ],
"sidequest": [ "sidequest": [
2009 2008,
2006
] ]
} }
] ]

View File

@ -3,6 +3,10 @@
"id": 10001, "id": 10001,
"num": 1, "num": 1,
"preTid": 0, "preTid": 0,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -13,6 +17,10 @@
"id": 10002, "id": 10002,
"num": 2, "num": 2,
"preTid": 104, "preTid": 104,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -23,6 +31,10 @@
"id": 10003, "id": 10003,
"num": 1, "num": 1,
"preTid": 0, "preTid": 0,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -33,6 +45,10 @@
"id": 10004, "id": 10004,
"num": 1, "num": 1,
"preTid": 0, "preTid": 0,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -43,6 +59,10 @@
"id": 10005, "id": 10005,
"num": 2, "num": 2,
"preTid": 105, "preTid": 105,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -53,6 +73,10 @@
"id": 10006, "id": 10006,
"num": 1, "num": 1,
"preTid": 105, "preTid": 105,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -63,6 +87,10 @@
"id": 10007, "id": 10007,
"num": 2, "num": 2,
"preTid": 0, "preTid": 0,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -73,6 +101,10 @@
"id": 10008, "id": 10008,
"num": 3, "num": 3,
"preTid": 0, "preTid": 0,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -83,6 +115,14 @@
"id": 10009, "id": 10009,
"num": 1, "num": 1,
"preTid": 0, "preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -93,6 +133,14 @@
"id": 100010, "id": 100010,
"num": 2, "num": 2,
"preTid": 105, "preTid": 105,
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -103,6 +151,14 @@
"id": 100011, "id": 100011,
"num": 1, "num": 1,
"preTid": 0, "preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"gotoLevel": 101, "gotoLevel": 101,
"needItem": [ "needItem": [
0 0
@ -113,6 +169,14 @@
"id": 100012, "id": 100012,
"num": 2, "num": 2,
"preTid": 0, "preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -123,6 +187,14 @@
"id": 20001, "id": 20001,
"num": 1, "num": 1,
"preTid": 0, "preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -133,6 +205,16 @@
"id": 20002, "id": 20002,
"num": 2, "num": 2,
"preTid": 0, "preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -143,6 +225,16 @@
"id": 20003, "id": 20003,
"num": 1, "num": 1,
"preTid": 0, "preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
@ -153,6 +245,16 @@
"id": 20004, "id": 20004,
"num": 1, "num": 1,
"preTid": 0, "preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"gotoLevel": 101, "gotoLevel": 101,
"needItem": [ "needItem": [
0 0
@ -163,20 +265,54 @@
"id": 20005, "id": 20005,
"num": 1, "num": 1,
"preTid": 0, "preTid": 0,
"gotoLevel": 0, "Entity": [
"needItem": [ "Earth"
0 ],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
], ],
"nextTid": 100206
},
{
"id": 20006,
"num": 1,
"preTid": 0,
"gotoLevel": 0, "gotoLevel": 0,
"needItem": [ "needItem": [
0 0
], ],
"nextTid": 100207 "nextTid": 100207
},
{
"id": 20006,
"num": 1,
"preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"gotoLevel": 0,
"needItem": [
0
],
"nextTid": 100208
},
{
"id": 20007,
"num": 1,
"preTid": 0,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0,
"needItem": [
0
],
"nextTid": 100206
} }
] ]

View File

@ -3,21 +3,29 @@
"id": 1001, "id": 1001,
"objType": 1, "objType": 1,
"location": "middle", "location": "middle",
"point": "model_07",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "Enter", "modelaction": "Enter",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": 90, "y": 90,
"z": 0 "z": 0
}, },
"point": "model_07", "modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 1, "storyBegin": 1,
"timeline": "",
"chooseId": [ "chooseId": [
10001, 10001,
10002 10002
], ],
"endTid": -1,
"storyEnd": 1, "storyEnd": 1,
"nextTid": 100101,
"reward": [ "reward": [
{ {
"ChooseId": 10001, "ChooseId": 10001,
@ -50,182 +58,250 @@
] ]
} }
], ],
"CD": 0, "nextTid": 100101,
"endTid": -1 "CD": 0
}, },
{ {
"id": 1002, "id": 1002,
"objType": 1, "objType": 1,
"location": "middle", "location": "middle",
"point": "model_04",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "", "modelaction": "",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -150, "y": -150,
"z": 0 "z": 0
}, },
"point": "model_04", "modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 2, "storyBegin": 2,
"timeline": "",
"chooseId": [], "chooseId": [],
"endTid": -1,
"storyEnd": 1, "storyEnd": 1,
"nextTid": -1,
"reward": [], "reward": [],
"CD": 0, "nextTid": -1,
"endTid": -1 "CD": 0
}, },
{ {
"id": 1003, "id": 1003,
"objType": 2, "objType": 2,
"location": "right", "location": "right",
"point": "icon_03",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "", "modelaction": "",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -180, "y": -180,
"z": 0 "z": 0
}, },
"point": "icon_03", "modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 6, "storyBegin": 6,
"timeline": "",
"chooseId": [ "chooseId": [
10003, 10003,
10004 10004
], ],
"endTid": -1,
"storyEnd": 1, "storyEnd": 1,
"nextTid": 100103,
"reward": [], "reward": [],
"CD": 0, "nextTid": 100103,
"endTid": -1 "CD": 0
}, },
{ {
"id": 1004, "id": 1004,
"objType": 1, "objType": 1,
"location": "middle", "location": "middle",
"point": "model_04",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "", "modelaction": "",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -150, "y": -150,
"z": 0 "z": 0
}, },
"point": "model_04", "modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 3, "storyBegin": 3,
"timeline": "",
"chooseId": [ "chooseId": [
10005, 10005,
10006, 10006,
10007 10007
], ],
"endTid": -1,
"storyEnd": 1, "storyEnd": 1,
"nextTid": 100101,
"reward": [], "reward": [],
"CD": 0, "nextTid": 100101,
"endTid": -1 "CD": 0
}, },
{ {
"id": 1005, "id": 1005,
"objType": 1, "objType": 1,
"location": "middle", "location": "middle",
"point": "model_07",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "", "modelaction": "",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": 90, "y": 90,
"z": 0 "z": 0
}, },
"point": "model_07", "modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 4, "storyBegin": 4,
"timeline": "",
"chooseId": [], "chooseId": [],
"endTid": -1,
"storyEnd": 0, "storyEnd": 0,
"nextTid": -1,
"reward": [], "reward": [],
"CD": 0, "nextTid": -1,
"endTid": -1 "CD": 0
}, },
{ {
"id": 1006, "id": 1006,
"objType": 2, "objType": 2,
"location": "right", "location": "right",
"point": "icon_03",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "", "modelaction": "",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -180, "y": -180,
"z": 0 "z": 0
}, },
"point": "icon_03", "modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 8, "storyBegin": 8,
"timeline": "",
"chooseId": [ "chooseId": [
10008, 10008,
10009 10009
], ],
"endTid": -1,
"storyEnd": 1, "storyEnd": 1,
"nextTid": 100104,
"reward": [], "reward": [],
"CD": 0, "nextTid": 100104,
"endTid": -1 "CD": 0
}, },
{ {
"id": 1007, "id": 1007,
"objType": 2, "objType": 2,
"location": "left", "location": "left",
"point": "icon_01",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "", "modelaction": "",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -180, "y": -180,
"z": 0 "z": 0
}, },
"point": "icon_01", "modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 10, "storyBegin": 10,
"timeline": "",
"chooseId": [ "chooseId": [
100010, 100010,
100011, 100011,
100012 100012
], ],
"endTid": -1,
"storyEnd": 1, "storyEnd": 1,
"nextTid": 100105,
"reward": [], "reward": [],
"CD": 0, "nextTid": 100105,
"endTid": -1 "CD": 0
}, },
{ {
"id": 1008, "id": 1008,
"objType": 2, "objType": 2,
"location": "", "location": "",
"point": "icon_04",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "", "modelaction": "",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -180, "y": -180,
"z": 0 "z": 0
}, },
"point": "icon_04", "modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 12, "storyBegin": 12,
"timeline": "",
"chooseId": [], "chooseId": [],
"endTid": -1,
"storyEnd": 1, "storyEnd": 1,
"nextTid": 0,
"reward": [], "reward": [],
"CD": 0, "nextTid": 0,
"endTid": -1 "CD": 0
}, },
{ {
"id": 2001, "id": 2001,
"objType": 1, "objType": 1,
"location": "middle", "location": "middle",
"point": "model_02",
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"modelaction": "", "modelaction": "",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -180, "y": -180,
"z": 0 "z": 0
}, },
"point": "model_02", "modelstate": 0,
"storyBegin": 201, "popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [ "chooseId": [
20001, 20001,
20002 20002
], ],
"endTid": -1,
"storyEnd": 0, "storyEnd": 0,
"nextTid": 100202,
"reward": [ "reward": [
{ {
"ChooseId": 20001, "ChooseId": 20001,
@ -248,92 +324,140 @@
] ]
} }
], ],
"CD": 0, "nextTid": 100202,
"endTid": -1 "CD": 0
}, },
{ {
"id": 2002, "id": 2002,
"objType": 1, "objType": 1,
"location": "middle", "location": "middle",
"point": "model_02",
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"modelaction": "", "modelaction": "",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -180, "y": -180,
"z": 0 "z": 0
}, },
"point": "model_02", "modelstate": 0,
"storyBegin": 202, "popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [ "chooseId": [
20003 20003
], ],
"endTid": -1,
"storyEnd": 0, "storyEnd": 0,
"nextTid": 0,
"reward": [], "reward": [],
"CD": 0, "nextTid": 0,
"endTid": -1 "CD": 0
}, },
{ {
"id": 2003, "id": 2003,
"objType": 1, "objType": 1,
"location": "middle", "location": "middle",
"point": "model_03",
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"modelaction": "Enter", "modelaction": "Enter",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -180, "y": -180,
"z": 0 "z": 0
}, },
"point": "model_03", "modelstate": 0,
"storyBegin": 203, "popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [], "chooseId": [],
"endTid": -1,
"storyEnd": 0, "storyEnd": 0,
"nextTid": -1,
"reward": [], "reward": [],
"CD": 0, "nextTid": -1,
"endTid": -1 "CD": 0
}, },
{ {
"id": 2004, "id": 2004,
"objType": 1, "objType": 1,
"location": "middle", "location": "middle",
"point": "model_03",
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"modelaction": "Enter", "modelaction": "Enter",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -180, "y": -180,
"z": 0 "z": 0
}, },
"point": "model_03", "modelstate": 0,
"storyBegin": 203, "popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [], "chooseId": [],
"endTid": -1,
"storyEnd": 0, "storyEnd": 0,
"nextTid": -1,
"reward": [], "reward": [],
"CD": 0, "nextTid": -1,
"endTid": -1 "CD": 0
}, },
{ {
"id": 2005, "id": 2005,
"objType": 2, "objType": 2,
"location": "right", "location": "right",
"point": "icon_05",
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"modelaction": "", "modelaction": "",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": 0, "y": 0,
"z": 0 "z": 0
}, },
"point": "icon_05", "modelstate": 0,
"storyBegin": 204, "popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [ "chooseId": [
20004 20004
], ],
"endTid": -1,
"storyEnd": 0, "storyEnd": 0,
"nextTid": 100205,
"reward": [ "reward": [
{ {
"ChooseId": 2004, "ChooseId": 20004,
"Reward": [ "Reward": [
{ {
"a": "hero", "a": "hero",
@ -343,91 +467,179 @@
] ]
} }
], ],
"CD": 0, "nextTid": 100205,
"endTid": -1 "CD": 0
}, },
{ {
"id": 2006, "id": 2006,
"objType": 1, "objType": 1,
"location": "middle", "location": "middle",
"point": "model_02",
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"modelaction": "Enter", "modelaction": "Enter",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": 90, "y": 90,
"z": 0 "z": 0
}, },
"point": "model_02", "modelstate": 0,
"storyBegin": 205, "popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [], "chooseId": [],
"endTid": -1,
"storyEnd": 0, "storyEnd": 0,
"nextTid": -1,
"reward": [], "reward": [],
"CD": 0, "nextTid": -1,
"endTid": -1 "CD": 0
}, },
{ {
"id": 2007, "id": 2007,
"objType": 1, "objType": 1,
"location": "middle", "location": "middle",
"point": "model_03",
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"modelaction": "Enter", "modelaction": "Enter",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -90, "y": -90,
"z": 0 "z": 0
}, },
"point": "model_03", "modelstate": 0,
"storyBegin": 206, "popup": "",
"chooseId": [ "special": "",
20005 "boxreplace": "",
], "storyBegin": 0,
"timeline": "",
"chooseId": [],
"endTid": -1,
"storyEnd": 0, "storyEnd": 0,
"nextTid": 100206,
"reward": [], "reward": [],
"CD": 0, "nextTid": 100207,
"endTid": -1 "CD": 0
}, },
{ {
"id": 2008, "id": 2008,
"objType": 2, "objType": 1,
"location": "left", "location": "middle",
"modelaction": "", "point": "model_03",
"modelstate": 0, "Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"modelaction": "Enter",
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": 0, "y": -90,
"z": 0 "z": 0
}, },
"point": "icon_01", "modelstate": 0,
"storyBegin": 207, "popup": "",
"chooseId": [ "special": "",
20006 "boxreplace": "",
], "storyBegin": 0,
"storyEnd": 208, "timeline": "",
"nextTid": 100207, "chooseId": [],
"endTid": -1,
"storyEnd": 0,
"reward": [], "reward": [],
"CD": 0, "nextTid": 100208,
"endTid": -1 "CD": 0
}, },
{ {
"id": 2009, "id": 2009,
"objType": 1, "objType": 1,
"location": "middle", "location": "middle",
"point": "model_02",
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"modelaction": "", "modelaction": "",
"modelstate": 0,
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -180, "y": -180,
"z": 0 "z": 0
}, },
"point": "model_02", "modelstate": 0,
"storyBegin": 207, "popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [], "chooseId": [],
"storyEnd": 207, "endTid": -1,
"nextTid": 0, "storyEnd": 0,
"reward": [], "reward": [],
"CD": 0, "nextTid": 0,
"endTid": -1 "CD": 0
},
{
"id": 2010,
"objType": 2,
"location": "right",
"point": "icon_05",
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"modelaction": "",
"rotation": {
"x": 0,
"y": 0,
"z": 0
},
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [
20007
],
"endTid": -1,
"storyEnd": 0,
"reward": [],
"nextTid": 100206,
"CD": 0
} }
] ]

File diff suppressed because it is too large Load Diff

View File

@ -4283,29 +4283,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -1.2, "y": -1.2,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",
@ -4339,29 +4339,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -1.2, "y": -1.2,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",
@ -4395,29 +4395,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -1.2, "y": -1.2,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",
@ -4451,29 +4451,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -1.2, "y": -1.2,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",
@ -4507,29 +4507,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -1.2, "y": -1.2,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",
@ -4563,29 +4563,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -1.2, "y": -1.2,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",
@ -4599,7 +4599,7 @@
"type": 2, "type": 2,
"bg": "jqdh_bg01", "bg": "jqdh_bg01",
"place": 0, "place": 0,
"speak": "25001", "speak": "25004",
"listen": "", "listen": "",
"des": "啊哈!哈哈哈哈!", "des": "啊哈!哈哈哈哈!",
"modelstatetarget": "", "modelstatetarget": "",
@ -4619,29 +4619,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -1.2, "y": -0.8,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",
@ -4675,29 +4675,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -1.2, "y": -1.2,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",
@ -4731,29 +4731,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -0.8, "y": -0.8,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",
@ -4787,29 +4787,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -1.2, "y": -1.2,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",
@ -4843,29 +4843,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -1.2, "y": -1.2,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",
@ -4899,29 +4899,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -1.2, "y": -1.2,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",
@ -4955,29 +4955,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -1.2, "y": -1.2,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",
@ -5011,29 +5011,29 @@
"z": 0 "z": 0
}, },
"positionL": { "positionL": {
"x": 0, "x": -0.1,
"y": -1.2, "y": -1.2,
"z": 0 "z": 0
}, },
"revolveR": { "revolveR": {
"x": 0, "x": 0,
"y": -180, "y": -150,
"z": 0 "z": 0
}, },
"revolveL": { "revolveL": {
"x": 0, "x": 0,
"y": -180, "y": -210,
"z": 0 "z": 0
}, },
"sizeR": { "sizeR": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"sizeL": { "sizeL": {
"x": 0.8, "x": 0.9,
"y": 0.8, "y": 0.9,
"z": 0.8 "z": 0.9
}, },
"perf": "", "perf": "",
"cg": "", "cg": "",

View File

@ -4,12 +4,11 @@
start(){ start(){
echo "starting $SERVICE..." echo "starting $SERVICE..."
num=`ps -ef | grep conf | grep $SERVICE | grep -v grep | grep -v /bin/bash | wc -l`
num=`ps -ef | grep $SERVICE | grep -v grep | wc -l`
if [ $num -eq 0 ] if [ $num -eq 0 ]
then then
nohup $CMD > /dev/null 2>&1 & # nohup $CMD > /dev/null 2>&1 &
#nohup $CMD > $SERVICE.log 2>&1 & nohup $CMD > $SERVICE.log 2>&1 &
if [ $? -ne 0 ] if [ $? -ne 0 ]
then then
echo "start failed, please check the log!" echo "start failed, please check the log!"

View File

@ -4,5 +4,5 @@ Website = "http://legu.cc"
Icon = "app.png" Icon = "app.png"
Name = "RobotGUI" Name = "RobotGUI"
ID = "cc.legu.app" ID = "cc.legu.app"
Version = "1.0.5" Version = "1.0.7"
Build = 5 Build = 8

View File

@ -37,6 +37,11 @@ var (
func init() { func init() {
_ = os.Setenv("FYNE_SCALE", "0.9") _ = os.Setenv("FYNE_SCALE", "0.9")
var err error var err error
// initialize logger
if err = setupLogger(); err != nil {
fmt.Println(err)
os.Exit(1)
}
if err = setupConfig(); err != nil { if err = setupConfig(); err != nil {
fmt.Println(err) fmt.Println(err)
@ -47,13 +52,6 @@ func init() {
fmt.Println(err) fmt.Println(err)
os.Exit(1) os.Exit(1)
} }
// initialize logger
if err = setupLogger(); err != nil {
fmt.Println(err)
os.Exit(1)
}
if err = setupWsConn(); err != nil { if err = setupWsConn(); err != nil {
fmt.Println(err) fmt.Println(err)
os.Exit(1) os.Exit(1)
@ -67,13 +65,14 @@ func init() {
func main() { func main() {
// create a new ui // create a new ui
app := app.NewWithID("protocol-test-tool") app := app.NewWithID("df-toolkit")
app.SetIcon(theme.ResourceIconPng) app.SetIcon(theme.ResourceAppPng)
appUI := ui.NewUI(app, configService, connService, pttService, obs) appUI := ui.NewUI(app, configService, connService, pttService, obs)
// logLifecycle(app) // logLifecycle(app)
//创建enter //创建enter
w := fyne.CurrentApp().NewWindow("传送门") w := fyne.CurrentApp().NewWindow("传送门")
w.SetIcon(theme.ResourceAppPng)
// 检查版本 // 检查版本
if app.Metadata().Build > 1 { if app.Metadata().Build > 1 {
checkVersion(app, w) checkVersion(app, w)
@ -81,12 +80,12 @@ func main() {
w.SetContent(container.NewGridWithColumns(2, w.SetContent(container.NewGridWithColumns(2,
widget.NewButton("工具", func() { widget.NewButton("工具", func() {
toolWindow := ui.NewToolWindow(appUI) toolWindow := ui.NewToolWindow(appUI, w)
toolWindow.CreateWindow(common.APP_NAME, 1366, 768, true) toolWindow.CreateWindow(common.APP_NAME, 1366, 768, true)
w.Hide() w.Hide()
}), }),
widget.NewButton("登服", func() { widget.NewButton("登服", func() {
mainWindow := ui.NewMainWindow(appUI) mainWindow := ui.NewMainWindow(appUI, w)
mainWindow.CreateWindow(common.APP_NAME, 1366, 768, true) mainWindow.CreateWindow(common.APP_NAME, 1366, 768, true)
w.Hide() w.Hide()
}))) })))
@ -96,6 +95,7 @@ func main() {
w.SetCloseIntercept(func() { w.SetCloseIntercept(func() {
app.Quit() app.Quit()
}) })
logrus.WithField("version", app.Metadata().Version).Info("app starting") logrus.WithField("version", app.Metadata().Version).Info("app starting")
w.Show() w.Show()
appUI.Run() appUI.Run()

View File

@ -26,6 +26,7 @@ type ConnService interface {
SendMsg(msg *pb.UserMessage, rsp proto.Message) (err error) SendMsg(msg *pb.UserMessage, rsp proto.Message) (err error)
ReceiveMsg() (code pb.ErrorCode, msg *pb.UserMessage) ReceiveMsg() (code pb.ErrorCode, msg *pb.UserMessage)
ListenerPush() ListenerPush()
Close()
} }
type ConnServiceImpl struct { type ConnServiceImpl struct {
@ -173,3 +174,9 @@ func (c *ConnServiceImpl) handleNotify(msg *pb.UserMessage) (code pb.ErrorCode)
} }
return return
} }
func (c *ConnServiceImpl) Close() {
if err := c.ws.Close(); err != nil {
logrus.Errorf("close ws conn err: %v", err)
}
}

File diff suppressed because one or more lines are too long

View File

@ -32,6 +32,7 @@ type MainWindow interface {
type MainWindowImpl struct { type MainWindowImpl struct {
UIImpl UIImpl
WindowDefaultOptions WindowDefaultOptions
parent fyne.Window
w fyne.Window w fyne.Window
tb *toolBar //工具条 tb *toolBar //工具条
toys *toys // side toys *toys // side
@ -39,11 +40,12 @@ type MainWindowImpl struct {
at *appContainer //tabs at *appContainer //tabs
} }
func NewMainWindow(ui *UIImpl) MainWindow { func NewMainWindow(ui *UIImpl, parent fyne.Window) MainWindow {
gobase.NewScheduler().Start() gobase.NewScheduler().Start()
gobase.RegisterAtExit(gobase.GlobalScheduler.Stop) gobase.RegisterAtExit(gobase.GlobalScheduler.Stop)
mw := &MainWindowImpl{ mw := &MainWindowImpl{
UIImpl: *ui, UIImpl: *ui,
parent: parent,
} }
globalWin = mw globalWin = mw
@ -53,12 +55,7 @@ func NewMainWindow(ui *UIImpl) MainWindow {
logrus.Debug("即将与服务器断开链接") logrus.Debug("即将与服务器断开链接")
conf := dialog.NewConfirm("链接中断", data.(error).Error(), func( conf := dialog.NewConfirm("链接中断", data.(error).Error(), func(
b bool) { b bool) {
if b { ui.app.Quit()
globalWin.w.Close()
} else {
dialog.NewInformation("提示", "重启登录", globalWin.w)
return
}
}, globalWin.w) }, globalWin.w)
conf.SetDismissText("取消") conf.SetDismissText("取消")
conf.SetConfirmText("退出") conf.SetConfirmText("退出")
@ -109,7 +106,7 @@ func (ui *MainWindowImpl) SetStatusMsg(msg string) {
} }
func (ui *MainWindowImpl) quiteHandle() { func (ui *MainWindowImpl) quiteHandle() {
ui.w.Close() ui.app.Quit()
} }
// CreateWindow .... // CreateWindow ....
@ -126,8 +123,20 @@ func (ui *MainWindowImpl) CreateWindow(_ string, width, height float32, _ bool)
w.Resize(fyne.NewSize(width, height)) w.Resize(fyne.NewSize(width, height))
} }
w.SetMaster() // w.SetMaster()
w.CenterOnScreen() w.CenterOnScreen()
w.Canvas().SetOnTypedKey(func(ke *fyne.KeyEvent) {
switch ke.Name {
case fyne.KeyEscape:
{
w.Close()
ui.parent.Show()
}
}
})
w.SetCloseIntercept(func() {
ui.parent.Show()
})
_ = ui.createChooseServerPopUp(w) _ = ui.createChooseServerPopUp(w)
} }
@ -183,6 +192,10 @@ func (ui *MainWindowImpl) createChooseServerWindow(
w.SetFixedSize(true) w.SetFixedSize(true)
w.Resize(fyne.NewSize(500, 200)) w.Resize(fyne.NewSize(500, 200))
w.Show() w.Show()
w.SetCloseIntercept(func() {
ui.parent.Show()
w.Close()
})
w.CenterOnScreen() w.CenterOnScreen()
return w return w
} }
@ -316,4 +329,8 @@ func (ui *MainWindowImpl) NewWelcomeLabel(data string) {
)), )),
)) ))
ui.w.SetContent(c) ui.w.SetContent(c)
ui.w.SetCloseIntercept(func() {
ui.w.Close()
ui.parent.Show()
})
} }

View File

@ -94,6 +94,7 @@ var (
ff(comm.ModuleRtask, "rtest"): &formview.RtaskTestView{}, ff(comm.ModuleRtask, "rtest"): &formview.RtaskTestView{},
ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleStart): &formview.RtaskBattlestartView{}, ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleStart): &formview.RtaskBattlestartView{},
ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleFinish): &formview.RtaskBattleFinishView{}, ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleFinish): &formview.RtaskBattleFinishView{},
ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord): &formview.RtaskRecordView{},
// linestory // linestory
ff(comm.ModuleLinestory, linestory.LinestorySubTypeDostart): &formview.LinestoryStartView{}, ff(comm.ModuleLinestory, linestory.LinestorySubTypeDostart): &formview.LinestoryStartView{},
ff(comm.ModuleLinestory, linestory.LinestorySubTypeDotask): &formview.LinestoryTaskView{}, ff(comm.ModuleLinestory, linestory.LinestorySubTypeDotask): &formview.LinestoryTaskView{},
@ -186,9 +187,11 @@ var (
ff(comm.ModuleRtask, rtask.RtaskSubTypeApply), ff(comm.ModuleRtask, rtask.RtaskSubTypeApply),
ff(comm.ModuleRtask, rtask.RtaskSubTypeChoose), ff(comm.ModuleRtask, rtask.RtaskSubTypeChoose),
ff(comm.ModuleRtask, rtask.RtaskSubTypeReward), ff(comm.ModuleRtask, rtask.RtaskSubTypeReward),
ff(comm.ModuleRtask, "rtest"),
ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleStart), ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleStart),
ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleFinish), ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleFinish),
ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord),
ff(comm.ModuleRtask, "rtest"),
}, },
"linestory": { "linestory": {
ff(comm.ModuleLinestory, linestory.LinestorySubTypeDostart), ff(comm.ModuleLinestory, linestory.LinestorySubTypeDostart),
@ -675,6 +678,13 @@ var (
SubType: rtask.RtaskSubTypeBattleFinish, SubType: rtask.RtaskSubTypeBattleFinish,
Enabled: true, Enabled: true,
}, },
ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord): {
NavLabel: "任务数据",
Desc: "任务数据",
MainType: string(comm.ModuleRtask),
SubType: rtask.RtaskSubTypeGetrecord,
Enabled: true,
},
ff(comm.ModuleRtask, "rtest"): { ff(comm.ModuleRtask, "rtest"): {
NavLabel: "测试条件", NavLabel: "测试条件",
Desc: "测试任务触发", Desc: "测试任务触发",

View File

@ -16,15 +16,17 @@ type ToolWindow interface {
type ToolWindowImpl struct { type ToolWindowImpl struct {
UIImpl UIImpl
parent fyne.Window
w fyne.Window w fyne.Window
tb *toolBar //工具条 tb *toolBar //工具条
sb *statusBar //状态栏 sb *statusBar //状态栏
at *appContainer //tabs at *appContainer //tabs
} }
func NewToolWindow(ui *UIImpl) ToolWindow { func NewToolWindow(ui *UIImpl, parent fyne.Window) ToolWindow {
mw := &ToolWindowImpl{ mw := &ToolWindowImpl{
UIImpl: *ui, UIImpl: *ui,
parent: parent,
} }
toolWin = mw toolWin = mw
@ -75,7 +77,21 @@ func (ui *ToolWindowImpl) CreateWindow(title string, width, height float32, _ bo
logrus.WithField("appName", appName).Error(err) logrus.WithField("appName", appName).Error(err)
} }
w.Resize(fyne.NewSize(width, height)) w.Resize(fyne.NewSize(width, height))
w.SetMaster() // w.SetMaster()
w.Canvas().SetOnTypedKey(func(ke *fyne.KeyEvent) {
switch ke.Name {
case fyne.KeyEscape:
{
w.Close()
ui.parent.Show()
}
}
})
w.CenterOnScreen() w.CenterOnScreen()
w.SetCloseIntercept(func() {
ui.parent.Show()
w.Close()
})
w.Show() w.Show()
} }

View File

@ -27,8 +27,7 @@ type UIImpl struct {
obs observer.Observer obs observer.Observer
} }
func NewUI( func NewUI(app fyne.App,
app fyne.App,
configService service.ConfigService, configService service.ConfigService,
connService service.ConnService, connService service.ConnService,
pttService service.PttService, pttService service.PttService,

View File

@ -93,7 +93,6 @@ func (this *ListBaseView) listBtnFun() func() {
// set data // set data
func (this *ListBaseView) reloadListData() { func (this *ListBaseView) reloadListData() {
if this.itemListData != nil { if this.itemListData != nil {
logrus.Debugf("list record:%v", len(this.itemListData.DataList))
d := this.itemListData.AsInterfaceArray() d := this.itemListData.AsInterfaceArray()
this.dataBinding.Set(d) this.dataBinding.Set(d)
} }

View File

@ -0,0 +1,24 @@
package formview
import (
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/service"
"go_dreamfactory/pb"
"fyne.io/fyne/v2"
"github.com/sirupsen/logrus"
)
type RtaskRecordView struct {
BaseformView
}
func (this *RtaskRecordView) CreateView(t *model.TestCase) fyne.CanvasObject {
this.form.OnSubmit = func() {
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.RtaskGetrecordReq{}); err != nil {
logrus.Error(err)
}
}
return this.form
}

View File

@ -22,7 +22,7 @@ import (
type TaskActiveListView struct { type TaskActiveListView struct {
ListBaseView ListBaseView
activeVal int32 activeVal *widget.Label
} }
func (this *TaskActiveListView) CreateView(t *model.TestCase) fyne.CanvasObject { func (this *TaskActiveListView) CreateView(t *model.TestCase) fyne.CanvasObject {
@ -46,7 +46,7 @@ func (this *TaskActiveListView) CreateView(t *model.TestCase) fyne.CanvasObject
}) })
//label //label
activeLabel := widget.NewLabel(fmt.Sprintf("当前活跃度:%d", this.activeVal)) this.activeVal = widget.NewLabel("")
//receive button //receive button
receiveBtn := widget.NewButtonWithIcon("领取", theme.ConfirmIcon(), func() { receiveBtn := widget.NewButtonWithIcon("领取", theme.ConfirmIcon(), func() {
@ -56,14 +56,14 @@ func (this *TaskActiveListView) CreateView(t *model.TestCase) fyne.CanvasObject
} }
if err := service.GetPttService().SendToClient( if err := service.GetPttService().SendToClient(
t.MainType, "activereceive", t.MainType, "activereceive",
&pb.TaskReceiveReq{Id: this.selItemIds[0], TaskTag: cast.ToInt32(tagSelect.Selected)}); err != nil { &pb.TaskActiveReceiveReq{Id: this.selItemIds[0], TaskTag: cast.ToInt32(tagSelect.Selected)}); err != nil {
logrus.Error(err) logrus.Error(err)
return return
} }
}) })
// layout // layout
split := container.NewHSplit(this.dataListWidget, container.NewVBox(activeLabel, this.form, taskListBtn, receiveBtn)) split := container.NewHSplit(this.dataListWidget, container.NewVBox(this.activeVal, this.form, taskListBtn, receiveBtn))
split.Offset = 1 split.Offset = 1
//data listener for //data listener for
@ -86,7 +86,7 @@ func (this *TaskActiveListView) dataListener() {
logrus.Error("unmarshal err") logrus.Error("unmarshal err")
} }
this.activeVal = rsp.Active this.activeVal.SetText(fmt.Sprintf("当前活跃度:%v", rsp.Active))
this.itemListData = model.NewItemModelList() this.itemListData = model.NewItemModelList()
for _, v := range rsp.List { for _, v := range rsp.List {

36
comm/gameconfig.go Normal file
View File

@ -0,0 +1,36 @@
package comm
//游戏区服配置
type GameConfig struct {
AreaId string //区服id 每个区服id都必须是唯一
Loglevel int32 //日志文件输出级别
MaxAgeTime int32 //日志文件保存时长
ConsulAddr []string //区服Consul
IsCross bool ///是否是跨区区服
BelongCrossServerId string //所属跨服Id (区服id) 不是跨服区服才有效
LoaclDB *DBConfig //本地db
Mainte string //维护服
MaintePort int //维护服通信端口
Gateways []string //网关服务["127.0.0.1:7895"]
GatewayPorts []int //网关通信端口
Workers []string //工作服
}
//区服db配置
type DBConfig struct {
RedisIsCluster bool //redis 是否是集群模式
RedisAddr []string //redis 地址
RedisPassword string //redis 密码
RedisDB int //redis db
MongodbUrl string //mgondb 地址
MongodbDatabase string //数据库地址
}
//跨服服务列表配置
type CrossConfigs map[string]*CrossConfig
type CrossConfig struct {
AreaId string //区服id
LoaclDB *DBConfig //本地db
ServiceList map[string]*DBConfig
}

View File

@ -97,7 +97,7 @@ type (
} }
IMainline interface { IMainline interface {
// 修改章节信息 // 修改章节信息
ModifyMainlineData(uid string, objId string, data interface{}) (code pb.ErrorCode) ModifyMainlineData(uid string, id int32) (code pb.ErrorCode)
/// 查询章节ID /// 查询章节ID
GetUsermainLineData(uid string) (mainlineId int32) GetUsermainLineData(uid string) (mainlineId int32)
} }
@ -160,4 +160,8 @@ type (
IGm interface { IGm interface {
CreateCmd(session IUserSession, cmd string) (code pb.ErrorCode) CreateCmd(session IUserSession, cmd string) (code pb.ErrorCode)
} }
// 修改爬塔
IPagoda interface {
ModifyPagodaFloor(session IUserSession, level int32) (code pb.ErrorCode)
}
) )

View File

@ -49,6 +49,7 @@ type ServiceBase struct {
//服务初始化过程 完成 系统 和 服务组件的 初始化过程 //服务初始化过程 完成 系统 和 服务组件的 初始化过程
func (this *ServiceBase) Init(service core.IService) (err error) { func (this *ServiceBase) Init(service core.IService) (err error) {
defer lego.Recover("Service Init")
this.closesig = make(chan string, 1) this.closesig = make(chan string, 1)
this.service = service this.service = service
this.modules = make(map[core.M_Modules]*defaultModule) this.modules = make(map[core.M_Modules]*defaultModule)
@ -80,6 +81,7 @@ func (this *ServiceBase) OnInstallComp(cops ...core.IServiceComp) {
//启动服务 完成服务组件的启动过程 //启动服务 完成服务组件的启动过程
func (this *ServiceBase) Start() (err error) { func (this *ServiceBase) Start() (err error) {
defer lego.Recover("Service Start")
for _, v := range this.comps { for _, v := range this.comps {
err = v.Start() err = v.Start()
if err != nil { if err != nil {
@ -93,6 +95,7 @@ func (this *ServiceBase) Start() (err error) {
//运行模块 //运行模块
func (this *ServiceBase) Run(mod ...core.IModule) { func (this *ServiceBase) Run(mod ...core.IModule) {
go func() { go func() {
defer lego.Recover("Service Run")
for _, v := range mod { //初始化模块对象 分配配置参数 for _, v := range mod { //初始化模块对象 分配配置参数
if sf, ok := this.service.GetSettings().Modules[string(v.GetType())]; ok { if sf, ok := this.service.GetSettings().Modules[string(v.GetType())]; ok {
this.modules[v.GetType()] = &defaultModule{ this.modules[v.GetType()] = &defaultModule{

View File

@ -45,7 +45,7 @@ func (this *AttributeNumeric) Value() float32 {
} }
func (this *AttributeNumeric) SetBase(value float32) float32 { func (this *AttributeNumeric) SetBase(value float32) float32 {
this.BaseValue.Set(value) this.BaseValue.SetFloat(value)
this.onChange() this.onChange()
return this.BaseValue.Value() return this.BaseValue.Value()
} }

View File

@ -2,7 +2,7 @@ package attribute
func NewFixedNumeric(pData float32) FixedNumeric { func NewFixedNumeric(pData float32) FixedNumeric {
fixed := FixedNumeric{} fixed := FixedNumeric{}
fixed.Set(pData) fixed.SetFloat(pData)
return fixed return fixed
} }
@ -10,17 +10,38 @@ type FixedNumeric struct {
baseValue FixedPoint baseValue FixedPoint
} }
func (this FixedNumeric) Set(value float32) float32 {
this.baseValue = NewFixedPoint(value)
return this.baseValue.Scalar()
}
func (this FixedNumeric) Fixed() FixedPoint { func (this FixedNumeric) Fixed() FixedPoint {
return this.baseValue return this.baseValue
} }
func (this FixedNumeric) Value() float32 { func (this FixedNumeric) Value() float32 {
return this.baseValue.Scalar() return this.baseValue.Scalar()
} }
func (this FixedNumeric) GetValue(pDefault float32) float32 {
if this.Value() != 0 {
return this.Value()
} else {
return pDefault
}
}
func (this FixedNumeric) SetFloat(value float32) float32 {
this.baseValue = NewFixedPoint(value)
return this.baseValue.Scalar()
}
func (this FixedNumeric) Set(value FixedPoint) float32 {
this.baseValue = value
return this.baseValue.Scalar()
}
/// <summary>
/// 增加基本值
/// </summary>
func (this FixedNumeric) Add(value float32) float32 {
this.baseValue.Add(value)
return this.baseValue.Scalar()
}
/// <summary> /// <summary>
/// 减少基本值 /// 减少基本值
/// </summary> /// </summary>

View File

@ -36,6 +36,12 @@ func (this FixedPoint) ToString() string {
return fmt.Sprintf("%f", this.Scalar()) return fmt.Sprintf("%f", this.Scalar())
} }
/// -
func (this FixedPoint) Add(v float32) {
y := NewFixedPoint(v)
this.rawValue = this.rawValue + y.rawValue
}
/// - /// -
func (this FixedPoint) Reduce(v float32) { func (this FixedPoint) Reduce(v float32) {
y := NewFixedPoint(v) y := NewFixedPoint(v)

View File

@ -36,6 +36,12 @@ type HealthPoint struct {
CurrMaxHpAppend *AttributeNumeric CurrMaxHpAppend *AttributeNumeric
} }
/// <summary>
/// 重置当前生命值为最大值
/// </summary>
func (this *HealthPoint) Reset() {
this.Hp.SetFloat(this.CurrMaxHp.Value())
}
func (this *HealthPoint) Value() int32 { func (this *HealthPoint) Value() int32 {
return int32(this.Hp.Value()) return int32(this.Hp.Value())
} }
@ -43,10 +49,35 @@ func (this *HealthPoint) MaxValue() int32 {
return int32(this.CurrMaxHp.Value()) return int32(this.CurrMaxHp.Value())
} }
/// <summary>
/// 扣血
/// </summary>
/// <param name="value"></param>
func (this *HealthPoint) Minus(value float32) { func (this *HealthPoint) Minus(value float32) {
this.Hp.Minus(value) this.Hp.Minus(value)
} }
/// <summary>
/// 加血
/// </summary>
func (this *HealthPoint) Add(value float32) {
if FixedPoint_Add(this.Hp.Fixed(), NewFixedPoint(value)).rawValue > this.CurrMaxHp.Fixed().rawValue {
this.Reset()
} else {
this.Hp.Add(value)
}
}
/// <summary>
/// 获取治疗溢出值
/// </summary>
func (this *HealthPoint) Overflow(value float32) float32 {
if FixedPoint_Add(this.Hp.Fixed(), NewFixedPoint(value)).rawValue > this.CurrMaxHp.Fixed().rawValue {
return FixedPoint_Divide(FixedPoint_Add(this.Hp.Fixed(), NewFixedPoint(value)), this.CurrMaxHp.Fixed()).Scalar()
}
return 0
}
/// <summary> /// <summary>
/// 剩余血量百分比 /// 剩余血量百分比
/// </summary> /// </summary>

View File

@ -6,6 +6,7 @@ import (
cfg "go_dreamfactory/sys/configure/structs" cfg "go_dreamfactory/sys/configure/structs"
) )
///战斗角色
type FightRole struct { type FightRole struct {
/// <summary> /// <summary>
/// 战斗实例 /// 战斗实例
@ -15,7 +16,15 @@ type FightRole struct {
/// 角色数据 /// 角色数据
/// </summary> /// </summary>
data core.FightRoleData data core.FightRoleData
CurrentHealth attribute.HealthPoint CurrentHealth *attribute.HealthPoint
}
func (this *FightRole) Initialize(pData core.FightRoleData) {
// this.data = pData
// this.CurrentHealth = attribute.NewHealthPoint(this.data.Hp)
// this.CurrentHealth.Reset()
// this.data.BuffStore.OwnerRole = this
// this.data.PassiveStore.OwnerRole = this
} }
/// <summary> /// <summary>
@ -28,7 +37,7 @@ func (this *FightRole) ReceiveDamage(DamageValue float32) {
//有不死buff生命值设置为1 //有不死buff生命值设置为1
for _, v := range this.data.BuffStore.HasBuffTypes { for _, v := range this.data.BuffStore.HasBuffTypes {
if v == cfg.GameBuffType_UNDEAD { if v == cfg.GameBuffType_UNDEAD {
this.CurrentHealth.Hp.Set(1) this.CurrentHealth.Hp.SetFloat(1)
break break
} }
} }

View File

@ -34,8 +34,7 @@ func (this *Options) LoadConfig(settings map[string]interface{}) (err error) {
return return
} }
} }
if this.Log = log.NewTurnlog(true, log.Clone("", 4)); this.Log == nil {
if this.Log = log.NewTurnlog(this.Debug, log.Clone("", 4)); this.Log == nil {
err = errors.New("log is nil") err = errors.New("log is nil")
} }
return return

View File

@ -40,7 +40,9 @@ func (this *configureComp) GetMsgDistribute(msgmid, msguid string) (rule string,
rule = item.Routrules rule = item.Routrules
} else { } else {
msgid := strings.ToLower(fmt.Sprintf("%s.%s", msgmid, msguid)) msgid := strings.ToLower(fmt.Sprintf("%s.%s", msgmid, msguid))
item, ok = v.(*cfg.GameMsgdistrib).GetDataMap()[msgid] if item, ok = v.(*cfg.GameMsgdistrib).GetDataMap()[msgid]; ok {
rule = item.Routrules
}
} }
} }
return return

View File

@ -13,6 +13,11 @@ import (
/* GM 在控制台输入的字符串类型 /* GM 在控制台输入的字符串类型
//bingo:item,10001,1 //bingo:item,10001,1
//bingo:attr,gold,1000000 //bingo:attr,gold,1000000
2修改主线关卡进度bingo:mapid,102102代表关卡位置
3修改心魔塔进度bingo:pataid,1010代表层数
4修改玩家经验值bingo:exp,10001000代表新增的经验值 //
*/ */
//参数校验 //参数校验
func (this *apiComp) CmdCheck(session comm.IUserSession, req *pb.GMCmdReq) (code pb.ErrorCode) { func (this *apiComp) CmdCheck(session comm.IUserSession, req *pb.GMCmdReq) (code pb.ErrorCode) {
@ -31,7 +36,8 @@ func (this *apiComp) Cmd(session comm.IUserSession, req *pb.GMCmdReq) (code pb.E
if len(keys) == 2 { if len(keys) == 2 {
if keys[0] == "bingo" { if keys[0] == "bingo" {
datas := strings.Split(keys[1], ",") datas := strings.Split(keys[1], ",")
if len(datas) == 3 { if len(datas) == 3 && (datas[0] == comm.AttrType || datas[0] == comm.ItemType ||
datas[0] == comm.HeroType || datas[0] == comm.EquipmentType) {
num, err := strconv.Atoi(datas[2]) num, err := strconv.Atoi(datas[2])
if err != nil { if err != nil {
code = pb.ErrorCode_ReqParameterError code = pb.ErrorCode_ReqParameterError
@ -48,6 +54,28 @@ func (this *apiComp) Cmd(session comm.IUserSession, req *pb.GMCmdReq) (code pb.E
session.SendMsg(string(this.module.GetType()), "cmd", &pb.GMCmdResp{IsSucc: true}) session.SendMsg(string(this.module.GetType()), "cmd", &pb.GMCmdResp{IsSucc: true})
return return
} }
} else if len(datas) == 2 && (datas[0] == "mapid") {
module1, err := this.service.GetModule(comm.ModuleMainline)
if err != nil {
return
}
num, err := strconv.Atoi(datas[1])
if err != nil {
code = pb.ErrorCode_ReqParameterError
return
}
code = module1.(comm.IMainline).ModifyMainlineData(session.GetUserId(), int32(num))
} else if len(datas) == 2 && (datas[0] == "pataid") {
module1, err := this.service.GetModule(comm.ModulePagoda)
if err != nil {
return
}
num, err := strconv.Atoi(datas[1])
if err != nil {
code = pb.ErrorCode_ReqParameterError
return
}
code = module1.(comm.IPagoda).ModifyPagodaFloor(session, int32(num))
} }
} }
} }

View File

@ -23,6 +23,7 @@ func NewModule() core.IModule {
type GM struct { type GM struct {
modules.ModuleBase modules.ModuleBase
api_comp *apiComp api_comp *apiComp
service core.IService
} }
//模块名 //模块名
@ -33,6 +34,7 @@ func (this *GM) GetType() core.M_Modules {
//模块初始化接口 注册用户创建角色事件 //模块初始化接口 注册用户创建角色事件
func (this *GM) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) { func (this *GM) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options) err = this.ModuleBase.Init(service, module, options)
this.service = service
return return
} }
@ -49,7 +51,8 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC
if len(keys) == 2 { if len(keys) == 2 {
if keys[0] == "bingo" { if keys[0] == "bingo" {
datas := strings.Split(keys[1], ",") datas := strings.Split(keys[1], ",")
if len(datas) == 3 { if len(datas) == 3 && (datas[0] == comm.AttrType || datas[0] == comm.ItemType ||
datas[0] == comm.HeroType || datas[0] == comm.EquipmentType) {
num, err := strconv.Atoi(datas[2]) num, err := strconv.Atoi(datas[2])
if err != nil { if err != nil {
code = pb.ErrorCode_ReqParameterError code = pb.ErrorCode_ReqParameterError
@ -62,6 +65,32 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC
N: int32(num), N: int32(num),
}, },
}, true) }, true)
if code == pb.ErrorCode_Success { // 成功直接返回
session.SendMsg(string(this.GetType()), "cmd", &pb.GMCmdResp{IsSucc: true})
return
}
} else if len(datas) == 2 && (datas[0] == "mapid") {
module1, err := this.service.GetModule(comm.ModuleMainline)
if err != nil {
return
}
num, err := strconv.Atoi(datas[1])
if err != nil {
code = pb.ErrorCode_ReqParameterError
return
}
code = module1.(comm.IMainline).ModifyMainlineData(session.GetUserId(), int32(num))
} else if len(datas) == 2 && (datas[0] == "pataid") {
module1, err := this.service.GetModule(comm.ModulePagoda)
if err != nil {
return
}
num, err := strconv.Atoi(datas[1])
if err != nil {
code = pb.ErrorCode_ReqParameterError
return
}
code = module1.(comm.IPagoda).ModifyPagodaFloor(session, int32(num))
} }
} }
} }

View File

@ -26,6 +26,7 @@ const ( //消息回复的头名称
Awaken = "awaken" // 英雄觉醒 Awaken = "awaken" // 英雄觉醒
HeroLock = "lock" // 英雄锁定 HeroLock = "lock" // 英雄锁定
DrawCard = "drawcard" // 抽卡 DrawCard = "drawcard" // 抽卡
DrawCardFloor = "drawcardfloor" // 抽卡保底
) )
//组件初始化接口 //组件初始化接口

View File

@ -29,6 +29,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
heroRecord *pb.DBHeroRecord heroRecord *pb.DBHeroRecord
pool string pool string
_mapAddHero map[string]int32 _mapAddHero map[string]int32
strPool []string // 10连跨多个卡池情况
) )
_mapAddHero = make(map[string]int32, 0) _mapAddHero = make(map[string]int32, 0)
cfgDraw = this.module.configure.GetGlobalConf() // 读取抽卡配置文件 cfgDraw = this.module.configure.GetGlobalConf() // 读取抽卡配置文件
@ -45,7 +46,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
heroRecord, _ = this.module.modelRecord.GetHeroRecord(session.GetUserId()) heroRecord, _ = this.module.modelRecord.GetHeroRecord(session.GetUserId())
drawCount = heroRecord.Drawcount drawCount = heroRecord.Drawcount
pool = this.module.modelHero.CheckPool(drawCount, cfg)
if req.DrawType == 0 { // 普通卡池抽卡 if req.DrawType == 0 { // 普通卡池抽卡
// 获取普通抽卡池 // 获取普通抽卡池
if req.DrawCount == 1 { if req.DrawCount == 1 {
@ -60,27 +61,43 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
} }
for i := 0; i < int(req.DrawCount); i++ { for i := 0; i < int(req.DrawCount); i++ {
drawCount += 1
pool = this.module.modelHero.CheckPool(drawCount, cfg)
strPool = append(strPool, pool)
sz := make([]int32, 0) sz := make([]int32, 0)
if cfgDraw.BasePoolStar3 != 0 { if cfgDraw.BasePoolStar3 != 0 {
sz = append(sz, cfgDraw.BasePoolStar3) sz = append(sz, cfgDraw.BasePoolStar3)
} }
if cfgDraw.BasePoolStar4 != 0 { if cfgDraw.BasePoolStar4 != 0 {
sz = append(sz, cfgDraw.BasePoolStar4) sz = append(sz, cfgDraw.BasePoolStar4)
} }
if cfgDraw.BasePoolStar5 != 0 { if cfgDraw.BasePoolStar5 != 0 {
sz = append(sz, cfgDraw.BasePoolStar5) sz = append(sz, cfgDraw.BasePoolStar5)
} }
starIndex := this.module.modelHero.GetRandW(sz) starIndex := this.module.modelHero.GetRandW(sz)
heroRecord.Star4++
heroRecord.Star5++
if starIndex == 1 { if starIndex == 1 {
heroRecord.Star4 = 0
star4Max++ star4Max++
} else if starIndex == 2 { } else if starIndex == 2 {
star5Max++ star5Max++
heroRecord.Star5 = 0
} }
if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max { if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max {
starIndex = 0 starIndex = 0
} }
// 普通卡池保底
if cfgDraw.DrawFloorStar4 <= heroRecord.Star4 {
heroRecord.Star4 = 0
starIndex = 1
}
if cfgDraw.DrawFloorStar5 <= heroRecord.Star5 {
heroRecord.Star5 = 0
starIndex = 2
}
szStar = append(szStar, starIndex+3) szStar = append(szStar, starIndex+3)
if len(szStar) >= int(req.DrawCount) { if len(szStar) >= int(req.DrawCount) {
break break
@ -91,6 +108,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
switch req.DrawType { switch req.DrawType {
case 1: case 1:
pool = cfg.Camp1Pool1 pool = cfg.Camp1Pool1
costAtn = cfgDraw.Camp1PoolCost costAtn = cfgDraw.Camp1PoolCost
case 2: case 2:
@ -103,6 +121,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
pool = cfg.Camp4Pool1 pool = cfg.Camp4Pool1
costAtn = cfgDraw.Camp4PoolCost costAtn = cfgDraw.Camp4PoolCost
} }
strPool = append(strPool, pool)
} else { } else {
costAtn = cfgDraw.Camp1PoolCost costAtn = cfgDraw.Camp1PoolCost
switch req.DrawType { switch req.DrawType {
@ -120,6 +139,9 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
pool = cfg.Camp4Pool1 pool = cfg.Camp4Pool1
costAtn = cfgDraw.Camp4Pool10cost costAtn = cfgDraw.Camp4Pool10cost
} }
for i := 0; i < int(req.DrawCount); i++ {
strPool = append(strPool, pool)
}
} }
costRes = append(costRes, costAtn) costRes = append(costRes, costAtn)
@ -156,28 +178,33 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
} }
} }
} }
_data := this.module.configure.GetPollByType(pool) for index, star := range szStar {
_data := this.module.configure.GetPollByType(strPool[index])
if _data == nil { if _data == nil {
code = pb.ErrorCode_ConfigNoFound code = pb.ErrorCode_ConfigNoFound
return return
} }
for _, star := range szStar { // szStar 转 szHeroId
sz := make([]int32, 0) sz := make([]int32, 0)
for _, v := range _data[int32(star)] { for _, v := range _data[int32(star)] {
sz = append(sz, v.Weight) sz = append(sz, v.Weight)
} }
randomIndex := this.module.modelHero.GetRandW(sz) randomIndex := this.module.modelHero.GetRandW(sz)
szCards = append(szCards, _data[int32(star)][randomIndex].Id) if v, ok := _data[int32(star)]; ok {
if int32(len(v)) > randomIndex {
szCards = append(szCards, v[randomIndex].Id)
} }
// 更新record 配置信息 }
}
if req.DrawType == 0 {
update := map[string]interface{}{} update := map[string]interface{}{}
if drawCount != -1 { update["star4"] = heroRecord.Star4
drawCount += req.DrawCount update["star5"] = heroRecord.Star5
update["drawcount"] = drawCount update["drawcount"] = drawCount
}
this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update) this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update)
}
// 消耗道具 // 消耗道具
code = this.module.ConsumeRes(session, costRes, true) code = this.module.ConsumeRes(session, costRes, true)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {

View File

@ -0,0 +1,23 @@
package hero
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
)
func (this *apiComp) DrawCardFloorCheck(session comm.IUserSession, req *pb.HeroDrawCardFloorReq) (code pb.ErrorCode) {
return
}
//抽卡
func (this *apiComp) DrawCardFloor(session comm.IUserSession, req *pb.HeroDrawCardFloorReq) (code pb.ErrorCode, data proto.Message) {
rsp := &pb.HeroDrawCardFloorResp{}
heroRecord, _ := this.module.modelRecord.GetHeroRecord(session.GetUserId())
rsp.Star4 = heroRecord.Star4
rsp.Star5 = heroRecord.Star5
session.SendMsg(string(this.module.GetType()), DrawCardFloor, rsp)
return
}

View File

@ -114,7 +114,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
_data := this.module.configure.GetHeroLv(curLv) _data := this.module.configure.GetHeroLv(curLv)
if _data != nil { if _data != nil {
if maxLv == _hero.Lv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级 if maxLv == curLv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级
code = pb.ErrorCode_HeroMaxLv code = pb.ErrorCode_HeroMaxLv
return return
} }
@ -123,7 +123,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
if len(_data.Heroexp) == 0 { if len(_data.Heroexp) == 0 {
break break
} }
if maxLv <= _hero.Lv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级 if maxLv <= curLv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级
// 超过的经验值 // 超过的经验值
leftExp := curExp - _data.Heroexp[0].N leftExp := curExp - _data.Heroexp[0].N
this.module.Debugf("经验溢出%d", leftExp) this.module.Debugf("经验溢出%d", leftExp)

View File

@ -490,7 +490,7 @@ func (this *ModelHero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhe
maxLv = hero.Star * comm.HeroStarLvRatio maxLv = hero.Star * comm.HeroStarLvRatio
_data := this.moduleHero.configure.GetHeroLv(curLv) _data := this.moduleHero.configure.GetHeroLv(curLv)
if _data != nil { if _data != nil {
if maxLv <= hero.Lv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级 if maxLv <= curLv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级
code = pb.ErrorCode_HeroMaxLv code = pb.ErrorCode_HeroMaxLv
return return
} }
@ -499,7 +499,7 @@ func (this *ModelHero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhe
if len(_data.Heroexp) == 0 { if len(_data.Heroexp) == 0 {
break break
} }
if maxLv <= hero.Lv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级 if maxLv <= curLv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级
curLv = maxLv curLv = maxLv
curExp = _data.Heroexp[0].N curExp = _data.Heroexp[0].N
break break

View File

@ -32,7 +32,7 @@ func (this *modelMail) Init(service core.IService, module core.IModule, comp cor
func (this *modelMail) MailQueryUserMail(uId string) (mail []*pb.DBMailData, err error) { func (this *modelMail) MailQueryUserMail(uId string) (mail []*pb.DBMailData, err error) {
if _data, err := this.DB.Find(comm.TableMail, bson.M{"uid": uId}); err == nil { if _data, err := this.DB.Find(comm.TableMail, bson.M{"uid": uId}, options.Find().SetSort(bson.M{"createtime": -1})); err == nil {
for _data.Next(context.TODO()) { for _data.Next(context.TODO()) {
temp := &pb.DBMailData{} temp := &pb.DBMailData{}
if err = _data.Decode(temp); err == nil { if err = _data.Decode(temp); err == nil {

View File

@ -101,6 +101,15 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MainlineCh
if code = this.module.DispenseRes(session, res, true); code != pb.ErrorCode_Success { if code = this.module.DispenseRes(session, res, true); code != pb.ErrorCode_Success {
this.module.Debugf("DispenseRes err:+%v", res) 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)
}
}
}
session.SendMsg(string(this.module.GetType()), MainlineChallengeOverResp, &pb.MainlineChallengeOverResp{Data: mainline}) session.SendMsg(string(this.module.GetType()), MainlineChallengeOverResp, &pb.MainlineChallengeOverResp{Data: mainline})
return return
} }

View File

@ -6,6 +6,8 @@ import (
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"sort" "sort"
"go.mongodb.org/mongo-driver/bson/primitive"
) )
type Mainline struct { type Mainline struct {
@ -39,11 +41,38 @@ func (this *Mainline) OnInstallComp() {
} }
// 接口信息 给其他模块调用 用来修改主线关卡信息 // 接口信息 给其他模块调用 用来修改主线关卡信息
func (this *Mainline) ModifyMainlineData(uid string, objId string, data map[string]interface{}) (code pb.ErrorCode) { func (this *Mainline) ModifyMainlineData(uid string, id int32) (code pb.ErrorCode) {
err := this.modelMainline.modifyMainlineData(uid, objId, data)
conf := this.configure.GetMainlineConfigData(id, 1)
list, err := this.modelMainline.getMainlineList(uid)
if err != nil {
code = pb.ErrorCode_DBError
return
}
for _, v := range list {
if v.ChapterId == conf.Chapter {
data := make(map[string]interface{}, 0)
data["mainlineId"] = id
data["chapterId"] = v.ChapterId
this.modelMainline.modifyMainlineData(uid, v.Id, data)
if err != nil { if err != nil {
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
} }
return
}
}
//add
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = conf.Chapter
_data.MainlineId = conf.Id
_mData := make(map[string]interface{}, 0)
_data.Uid = uid
_data.Intensity = 1 // 难度1
_mData[_data.Id] = _data
this.modelMainline.addNewChapter(uid, _mData)
return return
} }

View File

@ -28,6 +28,7 @@ func (this *Options) GetLog() log.ILogger {
} }
func (this *Options) LoadConfig(settings map[string]interface{}) (err error) { func (this *Options) LoadConfig(settings map[string]interface{}) (err error) {
this.Debug = true
if settings != nil { if settings != nil {
err = mapstructure.Decode(settings, this) err = mapstructure.Decode(settings, this)
} }

View File

@ -36,7 +36,7 @@ func (this *apiComp) GetReward(session comm.IUserSession, req *pb.PagodaGetRewar
return return
} }
// 校验是否能领取 // 校验是否能领取
if _cfg.LayerNum >= season.PagodaId { if _cfg.LayerNum > season.PagodaId {
code = pb.ErrorCode_PagodaConditionErr code = pb.ErrorCode_PagodaConditionErr
return return
} }
@ -69,7 +69,7 @@ func (this *apiComp) GetReward(session comm.IUserSession, req *pb.PagodaGetRewar
return return
} }
// 校验是否能领取 // 校验是否能领取
if _cfg.LayerNum >= list.PagodaId { if _cfg.LayerNum > list.PagodaId {
code = pb.ErrorCode_PagodaConditionErr code = pb.ErrorCode_PagodaConditionErr
return return
} }

View File

@ -68,3 +68,17 @@ func (this *Pagoda) Start() (err error) {
this.battle = module.(comm.IBattle) this.battle = module.(comm.IBattle)
return return
} }
// 给gm 调用修改爬塔层数
func (this *Pagoda) ModifyPagodaFloor(session comm.IUserSession, level int32) (code pb.ErrorCode) {
list, _ := this.modelPagoda.getPagodaList(session.GetUserId())
if list != nil {
list.PagodaId = level
mapData := make(map[string]interface{}, 0)
mapData["pagodaId"] = level
code = this.ModifyPagodaData(session.GetUserId(), mapData)
session.SendMsg(string(this.GetType()), PagodaGetListResp, &pb.PagodaGetListResp{Data: list})
}
return
}

View File

@ -12,6 +12,7 @@ const (
RtaskSubTypeReward = "getreward" //奖励 RtaskSubTypeReward = "getreward" //奖励
RtaskSubTypeBattleStart = "battlestart" //战斗开始 RtaskSubTypeBattleStart = "battlestart" //战斗开始
RtaskSubTypeBattleFinish = "battlefinish" //战斗完成 RtaskSubTypeBattleFinish = "battlefinish" //战斗完成
RtaskSubTypeGetrecord = "getrecord" //任务数据
) )
type apiComp struct { type apiComp struct {

View File

@ -0,0 +1,25 @@
package rtask
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
)
func (this *apiComp) GetrecordCheck(session comm.IUserSession, req *pb.RtaskGetrecordReq) (code pb.ErrorCode) {
return
}
func (this *apiComp) Getrecord(session comm.IUserSession, req *pb.RtaskGetrecordReq) (code pb.ErrorCode, data proto.Message) {
rsp := &pb.RtaskGetrecordResp{}
record := this.moduleRtask.modelRtaskRecord.getRecord(session.GetUserId())
if record.Uid != "" && record.Vals != nil {
rsp.Record = record
}
if err := session.SendMsg(string(this.moduleRtask.GetType()), RtaskSubTypeGetrecord, rsp); err != nil {
code = pb.ErrorCode_SystemError
}
return
}

View File

@ -3,6 +3,7 @@ package rtask
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
@ -32,3 +33,12 @@ func (this *ModelRtaskRecord) GetVerifyData(uid string, condiId int32) (*pb.Rtas
} }
return record.Vals[condiId], nil return record.Vals[condiId], nil
} }
// 获取玩家随机任务记录
func (this *ModelRtaskRecord) getRecord(uid string) *pb.DBRtaskRecord {
record := &pb.DBRtaskRecord{}
if err := this.Get(uid, record); err != nil {
log.Errorf("get rtask record err:%v", err)
}
return record
}

View File

@ -71,13 +71,16 @@ func (this *ModelRtaskRecord) overrideUpdate(uid string, cfg *cfg.GameRdtaskCond
// 累计更新 - 招募等 // 累计更新 - 招募等
func (this *ModelRtaskRecord) addUpdate(uid string, cfg *cfg.GameRdtaskCondiData, vals ...int32) (err error) { func (this *ModelRtaskRecord) addUpdate(uid string, cfg *cfg.GameRdtaskCondiData, vals ...int32) (err error) {
record := &pb.DBRtaskRecord{} record := &pb.DBRtaskRecord{Uid: uid}
err = this.Get(uid, record) err = this.Get(uid, record)
if err != nil { if err != nil {
if err != mongo.ErrNoDocuments {
return errors.Wrapf(err, "获取玩家任务记录 err: %v rtype[%v]", uid, cfg.Id) return errors.Wrapf(err, "获取玩家任务记录 err: %v rtype[%v]", uid, cfg.Id)
} }
}
if record.Vals == nil { if record.Vals == nil {
record.Id = primitive.NewObjectID().Hex()
data := &pb.RtaskData{ data := &pb.RtaskData{
Data: toMap(vals...), Data: toMap(vals...),
Rtype: cfg.Type, Rtype: cfg.Type,

View File

@ -63,10 +63,23 @@ func (this *apiComp) ActiveReceive(session comm.IUserSession, req *pb.TaskActive
return return
} }
update := make(map[string]interface{})
if req.TaskTag == int32(comm.TASK_DAILY) {
if ue.Activeday >= conf.Active { if ue.Activeday >= conf.Active {
update := map[string]interface{}{ update["received"] = 1
"received": 1, //标识已领取 } else {
code = pb.ErrorCode_TaskActiveNoenough
return
} }
} else if req.TaskTag == int32(comm.TASK_WEEKLY) {
if ue.Activeweek >= conf.Active {
update["received"] = 1
} else {
code = pb.ErrorCode_TaskActiveNoenough
return
}
}
if len(update) > 0 {
if err := this.moduleTask.modelTaskActive.updateReceive(session.GetUserId(), if err := this.moduleTask.modelTaskActive.updateReceive(session.GetUserId(),
ua.Id, ua.Id,
comm.TaskTag(req.TaskTag), comm.TaskTag(req.TaskTag),
@ -75,9 +88,6 @@ func (this *apiComp) ActiveReceive(session comm.IUserSession, req *pb.TaskActive
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
return return
} }
} else {
code = pb.ErrorCode_TaskActiveNoenough
return
} }
//派发奖励 //派发奖励

View File

@ -59,6 +59,7 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.TaskReceiveReq)
return return
} }
// 更新活跃度
if conf.Active > 0 { if conf.Active > 0 {
//更新活跃度 //更新活跃度
ue, err := this.moduleTask.ModuleUser.GetUserExpand(session.GetUserId()) ue, err := this.moduleTask.ModuleUser.GetUserExpand(session.GetUserId())
@ -67,7 +68,7 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.TaskReceiveReq)
return return
} }
update := make(map[string]interface{}) update := make(map[string]interface{})
if ue != nil { if ue.Uid != "" {
if comm.TaskTag(req.TaskTag) == comm.TASK_DAILY { if comm.TaskTag(req.TaskTag) == comm.TASK_DAILY {
ue.Activeday = ue.Activeday + conf.Active ue.Activeday = ue.Activeday + conf.Active
} }
@ -75,14 +76,8 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.TaskReceiveReq)
ue.Activeweek = ue.Activeweek + conf.Active ue.Activeweek = ue.Activeweek + conf.Active
} }
update = utils.StructToMap(ue) update = utils.StructToMap(ue)
} else {
if comm.TaskTag(req.TaskTag) == comm.TASK_DAILY {
update["activeday"] = conf.Active
}
if comm.TaskTag(req.TaskTag) == comm.TASK_WEEKLY {
update["activeweek"] = conf.Active
}
} }
if len(update) > 0 { if len(update) > 0 {
if err = this.moduleTask.ModuleUser.ChangeUserExpand(session.GetUserId(), update); err != nil { if err = this.moduleTask.ModuleUser.ChangeUserExpand(session.GetUserId(), update); err != nil {
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError

View File

@ -168,7 +168,7 @@ func (this *configureComp) getTaskActiveList() (data []*cfg.GameActiveRewardData
} }
//获取活跃度奖励list //获取活跃度奖励list
func (this *configureComp) getTaskActiveByTag(taskTag int32) (data []*cfg.GameActiveRewardData, err error) { func (this *configureComp) getTaskActiveByTag(taskTag int32) (data []*cfg.GameActiveRewardData) {
conf, err := this.getActiveRewardCfg() conf, err := this.getActiveRewardCfg()
if err != nil { if err != nil {
log.Errorf("get conf err:%v", err) log.Errorf("get conf err:%v", err)

View File

@ -22,15 +22,15 @@ func (this *ModelTaskActive) Init(service core.IService, module core.IModule, co
} }
//初始化活跃度 //初始化活跃度
func (this *ModelTaskActive) initActiveReward(uid string) { func (this *ModelTaskActive) initActiveReward(uid string, taskTag comm.TaskTag) {
data := this.moduleTask.configure.getTaskActiveList() data := this.moduleTask.configure.getTaskActiveByTag(int32(taskTag))
for _, conf := range data { for _, conf := range data {
objId := primitive.NewObjectID().Hex() objId := primitive.NewObjectID().Hex()
ta := &pb.DBTaskActive{ ta := &pb.DBTaskActive{
Id: objId, Id: objId,
Uid: uid, Uid: uid,
Tag: conf.IdTag, Tag: int32(taskTag),
RId: conf.Key, RId: conf.Key,
} }
if err := this.moduleTask.modelTaskActive.AddList(uid, ta.Id, ta); err != nil { if err := this.moduleTask.modelTaskActive.AddList(uid, ta.Id, ta); err != nil {

View File

@ -58,7 +58,8 @@ func (this *ModuleTask) InitTaskAll(uid string) {
this.modelTask.initTask(uid, comm.TASK_DAILY) this.modelTask.initTask(uid, comm.TASK_DAILY)
this.modelTask.initTask(uid, comm.TASK_WEEKLY) this.modelTask.initTask(uid, comm.TASK_WEEKLY)
this.modelTask.initTask(uid, comm.TASK_ACHIEVE) this.modelTask.initTask(uid, comm.TASK_ACHIEVE)
this.modelTaskActive.initActiveReward(uid) this.modelTaskActive.initActiveReward(uid, comm.TASK_DAILY)
this.modelTaskActive.initActiveReward(uid, comm.TASK_WEEKLY)
} }
// 初始化指定的任务 // 初始化指定的任务
@ -66,10 +67,10 @@ func (this *ModuleTask) InitTaskByTag(uid string, taskTag comm.TaskTag) {
switch taskTag { switch taskTag {
case comm.TASK_DAILY: case comm.TASK_DAILY:
this.modelTask.initTask(uid, comm.TASK_DAILY) this.modelTask.initTask(uid, comm.TASK_DAILY)
this.modelTaskActive.initActiveReward(uid) this.modelTaskActive.initActiveReward(uid, comm.TASK_DAILY)
case comm.TASK_WEEKLY: case comm.TASK_WEEKLY:
this.modelTask.initTask(uid, comm.TASK_WEEKLY) this.modelTask.initTask(uid, comm.TASK_WEEKLY)
this.modelTaskActive.initActiveReward(uid) this.modelTaskActive.initActiveReward(uid, comm.TASK_WEEKLY)
case comm.TASK_ACHIEVE: case comm.TASK_ACHIEVE:
this.modelTask.initTask(uid, comm.TASK_ACHIEVE) this.modelTask.initTask(uid, comm.TASK_ACHIEVE)
} }

View File

@ -139,8 +139,8 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod
mail := &pb.DBMailData{ mail := &pb.DBMailData{
ObjId: primitive.NewObjectID().Hex(), ObjId: primitive.NewObjectID().Hex(),
Uid: user.Uid, Uid: user.Uid,
Title: "系统邮件", Title: "system mail",
Contex: "恭喜获得登录专属礼包一份", Contex: "Congratulations on getting a login exclusive gift pack",
CreateTime: uint64(time.Now().Unix()), CreateTime: uint64(time.Now().Unix()),
DueTime: uint64(time.Now().Unix()) + 30*24*3600, // 30天需要走配置文件 DueTime: uint64(time.Now().Unix()) + 30*24*3600, // 30天需要走配置文件
Check: false, Check: false,

View File

@ -160,7 +160,7 @@ func (this *ModelUser) updateOfflineTime(uid string) {
// change exp // change exp
func (this *ModelUser) ChangeExp(event interface{}, next func(event interface{})) { func (this *ModelUser) ChangeExp(event interface{}, next func(event interface{})) {
ul := event.(*UserListen) ul := event.(*UserListen)
// TODO // TODO nothing
next(ul) next(ul)
} }
@ -168,22 +168,21 @@ func (this *ModelUser) ChangeExp(event interface{}, next func(event interface{})
func (this *ModelUser) ChangeLevel(event interface{}, next func(event interface{})) { func (this *ModelUser) ChangeLevel(event interface{}, next func(event interface{})) {
ul := event.(*UserListen) ul := event.(*UserListen)
curLv := ul.lv curLv := ul.lv
curLvConf := this.module.configure.GetPlayerlvConf(curLv) //下一等级配置
nextLvConf := this.module.configure.GetPlayerlvConf(curLv + 1) nextLvConf := this.module.configure.GetPlayerlvConf(curLv + 1)
if curLvConf.Exp == 0 || nextLvConf == nil { //最大等级 for nextLvConf != nil && ul.exp >= nextLvConf.Exp {
next(ul) curLv++
return nextLvConf = this.module.configure.GetPlayerlvConf(curLv + 1)
} }
if ul.exp > curLvConf.Exp && ul.exp <= nextLvConf.Exp { // 等级有递增时再更新
ul.lv++ if curLv > ul.lv {
// 更新等级 ul.lv = curLv
update := map[string]interface{}{ update := map[string]interface{}{
"lv": ul.lv, "lv": ul.lv,
} }
this.module.modelUser.Change(ul.session.GetUserId(), update) this.module.modelUser.Change(ul.session.GetUserId(), update)
ul.session.SendMsg(string(this.module.GetType()), ul.session.SendMsg(string(this.module.GetType()), UserSubTypeLvChangedPush,
UserSubTypeLvChangedPush,
&pb.UserChangedPush{Uid: ul.session.GetUserId(), Exp: ul.exp, Lv: ul.lv}) &pb.UserChangedPush{Uid: ul.session.GetUserId(), Exp: ul.exp, Lv: ul.lv})
} }

View File

@ -9,6 +9,9 @@ import (
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/event" "go_dreamfactory/lego/sys/event"
"go_dreamfactory/lego/sys/log"
"github.com/pkg/errors"
) )
var _ comm.IUser = (*User)(nil) var _ comm.IUser = (*User)(nil)
@ -104,26 +107,34 @@ func (this *User) QueryAttributeValue(uid string, attr string) (value int32) {
return return
} }
//用户资源 func (this *User) change(session comm.IUserSession, attr string, add int32) (change *pb.UserResChangePush, code pb.ErrorCode) {
func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add int32, bPush bool) (code pb.ErrorCode) {
if add == 0 { if add == 0 {
this.Errorf("attr no changed,uid: %s attr: %s add: %d", session.GetUserId(), attr, add) log.Errorf("attr no changed,uid: %s attr: %s add: %d", session.GetUserId(), attr, add)
code = pb.ErrorCode_ReqParameterError
return return
} }
user := this.GetUser(session.GetUserId()) user := this.GetUser(session.GetUserId())
if user == nil { if user == nil {
code = pb.ErrorCode_UserSessionNobeing code = pb.ErrorCode_UserSessionNobeing
return return
} }
_change := &pb.UserResChangePush{ userEx, err := this.GetUserExpand(session.GetUserId())
if userEx == nil || err != nil {
code = pb.ErrorCode_UserExpandNull
return
}
change = &pb.UserResChangePush{
Gold: user.Gold, Gold: user.Gold,
Exp: user.Exp, Exp: user.Exp,
Lv: user.Lv, Lv: user.Lv,
Vip: user.Vip, Vip: user.Vip,
Diamond: user.Diamond, Diamond: user.Diamond,
Friend: userEx.FriendPoint,
} }
update := make(map[string]interface{})
switch attr { switch attr {
case comm.ResGold: case comm.ResGold:
if add < 0 { if add < 0 {
@ -132,39 +143,76 @@ func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add
return return
} }
} }
_change.Gold += add change.Gold += add
update[comm.ResGold] = user.Gold + add
case comm.ResExp: case comm.ResExp:
if add < 0 { if add < 0 {
if user.Exp+add < 0 { if user.Exp+add < 0 {
code = pb.ErrorCode_ResNoEnough code = pb.ErrorCode_UserExpNoEnough
return return
} }
} }
_change.Exp += add change.Exp += add
update[comm.ResExp] = user.Exp + add
case comm.ResDiamond: case comm.ResDiamond:
if add < 0 { if add < 0 {
if user.Diamond+add < 0 { if user.Diamond+add < 0 {
code = pb.ErrorCode_ResNoEnough code = pb.ErrorCode_DiamondNoEnough
return return
} }
} }
_change.Diamond += add change.Diamond += add
update[comm.ResDiamond] = user.Diamond + add case comm.ResFriend:
if add < 0 {
if userEx.FriendPoint+add < 0 {
code = pb.ErrorCode_UserFriendNoEnough
return
}
}
change.Friend += add
default: default:
code = pb.ErrorCode_Unknown err = errors.New(fmt.Sprintf("%s no supported", attr))
return
} }
if len(update) == 0 { //user
this.Warn("AddAttributeValue param is empty") update := map[string]interface{}{
return comm.ResGold: change.Gold,
comm.ResDiamond: change.Diamond,
comm.ResExp: change.Exp,
} }
//user ex
updateEx := map[string]interface{}{
comm.ResFriend: change.Friend,
}
if err := this.modelUser.updateUserAttr(session.GetUserId(), update); err != nil { if err := this.modelUser.updateUserAttr(session.GetUserId(), update); err != nil {
this.Errorf("AddAttributeValue err:%v", err) this.Errorf("AddAttributeValue err:%v", err)
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
} }
if err := this.modelExpand.ChangeUserExpand(session.GetUserId(), updateEx); err != nil {
this.Errorf("AddAttributeValue ex err:%v", err)
code = pb.ErrorCode_DBError
}
this.ModuleUser.EventUserChanged(session)
return
}
//用户资源
func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add int32, bPush bool) (code pb.ErrorCode) {
var _change *pb.UserResChangePush
_change, code = this.change(session, attr, add)
if code != pb.ErrorCode_Success {
return
}
if _change == nil {
return
}
if bPush { //推送玩家账号信息变化消息 if bPush { //推送玩家账号信息变化消息
session.SendMsg(string(this.GetType()), "reschange", _change) session.SendMsg(string(this.GetType()), "reschange", _change)
} }
@ -173,99 +221,22 @@ func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add
//用户资源 //用户资源
func (this *User) AddAttributeValues(session comm.IUserSession, attrs map[string]int32, bPush bool) (code pb.ErrorCode) { func (this *User) AddAttributeValues(session comm.IUserSession, attrs map[string]int32, bPush bool) (code pb.ErrorCode) {
user := this.GetUser(session.GetUserId())
if user == nil {
code = pb.ErrorCode_UserSessionNobeing
return
}
userEx, err := this.GetUserExpand(session.GetUserId())
if userEx == nil || err != nil {
return
}
_change := &pb.UserResChangePush{
Gold: user.Gold,
Exp: user.Exp,
Lv: user.Lv,
Vip: user.Vip,
Diamond: user.Diamond,
Friend: userEx.FriendPoint,
}
//user
update := make(map[string]interface{})
//user ex
updateEx := make(map[string]interface{})
for key, add := range attrs { for key, add := range attrs {
if add == 0 { var _change *pb.UserResChangePush
this.Errorf("attr no changed,uid: %s attr: %s add: %d", session.GetUserId(), key, add) _change, code = this.change(session, key, add)
if code != pb.ErrorCode_Success {
return
}
if _change == nil {
continue continue
} }
switch key {
case comm.ResGold:
if add < 0 {
if user.Gold+add < 0 {
code = pb.ErrorCode_GoldNoEnough
return
}
}
_change.Gold += add
update[comm.ResGold] = user.Gold + add
case comm.ResExp:
if add < 0 {
if user.Exp+add < 0 {
code = pb.ErrorCode_ResNoEnough
return
}
}
_change.Exp += add
update[comm.ResExp] = user.Exp + add
case comm.ResDiamond:
if add < 0 {
if user.Diamond+add < 0 {
code = pb.ErrorCode_ResNoEnough
return
}
}
_change.Diamond += add
update[comm.ResDiamond] = user.Diamond + add
case comm.ResFriend:
if add < 0 {
if userEx.FriendPoint+add < 0 {
code = pb.ErrorCode_ResNoEnough
return
}
}
_change.Friend += add
updateEx[comm.ResFriend] = userEx.FriendPoint + add
default:
code = pb.ErrorCode_Unknown
}
}
if len(update) == 0 && len(updateEx) == 0 {
this.Error("AttributeValue params null")
return
}
if len(update) != 0 {
if err := this.modelUser.updateUserAttr(session.GetUserId(), update); err != nil {
this.Errorf("AddAttributeValue err:%v", err)
code = pb.ErrorCode_DBError
}
}
if len(updateEx) != 0 {
if err := this.modelExpand.ChangeUserExpand(session.GetUserId(), updateEx); err != nil {
this.Errorf("AddAttributeValue ex err:%v", err)
code = pb.ErrorCode_DBError
}
}
if bPush { //推送玩家账号信息变化消息 if bPush { //推送玩家账号信息变化消息
session.SendMsg(string(this.GetType()), "reschange", _change) session.SendMsg(string(this.GetType()), "reschange", _change)
} }
}
return return
} }

View File

@ -61,6 +61,8 @@ const (
ErrorCode_UserModiNameCount ErrorCode = 1010 //名称修改次数不足 ErrorCode_UserModiNameCount ErrorCode = 1010 //名称修改次数不足
ErrorCode_UserNickNameEmpty ErrorCode = 1011 //昵称空 ErrorCode_UserNickNameEmpty ErrorCode = 1011 //昵称空
ErrorCode_UserExpandNull ErrorCode = 1012 //扩展数据空 ErrorCode_UserExpandNull ErrorCode = 1012 //扩展数据空
ErrorCode_UserExpNoEnough ErrorCode = 1013 //经验不足
ErrorCode_UserFriendNoEnough ErrorCode = 1014 //友情点不足
// friend // friend
ErrorCode_FriendNotSelf ErrorCode = 1100 //不能是自己 ErrorCode_FriendNotSelf ErrorCode = 1100 //不能是自己
ErrorCode_FriendSelfMax ErrorCode = 1101 //超出好友最大数量 ErrorCode_FriendSelfMax ErrorCode = 1101 //超出好友最大数量
@ -227,6 +229,8 @@ var (
1010: "UserModiNameCount", 1010: "UserModiNameCount",
1011: "UserNickNameEmpty", 1011: "UserNickNameEmpty",
1012: "UserExpandNull", 1012: "UserExpandNull",
1013: "UserExpNoEnough",
1014: "UserFriendNoEnough",
1100: "FriendNotSelf", 1100: "FriendNotSelf",
1101: "FriendSelfMax", 1101: "FriendSelfMax",
1102: "FriendTargetMax", 1102: "FriendTargetMax",
@ -375,6 +379,8 @@ var (
"UserModiNameCount": 1010, "UserModiNameCount": 1010,
"UserNickNameEmpty": 1011, "UserNickNameEmpty": 1011,
"UserExpandNull": 1012, "UserExpandNull": 1012,
"UserExpNoEnough": 1013,
"UserFriendNoEnough": 1014,
"FriendNotSelf": 1100, "FriendNotSelf": 1100,
"FriendSelfMax": 1101, "FriendSelfMax": 1101,
"FriendTargetMax": 1102, "FriendTargetMax": 1102,
@ -518,7 +524,7 @@ var File_errorcode_proto protoreflect.FileDescriptor
var file_errorcode_proto_rawDesc = []byte{ var file_errorcode_proto_rawDesc = []byte{
0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2a, 0xa7, 0x19, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x6f, 0x2a, 0xd6, 0x19, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12,
0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
@ -564,164 +570,167 @@ var file_errorcode_proto_rawDesc = []byte{
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xf2, 0x07, 0x12, 0x16, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xf2, 0x07, 0x12, 0x16, 0x0a, 0x11, 0x55, 0x73, 0x65,
0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xf3, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xf3,
0x07, 0x12, 0x13, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x4e, 0x07, 0x12, 0x13, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x4e,
0x75, 0x6c, 0x6c, 0x10, 0xf4, 0x07, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x75, 0x6c, 0x6c, 0x10, 0xf4, 0x07, 0x12, 0x14, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78,
0x4e, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xcc, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x70, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf5, 0x07, 0x12, 0x17, 0x0a, 0x12,
0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75,
0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x67, 0x68, 0x10, 0xf6, 0x07, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e,
0x78, 0x10, 0xce, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xcc, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69,
0x6c, 0x66, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xcf, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14, 0x0a,
0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x78,
0x61, 0x10, 0xd0, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65, 0x10, 0xce, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c,
0x74, 0x10, 0xd1, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x66, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xcf, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72,
0x70, 0x6c, 0x79, 0x59, 0x65, 0x74, 0x10, 0xd2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61,
0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0x10, 0xd0, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65, 0x74,
0xd3, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x10, 0xd1, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70,
0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a, 0x6c, 0x79, 0x59, 0x65, 0x74, 0x10, 0xd2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65,
0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd3,
0x72, 0x10, 0xd5, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65,
0x61, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x10, 0xd6, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a, 0x10,
0x65, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72,
0x74, 0x79, 0x10, 0xd7, 0x08, 0x12, 0x10, 0x0a, 0x0b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x10, 0xd5, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61,
0x61, 0x6e, 0x65, 0x64, 0x10, 0xd8, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x10, 0xd6, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65,
0x64, 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xd9, 0x08, 0x12, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74,
0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x79, 0x10, 0xd7, 0x08, 0x12, 0x10, 0x0a, 0x0b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61,
0x10, 0xda, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x10, 0xd8, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xdb, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xd9, 0x08, 0x12, 0x12,
0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xdc, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x10,
0x08, 0x12, 0x12, 0x0a, 0x0d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0xda, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e,
0x67, 0x68, 0x10, 0xb0, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xdb, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69,
0x46, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x69, 0x72, 0x64, 0x10, 0xb1, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xdc, 0x08,
0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x55, 0x70, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x0d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67,
0x72, 0x10, 0xb2, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x69, 0x72, 0x68, 0x10, 0xb0, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x46,
0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb3, 0x09, 0x12, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x69, 0x72, 0x64, 0x10, 0xb1, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49,
0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x55, 0x70, 0x70, 0x65, 0x72,
0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x10, 0xb4, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x10, 0xb2, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x69, 0x72, 0x64,
0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb3, 0x09, 0x12, 0x19,
0xb5, 0x09, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x78, 0x69, 0x73, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70,
0x74, 0x10, 0x94, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x10, 0xb4, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65,
0x6f, 0x75, 0x67, 0x68, 0x10, 0x95, 0x0a, 0x12, 0x0e, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xb5,
0x61, 0x78, 0x4c, 0x76, 0x10, 0x96, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x09, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x78, 0x69, 0x73, 0x74,
0x6e, 0x69, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x10, 0x97, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x10, 0x94, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, 0x6f,
0x65, 0x72, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x10, 0x98, 0x0a, 0x12, 0x13, 0x75, 0x67, 0x68, 0x10, 0x95, 0x0a, 0x12, 0x0e, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61,
0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x70, 0x45, 0x72, 0x72, 0x78, 0x4c, 0x76, 0x10, 0x96, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x6e,
0x10, 0x99, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x69, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x10, 0x97, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65,
0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9a, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x72, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x10, 0x98, 0x0a, 0x12, 0x13, 0x0a,
0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9b, 0x0a, 0x12, 0x18, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x70, 0x45, 0x72, 0x72, 0x10,
0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x99, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x73,
0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9c, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9a, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f,
0x4e, 0x6f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x9d, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9b, 0x0a, 0x12, 0x18, 0x0a,
0x65, 0x72, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10, 0x9e, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f,
0x48, 0x65, 0x72, 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9c, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e,
0x9f, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x41, 0x77, 0x61, 0x6f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x9d, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65,
0x6b, 0x65, 0x6e, 0x10, 0xa0, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, 0x72, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10, 0x9e, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48,
0x4c, 0x6f, 0x63, 0x6b, 0x10, 0xa1, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x65, 0x72, 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x9f,
0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xa2, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x41, 0x77, 0x61, 0x6b,
0x72, 0x6f, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa3, 0x0a, 0x65, 0x6e, 0x10, 0xa0, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, 0x4c,
0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x45, 0x72, 0x72, 0x10, 0x6f, 0x63, 0x6b, 0x10, 0xa1, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61,
0xa4, 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xa2, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72,
0x72, 0x10, 0xa5, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x54, 0x6f, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa3, 0x0a, 0x12,
0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa6, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x45, 0x72, 0x72, 0x10, 0xa4,
0x6f, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x45, 0x78, 0x70, 0x10, 0xa7, 0x0a, 0x12, 0x12, 0x0a, 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72,
0x0d, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xa8, 0x10, 0xa5, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x54, 0x79,
0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x61, 0x72, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa6, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f,
0x4c, 0x76, 0x10, 0xa9, 0x0a, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x45, 0x78, 0x70, 0x10, 0xa7, 0x0a, 0x12, 0x12, 0x0a, 0x0d,
0x64, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xaa, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xa8, 0x0a,
0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x61, 0x72, 0x4c,
0x4c, 0x76, 0x10, 0xab, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x6c, 0x72, 0x76, 0x10, 0xa9, 0x0a, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64,
0x65, 0x61, 0x64, 0x79, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xaa, 0x0a, 0x12,
0x10, 0xac, 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c,
0x4f, 0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x76, 0x10, 0xab, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x6c, 0x72, 0x65,
0x10, 0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x64, 0x79, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10,
0x4c, 0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xf9, 0xac, 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4f,
0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x73, 0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x10,
0x57, 0x6f, 0x72, 0x6e, 0x10, 0xfa, 0x0a, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x71, 0x75, 0x69, 0x70, 0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4c,
0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xfb, 0x0a, 0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xf9, 0x0a,
0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x73, 0x57,
0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x15, 0x0a, 0x6f, 0x72, 0x6e, 0x10, 0xfa, 0x0a, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d,
0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xfb, 0x0a, 0x12,
0x64, 0x10, 0xdd, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x69,
0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xde, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x15, 0x0a, 0x10,
0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64,
0x6e, 0x64, 0x10, 0xdf, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x10, 0xdd, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e,
0x65, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe0, 0x0b, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xde, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61,
0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e,
0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe1, 0x0b, 0x12, 0x0d, 0x0a, 0x64, 0x10, 0xdf, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65,
0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x0c, 0x12, 0x0e, 0x0a, 0x09, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe0, 0x0b, 0x12,
0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, 0xc1, 0x0c, 0x12, 0x0f, 0x0a, 0x0a, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c,
0x54, 0x61, 0x73, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0xc2, 0x0c, 0x12, 0x11, 0x0a, 0x65, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe1, 0x0b, 0x12, 0x0d, 0x0a, 0x08,
0x0c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xc3, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x0c, 0x12, 0x0e, 0x0a, 0x09, 0x54,
0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, 0xc1, 0x0c, 0x12, 0x0f, 0x0a, 0x0a, 0x54,
0x69, 0x74, 0x10, 0xc4, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x61, 0x73, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0xc2, 0x0c, 0x12, 0x11, 0x0a, 0x0c,
0x69, 0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc5, 0x0c, 0x12, 0x17, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xc3, 0x0c, 0x12,
0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x65, 0x6e, 0x6f, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x69,
0x75, 0x67, 0x68, 0x10, 0xc6, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x74, 0x10, 0xc4, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69,
0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc7, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc5, 0x0c, 0x12, 0x17, 0x0a, 0x12,
0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc8, 0x0c, 0x12, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x65, 0x6e, 0x6f, 0x75,
0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xc9, 0x67, 0x68, 0x10, 0xc6, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46,
0x0c, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc7, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61,
0x10, 0xca, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc8, 0x0c, 0x12, 0x11, 0x0a,
0x75, 0x6e, 0x64, 0x10, 0xcb, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x70, 0x47, 0x6f, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xc9, 0x0c,
0x6f, 0x64, 0x73, 0x49, 0x73, 0x53, 0x6f, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x10, 0xa4, 0x0d, 0x12, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10,
0x1c, 0x0a, 0x17, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x6f, 0x53, 0x75, 0x72, 0x70, 0x6c, 0x75, 0x73, 0xca, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75,
0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x10, 0xa5, 0x0d, 0x12, 0x0c, 0x0a, 0x6e, 0x64, 0x10, 0xcb, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x70, 0x47, 0x6f, 0x6f,
0x07, 0x4d, 0x61, 0x69, 0x6c, 0x45, 0x72, 0x72, 0x10, 0x88, 0x0e, 0x12, 0x13, 0x0a, 0x0e, 0x50, 0x64, 0x73, 0x49, 0x73, 0x53, 0x6f, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x10, 0xa4, 0x0d, 0x12, 0x1c,
0x61, 0x67, 0x6f, 0x64, 0x61, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xec, 0x0e, 0x0a, 0x17, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x6f, 0x53, 0x75, 0x72, 0x70, 0x6c, 0x75, 0x73, 0x52,
0x12, 0x12, 0x0a, 0x0d, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4c, 0x65, 0x76, 0x6c, 0x45, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x10, 0xa5, 0x0d, 0x12, 0x0c, 0x0a, 0x07,
0x72, 0x10, 0xed, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x47, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x45, 0x72, 0x72, 0x10, 0x88, 0x0e, 0x12, 0x13, 0x0a, 0x0e, 0x50, 0x61,
0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x72, 0x72, 0x10, 0xee, 0x0e, 0x12, 0x17, 0x0a, 0x67, 0x6f, 0x64, 0x61, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xec, 0x0e, 0x12,
0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0a, 0x0d, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4c, 0x65, 0x76, 0x6c, 0x45, 0x72, 0x72,
0x45, 0x72, 0x72, 0x10, 0xef, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x10, 0xed, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x47, 0x65, 0x74,
0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x72, 0x72, 0x10, 0xee, 0x0e, 0x12, 0x17, 0x0a, 0x12,
0x10, 0xd0, 0x0f, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45,
0x6c, 0x6c, 0x49, 0x6e, 0x55, 0x73, 0x65, 0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x72, 0x72, 0x10, 0xef, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c,
0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10,
0x64, 0x10, 0xd2, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0xd0, 0x0f, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c,
0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd3, 0x0f, 0x6c, 0x49, 0x6e, 0x55, 0x73, 0x65, 0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x72,
0x12, 0x19, 0x0a, 0x14, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64,
0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47, 0x10, 0xd2, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61,
0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x6c, 0x6c, 0x4e, 0x6f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd3, 0x0f, 0x12,
0x10, 0xb6, 0x10, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x19, 0x0a, 0x14, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f, 0x72,
0x73, 0x68, 0x65, 0x64, 0x10, 0x99, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47, 0x6f,
0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x9a, 0x11, 0x12, 0x11, 0x0a, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10,
0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x10, 0x9b, 0x11, 0xb6, 0x10, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73,
0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65, 0x68, 0x65, 0x64, 0x10, 0x99, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x55,
0x64, 0x10, 0x9c, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x9a, 0x11, 0x12, 0x11, 0x0a, 0x0c,
0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x10, 0x9b, 0x11, 0x12,
0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64,
0x10, 0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61, 0x10, 0x9c, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65, 0x4e,
0x73, 0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74,
0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x10,
0x12, 0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61, 0x73,
0xfd, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b,
0x54, 0x79, 0x70, 0x65, 0x10, 0xfe, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11, 0x12,
0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12, 0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xfd,
0x1c, 0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54,
0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a, 0x79, 0x70, 0x65, 0x10, 0xfe, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67,
0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x45, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12, 0x1c,
0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c,
0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a, 0x15,
0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x45, 0x78,
0x44, 0x61, 0x72, 0x65, 0x55, 0x70, 0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e,
0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, 0x12,
0x45, 0x6e, 0x64, 0x10, 0xe4, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x44,
0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, 0x61, 0x72, 0x65, 0x55, 0x70, 0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e,
0x10, 0xe5, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x46, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x45,
0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x12, 0x1a, 0x0a, 0x6e, 0x64, 0x10, 0xe4, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e,
0x15, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, 0x10,
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x6e, 0xe5, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x46, 0x6f,
0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x12, 0x1a, 0x0a, 0x15,
0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xaa, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e,
0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x6e, 0x65,
0x64, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xab, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69,
0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x73, 0x68, 0x65, 0x64, 0x10, 0xaa, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, 0x73,
0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xac, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x75, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64,
0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x8d, 0x15, 0x12, 0x14, 0x0a, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xab, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65,
0x0f, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69,
0x10, 0x8e, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xac, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x75, 0x6e,
0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x8f, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x8d, 0x15, 0x12, 0x14, 0x0a, 0x0f,
0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10,
0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x90, 0x15, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x8e, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79,
0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x8f, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x48,
0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e,
0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x90, 0x15, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -1592,6 +1592,100 @@ func (x *HeroChangePush) GetList() []*DBHero {
return nil return nil
} }
type HeroDrawCardFloorReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *HeroDrawCardFloorReq) Reset() {
*x = HeroDrawCardFloorReq{}
if protoimpl.UnsafeEnabled {
mi := &file_hero_hero_msg_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HeroDrawCardFloorReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HeroDrawCardFloorReq) ProtoMessage() {}
func (x *HeroDrawCardFloorReq) ProtoReflect() protoreflect.Message {
mi := &file_hero_hero_msg_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use HeroDrawCardFloorReq.ProtoReflect.Descriptor instead.
func (*HeroDrawCardFloorReq) Descriptor() ([]byte, []int) {
return file_hero_hero_msg_proto_rawDescGZIP(), []int{30}
}
// 获取抽卡保底次数
type HeroDrawCardFloorResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Star4 int32 `protobuf:"varint,1,opt,name=star4,proto3" json:"star4"`
Star5 int32 `protobuf:"varint,2,opt,name=star5,proto3" json:"star5"`
}
func (x *HeroDrawCardFloorResp) Reset() {
*x = HeroDrawCardFloorResp{}
if protoimpl.UnsafeEnabled {
mi := &file_hero_hero_msg_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HeroDrawCardFloorResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HeroDrawCardFloorResp) ProtoMessage() {}
func (x *HeroDrawCardFloorResp) ProtoReflect() protoreflect.Message {
mi := &file_hero_hero_msg_proto_msgTypes[31]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use HeroDrawCardFloorResp.ProtoReflect.Descriptor instead.
func (*HeroDrawCardFloorResp) Descriptor() ([]byte, []int) {
return file_hero_hero_msg_proto_rawDescGZIP(), []int{31}
}
func (x *HeroDrawCardFloorResp) GetStar4() int32 {
if x != nil {
return x.Star4
}
return 0
}
func (x *HeroDrawCardFloorResp) GetStar5() int32 {
if x != nil {
return x.Star5
}
return 0
}
var File_hero_hero_msg_proto protoreflect.FileDescriptor var File_hero_hero_msg_proto protoreflect.FileDescriptor
var file_hero_hero_msg_proto_rawDesc = []byte{ var file_hero_hero_msg_proto_rawDesc = []byte{
@ -1735,8 +1829,14 @@ var file_hero_hero_msg_proto_rawDesc = []byte{
0x03, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x22, 0x2d, 0x0a, 0x0e, 0x48, 0x03, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x22, 0x2d, 0x0a, 0x0e, 0x48,
0x65, 0x72, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x65, 0x72, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a,
0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42,
0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x48, 0x65,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52,
0x65, 0x71, 0x22, 0x43, 0x0a, 0x15, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61,
0x72, 0x64, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73,
0x74, 0x61, 0x72, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72,
0x34, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -1751,7 +1851,7 @@ func file_hero_hero_msg_proto_rawDescGZIP() []byte {
return file_hero_hero_msg_proto_rawDescData return file_hero_hero_msg_proto_rawDescData
} }
var file_hero_hero_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 32) var file_hero_hero_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 34)
var file_hero_hero_msg_proto_goTypes = []interface{}{ var file_hero_hero_msg_proto_goTypes = []interface{}{
(*HeroInfoReq)(nil), // 0: HeroInfoReq (*HeroInfoReq)(nil), // 0: HeroInfoReq
(*HeroInfoResp)(nil), // 1: HeroInfoResp (*HeroInfoResp)(nil), // 1: HeroInfoResp
@ -1783,30 +1883,32 @@ var file_hero_hero_msg_proto_goTypes = []interface{}{
(*HeroDrawCardReq)(nil), // 27: HeroDrawCardReq (*HeroDrawCardReq)(nil), // 27: HeroDrawCardReq
(*HeroDrawCardResp)(nil), // 28: HeroDrawCardResp (*HeroDrawCardResp)(nil), // 28: HeroDrawCardResp
(*HeroChangePush)(nil), // 29: HeroChangePush (*HeroChangePush)(nil), // 29: HeroChangePush
nil, // 30: HeroPropertyPush.PropertyEntry (*HeroDrawCardFloorReq)(nil), // 30: HeroDrawCardFloorReq
nil, // 31: HeroPropertyPush.AddPropertyEntry (*HeroDrawCardFloorResp)(nil), // 31: HeroDrawCardFloorResp
(*DBHero)(nil), // 32: DBHero nil, // 32: HeroPropertyPush.PropertyEntry
nil, // 33: HeroPropertyPush.AddPropertyEntry
(*DBHero)(nil), // 34: DBHero
} }
var file_hero_hero_msg_proto_depIdxs = []int32{ var file_hero_hero_msg_proto_depIdxs = []int32{
32, // 0: HeroInfoResp.base:type_name -> DBHero 34, // 0: HeroInfoResp.base:type_name -> DBHero
32, // 1: HeroListResp.list:type_name -> DBHero 34, // 1: HeroListResp.list:type_name -> DBHero
5, // 2: HeroStrengthenUplvReq.expCards:type_name -> MapStringInt32 5, // 2: HeroStrengthenUplvReq.expCards:type_name -> MapStringInt32
32, // 3: HeroStrengthenUplvResp.hero:type_name -> DBHero 34, // 3: HeroStrengthenUplvResp.hero:type_name -> DBHero
8, // 4: HeroStrengthenUpStarReq.hero:type_name -> CostCardData 8, // 4: HeroStrengthenUpStarReq.hero:type_name -> CostCardData
8, // 5: HeroStrengthenUpStarReq.heroRace:type_name -> CostCardData 8, // 5: HeroStrengthenUpStarReq.heroRace:type_name -> CostCardData
32, // 6: HeroStrengthenUpStarResp.hero:type_name -> DBHero 34, // 6: HeroStrengthenUpStarResp.hero:type_name -> DBHero
32, // 7: HeroStrengthenUpSkillResp.hero:type_name -> DBHero 34, // 7: HeroStrengthenUpSkillResp.hero:type_name -> DBHero
32, // 8: HeroResonanceResp.hero:type_name -> DBHero 34, // 8: HeroResonanceResp.hero:type_name -> DBHero
32, // 9: HeroResonanceResp.upStarCard:type_name -> DBHero 34, // 9: HeroResonanceResp.upStarCard:type_name -> DBHero
32, // 10: HeroResonanceResetResp.hero:type_name -> DBHero 34, // 10: HeroResonanceResetResp.hero:type_name -> DBHero
17, // 11: HeroResonanceUseEnergyReq.energy:type_name -> EnergyData 17, // 11: HeroResonanceUseEnergyReq.energy:type_name -> EnergyData
32, // 12: HeroResonanceUseEnergyResp.hero:type_name -> DBHero 34, // 12: HeroResonanceUseEnergyResp.hero:type_name -> DBHero
32, // 13: HeroAwakenResp.hero:type_name -> DBHero 34, // 13: HeroAwakenResp.hero:type_name -> DBHero
30, // 14: HeroPropertyPush.property:type_name -> HeroPropertyPush.PropertyEntry 32, // 14: HeroPropertyPush.property:type_name -> HeroPropertyPush.PropertyEntry
31, // 15: HeroPropertyPush.addProperty:type_name -> HeroPropertyPush.AddPropertyEntry 33, // 15: HeroPropertyPush.addProperty:type_name -> HeroPropertyPush.AddPropertyEntry
32, // 16: HeroLockResp.hero:type_name -> DBHero 34, // 16: HeroLockResp.hero:type_name -> DBHero
32, // 17: HeroGetSpecifiedResp.hero:type_name -> DBHero 34, // 17: HeroGetSpecifiedResp.hero:type_name -> DBHero
32, // 18: HeroChangePush.list:type_name -> DBHero 34, // 18: HeroChangePush.list:type_name -> DBHero
19, // [19:19] is the sub-list for method output_type 19, // [19:19] is the sub-list for method output_type
19, // [19:19] is the sub-list for method input_type 19, // [19:19] is the sub-list for method input_type
19, // [19:19] is the sub-list for extension type_name 19, // [19:19] is the sub-list for extension type_name
@ -2181,6 +2283,30 @@ func file_hero_hero_msg_proto_init() {
return nil return nil
} }
} }
file_hero_hero_msg_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HeroDrawCardFloorReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_hero_hero_msg_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HeroDrawCardFloorResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
} }
type x struct{} type x struct{}
out := protoimpl.TypeBuilder{ out := protoimpl.TypeBuilder{
@ -2188,7 +2314,7 @@ func file_hero_hero_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_hero_hero_msg_proto_rawDesc, RawDescriptor: file_hero_hero_msg_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 32, NumMessages: 34,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -726,6 +726,92 @@ func (x *RtaskBattleFinishResp) GetIsWin() bool {
return false return false
} }
//获取玩家任务记录
type RtaskGetrecordReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *RtaskGetrecordReq) Reset() {
*x = RtaskGetrecordReq{}
if protoimpl.UnsafeEnabled {
mi := &file_rtask_rtask_msg_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RtaskGetrecordReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RtaskGetrecordReq) ProtoMessage() {}
func (x *RtaskGetrecordReq) ProtoReflect() protoreflect.Message {
mi := &file_rtask_rtask_msg_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RtaskGetrecordReq.ProtoReflect.Descriptor instead.
func (*RtaskGetrecordReq) Descriptor() ([]byte, []int) {
return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{13}
}
type RtaskGetrecordResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Record *DBRtaskRecord `protobuf:"bytes,1,opt,name=record,proto3" json:"record"`
}
func (x *RtaskGetrecordResp) Reset() {
*x = RtaskGetrecordResp{}
if protoimpl.UnsafeEnabled {
mi := &file_rtask_rtask_msg_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RtaskGetrecordResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RtaskGetrecordResp) ProtoMessage() {}
func (x *RtaskGetrecordResp) ProtoReflect() protoreflect.Message {
mi := &file_rtask_rtask_msg_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RtaskGetrecordResp.ProtoReflect.Descriptor instead.
func (*RtaskGetrecordResp) Descriptor() ([]byte, []int) {
return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{14}
}
func (x *RtaskGetrecordResp) GetRecord() *DBRtaskRecord {
if x != nil {
return x.Record
}
return nil
}
// 测试使用 // 测试使用
type RtaskTestReq struct { type RtaskTestReq struct {
state protoimpl.MessageState state protoimpl.MessageState
@ -740,7 +826,7 @@ type RtaskTestReq struct {
func (x *RtaskTestReq) Reset() { func (x *RtaskTestReq) Reset() {
*x = RtaskTestReq{} *x = RtaskTestReq{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_rtask_rtask_msg_proto_msgTypes[13] mi := &file_rtask_rtask_msg_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -753,7 +839,7 @@ func (x *RtaskTestReq) String() string {
func (*RtaskTestReq) ProtoMessage() {} func (*RtaskTestReq) ProtoMessage() {}
func (x *RtaskTestReq) ProtoReflect() protoreflect.Message { func (x *RtaskTestReq) ProtoReflect() protoreflect.Message {
mi := &file_rtask_rtask_msg_proto_msgTypes[13] mi := &file_rtask_rtask_msg_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -766,7 +852,7 @@ func (x *RtaskTestReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use RtaskTestReq.ProtoReflect.Descriptor instead. // Deprecated: Use RtaskTestReq.ProtoReflect.Descriptor instead.
func (*RtaskTestReq) Descriptor() ([]byte, []int) { func (*RtaskTestReq) Descriptor() ([]byte, []int) {
return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{13} return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{15}
} }
func (x *RtaskTestReq) GetRtaskType() int32 { func (x *RtaskTestReq) GetRtaskType() int32 {
@ -801,7 +887,7 @@ type RtaskTestResp struct {
func (x *RtaskTestResp) Reset() { func (x *RtaskTestResp) Reset() {
*x = RtaskTestResp{} *x = RtaskTestResp{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_rtask_rtask_msg_proto_msgTypes[14] mi := &file_rtask_rtask_msg_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@ -814,7 +900,7 @@ func (x *RtaskTestResp) String() string {
func (*RtaskTestResp) ProtoMessage() {} func (*RtaskTestResp) ProtoMessage() {}
func (x *RtaskTestResp) ProtoReflect() protoreflect.Message { func (x *RtaskTestResp) ProtoReflect() protoreflect.Message {
mi := &file_rtask_rtask_msg_proto_msgTypes[14] mi := &file_rtask_rtask_msg_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@ -827,7 +913,7 @@ func (x *RtaskTestResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use RtaskTestResp.ProtoReflect.Descriptor instead. // Deprecated: Use RtaskTestResp.ProtoReflect.Descriptor instead.
func (*RtaskTestResp) Descriptor() ([]byte, []int) { func (*RtaskTestResp) Descriptor() ([]byte, []int) {
return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{14} return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{16}
} }
func (x *RtaskTestResp) GetFlag() bool { func (x *RtaskTestResp) GetFlag() bool {
@ -843,75 +929,82 @@ var file_rtask_rtask_msg_proto_rawDesc = []byte{
0x0a, 0x15, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6d, 0x73, 0x0a, 0x15, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6d, 0x73,
0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x2f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x2f,
0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x22, 0x49, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x1a, 0x14, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x62,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x41,
0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b,
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49,
0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49,
0x64, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52,
0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x28, 0x0a,
0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a,
0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b,
0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x74, 0x61, 0x73,
0x6b, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x74, 0x61, 0x73,
0x6b, 0x49, 0x64, 0x73, 0x22, 0x66, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x6f,
0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x08, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a,
0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x22, 0x67, 0x0a, 0x0f,
0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x6f,
0x6f, 0x73, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x68, 0x6f,
0x6f, 0x73, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75,
0x62, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b,
0x53, 0x75, 0x62, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69,
0x6e, 0x69, 0x73, 0x68, 0x50, 0x75, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73,
0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b,
0x49, 0x64, 0x22, 0x4d, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x52, 0x65,
0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b,
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49,
0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49,
0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77,
0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b,
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49,
0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49,
0x64, 0x22, 0x6d, 0x0a, 0x13, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65,
0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x61, 0x74, 0x74,
0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c,
0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07,
0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c,
0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64,
0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73,
0x22, 0x37, 0x0a, 0x14, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53,
0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49,
0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x57, 0x0a, 0x14, 0x52, 0x74, 0x61,
0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65,
0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x72,
0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61,
0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f,
0x74, 0x61, 0x73, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x72, 0x74, 0x22, 0x47, 0x0a, 0x15, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c,
0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72,
0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b,
0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49,
0x64, 0x22, 0x2b, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65,
0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x22, 0x66,
0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71,
0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68,
0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x68,
0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53,
0x75, 0x62, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73,
0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x22, 0x67, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43,
0x68, 0x6f, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61,
0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73,
0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x12,
0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x03, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x22,
0x2b, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x50, 0x75,
0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x11,
0x52, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65,
0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72,
0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52,
0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73,
0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72,
0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x22, 0x6d, 0x0a, 0x13, 0x52,
0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52,
0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66,
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65,
0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f,
0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73,
0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x22, 0x37, 0x0a, 0x14, 0x52, 0x74,
0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65,
0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69,
0x6e, 0x66, 0x6f, 0x22, 0x57, 0x0a, 0x14, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74,
0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72,
0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74,
0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x02,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x13, 0x0a, 0x11, 0x52,
0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x47, 0x0a, 0x15, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71,
0x52, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x22, 0x3c, 0x0a, 0x12, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x72, 0x65, 0x63, 0x6f,
0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x52, 0x74, 0x61, 0x73, 0x6b,
0x14, 0x0a, 0x05, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x5e,
0x69, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x5e, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c,
0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x0a, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x05, 0x52, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06,
0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61,
0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x49, 0x64, 0x18,
0x6f, 0x6e, 0x64, 0x69, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x49, 0x64, 0x22, 0x23,
0x6e, 0x64, 0x69, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12,
0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66,
0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x6c, 0x61, 0x67, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -926,7 +1019,7 @@ func file_rtask_rtask_msg_proto_rawDescGZIP() []byte {
return file_rtask_rtask_msg_proto_rawDescData return file_rtask_rtask_msg_proto_rawDescData
} }
var file_rtask_rtask_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_rtask_rtask_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_rtask_rtask_msg_proto_goTypes = []interface{}{ var file_rtask_rtask_msg_proto_goTypes = []interface{}{
(*RtaskApplyReq)(nil), // 0: RtaskApplyReq (*RtaskApplyReq)(nil), // 0: RtaskApplyReq
(*RtaskApplyResp)(nil), // 1: RtaskApplyResp (*RtaskApplyResp)(nil), // 1: RtaskApplyResp
@ -941,19 +1034,23 @@ var file_rtask_rtask_msg_proto_goTypes = []interface{}{
(*RtaskBattleStartResp)(nil), // 10: RtaskBattleStartResp (*RtaskBattleStartResp)(nil), // 10: RtaskBattleStartResp
(*RtaskBattleFinishReq)(nil), // 11: RtaskBattleFinishReq (*RtaskBattleFinishReq)(nil), // 11: RtaskBattleFinishReq
(*RtaskBattleFinishResp)(nil), // 12: RtaskBattleFinishResp (*RtaskBattleFinishResp)(nil), // 12: RtaskBattleFinishResp
(*RtaskTestReq)(nil), // 13: RtaskTestReq (*RtaskGetrecordReq)(nil), // 13: RtaskGetrecordReq
(*RtaskTestResp)(nil), // 14: RtaskTestResp (*RtaskGetrecordResp)(nil), // 14: RtaskGetrecordResp
(*BattleInfo)(nil), // 15: BattleInfo (*RtaskTestReq)(nil), // 15: RtaskTestReq
(*BattleReport)(nil), // 16: BattleReport (*RtaskTestResp)(nil), // 16: RtaskTestResp
(*BattleInfo)(nil), // 17: BattleInfo
(*BattleReport)(nil), // 18: BattleReport
(*DBRtaskRecord)(nil), // 19: DBRtaskRecord
} }
var file_rtask_rtask_msg_proto_depIdxs = []int32{ var file_rtask_rtask_msg_proto_depIdxs = []int32{
15, // 0: RtaskBattleStartResp.info:type_name -> BattleInfo 17, // 0: RtaskBattleStartResp.info:type_name -> BattleInfo
16, // 1: RtaskBattleFinishReq.report:type_name -> BattleReport 18, // 1: RtaskBattleFinishReq.report:type_name -> BattleReport
2, // [2:2] is the sub-list for method output_type 19, // 2: RtaskGetrecordResp.record:type_name -> DBRtaskRecord
2, // [2:2] is the sub-list for method input_type 3, // [3:3] is the sub-list for method output_type
2, // [2:2] is the sub-list for extension type_name 3, // [3:3] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension extendee 3, // [3:3] is the sub-list for extension type_name
0, // [0:2] is the sub-list for field type_name 3, // [3:3] is the sub-list for extension extendee
0, // [0:3] is the sub-list for field type_name
} }
func init() { file_rtask_rtask_msg_proto_init() } func init() { file_rtask_rtask_msg_proto_init() }
@ -962,6 +1059,7 @@ func file_rtask_rtask_msg_proto_init() {
return return
} }
file_battle_battle_msg_proto_init() file_battle_battle_msg_proto_init()
file_rtask_rtask_db_proto_init()
if !protoimpl.UnsafeEnabled { if !protoimpl.UnsafeEnabled {
file_rtask_rtask_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { file_rtask_rtask_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RtaskApplyReq); i { switch v := v.(*RtaskApplyReq); i {
@ -1120,7 +1218,7 @@ func file_rtask_rtask_msg_proto_init() {
} }
} }
file_rtask_rtask_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { file_rtask_rtask_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RtaskTestReq); i { switch v := v.(*RtaskGetrecordReq); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@ -1132,6 +1230,30 @@ func file_rtask_rtask_msg_proto_init() {
} }
} }
file_rtask_rtask_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { file_rtask_rtask_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RtaskGetrecordResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rtask_rtask_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RtaskTestReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rtask_rtask_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RtaskTestResp); i { switch v := v.(*RtaskTestResp); i {
case 0: case 0:
return &v.state return &v.state
@ -1150,7 +1272,7 @@ func file_rtask_rtask_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_rtask_rtask_msg_proto_rawDesc, RawDescriptor: file_rtask_rtask_msg_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 15, NumMessages: 17,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

376
services/cmd/main.go Normal file
View File

@ -0,0 +1,376 @@
package main
import (
"encoding/json"
"flag"
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"io/ioutil"
"net"
"os"
"os/exec"
"strconv"
"strings"
"time"
"github.com/spf13/cobra"
"gopkg.in/yaml.v3"
)
/*
服务类型:区服启动程序
服务描述:通过读取游戏json配置,启动服务程序
*/
var (
gmpath string //服务列表下标
crosspath string //服务列表下标
sid string //服务列表下标
)
var startCmd = &cobra.Command{
Use: "start",
Short: "启动程序",
Run: func(cmd *cobra.Command, args []string) {
start()
},
}
var stopCmd = &cobra.Command{
Use: "stop",
Short: "关闭程序",
Run: func(cmd *cobra.Command, args []string) {
stop()
},
}
func emptyRun(*cobra.Command, []string) {}
var RootCmd = &cobra.Command{
Use: "dreamfactory",
Short: "命令行",
Long: "命令行工具",
Run: emptyRun,
}
//初始化自定义cmd
func init() {
RootCmd.PersistentFlags().StringVarP(&gmpath, "gm", "g", "./gm.json", "游戏区服配置")
RootCmd.PersistentFlags().StringVarP(&crosspath, "cross", "c", "./cross.json", "游戏跨服配置")
RootCmd.PersistentFlags().StringVarP(&sid, "sid", "i", "", "区服id")
RootCmd.AddCommand(startCmd, stopCmd)
}
func main() {
flag.Parse()
if err := log.OnInit(nil,
log.SetFileName("./log/cmd.log"),
log.SetLoglevel(log.DebugLevel),
log.SetIsDebug(true)); err != nil {
panic(fmt.Sprintf("Sys log Init err:%v", err))
} else {
log.Infof("Sys log Init success !")
}
Execute()
}
//执行命令
func Execute() {
if err := RootCmd.Execute(); err != nil {
fmt.Fprintln(os.Stdin, err)
os.Exit(1)
}
}
//启动程序
func start() {
if config, err := readergmconf(gmpath); err != nil {
log.Error("读取区服配置失败!", log.Field{Key: "err", Value: err})
} else {
var (
maintes *core.ServiceSttings
workers []*core.ServiceSttings = make([]*core.ServiceSttings, 0)
gateways []*core.ServiceSttings = make([]*core.ServiceSttings, 0)
)
if ss, err := rederServiceSttings(config); err != nil {
log.Error("转换服务配置异常!", log.Field{Key: "err", Value: err})
} else {
for _, v := range ss {
if sid == "" || fmt.Sprintf("%s_%s", v.Tag, sid) == v.Id {
if err = writeServiceConfig(fmt.Sprintf("./conf/%s.yaml", v.Id), v); err != nil {
log.Error("写入配置文件失败!", log.Field{Key: "err", Value: err})
return
}
switch v.Type {
case comm.Service_Gateway: //网关服务
gateways = append(gateways, v)
break
case comm.Service_Worker: //业务服务
workers = append(workers, v)
break
case comm.Service_Mainte: //维护服务
maintes = v
break
default:
err = fmt.Errorf("服务类型异常 stype:%s", v.Type)
return
}
}
}
}
//优先启动 维护服
if maintes != nil {
if err = startService(maintes); err != nil {
log.Error("启动服务失败!", log.Field{Key: "id", Value: maintes.Id}, log.Field{Key: "err", Value: err})
return
}
}
time.Sleep(time.Second * 3)
// 业务服
for _, v := range workers {
if err = startService(v); err != nil {
log.Error("启动服务失败!", log.Field{Key: "id", Value: v.Id}, log.Field{Key: "err", Value: err})
return
}
}
time.Sleep(time.Second * 3)
// 网关服
for _, v := range gateways {
if err = startService(v); err != nil {
log.Error("启动服务失败!", log.Field{Key: "id", Value: v.Id}, log.Field{Key: "err", Value: err})
return
}
}
}
}
//关闭程序
func stop() {
if config, err := readergmconf(gmpath); err != nil {
log.Error("读取区服配置失败!", log.Field{Key: "err", Value: err})
} else {
if ss, err := rederServiceSttings(config); err != nil {
log.Error("转换服务配置异常!", log.Field{Key: "err", Value: err})
} else {
for _, v := range ss {
if sid == "" || fmt.Sprintf("%s_%s", v.Tag, sid) == v.Id {
stopService(v)
}
}
}
}
}
///转换区服配置到服务配置
func rederServiceSttings(config *comm.GameConfig) (ss []*core.ServiceSttings, err error) {
ss = make([]*core.ServiceSttings, 0)
var (
ip string
port int
sseting *core.ServiceSttings
)
if ip, port, err = parseaddr(config.Mainte); err != nil {
return
} else {
if sseting, err = convertServiceSttings(config, 0, comm.Service_Mainte, ip, config.MaintePort, port); err != nil {
return
}
ss = append(ss, sseting)
}
for i, v := range config.Workers {
if ip, port, err = parseaddr(v); err != nil {
return
} else {
if sseting, err = convertServiceSttings(config, i, comm.Service_Worker, ip, port, 0); err != nil {
return
}
ss = append(ss, sseting)
}
}
for i, v := range config.Gateways {
if ip, port, err = parseaddr(v); err != nil {
return
} else {
if sseting, err = convertServiceSttings(config, i, comm.Service_Gateway, ip, config.GatewayPorts[i], port); err != nil {
return
}
ss = append(ss, sseting)
}
}
return
}
//读取游戏配置文件
func readergmconf(path string) (config *comm.GameConfig, err error) {
config = &comm.GameConfig{}
var (
jsonFile *os.File
byteValue []byte
)
if jsonFile, err = os.Open(path); err != nil {
return
} else {
defer jsonFile.Close()
if byteValue, err = ioutil.ReadAll(jsonFile); err != nil {
return
}
err = json.Unmarshal(byteValue, config)
}
return
}
//转换游戏服务配置
func convertServiceSttings(config *comm.GameConfig, id int, stype string, ip string, rport int, lport int) (sseting *core.ServiceSttings, err error) {
sseting = &core.ServiceSttings{}
sseting.Tag = config.AreaId
sseting.Ip = ip
sseting.Port = rport
sseting.Modules = make(map[string]map[string]interface{})
sseting.Sys = make(map[string]map[string]interface{})
sseting.Sys["rpcx"] = map[string]interface{}{
"ConsulServers": config.ConsulAddr,
}
switch stype {
case comm.Service_Gateway: //网关服务
sseting.Id = fmt.Sprintf("%s_%s%d", config.AreaId, comm.Service_Gateway, id)
sseting.Type = comm.Service_Gateway
sseting.Sys["rpcx"]["RpcxStartType"] = 1
sseting.Modules["gateway"] = map[string]interface{}{
"ListenPort": lport,
"SpanServiceTag": config.BelongCrossServerId,
}
break
case comm.Service_Worker: //业务服务
sseting.Id = fmt.Sprintf("%s_%s%d", config.AreaId, comm.Service_Worker, id)
sseting.Type = comm.Service_Worker
sseting.Sys["rpcx"]["RpcxStartType"] = 0
break
case comm.Service_Mainte: //维护服务
sseting.Id = fmt.Sprintf("%s_%s", config.AreaId, comm.Service_Mainte)
sseting.Type = comm.Service_Mainte
sseting.Sys["rpcx"]["RpcxStartType"] = 0
sseting.Modules["web"] = map[string]interface{}{
"WebDir": "./dist",
"Port": lport,
"Key": "@234%67g12q4*67m12#4l67!",
}
break
default:
err = fmt.Errorf("服务类型异常 stype:%s", sseting.Type)
return
}
sseting.Sys["log"] = map[string]interface{}{
"FileName": fmt.Sprintf("./log/%s.log", sseting.Id),
"Loglevel": config.Loglevel,
"MaxAgeTime": config.MaxAgeTime,
}
sseting.Sys["configure"] = map[string]interface{}{
"ConfigurePath": "./json",
}
sseting.Sys["db"] = map[string]interface{}{
"IsCross": config.IsCross,
"CrossTag": config.BelongCrossServerId,
"RedisIsCluster": config.LoaclDB.RedisIsCluster,
"RedisAddr": config.LoaclDB.RedisAddr,
"RedisPassword": config.LoaclDB.RedisPassword,
"RedisDB": config.LoaclDB.RedisDB,
"MongodbUrl": config.LoaclDB.MongodbUrl,
"MongodbDatabase": config.LoaclDB.MongodbDatabase,
"CrossConfig": crosspath,
}
return
}
//启动服务程序
func startService(sseting *core.ServiceSttings) (err error) {
var (
cmd *exec.Cmd
command string
confpath string = fmt.Sprintf("./conf/%s.yaml", sseting.Id)
output []byte
)
switch sseting.Type {
case comm.Service_Gateway: //网关服务
command = fmt.Sprintf("./stup.sh start %s gateway %s", sseting.Id, confpath)
break
case comm.Service_Worker: //业务服务
command = fmt.Sprintf("./stup.sh start %s worker %s", sseting.Id, confpath)
break
case comm.Service_Mainte: //维护服务
command = fmt.Sprintf("./stup.sh start %s mainte %s", sseting.Id, confpath)
break
default:
err = fmt.Errorf("服务类型异常 stype:%s", sseting.Type)
return
}
log.Debug("启动外部命令", log.Field{Key: "cmd", Value: command})
cmd = exec.Command("/bin/bash", "-c", command)
if output, err = cmd.CombinedOutput(); err != nil {
return
}
log.Debug(string(output))
return
}
//启动服务程序
func stopService(sseting *core.ServiceSttings) (err error) {
var (
cmd *exec.Cmd
command string
output []byte
)
switch sseting.Type {
case comm.Service_Gateway: //网关服务
command = fmt.Sprintf("./stup.sh stop %s ", sseting.Id)
break
case comm.Service_Worker: //业务服务
command = fmt.Sprintf("./stup.sh stop %s", sseting.Id)
break
case comm.Service_Mainte: //维护服务
command = fmt.Sprintf("./stup.sh stop %s ", sseting.Id)
break
default:
err = fmt.Errorf("服务类型异常 stype:%s", sseting.Type)
return
}
log.Debug("启动外部命令", log.Field{Key: "cmd", Value: command})
cmd = exec.Command("/bin/bash", "-c", command)
if output, err = cmd.CombinedOutput(); err != nil {
return
}
log.Debug(string(output))
return
}
//写入服务配置文件
func writeServiceConfig(filename string, sseting *core.ServiceSttings) (err error) {
var data []byte
if data, err = yaml.Marshal(sseting); err != nil {
return
} else {
err = ioutil.WriteFile(filename, data, 0777)
}
return
}
func parseaddr(addr string) (ip string, port int, err error) {
ss := strings.Split(addr, ":")
if len(ss) != 2 {
err = fmt.Errorf("addr:%s解析异常", addr)
return
}
address := net.ParseIP(ss[0])
if address == nil {
err = fmt.Errorf("addr:%s解析异常 ip:%s 校验失败", addr, ss[0])
return
}
ip = ss[0]
if port, err = strconv.Atoi(ss[1]); err != nil {
err = fmt.Errorf("addr:%s解析异常 port:%s 校验失败", addr, ss[1])
return
}
return
}

View File

@ -30,7 +30,6 @@ type msghandle struct {
//组件参数 //组件参数
type CompOptions struct { type CompOptions struct {
Debug bool
} }
func (this *CompOptions) LoadConfig(settings map[string]interface{}) (err error) { func (this *CompOptions) LoadConfig(settings map[string]interface{}) (err error) {
@ -165,7 +164,6 @@ func (this *SCompGateRoute) ReceiveMsg(ctx context.Context, args *pb.AgentMessag
) )
} else { } else {
reply.Reply = session.Polls() reply.Reply = session.Polls()
if this.options.Debug {
// log.Debugf("[Handle Api] t:%v m:%s uid:%s req:%v reply:%v", time.Since(stime), method, args.UserId, msg, reply) // log.Debugf("[Handle Api] t:%v m:%s uid:%s req:%v reply:%v", time.Since(stime), method, args.UserId, msg, reply)
log.Debug("[Handle Api]", log.Debug("[Handle Api]",
log.Field{Key: "t", Value: time.Since(stime).Milliseconds()}, log.Field{Key: "t", Value: time.Since(stime).Milliseconds()},
@ -175,7 +173,6 @@ func (this *SCompGateRoute) ReceiveMsg(ctx context.Context, args *pb.AgentMessag
log.Field{Key: "reply", Value: reply.String()}, log.Field{Key: "reply", Value: reply.String()},
) )
} }
}
} else { //未找到消息处理函数 } else { //未找到消息处理函数
log.Errorf("[Handle Api] no found handle %s", method) log.Errorf("[Handle Api] no found handle %s", method)
reply.Code = pb.ErrorCode_ReqParameterError reply.Code = pb.ErrorCode_ReqParameterError

View File

@ -24,6 +24,7 @@ type GameMainlineData struct {
CaptainId string CaptainId string
Battlescene string Battlescene string
Award []*Gameatn Award []*Gameatn
Exp int32
Title string Title string
Desc string Desc string
Stroyid []int32 Stroyid []int32
@ -81,6 +82,7 @@ func (_v *GameMainlineData)Deserialize(_buf map[string]interface{}) (err error)
} }
} }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["exp"].(float64); !_ok_ { err = errors.New("exp error"); return }; _v.Exp = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["title"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Title error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Title, _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["title"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Title error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Title, _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["desc"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc, _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["desc"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ {

View File

@ -15,17 +15,25 @@ type GameRdtaskSideData struct {
Id int32 Id int32
ObjType int32 ObjType int32
Location string Location string
Modelaction string
Modelstate int32
Rotation serialization.Vector3
Point string Point string
Entity []string
EntityChange []string
EntityStateChange []string
EntityInteractive []bool
Modelaction string
Rotation serialization.Vector3
Modelstate int32
Popup string
Special string
Boxreplace string
StoryBegin int32 StoryBegin int32
Timeline string
ChooseId []int32 ChooseId []int32
StoryEnd int32
NextTid int32
Reward []*GameChooseReward
CD int32
EndTid int32 EndTid int32
StoryEnd int32
Reward []*GameChooseReward
NextTid int32
CD int32
} }
const TypeId_GameRdtaskSideData = 865145588 const TypeId_GameRdtaskSideData = 865145588
@ -38,8 +46,64 @@ func (_v *GameRdtaskSideData)Deserialize(_buf map[string]interface{}) (err error
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["objType"].(float64); !_ok_ { err = errors.New("objType error"); return }; _v.ObjType = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["objType"].(float64); !_ok_ { err = errors.New("objType error"); return }; _v.ObjType = int32(_tempNum_) }
{ var _ok_ bool; if _v.Location, _ok_ = _buf["location"].(string); !_ok_ { err = errors.New("location error"); return } } { var _ok_ bool; if _v.Location, _ok_ = _buf["location"].(string); !_ok_ { err = errors.New("location error"); return } }
{ var _ok_ bool; if _v.Point, _ok_ = _buf["point"].(string); !_ok_ { err = errors.New("point error"); return } }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["Entity"].([]interface{}); !_ok_ { err = errors.New("Entity error"); return }
_v.Entity = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.Entity = append(_v.Entity, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["EntityChange"].([]interface{}); !_ok_ { err = errors.New("EntityChange error"); return }
_v.EntityChange = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.EntityChange = append(_v.EntityChange, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["EntityStateChange"].([]interface{}); !_ok_ { err = errors.New("EntityStateChange error"); return }
_v.EntityStateChange = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.EntityStateChange = append(_v.EntityStateChange, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["EntityInteractive"].([]interface{}); !_ok_ { err = errors.New("EntityInteractive error"); return }
_v.EntityInteractive = make([]bool, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ bool
{ var _ok_ bool; if _list_v_, _ok_ = _e_.(bool); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.EntityInteractive = append(_v.EntityInteractive, _list_v_)
}
}
{ var _ok_ bool; if _v.Modelaction, _ok_ = _buf["modelaction"].(string); !_ok_ { err = errors.New("modelaction error"); return } } { var _ok_ bool; if _v.Modelaction, _ok_ = _buf["modelaction"].(string); !_ok_ { err = errors.New("modelaction error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["modelstate"].(float64); !_ok_ { err = errors.New("modelstate error"); return }; _v.Modelstate = int32(_tempNum_) }
{ var _ok_ bool; var _v_ map[string]interface{}; if _v_, _ok_ = _buf["rotation"].(map[string]interface{}); !_ok_ { err = errors.New("rotation error"); return } { var _ok_ bool; var _v_ map[string]interface{}; if _v_, _ok_ = _buf["rotation"].(map[string]interface{}); !_ok_ { err = errors.New("rotation error"); return }
var _x_, _y_, _z_ float32; var _x_, _y_, _z_ float32;
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["x"].(float64); !_ok_ { err = errors.New("x error"); return }; _x_ = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["x"].(float64); !_ok_ { err = errors.New("x error"); return }; _x_ = float32(_tempNum_) }
@ -48,8 +112,12 @@ func (_v *GameRdtaskSideData)Deserialize(_buf map[string]interface{}) (err error
_v.Rotation = serialization.NewVector3(_x_, _y_, _z_) _v.Rotation = serialization.NewVector3(_x_, _y_, _z_)
} }
{ var _ok_ bool; if _v.Point, _ok_ = _buf["point"].(string); !_ok_ { err = errors.New("point error"); return } } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["modelstate"].(float64); !_ok_ { err = errors.New("modelstate error"); return }; _v.Modelstate = int32(_tempNum_) }
{ var _ok_ bool; if _v.Popup, _ok_ = _buf["popup"].(string); !_ok_ { err = errors.New("popup error"); return } }
{ var _ok_ bool; if _v.Special, _ok_ = _buf["special"].(string); !_ok_ { err = errors.New("special error"); return } }
{ var _ok_ bool; if _v.Boxreplace, _ok_ = _buf["boxreplace"].(string); !_ok_ { err = errors.New("boxreplace error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["storyBegin"].(float64); !_ok_ { err = errors.New("storyBegin error"); return }; _v.StoryBegin = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["storyBegin"].(float64); !_ok_ { err = errors.New("storyBegin error"); return }; _v.StoryBegin = int32(_tempNum_) }
{ var _ok_ bool; if _v.Timeline, _ok_ = _buf["timeline"].(string); !_ok_ { err = errors.New("timeline error"); return } }
{ {
var _arr_ []interface{} var _arr_ []interface{}
var _ok_ bool var _ok_ bool
@ -64,8 +132,8 @@ func (_v *GameRdtaskSideData)Deserialize(_buf map[string]interface{}) (err error
} }
} }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["endTid"].(float64); !_ok_ { err = errors.New("endTid error"); return }; _v.EndTid = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["storyEnd"].(float64); !_ok_ { err = errors.New("storyEnd error"); return }; _v.StoryEnd = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["storyEnd"].(float64); !_ok_ { err = errors.New("storyEnd error"); return }; _v.StoryEnd = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["nextTid"].(float64); !_ok_ { err = errors.New("nextTid error"); return }; _v.NextTid = int32(_tempNum_) }
{ {
var _arr_ []interface{} var _arr_ []interface{}
var _ok_ bool var _ok_ bool
@ -80,8 +148,8 @@ func (_v *GameRdtaskSideData)Deserialize(_buf map[string]interface{}) (err error
} }
} }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["nextTid"].(float64); !_ok_ { err = errors.New("nextTid error"); return }; _v.NextTid = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["CD"].(float64); !_ok_ { err = errors.New("CD error"); return }; _v.CD = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["CD"].(float64); !_ok_ { err = errors.New("CD error"); return }; _v.CD = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["endTid"].(float64); !_ok_ { err = errors.New("endTid error"); return }; _v.EndTid = int32(_tempNum_) }
return return
} }

View File

@ -24,7 +24,6 @@ type GameHeroResonanceData struct {
Atkscale int32 Atkscale int32
Defscale int32 Defscale int32
Maxnum int32 Maxnum int32
RecommendPercentage []int32
} }
const TypeId_GameHeroResonanceData = -2055259070 const TypeId_GameHeroResonanceData = -2055259070
@ -86,20 +85,6 @@ func (_v *GameHeroResonanceData)Deserialize(_buf map[string]interface{}) (err er
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["atkscale"].(float64); !_ok_ { err = errors.New("atkscale error"); return }; _v.Atkscale = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["atkscale"].(float64); !_ok_ { err = errors.New("atkscale error"); return }; _v.Atkscale = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["defscale"].(float64); !_ok_ { err = errors.New("defscale error"); return }; _v.Defscale = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["defscale"].(float64); !_ok_ { err = errors.New("defscale error"); return }; _v.Defscale = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["maxnum"].(float64); !_ok_ { err = errors.New("maxnum error"); return }; _v.Maxnum = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["maxnum"].(float64); !_ok_ { err = errors.New("maxnum error"); return }; _v.Maxnum = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["recommend_percentage"].([]interface{}); !_ok_ { err = errors.New("recommend_percentage error"); return }
_v.RecommendPercentage = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ int32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.RecommendPercentage = append(_v.RecommendPercentage, _list_v_)
}
}
return return
} }

View File

@ -16,6 +16,7 @@ type GameModelData struct {
Preson string Preson string
Presonshow string Presonshow string
Presonstory string Presonstory string
Presondraw string
Height float32 Height float32
Weight float32 Weight float32
Ico string Ico string
@ -39,6 +40,7 @@ func (_v *GameModelData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; if _v.Preson, _ok_ = _buf["preson"].(string); !_ok_ { err = errors.New("preson error"); return } } { var _ok_ bool; if _v.Preson, _ok_ = _buf["preson"].(string); !_ok_ { err = errors.New("preson error"); return } }
{ var _ok_ bool; if _v.Presonshow, _ok_ = _buf["presonshow"].(string); !_ok_ { err = errors.New("presonshow error"); return } } { var _ok_ bool; if _v.Presonshow, _ok_ = _buf["presonshow"].(string); !_ok_ { err = errors.New("presonshow error"); return } }
{ var _ok_ bool; if _v.Presonstory, _ok_ = _buf["presonstory"].(string); !_ok_ { err = errors.New("presonstory error"); return } } { var _ok_ bool; if _v.Presonstory, _ok_ = _buf["presonstory"].(string); !_ok_ { err = errors.New("presonstory error"); return } }
{ var _ok_ bool; if _v.Presondraw, _ok_ = _buf["presondraw"].(string); !_ok_ { err = errors.New("presondraw error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["height"].(float64); !_ok_ { err = errors.New("height error"); return }; _v.Height = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["height"].(float64); !_ok_ { err = errors.New("height error"); return }; _v.Height = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["weight"].(float64); !_ok_ { err = errors.New("weight error"); return }; _v.Weight = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["weight"].(float64); !_ok_ { err = errors.New("weight error"); return }; _v.Weight = float32(_tempNum_) }
{ var _ok_ bool; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } } { var _ok_ bool; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } }

View File

@ -14,6 +14,10 @@ type GameRdtaskChooseData struct {
Id int32 Id int32
Num int32 Num int32
PreTid int32 PreTid int32
Entity []string
EntityChange []string
EntityStateChange []string
EntityInteractive []bool
GotoLevel int32 GotoLevel int32
NeedItem []int32 NeedItem []int32
NextTid int32 NextTid int32
@ -29,6 +33,62 @@ func (_v *GameRdtaskChooseData)Deserialize(_buf map[string]interface{}) (err err
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["preTid"].(float64); !_ok_ { err = errors.New("preTid error"); return }; _v.PreTid = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["preTid"].(float64); !_ok_ { err = errors.New("preTid error"); return }; _v.PreTid = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["Entity"].([]interface{}); !_ok_ { err = errors.New("Entity error"); return }
_v.Entity = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.Entity = append(_v.Entity, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["EntityChange"].([]interface{}); !_ok_ { err = errors.New("EntityChange error"); return }
_v.EntityChange = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.EntityChange = append(_v.EntityChange, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["EntityStateChange"].([]interface{}); !_ok_ { err = errors.New("EntityStateChange error"); return }
_v.EntityStateChange = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.EntityStateChange = append(_v.EntityStateChange, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["EntityInteractive"].([]interface{}); !_ok_ { err = errors.New("EntityInteractive error"); return }
_v.EntityInteractive = make([]bool, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ bool
{ var _ok_ bool; if _list_v_, _ok_ = _e_.(bool); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.EntityInteractive = append(_v.EntityInteractive, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["gotoLevel"].(float64); !_ok_ { err = errors.New("gotoLevel error"); return }; _v.GotoLevel = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["gotoLevel"].(float64); !_ok_ { err = errors.New("gotoLevel error"); return }; _v.GotoLevel = int32(_tempNum_) }
{ {
var _arr_ []interface{} var _arr_ []interface{}

View File

@ -1,13 +1,19 @@
package db package db
import ( import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/log"
"go_dreamfactory/lego/utils/codec/json"
"io/ioutil"
"os"
"sync" "sync"
) )
func newSys(options *Options) (sys *DB, err error) { func newSys(options *Options) (sys *DB, err error) {
sys = &DB{ sys = &DB{
options: options, options: options,
servers: make(map[string]*DBConn),
data: make(map[string]*ModelDataExpired), data: make(map[string]*ModelDataExpired),
} }
if err = sys.init(); err != nil { if err = sys.init(); err != nil {
@ -26,25 +32,72 @@ type DB struct {
} }
func (this *DB) init() (err error) { func (this *DB) init() (err error) {
if this.local, err = newDBConn(this.options.Loacl); err != nil { if this.local, err = newDBConn(DBConfig{
RedisIsCluster: this.options.RedisIsCluster,
RedisAddr: this.options.RedisAddr,
RedisPassword: this.options.RedisPassword,
RedisDB: this.options.RedisDB,
MongodbUrl: this.options.MongodbUrl,
MongodbDatabase: this.options.MongodbDatabase,
}); err != nil {
return return
} }
if this.options.Cross.Enabled { err = this.readercrossconf(this.options.CrossConfig)
if this.cross, err = newDBConn(this.options.Cross); err != nil { return
}
//读取游戏配置文件
func (this *DB) readercrossconf(path string) (err error) {
config := make(comm.CrossConfigs, 0)
var (
jsonFile *os.File
byteValue []byte
)
if jsonFile, err = os.Open(path); err != nil {
return
} else {
defer jsonFile.Close()
if byteValue, err = ioutil.ReadAll(jsonFile); err != nil {
return
}
if err = json.Unmarshal(byteValue, &config); err != nil {
return
}
if cf, ok := config[this.options.CrossTag]; !ok {
err = fmt.Errorf("no found Crossconfig:%s", this.options.CrossTag)
return
} else {
if !this.options.IsCross {
if this.cross, err = newDBConn(DBConfig{
RedisIsCluster: cf.LoaclDB.RedisIsCluster,
RedisAddr: cf.LoaclDB.RedisAddr,
RedisPassword: cf.LoaclDB.RedisPassword,
RedisDB: cf.LoaclDB.RedisDB,
MongodbUrl: cf.LoaclDB.MongodbUrl,
MongodbDatabase: cf.LoaclDB.MongodbDatabase,
}); err != nil {
log.Error("comment db err!", log.Field{Key: "stag", Value: cf.AreaId}, log.Field{Key: "db", Value: cf.LoaclDB}, log.Field{Key: "err", Value: err})
return
}
} else {
for k, v := range cf.ServiceList {
if this.servers[k], err = newDBConn(DBConfig{
RedisIsCluster: v.RedisIsCluster,
RedisAddr: v.RedisAddr,
RedisPassword: v.RedisPassword,
RedisDB: v.RedisDB,
MongodbUrl: v.MongodbUrl,
MongodbDatabase: v.MongodbDatabase,
}); err != nil {
log.Error("comment db err!", log.Field{Key: "stag", Value: k}, log.Field{Key: "db", Value: v}, log.Field{Key: "err", Value: err})
return return
} }
} }
if this.options.ServerList != nil && len(this.options.ServerList) > 0 {
this.servers = make(map[string]*DBConn, len(this.options.ServerList))
for k, v := range this.options.ServerList {
if this.servers[k], err = newDBConn(v); err != nil {
return
} }
} }
} }
return return
} }
func (this *DB) Local() *DBConn { func (this *DB) Local() *DBConn {
if this.local == nil { if this.local == nil {
log.Panic("LocalDBConn on init") log.Panic("LocalDBConn on init")

View File

@ -8,7 +8,6 @@ import (
//DB层配置 //DB层配置
type DBConfig struct { type DBConfig struct {
Enabled bool //是否生效
RedisIsCluster bool //是否是集群 RedisIsCluster bool //是否是集群
RedisAddr []string //redis 的集群地址 RedisAddr []string //redis 的集群地址
RedisPassword string //redis的密码 RedisPassword string //redis的密码
@ -19,33 +18,19 @@ type DBConfig struct {
type Option func(*Options) type Option func(*Options)
type Options struct { type Options struct {
Loacl DBConfig //本服配置 IsCross bool //是否是跨服
Cross DBConfig //跨服配置 CrossTag string //跨服区服id
ServerList map[string]DBConfig //服务列表配置 RedisIsCluster bool //是否是集群
RedisAddr []string //redis 的集群地址
RedisPassword string //redis的密码
RedisDB int //数据库位置
MongodbUrl string //数据库连接地址
MongodbDatabase string //数据库名
CrossConfig string //跨服配置文件地址
Debug bool //日志是否开启 Debug bool //日志是否开启
Log log.ILogger Log log.ILogger
} }
//设置本服配置
func SetLoacl(v DBConfig) Option {
return func(o *Options) {
o.Loacl = v
}
}
//设置本服配置
func SetCross(v DBConfig) Option {
return func(o *Options) {
o.Cross = v
}
}
//设置跨服区服列表
func SetServerList(v map[string]DBConfig) Option {
return func(o *Options) {
o.ServerList = v
}
}
func SetDebug(v bool) Option { func SetDebug(v bool) Option {
return func(o *Options) { return func(o *Options) {
o.Debug = v o.Debug = v
@ -58,11 +43,7 @@ func SetLog(v log.ILogger) Option {
} }
} }
func newOptions(config map[string]interface{}, opts ...Option) (options *Options, err error) { func newOptions(config map[string]interface{}, opts ...Option) (options *Options, err error) {
options = &Options{ options = &Options{}
Loacl: DBConfig{},
Cross: DBConfig{},
ServerList: make(map[string]DBConfig),
}
if config != nil { if config != nil {
if err = mapstructure.Decode(config, options); err != nil { if err = mapstructure.Decode(config, options); err != nil {
return return