抽卡规则调整

This commit is contained in:
meixiongfeng 2023-06-26 17:02:25 +08:00
parent 081657a4b4
commit 1cc9c7a051
32 changed files with 3209 additions and 4282 deletions

View File

@ -9,6 +9,11 @@
"t": "diamond",
"n": 150
},
{
"a": "item",
"t": "14020000",
"n": 50
},
{
"a": "attr",
"t": "gold",
@ -28,6 +33,11 @@
"t": "diamond",
"n": 150
},
{
"a": "item",
"t": "14020000",
"n": 100
},
{
"a": "attr",
"t": "gold",
@ -47,6 +57,11 @@
"t": "diamond",
"n": 150
},
{
"a": "item",
"t": "14020000",
"n": 100
},
{
"a": "attr",
"t": "gold",
@ -66,6 +81,11 @@
"t": "diamond",
"n": 150
},
{
"a": "item",
"t": "14020000",
"n": 100
},
{
"a": "attr",
"t": "gold",

View File

@ -18097,7 +18097,7 @@
},
"type": 43,
"valid": 0,
"NPC": 10474,
"NPC": -102,
"value": 6,
"filter": [
6
@ -18385,7 +18385,7 @@
},
"type": 43,
"valid": 0,
"NPC": 10594,
"NPC": -102,
"value": 9,
"filter": [
6
@ -18530,7 +18530,7 @@
},
"type": 43,
"valid": 0,
"NPC": 10654,
"NPC": -102,
"value": 12,
"filter": [
6
@ -18672,7 +18672,7 @@
},
"type": 93,
"valid": 0,
"NPC": 10714,
"NPC": -102,
"value": 1,
"filter": [
1,
@ -18837,7 +18837,7 @@
},
"type": 43,
"valid": 0,
"NPC": 10784,
"NPC": -102,
"value": 12,
"filter": [
9
@ -19051,7 +19051,7 @@
},
"type": 43,
"valid": 0,
"NPC": 10874,
"NPC": -102,
"value": 18,
"filter": [
9
@ -19170,7 +19170,7 @@
},
"type": 43,
"valid": 0,
"NPC": 10924,
"NPC": -102,
"value": 8,
"filter": [
12

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_pool7",
"p4pool": "base_pool8",
"p5pool": "base_pool9",
"n3pool": "base_pool10",
"n4pool": "base_pool11",
"n5pool": "base_pool12",
"baodi4": 10,
"baidi5": 100,
"baidi5": 90,
"etime": -1,
"permission": 1,
"consumeA": [
@ -23,181 +36,162 @@
"n": 1
}
],
"consumeB": [
{
"a": "attr",
"t": "diamond",
"n": 200
}
]
"consumeB": []
},
{
"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_pool7",
"p4pool": "base_pool8",
"p5pool": "base_pool9",
"n3pool": "base_pool10",
"n4pool": "base_pool11",
"n5pool": "base_pool12",
"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
}
]
"consumeB": []
},
{
"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_pool10",
"n4pool": "base_pool11",
"n5pool": "base_pool12",
"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
}
]
"consumeB": []
},
{
"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_pool7",
"p4pool": "base_pool8",
"p5pool": "base_pool9",
"n3pool": "base_pool10",
"n4pool": "base_pool11",
"n5pool": "base_pool12",
"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
}
]
"consumeB": []
},
{
"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",
"baodi4": 10,
"baidi5": 100,
"etime": -1,
"permission": 1,
"consumeA": [
"recruitment_type": [
{
"a": "item",
"t": "10000023",
"n": 1
}
],
"consumeB": [
{
"a": "item",
"t": "10000033",
"n": 10
}
]
"k": 3,
"s": "base_pool1"
},
{
"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",
"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_pool10",
"n4pool": "base_pool11",
"n5pool": "base_pool12",
"baodi4": 10,
"baidi5": 100,
"baidi5": 0,
"etime": -1,
"permission": 1,
"consumeA": [
{
"a": "item",
"t": "10000024",
"n": 1
"t": "10000001",
"n": 5
}
],
"consumeB": [
{
"a": "item",
"t": "10000034",
"n": 10
}
]
"consumeB": []
}
]

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

@ -1618,5 +1618,165 @@
"n": 500
}
]
},
{
"index": "357",
"var": [
{
"a": "item",
"t": "14010001",
"n": 50
}
]
},
{
"index": "358",
"var": [
{
"a": "item",
"t": "14010002",
"n": 50
}
]
},
{
"index": "359",
"var": [
{
"a": "item",
"t": "14010003",
"n": 50
}
]
},
{
"index": "360",
"var": [
{
"a": "item",
"t": "14010004",
"n": 50
}
]
},
{
"index": "361",
"var": [
{
"a": "item",
"t": "14010005",
"n": 50
}
]
},
{
"index": "362",
"var": [
{
"a": "item",
"t": "14010006",
"n": 50
}
]
},
{
"index": "363",
"var": [
{
"a": "item",
"t": "14010007",
"n": 50
}
]
},
{
"index": "364",
"var": [
{
"a": "item",
"t": "14010008",
"n": 50
}
]
},
{
"index": "365",
"var": [
{
"a": "item",
"t": "14010009",
"n": 50
}
]
},
{
"index": "366",
"var": [
{
"a": "item",
"t": "14010010",
"n": 50
}
]
},
{
"index": "367",
"var": [
{
"a": "item",
"t": "14010011",
"n": 50
}
]
},
{
"index": "368",
"var": [
{
"a": "item",
"t": "14010012",
"n": 50
}
]
},
{
"index": "369",
"var": [
{
"a": "item",
"t": "14010013",
"n": 50
}
]
},
{
"index": "370",
"var": [
{
"a": "item",
"t": "14010014",
"n": 50
}
]
},
{
"index": "371",
"var": [
{
"a": "item",
"t": "14010015",
"n": 50
}
]
},
{
"index": "372",
"var": [
{
"a": "item",
"t": "14010016",
"n": 50
}
]
}
]

View File

@ -12597,5 +12597,38 @@
"text": "熊猫武馆升级木桩所需道具"
},
"sale": []
},
{
"id": "14010000",
"name": {
"key": "item_item_name_346",
"text": "食材大礼包"
},
"usetype": 5,
"color": 3,
"bagtype": 1,
"index": 1,
"special_type": 0,
"time": 0,
"reddottype": 0,
"effects": "",
"modelName": "",
"box_id": 14010000,
"synthetize_num": 0,
"synthetize_deplete": [],
"synthetize_get": [],
"decompose_deplete": [],
"decompose_get": [],
"access": [
904
],
"use_skip": 140,
"upper_limit": 999,
"img": "icon_mcs",
"intr": {
"key": "item_item_intr_354",
"text": "打开后可以随机获得烹饪的食材,可以去找平先生用食材来制作各种美食"
},
"sale": []
}
]

View File

@ -22881,7 +22881,7 @@
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "attr",
"a": "item",
"t": "gold",
"n": 1
},
@ -22894,5 +22894,389 @@
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 955,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010001",
"n": 1
},
"itemdes": "小麦",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 956,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010002",
"n": 1
},
"itemdes": "苹果",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 957,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010003",
"n": 1
},
"itemdes": "香蕉",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 958,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010004",
"n": 1
},
"itemdes": "玉米",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 959,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010005",
"n": 1
},
"itemdes": "土豆",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 960,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010006",
"n": 1
},
"itemdes": "萝卜",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 961,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010007",
"n": 1
},
"itemdes": "蘑菇",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 962,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010008",
"n": 1
},
"itemdes": "牛奶",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 963,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010009",
"n": 1
},
"itemdes": "南瓜",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 964,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010010",
"n": 1
},
"itemdes": "番茄",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 965,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010011",
"n": 1
},
"itemdes": "蜂蜜",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 966,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010012",
"n": 1
},
"itemdes": "杏仁",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 967,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010013",
"n": 1
},
"itemdes": "鸡蛋",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 968,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010014",
"n": 1
},
"itemdes": "鸡肉",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 969,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010015",
"n": 1
},
"itemdes": "猪肉",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
},
{
"id": 970,
"lotteryid": 14010000,
"description": "食材大礼包随机食材",
"type": 1,
"groupwt": 1000,
"groupid": 10001,
"subtype": 1,
"groupnum": 1,
"itemid": {
"a": "item",
"t": "14010016",
"n": 1
},
"itemdes": "鱼肉",
"itemwt": 1000,
"min": 1,
"max": 1,
"VIPmin": 0,
"VIPmax": 15,
"playerlvmin": 0,
"playerlvmax": 0,
"notice": 0
}
]

View File

@ -231,7 +231,7 @@
"木桩"
],
"functionicon": "ty_qp_mz",
"jumpId": 137
"jumpId": 10001
},
{
"Id": 14,

View File

@ -3020,11 +3020,13 @@
"id": 10664,
"heroid": 25001,
"datas": [
"GameMain",
"901"
"WuGuanScene",
"木桩3",
"137"
],
"event": [
0
2,
10200
],
"goto": 0
},
@ -3713,10 +3715,12 @@
"heroid": 25001,
"datas": [
"SmithyScene",
"功能入口-商人",
"139"
],
"event": [
0
10,
122
],
"goto": 0
},

View File

@ -62,7 +62,7 @@
},
"content": {
"key": "ruledesc_ruledesc_content_6",
"text": "这里可以选择守护者去完成陪练任务,每个陪练任务有不同的等级与阵容要求,完成任务可以获得高额奖励。"
"text": "这里可以选择守护者去完成陪练任务,每个陪练任务有不同的等级与阵容要求,满足格外需求还可以获得格外的道具奖励,完成任务可以获得高额奖励。"
}
},
{
@ -84,7 +84,7 @@
},
"content": {
"key": "ruledesc_ruledesc_content_8",
"text": "这里可以与其他玩家的阵容进行对决,也可以挑战npc获取奖励。挑战玩家获得积分,在每周结算时根据积分排名来获得奖励。"
"text": "这里可以与其他玩家的阵容进行对决,也可以挑战电脑阵容来获取奖励。<br>挑战电脑阵容难度随等级解锁,挑战需要消耗竞技场挑战卷。<br>挑战玩家也需消耗竞技场挑战卷,战胜玩家获得积分,在每周结算时根据积分排名来获得奖励。"
}
},
{
@ -157,11 +157,11 @@
"id": 10015,
"title": {
"key": "ruledesc_ruledesc_title_15",
"text": "守护者图鉴说明"
"text": "守护者说明"
},
"content": {
"key": "ruledesc_ruledesc_content_15",
"text": "这里可以查看你获得的所有守护者们,选择守护者可以查看详细界面并且强化他们。"
"text": "这里可以查看你获得的所有守护者们,选择守护者点击右侧按钮可以查看详细界面并且强化他们。<br>在强化界面,可以有各种方式强化守护者。<br>守护者等级强化:<br>点击守护者经验条下方的加号按钮可以进入守护者升级界面,使用护身符可以快速提升守护者等级。<br>守护者升星:<br>当守护者等级达到当前星级最大值三星最大等级为30级四星为40级5星为50级可以使用荣耀徽章提升守护者星级并解锁最高等级上限。守护者最高为6星<br>守护者技能等级强化:<br>点击技能图标上方的按钮,可以进入守护者技能升级界面,使用不同等级的功夫卷轴可以强化不同稀有度的守护者的技能等级。<br>守护者觉醒:<br>使用觉醒强化你的守护者。觉醒道具守护之心主要为招募重复守护者解锁。<br>守护者共鸣:<br>使用共鸣强化你的守护者。共鸣强化道具可以再狩猎与宝箱中获得。"
}
},
{
@ -194,7 +194,7 @@
},
"content": {
"key": "ruledesc_ruledesc_content_18",
"text": "这里可以使用圣桃枝招募新的守护者们<br>圣桃枝可以用200钻石购买一个<br>招募概率公示:<br>史诗守护者获得概率1.2%<br>完美守护者获得概率10.8%<br>稀有守护者获得概率88%"
"text": "这里可以使用圣桃枝招募新的守护者们<br>圣桃枝可以用200钻石购买一个<br>招募概率公示:<br>史诗守护者获得概率1.2%<br>完美守护者获得概率10.8%<br>稀有守护者获得概率88%"
}
},
{
@ -271,7 +271,7 @@
},
"content": {
"key": "ruledesc_ruledesc_content_25",
"text": "这里可以使用共鸣强化你的守护者(每个守护者共鸣独立)。"
"text": "这里可以使用共鸣强化你的守护者。<br>共鸣强化道具可在狩猎与宝箱中获得。"
}
},
{
@ -293,7 +293,7 @@
},
"content": {
"key": "ruledesc_ruledesc_content_27",
"text": "这里可以使用抽取过重复的守护者们加强该守护者。"
"text": "这里可以使用觉醒强化你的守护者。<br>觉醒道具守护之心主要为招募重复守护者获得。"
}
},
{

View File

@ -26773,7 +26773,7 @@
"Argu": [
1,
4,
3900
3500
],
"FollowSK": [],
"SucFollowSK": [],
@ -26838,7 +26838,7 @@
"Argu": [
1,
4,
4000
3600
],
"FollowSK": [],
"SucFollowSK": [],
@ -26861,7 +26861,7 @@
"Argu": [
1,
4,
4100
3700
],
"FollowSK": [],
"SucFollowSK": [],
@ -26884,7 +26884,7 @@
"Argu": [
1,
4,
4200
3800
],
"FollowSK": [],
"SucFollowSK": [],
@ -26907,7 +26907,7 @@
"Argu": [
1,
4,
4300
3900
],
"FollowSK": [],
"SucFollowSK": [],
@ -28413,7 +28413,7 @@
"Argu": [
1,
4,
4000
2000
],
"FollowSK": [
255003312
@ -29129,7 +29129,7 @@
"Argu": [
1,
4,
4000
2000
],
"FollowSK": [],
"SucFollowSK": [
@ -29231,7 +29231,7 @@
"Argu": [
1,
4,
1000
500
],
"FollowSK": [],
"SucFollowSK": [],

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,11 @@
"t": "diamond",
"n": 150
},
{
"a": "item",
"t": "14020000",
"n": 50
},
{
"a": "attr",
"t": "gold",
@ -28,6 +33,11 @@
"t": "diamond",
"n": 150
},
{
"a": "item",
"t": "14020000",
"n": 100
},
{
"a": "attr",
"t": "gold",
@ -47,6 +57,11 @@
"t": "diamond",
"n": 150
},
{
"a": "item",
"t": "14020000",
"n": 100
},
{
"a": "attr",
"t": "gold",
@ -66,6 +81,11 @@
"t": "diamond",
"n": 150
},
{
"a": "item",
"t": "14020000",
"n": 100
},
{
"a": "attr",
"t": "gold",

View File

@ -5,7 +5,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_1",
"text": "本周竞技场挑战{1}次"
"text": "本周竞技场挑战{0}次"
},
"type_id": 13000001,
"active": 10,
@ -31,7 +31,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_2",
"text": "本周竞技场挑战{1}次"
"text": "本周竞技场挑战{0}次"
},
"type_id": 13000002,
"active": 10,
@ -57,7 +57,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_3",
"text": "本周竞技场挑战{1}次"
"text": "本周竞技场挑战{0}次"
},
"type_id": 13000003,
"active": 10,
@ -83,7 +83,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_4",
"text": "本周竞技场胜利{1}次"
"text": "本周竞技场胜利{0}次"
},
"type_id": 13000004,
"active": 10,
@ -109,7 +109,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_5",
"text": "本周竞技场胜利{1}次"
"text": "本周竞技场胜利{0}次"
},
"type_id": 13000005,
"active": 10,
@ -135,7 +135,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_6",
"text": "本周竞技场胜利{1}次"
"text": "本周竞技场胜利{0}次"
},
"type_id": 13000006,
"active": 10,
@ -161,7 +161,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_7",
"text": "本周累计经验副本消耗{1}体力"
"text": "本周累计经验副本消耗{0}体力"
},
"type_id": 13000006,
"active": 10,
@ -187,7 +187,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_8",
"text": "本周累计经验副本消耗{1}体力"
"text": "本周累计经验副本消耗{0}体力"
},
"type_id": 13000006,
"active": 10,
@ -213,7 +213,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_9",
"text": "本周累计经验副本消耗{1}体力"
"text": "本周累计经验副本消耗{0}体力"
},
"type_id": 13000006,
"active": 10,
@ -239,7 +239,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_10",
"text": "本周累计消耗{1}点金币"
"text": "本周累计消耗{0}点金币"
},
"type_id": 13000006,
"active": 10,
@ -265,7 +265,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_11",
"text": "本周累计消耗{1}点金币"
"text": "本周累计消耗{0}点金币"
},
"type_id": 13000006,
"active": 10,
@ -291,7 +291,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_12",
"text": "本周累计消耗{1}点金币"
"text": "本周累计消耗{0}点金币"
},
"type_id": 13000006,
"active": 10,
@ -317,7 +317,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_13",
"text": "本周累计装备副本消耗{1}体力"
"text": "本周累计装备副本消耗{0}体力"
},
"type_id": 13000006,
"active": 10,
@ -343,7 +343,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_14",
"text": "本周累计装备副本消耗{1}体力"
"text": "本周累计装备副本消耗{0}体力"
},
"type_id": 13000006,
"active": 10,
@ -369,7 +369,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_15",
"text": "本周累计装备副本消耗{1}体力"
"text": "本周累计装备副本消耗{0}体力"
},
"type_id": 13000006,
"active": 10,
@ -395,7 +395,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_16",
"text": "本周累计回响副本消耗{1}体力"
"text": "本周累计回响副本消耗{0}体力"
},
"type_id": 13000006,
"active": 10,
@ -421,7 +421,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_17",
"text": "本周累计回响副本消耗{1}体力"
"text": "本周累计回响副本消耗{0}体力"
},
"type_id": 13000006,
"active": 10,
@ -447,7 +447,7 @@
"id_tag": 2,
"task_display": {
"key": "task_task_round_task_display_18",
"text": "本周累计回响副本消耗{1}体力"
"text": "本周累计回响副本消耗{0}体力"
},
"type_id": 13000006,
"active": 10,

View File

@ -131,7 +131,7 @@
},
"npctxt": {
"key": "worldtask_world_task_npctxt_4",
"text": "击退豺狼小怪小怪"
"text": "击退豺狼小怪"
},
"npc": 10020,
"completetask": [

View File

@ -1,14 +1,12 @@
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) {
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,
@ -19,254 +17,163 @@ func (this *apiComp) DrawCardCheck(session comm.IUserSession, req *pb.HeroDrawCa
}
//抽卡
func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq) (errdata *pb.ErrorData) {
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
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 // 指定次数抽卡到指定卡池
)
update = make(map[string]interface{})
cfgDraw = this.module.ModuleTools.GetGlobalConf() // 读取抽卡配置文件
if cfgDraw == nil {
return
}
if errdata = this.DrawCardCheck(session, req); errdata != nil {
return
}
appointmap = make(map[int32]string)
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
if heroRecord.Baodi4 == nil {
heroRecord.Baodi4 = make(map[int32]int32)
}
costRes = append(costRes, costAtn)
if errdata = this.module.CheckRes(session, costRes); errdata != nil { // 消耗数量不足直接返回
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) // 获取新的抽卡配置
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{})
cfgGlobal = this.module.ModuleTools.GetGlobalConf() // 读取抽卡配置文件
if cfgGlobal == nil {
return
}
if errdata = this.DrawCardV2Check(session, req); errdata != nil {
return
}
for i := 0; i < int(req.DrawCount); i++ {
drawCount += 1
pool = this.module.modelHero.CheckPool(drawCount, cfgDraw)
drawCount = heroRecord.Count[req.DrawType] // 获取当前阵容抽卡次数
if true { // 普通卡池抽卡
////// 获取消耗 star
if req.DrawCount == 1 {
costRes = drawConf.ConsumeA // 单抽消耗
} else {
costRes = drawConf.ConsumeB // 十连消耗
}
strPool = append(strPool, pool)
ret := this.module.CheckCondition(session.GetUserId())
if ret == true { // 命中插入5星英雄
szStar = append(szStar, 5)
heroRecord.Star5 = 0 // 重置保底
star5Max++ // 记录当前 5星数量
if errdata = this.module.CheckRes(session, costRes); errdata != nil { // 消耗数量不足直接返回
return
}
// 校验是否达到保底卡池
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
}
}
}
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++
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 {
star5Max++
heroRecord.Star5 = 0
star5Count++
heroRecord.Baodi5[req.DrawType] = 0
strPool = append(strPool, drawConf.P5pool)
}
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++
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 {
star5Max++
star5Count++
heroRecord.Baodi5[req.DrawType] = 0
strPool = append(strPool, drawConf.N5pool)
}
if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max {
starIndex = 0
}
szStar = append(szStar, starIndex)
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
}
// 判断是否必出4星
if heroRecord.Baodi4[req.DrawType] >= drawConf.Baodi4 {
heroRecord.Baodi4[req.DrawType] = 0
star4Count++
if IsBaodiPool {
strPool[len(strPool)-1] = drawConf.P4pool
} else {
strPool[len(strPool)-1] = drawConf.N4pool
}
continue
}
heroRecord.Baodi5[req.DrawType]++
heroRecord.Baodi4[req.DrawType]++
if req.DrawType == 10 {
if star4Count >= cfgGlobal.Draw10Star4Max { // 10连抽最大4星数量
if IsBaodiPool {
strPool[len(strPool)-1] = drawConf.P3pool
} else {
strPool[len(strPool)-1] = drawConf.N3pool
}
}
if star5Count >= cfgGlobal.Draw10Star5Max { // 10连抽最大5星数量
if IsBaodiPool {
strPool[len(strPool)-1] = drawConf.P3pool
} else {
strPool[len(strPool)-1] = drawConf.N3pool
}
}
}
for index, star := range szStar {
_data, err := this.module.configure.GetPollByType(strPool[index])
}
}
// 通过卡池获得最终的英雄
for _, v := range strPool {
card, err := this.module.configure.GetHeroByPool(v)
if err != nil {
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

@ -1,369 +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
heroRecord *pb.DBHeroRecord
pool string // 当前抽对应的卡池
atno []*pb.UserAtno // 最终获得的资源
strPool []string // 10连跨多个卡池情况
update map[string]interface{}
normalDraw bool // 是否是普通抽
drawConf *cfg.GameDrawPoolData
err error
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) // 获取新的抽卡配置
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 {
return
}
if errdata = this.DrawCardV2Check(session, req); errdata != nil {
return
}
drawCount = heroRecord.Count[req.DrawType] // 获取当前阵容抽卡次数
if req.DrawType == 0 { // 普通卡池抽卡
////// 获取消耗 star
if req.DrawCount == 1 {
costRes = drawConf.ConsumeA // 单抽消耗
} else {
costRes = drawConf.ConsumeB // 十连消耗
}
if errdata = this.module.CheckRes(session, costRes); errdata != nil { // 消耗数量不足直接返回
return
}
///// 获取消耗 end
for i := 1; i <= int(req.DrawCount); i++ { // 一张一张的抽
drawCount++
if v, ok := appointmap[drawCount]; ok { // 优先校验是否是指定抽
strPool = append(strPool, v) //找到了
continue
}
// 随机获取三星
}
} else {
}
if req.DrawType == 0 { // 普通卡池抽卡
normalDraw = true
// 获取普通抽卡池
// if req.DrawCount == 1 {
// costAtn = cfgDraw.BasePoolCost
// } else {
// costAtn = cfgDraw.BasePool10cost
// }
// 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 {
strPool = append(strPool, pool)
} else {
for i := 0; i < int(req.DrawCount); i++ {
strPool = append(strPool, pool)
}
}
//阵营消耗
if errdata = this.module.CheckRes(session, costRes); errdata != nil { // 消耗数量不足直接返回
return
}
for {
starWeight := []int32{cfgDraw.CampPoolStar3, cfgDraw.CampPoolStar4, cfgDraw.CampPoolStar5}
starIndex := comm.GetRandW(starWeight)
if starIndex == 1 {
star4Max++
} else if starIndex == 2 {
star5Max++
}
if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max {
starIndex = 0
}
szStar = append(szStar, starIndex)
if len(szStar) >= int(req.DrawCount) {
break
}
}
}
for index, star := range szStar {
_data, err := this.module.configure.GetPollByType(strPool[index])
if err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ConfigNoFound,
Title: pb.ErrorCode_ConfigNoFound.ToString(),
Message: err.Error(),
}
return
}
sz := make([]int32, 0)
for _, v := range _data[int32(star)] {
sz = append(sz, v.Weight)
}
randomIndex := comm.GetRandW(sz)
if v, ok := _data[int32(star)]; ok {
if int32(len(v)) > randomIndex {
cardId := v[randomIndex].Id
if star == 5 { // 抽出5星英雄后A次抽奖内不会再抽到5星英雄普通卡池+阵营卡池)
curDrawCount := drawCount - req.DrawCount
if drawCount <= 10 { // 前10次不计算连续抽卡最多连续出A个相同阵营的英雄
szCards = append(szCards, cardId)
continue
}
newID := this.module.ContinuousRestriction(session.GetUserId(), cardId, curDrawCount+int32(index+1), strPool[index])
szCards = append(szCards, newID)
continue
}
szCards = append(szCards, cardId)
// 普通卡池 最多连续出A个相同阵营的英雄
if req.DrawType == 0 {
newId := this.module.DrawCardContinuousRestrictionCamp(cardId, heroRecord.Race, sz, v)
if cardId != newId {
szCards[len(szCards)-1] = newId
}
}
}
}
}
// 消耗道具
if errdata = this.module.ConsumeRes(session, costRes, true); errdata != nil {
return
}
heroRecord.Totalcount += req.DrawCount
heroRecord.Daycount += req.DrawCount
update["star4"] = heroRecord.Star4
update["star5"] = heroRecord.Star5
update["drawcount"] = drawCount
update["totalcount"] = heroRecord.Totalcount
update["daycount"] = heroRecord.Daycount
this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update)
rsp := &pb.HeroDrawCardResp{
Data: []*pb.AtnoData{},
}
for _, heroId := range szCards {
if errdata, atno = this.module.DispenseAtno(session, []*cfg.Gameatn{{
A: "hero",
T: heroId,
N: 1,
}}, true); errdata == nil {
rsp.Data = append(rsp.Data, &pb.AtnoData{Atno: atno})
for _, v := range atno {
if v.A == "hero" && v.N == 1 {
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil { // 广播 首次获得英雄
this.chat.SendSysChatToWorld(comm.ChatSystem13, nil, 0, 0, user.Name, v.T)
}
}
}
} else {
return
}
}
session.SendMsg(string(this.module.GetType()), DrawCard, rsp)
// 任务统计
this.module.SendTaskMsg(session, szStar, req.DrawCount, normalDraw)
return
}

View File

@ -25,7 +25,7 @@ const (
hero_skillup = "game_heroskilllevel.json" // 英雄技能升级
game_skillatk = "game_skillatk.json" // 英雄技能
hero_awaken = "game_heroawaken.json" // 英雄觉醒
hero_drawcard = "game_drawcard.json" // 抽卡
//hero_drawcard = "game_drawcard.json" // 抽卡
hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整
hero_drawcost = "game_drawcost.json" // 抽卡消耗
hero_fusion = "game_herofusion.json" // 卡牌融合
@ -36,16 +36,19 @@ const (
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 星级
//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
}
// 组件初始化接口
@ -62,16 +65,16 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
hero_exp: cfg.NewGameHeroExp,
hero_skillup: cfg.NewGameHeroSkillLevel,
game_skillatk: cfg.NewGameSkillAtk,
hero_drawcard: cfg.NewGameDrawCard,
//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,
//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 (
@ -420,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)
}
}
}
}
err = comm.NewNotFoundConfErr(moduleName, hero_draw, id)
if len(sz) == 0 { // 异常报错提醒
err = comm.NewNotFoundConfErr(moduleName, hero_cardpool, pool)
return
}
hid = v[comm.GetRandW(sz)].Id
return
}
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

@ -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 < 99; i++ {
if newCid, err := this.configure.GetHeroByPool(pool); err != nil {
if newCid != heroCid {
return newCid
}
}
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
}
}
}
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

@ -646,67 +646,6 @@ var file_hero_hero_db_proto_rawDesc = []byte{
0x70, 0x65, 0x72, 0x74, 0x79, 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,
<<<<<<< HEAD
<<<<<<< Updated upstream
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x98, 0x05, 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, 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,
=======
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74,
0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
@ -798,79 +737,6 @@ var file_hero_hero_db_proto_rawDesc = []byte{
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,
>>>>>>> Stashed changes
=======
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74,
0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 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, 0x44, 0x0a, 0x16, 0x48, 0x6f, 0x72,
0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 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,
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,
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,
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,
>>>>>>> 03aec7e408a1e80da7f408debda883b93b688d29
}
var (
@ -888,8 +754,6 @@ 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, 16)
var file_hero_hero_db_proto_goTypes = []interface{}{
<<<<<<< HEAD
<<<<<<< Updated upstream
(HeroType)(0), // 0: HeroType
(*DBHero)(nil), // 1: DBHero
(*DBHeroRecord)(nil), // 2: DBHeroRecord
@ -903,37 +767,12 @@ 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
=======
=======
>>>>>>> 03aec7e408a1e80da7f408debda883b93b688d29
(HeroType)(0), // 0: HeroType
(*DBHero)(nil), // 1: DBHero
(*DBHeroRecord)(nil), // 2: DBHeroRecord
(*DBHeroTalent)(nil), // 3: DBHeroTalent
nil, // 4: DBHero.PropertyEntry
nil, // 5: DBHero.AddPropertyEntry
nil, // 6: DBHero.JuexPropertyEntry
nil, // 7: DBHero.TalentPropertyEntry
nil, // 8: DBHero.HoroscopePropertyEntry
nil, // 9: DBHero.FettersEntry
nil, // 10: DBHeroRecord.ConditionEntry
nil, // 11: DBHeroRecord.Star5HeroEntry
nil, // 12: DBHeroRecord.RaceEntry
<<<<<<< HEAD
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
>>>>>>> Stashed changes
=======
nil, // 13: DBHeroTalent.TalentEntry
(*SkillData)(nil), // 14: SkillData
(*DB_EquipmentSuit)(nil), // 15: DB_EquipmentSuit
>>>>>>> 03aec7e408a1e80da7f408debda883b93b688d29
}
var file_hero_hero_db_proto_depIdxs = []int32{
17, // 0: DBHero.normalSkill:type_name -> SkillData
@ -941,36 +780,14 @@ var file_hero_hero_db_proto_depIdxs = []int32{
5, // 2: DBHero.addProperty:type_name -> DBHero.AddPropertyEntry
6, // 3: DBHero.juexProperty:type_name -> DBHero.JuexPropertyEntry
0, // 4: DBHero.status:type_name -> HeroType
<<<<<<< HEAD
<<<<<<< Updated upstream
7, // 5: DBHero.talentProperty:type_name -> DBHero.TalentPropertyEntry
14, // 6: DBHero.equipSkill:type_name -> SkillData
8, // 7: DBHero.horoscopeProperty:type_name -> DBHero.HoroscopePropertyEntry
9, // 8: DBHero.fetters:type_name -> DBHero.FettersEntry
10, // 9: DBHeroRecord.condition:type_name -> DBHeroRecord.ConditionEntry
11, // 10: DBHeroRecord.star5Hero:type_name -> DBHeroRecord.Star5HeroEntry
12, // 11: DBHeroRecord.race:type_name -> DBHeroRecord.RaceEntry
13, // 12: DBHeroTalent.talent:type_name -> DBHeroTalent.TalentEntry
13, // [13:13] is the sub-list for method output_type
13, // [13:13] is the sub-list for method input_type
13, // [13:13] is the sub-list for extension type_name
13, // [13:13] is the sub-list for extension extendee
0, // [0:13] is the sub-list for field type_name
=======
18, // 5: DBHero.suits:type_name -> DB_EquipmentSuit
7, // 6: DBHero.talentProperty:type_name -> DBHero.TalentPropertyEntry
17, // 7: DBHero.equipSkill:type_name -> SkillData
=======
15, // 5: DBHero.suits:type_name -> DB_EquipmentSuit
7, // 6: DBHero.talentProperty:type_name -> DBHero.TalentPropertyEntry
14, // 7: DBHero.equipSkill:type_name -> SkillData
>>>>>>> 03aec7e408a1e80da7f408debda883b93b688d29
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
<<<<<<< HEAD
13, // 13: DBHeroRecord.baodi4:type_name -> DBHeroRecord.Baodi4Entry
14, // 14: DBHeroRecord.baodi5:type_name -> DBHeroRecord.Baodi5Entry
15, // 15: DBHeroRecord.count:type_name -> DBHeroRecord.CountEntry
@ -980,15 +797,6 @@ var file_hero_hero_db_proto_depIdxs = []int32{
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
>>>>>>> Stashed changes
=======
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
>>>>>>> 03aec7e408a1e80da7f408debda883b93b688d29
}
func init() { file_hero_hero_db_proto_init() }

View File

@ -30,11 +30,10 @@ type DB_UserItemData struct {
UId string `protobuf:"bytes,2,opt,name=uId,proto3" json:"uId" bson:"uid"` // 用户id
ItemId string `protobuf:"bytes,3,opt,name=itemId,proto3" json:"itemId" bson:"itemId"` // 存放物品的Id
Amount uint32 `protobuf:"varint,4,opt,name=amount,proto3" json:"amount" bson:"amount"` // 存放物品的数量
Change int32 `protobuf:"varint,5,opt,name=change,proto3" json:"change" bson:"change"` // 最后一次变化量
CTime int64 `protobuf:"varint,6,opt,name=cTime,proto3" json:"cTime" bson:"cTime"` // 物品获取时间
ETime int64 `protobuf:"varint,7,opt,name=eTime,proto3" json:"eTime" bson:"eTime"` // 物品过期时间
IsNewItem bool `protobuf:"varint,8,opt,name=isNewItem,proto3" json:"isNewItem" bson:"isNewItem"` // 是否是新的
Lastopt int64 `protobuf:"varint,9,opt,name=lastopt,proto3" json:"lastopt" bson:"lastopt"` // 最后操作时间
CTime int64 `protobuf:"varint,5,opt,name=cTime,proto3" json:"cTime" bson:"cTime"` // 物品获取时间
ETime int64 `protobuf:"varint,6,opt,name=eTime,proto3" json:"eTime" bson:"eTime"` // 物品过期时间
IsNewItem bool `protobuf:"varint,7,opt,name=isNewItem,proto3" json:"isNewItem" bson:"isNewItem"` // 是否是新的
Lastopt int64 `protobuf:"varint,8,opt,name=lastopt,proto3" json:"lastopt" bson:"lastopt"` // 最后操作时间
}
func (x *DB_UserItemData) Reset() {
@ -97,13 +96,6 @@ func (x *DB_UserItemData) GetAmount() uint32 {
return 0
}
func (x *DB_UserItemData) GetChange() int32 {
if x != nil {
return x.Change
}
return 0
}
func (x *DB_UserItemData) GetCTime() int64 {
if x != nil {
return x.CTime
@ -136,22 +128,21 @@ var File_items_items_db_proto protoreflect.FileDescriptor
var file_items_items_db_proto_rawDesc = []byte{
0x0a, 0x14, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x64, 0x62,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe7, 0x01, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x55, 0x73,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcf, 0x01, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x55, 0x73,
0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x72,
0x69, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x72, 0x69, 0x64,
0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x75, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06,
0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x6d,
0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05,
0x63, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x54, 0x69,
0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
0x03, 0x52, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x4e, 0x65,
0x77, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x4e,
0x65, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x61, 0x73, 0x74, 0x6f, 0x70,
0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x73, 0x74, 0x6f, 0x70, 0x74,
0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20,
0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x54,
0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x54, 0x69, 0x6d, 0x65,
0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x07, 0x20,
0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x18,
0x0a, 0x07, 0x6c, 0x61, 0x73, 0x74, 0x6f, 0x70, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52,
0x07, 0x6c, 0x61, 0x73, 0x74, 0x6f, 0x70, 0x74, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (

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_) }
{