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

View File

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

View File

@ -46,104 +46,7 @@
"draw_toplimit": 9999,
"draw10_star4_max": 8,
"draw10_star5_max": 2,
"draw_floor_star4": 20,
"draw_floor_star5": 100,
"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,
"smithy_maxplayer": 20,
"smithy_maxtime": 36000,
@ -390,17 +293,6 @@
7,
10
],
"DrawCard_5StarsInRange": [
1,
29,
5
],
"DrawCard_5StarsInRange1": [
30,
49,
5
],
"DrawCard_5StarsInRange1_pool": "base_pool7",
"DrawCard_ContinuousRestriction_Star5": 20,
"DrawCard_ContinuousRestriction_Camp": 2,
"EquipmentConsumption": [

View File

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

View File

@ -1,15 +1,13 @@
package hero
import (
"crypto/rand"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"math/big"
)
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{
Code: pb.ErrorCode_ReqParameterError,
Title: pb.ErrorCode_ReqParameterError.ToString(),
@ -21,252 +19,161 @@ func (this *apiComp) DrawCardCheck(session comm.IUserSession, req *pb.HeroDrawCa
//抽卡
func (this *apiComp) DrawCard(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
szCards []string // 最终抽到的卡牌
drawCount int32 // 抽卡次数
szStar []int32 //星级
costRes []*cfg.Gameatn // 消耗
star4Count int32 // 10连抽4星数量
star5Count int32 // 10连抽5星数量
cfgGlobal *cfg.GameGlobalData // 全局配置
heroRecord *pb.DBHeroRecord
pool string // 当前抽对应的卡池
atno []*pb.UserAtno // 最终获得的资源
strPool []string // 10连跨多个卡池情况
update map[string]interface{}
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{})
cfgDraw = this.module.ModuleTools.GetGlobalConf() // 读取抽卡配置文件
if cfgDraw == nil {
cfgGlobal = this.module.ModuleTools.GetGlobalConf() // 读取抽卡配置文件
if cfgGlobal == nil {
return
}
if errdata = this.DrawCardCheck(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
// 获取普通抽卡池
drawCount = heroRecord.Count[req.DrawType] // 获取当前阵容抽卡次数
if true { // 普通卡池抽卡
////// 获取消耗 star
if req.DrawCount == 1 {
costAtn = cfgDraw.BasePoolCost
costRes = drawConf.ConsumeA // 单抽消耗
} else {
costAtn = cfgDraw.BasePool10cost
costRes = drawConf.ConsumeB // 十连消耗
}
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星数量
// 校验是否达到保底卡池
if drawConf.Protect >= drawCount {
IsBaodiPool = true
}
///// 获取消耗 end
for i := 1; i <= int(req.DrawCount); i++ { // 一张一张的抽
drawCount++
if v, ok := appointmap[drawCount]; ok { // 优先校验是否是指定抽
strPool = append(strPool, v) //找到了
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 星索引
// 特殊规则 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
}
if IsBaodiPool {
if starIndex == 0 {
strPool = append(strPool, drawConf.P3pool)
} else if starIndex == 1 {
star4Count++
heroRecord.Baodi4[req.DrawType] = 0
strPool = append(strPool, drawConf.P4pool)
} else if starIndex == 2 {
star5Count++
heroRecord.Baodi5[req.DrawType] = 0
strPool = append(strPool, drawConf.P5pool)
}
}
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
if starIndex == 0 {
strPool = append(strPool, drawConf.N3pool)
} else if starIndex == 1 {
star4Count++
heroRecord.Baodi4[req.DrawType] = 0
strPool = append(strPool, drawConf.N4pool)
} else if starIndex == 2 {
star5Count++
heroRecord.Baodi5[req.DrawType] = 0
strPool = append(strPool, drawConf.N5pool)
}
}
szStar = append(szStar, starIndex+3)
if len(szStar) >= int(req.DrawCount) {
break
// 判断是否必出5星
if heroRecord.Baodi5[req.DrawType] >= drawConf.Baidi5 {
heroRecord.Baodi5[req.DrawType] = 0
star5Count++
if IsBaodiPool {
strPool[len(strPool)-1] = drawConf.P5pool
} else {
strPool[len(strPool)-1] = drawConf.N5pool
}
continue
}
}
} 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
// 判断是否必出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
}
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
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 {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ConfigNoFound,
@ -275,35 +182,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
}
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
}
}
}
}
szCards = append(szCards, card)
}
// 消耗道具
@ -312,11 +191,12 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
}
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
update["baodi4"] = heroRecord.Baodi4
update["baodi5"] = heroRecord.Baodi5
this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update)
rsp := &pb.HeroDrawCardResp{
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)
if req.DrawType == 0 {
normalDraw = true
}
// 任务统计
this.module.SendTaskMsg(session, szStar, req.DrawCount, normalDraw)
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) {
rsp := &pb.HeroDrawCardFloorResp{}
if heroRecord, err := this.module.modelRecord.GetHeroRecord(session.GetUserId()); err == nil {
rsp.Star4 = heroRecord.Star4
rsp.Star5 = heroRecord.Star5
rsp.Baodi4 = heroRecord.Baodi4
rsp.Baodi5 = heroRecord.Baodi5
rsp.Onebuy = heroRecord.Onebuy
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

@ -15,37 +15,40 @@ import (
const moduleName = "hero"
const (
equip_suit = "game_equipsuit.json" //装备套装表
new_hero = "game_hero.json" //英雄
hero_stargrow = "game_herostargrow.json" //英雄品质系数
hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数
hero_starup = "game_herostarup.json" // 升星
hero_levelup = "game_herolevelup.json" //英雄等级基础属性
hero_exp = "game_heroexp.json" // 升级
hero_skillup = "game_heroskilllevel.json" // 英雄技能升级
game_skillatk = "game_skillatk.json" // 英雄技能
hero_awaken = "game_heroawaken.json" // 英雄觉醒
hero_drawcard = "game_drawcard.json" // 抽卡
hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整
hero_drawcost = "game_drawcost.json" // 抽卡消耗
hero_fusion = "game_herofusion.json" // 卡牌融合
hero_talent = "game_herotalent.json" // 天赋详细数据
hero_talentbox = "game_talentbox.json" // 天赋详细数据
equip_suit = "game_equipsuit.json" //装备套装表
new_hero = "game_hero.json" //英雄
hero_stargrow = "game_herostargrow.json" //英雄品质系数
hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数
hero_starup = "game_herostarup.json" // 升星
hero_levelup = "game_herolevelup.json" //英雄等级基础属性
hero_exp = "game_heroexp.json" // 升级
hero_skillup = "game_heroskilllevel.json" // 英雄技能升级
game_skillatk = "game_skillatk.json" // 英雄技能
hero_awaken = "game_heroawaken.json" // 英雄觉醒
//hero_drawcard = "game_drawcard.json" // 抽卡
hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整
hero_drawcost = "game_drawcost.json" // 抽卡消耗
hero_fusion = "game_herofusion.json" // 卡牌融合
hero_talent = "game_herotalent.json" // 天赋详细数据
hero_talentbox = "game_talentbox.json" // 天赋详细数据
game_shopitem = "game_shopitem.json"
hero_skill = "game_heroskill.json"
hero_draw = "game_drawpool.json" // 新版抽卡
hero_cardweight = "game_drawweight.json" // 新版抽卡权重
hero_cardpool = "game_cardpool.json" // 新版卡池
)
// /配置管理组件
type configureComp struct {
modules.MCompConfigure
hlock sync.RWMutex
drawCardCfg map[string]map[int32][]*cfg.GameDrawCardData // 第一个key 卡池id 第二个key 星级
awakenMap map[int64]*cfg.GameHeroAwakenData
starMap map[int64]*cfg.GameHeroStarupData
module *Hero
hlock sync.RWMutex
//drawCardCfg map[string]map[int32][]*cfg.GameDrawCardData // 第一个key 卡池id 第二个key 星级
awakenMap map[int64]*cfg.GameHeroAwakenData
starMap map[int64]*cfg.GameHeroStarupData
module *Hero
starW map[int64]int32
cardPool map[string][]*cfg.GameCardPoolData
}
// 组件初始化接口
@ -54,24 +57,24 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
err = this.MCompConfigure.Init(service, module, comp, options)
this.module = module.(*Hero)
err = this.LoadMultiConfigure(map[string]interface{}{
equip_suit: cfg.NewGameEquipSuit,
new_hero: cfg.NewGameHero,
hero_stargrow: cfg.NewGameHeroStargrow,
hero_levelgrow: cfg.NewGameHeroLevelgrow,
hero_levelup: cfg.NewGameHeroLevelup,
hero_exp: cfg.NewGameHeroExp,
hero_skillup: cfg.NewGameHeroSkillLevel,
game_skillatk: cfg.NewGameSkillAtk,
hero_drawcard: cfg.NewGameDrawCard,
hero_talent: cfg.NewGameHeroTalent,
hero_talentbox: cfg.NewGameTalentBox,
game_shopitem: cfg.NewGameShopitem,
hero_skill: cfg.NewGameHeroSkill,
hero_draw: cfg.NewGameDrawPool,
hero_cardweight: cfg.NewGameDrawWeight,
equip_suit: cfg.NewGameEquipSuit,
new_hero: cfg.NewGameHero,
hero_stargrow: cfg.NewGameHeroStargrow,
hero_levelgrow: cfg.NewGameHeroLevelgrow,
hero_levelup: cfg.NewGameHeroLevelup,
hero_exp: cfg.NewGameHeroExp,
hero_skillup: cfg.NewGameHeroSkillLevel,
game_skillatk: cfg.NewGameSkillAtk,
//hero_drawcard: cfg.NewGameDrawCard,
hero_talent: cfg.NewGameHeroTalent,
hero_talentbox: cfg.NewGameTalentBox,
game_shopitem: cfg.NewGameShopitem,
hero_skill: cfg.NewGameHeroSkill,
hero_draw: cfg.NewGameDrawPool,
//hero_cardweight: cfg.NewGameDrawWeight,
})
this.drawCardCfg = make(map[string]map[int32][]*cfg.GameDrawCardData, 0)
configure.RegisterConfigure(hero_drawcard, cfg.NewGameDrawCard, this.SetHeroDrawConfig)
//this.drawCardCfg = make(map[string]map[int32][]*cfg.GameDrawCardData, 0)
//configure.RegisterConfigure(hero_drawcard, cfg.NewGameDrawCard, this.SetHeroDrawConfig)
this.awakenMap = make(map[int64]*cfg.GameHeroAwakenData, 0)
configure.RegisterConfigure(hero_awaken, cfg.NewGameHeroAwaken, func() {
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)
}
})
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
}
@ -151,40 +186,40 @@ func (this *configureComp) GetHeroAwakenConfig(hid string, phase int32) (cfg *cf
}
// 抽卡配置表
func (this *configureComp) SetHeroDrawConfig() {
var (
v interface{}
err error
)
if v, err = this.GetConfigure(hero_drawcard); err == nil {
if _configure, ok := v.(*cfg.GameDrawCard); ok {
this.hlock.Lock()
this.drawCardCfg = make(map[string]map[int32][]*cfg.GameDrawCardData, 0)
for _, v := range _configure.GetDataList() {
if _, ok := this.drawCardCfg[v.CardPoolType]; !ok {
this.drawCardCfg[v.CardPoolType] = make(map[int32][]*cfg.GameDrawCardData, 0)
}
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] = append(this.drawCardCfg[v.CardPoolType][v.Star], v)
}
this.hlock.Unlock()
// this.module.Debug("update cfg.Game_drawCard over")
return
}
}
err = fmt.Errorf("%T no is *cfg.Game_drawCard", v)
return
}
// func (this *configureComp) SetHeroDrawConfig() {
// var (
// v interface{}
// err error
// )
// if v, err = this.GetConfigure(hero_drawcard); err == nil {
// if _configure, ok := v.(*cfg.GameDrawCard); ok {
// this.hlock.Lock()
// this.drawCardCfg = make(map[string]map[int32][]*cfg.GameDrawCardData, 0)
// for _, v := range _configure.GetDataList() {
// if _, ok := this.drawCardCfg[v.CardPoolType]; !ok {
// this.drawCardCfg[v.CardPoolType] = make(map[int32][]*cfg.GameDrawCardData, 0)
// }
// 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] = append(this.drawCardCfg[v.CardPoolType][v.Star], v)
// }
// this.hlock.Unlock()
// // this.module.Debug("update cfg.Game_drawCard over")
// return
// }
// }
// err = fmt.Errorf("%T no is *cfg.Game_drawCard", v)
// return
// }
func (this *configureComp) GetPollByType(poosType string) (conf map[int32][]*cfg.GameDrawCardData, err error) {
var ok bool
if conf, ok = this.drawCardCfg[poosType]; !ok {
err = comm.NewNotFoundConfErr(moduleName, hero_drawcard, poosType)
}
return
}
// func (this *configureComp) GetPollByType(poosType string) (conf map[int32][]*cfg.GameDrawCardData, err error) {
// var ok bool
// if conf, ok = this.drawCardCfg[poosType]; !ok {
// err = comm.NewNotFoundConfErr(moduleName, hero_drawcard, poosType)
// }
// return
// }
func (this *configureComp) GetHeroExp(hid string) (conf *cfg.GameHeroExpData, err error) {
var (
@ -411,6 +446,7 @@ func (this *configureComp) GetHeroDrawConfigByType(id int32) (data *cfg.GameDraw
if v, err = this.GetConfigure(hero_draw); err == nil {
if conf, ok := v.(*cfg.GameDrawPool); ok {
if data = conf.Get(id); data != nil {
return
}
}
@ -419,23 +455,24 @@ func (this *configureComp) GetHeroDrawConfigByType(id int32) (data *cfg.GameDraw
return
}
func (this *configureComp) GetHeroDrawWeightConfigById(id int32) (data *cfg.GameDrawWeightData, err error) {
var (
v interface{}
)
if id > 0 {
if v, err = this.GetConfigure(hero_cardweight); err == nil {
if conf, ok := v.(*cfg.GameDrawWeight); ok {
if data = conf.Get(id); data != nil {
return
} else {
if len(conf.GetDataList()) > 0 {
data = conf.GetDataList()[len(conf.GetDataList())-1]
}
}
}
func (this *configureComp) GetHeroDrawWeightConfigById(dtype int32, key int32) int32 {
return this.starW[(int64(dtype)<<16)+int64(key)]
}
// 通过卡池获取 英雄
func (this *configureComp) GetHeroByPool(pool string) (hid string, err error) {
if v, ok := this.cardPool[pool]; ok {
var sz []int32
for _, v1 := range v {
sz = append(sz, v1.Weight)
}
if len(sz) == 0 { // 异常报错提醒
err = comm.NewNotFoundConfErr(moduleName, hero_cardpool, pool)
return
}
hid = v[comm.GetRandW(sz)].Id
return
}
err = comm.NewNotFoundConfErr(moduleName, hero_draw, id)
err = comm.NewNotFoundConfErr(moduleName, hero_cardpool, pool)
return
}

View File

@ -589,24 +589,6 @@ func (this *ModelHero) RemoveUserHeroInfo(uid string) (err error) {
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 {

View File

@ -36,6 +36,9 @@ func (this *ModelRecord) GetHeroRecord(uid string) (result *pb.DBHeroRecord, err
result.Condition = map[string]int32{}
result.Star5Hero = map[string]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()
this.Add(uid, result)
err = nil

View File

@ -546,27 +546,18 @@ func (this *Hero) ContinuousRestriction(uid string, heroCid string, drawCount in
conf := this.ModuleTools.GetGlobalConf() //.
iMaxCOunt := conf.DrawCardContinuousRestrictionStar5
if drawCount-index <= iMaxCOunt { // 连续n次还获得该英雄 直接替换其他英雄
_data, _ := this.configure.GetPollByType(pool)
if _data == nil {
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
update["star5Hero"] = record.Star5Hero
this.modelRecord.ChangeHeroRecord(uid, update) // 更新信息
return
for i := 0; i < 99; i++ {
if newCid, err := this.configure.GetHeroByPool(pool); err != nil {
if newCid != heroCid {
return newCid
}
}
}
record.Star5Hero[heroid] = drawCount
update["star5Hero"] = record.Star5Hero
this.modelRecord.ChangeHeroRecord(uid, update) // 更新信息
return heroCid
}
}
}
@ -771,85 +762,6 @@ func (this *Hero) SendTaskMsg(session comm.IUserSession, szStar []int32, drawCou
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) {
var (
_szHero []*pb.DBHero

View File

@ -319,21 +319,20 @@ type DBHeroRecord struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
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
Star4 int32 `protobuf:"varint,3,opt,name=star4,proto3" json:"star4"` // 4星保底
Star5 int32 `protobuf:"varint,4,opt,name=star5,proto3" json:"star5"` // 5星保底
Mtime int64 `protobuf:"varint,5,opt,name=mtime,proto3" json:"mtime"` // 修改时间
Drawcount int32 `protobuf:"varint,6,opt,name=drawcount,proto3" json:"drawcount"` // 普通卡牌累计抽取次数
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 累计抽卡次数
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
Totalcount int32 `protobuf:"varint,9,opt,name=totalcount,proto3" json:"totalcount"` // 总的累计抽卡次数
Daycount int32 `protobuf:"varint,10,opt,name=daycount,proto3" json:"daycount"` // 今天抽卡次数
Onebuy int32 `protobuf:"varint,11,opt,name=onebuy,proto3" json:"onebuy"` // 单次购买次数
Tenbuy int32 `protobuf:"varint,12,opt,name=tenbuy,proto3" json:"tenbuy"` // 十连购买次数
Inevitable int32 `protobuf:"varint,13,opt,name=inevitable,proto3" json:"inevitable"` //第2-30次抽奖必出一个5星英雄
Inevitable1 int32 `protobuf:"varint,14,opt,name=inevitable1,proto3" json:"inevitable1"` //第30-50次抽奖必出一个5星英雄
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
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
Mtime int64 `protobuf:"varint,3,opt,name=mtime,proto3" json:"mtime"` // 修改时间
Drawcount int32 `protobuf:"varint,4,opt,name=drawcount,proto3" json:"drawcount"` // 普通卡牌累计抽取次数
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 累计抽卡次数
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
Totalcount int32 `protobuf:"varint,7,opt,name=totalcount,proto3" json:"totalcount"` // 总的累计抽卡次数
Daycount int32 `protobuf:"varint,8,opt,name=daycount,proto3" json:"daycount"` // 今天抽卡次数
Onebuy int32 `protobuf:"varint,9,opt,name=onebuy,proto3" json:"onebuy"` // 单次购买次数
Tenbuy int32 `protobuf:"varint,10,opt,name=tenbuy,proto3" json:"tenbuy"` // 十连购买次数
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
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
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
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
}
func (x *DBHeroRecord) Reset() {
@ -382,20 +381,6 @@ func (x *DBHeroRecord) GetUid() string {
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 {
if x != nil {
return x.Mtime
@ -452,20 +437,6 @@ func (x *DBHeroRecord) GetTenbuy() int32 {
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 {
if x != nil {
return x.Race
@ -473,6 +444,27 @@ func (x *DBHeroRecord) GetRace() map[int32]int32 {
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 {
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,
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 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,
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,
0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73,
0x74, 0x61, 0x72, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x18, 0x04, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74,
0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65,
0x12, 0x1c, 0x0a, 0x09, 0x64, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20,
0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a,
0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28,
0x0a, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d,
0x74, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x72, 0x61, 0x77, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x05, 0x20, 0x03, 0x28, 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, 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,
0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 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, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x53, 0x74, 0x61,
0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x73, 0x74, 0x61,
0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61,
0x6c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x79, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x61, 0x79, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x18, 0x0b, 0x20, 0x01,
0x28, 0x05, 0x52, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x65,
0x6e, 0x62, 0x75, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x62,
0x75, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65,
0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62,
0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65,
0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x65, 0x76, 0x69, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x31, 0x12, 0x2b, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72,
0x64, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x72, 0x61, 0x63,
0x65, 0x1a, 0x3c, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e,
0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
0x3c, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a,
0x09, 0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb6, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x48, 0x65, 0x72,
0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 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,
0x2e, 0x53, 0x74, 0x61, 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x09, 0x73, 0x74, 0x61, 0x72, 0x35, 0x48, 0x65, 0x72, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f,
0x74, 0x61, 0x6c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
0x74, 0x6f, 0x74, 0x61, 0x6c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61,
0x79, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x61,
0x79, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79,
0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x6e, 0x65, 0x62, 0x75, 0x79, 0x12, 0x16,
0x0a, 0x06, 0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
0x74, 0x65, 0x6e, 0x62, 0x75, 0x79, 0x12, 0x2b, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0b,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63,
0x6f, 0x72, 0x64, 0x2e, 0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x72,
0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x34, 0x18, 0x0c, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x63, 0x6f,
0x72, 0x64, 0x2e, 0x42, 0x61, 0x6f, 0x64, 0x69, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06,
0x62, 0x61, 0x6f, 0x64, 0x69, 0x34, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x35,
0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52,
0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x42, 0x61, 0x6f, 0x64, 0x69, 0x35, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x52, 0x06, 0x62, 0x61, 0x6f, 0x64, 0x69, 0x35, 0x12, 0x2e, 0x0a, 0x05, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72,
0x6f, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x3c, 0x0a, 0x0e, 0x43, 0x6f, 0x6e,
0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x35,
0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x52, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39,
0x0a, 0x0b, 0x42, 0x61, 0x6f, 0x64, 0x69, 0x34, 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, 0x1a, 0x39, 0x0a, 0x0b, 0x42, 0x61, 0x6f,
0x64, 0x69, 0x35, 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, 0x1a, 0x38, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 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, 0x22, 0xb6,
0x01, 0x0a, 0x0c, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x12,
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69,
0x64, 0x12, 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 (
@ -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_msgTypes = make([]protoimpl.MessageInfo, 13)
var file_hero_hero_db_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_hero_hero_db_proto_goTypes = []interface{}{
(HeroType)(0), // 0: HeroType
(*DBHero)(nil), // 1: DBHero
@ -722,30 +728,36 @@ var file_hero_hero_db_proto_goTypes = []interface{}{
nil, // 10: DBHeroRecord.ConditionEntry
nil, // 11: DBHeroRecord.Star5HeroEntry
nil, // 12: DBHeroRecord.RaceEntry
nil, // 13: DBHeroTalent.TalentEntry
(*SkillData)(nil), // 14: SkillData
(*DB_EquipmentSuit)(nil), // 15: DB_EquipmentSuit
nil, // 13: DBHeroRecord.Baodi4Entry
nil, // 14: DBHeroRecord.Baodi5Entry
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{
14, // 0: DBHero.normalSkill:type_name -> SkillData
17, // 0: DBHero.normalSkill:type_name -> SkillData
4, // 1: DBHero.property:type_name -> DBHero.PropertyEntry
5, // 2: DBHero.addProperty:type_name -> DBHero.AddPropertyEntry
6, // 3: DBHero.juexProperty:type_name -> DBHero.JuexPropertyEntry
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
14, // 7: DBHero.equipSkill:type_name -> SkillData
17, // 7: DBHero.equipSkill:type_name -> SkillData
8, // 8: DBHero.horoscopeProperty:type_name -> DBHero.HoroscopePropertyEntry
9, // 9: DBHero.fetters:type_name -> DBHero.FettersEntry
10, // 10: DBHeroRecord.condition:type_name -> DBHeroRecord.ConditionEntry
11, // 11: DBHeroRecord.star5Hero:type_name -> DBHeroRecord.Star5HeroEntry
12, // 12: DBHeroRecord.race:type_name -> DBHeroRecord.RaceEntry
13, // 13: DBHeroTalent.talent:type_name -> DBHeroTalent.TalentEntry
14, // [14:14] is the sub-list for method output_type
14, // [14:14] is the sub-list for method input_type
14, // [14:14] is the sub-list for extension type_name
14, // [14:14] is the sub-list for extension extendee
0, // [0:14] is the sub-list for field type_name
13, // 13: DBHeroRecord.baodi4:type_name -> DBHeroRecord.Baodi4Entry
14, // 14: DBHeroRecord.baodi5:type_name -> DBHeroRecord.Baodi5Entry
15, // 15: DBHeroRecord.count:type_name -> DBHeroRecord.CountEntry
16, // 16: DBHeroTalent.talent:type_name -> DBHeroTalent.TalentEntry
17, // [17:17] is the sub-list for method output_type
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() }
@ -799,7 +811,7 @@ func file_hero_hero_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_hero_hero_db_proto_rawDesc,
NumEnums: 1,
NumMessages: 13,
NumMessages: 16,
NumExtensions: 0,
NumServices: 0,
},

View File

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

View File

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

View File

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

View File

@ -39,36 +39,7 @@ type GameGlobalData struct {
DrawToplimit int32
Draw10Star4Max int32
Draw10Star5Max int32
DrawFloorStar4 int32
DrawFloorStar5 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
SmithyMaxplayer int32
SmithyMaxtime int32
@ -142,9 +113,6 @@ type GameGlobalData struct {
SkillGetLocation []int32
DrawCardRechargeReward []int32
DrawCardRegressionReward []int32
DrawCard5StarsInRange []int32
DrawCard5StarsInRange1 []int32
DrawCard5StarsInRange1Pool string
DrawCardContinuousRestrictionStar5 int32
DrawCardContinuousRestrictionCamp 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["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["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 _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["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_) }
@ -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_Camp"].(float64); !_ok_ { err = errors.New("DrawCard_ContinuousRestriction_Camp error"); return }; _v.DrawCardContinuousRestrictionCamp = int32(_tempNum_) }
{