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/my.db
.idea/
bin/cross.json
bin/gm.json

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,7 +2,7 @@
{
"key": 1,
"id": "25001",
"star": 5,
"star": 4,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
@ -12,25 +12,13 @@
3,
4
],
"needracestar": 5,
"needracenum": 5,
"needracestar": 4,
"needracenum": 4,
"gold": 10000
},
{
"key": 2,
"id": "25001",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 3,
"id": "14003",
"star": 5,
"needhero": "",
"needherostar": 0,
@ -46,8 +34,8 @@
"gold": 10000
},
{
"key": 4,
"id": "14003",
"key": 3,
"id": "25001",
"star": 6,
"needhero": "",
"needherostar": 0,
@ -58,9 +46,9 @@
"gold": 0
},
{
"key": 5,
"id": "14007",
"star": 5,
"key": 4,
"id": "25004",
"star": 3,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
@ -70,12 +58,327 @@
3,
4
],
"needracestar": 5,
"needracenum": 5,
"needracestar": 3,
"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
},
{
"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",
"star": 6,
"needhero": "",
@ -86,300 +389,27 @@
"needracenum": 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,
"id": "44005",
"star": 6,
"id": "45003",
"star": 3,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
"needrace": [
1,
2,
3,
4
],
"needracestar": 3,
"needracenum": 3,
"gold": 10000
},
{
"key": 27,
"id": "44006",
"star": 5,
"id": "45003",
"star": 4,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
@ -389,24 +419,12 @@
3,
4
],
"needracestar": 5,
"needracenum": 5,
"needracestar": 4,
"needracenum": 4,
"gold": 10000
},
{
"key": 28,
"id": "44006",
"star": 6,
"needhero": "",
"needherostar": 0,
"needheronum": 0,
"needrace": [],
"needracestar": 0,
"needracenum": 0,
"gold": 0
},
{
"key": 29,
"id": "45003",
"star": 5,
"needhero": "",
@ -423,7 +441,7 @@
"gold": 10000
},
{
"key": 30,
"key": 29,
"id": "45003",
"star": 6,
"needhero": "",
@ -433,5 +451,177 @@
"needracestar": 0,
"needracenum": 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",
"var": [
@ -598,5 +588,75 @@
"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": {
"key": "mainline_desc_10004",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
"text": "自负的毒蛇大师虽然给人的感觉稍显轻浮,但对这件事的态度就有如她善变的性格,不太明朗;螳螂大师算是几位高手中最聪明的一个,对阿宝的现状很是无奈,总是暗中帮忙。"
},
"icon": "wp_icon_0002",
"text": {
@ -189,11 +189,11 @@
"map": "zx_ddt_zj01",
"title": {
"key": "mainline_title_10005",
"text": "第5章太狼来袭"
"text": "第5章激烈战斗"
},
"desc": {
"key": "mainline_desc_10005",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
"text": "最后要将阿宝调教成“功夫高手”的一代宗师“师父”华丽丽地出场了,然而有着一身好功夫并不意味着就是完美的,“师父”因为过去犯下的一个错误,一直纠结着没办法释然。"
},
"icon": "wp_icon_0002",
"text": {
@ -234,11 +234,11 @@
"map": "zx_ddt_zj02",
"title": {
"key": "mainline_title_10006",
"text": "第6章乌龟大师"
"text": "第6章下山"
},
"desc": {
"key": "mainline_desc_10006",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
"text": "至于那个让人人都如临大敌的太郎则是一只非常自恋的雪豹他等待复仇的这一天已经整整等了20年了可是他做梦也没想到自己等来的竟然是一只大熊猫。"
},
"icon": "wp_icon_0002",
"text": {
@ -279,11 +279,11 @@
"map": "zx_ddt_zj03",
"title": {
"key": "mainline_title_10007",
"text": "第7章太狼来袭"
"text": "第7章事件余波"
},
"desc": {
"key": "mainline_desc_10007",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
"text": "激烈的战斗后,阿宝以自己对武功的悟性和师父传授的武术,战胜了太郎,拯救了山谷,为山谷带来了和平。"
},
"icon": "wp_icon_0002",
"text": {

View File

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

View File

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

View File

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

View File

@ -3,6 +3,10 @@
"id": 10001,
"num": 1,
"preTid": 0,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0,
"needItem": [
0
@ -13,6 +17,10 @@
"id": 10002,
"num": 2,
"preTid": 104,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0,
"needItem": [
0
@ -23,6 +31,10 @@
"id": 10003,
"num": 1,
"preTid": 0,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0,
"needItem": [
0
@ -33,6 +45,10 @@
"id": 10004,
"num": 1,
"preTid": 0,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0,
"needItem": [
0
@ -43,6 +59,10 @@
"id": 10005,
"num": 2,
"preTid": 105,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0,
"needItem": [
0
@ -53,6 +73,10 @@
"id": 10006,
"num": 1,
"preTid": 105,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0,
"needItem": [
0
@ -63,6 +87,10 @@
"id": 10007,
"num": 2,
"preTid": 0,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0,
"needItem": [
0
@ -73,6 +101,10 @@
"id": 10008,
"num": 3,
"preTid": 0,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"gotoLevel": 0,
"needItem": [
0
@ -83,6 +115,14 @@
"id": 10009,
"num": 1,
"preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"gotoLevel": 0,
"needItem": [
0
@ -93,6 +133,14 @@
"id": 100010,
"num": 2,
"preTid": 105,
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"gotoLevel": 0,
"needItem": [
0
@ -103,6 +151,14 @@
"id": 100011,
"num": 1,
"preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"gotoLevel": 101,
"needItem": [
0
@ -113,6 +169,14 @@
"id": 100012,
"num": 2,
"preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"gotoLevel": 0,
"needItem": [
0
@ -123,6 +187,14 @@
"id": 20001,
"num": 1,
"preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"gotoLevel": 0,
"needItem": [
0
@ -133,6 +205,16 @@
"id": 20002,
"num": 2,
"preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"gotoLevel": 0,
"needItem": [
0
@ -143,6 +225,16 @@
"id": 20003,
"num": 1,
"preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"gotoLevel": 0,
"needItem": [
0
@ -153,6 +245,16 @@
"id": 20004,
"num": 1,
"preTid": 0,
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"gotoLevel": 101,
"needItem": [
0
@ -163,20 +265,54 @@
"id": 20005,
"num": 1,
"preTid": 0,
"gotoLevel": 0,
"needItem": [
0
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"nextTid": 100206
},
{
"id": 20006,
"num": 1,
"preTid": 0,
"gotoLevel": 0,
"needItem": [
0
],
"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,
"objType": 1,
"location": "middle",
"point": "model_07",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "Enter",
"modelstate": 0,
"rotation": {
"x": 0,
"y": 90,
"z": 0
},
"point": "model_07",
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 1,
"timeline": "",
"chooseId": [
10001,
10002
],
"endTid": -1,
"storyEnd": 1,
"nextTid": 100101,
"reward": [
{
"ChooseId": 10001,
@ -50,182 +58,250 @@
]
}
],
"CD": 0,
"endTid": -1
"nextTid": 100101,
"CD": 0
},
{
"id": 1002,
"objType": 1,
"location": "middle",
"point": "model_04",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "",
"modelstate": 0,
"rotation": {
"x": 0,
"y": -150,
"z": 0
},
"point": "model_04",
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 2,
"timeline": "",
"chooseId": [],
"endTid": -1,
"storyEnd": 1,
"nextTid": -1,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": -1,
"CD": 0
},
{
"id": 1003,
"objType": 2,
"location": "right",
"point": "icon_03",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "",
"modelstate": 0,
"rotation": {
"x": 0,
"y": -180,
"z": 0
},
"point": "icon_03",
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 6,
"timeline": "",
"chooseId": [
10003,
10004
],
"endTid": -1,
"storyEnd": 1,
"nextTid": 100103,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": 100103,
"CD": 0
},
{
"id": 1004,
"objType": 1,
"location": "middle",
"point": "model_04",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "",
"modelstate": 0,
"rotation": {
"x": 0,
"y": -150,
"z": 0
},
"point": "model_04",
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 3,
"timeline": "",
"chooseId": [
10005,
10006,
10007
],
"endTid": -1,
"storyEnd": 1,
"nextTid": 100101,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": 100101,
"CD": 0
},
{
"id": 1005,
"objType": 1,
"location": "middle",
"point": "model_07",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "",
"modelstate": 0,
"rotation": {
"x": 0,
"y": 90,
"z": 0
},
"point": "model_07",
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 4,
"timeline": "",
"chooseId": [],
"endTid": -1,
"storyEnd": 0,
"nextTid": -1,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": -1,
"CD": 0
},
{
"id": 1006,
"objType": 2,
"location": "right",
"point": "icon_03",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "",
"modelstate": 0,
"rotation": {
"x": 0,
"y": -180,
"z": 0
},
"point": "icon_03",
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 8,
"timeline": "",
"chooseId": [
10008,
10009
],
"endTid": -1,
"storyEnd": 1,
"nextTid": 100104,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": 100104,
"CD": 0
},
{
"id": 1007,
"objType": 2,
"location": "left",
"point": "icon_01",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "",
"modelstate": 0,
"rotation": {
"x": 0,
"y": -180,
"z": 0
},
"point": "icon_01",
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 10,
"timeline": "",
"chooseId": [
100010,
100011,
100012
],
"endTid": -1,
"storyEnd": 1,
"nextTid": 100105,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": 100105,
"CD": 0
},
{
"id": 1008,
"objType": 2,
"location": "",
"point": "icon_04",
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "",
"modelstate": 0,
"rotation": {
"x": 0,
"y": -180,
"z": 0
},
"point": "icon_04",
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 12,
"timeline": "",
"chooseId": [],
"endTid": -1,
"storyEnd": 1,
"nextTid": 0,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": 0,
"CD": 0
},
{
"id": 2001,
"objType": 1,
"location": "middle",
"point": "model_02",
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"modelaction": "",
"modelstate": 0,
"rotation": {
"x": 0,
"y": -180,
"z": 0
},
"point": "model_02",
"storyBegin": 201,
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [
20001,
20002
],
"endTid": -1,
"storyEnd": 0,
"nextTid": 100202,
"reward": [
{
"ChooseId": 20001,
@ -248,92 +324,140 @@
]
}
],
"CD": 0,
"endTid": -1
"nextTid": 100202,
"CD": 0
},
{
"id": 2002,
"objType": 1,
"location": "middle",
"point": "model_02",
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"modelaction": "",
"modelstate": 0,
"rotation": {
"x": 0,
"y": -180,
"z": 0
},
"point": "model_02",
"storyBegin": 202,
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [
20003
],
"endTid": -1,
"storyEnd": 0,
"nextTid": 0,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": 0,
"CD": 0
},
{
"id": 2003,
"objType": 1,
"location": "middle",
"point": "model_03",
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"modelaction": "Enter",
"modelstate": 0,
"rotation": {
"x": 0,
"y": -180,
"z": 0
},
"point": "model_03",
"storyBegin": 203,
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [],
"endTid": -1,
"storyEnd": 0,
"nextTid": -1,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": -1,
"CD": 0
},
{
"id": 2004,
"objType": 1,
"location": "middle",
"point": "model_03",
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"modelaction": "Enter",
"modelstate": 0,
"rotation": {
"x": 0,
"y": -180,
"z": 0
},
"point": "model_03",
"storyBegin": 203,
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [],
"endTid": -1,
"storyEnd": 0,
"nextTid": -1,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": -1,
"CD": 0
},
{
"id": 2005,
"objType": 2,
"location": "right",
"point": "icon_05",
"Entity": [
"Earth"
],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [
false
],
"modelaction": "",
"modelstate": 0,
"rotation": {
"x": 0,
"y": 0,
"z": 0
},
"point": "icon_05",
"storyBegin": 204,
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [
20004
],
"endTid": -1,
"storyEnd": 0,
"nextTid": 100205,
"reward": [
{
"ChooseId": 2004,
"ChooseId": 20004,
"Reward": [
{
"a": "hero",
@ -343,91 +467,179 @@
]
}
],
"CD": 0,
"endTid": -1
"nextTid": 100205,
"CD": 0
},
{
"id": 2006,
"objType": 1,
"location": "middle",
"point": "model_02",
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"modelaction": "Enter",
"modelstate": 0,
"rotation": {
"x": 0,
"y": 90,
"z": 0
},
"point": "model_02",
"storyBegin": 205,
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [],
"endTid": -1,
"storyEnd": 0,
"nextTid": -1,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": -1,
"CD": 0
},
{
"id": 2007,
"objType": 1,
"location": "middle",
"point": "model_03",
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"modelaction": "Enter",
"modelstate": 0,
"rotation": {
"x": 0,
"y": -90,
"z": 0
},
"point": "model_03",
"storyBegin": 206,
"chooseId": [
20005
],
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [],
"endTid": -1,
"storyEnd": 0,
"nextTid": 100206,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": 100207,
"CD": 0
},
{
"id": 2008,
"objType": 2,
"location": "left",
"modelaction": "",
"modelstate": 0,
"objType": 1,
"location": "middle",
"point": "model_03",
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"modelaction": "Enter",
"rotation": {
"x": 0,
"y": 0,
"y": -90,
"z": 0
},
"point": "icon_01",
"storyBegin": 207,
"chooseId": [
20006
],
"storyEnd": 208,
"nextTid": 100207,
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [],
"endTid": -1,
"storyEnd": 0,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": 100208,
"CD": 0
},
{
"id": 2009,
"objType": 1,
"location": "middle",
"point": "model_02",
"Entity": [
"Earth"
],
"EntityChange": [
"globe"
],
"EntityStateChange": [],
"EntityInteractive": [
true
],
"modelaction": "",
"modelstate": 0,
"rotation": {
"x": 0,
"y": -180,
"z": 0
},
"point": "model_02",
"storyBegin": 207,
"modelstate": 0,
"popup": "",
"special": "",
"boxreplace": "",
"storyBegin": 0,
"timeline": "",
"chooseId": [],
"storyEnd": 207,
"nextTid": 0,
"endTid": -1,
"storyEnd": 0,
"reward": [],
"CD": 0,
"endTid": -1
"nextTid": 0,
"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
},
"positionL": {
"x": 0,
"x": -0.1,
"y": -1.2,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",
@ -4339,29 +4339,29 @@
"z": 0
},
"positionL": {
"x": 0,
"x": -0.1,
"y": -1.2,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",
@ -4395,29 +4395,29 @@
"z": 0
},
"positionL": {
"x": 0,
"x": -0.1,
"y": -1.2,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",
@ -4451,29 +4451,29 @@
"z": 0
},
"positionL": {
"x": 0,
"x": -0.1,
"y": -1.2,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",
@ -4507,29 +4507,29 @@
"z": 0
},
"positionL": {
"x": 0,
"x": -0.1,
"y": -1.2,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",
@ -4563,29 +4563,29 @@
"z": 0
},
"positionL": {
"x": 0,
"x": -0.1,
"y": -1.2,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",
@ -4599,7 +4599,7 @@
"type": 2,
"bg": "jqdh_bg01",
"place": 0,
"speak": "25001",
"speak": "25004",
"listen": "",
"des": "啊哈!哈哈哈哈!",
"modelstatetarget": "",
@ -4619,29 +4619,29 @@
"z": 0
},
"positionL": {
"x": 0,
"y": -1.2,
"x": -0.1,
"y": -0.8,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",
@ -4675,29 +4675,29 @@
"z": 0
},
"positionL": {
"x": 0,
"x": -0.1,
"y": -1.2,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",
@ -4731,29 +4731,29 @@
"z": 0
},
"positionL": {
"x": 0,
"x": -0.1,
"y": -0.8,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",
@ -4787,29 +4787,29 @@
"z": 0
},
"positionL": {
"x": 0,
"x": -0.1,
"y": -1.2,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",
@ -4843,29 +4843,29 @@
"z": 0
},
"positionL": {
"x": 0,
"x": -0.1,
"y": -1.2,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",
@ -4899,29 +4899,29 @@
"z": 0
},
"positionL": {
"x": 0,
"x": -0.1,
"y": -1.2,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",
@ -4955,29 +4955,29 @@
"z": 0
},
"positionL": {
"x": 0,
"x": -0.1,
"y": -1.2,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",
@ -5011,29 +5011,29 @@
"z": 0
},
"positionL": {
"x": 0,
"x": -0.1,
"y": -1.2,
"z": 0
},
"revolveR": {
"x": 0,
"y": -180,
"y": -150,
"z": 0
},
"revolveL": {
"x": 0,
"y": -180,
"y": -210,
"z": 0
},
"sizeR": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"sizeL": {
"x": 0.8,
"y": 0.8,
"z": 0.8
"x": 0.9,
"y": 0.9,
"z": 0.9
},
"perf": "",
"cg": "",

View File

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

View File

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

View File

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

View File

@ -26,6 +26,7 @@ type ConnService interface {
SendMsg(msg *pb.UserMessage, rsp proto.Message) (err error)
ReceiveMsg() (code pb.ErrorCode, msg *pb.UserMessage)
ListenerPush()
Close()
}
type ConnServiceImpl struct {
@ -173,3 +174,9 @@ func (c *ConnServiceImpl) handleNotify(msg *pb.UserMessage) (code pb.ErrorCode)
}
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,18 +32,20 @@ type MainWindow interface {
type MainWindowImpl struct {
UIImpl
WindowDefaultOptions
w fyne.Window
tb *toolBar //工具条
toys *toys // side
sb *statusBar //状态栏
at *appContainer //tabs
parent fyne.Window
w fyne.Window
tb *toolBar //工具条
toys *toys // side
sb *statusBar //状态栏
at *appContainer //tabs
}
func NewMainWindow(ui *UIImpl) MainWindow {
func NewMainWindow(ui *UIImpl, parent fyne.Window) MainWindow {
gobase.NewScheduler().Start()
gobase.RegisterAtExit(gobase.GlobalScheduler.Stop)
mw := &MainWindowImpl{
UIImpl: *ui,
parent: parent,
}
globalWin = mw
@ -53,12 +55,7 @@ func NewMainWindow(ui *UIImpl) MainWindow {
logrus.Debug("即将与服务器断开链接")
conf := dialog.NewConfirm("链接中断", data.(error).Error(), func(
b bool) {
if b {
globalWin.w.Close()
} else {
dialog.NewInformation("提示", "重启登录", globalWin.w)
return
}
ui.app.Quit()
}, globalWin.w)
conf.SetDismissText("取消")
conf.SetConfirmText("退出")
@ -109,7 +106,7 @@ func (ui *MainWindowImpl) SetStatusMsg(msg string) {
}
func (ui *MainWindowImpl) quiteHandle() {
ui.w.Close()
ui.app.Quit()
}
// CreateWindow ....
@ -126,8 +123,20 @@ func (ui *MainWindowImpl) CreateWindow(_ string, width, height float32, _ bool)
w.Resize(fyne.NewSize(width, height))
}
w.SetMaster()
// w.SetMaster()
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)
}
@ -183,6 +192,10 @@ func (ui *MainWindowImpl) createChooseServerWindow(
w.SetFixedSize(true)
w.Resize(fyne.NewSize(500, 200))
w.Show()
w.SetCloseIntercept(func() {
ui.parent.Show()
w.Close()
})
w.CenterOnScreen()
return w
}
@ -316,4 +329,8 @@ func (ui *MainWindowImpl) NewWelcomeLabel(data string) {
)),
))
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, rtask.RtaskSubTypeBattleStart): &formview.RtaskBattlestartView{},
ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleFinish): &formview.RtaskBattleFinishView{},
ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord): &formview.RtaskRecordView{},
// linestory
ff(comm.ModuleLinestory, linestory.LinestorySubTypeDostart): &formview.LinestoryStartView{},
ff(comm.ModuleLinestory, linestory.LinestorySubTypeDotask): &formview.LinestoryTaskView{},
@ -186,9 +187,11 @@ var (
ff(comm.ModuleRtask, rtask.RtaskSubTypeApply),
ff(comm.ModuleRtask, rtask.RtaskSubTypeChoose),
ff(comm.ModuleRtask, rtask.RtaskSubTypeReward),
ff(comm.ModuleRtask, "rtest"),
ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleStart),
ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleFinish),
ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord),
ff(comm.ModuleRtask, "rtest"),
},
"linestory": {
ff(comm.ModuleLinestory, linestory.LinestorySubTypeDostart),
@ -675,6 +678,13 @@ var (
SubType: rtask.RtaskSubTypeBattleFinish,
Enabled: true,
},
ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord): {
NavLabel: "任务数据",
Desc: "任务数据",
MainType: string(comm.ModuleRtask),
SubType: rtask.RtaskSubTypeGetrecord,
Enabled: true,
},
ff(comm.ModuleRtask, "rtest"): {
NavLabel: "测试条件",
Desc: "测试任务触发",

View File

@ -16,15 +16,17 @@ type ToolWindow interface {
type ToolWindowImpl struct {
UIImpl
w fyne.Window
tb *toolBar //工具条
sb *statusBar //状态栏
at *appContainer //tabs
parent fyne.Window
w fyne.Window
tb *toolBar //工具条
sb *statusBar //状态栏
at *appContainer //tabs
}
func NewToolWindow(ui *UIImpl) ToolWindow {
func NewToolWindow(ui *UIImpl, parent fyne.Window) ToolWindow {
mw := &ToolWindowImpl{
UIImpl: *ui,
parent: parent,
}
toolWin = mw
@ -75,7 +77,21 @@ func (ui *ToolWindowImpl) CreateWindow(title string, width, height float32, _ bo
logrus.WithField("appName", appName).Error(err)
}
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.SetCloseIntercept(func() {
ui.parent.Show()
w.Close()
})
w.Show()
}

View File

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

View File

@ -93,7 +93,6 @@ func (this *ListBaseView) listBtnFun() func() {
// set data
func (this *ListBaseView) reloadListData() {
if this.itemListData != nil {
logrus.Debugf("list record:%v", len(this.itemListData.DataList))
d := this.itemListData.AsInterfaceArray()
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 {
ListBaseView
activeVal int32
activeVal *widget.Label
}
func (this *TaskActiveListView) CreateView(t *model.TestCase) fyne.CanvasObject {
@ -46,7 +46,7 @@ func (this *TaskActiveListView) CreateView(t *model.TestCase) fyne.CanvasObject
})
//label
activeLabel := widget.NewLabel(fmt.Sprintf("当前活跃度:%d", this.activeVal))
this.activeVal = widget.NewLabel("")
//receive button
receiveBtn := widget.NewButtonWithIcon("领取", theme.ConfirmIcon(), func() {
@ -56,14 +56,14 @@ func (this *TaskActiveListView) CreateView(t *model.TestCase) fyne.CanvasObject
}
if err := service.GetPttService().SendToClient(
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)
return
}
})
// 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
//data listener for
@ -86,7 +86,7 @@ func (this *TaskActiveListView) dataListener() {
logrus.Error("unmarshal err")
}
this.activeVal = rsp.Active
this.activeVal.SetText(fmt.Sprintf("当前活跃度:%v", rsp.Active))
this.itemListData = model.NewItemModelList()
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 {
// 修改章节信息
ModifyMainlineData(uid string, objId string, data interface{}) (code pb.ErrorCode)
ModifyMainlineData(uid string, id int32) (code pb.ErrorCode)
/// 查询章节ID
GetUsermainLineData(uid string) (mainlineId int32)
}
@ -160,4 +160,8 @@ type (
IGm interface {
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) {
defer lego.Recover("Service Init")
this.closesig = make(chan string, 1)
this.service = service
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) {
defer lego.Recover("Service Start")
for _, v := range this.comps {
err = v.Start()
if err != nil {
@ -93,6 +95,7 @@ func (this *ServiceBase) Start() (err error) {
//运行模块
func (this *ServiceBase) Run(mod ...core.IModule) {
go func() {
defer lego.Recover("Service Run")
for _, v := range mod { //初始化模块对象 分配配置参数
if sf, ok := this.service.GetSettings().Modules[string(v.GetType())]; ok {
this.modules[v.GetType()] = &defaultModule{

View File

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

View File

@ -2,7 +2,7 @@ package attribute
func NewFixedNumeric(pData float32) FixedNumeric {
fixed := FixedNumeric{}
fixed.Set(pData)
fixed.SetFloat(pData)
return fixed
}
@ -10,17 +10,38 @@ type FixedNumeric struct {
baseValue FixedPoint
}
func (this FixedNumeric) Set(value float32) float32 {
this.baseValue = NewFixedPoint(value)
return this.baseValue.Scalar()
}
func (this FixedNumeric) Fixed() FixedPoint {
return this.baseValue
}
func (this FixedNumeric) Value() float32 {
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>

View File

@ -36,6 +36,12 @@ func (this FixedPoint) ToString() string {
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) {
y := NewFixedPoint(v)

View File

@ -36,6 +36,12 @@ type HealthPoint struct {
CurrMaxHpAppend *AttributeNumeric
}
/// <summary>
/// 重置当前生命值为最大值
/// </summary>
func (this *HealthPoint) Reset() {
this.Hp.SetFloat(this.CurrMaxHp.Value())
}
func (this *HealthPoint) Value() int32 {
return int32(this.Hp.Value())
}
@ -43,10 +49,35 @@ func (this *HealthPoint) MaxValue() int32 {
return int32(this.CurrMaxHp.Value())
}
/// <summary>
/// 扣血
/// </summary>
/// <param name="value"></param>
func (this *HealthPoint) Minus(value float32) {
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>

View File

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

View File

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

View File

@ -40,7 +40,9 @@ func (this *configureComp) GetMsgDistribute(msgmid, msguid string) (rule string,
rule = item.Routrules
} else {
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

View File

@ -13,6 +13,11 @@ import (
/* GM 在控制台输入的字符串类型
//bingo:item,10001,1
//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) {
@ -31,7 +36,8 @@ func (this *apiComp) Cmd(session comm.IUserSession, req *pb.GMCmdReq) (code pb.E
if len(keys) == 2 {
if keys[0] == "bingo" {
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])
if err != nil {
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})
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 {
modules.ModuleBase
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) {
err = this.ModuleBase.Init(service, module, options)
this.service = service
return
}
@ -49,7 +51,8 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC
if len(keys) == 2 {
if keys[0] == "bingo" {
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])
if err != nil {
code = pb.ErrorCode_ReqParameterError
@ -62,6 +65,32 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC
N: int32(num),
},
}, 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" // 英雄觉醒
HeroLock = "lock" // 英雄锁定
DrawCard = "drawcard" // 抽卡
DrawCardFloor = "drawcardfloor" // 抽卡保底
)
//组件初始化接口

View File

@ -29,6 +29,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
heroRecord *pb.DBHeroRecord
pool string
_mapAddHero map[string]int32
strPool []string // 10连跨多个卡池情况
)
_mapAddHero = make(map[string]int32, 0)
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())
drawCount = heroRecord.Drawcount
pool = this.module.modelHero.CheckPool(drawCount, cfg)
if req.DrawType == 0 { // 普通卡池抽卡
// 获取普通抽卡池
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++ {
drawCount += 1
pool = this.module.modelHero.CheckPool(drawCount, cfg)
strPool = append(strPool, pool)
sz := make([]int32, 0)
if cfgDraw.BasePoolStar3 != 0 {
sz = append(sz, cfgDraw.BasePoolStar3)
}
if cfgDraw.BasePoolStar4 != 0 {
sz = append(sz, cfgDraw.BasePoolStar4)
}
if cfgDraw.BasePoolStar5 != 0 {
sz = append(sz, cfgDraw.BasePoolStar5)
}
starIndex := this.module.modelHero.GetRandW(sz)
heroRecord.Star4++
heroRecord.Star5++
if starIndex == 1 {
heroRecord.Star4 = 0
star4Max++
} else if starIndex == 2 {
star5Max++
heroRecord.Star5 = 0
}
if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max {
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)
if len(szStar) >= int(req.DrawCount) {
break
@ -91,6 +108,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
switch req.DrawType {
case 1:
pool = cfg.Camp1Pool1
costAtn = cfgDraw.Camp1PoolCost
case 2:
@ -103,6 +121,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
pool = cfg.Camp4Pool1
costAtn = cfgDraw.Camp4PoolCost
}
strPool = append(strPool, pool)
} else {
costAtn = cfgDraw.Camp1PoolCost
switch req.DrawType {
@ -120,6 +139,9 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
pool = cfg.Camp4Pool1
costAtn = cfgDraw.Camp4Pool10cost
}
for i := 0; i < int(req.DrawCount); i++ {
strPool = append(strPool, pool)
}
}
costRes = append(costRes, costAtn)
@ -156,28 +178,33 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
}
}
}
_data := this.module.configure.GetPollByType(pool)
if _data == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
for _, star := range szStar { // szStar 转 szHeroId
for index, star := range szStar {
_data := this.module.configure.GetPollByType(strPool[index])
if _data == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
sz := make([]int32, 0)
for _, v := range _data[int32(star)] {
sz = append(sz, v.Weight)
}
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 配置信息
update := map[string]interface{}{}
if drawCount != -1 {
drawCount += req.DrawCount
if req.DrawType == 0 {
update := map[string]interface{}{}
update["star4"] = heroRecord.Star4
update["star5"] = heroRecord.Star5
update["drawcount"] = drawCount
this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update)
}
this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update)
// 消耗道具
code = this.module.ConsumeRes(session, costRes, true)
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)
if _data != nil {
if maxLv == _hero.Lv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级
if maxLv == curLv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级
code = pb.ErrorCode_HeroMaxLv
return
}
@ -123,7 +123,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
if len(_data.Heroexp) == 0 {
break
}
if maxLv <= _hero.Lv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级
if maxLv <= curLv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级
// 超过的经验值
leftExp := curExp - _data.Heroexp[0].N
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
_data := this.moduleHero.configure.GetHeroLv(curLv)
if _data != nil {
if maxLv <= hero.Lv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级
if maxLv <= curLv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级
code = pb.ErrorCode_HeroMaxLv
return
}
@ -499,7 +499,7 @@ func (this *ModelHero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhe
if len(_data.Heroexp) == 0 {
break
}
if maxLv <= hero.Lv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级
if maxLv <= curLv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级
curLv = maxLv
curExp = _data.Heroexp[0].N
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) {
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()) {
temp := &pb.DBMailData{}
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 {
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})
return
}

View File

@ -6,6 +6,8 @@ import (
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"sort"
"go.mongodb.org/mongo-driver/bson/primitive"
)
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) {
err := this.modelMainline.modifyMainlineData(uid, objId, data)
func (this *Mainline) ModifyMainlineData(uid string, id int32) (code pb.ErrorCode) {
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 {
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
}

View File

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

View File

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

View File

@ -68,3 +68,17 @@ func (this *Pagoda) Start() (err error) {
this.battle = module.(comm.IBattle)
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" //奖励
RtaskSubTypeBattleStart = "battlestart" //战斗开始
RtaskSubTypeBattleFinish = "battlefinish" //战斗完成
RtaskSubTypeGetrecord = "getrecord" //任务数据
)
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 (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
@ -32,3 +33,12 @@ func (this *ModelRtaskRecord) GetVerifyData(uid string, condiId int32) (*pb.Rtas
}
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) {
record := &pb.DBRtaskRecord{}
record := &pb.DBRtaskRecord{Uid: uid}
err = this.Get(uid, record)
if err != nil {
return errors.Wrapf(err, "获取玩家任务记录 err: %v rtype[%v]", uid, cfg.Id)
if err != mongo.ErrNoDocuments {
return errors.Wrapf(err, "获取玩家任务记录 err: %v rtype[%v]", uid, cfg.Id)
}
}
if record.Vals == nil {
record.Id = primitive.NewObjectID().Hex()
data := &pb.RtaskData{
Data: toMap(vals...),
Rtype: cfg.Type,

View File

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

View File

@ -59,6 +59,7 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.TaskReceiveReq)
return
}
// 更新活跃度
if conf.Active > 0 {
//更新活跃度
ue, err := this.moduleTask.ModuleUser.GetUserExpand(session.GetUserId())
@ -67,7 +68,7 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.TaskReceiveReq)
return
}
update := make(map[string]interface{})
if ue != nil {
if ue.Uid != "" {
if comm.TaskTag(req.TaskTag) == comm.TASK_DAILY {
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
}
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 err = this.moduleTask.ModuleUser.ChangeUserExpand(session.GetUserId(), update); err != nil {
code = pb.ErrorCode_DBError

View File

@ -168,7 +168,7 @@ func (this *configureComp) getTaskActiveList() (data []*cfg.GameActiveRewardData
}
//获取活跃度奖励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()
if err != nil {
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) {
data := this.moduleTask.configure.getTaskActiveList()
func (this *ModelTaskActive) initActiveReward(uid string, taskTag comm.TaskTag) {
data := this.moduleTask.configure.getTaskActiveByTag(int32(taskTag))
for _, conf := range data {
objId := primitive.NewObjectID().Hex()
ta := &pb.DBTaskActive{
Id: objId,
Uid: uid,
Tag: conf.IdTag,
Tag: int32(taskTag),
RId: conf.Key,
}
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_WEEKLY)
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 {
case 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:
this.modelTask.initTask(uid, comm.TASK_WEEKLY)
this.modelTaskActive.initActiveReward(uid)
this.modelTaskActive.initActiveReward(uid, comm.TASK_WEEKLY)
case 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{
ObjId: primitive.NewObjectID().Hex(),
Uid: user.Uid,
Title: "系统邮件",
Contex: "恭喜获得登录专属礼包一份",
Title: "system mail",
Contex: "Congratulations on getting a login exclusive gift pack",
CreateTime: uint64(time.Now().Unix()),
DueTime: uint64(time.Now().Unix()) + 30*24*3600, // 30天需要走配置文件
Check: false,

View File

@ -160,7 +160,7 @@ func (this *ModelUser) updateOfflineTime(uid string) {
// change exp
func (this *ModelUser) ChangeExp(event interface{}, next func(event interface{})) {
ul := event.(*UserListen)
// TODO
// TODO nothing
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{})) {
ul := event.(*UserListen)
curLv := ul.lv
curLvConf := this.module.configure.GetPlayerlvConf(curLv)
//下一等级配置
nextLvConf := this.module.configure.GetPlayerlvConf(curLv + 1)
if curLvConf.Exp == 0 || nextLvConf == nil { //最大等级
next(ul)
return
for nextLvConf != nil && ul.exp >= nextLvConf.Exp {
curLv++
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{}{
"lv": ul.lv,
}
this.module.modelUser.Change(ul.session.GetUserId(), update)
ul.session.SendMsg(string(this.module.GetType()),
UserSubTypeLvChangedPush,
ul.session.SendMsg(string(this.module.GetType()), UserSubTypeLvChangedPush,
&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/sys/event"
"go_dreamfactory/lego/sys/log"
"github.com/pkg/errors"
)
var _ comm.IUser = (*User)(nil)
@ -104,26 +107,34 @@ func (this *User) QueryAttributeValue(uid string, attr string) (value int32) {
return
}
//用户资源
func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add int32, bPush bool) (code pb.ErrorCode) {
func (this *User) change(session comm.IUserSession, attr string, add int32) (change *pb.UserResChangePush, code pb.ErrorCode) {
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
}
user := this.GetUser(session.GetUserId())
if user == nil {
code = pb.ErrorCode_UserSessionNobeing
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,
Exp: user.Exp,
Lv: user.Lv,
Vip: user.Vip,
Diamond: user.Diamond,
Friend: userEx.FriendPoint,
}
update := make(map[string]interface{})
switch attr {
case comm.ResGold:
if add < 0 {
@ -132,39 +143,76 @@ func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add
return
}
}
_change.Gold += add
update[comm.ResGold] = user.Gold + add
change.Gold += add
case comm.ResExp:
if add < 0 {
if user.Exp+add < 0 {
code = pb.ErrorCode_ResNoEnough
code = pb.ErrorCode_UserExpNoEnough
return
}
}
_change.Exp += add
update[comm.ResExp] = user.Exp + add
change.Exp += add
case comm.ResDiamond:
if add < 0 {
if user.Diamond+add < 0 {
code = pb.ErrorCode_ResNoEnough
code = pb.ErrorCode_DiamondNoEnough
return
}
}
_change.Diamond += add
update[comm.ResDiamond] = user.Diamond + add
change.Diamond += add
case comm.ResFriend:
if add < 0 {
if userEx.FriendPoint+add < 0 {
code = pb.ErrorCode_UserFriendNoEnough
return
}
}
change.Friend += add
default:
code = pb.ErrorCode_Unknown
}
if len(update) == 0 {
this.Warn("AddAttributeValue param is empty")
err = errors.New(fmt.Sprintf("%s no supported", attr))
return
}
//user
update := map[string]interface{}{
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 {
this.Errorf("AddAttributeValue err:%v", err)
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 { //推送玩家账号信息变化消息
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) {
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 {
if add == 0 {
this.Errorf("attr no changed,uid: %s attr: %s add: %d", session.GetUserId(), key, add)
var _change *pb.UserResChangePush
_change, code = this.change(session, key, add)
if code != pb.ErrorCode_Success {
return
}
if _change == nil {
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 bPush { //推送玩家账号信息变化消息
session.SendMsg(string(this.GetType()), "reschange", _change)
}
}
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 { //推送玩家账号信息变化消息
session.SendMsg(string(this.GetType()), "reschange", _change)
}
return
}

View File

@ -48,19 +48,21 @@ const (
ErrorCode_ConfigNoFound ErrorCode = 104 //配置未找到
ErrorCode_UserLogined ErrorCode = 105 //已在其它终端登录
// user
ErrorCode_SecKeyInvalid ErrorCode = 1000 //秘钥无效
ErrorCode_SecKey ErrorCode = 1001 //秘钥格式错误
ErrorCode_BindUser ErrorCode = 1002 //用户绑定错误
ErrorCode_GoldNoEnough ErrorCode = 1003 // 金币不足
ErrorCode_DiamondNoEnough ErrorCode = 1004 // 钻石不足
ErrorCode_RoleCreated ErrorCode = 1005 //已创角
ErrorCode_UserNickNameExist ErrorCode = 1006 //昵称已存在
ErrorCode_VeriCodeNoValid ErrorCode = 1007 //验证码无效
ErrorCode_VeriCodeExpired ErrorCode = 1008 //验证码过期
ErrorCode_UserResetData ErrorCode = 1009 //初始化用户失败
ErrorCode_UserModiNameCount ErrorCode = 1010 //名称修改次数不足
ErrorCode_UserNickNameEmpty ErrorCode = 1011 //昵称空
ErrorCode_UserExpandNull ErrorCode = 1012 //扩展数据空
ErrorCode_SecKeyInvalid ErrorCode = 1000 //秘钥无效
ErrorCode_SecKey ErrorCode = 1001 //秘钥格式错误
ErrorCode_BindUser ErrorCode = 1002 //用户绑定错误
ErrorCode_GoldNoEnough ErrorCode = 1003 // 金币不足
ErrorCode_DiamondNoEnough ErrorCode = 1004 // 钻石不足
ErrorCode_RoleCreated ErrorCode = 1005 //已创角
ErrorCode_UserNickNameExist ErrorCode = 1006 //昵称已存在
ErrorCode_VeriCodeNoValid ErrorCode = 1007 //验证码无效
ErrorCode_VeriCodeExpired ErrorCode = 1008 //验证码过期
ErrorCode_UserResetData ErrorCode = 1009 //初始化用户失败
ErrorCode_UserModiNameCount ErrorCode = 1010 //名称修改次数不足
ErrorCode_UserNickNameEmpty ErrorCode = 1011 //昵称空
ErrorCode_UserExpandNull ErrorCode = 1012 //扩展数据空
ErrorCode_UserExpNoEnough ErrorCode = 1013 //经验不足
ErrorCode_UserFriendNoEnough ErrorCode = 1014 //友情点不足
// friend
ErrorCode_FriendNotSelf ErrorCode = 1100 //不能是自己
ErrorCode_FriendSelfMax ErrorCode = 1101 //超出好友最大数量
@ -227,6 +229,8 @@ var (
1010: "UserModiNameCount",
1011: "UserNickNameEmpty",
1012: "UserExpandNull",
1013: "UserExpNoEnough",
1014: "UserFriendNoEnough",
1100: "FriendNotSelf",
1101: "FriendSelfMax",
1102: "FriendTargetMax",
@ -375,6 +379,8 @@ var (
"UserModiNameCount": 1010,
"UserNickNameEmpty": 1011,
"UserExpandNull": 1012,
"UserExpNoEnough": 1013,
"UserFriendNoEnough": 1014,
"FriendNotSelf": 1100,
"FriendSelfMax": 1101,
"FriendTargetMax": 1102,
@ -518,7 +524,7 @@ var File_errorcode_proto protoreflect.FileDescriptor
var file_errorcode_proto_rawDesc = []byte{
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,
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,
@ -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,
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,
0x75, 0x6c, 0x6c, 0x10, 0xf4, 0x07, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
0x4e, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xcc, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72,
0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14,
0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61,
0x78, 0x10, 0xce, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65,
0x6c, 0x66, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xcf, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46,
0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74,
0x61, 0x10, 0xd0, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65,
0x74, 0x10, 0xd1, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70,
0x70, 0x6c, 0x79, 0x59, 0x65, 0x74, 0x10, 0xd2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69,
0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10,
0xd3, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67,
0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a,
0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f,
0x72, 0x10, 0xd5, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c,
0x61, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x10, 0xd6, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69,
0x65, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70,
0x74, 0x79, 0x10, 0xd7, 0x08, 0x12, 0x10, 0x0a, 0x0b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a,
0x61, 0x6e, 0x65, 0x64, 0x10, 0xd8, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e,
0x64, 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xd9, 0x08, 0x12,
0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x66,
0x10, 0xda, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69,
0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xdb, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72,
0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xdc,
0x08, 0x12, 0x12, 0x0a, 0x0d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75,
0x67, 0x68, 0x10, 0xb0, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f,
0x46, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x69, 0x72, 0x64, 0x10, 0xb1, 0x09, 0x12, 0x16, 0x0a, 0x11,
0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x55, 0x70, 0x70, 0x65,
0x72, 0x10, 0xb2, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x69, 0x72,
0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb3, 0x09, 0x12,
0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x53, 0x75,
0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x10, 0xb4, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74,
0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10,
0xb5, 0x09, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x78, 0x69, 0x73,
0x74, 0x10, 0x94, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e,
0x6f, 0x75, 0x67, 0x68, 0x10, 0x95, 0x0a, 0x12, 0x0e, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x4d,
0x61, 0x78, 0x4c, 0x76, 0x10, 0x96, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x49,
0x6e, 0x69, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x10, 0x97, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48,
0x65, 0x72, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x10, 0x98, 0x0a, 0x12, 0x13,
0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x70, 0x45, 0x72, 0x72,
0x10, 0x99, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x52, 0x65,
0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9a, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72,
0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9b, 0x0a, 0x12, 0x18,
0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73,
0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9c, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f,
0x4e, 0x6f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x9d, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48,
0x65, 0x72, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10, 0x9e, 0x0a, 0x12, 0x14, 0x0a, 0x0f,
0x48, 0x65, 0x72, 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10,
0x9f, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x41, 0x77, 0x61,
0x6b, 0x65, 0x6e, 0x10, 0xa0, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73,
0x4c, 0x6f, 0x63, 0x6b, 0x10, 0xa1, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4d,
0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xa2, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65,
0x72, 0x6f, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa3, 0x0a,
0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x45, 0x72, 0x72, 0x10,
0xa4, 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72,
0x72, 0x10, 0xa5, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x54,
0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa6, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72,
0x6f, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x45, 0x78, 0x70, 0x10, 0xa7, 0x0a, 0x12, 0x12, 0x0a,
0x0d, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xa8,
0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x61, 0x72,
0x4c, 0x76, 0x10, 0xa9, 0x0a, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72,
0x64, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xaa, 0x0a,
0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x6b, 0x69, 0x6c, 0x6c,
0x4c, 0x76, 0x10, 0xab, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x6c, 0x72,
0x65, 0x61, 0x64, 0x79, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x10, 0xac, 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74,
0x4f, 0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74,
0x10, 0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74,
0x4c, 0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xf9,
0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x73,
0x57, 0x6f, 0x72, 0x6e, 0x10, 0xfa, 0x0a, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x71, 0x75, 0x69, 0x70,
0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xfb, 0x0a,
0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46,
0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x15, 0x0a,
0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65,
0x64, 0x10, 0xdd, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65,
0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xde, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x4d,
0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75,
0x6e, 0x64, 0x10, 0xdf, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e,
0x65, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe0, 0x0b,
0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6d, 0x70,
0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe1, 0x0b, 0x12, 0x0d, 0x0a,
0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x0c, 0x12, 0x0e, 0x0a, 0x09,
0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, 0xc1, 0x0c, 0x12, 0x0f, 0x0a, 0x0a,
0x54, 0x61, 0x73, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0xc2, 0x0c, 0x12, 0x11, 0x0a,
0x0c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xc3, 0x0c,
0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e,
0x69, 0x74, 0x10, 0xc4, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74,
0x69, 0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc5, 0x0c, 0x12, 0x17, 0x0a,
0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x65, 0x6e, 0x6f,
0x75, 0x67, 0x68, 0x10, 0xc6, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f,
0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc7, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54,
0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc8, 0x0c, 0x12, 0x11,
0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xc9,
0x0c, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79,
0x10, 0xca, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f,
0x75, 0x6e, 0x64, 0x10, 0xcb, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x70, 0x47, 0x6f,
0x6f, 0x64, 0x73, 0x49, 0x73, 0x53, 0x6f, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x10, 0xa4, 0x0d, 0x12,
0x1c, 0x0a, 0x17, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x6f, 0x53, 0x75, 0x72, 0x70, 0x6c, 0x75, 0x73,
0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x10, 0xa5, 0x0d, 0x12, 0x0c, 0x0a,
0x07, 0x4d, 0x61, 0x69, 0x6c, 0x45, 0x72, 0x72, 0x10, 0x88, 0x0e, 0x12, 0x13, 0x0a, 0x0e, 0x50,
0x61, 0x67, 0x6f, 0x64, 0x61, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xec, 0x0e,
0x12, 0x12, 0x0a, 0x0d, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4c, 0x65, 0x76, 0x6c, 0x45, 0x72,
0x72, 0x10, 0xed, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x47, 0x65,
0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x72, 0x72, 0x10, 0xee, 0x0e, 0x12, 0x17, 0x0a,
0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x45, 0x72, 0x72, 0x10, 0xef, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61,
0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64,
0x10, 0xd0, 0x0f, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61,
0x6c, 0x6c, 0x49, 0x6e, 0x55, 0x73, 0x65, 0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61,
0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65,
0x64, 0x10, 0xd2, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68,
0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd3, 0x0f,
0x12, 0x19, 0x0a, 0x14, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f,
0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47,
0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76,
0x10, 0xb6, 0x10, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69,
0x73, 0x68, 0x65, 0x64, 0x10, 0x99, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b,
0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x9a, 0x11, 0x12, 0x11, 0x0a,
0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x10, 0x9b, 0x11,
0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65,
0x64, 0x10, 0x9c, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65,
0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52,
0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68,
0x10, 0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61,
0x73, 0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73,
0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11,
0x12, 0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10,
0xfd, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73,
0x54, 0x79, 0x70, 0x65, 0x10, 0xfe, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e,
0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12,
0x1c, 0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c,
0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a,
0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x45,
0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f,
0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2,
0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79,
0x44, 0x61, 0x72, 0x65, 0x55, 0x70, 0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f,
0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f,
0x45, 0x6e, 0x64, 0x10, 0xe4, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61,
0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e,
0x10, 0xe5, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x46,
0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x12, 0x1a, 0x0a,
0x15, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69,
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x6e,
0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e,
0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xaa, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65,
0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
0x64, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xab, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e,
0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46,
0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xac, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x75,
0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x8d, 0x15, 0x12, 0x14, 0x0a,
0x0f, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65,
0x10, 0x8e, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x75,
0x79, 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,
0x75, 0x6c, 0x6c, 0x10, 0xf4, 0x07, 0x12, 0x14, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78,
0x70, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf5, 0x07, 0x12, 0x17, 0x0a, 0x12,
0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75,
0x67, 0x68, 0x10, 0xf6, 0x07, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e,
0x6f, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xcc, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69,
0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14, 0x0a,
0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x78,
0x10, 0xce, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c,
0x66, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xcf, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72,
0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61,
0x10, 0xd0, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65, 0x74,
0x10, 0xd1, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70,
0x6c, 0x79, 0x59, 0x65, 0x74, 0x10, 0xd2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65,
0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd3,
0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65,
0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a, 0x10,
0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72,
0x10, 0xd5, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61,
0x63, 0x6b, 0x4d, 0x61, 0x78, 0x10, 0xd6, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65,
0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74,
0x79, 0x10, 0xd7, 0x08, 0x12, 0x10, 0x0a, 0x0b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61,
0x6e, 0x65, 0x64, 0x10, 0xd8, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xd9, 0x08, 0x12, 0x12,
0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x10,
0xda, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e,
0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xdb, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69,
0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xdc, 0x08,
0x12, 0x12, 0x0a, 0x0d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67,
0x68, 0x10, 0xb0, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x46,
0x6f, 0x75, 0x6e, 0x64, 0x47, 0x69, 0x72, 0x64, 0x10, 0xb1, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49,
0x74, 0x65, 0x6d, 0x73, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x55, 0x70, 0x70, 0x65, 0x72,
0x10, 0xb2, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x69, 0x72, 0x64,
0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb3, 0x09, 0x12, 0x19,
0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70,
0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x10, 0xb4, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65,
0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xb5,
0x09, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x78, 0x69, 0x73, 0x74,
0x10, 0x94, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, 0x6f,
0x75, 0x67, 0x68, 0x10, 0x95, 0x0a, 0x12, 0x0e, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61,
0x78, 0x4c, 0x76, 0x10, 0x96, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x6e,
0x69, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x10, 0x97, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65,
0x72, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x10, 0x98, 0x0a, 0x12, 0x13, 0x0a,
0x0e, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x70, 0x45, 0x72, 0x72, 0x10,
0x99, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x73,
0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9a, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f,
0x4e, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9b, 0x0a, 0x12, 0x18, 0x0a,
0x13, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f,
0x6e, 0x61, 0x74, 0x65, 0x10, 0x9c, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e,
0x6f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x9d, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65,
0x72, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10, 0x9e, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48,
0x65, 0x72, 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x9f,
0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x41, 0x77, 0x61, 0x6b,
0x65, 0x6e, 0x10, 0xa0, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, 0x4c,
0x6f, 0x63, 0x6b, 0x10, 0xa1, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61,
0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xa2, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72,
0x6f, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa3, 0x0a, 0x12,
0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x45, 0x72, 0x72, 0x10, 0xa4,
0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72,
0x10, 0xa5, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x54, 0x79,
0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa6, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f,
0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x45, 0x78, 0x70, 0x10, 0xa7, 0x0a, 0x12, 0x12, 0x0a, 0x0d,
0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xa8, 0x0a,
0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x61, 0x72, 0x4c,
0x76, 0x10, 0xa9, 0x0a, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64,
0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xaa, 0x0a, 0x12,
0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c,
0x76, 0x10, 0xab, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x6c, 0x72, 0x65,
0x61, 0x64, 0x79, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10,
0xac, 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4f,
0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x10,
0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4c,
0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xf9, 0x0a,
0x12, 0x14, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x73, 0x57,
0x6f, 0x72, 0x6e, 0x10, 0xfa, 0x0a, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d,
0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xfb, 0x0a, 0x12,
0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x69,
0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x15, 0x0a, 0x10,
0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64,
0x10, 0xdd, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e,
0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xde, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61,
0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e,
0x64, 0x10, 0xdf, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65,
0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe0, 0x0b, 0x12,
0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c,
0x65, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe1, 0x0b, 0x12, 0x0d, 0x0a, 0x08,
0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x0c, 0x12, 0x0e, 0x0a, 0x09, 0x54,
0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, 0xc1, 0x0c, 0x12, 0x0f, 0x0a, 0x0a, 0x54,
0x61, 0x73, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0xc2, 0x0c, 0x12, 0x11, 0x0a, 0x0c,
0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xc3, 0x0c, 0x12,
0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x69,
0x74, 0x10, 0xc4, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69,
0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc5, 0x0c, 0x12, 0x17, 0x0a, 0x12,
0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x65, 0x6e, 0x6f, 0x75,
0x67, 0x68, 0x10, 0xc6, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46,
0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc7, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61,
0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc8, 0x0c, 0x12, 0x11, 0x0a,
0x0c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xc9, 0x0c,
0x12, 0x10, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10,
0xca, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75,
0x6e, 0x64, 0x10, 0xcb, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x70, 0x47, 0x6f, 0x6f,
0x64, 0x73, 0x49, 0x73, 0x53, 0x6f, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x10, 0xa4, 0x0d, 0x12, 0x1c,
0x0a, 0x17, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x6f, 0x53, 0x75, 0x72, 0x70, 0x6c, 0x75, 0x73, 0x52,
0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x10, 0xa5, 0x0d, 0x12, 0x0c, 0x0a, 0x07,
0x4d, 0x61, 0x69, 0x6c, 0x45, 0x72, 0x72, 0x10, 0x88, 0x0e, 0x12, 0x13, 0x0a, 0x0e, 0x50, 0x61,
0x67, 0x6f, 0x64, 0x61, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xec, 0x0e, 0x12,
0x12, 0x0a, 0x0d, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4c, 0x65, 0x76, 0x6c, 0x45, 0x72, 0x72,
0x10, 0xed, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x47, 0x65, 0x74,
0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x72, 0x72, 0x10, 0xee, 0x0e, 0x12, 0x17, 0x0a, 0x12,
0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45,
0x72, 0x72, 0x10, 0xef, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c,
0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10,
0xd0, 0x0f, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c,
0x6c, 0x49, 0x6e, 0x55, 0x73, 0x65, 0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x72,
0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64,
0x10, 0xd2, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61,
0x6c, 0x6c, 0x4e, 0x6f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd3, 0x0f, 0x12,
0x19, 0x0a, 0x14, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f, 0x72,
0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47, 0x6f,
0x75, 0x72, 0x6d, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10,
0xb6, 0x10, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73,
0x68, 0x65, 0x64, 0x10, 0x99, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x55,
0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x9a, 0x11, 0x12, 0x11, 0x0a, 0x0c,
0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x10, 0x9b, 0x11, 0x12,
0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64,
0x10, 0x9c, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65, 0x4e,
0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74,
0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x10,
0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61, 0x73,
0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b,
0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11, 0x12,
0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xfd,
0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54,
0x79, 0x70, 0x65, 0x10, 0xfe, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67,
0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12, 0x1c,
0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c,
0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a, 0x15,
0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x45, 0x78,
0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e,
0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, 0x12,
0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x44,
0x61, 0x72, 0x65, 0x55, 0x70, 0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e,
0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x45,
0x6e, 0x64, 0x10, 0xe4, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e,
0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, 0x10,
0xe5, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x46, 0x6f,
0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x12, 0x1a, 0x0a, 0x15,
0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e,
0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x6e, 0x65,
0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69,
0x73, 0x68, 0x65, 0x64, 0x10, 0xaa, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, 0x73,
0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64,
0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xab, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65,
0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69,
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xac, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x75, 0x6e,
0x74, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x8d, 0x15, 0x12, 0x14, 0x0a, 0x0f,
0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10,
0x8e, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79,
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 (

View File

@ -1592,6 +1592,100 @@ func (x *HeroChangePush) GetList() []*DBHero {
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_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,
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,
0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x48, 0x65,
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 (
@ -1751,7 +1851,7 @@ func file_hero_hero_msg_proto_rawDescGZIP() []byte {
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{}{
(*HeroInfoReq)(nil), // 0: HeroInfoReq
(*HeroInfoResp)(nil), // 1: HeroInfoResp
@ -1783,30 +1883,32 @@ var file_hero_hero_msg_proto_goTypes = []interface{}{
(*HeroDrawCardReq)(nil), // 27: HeroDrawCardReq
(*HeroDrawCardResp)(nil), // 28: HeroDrawCardResp
(*HeroChangePush)(nil), // 29: HeroChangePush
nil, // 30: HeroPropertyPush.PropertyEntry
nil, // 31: HeroPropertyPush.AddPropertyEntry
(*DBHero)(nil), // 32: DBHero
(*HeroDrawCardFloorReq)(nil), // 30: HeroDrawCardFloorReq
(*HeroDrawCardFloorResp)(nil), // 31: HeroDrawCardFloorResp
nil, // 32: HeroPropertyPush.PropertyEntry
nil, // 33: HeroPropertyPush.AddPropertyEntry
(*DBHero)(nil), // 34: DBHero
}
var file_hero_hero_msg_proto_depIdxs = []int32{
32, // 0: HeroInfoResp.base:type_name -> DBHero
32, // 1: HeroListResp.list:type_name -> DBHero
34, // 0: HeroInfoResp.base:type_name -> DBHero
34, // 1: HeroListResp.list:type_name -> DBHero
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, // 5: HeroStrengthenUpStarReq.heroRace:type_name -> CostCardData
32, // 6: HeroStrengthenUpStarResp.hero:type_name -> DBHero
32, // 7: HeroStrengthenUpSkillResp.hero:type_name -> DBHero
32, // 8: HeroResonanceResp.hero:type_name -> DBHero
32, // 9: HeroResonanceResp.upStarCard:type_name -> DBHero
32, // 10: HeroResonanceResetResp.hero:type_name -> DBHero
34, // 6: HeroStrengthenUpStarResp.hero:type_name -> DBHero
34, // 7: HeroStrengthenUpSkillResp.hero:type_name -> DBHero
34, // 8: HeroResonanceResp.hero:type_name -> DBHero
34, // 9: HeroResonanceResp.upStarCard:type_name -> DBHero
34, // 10: HeroResonanceResetResp.hero:type_name -> DBHero
17, // 11: HeroResonanceUseEnergyReq.energy:type_name -> EnergyData
32, // 12: HeroResonanceUseEnergyResp.hero:type_name -> DBHero
32, // 13: HeroAwakenResp.hero:type_name -> DBHero
30, // 14: HeroPropertyPush.property:type_name -> HeroPropertyPush.PropertyEntry
31, // 15: HeroPropertyPush.addProperty:type_name -> HeroPropertyPush.AddPropertyEntry
32, // 16: HeroLockResp.hero:type_name -> DBHero
32, // 17: HeroGetSpecifiedResp.hero:type_name -> DBHero
32, // 18: HeroChangePush.list:type_name -> DBHero
34, // 12: HeroResonanceUseEnergyResp.hero:type_name -> DBHero
34, // 13: HeroAwakenResp.hero:type_name -> DBHero
32, // 14: HeroPropertyPush.property:type_name -> HeroPropertyPush.PropertyEntry
33, // 15: HeroPropertyPush.addProperty:type_name -> HeroPropertyPush.AddPropertyEntry
34, // 16: HeroLockResp.hero:type_name -> DBHero
34, // 17: HeroGetSpecifiedResp.hero: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 input_type
19, // [19:19] is the sub-list for extension type_name
@ -2181,6 +2283,30 @@ func file_hero_hero_msg_proto_init() {
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{}
out := protoimpl.TypeBuilder{
@ -2188,7 +2314,7 @@ func file_hero_hero_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_hero_hero_msg_proto_rawDesc,
NumEnums: 0,
NumMessages: 32,
NumMessages: 34,
NumExtensions: 0,
NumServices: 0,
},

View File

@ -726,6 +726,92 @@ func (x *RtaskBattleFinishResp) GetIsWin() bool {
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 {
state protoimpl.MessageState
@ -740,7 +826,7 @@ type RtaskTestReq struct {
func (x *RtaskTestReq) Reset() {
*x = RtaskTestReq{}
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.StoreMessageInfo(mi)
}
@ -753,7 +839,7 @@ func (x *RtaskTestReq) String() string {
func (*RtaskTestReq) ProtoMessage() {}
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 {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -766,7 +852,7 @@ func (x *RtaskTestReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use RtaskTestReq.ProtoReflect.Descriptor instead.
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 {
@ -801,7 +887,7 @@ type RtaskTestResp struct {
func (x *RtaskTestResp) Reset() {
*x = RtaskTestResp{}
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.StoreMessageInfo(mi)
}
@ -814,7 +900,7 @@ func (x *RtaskTestResp) String() string {
func (*RtaskTestResp) ProtoMessage() {}
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 {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -827,7 +913,7 @@ func (x *RtaskTestResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use RtaskTestResp.ProtoReflect.Descriptor instead.
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 {
@ -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,
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,
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,
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,
0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x72,
0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61,
0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f,
0x72, 0x74, 0x22, 0x47, 0x0a, 0x15, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 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, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65,
0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x47, 0x0a, 0x15,
0x52, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73,
0x68, 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,
0x14, 0x0a, 0x05, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
0x69, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x5e, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65,
0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79,
0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54,
0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63,
0x6f, 0x6e, 0x64, 0x69, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f,
0x6e, 0x64, 0x69, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65,
0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01,
0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x02,
0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x13, 0x0a, 0x11, 0x52,
0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71,
0x22, 0x3c, 0x0a, 0x12, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x72, 0x65, 0x63, 0x6f,
0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x52, 0x74, 0x61, 0x73, 0x6b,
0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x5e,
0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c,
0x0a, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06,
0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61,
0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x49, 0x64, 0x18,
0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x49, 0x64, 0x22, 0x23,
0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12,
0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66,
0x6c, 0x61, 0x67, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
}
var (
@ -926,7 +1019,7 @@ func file_rtask_rtask_msg_proto_rawDescGZIP() []byte {
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{}{
(*RtaskApplyReq)(nil), // 0: RtaskApplyReq
(*RtaskApplyResp)(nil), // 1: RtaskApplyResp
@ -941,19 +1034,23 @@ var file_rtask_rtask_msg_proto_goTypes = []interface{}{
(*RtaskBattleStartResp)(nil), // 10: RtaskBattleStartResp
(*RtaskBattleFinishReq)(nil), // 11: RtaskBattleFinishReq
(*RtaskBattleFinishResp)(nil), // 12: RtaskBattleFinishResp
(*RtaskTestReq)(nil), // 13: RtaskTestReq
(*RtaskTestResp)(nil), // 14: RtaskTestResp
(*BattleInfo)(nil), // 15: BattleInfo
(*BattleReport)(nil), // 16: BattleReport
(*RtaskGetrecordReq)(nil), // 13: RtaskGetrecordReq
(*RtaskGetrecordResp)(nil), // 14: RtaskGetrecordResp
(*RtaskTestReq)(nil), // 15: RtaskTestReq
(*RtaskTestResp)(nil), // 16: RtaskTestResp
(*BattleInfo)(nil), // 17: BattleInfo
(*BattleReport)(nil), // 18: BattleReport
(*DBRtaskRecord)(nil), // 19: DBRtaskRecord
}
var file_rtask_rtask_msg_proto_depIdxs = []int32{
15, // 0: RtaskBattleStartResp.info:type_name -> BattleInfo
16, // 1: RtaskBattleFinishReq.report:type_name -> BattleReport
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
17, // 0: RtaskBattleStartResp.info:type_name -> BattleInfo
18, // 1: RtaskBattleFinishReq.report:type_name -> BattleReport
19, // 2: RtaskGetrecordResp.record:type_name -> DBRtaskRecord
3, // [3:3] is the sub-list for method output_type
3, // [3:3] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension 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() }
@ -962,6 +1059,7 @@ func file_rtask_rtask_msg_proto_init() {
return
}
file_battle_battle_msg_proto_init()
file_rtask_rtask_db_proto_init()
if !protoimpl.UnsafeEnabled {
file_rtask_rtask_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
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{} {
switch v := v.(*RtaskTestReq); i {
switch v := v.(*RtaskGetrecordReq); i {
case 0:
return &v.state
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{} {
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 {
case 0:
return &v.state
@ -1150,7 +1272,7 @@ func file_rtask_rtask_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_rtask_rtask_msg_proto_rawDesc,
NumEnums: 0,
NumMessages: 15,
NumMessages: 17,
NumExtensions: 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 {
Debug bool
}
func (this *CompOptions) LoadConfig(settings map[string]interface{}) (err error) {
@ -165,16 +164,14 @@ func (this *SCompGateRoute) ReceiveMsg(ctx context.Context, args *pb.AgentMessag
)
} else {
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.Debug("[Handle Api]",
log.Field{Key: "t", Value: time.Since(stime).Milliseconds()},
log.Field{Key: "m", Value: method},
log.Field{Key: "uid", Value: args.UserId},
log.Field{Key: "req", Value: msg},
log.Field{Key: "reply", Value: reply.String()},
)
}
// 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.Field{Key: "t", Value: time.Since(stime).Milliseconds()},
log.Field{Key: "m", Value: method},
log.Field{Key: "uid", Value: args.UserId},
log.Field{Key: "req", Value: msg},
log.Field{Key: "reply", Value: reply.String()},
)
}
} else { //未找到消息处理函数
log.Errorf("[Handle Api] no found handle %s", method)

View File

@ -24,6 +24,7 @@ type GameMainlineData struct {
CaptainId string
Battlescene string
Award []*Gameatn
Exp int32
Title string
Desc string
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["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
ObjType int32
Location string
Modelaction string
Modelstate int32
Rotation serialization.Vector3
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
Timeline string
ChooseId []int32
StoryEnd int32
NextTid int32
Reward []*GameChooseReward
CD int32
EndTid int32
StoryEnd int32
Reward []*GameChooseReward
NextTid int32
CD int32
}
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["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.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; 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 _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_) }
@ -48,8 +112,12 @@ func (_v *GameRdtaskSideData)Deserialize(_buf map[string]interface{}) (err error
_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; if _v.Timeline, _ok_ = _buf["timeline"].(string); !_ok_ { err = errors.New("timeline error"); return } }
{
var _arr_ []interface{}
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["nextTid"].(float64); !_ok_ { err = errors.New("nextTid error"); return }; _v.NextTid = int32(_tempNum_) }
{
var _arr_ []interface{}
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["endTid"].(float64); !_ok_ { err = errors.New("endTid error"); return }; _v.EndTid = int32(_tempNum_) }
return
}

View File

@ -24,7 +24,6 @@ type GameHeroResonanceData struct {
Atkscale int32
Defscale int32
Maxnum int32
RecommendPercentage []int32
}
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["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 _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
}

View File

@ -16,6 +16,7 @@ type GameModelData struct {
Preson string
Presonshow string
Presonstory string
Presondraw string
Height float32
Weight float32
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.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.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["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 } }

View File

@ -14,6 +14,10 @@ type GameRdtaskChooseData struct {
Id int32
Num int32
PreTid int32
Entity []string
EntityChange []string
EntityStateChange []string
EntityInteractive []bool
GotoLevel int32
NeedItem []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["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 _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 _arr_ []interface{}

View File

@ -1,13 +1,19 @@
package db
import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/lego/utils/codec/json"
"io/ioutil"
"os"
"sync"
)
func newSys(options *Options) (sys *DB, err error) {
sys = &DB{
options: options,
servers: make(map[string]*DBConn),
data: make(map[string]*ModelDataExpired),
}
if err = sys.init(); err != nil {
@ -26,25 +32,72 @@ type DB struct {
}
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
}
if this.options.Cross.Enabled {
if this.cross, err = newDBConn(this.options.Cross); err != nil {
err = this.readercrossconf(this.options.CrossConfig)
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 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
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
}
func (this *DB) Local() *DBConn {
if this.local == nil {
log.Panic("LocalDBConn on init")

View File

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