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

This commit is contained in:
meixiongfeng 2023-06-26 20:11:04 +08:00
commit 239c1756ff
21 changed files with 1789 additions and 3200 deletions

608
bin/json/game_cardpool.json Normal file
View File

@ -0,0 +1,608 @@
[
{
"key": 1,
"card_pool_type": "base_pool1",
"id": "24004",
"weight": 1000
},
{
"key": 2,
"card_pool_type": "base_pool1",
"id": "24004",
"weight": 1000
},
{
"key": 3,
"card_pool_type": "base_pool1",
"id": "24004",
"weight": 1000
},
{
"key": 4,
"card_pool_type": "base_pool2",
"id": "25001",
"weight": 1000
},
{
"key": 5,
"card_pool_type": "base_pool2",
"id": "25001",
"weight": 1000
},
{
"key": 6,
"card_pool_type": "base_pool2",
"id": "25001",
"weight": 1000
},
{
"key": 7,
"card_pool_type": "base_pool3",
"id": "25004",
"weight": 1000
},
{
"key": 8,
"card_pool_type": "base_pool3",
"id": "25004",
"weight": 1000
},
{
"key": 9,
"card_pool_type": "base_pool3",
"id": "25004",
"weight": 1000
},
{
"key": 10,
"card_pool_type": "base_pool4",
"id": "24008",
"weight": 1000
},
{
"key": 11,
"card_pool_type": "base_pool4",
"id": "24008",
"weight": 1000
},
{
"key": 12,
"card_pool_type": "base_pool4",
"id": "24008",
"weight": 1000
},
{
"key": 13,
"card_pool_type": "base_pool5",
"id": "24003",
"weight": 1000
},
{
"key": 14,
"card_pool_type": "base_pool5",
"id": "24003",
"weight": 1000
},
{
"key": 15,
"card_pool_type": "base_pool5",
"id": "24003",
"weight": 1000
},
{
"key": 16,
"card_pool_type": "base_pool6",
"id": "15005",
"weight": 1000
},
{
"key": 17,
"card_pool_type": "base_pool6",
"id": "15005",
"weight": 1000
},
{
"key": 18,
"card_pool_type": "base_pool6",
"id": "15005",
"weight": 1000
},
{
"key": 19,
"card_pool_type": "base_pool7",
"id": "24004",
"weight": 1000
},
{
"key": 20,
"card_pool_type": "base_pool7",
"id": "25001",
"weight": 1000
},
{
"key": 21,
"card_pool_type": "base_pool7",
"id": "25004",
"weight": 1000
},
{
"key": 22,
"card_pool_type": "base_pool7",
"id": "24008",
"weight": 1000
},
{
"key": 23,
"card_pool_type": "base_pool7",
"id": "24003",
"weight": 1000
},
{
"key": 24,
"card_pool_type": "base_pool7",
"id": "15005",
"weight": 1000
},
{
"key": 25,
"card_pool_type": "base_pool7",
"id": "14001",
"weight": 1000
},
{
"key": 26,
"card_pool_type": "base_pool7",
"id": "14003",
"weight": 1000
},
{
"key": 27,
"card_pool_type": "base_pool7",
"id": "34006",
"weight": 1000
},
{
"key": 28,
"card_pool_type": "base_pool7",
"id": "34002",
"weight": 1000
},
{
"key": 29,
"card_pool_type": "base_pool7",
"id": "24002",
"weight": 1000
},
{
"key": 30,
"card_pool_type": "base_pool7",
"id": "35001",
"weight": 1000
},
{
"key": 31,
"card_pool_type": "base_pool7",
"id": "15004",
"weight": 1000
},
{
"key": 32,
"card_pool_type": "base_pool7",
"id": "44005",
"weight": 1000
},
{
"key": 33,
"card_pool_type": "base_pool7",
"id": "44006",
"weight": 1000
},
{
"key": 54,
"card_pool_type": "camp1_pool",
"id": "13001",
"weight": 1000
},
{
"key": 55,
"card_pool_type": "camp1_pool",
"id": "13002",
"weight": 1000
},
{
"key": 56,
"card_pool_type": "camp1_pool",
"id": "13003",
"weight": 1000
},
{
"key": 57,
"card_pool_type": "camp1_pool",
"id": "13004",
"weight": 1000
},
{
"key": 58,
"card_pool_type": "camp1_pool",
"id": "13005",
"weight": 1000
},
{
"key": 59,
"card_pool_type": "camp1_pool",
"id": "14001",
"weight": 1000
},
{
"key": 60,
"card_pool_type": "camp1_pool",
"id": "14002",
"weight": 1000
},
{
"key": 61,
"card_pool_type": "camp1_pool",
"id": "14003",
"weight": 1000
},
{
"key": 62,
"card_pool_type": "camp1_pool",
"id": "14004",
"weight": 1000
},
{
"key": 63,
"card_pool_type": "camp1_pool",
"id": "14005",
"weight": 1000
},
{
"key": 64,
"card_pool_type": "camp1_pool",
"id": "14006",
"weight": 1000
},
{
"key": 65,
"card_pool_type": "camp1_pool",
"id": "14007",
"weight": 1000
},
{
"key": 66,
"card_pool_type": "camp1_pool",
"id": "15001",
"weight": 1000
},
{
"key": 67,
"card_pool_type": "camp1_pool",
"id": "15002",
"weight": 1000
},
{
"key": 68,
"card_pool_type": "camp1_pool",
"id": "15003",
"weight": 1000
},
{
"key": 69,
"card_pool_type": "camp1_pool",
"id": "15004",
"weight": 1000
},
{
"key": 70,
"card_pool_type": "camp2_pool",
"id": "23001",
"weight": 1000
},
{
"key": 71,
"card_pool_type": "camp2_pool",
"id": "23002",
"weight": 1000
},
{
"key": 72,
"card_pool_type": "camp2_pool",
"id": "23003",
"weight": 1000
},
{
"key": 73,
"card_pool_type": "camp2_pool",
"id": "23004",
"weight": 1000
},
{
"key": 74,
"card_pool_type": "camp2_pool",
"id": "24001",
"weight": 1000
},
{
"key": 75,
"card_pool_type": "camp2_pool",
"id": "24002",
"weight": 1000
},
{
"key": 76,
"card_pool_type": "camp2_pool",
"id": "24003",
"weight": 1000
},
{
"key": 77,
"card_pool_type": "camp2_pool",
"id": "24004",
"weight": 1000
},
{
"key": 78,
"card_pool_type": "camp2_pool",
"id": "24005",
"weight": 1000
},
{
"key": 79,
"card_pool_type": "camp2_pool",
"id": "24006",
"weight": 1000
},
{
"key": 80,
"card_pool_type": "camp2_pool",
"id": "24007",
"weight": 1000
},
{
"key": 81,
"card_pool_type": "camp2_pool",
"id": "24008",
"weight": 1000
},
{
"key": 82,
"card_pool_type": "camp2_pool",
"id": "24009",
"weight": 1000
},
{
"key": 83,
"card_pool_type": "camp2_pool",
"id": "25001",
"weight": 1000
},
{
"key": 84,
"card_pool_type": "camp2_pool",
"id": "25002",
"weight": 1000
},
{
"key": 85,
"card_pool_type": "camp2_pool",
"id": "25003",
"weight": 1000
},
{
"key": 86,
"card_pool_type": "camp2_pool",
"id": "25004",
"weight": 1000
},
{
"key": 87,
"card_pool_type": "camp3_pool",
"id": "33001",
"weight": 1000
},
{
"key": 88,
"card_pool_type": "camp3_pool",
"id": "33002",
"weight": 1000
},
{
"key": 89,
"card_pool_type": "camp3_pool",
"id": "33003",
"weight": 1000
},
{
"key": 90,
"card_pool_type": "camp3_pool",
"id": "33004",
"weight": 1000
},
{
"key": 91,
"card_pool_type": "camp3_pool",
"id": "33005",
"weight": 1000
},
{
"key": 92,
"card_pool_type": "camp3_pool",
"id": "33006",
"weight": 1000
},
{
"key": 93,
"card_pool_type": "camp3_pool",
"id": "34001",
"weight": 1000
},
{
"key": 94,
"card_pool_type": "camp3_pool",
"id": "34002",
"weight": 1000
},
{
"key": 95,
"card_pool_type": "camp3_pool",
"id": "34003",
"weight": 1000
},
{
"key": 96,
"card_pool_type": "camp3_pool",
"id": "34004",
"weight": 1000
},
{
"key": 97,
"card_pool_type": "camp3_pool",
"id": "34005",
"weight": 1000
},
{
"key": 98,
"card_pool_type": "camp3_pool",
"id": "34006",
"weight": 1000
},
{
"key": 99,
"card_pool_type": "camp3_pool",
"id": "34007",
"weight": 1000
},
{
"key": 100,
"card_pool_type": "camp3_pool",
"id": "34008",
"weight": 1000
},
{
"key": 101,
"card_pool_type": "camp3_pool",
"id": "35002",
"weight": 1000
},
{
"key": 102,
"card_pool_type": "camp3_pool",
"id": "35003",
"weight": 1000
},
{
"key": 103,
"card_pool_type": "camp3_pool",
"id": "35004",
"weight": 1000
},
{
"key": 104,
"card_pool_type": "camp3_pool",
"id": "35005",
"weight": 1000
},
{
"key": 105,
"card_pool_type": "camp3_pool",
"id": "35006",
"weight": 1000
},
{
"key": 106,
"card_pool_type": "camp4_pool",
"id": "43001",
"weight": 1000
},
{
"key": 107,
"card_pool_type": "camp4_pool",
"id": "43002",
"weight": 1000
},
{
"key": 108,
"card_pool_type": "camp4_pool",
"id": "43003",
"weight": 1000
},
{
"key": 109,
"card_pool_type": "camp4_pool",
"id": "43004",
"weight": 1000
},
{
"key": 110,
"card_pool_type": "camp4_pool",
"id": "43005",
"weight": 1000
},
{
"key": 111,
"card_pool_type": "camp4_pool",
"id": "43006",
"weight": 1000
},
{
"key": 112,
"card_pool_type": "camp4_pool",
"id": "43007",
"weight": 1000
},
{
"key": 113,
"card_pool_type": "camp4_pool",
"id": "44001",
"weight": 1000
},
{
"key": 114,
"card_pool_type": "camp4_pool",
"id": "44002",
"weight": 1000
},
{
"key": 115,
"card_pool_type": "camp4_pool",
"id": "44003",
"weight": 1000
},
{
"key": 116,
"card_pool_type": "camp4_pool",
"id": "44004",
"weight": 1000
},
{
"key": 117,
"card_pool_type": "camp4_pool",
"id": "44006",
"weight": 1000
},
{
"key": 118,
"card_pool_type": "camp4_pool",
"id": "45001",
"weight": 1000
},
{
"key": 119,
"card_pool_type": "camp4_pool",
"id": "45002",
"weight": 1000
},
{
"key": 120,
"card_pool_type": "camp4_pool",
"id": "45003",
"weight": 1000
},
{
"key": 121,
"card_pool_type": "camp4_pool",
"id": "45004",
"weight": 1000
}
]

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,32 @@
[ [
{ {
"key": 1, "key": 1,
"recruitment_type": [], "recruitment_type": [
"star3w": 940, {
"star4w": 52, "k": 3,
"star5w": 8, "s": "base_pool1"
"protect": 100, },
"p3pool": "pro_pool20003", {
"p4pool": "pro_pool20004", "k": 6,
"p5pool": "pro_pool20005", "s": "base_pool1"
"n3pool": "base_pool20003", },
"n4pool": "base_pool20004", {
"n5pool": "base_pool20005", "k": 9,
"s": "base_pool1"
}
],
"star3w": 900,
"star4w": 94,
"star5w": 6,
"protect": 0,
"p3pool": "base_pool5",
"p4pool": "base_pool6",
"p5pool": "base_pool7",
"n3pool": "base_pool5",
"n4pool": "base_pool6",
"n5pool": "base_pool7",
"baodi4": 10, "baodi4": 10,
"baidi5": 100, "baidi5": 90,
"etime": -1, "etime": -1,
"permission": 1, "permission": 1,
"consumeA": [ "consumeA": [
@ -25,9 +38,9 @@
], ],
"consumeB": [ "consumeB": [
{ {
"a": "attr", "a": "item",
"t": "diamond", "t": "10000001",
"n": 200 "n": 10
} }
] ]
}, },
@ -35,168 +48,179 @@
"key": 2, "key": 2,
"recruitment_type": [ "recruitment_type": [
{ {
"k": 1, "k": 3,
"s": "inevitable_10001" "s": "base_pool1"
}, },
{ {
"k": 10, "k": 6,
"s": "inevitable_10010" "s": "base_pool1"
},
{
"k": 9,
"s": "base_pool1"
} }
], ],
"star3w": 940, "star3w": 900,
"star4w": 52, "star4w": 94,
"star5w": 8, "star5w": 6,
"protect": 100, "protect": 50,
"p3pool": "pro_pool20003", "p3pool": "base_pool6",
"p4pool": "pro_pool20004", "p4pool": "base_pool7",
"p5pool": "pro_pool20005", "p5pool": "base_pool8",
"n3pool": "base_pool20003", "n3pool": "base_pool6",
"n4pool": "base_pool20004", "n4pool": "base_pool7",
"n5pool": "base_pool20005", "n5pool": "base_pool8",
"baodi4": 10, "baodi4": 10,
"baidi5": 100, "baidi5": 0,
"etime": -1, "etime": -1,
"permission": 1, "permission": 1,
"consumeA": [ "consumeA": [
{ {
"a": "item", "a": "item",
"t": "10000001", "t": "10000001",
"n": 1 "n": 2
} }
], ],
"consumeB": [ "consumeB": [
{ {
"a": "attr", "a": "item",
"t": "diamond", "t": "10000001",
"n": 200 "n": 11
} }
] ]
}, },
{ {
"key": 3, "key": 3,
"recruitment_type": [], "recruitment_type": [
"star3w": 940, {
"star4w": 52, "k": 3,
"star5w": 8, "s": "base_pool1"
"protect": 100, },
"p3pool": "pro_pool30003", {
"p4pool": "pro_pool30004", "k": 6,
"p5pool": "pro_pool30005", "s": "base_pool1"
"n3pool": "base_pool30003", },
"n4pool": "base_pool30004", {
"n5pool": "base_pool30005", "k": 9,
"s": "base_pool1"
}
],
"star3w": 900,
"star4w": 94,
"star5w": 6,
"protect": 50,
"p3pool": "base_pool7",
"p4pool": "base_pool8",
"p5pool": "base_pool9",
"n3pool": "base_pool7",
"n4pool": "base_pool8",
"n5pool": "base_pool9",
"baodi4": 10, "baodi4": 10,
"baidi5": 100, "baidi5": 0,
"etime": -1, "etime": -1,
"permission": 1, "permission": 1,
"consumeA": [ "consumeA": [
{ {
"a": "item", "a": "item",
"t": "10000021", "t": "10000001",
"n": 1 "n": 3
} }
], ],
"consumeB": [ "consumeB": [
{ {
"a": "item", "a": "item",
"t": "10000031", "t": "10000001",
"n": 10 "n": 12
} }
] ]
}, },
{ {
"key": 4, "key": 4,
"recruitment_type": [], "recruitment_type": [
"star3w": 940, {
"star4w": 52, "k": 3,
"star5w": 8, "s": "base_pool1"
"protect": 100, },
"p3pool": "pro_pool40003", {
"p4pool": "pro_pool40004", "k": 6,
"p5pool": "pro_pool40005", "s": "base_pool1"
"n3pool": "base_pool40003", },
"n4pool": "base_pool40004", {
"n5pool": "base_pool40005", "k": 9,
"s": "base_pool1"
}
],
"star3w": 900,
"star4w": 94,
"star5w": 6,
"protect": 50,
"p3pool": "base_pool8",
"p4pool": "base_pool9",
"p5pool": "base_pool10",
"n3pool": "base_pool8",
"n4pool": "base_pool9",
"n5pool": "base_pool10",
"baodi4": 10, "baodi4": 10,
"baidi5": 100, "baidi5": 0,
"etime": -1, "etime": -1,
"permission": 1, "permission": 1,
"consumeA": [ "consumeA": [
{ {
"a": "item", "a": "item",
"t": "10000022", "t": "10000001",
"n": 1 "n": 4
} }
], ],
"consumeB": [ "consumeB": [
{ {
"a": "item", "a": "item",
"t": "10000032", "t": "10000001",
"n": 10 "n": 13
} }
] ]
}, },
{ {
"key": 5, "key": 5,
"recruitment_type": [], "recruitment_type": [
"star3w": 940,
"star4w": 52,
"star5w": 8,
"protect": 100,
"p3pool": "pro_pool50003",
"p4pool": "pro_pool50004",
"p5pool": "pro_pool50005",
"n3pool": "base_pool50003",
"n4pool": "base_pool50004",
"n5pool": "base_pool50005",
"baodi4": 10,
"baidi5": 100,
"etime": -1,
"permission": 1,
"consumeA": [
{ {
"a": "item", "k": 3,
"t": "10000023", "s": "base_pool1"
"n": 1
}
],
"consumeB": [
{
"a": "item",
"t": "10000033",
"n": 10
}
]
}, },
{ {
"key": 6, "k": 6,
"recruitment_type": [], "s": "base_pool1"
"star3w": 940, },
"star4w": 52, {
"star5w": 8, "k": 9,
"protect": 100, "s": "base_pool1"
"p3pool": "pro_pool50003", }
"p4pool": "pro_pool50004", ],
"p5pool": "pro_pool50005", "star3w": 900,
"n3pool": "base_pool50003", "star4w": 94,
"n4pool": "base_pool50004", "star5w": 6,
"n5pool": "base_pool50005", "protect": 50,
"p3pool": "base_pool9",
"p4pool": "base_pool10",
"p5pool": "base_pool11",
"n3pool": "base_pool9",
"n4pool": "base_pool10",
"n5pool": "base_pool11",
"baodi4": 10, "baodi4": 10,
"baidi5": 100, "baidi5": 0,
"etime": -1, "etime": -1,
"permission": 1, "permission": 1,
"consumeA": [ "consumeA": [
{ {
"a": "item", "a": "item",
"t": "10000024", "t": "10000001",
"n": 1 "n": 5
} }
], ],
"consumeB": [ "consumeB": [
{ {
"a": "item", "a": "item",
"t": "10000034", "t": "10000001",
"n": 10 "n": 14
} }
] ]
} }

View File

@ -1,402 +1,542 @@
[ [
{ {
"id": 1,
"dtype": 1,
"key": 1, "key": 1,
"weight": 0 "weight": 0
}, },
{ {
"id": 2,
"dtype": 1,
"key": 2, "key": 2,
"weight": 0 "weight": 0
}, },
{ {
"id": 3,
"dtype": 1,
"key": 3, "key": 3,
"weight": 0 "weight": 0
}, },
{ {
"id": 4,
"dtype": 1,
"key": 4, "key": 4,
"weight": 0 "weight": 0
}, },
{ {
"id": 5,
"dtype": 1,
"key": 5, "key": 5,
"weight": 0 "weight": 0
}, },
{ {
"id": 6,
"dtype": 1,
"key": 6, "key": 6,
"weight": 0 "weight": 0
}, },
{ {
"id": 7,
"dtype": 1,
"key": 7, "key": 7,
"weight": 0 "weight": 0
}, },
{ {
"id": 8,
"dtype": 1,
"key": 8, "key": 8,
"weight": 0 "weight": 0
}, },
{ {
"id": 9,
"dtype": 1,
"key": 9, "key": 9,
"weight": 0 "weight": 0
}, },
{ {
"id": 10,
"dtype": 1,
"key": 10, "key": 10,
"weight": 0 "weight": 0
}, },
{ {
"id": 11,
"dtype": 1,
"key": 11, "key": 11,
"weight": 0 "weight": 0
}, },
{ {
"id": 12,
"dtype": 1,
"key": 12, "key": 12,
"weight": 0 "weight": 0
}, },
{ {
"id": 13,
"dtype": 1,
"key": 13, "key": 13,
"weight": 0 "weight": 0
}, },
{ {
"id": 14,
"dtype": 1,
"key": 14, "key": 14,
"weight": 0 "weight": 0
}, },
{ {
"id": 15,
"dtype": 1,
"key": 15, "key": 15,
"weight": 0 "weight": 0
}, },
{ {
"id": 16,
"dtype": 1,
"key": 16, "key": 16,
"weight": 0 "weight": 0
}, },
{ {
"id": 17,
"dtype": 1,
"key": 17, "key": 17,
"weight": 0 "weight": 0
}, },
{ {
"id": 18,
"dtype": 1,
"key": 18, "key": 18,
"weight": 0 "weight": 0
}, },
{ {
"id": 19,
"dtype": 1,
"key": 19, "key": 19,
"weight": 0 "weight": 0
}, },
{ {
"id": 20,
"dtype": 1,
"key": 20, "key": 20,
"weight": 0 "weight": 0
}, },
{ {
"id": 21,
"dtype": 1,
"key": 21, "key": 21,
"weight": 0 "weight": 0
}, },
{ {
"id": 22,
"dtype": 1,
"key": 22, "key": 22,
"weight": 0 "weight": 0
}, },
{ {
"id": 23,
"dtype": 1,
"key": 23, "key": 23,
"weight": 0 "weight": 0
}, },
{ {
"id": 24,
"dtype": 1,
"key": 24, "key": 24,
"weight": 0 "weight": 0
}, },
{ {
"id": 25,
"dtype": 1,
"key": 25, "key": 25,
"weight": 0 "weight": 0
}, },
{ {
"id": 26,
"dtype": 1,
"key": 26, "key": 26,
"weight": 0 "weight": 0
}, },
{ {
"id": 27,
"dtype": 1,
"key": 27, "key": 27,
"weight": 0 "weight": 0
}, },
{ {
"id": 28,
"dtype": 1,
"key": 28, "key": 28,
"weight": 0 "weight": 0
}, },
{ {
"id": 29,
"dtype": 1,
"key": 29, "key": 29,
"weight": 0 "weight": 0
}, },
{ {
"id": 30,
"dtype": 1,
"key": 30, "key": 30,
"weight": 0 "weight": 0
}, },
{ {
"id": 31,
"dtype": 1,
"key": 31, "key": 31,
"weight": 0 "weight": 0
}, },
{ {
"id": 32,
"dtype": 1,
"key": 32, "key": 32,
"weight": 0 "weight": 0
}, },
{ {
"id": 33,
"dtype": 1,
"key": 33, "key": 33,
"weight": 0 "weight": 0
}, },
{ {
"id": 34,
"dtype": 1,
"key": 34, "key": 34,
"weight": 0 "weight": 0
}, },
{ {
"id": 35,
"dtype": 1,
"key": 35, "key": 35,
"weight": 0 "weight": 0
}, },
{ {
"id": 36,
"dtype": 1,
"key": 36, "key": 36,
"weight": 0 "weight": 0
}, },
{ {
"id": 37,
"dtype": 1,
"key": 37, "key": 37,
"weight": 0 "weight": 0
}, },
{ {
"id": 38,
"dtype": 1,
"key": 38, "key": 38,
"weight": 0 "weight": 0
}, },
{ {
"id": 39,
"dtype": 1,
"key": 39, "key": 39,
"weight": 0 "weight": 0
}, },
{ {
"id": 40,
"dtype": 1,
"key": 40, "key": 40,
"weight": 0 "weight": 0
}, },
{ {
"id": 41,
"dtype": 1,
"key": 41, "key": 41,
"weight": 0 "weight": 0
}, },
{ {
"id": 42,
"dtype": 1,
"key": 42, "key": 42,
"weight": 0 "weight": 0
}, },
{ {
"id": 43,
"dtype": 1,
"key": 43, "key": 43,
"weight": 0 "weight": 0
}, },
{ {
"id": 44,
"dtype": 1,
"key": 44, "key": 44,
"weight": 0 "weight": 0
}, },
{ {
"id": 45,
"dtype": 1,
"key": 45, "key": 45,
"weight": 0 "weight": 0
}, },
{ {
"id": 46,
"dtype": 1,
"key": 46, "key": 46,
"weight": 0 "weight": 0
}, },
{ {
"id": 47,
"dtype": 1,
"key": 47, "key": 47,
"weight": 0 "weight": 0
}, },
{ {
"id": 48,
"dtype": 1,
"key": 48, "key": 48,
"weight": 0 "weight": 0
}, },
{ {
"id": 49,
"dtype": 1,
"key": 49, "key": 49,
"weight": 0 "weight": 0
}, },
{ {
"id": 50,
"dtype": 1,
"key": 50, "key": 50,
"weight": 0 "weight": 0
}, },
{ {
"id": 51,
"dtype": 1,
"key": 51, "key": 51,
"weight": 0 "weight": 0
}, },
{ {
"id": 52,
"dtype": 1,
"key": 52, "key": 52,
"weight": 0 "weight": 0
}, },
{ {
"id": 53,
"dtype": 1,
"key": 53, "key": 53,
"weight": 0 "weight": 0
}, },
{ {
"id": 54,
"dtype": 1,
"key": 54, "key": 54,
"weight": 0 "weight": 0
}, },
{ {
"id": 55,
"dtype": 1,
"key": 55, "key": 55,
"weight": 0 "weight": 0
}, },
{ {
"id": 56,
"dtype": 1,
"key": 56, "key": 56,
"weight": 0 "weight": 0
}, },
{ {
"id": 57,
"dtype": 1,
"key": 57, "key": 57,
"weight": 0 "weight": 0
}, },
{ {
"id": 58,
"dtype": 1,
"key": 58, "key": 58,
"weight": 0 "weight": 0
}, },
{ {
"id": 59,
"dtype": 1,
"key": 59, "key": 59,
"weight": 0 "weight": 0
}, },
{ {
"id": 60,
"dtype": 1,
"key": 60, "key": 60,
"weight": 0 "weight": 0
}, },
{ {
"id": 61,
"dtype": 1,
"key": 61, "key": 61,
"weight": 0 "weight": 10
}, },
{ {
"id": 62,
"dtype": 1,
"key": 62, "key": 62,
"weight": 0 "weight": 20
}, },
{ {
"id": 63,
"dtype": 1,
"key": 63, "key": 63,
"weight": 0 "weight": 30
}, },
{ {
"id": 64,
"dtype": 1,
"key": 64, "key": 64,
"weight": 0 "weight": 40
}, },
{ {
"id": 65,
"dtype": 1,
"key": 65, "key": 65,
"weight": 0 "weight": 50
}, },
{ {
"id": 66,
"dtype": 1,
"key": 66, "key": 66,
"weight": 0 "weight": 60
}, },
{ {
"id": 67,
"dtype": 1,
"key": 67, "key": 67,
"weight": 0 "weight": 70
}, },
{ {
"id": 68,
"dtype": 1,
"key": 68, "key": 68,
"weight": 0 "weight": 80
}, },
{ {
"id": 69,
"dtype": 1,
"key": 69, "key": 69,
"weight": 0 "weight": 90
}, },
{ {
"id": 70,
"dtype": 1,
"key": 70, "key": 70,
"weight": 0 "weight": 100
}, },
{ {
"id": 71,
"dtype": 1,
"key": 71, "key": 71,
"weight": 0 "weight": 110
}, },
{ {
"id": 72,
"dtype": 1,
"key": 72, "key": 72,
"weight": 0 "weight": 120
}, },
{ {
"id": 73,
"dtype": 1,
"key": 73, "key": 73,
"weight": 0 "weight": 130
}, },
{ {
"id": 74,
"dtype": 1,
"key": 74, "key": 74,
"weight": 0 "weight": 140
}, },
{ {
"id": 75,
"dtype": 1,
"key": 75, "key": 75,
"weight": 0 "weight": 150
}, },
{ {
"id": 76,
"dtype": 1,
"key": 76, "key": 76,
"weight": 0 "weight": 160
}, },
{ {
"id": 77,
"dtype": 1,
"key": 77, "key": 77,
"weight": 0 "weight": 170
}, },
{ {
"id": 78,
"dtype": 1,
"key": 78, "key": 78,
"weight": 0 "weight": 180
}, },
{ {
"id": 79,
"dtype": 1,
"key": 79, "key": 79,
"weight": 0 "weight": 190
}, },
{ {
"id": 80,
"dtype": 1,
"key": 80, "key": 80,
"weight": 0 "weight": 200
}, },
{ {
"id": 81,
"dtype": 1,
"key": 81, "key": 81,
"weight": 2 "weight": 210
}, },
{ {
"id": 82,
"dtype": 1,
"key": 82, "key": 82,
"weight": 12 "weight": 220
}, },
{ {
"id": 83,
"dtype": 1,
"key": 83, "key": 83,
"weight": 23 "weight": 230
}, },
{ {
"id": 84,
"dtype": 1,
"key": 84, "key": 84,
"weight": 55 "weight": 240
}, },
{ {
"id": 85,
"dtype": 1,
"key": 85, "key": 85,
"weight": 127 "weight": 250
}, },
{ {
"id": 86,
"dtype": 1,
"key": 86, "key": 86,
"weight": 208 "weight": 260
}, },
{ {
"id": 87,
"dtype": 1,
"key": 87, "key": 87,
"weight": 303 "weight": 270
}, },
{ {
"id": 88,
"dtype": 1,
"key": 88, "key": 88,
"weight": 414 "weight": 280
}, },
{ {
"id": 89,
"dtype": 1,
"key": 89, "key": 89,
"weight": 546 "weight": 290
}, },
{ {
"id": 90,
"dtype": 1,
"key": 90, "key": 90,
"weight": 705 "weight": 300
},
{
"key": 91,
"weight": 901
},
{
"key": 92,
"weight": 1148
},
{
"key": 93,
"weight": 1468
},
{
"key": 94,
"weight": 1903
},
{
"key": 95,
"weight": 2523
},
{
"key": 96,
"weight": 3481
},
{
"key": 97,
"weight": 5158
},
{
"key": 98,
"weight": 8848
},
{
"key": 99,
"weight": 23608
},
{
"key": 100,
"weight": 999999
} }
] ]

View File

@ -46,104 +46,7 @@
"draw_toplimit": 9999, "draw_toplimit": 9999,
"draw10_star4_max": 8, "draw10_star4_max": 8,
"draw10_star5_max": 2, "draw10_star5_max": 2,
"draw_floor_star4": 20,
"draw_floor_star5": 100,
"duplicate_removal": 1, "duplicate_removal": 1,
"base_pool_cost": {
"a": "item",
"t": "10000001",
"n": 1
},
"camp1_pool_cost": {
"a": "item",
"t": "10000001",
"n": 1
},
"camp2_pool_cost": {
"a": "item",
"t": "10000001",
"n": 1
},
"camp3_pool_cost": {
"a": "item",
"t": "10000001",
"n": 1
},
"camp4_pool_cost": {
"a": "item",
"t": "10000001",
"n": 1
},
"base_pool_10cost": {
"a": "item",
"t": "10000001",
"n": 10
},
"camp1_pool_10cost": {
"a": "item",
"t": "10000001",
"n": 10
},
"camp2_pool_10cost": {
"a": "item",
"t": "10000001",
"n": 10
},
"camp3_pool_10cost": {
"a": "item",
"t": "10000001",
"n": 10
},
"camp4_pool_10cost": {
"a": "item",
"t": "10000001",
"n": 10
},
"camp1_pool1": "camp1_pool",
"camp2_pool1": "camp2_pool",
"camp3_pool1": "camp3_pool",
"camp4_pool1": "camp4_pool",
"base_pool1": {
"s": 1,
"e": 1,
"p": "base_pool1"
},
"base_pool2": {
"s": 2,
"e": 2,
"p": "base_pool2"
},
"base_pool3": {
"s": 3,
"e": 3,
"p": "base_pool3"
},
"base_pool4": {
"s": 4,
"e": 4,
"p": "base_pool4"
},
"base_pool5": {
"s": 5,
"e": 5,
"p": "base_pool5"
},
"base_pool6": {
"s": 6,
"e": 6,
"p": "base_pool6"
},
"base_pool7": {
"s": 7,
"e": 999999999,
"p": "base_pool7"
},
"base_pool_star3": 333,
"base_pool_star4": 333,
"base_pool_star5": 334,
"camp_pool_star3": 9500,
"camp_pool_star4": 900,
"camp_pool_star5": 100,
"gourmet": 36000, "gourmet": 36000,
"smithy_maxplayer": 20, "smithy_maxplayer": 20,
"smithy_maxtime": 36000, "smithy_maxtime": 36000,
@ -390,17 +293,6 @@
7, 7,
10 10
], ],
"DrawCard_5StarsInRange": [
1,
29,
5
],
"DrawCard_5StarsInRange1": [
30,
49,
5
],
"DrawCard_5StarsInRange1_pool": "base_pool7",
"DrawCard_ContinuousRestriction_Star5": 20, "DrawCard_ContinuousRestriction_Star5": 20,
"DrawCard_ContinuousRestriction_Camp": 2, "DrawCard_ContinuousRestriction_Camp": 2,
"EquipmentConsumption": [ "EquipmentConsumption": [

View File

@ -19,7 +19,7 @@
"id": 2, "id": 2,
"txt": { "txt": {
"key": "sign_sign_extra_txt_2", "key": "sign_sign_extra_txt_2",
"text": "累计完成拼图{0}次领取" "text": "累计完成拼图{1}次领取"
}, },
"day": 14, "day": 14,
"groups": 1, "groups": 1,
@ -35,7 +35,7 @@
"id": 3, "id": 3,
"txt": { "txt": {
"key": "sign_sign_extra_txt_3", "key": "sign_sign_extra_txt_3",
"text": "累计完成拼图{0}次领取" "text": "累计完成拼图{2}次领取"
}, },
"day": 21, "day": 21,
"groups": 1, "groups": 1,
@ -51,7 +51,7 @@
"id": 4, "id": 4,
"txt": { "txt": {
"key": "sign_sign_extra_txt_4", "key": "sign_sign_extra_txt_4",
"text": "累计完成拼图{0}次领取" "text": "累计完成拼图{3}次领取"
}, },
"day": 7, "day": 7,
"groups": 2, "groups": 2,
@ -67,7 +67,7 @@
"id": 5, "id": 5,
"txt": { "txt": {
"key": "sign_sign_extra_txt_5", "key": "sign_sign_extra_txt_5",
"text": "累计完成拼图{0}次领取" "text": "累计完成拼图{4}次领取"
}, },
"day": 14, "day": 14,
"groups": 2, "groups": 2,
@ -83,7 +83,7 @@
"id": 6, "id": 6,
"txt": { "txt": {
"key": "sign_sign_extra_txt_6", "key": "sign_sign_extra_txt_6",
"text": "累计完成拼图{0}次领取" "text": "累计完成拼图{5}次领取"
}, },
"day": 21, "day": 21,
"groups": 2, "groups": 2,
@ -99,7 +99,7 @@
"id": 7, "id": 7,
"txt": { "txt": {
"key": "sign_sign_extra_txt_7", "key": "sign_sign_extra_txt_7",
"text": "累计完成拼图{0}次领取" "text": "累计完成拼图{6}次领取"
}, },
"day": 7, "day": 7,
"groups": 3, "groups": 3,
@ -115,7 +115,7 @@
"id": 8, "id": 8,
"txt": { "txt": {
"key": "sign_sign_extra_txt_8", "key": "sign_sign_extra_txt_8",
"text": "累计完成拼图{0}次领取" "text": "累计完成拼图{7}次领取"
}, },
"day": 14, "day": 14,
"groups": 3, "groups": 3,
@ -131,7 +131,7 @@
"id": 9, "id": 9,
"txt": { "txt": {
"key": "sign_sign_extra_txt_9", "key": "sign_sign_extra_txt_9",
"text": "累计完成拼图{0}次领取" "text": "累计完成拼图{8}次领取"
}, },
"day": 21, "day": 21,
"groups": 3, "groups": 3,

View File

@ -1,15 +1,13 @@
package hero package hero
import ( import (
"crypto/rand"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/pb" "go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs" cfg "go_dreamfactory/sys/configure/structs"
"math/big"
) )
func (this *apiComp) DrawCardCheck(session comm.IUserSession, req *pb.HeroDrawCardReq) (errdata *pb.ErrorData) { func (this *apiComp) DrawCardCheck(session comm.IUserSession, req *pb.HeroDrawCardReq) (errdata *pb.ErrorData) {
if req.DrawType < 0 && (req.DrawCount == 1 || req.DrawCount == 10) { // 只能是单抽或10抽 if req.DrawType < 0 || (req.DrawCount != 1 && req.DrawCount != 10) { // 只能是单抽或10抽
errdata = &pb.ErrorData{ errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError, Code: pb.ErrorCode_ReqParameterError,
Title: pb.ErrorCode_ReqParameterError.ToString(), Title: pb.ErrorCode_ReqParameterError.ToString(),
@ -25,248 +23,157 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
drawCount int32 // 抽卡次数 drawCount int32 // 抽卡次数
szStar []int32 //星级 szStar []int32 //星级
costRes []*cfg.Gameatn // 消耗 costRes []*cfg.Gameatn // 消耗
star4Max int32 // 10连抽最大4星数量 star4Count int32 // 10连抽4星数量
star5Max int32 // 10连抽最大5星数量 star5Count int32 // 10连抽5星数量
cfgDraw *cfg.GameGlobalData cfgGlobal *cfg.GameGlobalData // 全局配置
costAtn *cfg.Gameatn
heroRecord *pb.DBHeroRecord heroRecord *pb.DBHeroRecord
pool string // 当前抽对应的卡池
atno []*pb.UserAtno // 最终获得的资源 atno []*pb.UserAtno // 最终获得的资源
strPool []string // 10连跨多个卡池情况 strPool []string // 10连跨多个卡池情况
update map[string]interface{} update map[string]interface{}
normalDraw bool // 是否是普通抽 normalDraw bool // 是否是普通抽
drawConf *cfg.GameDrawPoolData
err error
IsBaodiPool bool // 是否是保底卡池
appointmap map[int32]string // 指定次数抽卡到指定卡池
) )
appointmap = make(map[int32]string)
szCards = make([]string, 0)
heroRecord, _ = this.module.modelRecord.GetHeroRecord(session.GetUserId())
if heroRecord.Baodi4 == nil {
heroRecord.Baodi4 = make(map[int32]int32)
}
if heroRecord.Baodi5 == nil {
heroRecord.Baodi5 = make(map[int32]int32)
}
if heroRecord.Count == nil {
heroRecord.Count = make(map[int32]int32)
}
// 准备数据
/////////////////////////////////////
drawConf, err = this.module.configure.GetHeroDrawConfigByType(req.DrawType + 1) // 获取新的抽卡配置
if err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,
Title: pb.ErrorCode_ReqParameterError.ToString(),
Message: err.Error(),
}
return
}
for _, v := range drawConf.RecruitmentType {
appointmap[v.K] = v.S // 指定次抽数据
}
////////////////////////////////////////////////////////
update = make(map[string]interface{}) update = make(map[string]interface{})
cfgDraw = this.module.ModuleTools.GetGlobalConf() // 读取抽卡配置文件 cfgGlobal = this.module.ModuleTools.GetGlobalConf() // 读取抽卡配置文件
if cfgDraw == nil { if cfgGlobal == nil {
return return
} }
if errdata = this.DrawCardCheck(session, req); errdata != nil { if errdata = this.DrawCardCheck(session, req); errdata != nil {
return return
} }
szCards = make([]string, 0)
heroRecord, _ = this.module.modelRecord.GetHeroRecord(session.GetUserId()) drawCount = heroRecord.Count[req.DrawType] // 获取当前阵容抽卡次数
drawCount = heroRecord.Drawcount if true { // 普通卡池抽卡
////// 获取消耗 star
if req.DrawType == 0 { // 普通卡池抽卡
normalDraw = true
// 获取普通抽卡池
if req.DrawCount == 1 { if req.DrawCount == 1 {
costAtn = cfgDraw.BasePoolCost costRes = drawConf.ConsumeA // 单抽消耗
} else { } else {
costAtn = cfgDraw.BasePool10cost costRes = drawConf.ConsumeB // 十连消耗
} }
costRes = append(costRes, costAtn)
if errdata = this.module.CheckRes(session, costRes); errdata != nil { // 消耗数量不足直接返回 if errdata = this.module.CheckRes(session, costRes); errdata != nil { // 消耗数量不足直接返回
return return
} }
// 校验是否达到保底卡池
for i := 0; i < int(req.DrawCount); i++ { if drawConf.Protect >= drawCount {
drawCount += 1 IsBaodiPool = true
pool = this.module.modelHero.CheckPool(drawCount, cfgDraw) }
///// 获取消耗 end
strPool = append(strPool, pool) for i := 1; i <= int(req.DrawCount); i++ { // 一张一张的抽
ret := this.module.CheckCondition(session.GetUserId()) drawCount++
if ret == true { // 命中插入5星英雄 if v, ok := appointmap[drawCount]; ok { // 优先校验是否是指定抽
szStar = append(szStar, 5) strPool = append(strPool, v) //找到了
heroRecord.Star5 = 0 // 重置保底
star5Max++ // 记录当前 5星数量
continue continue
} }
// 3,4,5 星权重
starWeight := []int32{cfgDraw.BasePoolStar3, cfgDraw.BasePoolStar4, cfgDraw.BasePoolStar5}
starWeight := []int32{drawConf.Star3w, drawConf.Star4w, drawConf.Star5w} // 随机获取三星
if drawConf.Permission != -1 && heroRecord.Baodi5[req.DrawType] > 0 { // 橙权递增
starWeight[2] += this.module.configure.GetHeroDrawWeightConfigById(drawConf.Permission, heroRecord.Baodi5[req.DrawType])
}
starIndex := comm.GetRandW(starWeight) // 3 4 5 星索引 starIndex := comm.GetRandW(starWeight) // 3 4 5 星索引
if IsBaodiPool {
// 特殊规则 DrawCard_5StarsInRange 第2-30次抽奖必出一个5星英雄普通卡池 if starIndex == 0 {
inRangeConf := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange strPool = append(strPool, drawConf.P3pool)
if len(inRangeConf) == 3 { } else if starIndex == 1 {
iStart := inRangeConf[0] // 抽卡开始 star4Count++
iEnd := inRangeConf[1] // 抽卡结束 heroRecord.Baodi4[req.DrawType] = 0
star := inRangeConf[2] strPool = append(strPool, drawConf.P4pool)
if star >= 3 { // 保底必须三星+
if heroRecord.Inevitable == 0 && heroRecord.Drawcount > iStart && heroRecord.Drawcount < iEnd && iEnd >= iStart {
n, _ := rand.Int(rand.Reader, big.NewInt(int64(iEnd-iStart)))
if n.Int64() < 1 { // 抽中
starIndex = star - 3
heroRecord.Inevitable = heroRecord.Drawcount
update["inevitable"] = heroRecord.Drawcount
szStar = append(szStar, star)
if star == 4 {
heroRecord.Star4 = 0
star4Max++
} else if star == 5 {
star5Max++
heroRecord.Star5 = 0
}
continue
}
}
// 保底情况
if heroRecord.Drawcount == iEnd && heroRecord.Inevitable == 0 {
starIndex = star - 3
heroRecord.Inevitable = heroRecord.Drawcount
update["inevitable"] = heroRecord.Drawcount
szStar = append(szStar, star)
if star == 4 {
heroRecord.Star4 = 0
star4Max++
} else if star == 5 {
star5Max++
heroRecord.Star5 = 0
}
continue
}
}
}
inRangeConf1 := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1
if len(inRangeConf1) == 3 {
iStart := inRangeConf1[0] // 抽卡开始
iEnd := inRangeConf1[1] // 抽卡结束
star := inRangeConf1[2]
if star >= 3 { // 保底必须三星+
if heroRecord.Inevitable == 0 && heroRecord.Drawcount > iStart && heroRecord.Drawcount < iEnd && iEnd >= iStart {
n, _ := rand.Int(rand.Reader, big.NewInt(int64(iEnd-iStart)))
if n.Int64() < 1 { // 抽中
starIndex = star - 3
heroRecord.Inevitable = heroRecord.Drawcount
update["inevitable1"] = heroRecord.Drawcount
szStar = append(szStar, star)
if star == 4 {
heroRecord.Star4 = 0
star4Max++
} else if star == 5 {
star5Max++
heroRecord.Star5 = 0
}
// 修改卡池
newPoll := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1Pool
if newPoll != "" {
strPool[len(strPool)-1] = newPoll
}
continue
}
}
// 保底情况
if heroRecord.Drawcount == iEnd && heroRecord.Inevitable == 0 {
starIndex = star - 3
heroRecord.Inevitable1 = heroRecord.Drawcount
update["inevitable1"] = heroRecord.Drawcount
szStar = append(szStar, star)
if star == 4 {
heroRecord.Star4 = 0
star4Max++
} else if star == 5 {
star5Max++
heroRecord.Star5 = 0
}
// 修改卡池
newPoll := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1Pool
if newPoll != "" {
strPool[len(strPool)-1] = newPoll
}
continue
}
}
}
heroRecord.Star4++ // 4星保底数量+1
heroRecord.Star5++ // 5星保底数量+1
if starIndex == 1 {
heroRecord.Star4 = 0
star4Max++
} else if starIndex == 2 { } else if starIndex == 2 {
star5Max++ star5Count++
heroRecord.Star5 = 0 heroRecord.Baodi5[req.DrawType] = 0
strPool = append(strPool, drawConf.P5pool)
} }
if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max { // 达到10连抽最大(4,5星)数量 直接给三星
starIndex = 0
} else { } else {
// 普通卡池保底 if starIndex == 0 {
if cfgDraw.DrawFloorStar4 <= heroRecord.Star4 { strPool = append(strPool, drawConf.N3pool)
heroRecord.Star4 = 0 } else if starIndex == 1 {
starIndex = 1 star4Count++
} heroRecord.Baodi4[req.DrawType] = 0
if cfgDraw.DrawFloorStar5 <= heroRecord.Star5 { strPool = append(strPool, drawConf.N4pool)
heroRecord.Star5 = 0
starIndex = 2
}
}
szStar = append(szStar, starIndex+3)
if len(szStar) >= int(req.DrawCount) {
break
}
}
} else { // 所有阵营抽卡都走这里
drawCount += req.DrawCount
if req.DrawCount == 1 {
switch req.DrawType {
case 1:
pool = cfgDraw.Camp1Pool1
costAtn = cfgDraw.Camp1PoolCost
case 2:
pool = cfgDraw.Camp2Pool1
costAtn = cfgDraw.Camp2PoolCost
case 3:
pool = cfgDraw.Camp3Pool1
costAtn = cfgDraw.Camp3PoolCost
case 4:
pool = cfgDraw.Camp4Pool1
costAtn = cfgDraw.Camp4PoolCost
}
strPool = append(strPool, pool)
} else {
costAtn = cfgDraw.Camp1PoolCost
switch req.DrawType {
case 1:
pool = cfgDraw.Camp1Pool1
costAtn = cfgDraw.Camp1Pool10cost
case 2:
pool = cfgDraw.Camp2Pool1
costAtn = cfgDraw.Camp2Pool10cost
case 3:
pool = cfgDraw.Camp3Pool1
costAtn = cfgDraw.Camp3Pool10cost
case 4:
pool = cfgDraw.Camp4Pool1
costAtn = cfgDraw.Camp4Pool10cost
}
for i := 0; i < int(req.DrawCount); i++ {
strPool = append(strPool, pool)
}
}
costRes = append(costRes, costAtn)
//阵营消耗
if errdata = this.module.CheckRes(session, costRes); errdata != nil { // 消耗数量不足直接返回
return
}
for {
starWeight := []int32{cfgDraw.CampPoolStar3, cfgDraw.CampPoolStar4, cfgDraw.CampPoolStar5}
starIndex := comm.GetRandW(starWeight)
if starIndex == 1 {
star4Max++
} else if starIndex == 2 { } else if starIndex == 2 {
star5Max++ star5Count++
heroRecord.Baodi5[req.DrawType] = 0
strPool = append(strPool, drawConf.N5pool)
} }
if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max {
starIndex = 0
} }
szStar = append(szStar, starIndex) // 判断是否必出5星
if len(szStar) >= int(req.DrawCount) { if heroRecord.Baodi5[req.DrawType] >= drawConf.Baidi5 {
break heroRecord.Baodi5[req.DrawType] = 0
star5Count++
if IsBaodiPool {
strPool[len(strPool)-1] = drawConf.P5pool
} else {
strPool[len(strPool)-1] = drawConf.N5pool
}
continue
}
// 判断是否必出4星
if heroRecord.Baodi4[req.DrawType] >= drawConf.Baodi4 {
heroRecord.Baodi4[req.DrawType] = 0
star4Count++
if IsBaodiPool {
strPool[len(strPool)-1] = drawConf.P4pool
} else {
strPool[len(strPool)-1] = drawConf.N4pool
}
continue
}
heroRecord.Baodi5[req.DrawType]++
heroRecord.Baodi4[req.DrawType]++
if req.DrawType == 10 {
if star4Count >= cfgGlobal.Draw10Star4Max { // 10连抽最大4星数量
if IsBaodiPool {
strPool[len(strPool)-1] = drawConf.P3pool
} else {
strPool[len(strPool)-1] = drawConf.N3pool
}
}
if star5Count >= cfgGlobal.Draw10Star5Max { // 10连抽最大5星数量
if IsBaodiPool {
strPool[len(strPool)-1] = drawConf.P3pool
} else {
strPool[len(strPool)-1] = drawConf.N3pool
} }
} }
} }
for index, star := range szStar { }
}
_data, err := this.module.configure.GetPollByType(strPool[index]) // 通过卡池获得最终的英雄
for _, v := range strPool {
card, err := this.module.configure.GetHeroByPool(v)
if err != nil { if err != nil {
errdata = &pb.ErrorData{ errdata = &pb.ErrorData{
Code: pb.ErrorCode_ConfigNoFound, Code: pb.ErrorCode_ConfigNoFound,
@ -275,35 +182,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
} }
return return
} }
sz := make([]int32, 0) szCards = append(szCards, card)
for _, v := range _data[int32(star)] {
sz = append(sz, v.Weight)
}
randomIndex := comm.GetRandW(sz)
if v, ok := _data[int32(star)]; ok {
if int32(len(v)) > randomIndex {
cardId := v[randomIndex].Id
if star == 5 { // 抽出5星英雄后A次抽奖内不会再抽到5星英雄普通卡池+阵营卡池)
curDrawCount := drawCount - req.DrawCount
if drawCount <= 10 { // 前10次不计算连续抽卡最多连续出A个相同阵营的英雄
szCards = append(szCards, cardId)
continue
}
newID := this.module.ContinuousRestriction(session.GetUserId(), cardId, curDrawCount+int32(index+1), strPool[index])
szCards = append(szCards, newID)
continue
}
szCards = append(szCards, cardId)
// 普通卡池 最多连续出A个相同阵营的英雄
if req.DrawType == 0 {
newId := this.module.DrawCardContinuousRestrictionCamp(cardId, heroRecord.Race, sz, v)
if cardId != newId {
szCards[len(szCards)-1] = newId
}
}
}
}
} }
// 消耗道具 // 消耗道具
@ -312,11 +191,12 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
} }
heroRecord.Totalcount += req.DrawCount heroRecord.Totalcount += req.DrawCount
heroRecord.Daycount += req.DrawCount heroRecord.Daycount += req.DrawCount
update["star4"] = heroRecord.Star4
update["star5"] = heroRecord.Star5
update["drawcount"] = drawCount update["drawcount"] = drawCount
update["totalcount"] = heroRecord.Totalcount update["totalcount"] = heroRecord.Totalcount
update["daycount"] = heroRecord.Daycount update["daycount"] = heroRecord.Daycount
update["baodi4"] = heroRecord.Baodi4
update["baodi5"] = heroRecord.Baodi5
this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update) this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update)
rsp := &pb.HeroDrawCardResp{ rsp := &pb.HeroDrawCardResp{
Data: []*pb.AtnoData{}, Data: []*pb.AtnoData{},
@ -343,6 +223,9 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
} }
session.SendMsg(string(this.module.GetType()), DrawCard, rsp) session.SendMsg(string(this.module.GetType()), DrawCard, rsp)
if req.DrawType == 0 {
normalDraw = true
}
// 任务统计 // 任务统计
this.module.SendTaskMsg(session, szStar, req.DrawCount, normalDraw) this.module.SendTaskMsg(session, szStar, req.DrawCount, normalDraw)
return return

View File

@ -14,8 +14,8 @@ func (this *apiComp) DrawCardFloorCheck(session comm.IUserSession, req *pb.HeroD
func (this *apiComp) DrawCardFloor(session comm.IUserSession, req *pb.HeroDrawCardFloorReq) (errdata *pb.ErrorData) { func (this *apiComp) DrawCardFloor(session comm.IUserSession, req *pb.HeroDrawCardFloorReq) (errdata *pb.ErrorData) {
rsp := &pb.HeroDrawCardFloorResp{} rsp := &pb.HeroDrawCardFloorResp{}
if heroRecord, err := this.module.modelRecord.GetHeroRecord(session.GetUserId()); err == nil { if heroRecord, err := this.module.modelRecord.GetHeroRecord(session.GetUserId()); err == nil {
rsp.Star4 = heroRecord.Star4 rsp.Baodi4 = heroRecord.Baodi4
rsp.Star5 = heroRecord.Star5 rsp.Baodi5 = heroRecord.Baodi5
rsp.Onebuy = heroRecord.Onebuy rsp.Onebuy = heroRecord.Onebuy
rsp.Tenbuy = heroRecord.Tenbuy rsp.Tenbuy = heroRecord.Tenbuy
} }

View File

@ -1,349 +0,0 @@
package hero
import (
"crypto/rand"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"math/big"
)
func (this *apiComp) DrawCardV2Check(session comm.IUserSession, req *pb.HeroDrawCardReq) (errdata *pb.ErrorData) {
if req.DrawType < 0 && (req.DrawCount == 1 || req.DrawCount == 10) { // 只能是单抽或10抽
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,
Title: pb.ErrorCode_ReqParameterError.ToString(),
}
}
return
}
//抽卡
func (this *apiComp) DrawCardV2(session comm.IUserSession, req *pb.HeroDrawCardReq) (errdata *pb.ErrorData) {
var (
szCards []string // 最终抽到的卡牌
drawCount int32 // 抽卡次数
szStar []int32 //星级
costRes []*cfg.Gameatn // 消耗
star4Max int32 // 10连抽最大4星数量
star5Max int32 // 10连抽最大5星数量
cfgDraw *cfg.GameGlobalData
costAtn *cfg.Gameatn
heroRecord *pb.DBHeroRecord
pool string // 当前抽对应的卡池
atno []*pb.UserAtno // 最终获得的资源
strPool []string // 10连跨多个卡池情况
update map[string]interface{}
normalDraw bool // 是否是普通抽
)
update = make(map[string]interface{})
cfgDraw = this.module.ModuleTools.GetGlobalConf() // 读取抽卡配置文件
if cfgDraw == nil {
return
}
if errdata = this.DrawCardV2Check(session, req); errdata != nil {
return
}
szCards = make([]string, 0)
heroRecord, _ = this.module.modelRecord.GetHeroRecord(session.GetUserId())
drawCount = heroRecord.Drawcount
if req.DrawType == 0 { // 普通卡池抽卡
normalDraw = true
// 获取普通抽卡池
if req.DrawCount == 1 {
costAtn = cfgDraw.BasePoolCost
} else {
costAtn = cfgDraw.BasePool10cost
}
costRes = append(costRes, costAtn)
if errdata = this.module.CheckRes(session, costRes); errdata != nil { // 消耗数量不足直接返回
return
}
for i := 0; i < int(req.DrawCount); i++ {
drawCount += 1
pool = this.module.modelHero.CheckPool(drawCount, cfgDraw)
strPool = append(strPool, pool)
ret := this.module.CheckCondition(session.GetUserId())
if ret == true { // 命中插入5星英雄
szStar = append(szStar, 5)
heroRecord.Star5 = 0 // 重置保底
star5Max++ // 记录当前 5星数量
continue
}
// 3,4,5 星权重
starWeight := []int32{cfgDraw.BasePoolStar3, cfgDraw.BasePoolStar4, cfgDraw.BasePoolStar5}
starIndex := comm.GetRandW(starWeight) // 3 4 5 星索引
// 特殊规则 DrawCard_5StarsInRange 第2-30次抽奖必出一个5星英雄普通卡池
inRangeConf := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange
if len(inRangeConf) == 3 {
iStart := inRangeConf[0] // 抽卡开始
iEnd := inRangeConf[1] // 抽卡结束
star := inRangeConf[2]
if star >= 3 { // 保底必须三星+
if heroRecord.Inevitable == 0 && heroRecord.Drawcount > iStart && heroRecord.Drawcount < iEnd && iEnd >= iStart {
n, _ := rand.Int(rand.Reader, big.NewInt(int64(iEnd-iStart)))
if n.Int64() < 1 { // 抽中
starIndex = star - 3
heroRecord.Inevitable = heroRecord.Drawcount
update["inevitable"] = heroRecord.Drawcount
szStar = append(szStar, star)
if star == 4 {
heroRecord.Star4 = 0
star4Max++
} else if star == 5 {
star5Max++
heroRecord.Star5 = 0
}
continue
}
}
// 保底情况
if heroRecord.Drawcount == iEnd && heroRecord.Inevitable == 0 {
starIndex = star - 3
heroRecord.Inevitable = heroRecord.Drawcount
update["inevitable"] = heroRecord.Drawcount
szStar = append(szStar, star)
if star == 4 {
heroRecord.Star4 = 0
star4Max++
} else if star == 5 {
star5Max++
heroRecord.Star5 = 0
}
continue
}
}
}
inRangeConf1 := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1
if len(inRangeConf1) == 3 {
iStart := inRangeConf1[0] // 抽卡开始
iEnd := inRangeConf1[1] // 抽卡结束
star := inRangeConf1[2]
if star >= 3 { // 保底必须三星+
if heroRecord.Inevitable == 0 && heroRecord.Drawcount > iStart && heroRecord.Drawcount < iEnd && iEnd >= iStart {
n, _ := rand.Int(rand.Reader, big.NewInt(int64(iEnd-iStart)))
if n.Int64() < 1 { // 抽中
starIndex = star - 3
heroRecord.Inevitable = heroRecord.Drawcount
update["inevitable1"] = heroRecord.Drawcount
szStar = append(szStar, star)
if star == 4 {
heroRecord.Star4 = 0
star4Max++
} else if star == 5 {
star5Max++
heroRecord.Star5 = 0
}
// 修改卡池
newPoll := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1Pool
if newPoll != "" {
strPool[len(strPool)-1] = newPoll
}
continue
}
}
// 保底情况
if heroRecord.Drawcount == iEnd && heroRecord.Inevitable == 0 {
starIndex = star - 3
heroRecord.Inevitable1 = heroRecord.Drawcount
update["inevitable1"] = heroRecord.Drawcount
szStar = append(szStar, star)
if star == 4 {
heroRecord.Star4 = 0
star4Max++
} else if star == 5 {
star5Max++
heroRecord.Star5 = 0
}
// 修改卡池
newPoll := this.module.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1Pool
if newPoll != "" {
strPool[len(strPool)-1] = newPoll
}
continue
}
}
}
heroRecord.Star4++ // 4星保底数量+1
heroRecord.Star5++ // 5星保底数量+1
if starIndex == 1 {
heroRecord.Star4 = 0
star4Max++
} else if starIndex == 2 {
star5Max++
heroRecord.Star5 = 0
}
if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max { // 达到10连抽最大(4,5星)数量 直接给三星
starIndex = 0
} else {
// 普通卡池保底
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
}
}
} else { // 所有阵营抽卡都走这里
drawCount += req.DrawCount
if req.DrawCount == 1 {
switch req.DrawType {
case 1:
pool = cfgDraw.Camp1Pool1
costAtn = cfgDraw.Camp1PoolCost
case 2:
pool = cfgDraw.Camp2Pool1
costAtn = cfgDraw.Camp2PoolCost
case 3:
pool = cfgDraw.Camp3Pool1
costAtn = cfgDraw.Camp3PoolCost
case 4:
pool = cfgDraw.Camp4Pool1
costAtn = cfgDraw.Camp4PoolCost
}
strPool = append(strPool, pool)
} else {
costAtn = cfgDraw.Camp1PoolCost
switch req.DrawType {
case 1:
pool = cfgDraw.Camp1Pool1
costAtn = cfgDraw.Camp1Pool10cost
case 2:
pool = cfgDraw.Camp2Pool1
costAtn = cfgDraw.Camp2Pool10cost
case 3:
pool = cfgDraw.Camp3Pool1
costAtn = cfgDraw.Camp3Pool10cost
case 4:
pool = cfgDraw.Camp4Pool1
costAtn = cfgDraw.Camp4Pool10cost
}
for i := 0; i < int(req.DrawCount); i++ {
strPool = append(strPool, pool)
}
}
costRes = append(costRes, costAtn)
//阵营消耗
if errdata = this.module.CheckRes(session, costRes); errdata != nil { // 消耗数量不足直接返回
return
}
for {
starWeight := []int32{cfgDraw.CampPoolStar3, cfgDraw.CampPoolStar4, cfgDraw.CampPoolStar5}
starIndex := comm.GetRandW(starWeight)
if starIndex == 1 {
star4Max++
} else if starIndex == 2 {
star5Max++
}
if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max {
starIndex = 0
}
szStar = append(szStar, starIndex)
if len(szStar) >= int(req.DrawCount) {
break
}
}
}
for index, star := range szStar {
_data, err := this.module.configure.GetPollByType(strPool[index])
if err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ConfigNoFound,
Title: pb.ErrorCode_ConfigNoFound.ToString(),
Message: err.Error(),
}
return
}
sz := make([]int32, 0)
for _, v := range _data[int32(star)] {
sz = append(sz, v.Weight)
}
randomIndex := comm.GetRandW(sz)
if v, ok := _data[int32(star)]; ok {
if int32(len(v)) > randomIndex {
cardId := v[randomIndex].Id
if star == 5 { // 抽出5星英雄后A次抽奖内不会再抽到5星英雄普通卡池+阵营卡池)
curDrawCount := drawCount - req.DrawCount
if drawCount <= 10 { // 前10次不计算连续抽卡最多连续出A个相同阵营的英雄
szCards = append(szCards, cardId)
continue
}
newID := this.module.ContinuousRestriction(session.GetUserId(), cardId, curDrawCount+int32(index+1), strPool[index])
szCards = append(szCards, newID)
continue
}
szCards = append(szCards, cardId)
// 普通卡池 最多连续出A个相同阵营的英雄
if req.DrawType == 0 {
newId := this.module.DrawCardContinuousRestrictionCamp(cardId, heroRecord.Race, sz, v)
if cardId != newId {
szCards[len(szCards)-1] = newId
}
}
}
}
}
// 消耗道具
if errdata = this.module.ConsumeRes(session, costRes, true); errdata != nil {
return
}
heroRecord.Totalcount += req.DrawCount
heroRecord.Daycount += req.DrawCount
update["star4"] = heroRecord.Star4
update["star5"] = heroRecord.Star5
update["drawcount"] = drawCount
update["totalcount"] = heroRecord.Totalcount
update["daycount"] = heroRecord.Daycount
this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update)
rsp := &pb.HeroDrawCardResp{
Data: []*pb.AtnoData{},
}
for _, heroId := range szCards {
if errdata, atno = this.module.DispenseAtno(session, []*cfg.Gameatn{{
A: "hero",
T: heroId,
N: 1,
}}, true); errdata == nil {
rsp.Data = append(rsp.Data, &pb.AtnoData{Atno: atno})
for _, v := range atno {
if v.A == "hero" && v.N == 1 {
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil { // 广播 首次获得英雄
this.chat.SendSysChatToWorld(comm.ChatSystem13, nil, 0, 0, user.Name, v.T)
}
}
}
} else {
return
}
}
session.SendMsg(string(this.module.GetType()), DrawCard, rsp)
// 任务统计
this.module.SendTaskMsg(session, szStar, req.DrawCount, normalDraw)
return
}

View File

@ -25,7 +25,7 @@ const (
hero_skillup = "game_heroskilllevel.json" // 英雄技能升级 hero_skillup = "game_heroskilllevel.json" // 英雄技能升级
game_skillatk = "game_skillatk.json" // 英雄技能 game_skillatk = "game_skillatk.json" // 英雄技能
hero_awaken = "game_heroawaken.json" // 英雄觉醒 hero_awaken = "game_heroawaken.json" // 英雄觉醒
hero_drawcard = "game_drawcard.json" // 抽卡 //hero_drawcard = "game_drawcard.json" // 抽卡
hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整 hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整
hero_drawcost = "game_drawcost.json" // 抽卡消耗 hero_drawcost = "game_drawcost.json" // 抽卡消耗
hero_fusion = "game_herofusion.json" // 卡牌融合 hero_fusion = "game_herofusion.json" // 卡牌融合
@ -36,16 +36,19 @@ const (
hero_draw = "game_drawpool.json" // 新版抽卡 hero_draw = "game_drawpool.json" // 新版抽卡
hero_cardweight = "game_drawweight.json" // 新版抽卡权重 hero_cardweight = "game_drawweight.json" // 新版抽卡权重
hero_cardpool = "game_cardpool.json" // 新版卡池
) )
// /配置管理组件 // /配置管理组件
type configureComp struct { type configureComp struct {
modules.MCompConfigure modules.MCompConfigure
hlock sync.RWMutex hlock sync.RWMutex
drawCardCfg map[string]map[int32][]*cfg.GameDrawCardData // 第一个key 卡池id 第二个key 星级 //drawCardCfg map[string]map[int32][]*cfg.GameDrawCardData // 第一个key 卡池id 第二个key 星级
awakenMap map[int64]*cfg.GameHeroAwakenData awakenMap map[int64]*cfg.GameHeroAwakenData
starMap map[int64]*cfg.GameHeroStarupData starMap map[int64]*cfg.GameHeroStarupData
module *Hero module *Hero
starW map[int64]int32
cardPool map[string][]*cfg.GameCardPoolData
} }
// 组件初始化接口 // 组件初始化接口
@ -62,16 +65,16 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
hero_exp: cfg.NewGameHeroExp, hero_exp: cfg.NewGameHeroExp,
hero_skillup: cfg.NewGameHeroSkillLevel, hero_skillup: cfg.NewGameHeroSkillLevel,
game_skillatk: cfg.NewGameSkillAtk, game_skillatk: cfg.NewGameSkillAtk,
hero_drawcard: cfg.NewGameDrawCard, //hero_drawcard: cfg.NewGameDrawCard,
hero_talent: cfg.NewGameHeroTalent, hero_talent: cfg.NewGameHeroTalent,
hero_talentbox: cfg.NewGameTalentBox, hero_talentbox: cfg.NewGameTalentBox,
game_shopitem: cfg.NewGameShopitem, game_shopitem: cfg.NewGameShopitem,
hero_skill: cfg.NewGameHeroSkill, hero_skill: cfg.NewGameHeroSkill,
hero_draw: cfg.NewGameDrawPool, hero_draw: cfg.NewGameDrawPool,
hero_cardweight: cfg.NewGameDrawWeight, //hero_cardweight: cfg.NewGameDrawWeight,
}) })
this.drawCardCfg = make(map[string]map[int32][]*cfg.GameDrawCardData, 0) //this.drawCardCfg = make(map[string]map[int32][]*cfg.GameDrawCardData, 0)
configure.RegisterConfigure(hero_drawcard, cfg.NewGameDrawCard, this.SetHeroDrawConfig) //configure.RegisterConfigure(hero_drawcard, cfg.NewGameDrawCard, this.SetHeroDrawConfig)
this.awakenMap = make(map[int64]*cfg.GameHeroAwakenData, 0) this.awakenMap = make(map[int64]*cfg.GameHeroAwakenData, 0)
configure.RegisterConfigure(hero_awaken, cfg.NewGameHeroAwaken, func() { configure.RegisterConfigure(hero_awaken, cfg.NewGameHeroAwaken, func() {
if v, err := this.GetConfigure(hero_awaken); err == nil { if v, err := this.GetConfigure(hero_awaken); err == nil {
@ -107,8 +110,40 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
err = fmt.Errorf("%T no is *cfg.Game_drawCard", v) err = fmt.Errorf("%T no is *cfg.Game_drawCard", v)
} }
}) })
configure.RegisterConfigure(hero_cardweight, cfg.NewGameDrawWeight, func() {
if v, err := this.GetConfigure(hero_cardweight); err == nil {
if _configure, ok := v.(*cfg.GameDrawWeight); ok {
this.hlock.Lock()
defer this.hlock.Unlock()
this.starW = make(map[int64]int32)
for _, v := range _configure.GetDataList() {
this.starW[(int64(v.Dtype)<<16)+int64(v.Key)] = v.Weight
}
this.GetHeroDrawConfigByType(1) return
}
} else {
err = fmt.Errorf("%T no is *cfg.NewGameDrawWeight", v)
}
})
// 卡池初始化
configure.RegisterConfigure(hero_cardpool, cfg.NewGameCardPool, func() {
if v, err := this.GetConfigure(hero_cardpool); err == nil {
if _configure, ok := v.(*cfg.GameCardPool); ok {
this.hlock.Lock()
defer this.hlock.Unlock()
this.cardPool = make(map[string][]*cfg.GameCardPoolData)
for _, v := range _configure.GetDataList() {
this.cardPool[v.CardPoolType] = append(this.cardPool[v.CardPoolType], v)
}
return
}
} else {
err = fmt.Errorf("%T no is *cfg.NewGameCardPool", v)
}
})
return return
} }
@ -151,40 +186,40 @@ func (this *configureComp) GetHeroAwakenConfig(hid string, phase int32) (cfg *cf
} }
// 抽卡配置表 // 抽卡配置表
func (this *configureComp) SetHeroDrawConfig() { // func (this *configureComp) SetHeroDrawConfig() {
var ( // var (
v interface{} // v interface{}
err error // err error
) // )
if v, err = this.GetConfigure(hero_drawcard); err == nil { // if v, err = this.GetConfigure(hero_drawcard); err == nil {
if _configure, ok := v.(*cfg.GameDrawCard); ok { // if _configure, ok := v.(*cfg.GameDrawCard); ok {
this.hlock.Lock() // this.hlock.Lock()
this.drawCardCfg = make(map[string]map[int32][]*cfg.GameDrawCardData, 0) // this.drawCardCfg = make(map[string]map[int32][]*cfg.GameDrawCardData, 0)
for _, v := range _configure.GetDataList() { // for _, v := range _configure.GetDataList() {
if _, ok := this.drawCardCfg[v.CardPoolType]; !ok { // if _, ok := this.drawCardCfg[v.CardPoolType]; !ok {
this.drawCardCfg[v.CardPoolType] = make(map[int32][]*cfg.GameDrawCardData, 0) // this.drawCardCfg[v.CardPoolType] = make(map[int32][]*cfg.GameDrawCardData, 0)
} // }
if _, ok := this.drawCardCfg[v.CardPoolType][v.Star]; !ok { // if _, ok := this.drawCardCfg[v.CardPoolType][v.Star]; !ok {
this.drawCardCfg[v.CardPoolType][v.Star] = make([]*cfg.GameDrawCardData, 0) // this.drawCardCfg[v.CardPoolType][v.Star] = make([]*cfg.GameDrawCardData, 0)
} // }
this.drawCardCfg[v.CardPoolType][v.Star] = append(this.drawCardCfg[v.CardPoolType][v.Star], v) // this.drawCardCfg[v.CardPoolType][v.Star] = append(this.drawCardCfg[v.CardPoolType][v.Star], v)
} // }
this.hlock.Unlock() // this.hlock.Unlock()
// this.module.Debug("update cfg.Game_drawCard over") // // this.module.Debug("update cfg.Game_drawCard over")
return // return
} // }
} // }
err = fmt.Errorf("%T no is *cfg.Game_drawCard", v) // err = fmt.Errorf("%T no is *cfg.Game_drawCard", v)
return // return
} // }
func (this *configureComp) GetPollByType(poosType string) (conf map[int32][]*cfg.GameDrawCardData, err error) { // func (this *configureComp) GetPollByType(poosType string) (conf map[int32][]*cfg.GameDrawCardData, err error) {
var ok bool // var ok bool
if conf, ok = this.drawCardCfg[poosType]; !ok { // if conf, ok = this.drawCardCfg[poosType]; !ok {
err = comm.NewNotFoundConfErr(moduleName, hero_drawcard, poosType) // err = comm.NewNotFoundConfErr(moduleName, hero_drawcard, poosType)
} // }
return // return
} // }
func (this *configureComp) GetHeroExp(hid string) (conf *cfg.GameHeroExpData, err error) { func (this *configureComp) GetHeroExp(hid string) (conf *cfg.GameHeroExpData, err error) {
var ( var (
@ -411,6 +446,7 @@ func (this *configureComp) GetHeroDrawConfigByType(id int32) (data *cfg.GameDraw
if v, err = this.GetConfigure(hero_draw); err == nil { if v, err = this.GetConfigure(hero_draw); err == nil {
if conf, ok := v.(*cfg.GameDrawPool); ok { if conf, ok := v.(*cfg.GameDrawPool); ok {
if data = conf.Get(id); data != nil { if data = conf.Get(id); data != nil {
return return
} }
} }
@ -419,23 +455,24 @@ func (this *configureComp) GetHeroDrawConfigByType(id int32) (data *cfg.GameDraw
return return
} }
func (this *configureComp) GetHeroDrawWeightConfigById(id int32) (data *cfg.GameDrawWeightData, err error) { func (this *configureComp) GetHeroDrawWeightConfigById(dtype int32, key int32) int32 {
var ( return this.starW[(int64(dtype)<<16)+int64(key)]
v interface{} }
)
if id > 0 { // 通过卡池获取 英雄
if v, err = this.GetConfigure(hero_cardweight); err == nil { func (this *configureComp) GetHeroByPool(pool string) (hid string, err error) {
if conf, ok := v.(*cfg.GameDrawWeight); ok { if v, ok := this.cardPool[pool]; ok {
if data = conf.Get(id); data != nil { var sz []int32
for _, v1 := range v {
sz = append(sz, v1.Weight)
}
if len(sz) == 0 { // 异常报错提醒
err = comm.NewNotFoundConfErr(moduleName, hero_cardpool, pool)
return return
} else {
if len(conf.GetDataList()) > 0 {
data = conf.GetDataList()[len(conf.GetDataList())-1]
} }
hid = v[comm.GetRandW(sz)].Id
return
} }
} err = comm.NewNotFoundConfErr(moduleName, hero_cardpool, pool)
}
}
err = comm.NewNotFoundConfErr(moduleName, hero_draw, id)
return return
} }

View File

@ -589,24 +589,6 @@ func (this *ModelHero) RemoveUserHeroInfo(uid string) (err error) {
return return
} }
func (this *ModelHero) CheckPool(drawCount int32, config *cfg.GameGlobalData) (pools string) {
if config.BasePool1.S <= drawCount && config.BasePool1.E >= drawCount {
return config.BasePool1.P
} else if config.BasePool2.S <= drawCount && config.BasePool2.E >= drawCount {
return config.BasePool2.P
} else if config.BasePool3.S <= drawCount && config.BasePool3.E >= drawCount {
return config.BasePool3.P
} else if config.BasePool4.S <= drawCount && config.BasePool4.E >= drawCount {
return config.BasePool4.P
} else if config.BasePool5.S <= drawCount && config.BasePool5.E >= drawCount {
return config.BasePool5.P
} else if config.BasePool6.S <= drawCount && config.BasePool6.E >= drawCount {
return config.BasePool6.P
}
return config.BasePool7.P
}
// 通过卡池的权重 获取英雄 // 通过卡池的权重 获取英雄
func (this *ModelHero) GetRandHeroIdBypool(sz []int32) int32 { func (this *ModelHero) GetRandHeroIdBypool(sz []int32) int32 {

View File

@ -36,6 +36,9 @@ func (this *ModelRecord) GetHeroRecord(uid string) (result *pb.DBHeroRecord, err
result.Condition = map[string]int32{} result.Condition = map[string]int32{}
result.Star5Hero = map[string]int32{} result.Star5Hero = map[string]int32{}
result.Race = map[int32]int32{} result.Race = map[int32]int32{}
result.Baodi4 = map[int32]int32{}
result.Baodi5 = map[int32]int32{}
result.Count = map[int32]int32{}
result.Mtime = configure.Now().Unix() result.Mtime = configure.Now().Unix()
this.Add(uid, result) this.Add(uid, result)
err = nil err = nil

View File

@ -546,27 +546,18 @@ func (this *Hero) ContinuousRestriction(uid string, heroCid string, drawCount in
conf := this.ModuleTools.GetGlobalConf() //. conf := this.ModuleTools.GetGlobalConf() //.
iMaxCOunt := conf.DrawCardContinuousRestrictionStar5 iMaxCOunt := conf.DrawCardContinuousRestrictionStar5
if drawCount-index <= iMaxCOunt { // 连续n次还获得该英雄 直接替换其他英雄 if drawCount-index <= iMaxCOunt { // 连续n次还获得该英雄 直接替换其他英雄
for i := 0; i < 99; i++ {
_data, _ := this.configure.GetPollByType(pool) if newCid, err := this.configure.GetHeroByPool(pool); err != nil {
if _data == nil { if newCid != heroCid {
return newCid
return heroCid }
} }
for i := 0; i < len(_data[5]); i++ {
if v, ok := _data[5]; ok {
if int32(len(v)) > int32(i) {
newCid = v[i].Id
if newCid == heroid {
continue
} }
record.Star5Hero[heroid] = drawCount record.Star5Hero[heroid] = drawCount
update["star5Hero"] = record.Star5Hero update["star5Hero"] = record.Star5Hero
this.modelRecord.ChangeHeroRecord(uid, update) // 更新信息 this.modelRecord.ChangeHeroRecord(uid, update) // 更新信息
return return heroCid
}
}
}
} }
} }
} }
@ -771,85 +762,6 @@ func (this *Hero) SendTaskMsg(session comm.IUserSession, szStar []int32, drawCou
go this.ModuleBuried.TriggerBuried(session.GetUserId(), szTask...) go this.ModuleBuried.TriggerBuried(session.GetUserId(), szTask...)
} }
func (this *Hero) newCondition(heroRecord *pb.DBHeroRecord) (get bool, starIndex int32) {
inRangeConf := this.ModuleTools.GetGlobalConf().DrawCard5StarsInRange
if len(inRangeConf) == 3 {
iStart := inRangeConf[0] // 抽卡开始
iEnd := inRangeConf[1] // 抽卡结束
star := inRangeConf[2]
if star >= 3 { // 保底必须三星+
if heroRecord.Inevitable == 0 && heroRecord.Drawcount > iStart && heroRecord.Drawcount < iEnd && iEnd >= iStart {
n, _ := rand.Int(rand.Reader, big.NewInt(int64(iEnd-iStart)))
if n.Int64() < 1 { // 抽中
starIndex = star
heroRecord.Inevitable = heroRecord.Drawcount
update := make(map[string]interface{})
update["inevitable"] = heroRecord.Drawcount
get = true
}
}
// 保底情况
if heroRecord.Drawcount == iEnd && heroRecord.Inevitable == 0 {
starIndex = star
heroRecord.Inevitable = heroRecord.Drawcount
get = true
}
}
}
get = false
return
}
func (this *Hero) InRange(heroRecord *pb.DBHeroRecord, strPool []string, update map[string]interface{}) (starIndex int32, pool string) {
starIndex = 3 // 默认3星
inRangeConf1 := this.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1
pool = this.ModuleTools.GetGlobalConf().DrawCard5StarsInRange1Pool
if len(inRangeConf1) == 3 {
iStart := inRangeConf1[0] // 抽卡开始
iEnd := inRangeConf1[1] // 抽卡结束
star := inRangeConf1[2]
if star >= 3 { // 保底必须三星+
if heroRecord.Inevitable == 0 && heroRecord.Drawcount > iStart && heroRecord.Drawcount < iEnd && iEnd >= iStart {
n, _ := rand.Int(rand.Reader, big.NewInt(int64(iEnd-iStart)))
if n.Int64() < 1 { // 抽中
starIndex = star
heroRecord.Inevitable = heroRecord.Drawcount
update["inevitable1"] = heroRecord.Drawcount
if star == 4 {
heroRecord.Star4 = 0
} else if star == 5 {
heroRecord.Star5 = 0
}
// 修改卡池
// if newPoll != "" {
// strPool[len(strPool)-1] = newPoll
// }
return
}
}
// 保底情况
if heroRecord.Drawcount == iEnd && heroRecord.Inevitable == 0 {
starIndex = star
heroRecord.Inevitable1 = heroRecord.Drawcount
update["inevitable1"] = heroRecord.Drawcount
if star == 4 {
heroRecord.Star4 = 0
} else if star == 5 {
heroRecord.Star5 = 0
}
return
}
}
}
return
}
func (this *Hero) RegisterInstructor(session comm.IUserSession, heroOid []string, fulllvenr int32) (errdata *pb.ErrorData) { func (this *Hero) RegisterInstructor(session comm.IUserSession, heroOid []string, fulllvenr int32) (errdata *pb.ErrorData) {
var ( var (
_szHero []*pb.DBHero _szHero []*pb.DBHero

View File

@ -321,19 +321,18 @@ type DBHeroRecord struct {
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID 主键id Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID 主键id
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
Star4 int32 `protobuf:"varint,3,opt,name=star4,proto3" json:"star4"` // 4星保底 Mtime int64 `protobuf:"varint,3,opt,name=mtime,proto3" json:"mtime"` // 修改时间
Star5 int32 `protobuf:"varint,4,opt,name=star5,proto3" json:"star5"` // 5星保底 Drawcount int32 `protobuf:"varint,4,opt,name=drawcount,proto3" json:"drawcount"` // 普通卡牌累计抽取次数
Mtime int64 `protobuf:"varint,5,opt,name=mtime,proto3" json:"mtime"` // 修改时间 Condition map[string]int32 `protobuf:"bytes,5,rep,name=condition,proto3" json:"condition" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key recharge、login 等 value 累计抽卡次数
Drawcount int32 `protobuf:"varint,6,opt,name=drawcount,proto3" json:"drawcount"` // 普通卡牌累计抽取次数 Star5Hero map[string]int32 `protobuf:"bytes,6,rep,name=star5Hero,proto3" json:"star5Hero" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 第totalcount 次抽到的5星英雄 key 英雄id
Condition map[string]int32 `protobuf:"bytes,7,rep,name=condition,proto3" json:"condition" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key recharge、login 等 value 累计抽卡次数 Totalcount int32 `protobuf:"varint,7,opt,name=totalcount,proto3" json:"totalcount"` // 总的累计抽卡次数
Star5Hero map[string]int32 `protobuf:"bytes,8,rep,name=star5Hero,proto3" json:"star5Hero" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 第totalcount 次抽到的5星英雄 key 英雄id Daycount int32 `protobuf:"varint,8,opt,name=daycount,proto3" json:"daycount"` // 今天抽卡次数
Totalcount int32 `protobuf:"varint,9,opt,name=totalcount,proto3" json:"totalcount"` // 总的累计抽卡次数 Onebuy int32 `protobuf:"varint,9,opt,name=onebuy,proto3" json:"onebuy"` // 单次购买次数
Daycount int32 `protobuf:"varint,10,opt,name=daycount,proto3" json:"daycount"` // 今天抽卡次数 Tenbuy int32 `protobuf:"varint,10,opt,name=tenbuy,proto3" json:"tenbuy"` // 十连购买次数
Onebuy int32 `protobuf:"varint,11,opt,name=onebuy,proto3" json:"onebuy"` // 单次购买次数 Race map[int32]int32 `protobuf:"bytes,11,rep,name=race,proto3" json:"race" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 阵营类型 value count
Tenbuy int32 `protobuf:"varint,12,opt,name=tenbuy,proto3" json:"tenbuy"` // 十连购买次数 Baodi4 map[int32]int32 `protobuf:"bytes,12,rep,name=baodi4,proto3" json:"baodi4" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 4星保底次数 key 阵营类型 value count
Inevitable int32 `protobuf:"varint,13,opt,name=inevitable,proto3" json:"inevitable"` //第2-30次抽奖必出一个5星英雄 Baodi5 map[int32]int32 `protobuf:"bytes,13,rep,name=baodi5,proto3" json:"baodi5" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 5星保底次数 key 阵营类型 value count
Inevitable1 int32 `protobuf:"varint,14,opt,name=inevitable1,proto3" json:"inevitable1"` //第30-50次抽奖必出一个5星英雄 Count map[int32]int32 `protobuf:"bytes,14,rep,name=count,proto3" json:"count" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 抽卡次数 key 阵营类型 value count
Race map[int32]int32 `protobuf:"bytes,15,rep,name=race,proto3" json:"race" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 阵营类型 value count
} }
func (x *DBHeroRecord) Reset() { func (x *DBHeroRecord) Reset() {
@ -382,20 +381,6 @@ func (x *DBHeroRecord) GetUid() string {
return "" return ""
} }
func (x *DBHeroRecord) GetStar4() int32 {
if x != nil {
return x.Star4
}
return 0
}
func (x *DBHeroRecord) GetStar5() int32 {
if x != nil {
return x.Star5
}
return 0
}
func (x *DBHeroRecord) GetMtime() int64 { func (x *DBHeroRecord) GetMtime() int64 {
if x != nil { if x != nil {
return x.Mtime return x.Mtime
@ -452,20 +437,6 @@ func (x *DBHeroRecord) GetTenbuy() int32 {
return 0 return 0
} }
func (x *DBHeroRecord) GetInevitable() int32 {
if x != nil {
return x.Inevitable
}
return 0
}
func (x *DBHeroRecord) GetInevitable1() int32 {
if x != nil {
return x.Inevitable1
}
return 0
}
func (x *DBHeroRecord) GetRace() map[int32]int32 { func (x *DBHeroRecord) GetRace() map[int32]int32 {
if x != nil { if x != nil {
return x.Race return x.Race
@ -473,6 +444,27 @@ func (x *DBHeroRecord) GetRace() map[int32]int32 {
return nil return nil
} }
func (x *DBHeroRecord) GetBaodi4() map[int32]int32 {
if x != nil {
return x.Baodi4
}
return nil
}
func (x *DBHeroRecord) GetBaodi5() map[int32]int32 {
if x != nil {
return x.Baodi5
}
return nil
}
func (x *DBHeroRecord) GetCount() map[int32]int32 {
if x != nil {
return x.Count
}
return nil
}
// 英雄天赋系统 // 英雄天赋系统
type DBHeroTalent struct { type DBHeroTalent struct {
state protoimpl.MessageState state protoimpl.MessageState
@ -634,64 +626,78 @@ var file_hero_hero_db_proto_rawDesc = []byte{
0x3a, 0x0a, 0x0c, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x3a, 0x0a, 0x0c, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x98, 0x05, 0x0a, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf0, 0x06, 0x0a, 0x0c,
0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14,
0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x0a, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d,
0x74, 0x61, 0x72, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x18, 0x04, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75, 0x6e,
0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75,
0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x12, 0x1c, 0x0a, 0x09, 0x64, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65,
0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e,
0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x74, 0x72, 0x79, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a,
0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x18, 0x06, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x1c, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x0b, 0x32, 0x1c, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x73, 0x74, 0x09, 0x73, 0x74, 0x61, 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f,
0x61, 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x61, 0x6c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61,
0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x73, 0x74, 0x61, 0x79, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x61,
0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x63, 0x79, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x12, 0x16,
0x6c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x79, 0x63, 0x6f, 0x75, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x61, 0x79, 0x63, 0x6f, 0x75, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x12, 0x2b, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0b,
0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63,
0x28, 0x05, 0x52, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6f, 0x72, 0x64, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x72,
0x6e, 0x62, 0x75, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x34, 0x18, 0x0c, 0x20,
0x75, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f,
0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x72, 0x64, 0x2e, 0x42, 0x61, 0x6f, 0x64, 0x69, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06,
0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x34, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x35,
0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52,
0x62, 0x6c, 0x65, 0x31, 0x12, 0x2b, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x03, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x42, 0x61, 0x6f, 0x64, 0x69, 0x35, 0x45, 0x6e, 0x74, 0x72,
0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x35, 0x12, 0x2e, 0x0a, 0x05, 0x63, 0x6f, 0x75,
0x64, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x72, 0x61, 0x63, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72,
0x65, 0x1a, 0x3c, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74,
0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x72, 0x79, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x3c, 0x0a, 0x0e, 0x43, 0x6f, 0x6e,
0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x3c, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61,
0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x35,
0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x09, 0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb6, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x48, 0x65, 0x72, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39,
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x0a, 0x0b, 0x42, 0x61, 0x6f, 0x64, 0x69, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x6f, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x64, 0x12, 0x31, 0x0a, 0x06, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x42, 0x61, 0x6f,
0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x64, 0x69, 0x35, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x2e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x74, 0x61, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x65, 0x6e, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74,
0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x2f, 0x0a, 0x08, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb6,
0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x69, 0x6c, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x12,
0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x10, 0x01, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69,
0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x74, 0x61, 0x6c,
0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65,
0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x1a, 0x39, 0x0a, 0x0b,
0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x2f, 0x0a, 0x08, 0x48, 0x65, 0x72, 0x6f, 0x54,
0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4e,
0x69, 0x6c, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65,
0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x10, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -707,7 +713,7 @@ func file_hero_hero_db_proto_rawDescGZIP() []byte {
} }
var file_hero_hero_db_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_hero_hero_db_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_hero_hero_db_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_hero_hero_db_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_hero_hero_db_proto_goTypes = []interface{}{ var file_hero_hero_db_proto_goTypes = []interface{}{
(HeroType)(0), // 0: HeroType (HeroType)(0), // 0: HeroType
(*DBHero)(nil), // 1: DBHero (*DBHero)(nil), // 1: DBHero
@ -722,30 +728,36 @@ var file_hero_hero_db_proto_goTypes = []interface{}{
nil, // 10: DBHeroRecord.ConditionEntry nil, // 10: DBHeroRecord.ConditionEntry
nil, // 11: DBHeroRecord.Star5HeroEntry nil, // 11: DBHeroRecord.Star5HeroEntry
nil, // 12: DBHeroRecord.RaceEntry nil, // 12: DBHeroRecord.RaceEntry
nil, // 13: DBHeroTalent.TalentEntry nil, // 13: DBHeroRecord.Baodi4Entry
(*SkillData)(nil), // 14: SkillData nil, // 14: DBHeroRecord.Baodi5Entry
(*DB_EquipmentSuit)(nil), // 15: DB_EquipmentSuit nil, // 15: DBHeroRecord.CountEntry
nil, // 16: DBHeroTalent.TalentEntry
(*SkillData)(nil), // 17: SkillData
(*DB_EquipmentSuit)(nil), // 18: DB_EquipmentSuit
} }
var file_hero_hero_db_proto_depIdxs = []int32{ var file_hero_hero_db_proto_depIdxs = []int32{
14, // 0: DBHero.normalSkill:type_name -> SkillData 17, // 0: DBHero.normalSkill:type_name -> SkillData
4, // 1: DBHero.property:type_name -> DBHero.PropertyEntry 4, // 1: DBHero.property:type_name -> DBHero.PropertyEntry
5, // 2: DBHero.addProperty:type_name -> DBHero.AddPropertyEntry 5, // 2: DBHero.addProperty:type_name -> DBHero.AddPropertyEntry
6, // 3: DBHero.juexProperty:type_name -> DBHero.JuexPropertyEntry 6, // 3: DBHero.juexProperty:type_name -> DBHero.JuexPropertyEntry
0, // 4: DBHero.status:type_name -> HeroType 0, // 4: DBHero.status:type_name -> HeroType
15, // 5: DBHero.suits:type_name -> DB_EquipmentSuit 18, // 5: DBHero.suits:type_name -> DB_EquipmentSuit
7, // 6: DBHero.talentProperty:type_name -> DBHero.TalentPropertyEntry 7, // 6: DBHero.talentProperty:type_name -> DBHero.TalentPropertyEntry
14, // 7: DBHero.equipSkill:type_name -> SkillData 17, // 7: DBHero.equipSkill:type_name -> SkillData
8, // 8: DBHero.horoscopeProperty:type_name -> DBHero.HoroscopePropertyEntry 8, // 8: DBHero.horoscopeProperty:type_name -> DBHero.HoroscopePropertyEntry
9, // 9: DBHero.fetters:type_name -> DBHero.FettersEntry 9, // 9: DBHero.fetters:type_name -> DBHero.FettersEntry
10, // 10: DBHeroRecord.condition:type_name -> DBHeroRecord.ConditionEntry 10, // 10: DBHeroRecord.condition:type_name -> DBHeroRecord.ConditionEntry
11, // 11: DBHeroRecord.star5Hero:type_name -> DBHeroRecord.Star5HeroEntry 11, // 11: DBHeroRecord.star5Hero:type_name -> DBHeroRecord.Star5HeroEntry
12, // 12: DBHeroRecord.race:type_name -> DBHeroRecord.RaceEntry 12, // 12: DBHeroRecord.race:type_name -> DBHeroRecord.RaceEntry
13, // 13: DBHeroTalent.talent:type_name -> DBHeroTalent.TalentEntry 13, // 13: DBHeroRecord.baodi4:type_name -> DBHeroRecord.Baodi4Entry
14, // [14:14] is the sub-list for method output_type 14, // 14: DBHeroRecord.baodi5:type_name -> DBHeroRecord.Baodi5Entry
14, // [14:14] is the sub-list for method input_type 15, // 15: DBHeroRecord.count:type_name -> DBHeroRecord.CountEntry
14, // [14:14] is the sub-list for extension type_name 16, // 16: DBHeroTalent.talent:type_name -> DBHeroTalent.TalentEntry
14, // [14:14] is the sub-list for extension extendee 17, // [17:17] is the sub-list for method output_type
0, // [0:14] is the sub-list for field type_name 17, // [17:17] is the sub-list for method input_type
17, // [17:17] is the sub-list for extension type_name
17, // [17:17] is the sub-list for extension extendee
0, // [0:17] is the sub-list for field type_name
} }
func init() { file_hero_hero_db_proto_init() } func init() { file_hero_hero_db_proto_init() }
@ -799,7 +811,7 @@ func file_hero_hero_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_hero_hero_db_proto_rawDesc, RawDescriptor: file_hero_hero_db_proto_rawDesc,
NumEnums: 1, NumEnums: 1,
NumMessages: 13, NumMessages: 16,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -1193,8 +1193,8 @@ type HeroDrawCardFloorResp struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Star4 int32 `protobuf:"varint,1,opt,name=star4,proto3" json:"star4"` Baodi4 map[int32]int32 `protobuf:"bytes,1,rep,name=baodi4,proto3" json:"baodi4" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 4星保底次数 key 阵营类型 value count
Star5 int32 `protobuf:"varint,2,opt,name=star5,proto3" json:"star5"` Baodi5 map[int32]int32 `protobuf:"bytes,2,rep,name=baodi5,proto3" json:"baodi5" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 5星保底次数 key 阵营类型 value count
Onebuy int32 `protobuf:"varint,3,opt,name=onebuy,proto3" json:"onebuy"` // 单次购买次数 Onebuy int32 `protobuf:"varint,3,opt,name=onebuy,proto3" json:"onebuy"` // 单次购买次数
Tenbuy int32 `protobuf:"varint,4,opt,name=tenbuy,proto3" json:"tenbuy"` // 十连购买次数 Tenbuy int32 `protobuf:"varint,4,opt,name=tenbuy,proto3" json:"tenbuy"` // 十连购买次数
} }
@ -1231,18 +1231,18 @@ func (*HeroDrawCardFloorResp) Descriptor() ([]byte, []int) {
return file_hero_hero_msg_proto_rawDescGZIP(), []int{23} return file_hero_hero_msg_proto_rawDescGZIP(), []int{23}
} }
func (x *HeroDrawCardFloorResp) GetStar4() int32 { func (x *HeroDrawCardFloorResp) GetBaodi4() map[int32]int32 {
if x != nil { if x != nil {
return x.Star4 return x.Baodi4
} }
return 0 return nil
} }
func (x *HeroDrawCardFloorResp) GetStar5() int32 { func (x *HeroDrawCardFloorResp) GetBaodi5() map[int32]int32 {
if x != nil { if x != nil {
return x.Star5 return x.Baodi5
} }
return 0 return nil
} }
func (x *HeroDrawCardFloorResp) GetOnebuy() int32 { func (x *HeroDrawCardFloorResp) GetOnebuy() int32 {
@ -1940,63 +1940,75 @@ var file_hero_hero_msg_proto_rawDesc = []byte{
0x50, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 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, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 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, 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, 0x73, 0x0a, 0x15, 0x48, 0x65, 0x72, 0x64, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x22, 0xb5, 0x02, 0x0a, 0x15, 0x48, 0x65,
0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52,
0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x34, 0x18, 0x01, 0x20,
0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61,
0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x12, 0x16, 0x72, 0x64, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x42, 0x61, 0x6f, 0x64,
0x0a, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x34, 0x12,
0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x3a, 0x0a, 0x06, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x35, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x22, 0x92, 0x22, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x46, 0x6c,
0x01, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x42, 0x61, 0x6f, 0x64, 0x69, 0x35, 0x45, 0x6e,
0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x74, 0x72, 0x79, 0x52, 0x06, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x35, 0x12, 0x16, 0x0a, 0x06, 0x6f,
0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x68, 0x65, 0x72, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x6e, 0x65,
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x75, 0x62, 0x75, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x18, 0x04, 0x20,
0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x1a, 0x39, 0x0a, 0x0b, 0x42,
0x72, 0x79, 0x52, 0x05, 0x68, 0x65, 0x72, 0x6f, 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x61, 0x6f, 0x64, 0x69, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x42, 0x61, 0x6f, 0x64, 0x69, 0x35,
0x02, 0x38, 0x01, 0x22, 0x28, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x22, 0x13, 0x0a, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
0x11, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x01, 0x22, 0x92, 0x01, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e,
0x65, 0x71, 0x22, 0x3b, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x01, 0x20,
0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x68,
0x65, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x65, 0x72, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x48, 0x65, 0x72,
0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x22, 0x6f, 0x46, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x73,
0x5e, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x68, 0x65, 0x72, 0x6f, 0x73, 0x1a, 0x38, 0x0a, 0x0a,
0x72, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x48, 0x65, 0x72, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
0x44, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x52, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x75,
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x22, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f,
0x58, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x61, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64,
0x72, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x4c, 0x69,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x3b, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c,
0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x74,
0x08, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42,
0x08, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x2a, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x6e,
0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x65, 0x74, 0x22, 0x5e, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74,
0x14, 0x0a, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x6c, 0x65,
0x6f, 0x62, 0x6a, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x6c, 0x65,
0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x18, 0x02, 0x20,
0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65,
0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f,
0x6e, 0x65, 0x74, 0x22, 0x42, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x75, 0x79, 0x52, 0x65, 0x69, 0x64, 0x22, 0x58, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74,
0x71, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x65, 0x6c,
0x28, 0x05, 0x52, 0x07, 0x62, 0x75, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65,
0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74,
0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x55, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01,
0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x2a, 0x0a, 0x12,
0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63, 0x63, 0x12, 0x16, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52,
0x0a, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x09, 0x52, 0x05, 0x6f, 0x62, 0x6a, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f,
0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x22, 0x2a, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12,
0x0a, 0x10, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x65, 0x74, 0x50, 0x75, 0x25, 0x0a, 0x06, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x01, 0x20, 0x03, 0x0d, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x06,
0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x74, 0x65, 0x6c, 0x6e, 0x65, 0x74, 0x22, 0x42, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x75,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x79, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x75, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x62, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x08, 0x62, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x55, 0x0a, 0x0b, 0x48, 0x65,
0x72, 0x6f, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53,
0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x53, 0x75, 0x63,
0x63, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28,
0x05, 0x52, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65, 0x6e,
0x62, 0x75, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75,
0x79, 0x22, 0x2a, 0x0a, 0x10, 0x48, 0x65, 0x72, 0x6f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x65,
0x74, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18,
0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x42, 0x06, 0x5a,
0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -2011,7 +2023,7 @@ func file_hero_hero_msg_proto_rawDescGZIP() []byte {
return file_hero_hero_msg_proto_rawDescData return file_hero_hero_msg_proto_rawDescData
} }
var file_hero_hero_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 40) var file_hero_hero_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 42)
var file_hero_hero_msg_proto_goTypes = []interface{}{ var file_hero_hero_msg_proto_goTypes = []interface{}{
(*HeroInfoReq)(nil), // 0: HeroInfoReq (*HeroInfoReq)(nil), // 0: HeroInfoReq
(*HeroInfoResp)(nil), // 1: HeroInfoResp (*HeroInfoResp)(nil), // 1: HeroInfoResp
@ -2052,36 +2064,40 @@ var file_hero_hero_msg_proto_goTypes = []interface{}{
nil, // 36: HeroStrengthenUpSkillReq.ItemEntry nil, // 36: HeroStrengthenUpSkillReq.ItemEntry
nil, // 37: HeroPropertyPush.PropertyEntry nil, // 37: HeroPropertyPush.PropertyEntry
nil, // 38: HeroPropertyPush.AddPropertyEntry nil, // 38: HeroPropertyPush.AddPropertyEntry
nil, // 39: HeroFusionReq.HerosEntry nil, // 39: HeroDrawCardFloorResp.Baodi4Entry
(*DBHero)(nil), // 40: DBHero nil, // 40: HeroDrawCardFloorResp.Baodi5Entry
(*UserAtno)(nil), // 41: UserAtno nil, // 41: HeroFusionReq.HerosEntry
(*DBHeroTalent)(nil), // 42: DBHeroTalent (*DBHero)(nil), // 42: DBHero
(*UserAtno)(nil), // 43: UserAtno
(*DBHeroTalent)(nil), // 44: DBHeroTalent
} }
var file_hero_hero_msg_proto_depIdxs = []int32{ var file_hero_hero_msg_proto_depIdxs = []int32{
40, // 0: HeroInfoResp.base:type_name -> DBHero 42, // 0: HeroInfoResp.base:type_name -> DBHero
40, // 1: HeroListResp.list:type_name -> DBHero 42, // 1: HeroListResp.list:type_name -> DBHero
35, // 2: HeroStrengthenUplvReq.item:type_name -> HeroStrengthenUplvReq.ItemEntry 35, // 2: HeroStrengthenUplvReq.item:type_name -> HeroStrengthenUplvReq.ItemEntry
40, // 3: HeroStrengthenUplvResp.hero:type_name -> DBHero 42, // 3: HeroStrengthenUplvResp.hero:type_name -> DBHero
40, // 4: HeroStrengthenUpStarResp.hero:type_name -> DBHero 42, // 4: HeroStrengthenUpStarResp.hero:type_name -> DBHero
36, // 5: HeroStrengthenUpSkillReq.item:type_name -> HeroStrengthenUpSkillReq.ItemEntry 36, // 5: HeroStrengthenUpSkillReq.item:type_name -> HeroStrengthenUpSkillReq.ItemEntry
40, // 6: HeroStrengthenUpSkillResp.hero:type_name -> DBHero 42, // 6: HeroStrengthenUpSkillResp.hero:type_name -> DBHero
40, // 7: HeroAwakenResp.hero:type_name -> DBHero 42, // 7: HeroAwakenResp.hero:type_name -> DBHero
37, // 8: HeroPropertyPush.property:type_name -> HeroPropertyPush.PropertyEntry 37, // 8: HeroPropertyPush.property:type_name -> HeroPropertyPush.PropertyEntry
38, // 9: HeroPropertyPush.addProperty:type_name -> HeroPropertyPush.AddPropertyEntry 38, // 9: HeroPropertyPush.addProperty:type_name -> HeroPropertyPush.AddPropertyEntry
40, // 10: HeroLockResp.hero:type_name -> DBHero 42, // 10: HeroLockResp.hero:type_name -> DBHero
40, // 11: HeroGetSpecifiedResp.hero:type_name -> DBHero 42, // 11: HeroGetSpecifiedResp.hero:type_name -> DBHero
41, // 12: AtnoData.atno:type_name -> UserAtno 43, // 12: AtnoData.atno:type_name -> UserAtno
19, // 13: HeroDrawCardResp.data:type_name -> AtnoData 19, // 13: HeroDrawCardResp.data:type_name -> AtnoData
40, // 14: HeroChangePush.list:type_name -> DBHero 42, // 14: HeroChangePush.list:type_name -> DBHero
39, // 15: HeroFusionReq.heros:type_name -> HeroFusionReq.HerosEntry 39, // 15: HeroDrawCardFloorResp.baodi4:type_name -> HeroDrawCardFloorResp.Baodi4Entry
42, // 16: HeroTalentListResp.telnet:type_name -> DBHeroTalent 40, // 16: HeroDrawCardFloorResp.baodi5:type_name -> HeroDrawCardFloorResp.Baodi5Entry
42, // 17: HeroTalentLearnResp.telnet:type_name -> DBHeroTalent 41, // 17: HeroFusionReq.heros:type_name -> HeroFusionReq.HerosEntry
42, // 18: HeroTalentResetResp.telnet:type_name -> DBHeroTalent 44, // 18: HeroTalentListResp.telnet:type_name -> DBHeroTalent
19, // [19:19] is the sub-list for method output_type 44, // 19: HeroTalentLearnResp.telnet:type_name -> DBHeroTalent
19, // [19:19] is the sub-list for method input_type 44, // 20: HeroTalentResetResp.telnet:type_name -> DBHeroTalent
19, // [19:19] is the sub-list for extension type_name 21, // [21:21] is the sub-list for method output_type
19, // [19:19] is the sub-list for extension extendee 21, // [21:21] is the sub-list for method input_type
0, // [0:19] is the sub-list for field type_name 21, // [21:21] is the sub-list for extension type_name
21, // [21:21] is the sub-list for extension extendee
0, // [0:21] is the sub-list for field type_name
} }
func init() { file_hero_hero_msg_proto_init() } func init() { file_hero_hero_msg_proto_init() }
@ -2519,7 +2535,7 @@ func file_hero_hero_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_hero_hero_msg_proto_rawDesc, RawDescriptor: file_hero_hero_msg_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 40, NumMessages: 42,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameCardPool struct {
_dataMap map[int32]*GameCardPoolData
_dataList []*GameCardPoolData
}
func NewGameCardPool(_buf []map[string]interface{}) (*GameCardPool, error) {
_dataList := make([]*GameCardPoolData, 0, len(_buf))
dataMap := make(map[int32]*GameCardPoolData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameCardPoolData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Key] = _v
}
}
return &GameCardPool{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameCardPool) GetDataMap() map[int32]*GameCardPoolData {
return table._dataMap
}
func (table *GameCardPool) GetDataList() []*GameCardPoolData {
return table._dataList
}
func (table *GameCardPool) Get(key int32) *GameCardPoolData {
return table._dataMap[key]
}

View File

@ -0,0 +1,41 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameCardPoolData struct {
Key int32
CardPoolType string
Id string
Weight int32
}
const TypeId_GameCardPoolData = 1562200466
func (*GameCardPoolData) GetTypeId() int32 {
return 1562200466
}
func (_v *GameCardPoolData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
{ var _ok_ bool; if _v.CardPoolType, _ok_ = _buf["card_pool_type"].(string); !_ok_ { err = errors.New("card_pool_type error"); return } }
{ var _ok_ bool; if _v.Id, _ok_ = _buf["id"].(string); !_ok_ { err = errors.New("id error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["weight"].(float64); !_ok_ { err = errors.New("weight error"); return }; _v.Weight = int32(_tempNum_) }
return
}
func DeserializeGameCardPoolData(_buf map[string]interface{}) (*GameCardPoolData, error) {
v := &GameCardPoolData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -21,7 +21,7 @@ func NewGameDrawWeight(_buf []map[string]interface{}) (*GameDrawWeight, error) {
return nil, err2 return nil, err2
} else { } else {
_dataList = append(_dataList, _v) _dataList = append(_dataList, _v)
dataMap[_v.Key] = _v dataMap[_v.Id] = _v
} }
} }
return &GameDrawWeight{_dataList:_dataList, _dataMap:dataMap}, nil return &GameDrawWeight{_dataList:_dataList, _dataMap:dataMap}, nil

View File

@ -11,6 +11,8 @@ package cfg
import "errors" import "errors"
type GameDrawWeightData struct { type GameDrawWeightData struct {
Id int32
Dtype int32
Key int32 Key int32
Weight int32 Weight int32
} }
@ -22,6 +24,8 @@ func (*GameDrawWeightData) GetTypeId() int32 {
} }
func (_v *GameDrawWeightData)Deserialize(_buf map[string]interface{}) (err error) { func (_v *GameDrawWeightData)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["dtype"].(float64); !_ok_ { err = errors.New("dtype error"); return }; _v.Dtype = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["weight"].(float64); !_ok_ { err = errors.New("weight error"); return }; _v.Weight = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["weight"].(float64); !_ok_ { err = errors.New("weight error"); return }; _v.Weight = int32(_tempNum_) }
return return

View File

@ -184,6 +184,7 @@ type Tables struct {
PhotoFilter *GamePhotoFilter PhotoFilter *GamePhotoFilter
DrawPool *GameDrawPool DrawPool *GameDrawPool
DrawWeight *GameDrawWeight DrawWeight *GameDrawWeight
CardPool *GameCardPool
} }
func NewTables(loader JsonLoader) (*Tables, error) { func NewTables(loader JsonLoader) (*Tables, error) {
@ -1229,5 +1230,11 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.DrawWeight, err = NewGameDrawWeight(buf) ; err != nil { if tables.DrawWeight, err = NewGameDrawWeight(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_cardpool") ; err != nil {
return nil, err
}
if tables.CardPool, err = NewGameCardPool(buf) ; err != nil {
return nil, err
}
return tables, nil return tables, nil
} }

View File

@ -39,36 +39,7 @@ type GameGlobalData struct {
DrawToplimit int32 DrawToplimit int32
Draw10Star4Max int32 Draw10Star4Max int32
Draw10Star5Max int32 Draw10Star5Max int32
DrawFloorStar4 int32
DrawFloorStar5 int32
DuplicateRemoval int32 DuplicateRemoval int32
BasePoolCost *Gameatn
Camp1PoolCost *Gameatn
Camp2PoolCost *Gameatn
Camp3PoolCost *Gameatn
Camp4PoolCost *Gameatn
BasePool10cost *Gameatn
Camp1Pool10cost *Gameatn
Camp2Pool10cost *Gameatn
Camp3Pool10cost *Gameatn
Camp4Pool10cost *Gameatn
Camp1Pool1 string
Camp2Pool1 string
Camp3Pool1 string
Camp4Pool1 string
BasePool1 *Gamebasepool
BasePool2 *Gamebasepool
BasePool3 *Gamebasepool
BasePool4 *Gamebasepool
BasePool5 *Gamebasepool
BasePool6 *Gamebasepool
BasePool7 *Gamebasepool
BasePoolStar3 int32
BasePoolStar4 int32
BasePoolStar5 int32
CampPoolStar3 int32
CampPoolStar4 int32
CampPoolStar5 int32
Gourmet int32 Gourmet int32
SmithyMaxplayer int32 SmithyMaxplayer int32
SmithyMaxtime int32 SmithyMaxtime int32
@ -142,9 +113,6 @@ type GameGlobalData struct {
SkillGetLocation []int32 SkillGetLocation []int32
DrawCardRechargeReward []int32 DrawCardRechargeReward []int32
DrawCardRegressionReward []int32 DrawCardRegressionReward []int32
DrawCard5StarsInRange []int32
DrawCard5StarsInRange1 []int32
DrawCard5StarsInRange1Pool string
DrawCardContinuousRestrictionStar5 int32 DrawCardContinuousRestrictionStar5 int32
DrawCardContinuousRestrictionCamp int32 DrawCardContinuousRestrictionCamp int32
EquipmentConsumption []int32 EquipmentConsumption []int32
@ -327,36 +295,7 @@ func (_v *GameGlobalData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["draw_toplimit"].(float64); !_ok_ { err = errors.New("draw_toplimit error"); return }; _v.DrawToplimit = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["draw_toplimit"].(float64); !_ok_ { err = errors.New("draw_toplimit error"); return }; _v.DrawToplimit = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["draw10_star4_max"].(float64); !_ok_ { err = errors.New("draw10_star4_max error"); return }; _v.Draw10Star4Max = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["draw10_star4_max"].(float64); !_ok_ { err = errors.New("draw10_star4_max error"); return }; _v.Draw10Star4Max = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["draw10_star5_max"].(float64); !_ok_ { err = errors.New("draw10_star5_max error"); return }; _v.Draw10Star5Max = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["draw10_star5_max"].(float64); !_ok_ { err = errors.New("draw10_star5_max error"); return }; _v.Draw10Star5Max = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["draw_floor_star4"].(float64); !_ok_ { err = errors.New("draw_floor_star4 error"); return }; _v.DrawFloorStar4 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["draw_floor_star5"].(float64); !_ok_ { err = errors.New("draw_floor_star5 error"); return }; _v.DrawFloorStar5 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["duplicate_removal"].(float64); !_ok_ { err = errors.New("duplicate_removal error"); return }; _v.DuplicateRemoval = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["duplicate_removal"].(float64); !_ok_ { err = errors.New("duplicate_removal error"); return }; _v.DuplicateRemoval = int32(_tempNum_) }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["base_pool_cost"].(map[string]interface{}); !_ok_ { err = errors.New("base_pool_cost error"); return }; if _v.BasePoolCost, err = DeserializeGameatn(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["camp1_pool_cost"].(map[string]interface{}); !_ok_ { err = errors.New("camp1_pool_cost error"); return }; if _v.Camp1PoolCost, err = DeserializeGameatn(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["camp2_pool_cost"].(map[string]interface{}); !_ok_ { err = errors.New("camp2_pool_cost error"); return }; if _v.Camp2PoolCost, err = DeserializeGameatn(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["camp3_pool_cost"].(map[string]interface{}); !_ok_ { err = errors.New("camp3_pool_cost error"); return }; if _v.Camp3PoolCost, err = DeserializeGameatn(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["camp4_pool_cost"].(map[string]interface{}); !_ok_ { err = errors.New("camp4_pool_cost error"); return }; if _v.Camp4PoolCost, err = DeserializeGameatn(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["base_pool_10cost"].(map[string]interface{}); !_ok_ { err = errors.New("base_pool_10cost error"); return }; if _v.BasePool10cost, err = DeserializeGameatn(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["camp1_pool_10cost"].(map[string]interface{}); !_ok_ { err = errors.New("camp1_pool_10cost error"); return }; if _v.Camp1Pool10cost, err = DeserializeGameatn(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["camp2_pool_10cost"].(map[string]interface{}); !_ok_ { err = errors.New("camp2_pool_10cost error"); return }; if _v.Camp2Pool10cost, err = DeserializeGameatn(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["camp3_pool_10cost"].(map[string]interface{}); !_ok_ { err = errors.New("camp3_pool_10cost error"); return }; if _v.Camp3Pool10cost, err = DeserializeGameatn(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["camp4_pool_10cost"].(map[string]interface{}); !_ok_ { err = errors.New("camp4_pool_10cost error"); return }; if _v.Camp4Pool10cost, err = DeserializeGameatn(_x_); err != nil { return } }
{ var _ok_ bool; if _v.Camp1Pool1, _ok_ = _buf["camp1_pool1"].(string); !_ok_ { err = errors.New("camp1_pool1 error"); return } }
{ var _ok_ bool; if _v.Camp2Pool1, _ok_ = _buf["camp2_pool1"].(string); !_ok_ { err = errors.New("camp2_pool1 error"); return } }
{ var _ok_ bool; if _v.Camp3Pool1, _ok_ = _buf["camp3_pool1"].(string); !_ok_ { err = errors.New("camp3_pool1 error"); return } }
{ var _ok_ bool; if _v.Camp4Pool1, _ok_ = _buf["camp4_pool1"].(string); !_ok_ { err = errors.New("camp4_pool1 error"); return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["base_pool1"].(map[string]interface{}); !_ok_ { err = errors.New("base_pool1 error"); return }; if _v.BasePool1, err = DeserializeGamebasepool(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["base_pool2"].(map[string]interface{}); !_ok_ { err = errors.New("base_pool2 error"); return }; if _v.BasePool2, err = DeserializeGamebasepool(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["base_pool3"].(map[string]interface{}); !_ok_ { err = errors.New("base_pool3 error"); return }; if _v.BasePool3, err = DeserializeGamebasepool(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["base_pool4"].(map[string]interface{}); !_ok_ { err = errors.New("base_pool4 error"); return }; if _v.BasePool4, err = DeserializeGamebasepool(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["base_pool5"].(map[string]interface{}); !_ok_ { err = errors.New("base_pool5 error"); return }; if _v.BasePool5, err = DeserializeGamebasepool(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["base_pool6"].(map[string]interface{}); !_ok_ { err = errors.New("base_pool6 error"); return }; if _v.BasePool6, err = DeserializeGamebasepool(_x_); err != nil { return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["base_pool7"].(map[string]interface{}); !_ok_ { err = errors.New("base_pool7 error"); return }; if _v.BasePool7, err = DeserializeGamebasepool(_x_); err != nil { return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["base_pool_star3"].(float64); !_ok_ { err = errors.New("base_pool_star3 error"); return }; _v.BasePoolStar3 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["base_pool_star4"].(float64); !_ok_ { err = errors.New("base_pool_star4 error"); return }; _v.BasePoolStar4 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["base_pool_star5"].(float64); !_ok_ { err = errors.New("base_pool_star5 error"); return }; _v.BasePoolStar5 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["camp_pool_star3"].(float64); !_ok_ { err = errors.New("camp_pool_star3 error"); return }; _v.CampPoolStar3 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["camp_pool_star4"].(float64); !_ok_ { err = errors.New("camp_pool_star4 error"); return }; _v.CampPoolStar4 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["camp_pool_star5"].(float64); !_ok_ { err = errors.New("camp_pool_star5 error"); return }; _v.CampPoolStar5 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["gourmet"].(float64); !_ok_ { err = errors.New("gourmet error"); return }; _v.Gourmet = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["gourmet"].(float64); !_ok_ { err = errors.New("gourmet error"); return }; _v.Gourmet = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["smithy_maxplayer"].(float64); !_ok_ { err = errors.New("smithy_maxplayer error"); return }; _v.SmithyMaxplayer = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["smithy_maxplayer"].(float64); !_ok_ { err = errors.New("smithy_maxplayer error"); return }; _v.SmithyMaxplayer = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["smithy_maxtime"].(float64); !_ok_ { err = errors.New("smithy_maxtime error"); return }; _v.SmithyMaxtime = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["smithy_maxtime"].(float64); !_ok_ { err = errors.New("smithy_maxtime error"); return }; _v.SmithyMaxtime = int32(_tempNum_) }
@ -677,35 +616,6 @@ func (_v *GameGlobalData)Deserialize(_buf map[string]interface{}) (err error) {
} }
} }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["DrawCard_5StarsInRange"].([]interface{}); !_ok_ { err = errors.New("DrawCard_5StarsInRange error"); return }
_v.DrawCard5StarsInRange = 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.DrawCard5StarsInRange = append(_v.DrawCard5StarsInRange, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["DrawCard_5StarsInRange1"].([]interface{}); !_ok_ { err = errors.New("DrawCard_5StarsInRange1 error"); return }
_v.DrawCard5StarsInRange1 = 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.DrawCard5StarsInRange1 = append(_v.DrawCard5StarsInRange1, _list_v_)
}
}
{ var _ok_ bool; if _v.DrawCard5StarsInRange1Pool, _ok_ = _buf["DrawCard_5StarsInRange1_pool"].(string); !_ok_ { err = errors.New("DrawCard_5StarsInRange1_pool error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["DrawCard_ContinuousRestriction_Star5"].(float64); !_ok_ { err = errors.New("DrawCard_ContinuousRestriction_Star5 error"); return }; _v.DrawCardContinuousRestrictionStar5 = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["DrawCard_ContinuousRestriction_Star5"].(float64); !_ok_ { err = errors.New("DrawCard_ContinuousRestriction_Star5 error"); return }; _v.DrawCardContinuousRestrictionStar5 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["DrawCard_ContinuousRestriction_Camp"].(float64); !_ok_ { err = errors.New("DrawCard_ContinuousRestriction_Camp error"); return }; _v.DrawCardContinuousRestrictionCamp = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["DrawCard_ContinuousRestriction_Camp"].(float64); !_ok_ { err = errors.New("DrawCard_ContinuousRestriction_Camp error"); return }; _v.DrawCardContinuousRestrictionCamp = int32(_tempNum_) }
{ {