秘境掉落优化

This commit is contained in:
meixiongfeng 2023-08-14 14:56:56 +08:00
parent 5bfa66a65d
commit f58b616c29
7 changed files with 802 additions and 562 deletions

View File

@ -10435,6 +10435,228 @@
], ],
"expitemnum": 7 "expitemnum": 7
}, },
{
"hid": "54018",
"name": {
"key": "hero_main_name_54018",
"text": "村民兔"
},
"star": 3,
"color": 2,
"race": 4,
"job": 1,
"type": 2,
"ip": 1,
"sd": 1,
"handbook": -1,
"prefab": "54017",
"rotation": "0|0|0",
"revolve": 0,
"icon": "54017",
"vocal": "54017",
"tujing": [
107
],
"detailwindow": "effect_chezhan_daiji",
"intr": {
"key": "",
"text": ""
},
"events": "hero_54005",
"cite": "",
"effectstay": [],
"hpspace": {
"x": 0,
"y": -0.69,
"z": 0
},
"capskillrule": 101,
"skill": 0,
"skill1": 0,
"skill2": 0,
"skill3": 0,
"txt": {
"key": "atlas_54018",
"text": ""
},
"enteranivalue": 0,
"camerainterval": 0,
"equiprcom": [
1,
2,
10
],
"angle": 0,
"deviation": 0,
"show": 2,
"herofrag": [
{
"a": "item",
"t": "12025001",
"n": 1
}
],
"herofragnum": 6,
"heroskillup": [
"10000004"
],
"expitem": [
{
"a": "item",
"t": "10000011",
"n": 1
}
],
"expitemnum": 7
},
{
"hid": "54019",
"name": {
"key": "hero_main_name_54019",
"text": "独眼怪人"
},
"star": 3,
"color": 2,
"race": 4,
"job": 1,
"type": 2,
"ip": 1,
"sd": 1,
"handbook": -1,
"prefab": "54017",
"rotation": "0|0|0",
"revolve": 0,
"icon": "54017",
"vocal": "54017",
"tujing": [
107
],
"detailwindow": "effect_chezhan_daiji",
"intr": {
"key": "",
"text": ""
},
"events": "hero_54005",
"cite": "",
"effectstay": [],
"hpspace": {
"x": 0,
"y": -0.69,
"z": 0
},
"capskillrule": 101,
"skill": 0,
"skill1": 0,
"skill2": 0,
"skill3": 0,
"txt": {
"key": "atlas_54019",
"text": ""
},
"enteranivalue": 0,
"camerainterval": 0,
"equiprcom": [
1,
2,
10
],
"angle": 0,
"deviation": 0,
"show": 2,
"herofrag": [
{
"a": "item",
"t": "12025001",
"n": 1
}
],
"herofragnum": 6,
"heroskillup": [
"10000004"
],
"expitem": [
{
"a": "item",
"t": "10000011",
"n": 1
}
],
"expitemnum": 7
},
{
"hid": "54020",
"name": {
"key": "hero_main_name_54020",
"text": "村民猪"
},
"star": 3,
"color": 2,
"race": 4,
"job": 1,
"type": 2,
"ip": 1,
"sd": 1,
"handbook": -1,
"prefab": "54017",
"rotation": "0|0|0",
"revolve": 0,
"icon": "54017",
"vocal": "54017",
"tujing": [
107
],
"detailwindow": "effect_chezhan_daiji",
"intr": {
"key": "",
"text": ""
},
"events": "hero_54005",
"cite": "",
"effectstay": [],
"hpspace": {
"x": 0,
"y": -0.69,
"z": 0
},
"capskillrule": 101,
"skill": 0,
"skill1": 0,
"skill2": 0,
"skill3": 0,
"txt": {
"key": "atlas_54020",
"text": ""
},
"enteranivalue": 0,
"camerainterval": 0,
"equiprcom": [
1,
2,
10
],
"angle": 0,
"deviation": 0,
"show": 2,
"herofrag": [
{
"a": "item",
"t": "12025001",
"n": 1
}
],
"herofragnum": 6,
"heroskillup": [
"10000004"
],
"expitem": [
{
"a": "item",
"t": "10000011",
"n": 1
}
],
"expitemnum": 7
},
{ {
"hid": "51050", "hid": "51050",
"name": { "name": {

View File

@ -18647,7 +18647,7 @@
}, },
"usetype": 1, "usetype": 1,
"color": 2, "color": 2,
"bagtype": 1, "bagtype": 0,
"index": 1, "index": 1,
"special_type": 0, "special_type": 0,
"time": 0, "time": 0,
@ -18692,7 +18692,7 @@
}, },
"usetype": 1, "usetype": 1,
"color": 2, "color": 2,
"bagtype": 1, "bagtype": 0,
"index": 1, "index": 1,
"special_type": 0, "special_type": 0,
"time": 0, "time": 0,
@ -18737,7 +18737,7 @@
}, },
"usetype": 1, "usetype": 1,
"color": 2, "color": 2,
"bagtype": 1, "bagtype": 0,
"index": 1, "index": 1,
"special_type": 0, "special_type": 0,
"time": 0, "time": 0,

View File

@ -6001,7 +6001,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004011, "Id": 213002011,
"EmitPR": 1000, "EmitPR": 1000,
"From": 1, "From": 1,
"Where": [], "Where": [],
@ -6025,7 +6025,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004111, "Id": 213002111,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6040,7 +6040,7 @@
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
224004112 213002112
], ],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
@ -6050,7 +6050,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004112, "Id": 213002112,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6074,7 +6074,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004121, "Id": 213002121,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6089,7 +6089,7 @@
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
224004122 213002122
], ],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
@ -6099,7 +6099,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004122, "Id": 213002122,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6123,7 +6123,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004131, "Id": 213002131,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6138,7 +6138,7 @@
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
224004132 213002132
], ],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
@ -6148,7 +6148,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004132, "Id": 213002132,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6172,7 +6172,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004141, "Id": 213002141,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6187,7 +6187,7 @@
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
224004142 213002142
], ],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
@ -6197,7 +6197,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004142, "Id": 213002142,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6221,7 +6221,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004151, "Id": 213002151,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6236,7 +6236,7 @@
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
224004152 213002152
], ],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
@ -6246,7 +6246,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004152, "Id": 213002152,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6270,7 +6270,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004211, "Id": 213002211,
"EmitPR": 1000, "EmitPR": 1000,
"From": 3, "From": 3,
"Where": [], "Where": [],
@ -6293,7 +6293,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004212, "Id": 213002212,
"EmitPR": 1000, "EmitPR": 1000,
"From": 9, "From": 9,
"Where": [], "Where": [],
@ -6317,7 +6317,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004311, "Id": 213002311,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6340,7 +6340,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004312, "Id": 213002312,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6364,7 +6364,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004313, "Id": 213002313,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6388,7 +6388,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004321, "Id": 213002321,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6411,7 +6411,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004331, "Id": 213002331,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6434,7 +6434,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004341, "Id": 213002341,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6457,7 +6457,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004351, "Id": 213002351,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -6480,7 +6480,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 224004361, "Id": 213002361,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16466,7 +16466,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002111, "Id": 224004111,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16489,7 +16489,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002112, "Id": 224004112,
"EmitPR": 1000, "EmitPR": 1000,
"From": 3, "From": 3,
"Where": [], "Where": [],
@ -16498,7 +16498,7 @@
"ExecuteCnt": 1, "ExecuteCnt": 1,
"Type": 2, "Type": 2,
"Argu": [ "Argu": [
413002111, 424004111,
-1, -1,
-1 -1
], ],
@ -16512,7 +16512,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002113, "Id": 224004113,
"EmitPR": 1000, "EmitPR": 1000,
"From": 3, "From": 3,
"Where": [], "Where": [],
@ -16526,7 +16526,7 @@
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
213002113 224004113
], ],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
@ -16536,7 +16536,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002121, "Id": 224004121,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16559,7 +16559,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002131, "Id": 224004131,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16582,7 +16582,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002141, "Id": 224004141,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16605,7 +16605,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002151, "Id": 224004151,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16628,7 +16628,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002211, "Id": 224004211,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16643,7 +16643,7 @@
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
213002212 224004212
], ],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
@ -16653,7 +16653,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002212, "Id": 224004212,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16677,7 +16677,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002221, "Id": 224004221,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16692,7 +16692,7 @@
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
213002212 224004212
], ],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
@ -16702,7 +16702,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002231, "Id": 224004231,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16717,7 +16717,7 @@
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
213002212 224004212
], ],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
@ -16727,7 +16727,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002241, "Id": 224004241,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16742,7 +16742,7 @@
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
213002212 224004212
], ],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
@ -16752,7 +16752,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002251, "Id": 224004251,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16767,7 +16767,7 @@
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
213002212 224004212
], ],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
@ -16777,7 +16777,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002311, "Id": 224004311,
"EmitPR": 1000, "EmitPR": 1000,
"From": 3, "From": 3,
"Where": [], "Where": [],
@ -16786,7 +16786,7 @@
"ExecuteCnt": 1, "ExecuteCnt": 1,
"Type": 2, "Type": 2,
"Argu": [ "Argu": [
413002311, 424004311,
-1, -1,
-1 -1
], ],
@ -16800,7 +16800,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002312, "Id": 224004312,
"EmitPR": 1000, "EmitPR": 1000,
"From": 3, "From": 3,
"Where": [], "Where": [],
@ -16809,7 +16809,7 @@
"ExecuteCnt": 1, "ExecuteCnt": 1,
"Type": 2, "Type": 2,
"Argu": [ "Argu": [
413002312, 424004312,
-1, -1,
-1 -1
], ],
@ -16823,7 +16823,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002313, "Id": 224004313,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16846,7 +16846,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002323, "Id": 224004323,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16869,7 +16869,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002333, "Id": 224004333,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16892,7 +16892,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002343, "Id": 224004343,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16915,7 +16915,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002353, "Id": 224004353,
"EmitPR": 1000, "EmitPR": 1000,
"From": 4, "From": 4,
"Where": [], "Where": [],
@ -16938,7 +16938,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002314, "Id": 224004314,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 2,
"Where": [], "Where": [],
@ -16961,7 +16961,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002324, "Id": 224004324,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 2,
"Where": [], "Where": [],
@ -16984,7 +16984,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002334, "Id": 224004334,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 2,
"Where": [], "Where": [],
@ -17007,7 +17007,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002344, "Id": 224004344,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 2,
"Where": [], "Where": [],
@ -17030,7 +17030,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 213002354, "Id": 224004354,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 2,
"Where": [], "Where": [],

File diff suppressed because it is too large Load Diff

View File

@ -417,7 +417,7 @@
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
"MaxEmitTimesInRound": 1, "MaxEmitTimesInRound": 1,
"Callback": [ "Callback": [
224004212 213002212
] ]
}, },
{ {
@ -436,7 +436,7 @@
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
"MaxEmitTimesInRound": 1, "MaxEmitTimesInRound": 1,
"Callback": [ "Callback": [
924004212 913002212
] ]
}, },
{ {
@ -980,7 +980,7 @@
] ]
}, },
{ {
"Id": 413002111, "Id": 424004111,
"When": 10, "When": 10,
"FromCheck": "Target=3", "FromCheck": "Target=3",
"TargetCheck": "", "TargetCheck": "",
@ -995,15 +995,15 @@
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
"MaxEmitTimesInRound": 1, "MaxEmitTimesInRound": 1,
"Callback": [ "Callback": [
213002113 224004113
] ]
}, },
{ {
"Id": 413002311, "Id": 424004311,
"When": 15, "When": 15,
"FromCheck": "Target=3", "FromCheck": "Target=3",
"TargetCheck": "", "TargetCheck": "",
"MainSkillCheck": "MainSkillID=113002311", "MainSkillCheck": "MainSkillID=124004311",
"AfterSkillCheck": "", "AfterSkillCheck": "",
"BuffCheck": "", "BuffCheck": "",
"AddCon": [], "AddCon": [],
@ -1014,15 +1014,15 @@
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
"MaxEmitTimesInRound": 1, "MaxEmitTimesInRound": 1,
"Callback": [ "Callback": [
113002312 124004312
] ]
}, },
{ {
"Id": 413002312, "Id": 424004312,
"When": 15, "When": 15,
"FromCheck": "Target=3", "FromCheck": "Target=3",
"TargetCheck": "", "TargetCheck": "",
"MainSkillCheck": "MainSkillID=113002312", "MainSkillCheck": "MainSkillID=124004312",
"AfterSkillCheck": "", "AfterSkillCheck": "",
"BuffCheck": "", "BuffCheck": "",
"AddCon": [], "AddCon": [],
@ -1033,7 +1033,7 @@
"MaxEmitTimes": 0, "MaxEmitTimes": 0,
"MaxEmitTimesInRound": 2, "MaxEmitTimesInRound": 2,
"Callback": [ "Callback": [
113002312 124004312
] ]
}, },
{ {

View File

@ -48,9 +48,9 @@ type configureComp struct {
_groupType1R map[int64][]int32 //value cid _groupType1R map[int64][]int32 //value cid
// 小组类型为2 // 小组类型为2
_groupType2R map[int64][]int32 //value cid _groupType2R map[int64][]int32 //value cid
BtypeR map[int32]int32 //Btype map[int32]int32
StypeR map[int64]int32 // subtype StypeR map[int64]int32 // subtype
SNumR map[int64]int32 // 小组产出数量 SNumR map[int64]int32 // 小组产出数量
// event 随机 // event 随机
_groupE map[int64][]int32 // key 小组ID value cid _groupE map[int64][]int32 // key 小组ID value cid
@ -62,9 +62,8 @@ type configureComp struct {
_groupType1E map[int64][]int32 //value cid _groupType1E map[int64][]int32 //value cid
// 小组类型为2 // 小组类型为2
_groupType2E map[int64][]int32 //value cid _groupType2E map[int64][]int32 //value cid
BtypeE map[int32]int32 StypeE map[int64]int32 // subtype
StypeE map[int64]int32 // subtype SNumE map[int64]int32 // 小组产出数量
SNumE map[int64]int32 // 小组产出数量
// buff 随机 // buff 随机
buffLottery map[int32]map[int32]*cfg.GameBufflotteryData buffLottery map[int32]map[int32]*cfg.GameBufflotteryData
@ -99,6 +98,8 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
configure.RegisterConfigure(game_buffconf, cfg.NewGameStoneBuff, this.LoadGameStoneBuff) configure.RegisterConfigure(game_buffconf, cfg.NewGameStoneBuff, this.LoadGameStoneBuff)
configure.RegisterConfigure(game_storyconf, cfg.NewGameStoneStory, this.LoadGameStoneStory) configure.RegisterConfigure(game_storyconf, cfg.NewGameStoneStory, this.LoadGameStoneStory)
this.GetEventGroupDataByLottery(0)
this.GetRoomGroupDataByLottery(16010101)
return return
} }
@ -112,15 +113,33 @@ func (this *configureComp) LoadEventGroupData() {
this._lotteryType2E = make(map[int32][]int32, 0) this._lotteryType2E = make(map[int32][]int32, 0)
this._groupType1E = make(map[int64][]int32, 0) this._groupType1E = make(map[int64][]int32, 0)
this._groupType2E = make(map[int64][]int32, 0) this._groupType2E = make(map[int64][]int32, 0)
this.BtypeE = make(map[int32]int32, 0) //this.Btype = make(map[int32]int32, 0)
this.StypeE = make(map[int64]int32, 0) this.StypeE = make(map[int64]int32, 0)
this.SNumE = make(map[int64]int32, 0) this.SNumE = make(map[int64]int32, 0)
for _, value := range configure.GetDataList() { var tmp1 int64
key := int64(value.GroupId)<<31 + int64(value.SubGroupId) var tmp2 int64
this._groupE[key] = append(this._groupE[key], value.Id) var itype int32
var wt int32
var subid int32
if _, ok := this.BtypeE[value.GroupId]; !ok { for _, value := range configure.GetDataList() {
this.BtypeE[value.GroupId] = value.GroupType if value.SubGroupId == 0 {
value.SubGroupId = subid
} else {
subid = value.SubGroupId
}
key := int64(value.GroupId)<<31 + int64(value.SubGroupId)
// key2 := int64(value.Lotteryid)<<31 + int64(value.Type)
this._groupE[key] = append(this._groupE[key], value.Id)
if value.GroupType == 0 {
value.GroupType = itype
} else {
itype = value.GroupType
}
if value.SubGroupWt == 0 {
value.SubGroupWt = wt
} else {
wt = value.SubGroupWt
} }
if _, ok := this.StypeE[key]; !ok { if _, ok := this.StypeE[key]; !ok {
@ -129,10 +148,19 @@ func (this *configureComp) LoadEventGroupData() {
if _, ok := this.SNumE[key]; !ok { if _, ok := this.SNumE[key]; !ok {
this.SNumE[key] = value.SubGroupNum this.SNumE[key] = value.SubGroupNum
} }
if this.BtypeE[value.GroupId] == 1 {
this._lotteryType1E[value.GroupId] = append(this._lotteryType1E[value.GroupId], value.Id) if value.GroupType == 1 {
} else if this.BtypeE[value.GroupId] == 2 { if tmp1 != key {
this._lotteryType2E[value.GroupId] = append(this._lotteryType2E[value.GroupId], value.Id) this._lotteryType1E[value.GroupId] = append(this._lotteryType1E[value.GroupId], value.Id)
tmp1 = key
}
}
if value.GroupType == 2 {
if tmp2 != key {
this._lotteryType2E[value.GroupId] = append(this._lotteryType2E[value.GroupId], value.Id)
tmp2 = key
}
} }
if this.StypeE[key] == 1 { // 小组ID为1 if this.StypeE[key] == 1 { // 小组ID为1
@ -141,6 +169,7 @@ func (this *configureComp) LoadEventGroupData() {
this._groupType2E[key] = append(this._groupType2E[key], value.Id) this._groupType2E[key] = append(this._groupType2E[key], value.Id)
} }
} }
return return
} }
} else { } else {
@ -167,56 +196,48 @@ func (this *configureComp) GetEventGroupDataByLottery(lotterys ...int32) (event
} }
} }
// 优先校验大组ID 的类型 // 优先校验大组ID 的类型
if this.BtypeE[lotteryId] == 1 { // 该大组中的小组为权重掉落必定从N个小组中随机出1个小组 var (
var ( szW []int32 // 权重数组
szW []int32 // 权重数组 szID []int32 // 小组ID 数组
szID []int32 // 小组ID 数组 groupID int32
groupID int32 )
gourp map[int32]int32 // key 小组ID value 权重
)
gourp = make(map[int32]int32, 0) // 随机小组id
// 随机小组id for _, v := range this._lotteryType1E[lotteryId] {
for _, v := range this._lotteryType1E[lotteryId] { if _data := this.GetEventLotterConfById(v); _data != nil {
if _data := this.GetEventLotterConfById(v); _data != nil { if _data.SubGroupId == 0 {
if _, ok := gourp[_data.SubGroupId]; !ok { continue
gourp[_data.SubGroupId] = _data.SubGroupWt // 小组ID 权重赋值
szW = append(szW, _data.SubGroupWt)
szID = append(szID, _data.SubGroupId)
}
} }
szW = append(szW, _data.SubGroupWt)
szID = append(szID, _data.SubGroupId)
} }
}
if len(szW) > 0 {
groupID = szID[comm.GetRandW(szW)] // 获得小组ID groupID = szID[comm.GetRandW(szW)] // 获得小组ID
//fmt.Printf("大组类型为1的,获得小组ID :%ddropID%d", groupID, lotteryId) //fmt.Printf("大组类型为1的,获得小组ID :%ddropID%d", groupID, lotteryId)
key := int64(lotteryId)<<31 + int64(groupID) key := int64(lotteryId)<<31 + int64(groupID)
// 小组ID 类型判断 // 小组ID 类型判断
if this.StypeE[key] == 1 { // 该小组的道具为权重掉落必定从N个道具中随机出1个道具 if this.StypeE[key] == 1 { // 该小组的道具为权重掉落必定从N个道具中随机出1个道具
for i := 0; i < int(this.SNumE[key]); i++ { for i := 0; i < int(this.SNumE[key]); i++ {
szW = make([]int32, 0) sztW := make([]int32, 0)
szID = make([]int32, 0) sztID := make([]int32, 0)
gourp = make(map[int32]int32, 0)
for _, v := range this._groupType1E[key] { for _, v := range this._groupType1E[key] {
if _data := this.GetEventLotterConfById(v); _data != nil { // 权重赋值 if _data := this.GetEventLotterConfById(v); _data != nil { // 权重赋值
if _, ok := gourp[_data.SubGroupId]; !ok { sztW = append(sztW, _data.EventWt)
szW = append(szW, _data.EventWt) sztID = append(sztID, _data.Id)
szID = append(szID, _data.Id)
}
} }
} }
index := comm.GetRandW(szW) index := comm.GetRandW(sztW)
_data := this.GetEventLotterConfById(szID[index]) _data := this.GetEventLotterConfById(sztID[index])
event = append(event, _data.EventID) event = append(event, _data.EventID)
} }
} else if this.StypeE[key] == 2 { // 该小组中的道具为概率掉落,每个道具都会随机一次是否会掉落(单位为千分比) } else if this.StypeE[key] == 2 { // 该小组中的道具为概率掉落,每个道具都会随机一次是否会掉落(单位为千分比)
var wt int32
for _, v := range this._groupType2E[key] { for _, v := range this._groupType2E[key] {
if _data := this.GetEventLotterConfById(v); _data != nil { // 权重赋值 if _data := this.GetEventLotterConfById(v); _data != nil { // 权重赋值
if _data.EventWt != 0 {
wt = _data.EventWt if _data.EventID >= comm.GetRandNum(0, 1000) { // 命中
}
//fmt.Printf("大组类型1小组类型2获得道具 :%v, 该道具Cid:%d", _data.Itemid, v)
if wt >= comm.GetRandNum(0, 1000) { // 命中
event = append(event, _data.EventID) event = append(event, _data.EventID)
} }
} }
@ -224,53 +245,47 @@ func (this *configureComp) GetEventGroupDataByLottery(lotterys ...int32) (event
} }
} }
if this.BtypeE[lotteryId] == 2 { // 该大组中的小组为概率掉落,每个小组都会随机一次是否会掉落(单位为千分比)
// 每个小组id 都随机取一次 // 每个小组id 都随机取一次
var szGroupID []int32 // 获得的权重数组 szW = make([]int32, 0)
gourp := make([]*cfg.GameEventlotteryData, 0) // key 小组ID value 权重 szID = make([]int32, 0)
for _, v := range this._lotteryType2E[lotteryId] { for _, v := range this._lotteryType2E[lotteryId] {
if _data := this.GetEventLotterConfById(v); _data != nil { if _data := this.GetEventLotterConfById(v); _data != nil {
gourp = append(gourp, _data) if _data.SubGroupId == 0 {
continue
} }
szW = append(szW, _data.SubGroupWt)
szID = append(szID, _data.SubGroupId)
} }
var wt int32 }
// 类型为2 可能会同时获得多个组id
for _, v := range gourp { // 类型为2 可能会同时获得多个组id
if v.SubGroupWt != 0 { for pos, v := range szW {
wt = v.SubGroupWt key := int64(lotteryId)<<31 + int64(szID[pos])
} //fmt.Printf("大组类型为2的,获得小组ID :%d,dropID:%d", k, v.Id)
k := v.SubGroupId if v >= comm.GetRandNum(0, 1000) { // 命中
//fmt.Printf("大组类型为2的,获得小组ID :%d,dropID:%d", k, v.Id) if this.StypeE[key] == 1 { // 随机一组数据
if wt >= comm.GetRandNum(0, 1000) { // 命中 for i := 0; i < int(this.SNumE[key]); i++ {
szGroupID = append(szGroupID, k) sztW := make([]int32, 0)
key := int64(lotteryId)<<31 + int64(k) sztID := make([]int32, 0)
if this.StypeE[key] == 1 { // 随机一组数据 for _, v := range this._groupType1E[key] {
for i := 0; i < int(this.SNumE[key]); i++ {
szW := make([]int32, 0)
szID := make([]int32, 0)
gourp := make(map[int32]int32, 0)
for _, v := range this._groupType1E[key] {
if _data := this.GetEventLotterConfById(v); _data != nil { // 权重赋值
if _, ok := gourp[_data.SubGroupId]; !ok {
szW = append(szW, _data.EventWt)
szID = append(szID, _data.Id)
}
}
}
index := comm.GetRandW(szW)
_data := this.GetEventLotterConfById(szID[index])
event = append(event, _data.EventID)
}
} else if this.StypeE[key] == 2 {
for _, v := range this._groupType2E[key] {
var wt int32
if _data := this.GetEventLotterConfById(v); _data != nil { // 权重赋值 if _data := this.GetEventLotterConfById(v); _data != nil { // 权重赋值
if _data.EventWt != 0 { sztW = append(sztW, _data.EventWt)
wt = _data.EventWt sztID = append(sztID, _data.Id)
} }
if wt >= comm.GetRandNum(0, 1000) { // 命中 }
event = append(event, _data.EventID) index := comm.GetRandW(sztW)
} _data := this.GetEventLotterConfById(sztID[index])
//fmt.Printf("获得最终的道具 :%d", _data.Id)
// 随机获得的数量
event = append(event, _data.EventID)
}
} else if this.StypeE[key] == 2 {
for _, v := range this._groupType2E[key] {
if _data := this.GetEventLotterConfById(v); _data != nil { // 权重赋值
if _data.EventWt >= comm.GetRandNum(1, 1000) { // 命中
event = append(event, _data.EventID)
} }
} }
} }
@ -281,7 +296,6 @@ func (this *configureComp) GetEventGroupDataByLottery(lotterys ...int32) (event
return return
} }
func (this *configureComp) LoadRoomGroupData() { func (this *configureComp) LoadRoomGroupData() {
if v, err := this.GetConfigure(game_roomlottery); err == nil { if v, err := this.GetConfigure(game_roomlottery); err == nil {
if configure, ok := v.(*cfg.GameRoomlottery); ok { if configure, ok := v.(*cfg.GameRoomlottery); ok {
@ -292,15 +306,32 @@ func (this *configureComp) LoadRoomGroupData() {
this._lotteryType2R = make(map[int32][]int32, 0) this._lotteryType2R = make(map[int32][]int32, 0)
this._groupType1R = make(map[int64][]int32, 0) this._groupType1R = make(map[int64][]int32, 0)
this._groupType2R = make(map[int64][]int32, 0) this._groupType2R = make(map[int64][]int32, 0)
this.BtypeR = make(map[int32]int32, 0) //this.Btype = make(map[int32]int32, 0)
this.StypeR = make(map[int64]int32, 0) this.StypeR = make(map[int64]int32, 0)
this.SNumR = make(map[int64]int32, 0) this.SNumR = make(map[int64]int32, 0)
var tmp1 int64
var tmp2 int64
var itype int32
var wt int32
var subid int32
for _, value := range configure.GetDataList() { for _, value := range configure.GetDataList() {
if value.SubGroupId == 0 {
value.SubGroupId = subid
} else {
subid = value.SubGroupId
}
key := int64(value.GroupId)<<31 + int64(value.SubGroupId) key := int64(value.GroupId)<<31 + int64(value.SubGroupId)
// key2 := int64(value.Lotteryid)<<31 + int64(value.Type)
this._groupR[key] = append(this._groupR[key], value.Id) this._groupR[key] = append(this._groupR[key], value.Id)
if value.GroupType == 0 {
if _, ok := this.BtypeR[value.GroupId]; !ok { value.GroupType = itype
this.BtypeR[value.GroupId] = value.GroupType } else {
itype = value.GroupType
}
if value.SubGroupWt == 0 {
value.SubGroupWt = wt
} else {
wt = value.SubGroupWt
} }
if _, ok := this.StypeR[key]; !ok { if _, ok := this.StypeR[key]; !ok {
@ -309,10 +340,18 @@ func (this *configureComp) LoadRoomGroupData() {
if _, ok := this.SNumR[key]; !ok { if _, ok := this.SNumR[key]; !ok {
this.SNumR[key] = value.SubGroupNum this.SNumR[key] = value.SubGroupNum
} }
if this.BtypeR[value.GroupId] == 1 {
this._lotteryType1R[value.GroupId] = append(this._lotteryType1R[value.GroupId], value.Id) if value.GroupType == 1 {
} else if this.BtypeR[value.GroupId] == 2 { if tmp1 != key {
this._lotteryType2R[value.GroupId] = append(this._lotteryType2R[value.GroupId], value.Id) this._lotteryType1R[value.GroupId] = append(this._lotteryType2R[value.GroupId], value.Id)
tmp1 = key
}
}
if value.GroupType == 2 {
if tmp2 != key {
this._lotteryType2R[value.GroupId] = append(this._lotteryType2R[value.GroupId], value.Id)
tmp2 = key
}
} }
if this.StypeR[key] == 1 { // 小组ID为1 if this.StypeR[key] == 1 { // 小组ID为1
@ -349,111 +388,95 @@ func (this *configureComp) GetRoomGroupDataByLottery(lotteryId int32) (rooms []i
} }
} }
// 优先校验大组ID 的类型 // 优先校验大组ID 的类型
if this.BtypeR[lotteryId] == 1 { // 该大组中的小组为权重掉落必定从N个小组中随机出1个小组 var (
var ( szW []int32 // 权重数组
szW []int32 // 权重数组 szID []int32 // 小组ID 数组
szID []int32 // 小组ID 数组 groupID int32
groupID int32 )
gourp map[int32]int32 // key 小组ID value 权重
)
gourp = make(map[int32]int32, 0) // 随机小组id
// 随机小组id for _, v := range this._lotteryType1R[lotteryId] {
for _, v := range this._lotteryType1R[lotteryId] { if _data := this.GetRoomLotterConfById(v); _data != nil {
if _data := this.GetRoomLotterConfById(v); _data != nil { if _data.SubGroupId == 0 {
if _, ok := gourp[_data.SubGroupId]; !ok { continue
gourp[_data.SubGroupId] = _data.SubGroupWt // 小组ID 权重赋值
szW = append(szW, _data.SubGroupWt)
szID = append(szID, _data.SubGroupId)
}
} }
szW = append(szW, _data.SubGroupWt)
szID = append(szID, _data.SubGroupId)
} }
}
if len(szW) > 0 {
groupID = szID[comm.GetRandW(szW)] // 获得小组ID groupID = szID[comm.GetRandW(szW)] // 获得小组ID
//fmt.Printf("大组类型为1的,获得小组ID :%ddropID%d", groupID, lotteryId) //fmt.Printf("大组类型为1的,获得小组ID :%ddropID%d", groupID, lotteryId)
key := int64(lotteryId)<<31 + int64(groupID) key := int64(lotteryId)<<31 + int64(groupID)
// 小组ID 类型判断 // 小组ID 类型判断
if this.StypeR[key] == 1 { // 该小组的道具为权重掉落必定从N个道具中随机出1个道具 if this.StypeR[key] == 1 { // 该小组的道具为权重掉落必定从N个道具中随机出1个道具
for i := 0; i < int(this.SNumR[key]); i++ { for i := 0; i < int(this.SNumR[key]); i++ {
szW = make([]int32, 0) sztW := make([]int32, 0)
szID = make([]int32, 0) sztID := make([]int32, 0)
gourp = make(map[int32]int32, 0)
for _, v := range this._groupType1R[key] { for _, v := range this._groupType1R[key] {
if _data := this.GetRoomLotterConfById(v); _data != nil { // 权重赋值 if _data := this.GetRoomLotterConfById(v); _data != nil { // 权重赋值
if _, ok := gourp[_data.SubGroupId]; !ok { sztW = append(sztW, _data.RoomWt)
szW = append(szW, _data.RoomWt) sztID = append(sztID, _data.Id)
szID = append(szID, _data.Id)
}
} }
} }
index := comm.GetRandW(szW) index := comm.GetRandW(sztW)
_data := this.GetRoomLotterConfById(szID[index]) _data := this.GetRoomLotterConfById(sztID[index])
rooms = append(rooms, _data.RoomID) rooms = append(rooms, _data.RoomID)
} }
return
} else if this.StypeR[key] == 2 { // 该小组中的道具为概率掉落,每个道具都会随机一次是否会掉落(单位为千分比) } else if this.StypeR[key] == 2 { // 该小组中的道具为概率掉落,每个道具都会随机一次是否会掉落(单位为千分比)
var wt int32
for _, v := range this._groupType2R[key] { for _, v := range this._groupType2R[key] {
if _data := this.GetRoomLotterConfById(v); _data != nil { // 权重赋值 if _data := this.GetRoomLotterConfById(v); _data != nil { // 权重赋值
if _data.RoomWt != 0 {
wt = _data.RoomWt if _data.RoomWt >= comm.GetRandNum(0, 1000) { // 命中
}
//fmt.Printf("大组类型1小组类型2获得道具 :%v, 该道具Cid:%d", _data.Itemid, v)
if wt >= comm.GetRandNum(0, 1000) { // 命中
rooms = append(rooms, _data.RoomID) rooms = append(rooms, _data.RoomID)
} }
} }
} }
return
} }
} }
if this.BtypeR[lotteryId] == 2 { // 该大组中的小组为概率掉落,每个小组都随机一次是否会掉落(单位为千分比) // 每个小组id 都随机一次
// 每个小组id 都随机取一次 szW = make([]int32, 0)
var szGroupID []int32 // 获得的权重数组 szID = make([]int32, 0)
gourp := make([]*cfg.GameRoomlotteryData, 0) // key 小组ID value 权重 for _, v := range this._lotteryType2R[lotteryId] {
for _, v := range this._lotteryType2R[lotteryId] { if _data := this.GetRoomLotterConfById(v); _data != nil {
if _data := this.GetRoomLotterConfById(v); _data != nil { if _data.SubGroupId == 0 {
gourp = append(gourp, _data) continue
} }
szW = append(szW, _data.SubGroupWt)
szID = append(szID, _data.SubGroupId)
} }
var wt int32 }
// 类型为2 可能会同时获得多个组id
for _, v := range gourp { // 类型为2 可能会同时获得多个组id
if v.SubGroupWt != 0 { for pos, v := range szW {
wt = v.SubGroupWt key := int64(lotteryId)<<31 + int64(szID[pos])
} //fmt.Printf("大组类型为2的,获得小组ID :%d,dropID:%d", k, v.Id)
k := v.SubGroupId if v >= comm.GetRandNum(0, 1000) { // 命中
//fmt.Printf("大组类型为2的,获得小组ID :%d,dropID:%d", k, v.Id) if this.StypeR[key] == 1 { // 随机一组数据
if wt >= comm.GetRandNum(0, 1000) { // 命中 for i := 0; i < int(this.SNumR[key]); i++ {
szGroupID = append(szGroupID, k) sztW := make([]int32, 0)
key := int64(lotteryId)<<31 + int64(k) sztID := make([]int32, 0)
if this.StypeR[key] == 1 { // 随机一组数据 for _, v := range this._groupType1R[key] {
for i := 0; i < int(this.SNumR[key]); i++ {
szW := make([]int32, 0)
szID := make([]int32, 0)
gourp := make(map[int32]int32, 0)
for _, v := range this._groupType1R[key] {
if _data := this.GetRoomLotterConfById(v); _data != nil { // 权重赋值
if _, ok := gourp[_data.SubGroupId]; !ok {
szW = append(szW, _data.RoomWt)
szID = append(szID, _data.Id)
}
}
}
index := comm.GetRandW(szW)
_data := this.GetRoomLotterConfById(szID[index])
rooms = append(rooms, _data.RoomID)
}
} else if this.StypeR[key] == 2 {
for _, v := range this._groupType2R[key] {
var wt int32
if _data := this.GetRoomLotterConfById(v); _data != nil { // 权重赋值 if _data := this.GetRoomLotterConfById(v); _data != nil { // 权重赋值
if _data.RoomWt != 0 { sztW = append(sztW, _data.RoomWt)
wt = _data.RoomWt sztID = append(sztID, _data.Id)
} }
if wt >= comm.GetRandNum(0, 1000) { // 命中 }
rooms = append(rooms, _data.RoomID) index := comm.GetRandW(sztW)
} _data := this.GetRoomLotterConfById(sztID[index])
//fmt.Printf("获得最终的道具 :%d", _data.Id)
// 随机获得的数量
rooms = append(rooms, _data.RoomID)
}
} else if this.StypeR[key] == 2 {
for _, v := range this._groupType2R[key] {
if _data := this.GetRoomLotterConfById(v); _data != nil { // 权重赋值
if _data.RoomWt >= comm.GetRandNum(1, 1000) { // 命中
rooms = append(rooms, _data.RoomID)
} }
} }
} }

View File

@ -108,15 +108,33 @@ func (this *MCompConfigure) LoadGroupData() {
var tmp1 int64 var tmp1 int64
var tmp2 int64 var tmp2 int64
var itype int32 var itype int32
var subtype int32
var groupwt int32
var groupid int32
for _, value := range configure.GetDataList() { for _, value := range configure.GetDataList() {
if value.Groupid == 0 {
value.Groupid = groupid
} else {
groupid = value.Groupid
}
key := int64(value.Lotteryid)<<31 + int64(value.Groupid) key := int64(value.Lotteryid)<<31 + int64(value.Groupid)
// key2 := int64(value.Lotteryid)<<31 + int64(value.Type)
this._group[key] = append(this._group[key], value.Id) this._group[key] = append(this._group[key], value.Id)
if value.Type == 0 { if value.Type == 0 {
value.Type = itype value.Type = itype
} else { } else {
itype = value.Type itype = value.Type
} }
if value.Groupwt == 0 {
value.Groupwt = groupwt
} else {
groupwt = value.Groupwt
}
if value.Subtype == 0 {
value.Subtype = subtype
} else {
subtype = value.Subtype
}
// 数据安全校验 // 数据安全校验
if value.Min > value.Max { if value.Min > value.Max {
log.Errorf("value.Min:%d > value.Max :%d ", value.Min, value.Max) log.Errorf("value.Min:%d > value.Max :%d ", value.Min, value.Max)
@ -138,14 +156,14 @@ func (this *MCompConfigure) LoadGroupData() {
this.SNum[key] = value.Groupnum this.SNum[key] = value.Groupnum
} }
if value.Type == 1 || value.Type == 0 { if value.Type == 1 {
if tmp1 != key { if tmp1 != key {
this._lotteryType1[value.Lotteryid] = append(this._lotteryType1[value.Lotteryid], value.Id) this._lotteryType1[value.Lotteryid] = append(this._lotteryType1[value.Lotteryid], value.Id)
tmp1 = key tmp1 = key
} }
} }
if value.Type == 2 || value.Type == 0 { if value.Type == 2 {
if tmp2 != key { if tmp2 != key {
this._lotteryType2[value.Lotteryid] = append(this._lotteryType2[value.Lotteryid], value.Id) this._lotteryType2[value.Lotteryid] = append(this._lotteryType2[value.Lotteryid], value.Id)
tmp2 = key tmp2 = key
@ -171,7 +189,7 @@ func (this *MCompConfigure) GetGroupDataByLottery(lotteryId int32, vipLv int32,
if _, ok := this._lotteryType1[lotteryId]; !ok { if _, ok := this._lotteryType1[lotteryId]; !ok {
if _, ok := this._lotteryType2[lotteryId]; !ok { if _, ok := this._lotteryType2[lotteryId]; !ok {
fmt.Printf("not found config lotterId:%d", lotteryId) this.module.Errorf("not found config lotterId:%d", lotteryId)
return return
} }
} }
@ -186,61 +204,68 @@ func (this *MCompConfigure) GetGroupDataByLottery(lotteryId int32, vipLv int32,
for _, v := range this._lotteryType1[lotteryId] { for _, v := range this._lotteryType1[lotteryId] {
if _data := this.GetLotterConfById(v); _data != nil { if _data := this.GetLotterConfById(v); _data != nil {
if (_data.Playerlvmax == 0 || (_data.Playerlvmin <= lv && lv <= _data.Playerlvmax)) && (_data.VIPmax == 0 || (_data.VIPmin <= vipLv && vipLv <= _data.VIPmax)) { // 过滤等级等条件 if (_data.Playerlvmax == 0 || (_data.Playerlvmin <= lv && lv <= _data.Playerlvmax)) && (_data.VIPmax == 0 || (_data.VIPmin <= vipLv && vipLv <= _data.VIPmax)) { // 过滤等级等条件
szW = append(szW, _data.Groupwt) if _data.Groupid != 0 {
szID = append(szID, _data.Groupid) szW = append(szW, _data.Groupwt)
szID = append(szID, _data.Groupid)
}
} }
} }
} }
if len(szW) > 0 {
groupID = szID[comm.GetRandW(szW)] // 获得小组ID
//fmt.Printf("大组类型为1的,获得小组ID :%ddropID%d", groupID, lotteryId)
key := int64(lotteryId)<<31 + int64(groupID)
// 小组ID 类型判断
if this.Stype[key] == 1 { // 该小组的道具为权重掉落必定从N个道具中随机出1个道具
for i := 0; i < int(this.SNum[key]); i++ {
sztW := make([]int32, 0)
sztID := make([]int32, 0)
for _, v := range this._groupType1[key] {
if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值
sztW = append(sztW, _data.Itemwt)
sztID = append(sztID, _data.Id)
}
}
index := comm.GetRandW(sztW)
_data := this.GetLotterConfById(sztID[index])
count := comm.GetRandNum(_data.Min, _data.Max)
// 随机获得的数量
items = append(items, &cfg.Gameatn{
A: _data.Itemid.A,
T: _data.Itemid.T,
N: _data.Itemid.N * count,
})
}
groupID = szID[comm.GetRandW(szW)] // 获得小组ID } else if this.Stype[key] == 2 { // 该小组中的道具为概率掉落,每个道具都会随机一次是否会掉落(单位为千分比)
//fmt.Printf("大组类型为1的,获得小组ID :%ddropID%d", groupID, lotteryId) for _, v := range this._groupType2[key] {
key := int64(lotteryId)<<31 + int64(groupID)
// 小组ID 类型判断
if this.Stype[key] == 1 { // 该小组的道具为权重掉落必定从N个道具中随机出1个道具
for i := 0; i < int(this.SNum[key]); i++ {
sztW := make([]int32, 0)
sztID := make([]int32, 0)
for _, v := range this._groupType1[key] {
if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值 if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值
sztW = append(sztW, _data.Itemwt)
sztID = append(sztID, _data.Id) if _data.Itemwt >= comm.GetRandNum(0, 1000) { // 命中
count := comm.GetRandNum(_data.Min, _data.Max)
items = append(items, &cfg.Gameatn{
A: _data.Itemid.A,
T: _data.Itemid.T,
N: _data.Itemid.N * count, // 小组产出数量
})
}
} }
} }
index := comm.GetRandW(sztW)
_data := this.GetLotterConfById(sztID[index])
count := comm.GetRandNum(_data.Min, _data.Max)
// 随机获得的数量
items = append(items, &cfg.Gameatn{
A: _data.Itemid.A,
T: _data.Itemid.T,
N: _data.Itemid.N * count,
})
} }
} else if this.Stype[key] == 2 { // 该小组中的道具为概率掉落,每个道具都会随机一次是否会掉落(单位为千分比)
for _, v := range this._groupType2[key] {
if _data := this.GetLotterConfById(v); _data != nil { // 权重赋值
if _data.Itemwt >= comm.GetRandNum(0, 1000) { // 命中
count := comm.GetRandNum(_data.Min, _data.Max)
items = append(items, &cfg.Gameatn{
A: _data.Itemid.A,
T: _data.Itemid.T,
N: _data.Itemid.N * count, // 小组产出数量
})
}
}
}
} }
// 每个小组id 都随机取一次 // 每个小组id 都随机取一次
szW = make([]int32, 0) szW = make([]int32, 0)
szID = make([]int32, 0) szID = make([]int32, 0)
for _, v := range this._lotteryType2[lotteryId] { for _, v := range this._lotteryType2[lotteryId] {
if _data := this.GetLotterConfById(v); _data != nil { if _data := this.GetLotterConfById(v); _data != nil {
if (_data.Playerlvmax == 0 || (_data.Playerlvmin <= lv && lv <= _data.Playerlvmax)) && (_data.VIPmax == 0 || (_data.VIPmin <= vipLv && vipLv <= _data.VIPmax)) { // 过滤等级等条件 if (_data.Playerlvmax == 0 || (_data.Playerlvmin <= lv && lv <= _data.Playerlvmax)) && (_data.VIPmax == 0 || (_data.VIPmin <= vipLv && vipLv <= _data.VIPmax)) { // 过滤等级等条件
szW = append(szW, _data.Groupwt) if _data.Groupid != 0 {
szID = append(szID, _data.Groupid) szW = append(szW, _data.Groupwt)
szID = append(szID, _data.Groupid)
}
} }
} }
} }
@ -288,6 +313,7 @@ func (this *MCompConfigure) GetGroupDataByLottery(lotteryId int32, vipLv int32,
} }
} }
} }
return return
} }