Compare commits

..

No commits in common. "7c02471d2cc95985f96ca6310e6ec92bce6e7938" and "579e27e17f6338be1a8c9db830dbe621809cbb32" have entirely different histories.

41 changed files with 2986 additions and 815 deletions

Binary file not shown.

View File

@ -55,8 +55,7 @@
"CreateRoomNum": 6, "CreateRoomNum": 6,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2070002, "Id": 2070002,
@ -113,8 +112,7 @@
"CreateRoomNum": 4, "CreateRoomNum": 4,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2070003, "Id": 2070003,
@ -171,8 +169,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2080001, "Id": 2080001,
@ -229,8 +226,7 @@
"CreateRoomNum": 4, "CreateRoomNum": 4,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2080002, "Id": 2080002,
@ -287,8 +283,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2080003, "Id": 2080003,
@ -345,8 +340,7 @@
"CreateRoomNum": 2, "CreateRoomNum": 2,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2090001, "Id": 2090001,
@ -403,8 +397,7 @@
"CreateRoomNum": 6, "CreateRoomNum": 6,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2090002, "Id": 2090002,
@ -461,8 +454,7 @@
"CreateRoomNum": 4, "CreateRoomNum": 4,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2090003, "Id": 2090003,
@ -519,8 +511,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2100001, "Id": 2100001,
@ -577,8 +568,7 @@
"CreateRoomNum": 6, "CreateRoomNum": 6,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2100002, "Id": 2100002,
@ -635,8 +625,7 @@
"CreateRoomNum": 4, "CreateRoomNum": 4,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2100003, "Id": 2100003,
@ -693,8 +682,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2400001, "Id": 2400001,
@ -751,8 +739,7 @@
"CreateRoomNum": 6, "CreateRoomNum": 6,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2400002, "Id": 2400002,
@ -809,8 +796,7 @@
"CreateRoomNum": 4, "CreateRoomNum": 4,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2400003, "Id": 2400003,
@ -866,8 +852,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2400004, "Id": 2400004,
@ -922,8 +907,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2400005, "Id": 2400005,
@ -978,8 +962,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2400006, "Id": 2400006,
@ -1034,8 +1017,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2440001, "Id": 2440001,
@ -1092,8 +1074,7 @@
"CreateRoomNum": 6, "CreateRoomNum": 6,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2440002, "Id": 2440002,
@ -1150,8 +1131,7 @@
"CreateRoomNum": 4, "CreateRoomNum": 4,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2440003, "Id": 2440003,
@ -1207,8 +1187,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2440004, "Id": 2440004,
@ -1263,8 +1242,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2440005, "Id": 2440005,
@ -1319,8 +1297,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2440006, "Id": 2440006,
@ -1375,8 +1352,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2410001, "Id": 2410001,
@ -1433,8 +1409,7 @@
"CreateRoomNum": 4, "CreateRoomNum": 4,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2410002, "Id": 2410002,
@ -1491,8 +1466,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2410003, "Id": 2410003,
@ -1548,8 +1522,7 @@
"CreateRoomNum": 2, "CreateRoomNum": 2,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2410004, "Id": 2410004,
@ -1604,8 +1577,7 @@
"CreateRoomNum": 2, "CreateRoomNum": 2,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2410005, "Id": 2410005,
@ -1660,8 +1632,7 @@
"CreateRoomNum": 2, "CreateRoomNum": 2,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2410006, "Id": 2410006,
@ -1716,8 +1687,7 @@
"CreateRoomNum": 2, "CreateRoomNum": 2,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2450001, "Id": 2450001,
@ -1774,8 +1744,7 @@
"CreateRoomNum": 6, "CreateRoomNum": 6,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2450002, "Id": 2450002,
@ -1832,8 +1801,7 @@
"CreateRoomNum": 4, "CreateRoomNum": 4,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2450003, "Id": 2450003,
@ -1889,8 +1857,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2450004, "Id": 2450004,
@ -1945,8 +1912,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2450005, "Id": 2450005,
@ -2001,8 +1967,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2450006, "Id": 2450006,
@ -2057,8 +2022,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2420001, "Id": 2420001,
@ -2117,8 +2081,7 @@
"CreateRoomNum": 6, "CreateRoomNum": 6,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2420002, "Id": 2420002,
@ -2177,8 +2140,7 @@
"CreateRoomNum": 4, "CreateRoomNum": 4,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2420003, "Id": 2420003,
@ -2236,8 +2198,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2420004, "Id": 2420004,
@ -2294,8 +2255,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2420005, "Id": 2420005,
@ -2352,8 +2312,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2420006, "Id": 2420006,
@ -2410,8 +2369,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2460001, "Id": 2460001,
@ -2470,8 +2428,7 @@
"CreateRoomNum": 6, "CreateRoomNum": 6,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2460002, "Id": 2460002,
@ -2530,8 +2487,7 @@
"CreateRoomNum": 4, "CreateRoomNum": 4,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2460003, "Id": 2460003,
@ -2589,8 +2545,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2460004, "Id": 2460004,
@ -2647,8 +2602,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2460005, "Id": 2460005,
@ -2705,8 +2659,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2460006, "Id": 2460006,
@ -2763,8 +2716,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2430001, "Id": 2430001,
@ -2823,8 +2775,7 @@
"CreateRoomNum": 4, "CreateRoomNum": 4,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2430002, "Id": 2430002,
@ -2883,8 +2834,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2430003, "Id": 2430003,
@ -2942,8 +2892,7 @@
"CreateRoomNum": 2, "CreateRoomNum": 2,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2430004, "Id": 2430004,
@ -3000,8 +2949,7 @@
"CreateRoomNum": 2, "CreateRoomNum": 2,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2430005, "Id": 2430005,
@ -3058,8 +3006,7 @@
"CreateRoomNum": 2, "CreateRoomNum": 2,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2430006, "Id": 2430006,
@ -3116,8 +3063,7 @@
"CreateRoomNum": 2, "CreateRoomNum": 2,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2470001, "Id": 2470001,
@ -3176,8 +3122,7 @@
"CreateRoomNum": 6, "CreateRoomNum": 6,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2470002, "Id": 2470002,
@ -3236,8 +3181,7 @@
"CreateRoomNum": 4, "CreateRoomNum": 4,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2470003, "Id": 2470003,
@ -3295,8 +3239,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2470004, "Id": 2470004,
@ -3353,8 +3296,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2470005, "Id": 2470005,
@ -3411,8 +3353,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 2470006, "Id": 2470006,
@ -3469,8 +3410,7 @@
"CreateRoomNum": 3, "CreateRoomNum": 3,
"MatchTrueMan": 1, "MatchTrueMan": 1,
"PlayerWaterRate": 100, "PlayerWaterRate": 100,
"BetWaterRate": 100, "BetWaterRate": 100
"IsDrop": 1
}, },
{ {
"Id": 8070001, "Id": 8070001,

Binary file not shown.

View File

@ -8,7 +8,7 @@
1 1
], ],
"Classify": [ "Classify": [
0, 1,
1, 1,
0 0
], ],
@ -38,7 +38,7 @@
1 1
], ],
"Classify": [ "Classify": [
0, 1,
1, 1,
0 0
], ],
@ -68,7 +68,7 @@
1 1
], ],
"Classify": [ "Classify": [
0, 1,
1, 1,
0 0
], ],
@ -98,7 +98,7 @@
1 1
], ],
"Classify": [ "Classify": [
0, 1,
1, 1,
0 0
], ],

View File

@ -1,56 +1,254 @@
Ð ±ê(2 ΟΠ(±κ0:
ˆ' ±ê(J2 Ο<18>'(±κ0J:
<10>N ±ê(•2 Ο<18>N(±κ0•:
˜u ±ê2 Ο<18>u(±κ:
 œ ±ê2 Ο <>(±κ:
¨Ã ±ê2 Ο¨Γ(±κ0σ:
°ê ±ê2 Ο°κ(±κ:
¸ ±ê(ˆ2 ΟΈ‘(±κ0<>:
 À¸ ±ê2  ΟΐΈ(±κ0<>:
 
Èß ±ê2 ΟΘί(±κ0<>:
 І ±ê2  ΟΠ†(±κ:
 Ø­ ±ê2  ΟΨ­(±κ:
 àÔ ±ê2  ΟΰΤ(±κ:
èû ±ê2 Οθϋ(±κ0Ε:
𢠱ê(<28>2 ΟπΆ(±κ0<>:
øÉ ±ê2 ΟψΙ(±κ:
€ñ ±ê(¤ 2 Ο€ρ(±κ0¤ :
ˆ˜ ±ê(î 2 Ο<18><>(±κ0ξ :
<10>¿ ±ê Ο<18>Ώ(±κ
2 :
˜æ ±ê 2 Ο<18>ζ(±κ :
 <> ±ê 2 Ο <>(±κ0Ν :
ð“ ±ê(´2 Οπ“ (±κ0΄:
Àš ±ê2 Οΐ<> (±κ0<>:
<10>¡ ±ê(<28>2 Ο<18>΅(±κ0<>:
à§ ±ê(ç"2 Οΰ§(±κ0η":
°® ±ê(Î(2 Ο°®(±κ0Ξ(:
€µ ±ê(´.2 Ο€µ(±κ0΄.:
л ±ê(42 ΟΠ»(±κ04:
 Â ±ê(<28>:2 Ο Β(±κ0<>::
ðÈ! ±ê(è?2 ΟπΘ!(±κ0θ?:
ÀÏ$ ±ê(ÎE2 ΟΐΟ$(±κ0ΞE:
 <10>Ö' ±ê(µK2  Ο<18>Φ'(±κ0µK:
!àÜ* ±ê(<28>N2 !Οΰά*(±κ0<>N:
"°ã- ±ê(<28>N2 "Ο°γ-(±κ0<>N:
#€ê0 ±ê(<28>N2 #Ο€κ0(±κ0<>N:
$Ðð3 ±ê(<28>N2 $ΟΠπ3(±κ0<>N:
% ÷6 ±ê(<28>N2 %Ο χ6(±κ0<>N:
&ðý9 ±ê(<28>N2 &Οπύ9(±κ0<>N:
'À„= ±ê(<28>N2 'Οΐ„=(±κ0<>N:
(€‰z ±ê(<28>N2 (Ο€‰z(±κ0<>N:
)À–± ±ê(<28>N2 )Οΐ–±(±κ0<>N:
*€­â ±ê(<28>N2  *Ο€­β(±κ0<>N: 
+ÀÓ ±ê(<28>N2 +ΟΐΓ“(±κ0<>N:
,€ÚÄ ±ê(<28>N2 ,Ο€ΪΔ (±κ0<>N:
-Àðõ ±ê(<28>N2#' -Οΐπυ (±κ0<>N:#'
.€‡§ ±ê(<28>N2+/ .Ο€‡§(±κ0<>N:+/
/À<>Ø ±ê(<28>N226 /Οΐ<>Ψ(±κ0<>N:26
0€´‰ ±ê(<28>N29= 0Ο€΄‰(±κ0<>N:9=
1Àʺ ±ê(<28>N2AE 1ΟΐΚΊ(±κ0<>N:AE
2€áë ±ê(<28>N2HL 2Ο€αλ(±κ0<>N:HL
3€Â×/ ±ê(<28>N2 3ΠΠ(±κ0:
4€£ÃG ±ê(<28>N2Ýá 4Π<18>'(±κ0J:
5€„¯_ ±ê(<28>N2§« 5Π<18>N(±κ0•:
6Π<18>u(±κ:
7Π <>(±κ:
8Π¨Γ(±κ0σ:
9Π°κ(±κ:
:ΠΈ‘(±κ0<>:
;ΠΐΈ(±κ0<>:
<ΠΘί(±κ0<>:
=ΠΠ†(±κ:
>ΠΨ­(±κ:
?ΠΰΤ(±κ:
@Πθϋ(±κ0Ε:
AΠπΆ(±κ0<>:
BΠψΙ(±κ:
CΠ€ρ(±κ0¤ :
DΠ<18><>(±κ0ξ :
EΠ<18>Ώ(±κ
:
FΠ<18>ζ(±κ :
GΠ <>(±κ0Ν :
HΠπ“ (±κ0΄:
IΠΐ<> (±κ0<>:
JΠ<18>΅(±κ0<>:
KΠΰ§(±κ0η":
LΠ°®(±κ0Ξ(:
MΠ€µ(±κ0΄.:
NΠΠ»(±κ04:
OΠ Β(±κ0<>::
PΠπΘ!(±κ0θ?:
QΠΐΟ$(±κ0ΞE:
RΠ<18>Φ'(±κ0µK:
SΠΰά*(±κ0<>N:
TΠ°γ-(±κ0<>N:
UΠ€κ0(±κ0<>N:
VΠΠπ3(±κ0<>N:
WΠ χ6(±κ0<>N:
XΠπύ9(±κ0<>N:
YΠΐ„=(±κ0<>N:
ZΠ€‰z(±κ0<>N:
[Πΐ–±(±κ0<>N:
\Π€­β(±κ0<>N: 
]ΠΐΓ“(±κ0<>N:
^Π€ΪΔ (±κ0<>N:
_Πΐπυ (±κ0<>N:#'
`Π€‡§(±κ0<>N:+/
aΠΐ<>Ψ(±κ0<>N:26
bΠ€΄‰(±κ0<>N:9=
cΠΐΚΊ(±κ0<>N:AE
dΠ€αλ(±κ0<>N:HL
eΡΠ(±κ0:
fΡ<18>'(±κ0J:
gΡ<18>N(±κ0•:
hΡ<18>u(±κ:
iΡ <>(±κ:
jΡ¨Γ(±κ0σ:
kΡ°κ(±κ:
lΡΈ‘(±κ0<>:
mΡΐΈ(±κ0<>:
nΡΘί(±κ0<>:
oΡΠ†(±κ:
pΡΨ­(±κ:
qΡΰΤ(±κ:
rΡθϋ(±κ0Ε:
sΡπΆ(±κ0<>:
tΡψΙ(±κ:
uΡ€ρ(±κ0¤ :
vΡ<18><>(±κ0ξ :
wΡ<18>Ώ(±κ
:
xΡ<18>ζ(±κ :
yΡ <>(±κ0Ν :
zΡπ“ (±κ0΄:
{Ρΐ<> (±κ0<>:
|Ρ<18>΅(±κ0<>:
}Ρΰ§(±κ0η":
~Ρ°®(±κ0Ξ(:
Ρ€µ(±κ0΄.:
ΡΠ»(±κ04:
<08>Ρ Β(±κ0<>::
ΡπΘ!(±κ0θ?:
ƒΡΐΟ$(±κ0ΞE:
Ρ<18>Φ'(±κ0µK:
Ρΰά*(±κ0<>N:
Ρ°γ-(±κ0<>N:
Ρ€κ0(±κ0<>N:
<08>ΡΠπ3(±κ0<>N:
Ρ χ6(±κ0<>N:
<08>Ρπύ9(±κ0<>N:
Ρΐ„=(±κ0<>N:
<08>Ρ€‰z(±κ0<>N:
<08>Ρΐ–±(±κ0<>N:
<08>Ρ€­β(±κ0<>N: 
<08>ΡΐΓ“(±κ0<>N:
<08>Ρ€ΪΔ (±κ0<>N:
Ρΐπυ (±κ0<>N:#'
Ρ€‡§(±κ0<>N:+/
Ρΐ<>Ψ(±κ0<>N:26
Ρ€΄‰(±κ0<>N:9=
ΡΐΚΊ(±κ0<>N:AE
Ρ€αλ(±κ0<>N:HL
<10>Π(±κ0:
<08><10><18>'(±κ0J:
<10><18>N(±κ0•:
<08><10><18>u(±κ:
<10> <>(±κ:
<08><10>¨Γ(±κ0σ:
<08><10>°κ(±κ:
<08><10>Έ‘(±κ0<>:
<08><10>ΐΈ(±κ0<>:
 <10>Θί(±κ0<>:
΅<10>Π†(±κ:
Ά<10>Ψ­(±κ:
£<10>ΰΤ(±κ:
¤<10>θϋ(±κ0Ε:
¥<10>πΆ(±κ0<>:
¦<10>ψΙ(±κ:
§<10>€ρ(±κ0¤ :
¨<10><18><>(±κ0ξ :
©<10><18>Ώ(±κ
:
<08><10><18>ζ(±κ :
«<10> <>(±κ0Ν :
¬<10>π“ (±κ0΄:
­<10>ΐ<> (±κ0<>:
®<10><18>΅(±κ0<>:
<10>ΰ§(±κ0η":
°<10>°®(±κ0Ξ(:
±<10>€µ(±κ0΄.:
²<10>Π»(±κ04:
³<10> Β(±κ0<>::
΄<10>πΘ!(±κ0θ?:
µ<10>ΐΟ$(±κ0ΞE:
<10><18>Φ'(±κ0µK:
·<10>ΰά*(±κ0<>N:
Έ<10>°γ-(±κ0<>N:
Ή<10>€κ0(±κ0<>N:
Ί<10>Ππ3(±κ0<>N:
»<10> χ6(±κ0<>N:
Ό<10>πύ9(±κ0<>N:
½<10>ΐ„=(±κ0<>N:
Ύ<10>€‰z(±κ0<>N:
Ώ<10>ΐ–±(±κ0<>N:
ΐ<10>€­β(±κ0<>N: 
Α<10>ΐΓ“(±κ0<>N:
Β<10>€ΪΔ (±κ0<>N:
Γ<10>ΐπυ (±κ0<>N:#'
Δ<10>€‡§(±κ0<>N:+/
Ε<10>ΐ<>Ψ(±κ0<>N:26
Ζ<10>€΄‰(±κ0<>N:9=
Η<10>ΐΚΊ(±κ0<>N:AE
Θ<10>€αλ(±κ0<>N:HL
Ιπ<18>N(±κ0•:
ΚπΠ†(±κ:
Λπΐ<> (±κ0<>:
Μπΐ„=(±κ0<>N:
Νπΐ–±(±κ0<>N:
Ξπ€ΪΔ (±κ0<>N:
Οτ <>(±κ0Ν :
Πτ Β(±κ0<>::
Ρτ€‰z(±κ0<>N:
<08>τ€­β(±κ0<>N: 
Στ€αλ(±κ0<>N:HL
Ττ€„―_(±κ0<>N:§«
Υρ<18>N(±κ0•:
ΦρΠ†(±κ:
Χρΐ<> (±κ0<>:
Ψρΐ„=(±κ0<>N:
Ωρΐ–±(±κ0<>N:
Ϊρ€ΪΔ (±κ0<>N:
Ϋυ<18>N(±κ0•:
άυΠ†(±κ:
έυΐ<> (±κ0<>:
ήυΐ„=(±κ0<>N:
ίυΐ–±(±κ0<>N:
ΰυ€ΪΔ (±κ0<>N:
ας<18>N(±κ0•:
βςΠ†(±κ:
γςΐ<> (±κ0<>:
δςΐ„=(±κ0<>N:
εςΐ–±(±κ0<>N:
ζς€ΪΔ (±κ0<>N:
ηφ<18>N(±κ0•:
θφΠ†(±κ:
ιφΐ<> (±κ0<>:
κφΐ„=(±κ0<>N:
λφΐ–±(±κ0<>N:
μφ€ΪΔ (±κ0<>N:
νσ<18>N(±κ0•:
ξσΠ†(±κ:
οσΐ<> (±κ0<>:
πσΐ„=(±κ0<>N:
ρσΐ–±(±κ0<>N:
ςσ€ΪΔ (±κ0<>N:
σχ<18>N(±κ0•:
τχΠ†(±κ:
υχΐ<> (±κ0<>:
φχΐ„=(±κ0<>N:
χχΐ–±(±κ0<>N:
ψχ€ΪΔ (±κ0<>N:

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
6т├у├ж├в├с├"║█ю└= 6ж├в├ст├у"║█ю└=
.ы├з├шь"║█ю└= .ь├ы├з├ш├"║█ю└=
Wш├т├у├ж├ь├ы├с├в├з" ║█─╜Б Wз├ш├с├ж├в├ь├т├у├ы" ║█─╜Б
]т├в├ь├ш├з├э├с├у├ж├ы"╒█Т ]т├ж├ь├з├ш├э├с├в├ы├у"╒█Т

Binary file not shown.

View File

@ -2,14 +2,12 @@ package svc
import ( import (
"errors" "errors"
"net/rpc"
"github.com/globalsign/mgo" "github.com/globalsign/mgo"
"github.com/globalsign/mgo/bson" "github.com/globalsign/mgo/bson"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/game/dbproxy/mongo" "mongo.games.com/game/dbproxy/mongo"
"mongo.games.com/game/model" "mongo.games.com/game/model"
"mongo.games.com/goserver/core/logger"
"net/rpc"
) )
var ( var (
@ -18,12 +16,6 @@ var (
FriendApplyColError = errors.New("friendapply collection open failed") FriendApplyColError = errors.New("friendapply collection open failed")
) )
var (
FriendApplyListDBName = "log"
FriendApplyListCollName = "log_friendapplylist"
FriendApplyListColError = errors.New("friendapplylist collection open failed")
)
func FriendApplyCollection(plt string) *mongo.Collection { func FriendApplyCollection(plt string) *mongo.Collection {
s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, FriendApplyDBName) s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, FriendApplyDBName)
if s != nil { if s != nil {
@ -36,18 +28,6 @@ func FriendApplyCollection(plt string) *mongo.Collection {
return nil return nil
} }
func FriendApplyListCollection(plt string) *mongo.Collection {
s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, FriendApplyListDBName)
if s != nil {
c, first := s.DB().C(FriendApplyListCollName)
if first {
c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true})
}
return c
}
return nil
}
type FriendApplySvc struct { type FriendApplySvc struct {
} }
@ -91,49 +71,6 @@ func (svc *FriendApplySvc) DelFriendApply(args *model.FriendApplyByKey, ret *boo
return nil return nil
} }
func (svc *FriendApplySvc) UpsertApplyList(args *model.ApplyListReq, ret *model.ApplyListRes) error {
cc := FriendApplyListCollection(args.Platform)
if cc == nil {
return FriendApplyListColError
}
if args.Data == nil || args.Data.SnId <= 0 {
return nil
}
_, err := cc.Upsert(bson.M{"snid": args.Data.SnId}, args.Data)
if err != nil && err != mgo.ErrNotFound {
logger.Logger.Error("UpsertApplyList is err: ", err)
return err
}
ret.Data = args.Data
return nil
}
func (svc *FriendApplySvc) QueryFriendApplyListBySnid(args *model.FriendApplyByKey, ret *model.ApplyListRes) error {
fc := FriendApplyListCollection(args.Platform)
if fc == nil {
return FriendApplyListColError
}
err := fc.Find(bson.M{"snid": args.SnId}).One(&ret.Data)
if err != nil && !errors.Is(err, mgo.ErrNotFound) {
logger.Logger.Error("QueryFriendApplyListBySnid is err: ", err)
return err
}
return nil
}
func (svc *FriendApplySvc) DelFriendApplyList(args *model.FriendApplyByKey, ret *bool) error {
cc := FriendApplyListCollection(args.Platform)
if cc == nil {
return FriendApplyListColError
}
err := cc.Remove(bson.M{"snid": args.SnId})
if err != nil {
logger.Logger.Error("DelFriendApplyList is err: ", err)
return err
}
return nil
}
var _FriendApplySvc = &FriendApplySvc{} var _FriendApplySvc = &FriendApplySvc{}
func init() { func init() {

View File

@ -486,6 +486,14 @@ func init() {
p := base.PlayerMgrSington.GetPlayerBySnId(wgSetPlayerBlackLevel.GetSnId()) p := base.PlayerMgrSington.GetPlayerBySnId(wgSetPlayerBlackLevel.GetSnId())
if p != nil { if p != nil {
p.WBLevel = wgSetPlayerBlackLevel.GetWBLevel() p.WBLevel = wgSetPlayerBlackLevel.GetWBLevel()
if p.WBLevel > 0 {
p.WhiteLevel = p.WBLevel
} else if p.WBLevel < 0 {
p.BlackLevel = -p.WBLevel
} else {
p.WhiteLevel = 0
p.BlackLevel = 0
}
p.WBCoinLimit = wgSetPlayerBlackLevel.GetWBCoinLimit() p.WBCoinLimit = wgSetPlayerBlackLevel.GetWBCoinLimit()
p.WBMaxNum = wgSetPlayerBlackLevel.GetMaxNum() p.WBMaxNum = wgSetPlayerBlackLevel.GetMaxNum()
p.WBState = wgSetPlayerBlackLevel.GetState() p.WBState = wgSetPlayerBlackLevel.GetState()

View File

@ -125,12 +125,12 @@ func (this *AvengersPlayerData) SavePlayerGameData(gameFreeId string) {
// 黑白名单的限制是否生效 // 黑白名单的限制是否生效
func (this *AvengersPlayerData) CheckBlackWriteList(isWin bool) bool { func (this *AvengersPlayerData) CheckBlackWriteList(isWin bool) bool {
if isWin && -this.WBLevel > 0 && -this.WBLevel <= 10 { if isWin && this.BlackLevel > 0 && this.BlackLevel <= 10 {
if rand.Int31n(100) < -this.WBLevel*10 { if rand.Int31n(100) < this.BlackLevel*10 {
return true return true
} }
} else if !isWin && this.WBLevel > 0 && this.WBLevel <= 10 { } else if !isWin && this.WhiteLevel > 0 && this.WhiteLevel <= 10 {
if rand.Int31n(100) < this.WBLevel*10 { if rand.Int31n(100) < this.WhiteLevel*10 {
return true return true
} }
} }

View File

@ -547,7 +547,7 @@ func (this *SceneStateAvengersStart) OnPlayerOp(s *base.Scene, p *base.Player, o
writeBlackTryTimes++ writeBlackTryTimes++
goto WriteBlack goto WriteBlack
} else if writeBlackTryTimes >= 100 && writeBlackTryTimes != 999 { } else if writeBlackTryTimes >= 100 && writeBlackTryTimes != 999 {
logger.Logger.Warnf("AvengersWriteBlackTryTimesOver [%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, gamePoolCoin, playerEx.WBLevel) logger.Logger.Warnf("AvengersWriteBlackTryTimesOver [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, gamePoolCoin, playerEx.BlackLevel, playerEx.WhiteLevel)
} }
//if playerEx.DebugGame && sceneEx.SceneType == 1 { //if playerEx.DebugGame && sceneEx.SceneType == 1 {

View File

@ -113,6 +113,9 @@ type Player struct {
cparams map[string]string //平台登陆数据 cparams map[string]string //平台登陆数据
Iparams map[int]int64 //整形参数 Iparams map[int]int64 //整形参数
sparams map[int]string //字符参数 sparams map[int]string //字符参数
WhiteLevel int32 //todo 使用WBLevel
BlackLevel int32 //todo 使用WBLevel
SingleAdjust *model.PlayerSingleAdjust
IsLocal bool //是否本地player IsLocal bool //是否本地player
Items map[int32]int64 //背包数据 Items map[int32]int64 //背包数据
MatchParams []int32 //比赛参数 排名、段位、假snid、假角色 MatchParams []int32 //比赛参数 排名、段位、假snid、假角色
@ -172,6 +175,11 @@ func (this *Player) init(data []byte) bool {
if this.GDatas == nil { if this.GDatas == nil {
this.GDatas = make(map[string]*model.PlayerGameInfo) this.GDatas = make(map[string]*model.PlayerGameInfo)
} }
if this.WBLevel > 0 {
this.WhiteLevel = this.WBLevel
} else if this.WBLevel < 0 {
this.BlackLevel = -this.WBLevel
}
return true return true
} }

View File

@ -561,7 +561,7 @@ func (this *Scene) PlayerEnter(p *Player, isLoaded bool) {
//避免游戏接口异常 //避免游戏接口异常
utils.RunPanicless(func() { this.sp.OnPlayerEnter(this, p) }) utils.RunPanicless(func() { this.sp.OnPlayerEnter(this, p) })
if p.WBLevel < 0 { if p.BlackLevel > 0 {
WarningBlackPlayer(p.SnId, this.DbGameFree.Id) WarningBlackPlayer(p.SnId, this.DbGameFree.Id)
} }
@ -2120,18 +2120,13 @@ func (this *Scene) TryBillExGameDrop(p *Player) {
return return
} }
// 场次掉落开关
if this.DbGameFree.IsDrop != 1 {
return
}
// 渠道开关 // 渠道开关
conf := ConfigMgrInst.GetConfig(p.Platform).ChannelSwitch[common.ChannelSwitchDropItem] conf := ConfigMgrInst.GetConfig(p.Platform).ChannelSwitch[common.ChannelSwitchDropItem]
if !model.GameParamData.CloseChannelSwitch && (conf == nil || !common.InSliceString(conf.OnChannelName, p.AppChannel)) { if !model.GameParamData.CloseChannelSwitch && (conf == nil || !common.InSliceString(conf.OnChannelName, p.AppChannel)) {
return return
} }
dropInfo := srvdata.GameDropMgrSingleton.GetDropInfoByBaseScore(baseScore) dropInfo := srvdata.GameDropMgrSingleton.GetDropInfoByBaseScore(int32(this.GameId), baseScore)
if dropInfo != nil && len(dropInfo) != 0 && p.Items != nil { if dropInfo != nil && len(dropInfo) != 0 && p.Items != nil {
realDrop := make(map[int32]int32) realDrop := make(map[int32]int32)
for _, drop := range dropInfo { for _, drop := range dropInfo {
@ -2341,6 +2336,10 @@ func (this *Scene) SyncPlayerDatas(param *PlayerDataParam) int64 {
if v.WBGain != 0 { if v.WBGain != 0 {
if p := this.GetPlayer(v.SnId); p != nil { if p := this.GetPlayer(v.SnId); p != nil {
n = p.WBUpdate(v.WBGain) n = p.WBUpdate(v.WBGain)
if p.WBLevel == 0 {
p.BlackLevel = 0
p.WhiteLevel = 0
}
} }
} }
} }

View File

@ -125,12 +125,12 @@ func (this *CaiShenPlayerData) SavePlayerGameData(gameFreeId string) {
// 黑白名单的限制是否生效 // 黑白名单的限制是否生效
func (this *CaiShenPlayerData) CheckBlackWriteList(isWin bool) bool { func (this *CaiShenPlayerData) CheckBlackWriteList(isWin bool) bool {
if isWin && -this.WBLevel > 0 && -this.WBLevel <= 10 { if isWin && this.BlackLevel > 0 && this.BlackLevel <= 10 {
if rand.Int31n(100) < -this.WBLevel*10 { if rand.Int31n(100) < this.BlackLevel*10 {
return true return true
} }
} else if !isWin && this.WBLevel > 0 && this.WBLevel <= 10 { } else if !isWin && this.WhiteLevel > 0 && this.WhiteLevel <= 10 {
if rand.Int31n(100) < this.WBLevel*10 { if rand.Int31n(100) < this.WhiteLevel*10 {
return true return true
} }
} }

View File

@ -543,7 +543,7 @@ func (this *SceneStateCaiShenStart) OnPlayerOp(s *base.Scene, p *base.Player, op
writeBlackTryTimes++ writeBlackTryTimes++
goto WriteBlack goto WriteBlack
} else if writeBlackTryTimes >= 100 && writeBlackTryTimes != 999 { } else if writeBlackTryTimes >= 100 && writeBlackTryTimes != 999 {
logger.Logger.Warnf("CaiShenWriteBlackTryTimesOver [%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, gamePoolCoin, playerEx.WBLevel) logger.Logger.Warnf("CaiShenWriteBlackTryTimesOver [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, gamePoolCoin, playerEx.BlackLevel, playerEx.WhiteLevel)
} }
// 奖池水池处理 // 奖池水池处理
if spinRes.IsJackpot { if spinRes.IsJackpot {

View File

@ -124,12 +124,12 @@ func (this *EasterIslandPlayerData) SavePlayerGameData(gameFreeId string) {
// 黑白名单的限制是否生效 // 黑白名单的限制是否生效
func (this *EasterIslandPlayerData) CheckBlackWriteList(isWin bool) bool { func (this *EasterIslandPlayerData) CheckBlackWriteList(isWin bool) bool {
if isWin && -this.WBLevel > 0 && -this.WBLevel <= 10 { if isWin && this.BlackLevel > 0 && this.BlackLevel <= 10 {
if rand.Int31n(100) < -this.WBLevel*10 { if rand.Int31n(100) < this.BlackLevel*10 {
return true return true
} }
} else if !isWin && this.WBLevel > 0 && this.WBLevel <= 10 { } else if !isWin && this.WhiteLevel > 0 && this.WhiteLevel <= 10 {
if rand.Int31n(100) < this.WBLevel*10 { if rand.Int31n(100) < this.WhiteLevel*10 {
return true return true
} }
} }

View File

@ -523,7 +523,7 @@ func (this *SceneStateEasterIslandStart) OnPlayerOp(s *base.Scene, p *base.Playe
writeBlackTryTimes++ writeBlackTryTimes++
goto WriteBlack goto WriteBlack
} else if writeBlackTryTimes >= 100 && writeBlackTryTimes != 999 { } else if writeBlackTryTimes >= 100 && writeBlackTryTimes != 999 {
logger.Logger.Warnf("EasterIslandWriteBlackTryTimesOver [%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, gamePoolCoin, playerEx.WBLevel) logger.Logger.Warnf("EasterIslandWriteBlackTryTimesOver [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, gamePoolCoin, playerEx.BlackLevel, playerEx.WhiteLevel)
} }
// 奖池水池处理 // 奖池水池处理
if spinRes.IsJackpot { if spinRes.IsJackpot {

View File

@ -358,7 +358,7 @@ func (this *FishingPlayerData) NewStatics(betCoin, gain int64) {
// end // end
//黑白名单不参与投入产出统计,影响自己和他人体验 //黑白名单不参与投入产出统计,影响自己和他人体验
if this.WBLevel != 0 || this.WhiteFlag != 0 || this.GMLevel > 0 { if this.WhiteLevel != 0 || this.WhiteFlag != 0 || this.BlackLevel != 0 || this.GMLevel > 0 {
return return
} }

View File

@ -123,12 +123,12 @@ func (this *IceAgePlayerData) SavePlayerGameData(gameFreeId string) {
// 黑白名单的限制是否生效 // 黑白名单的限制是否生效
func (this *IceAgePlayerData) CheckBlackWriteList(isWin bool) bool { func (this *IceAgePlayerData) CheckBlackWriteList(isWin bool) bool {
if isWin && -this.WBLevel > 0 && -this.WBLevel <= 10 { if isWin && this.BlackLevel > 0 && this.BlackLevel <= 10 {
if rand.Int31n(100) < -this.WBLevel*10 { if rand.Int31n(100) < this.BlackLevel*10 {
return true return true
} }
} else if !isWin && this.WBLevel > 0 && this.WBLevel <= 10 { } else if !isWin && this.WhiteLevel > 0 && this.WhiteLevel <= 10 {
if rand.Int31n(100) < this.WBLevel*10 { if rand.Int31n(100) < this.WhiteLevel*10 {
return true return true
} }
} }

View File

@ -543,7 +543,7 @@ func (this *SceneStateIceAgeStart) OnPlayerOp(s *base.Scene, p *base.Player, opc
writeBlackTryTimes++ writeBlackTryTimes++
goto WriteBlack goto WriteBlack
} else if writeBlackTryTimes >= 100 && writeBlackTryTimes != 999 { } else if writeBlackTryTimes >= 100 && writeBlackTryTimes != 999 {
logger.Logger.Warnf("IceAgeWriteBlackTryTimesOver [%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, gamePoolCoin, playerEx.WBLevel) logger.Logger.Warnf("IceAgeWriteBlackTryTimesOver [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, gamePoolCoin, playerEx.BlackLevel, playerEx.WhiteLevel)
} }
///////////测试游戏数据 开始////////// ///////////测试游戏数据 开始//////////

View File

@ -121,12 +121,12 @@ func (this *TamQuocPlayerData) SavePlayerGameData(gameFreeId string) {
// 黑白名单的限制是否生效 // 黑白名单的限制是否生效
func (this *TamQuocPlayerData) CheckBlackWriteList(isWin bool) bool { func (this *TamQuocPlayerData) CheckBlackWriteList(isWin bool) bool {
if isWin && -this.WBLevel > 0 && -this.WBLevel <= 10 { if isWin && this.BlackLevel > 0 && this.BlackLevel <= 10 {
if rand.Int31n(100) < -this.WBLevel*10 { if rand.Int31n(100) < this.BlackLevel*10 {
return true return true
} }
} else if !isWin && this.WBLevel > 0 && this.WBLevel <= 10 { } else if !isWin && this.WhiteLevel > 0 && this.WhiteLevel <= 10 {
if rand.Int31n(100) < this.WBLevel*10 { if rand.Int31n(100) < this.WhiteLevel*10 {
return true return true
} }
} }

View File

@ -526,7 +526,7 @@ func (this *SceneStateTamQuocStart) OnPlayerOp(s *base.Scene, p *base.Player, op
writeBlackTryTimes++ writeBlackTryTimes++
goto WriteBlack goto WriteBlack
} else if writeBlackTryTimes >= 100 && writeBlackTryTimes != 999 { } else if writeBlackTryTimes >= 100 && writeBlackTryTimes != 999 {
logger.Logger.Warnf("TamquocWriteBlackTryTimesOver [%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, gamePoolCoin, playerEx.WBLevel) logger.Logger.Warnf("TamquocWriteBlackTryTimesOver [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, gamePoolCoin, playerEx.BlackLevel, playerEx.WhiteLevel)
} }
// 奖池水池处理 // 奖池水池处理

View File

@ -1,10 +1,9 @@
package model package model
import ( import (
"time"
"github.com/globalsign/mgo/bson" "github.com/globalsign/mgo/bson"
"mongo.games.com/goserver/core/logger" "mongo.games.com/goserver/core/logger"
"time"
) )
type FriendApply struct { type FriendApply struct {
@ -44,7 +43,7 @@ func UpsertFriendApply(platform string, snid int32, fa *FriendApply) *FriendAppl
logger.Logger.Error("model.UpsertFriendApply rpcCli == nil") logger.Logger.Error("model.UpsertFriendApply rpcCli == nil")
return nil return nil
} }
if len(fa.ApplySnids) == 0 { if fa.ApplySnids == nil || len(fa.ApplySnids) == 0 {
DelFriendApply(platform, snid) DelFriendApply(platform, snid)
return nil return nil
} }
@ -53,8 +52,8 @@ func UpsertFriendApply(platform string, snid int32, fa *FriendApply) *FriendAppl
SnId: snid, SnId: snid,
FA: fa, FA: fa,
} }
ret := &FriendApplyRet{} var ret *FriendApplyRet
err := rpcCli.CallWithTimeout("FriendApplySvc.UpsertFriendApply", args, ret, time.Second*30) err := rpcCli.CallWithTimeout("FriendApplySvc.UpsertFriendApply", args, &ret, time.Second*30)
if err != nil { if err != nil {
logger.Logger.Warn("UpsertFriendApply error:", err) logger.Logger.Warn("UpsertFriendApply error:", err)
return nil return nil
@ -71,12 +70,14 @@ func QueryFriendApplyBySnid(platform string, snid int32) (fa *FriendApply, err e
Platform: platform, Platform: platform,
SnId: snid, SnId: snid,
} }
ret := &FriendApplyRet{} var ret *FriendApplyRet
err = rpcCli.CallWithTimeout("FriendApplySvc.QueryFriendApplyByKey", args, ret, time.Second*30) err = rpcCli.CallWithTimeout("FriendApplySvc.QueryFriendApplyByKey", args, &ret, time.Second*30)
if err != nil { if err != nil {
logger.Logger.Warn("QueryFriendApplyBySnid error:", err) logger.Logger.Warn("QueryFriendApplyBySnid error:", err)
} }
if ret != nil {
fa = ret.FA fa = ret.FA
}
return return
} }
@ -95,84 +96,3 @@ func DelFriendApply(platform string, snid int32) {
} }
return return
} }
//===========================
// Apply List
//===========================
type ApplyList struct {
//Id bson.ObjectId `bson:"_id"`
SnId int32
List []int32
}
func NewApplyList(snId int32) *ApplyList {
return &ApplyList{
SnId: snId,
}
}
type ApplyListReq struct {
Platform string
Data *ApplyList
}
type ApplyListRes struct {
Data *ApplyList
}
func UpsertApplyList(platform string, data *ApplyList) {
if rpcCli == nil {
logger.Logger.Error("model.UpsertApplyList rpcCli == nil")
return
}
if len(data.List) == 0 {
DelFriendApplyList(platform, data.SnId)
return
}
args := &ApplyListReq{
Platform: platform,
Data: data,
}
ret := &ApplyListRes{}
err := rpcCli.CallWithTimeout("FriendApplySvc.UpsertApplyList", args, ret, time.Second*30)
if err != nil {
logger.Logger.Warn("UpsertApplyList error:", err)
return
}
return
}
func QueryFriendApplyListBySnid(platform string, snid int32) (data *ApplyList, err error) {
if rpcCli == nil {
logger.Logger.Error("model.QueryFriendApplyListBySnid rpcCli == nil")
return
}
args := &FriendApplyByKey{
Platform: platform,
SnId: snid,
}
ret := &ApplyListRes{}
err = rpcCli.CallWithTimeout("FriendApplySvc.QueryFriendApplyListBySnid", args, ret, time.Second*30)
if err != nil {
logger.Logger.Warn("QueryFriendApplyListBySnid error:", err)
}
data = ret.Data
return
}
func DelFriendApplyList(platform string, snid int32) {
if rpcCli == nil {
logger.Logger.Error("model.DelFriendApplyList rpcCli == nil")
return
}
args := &FriendApplyByKey{
Platform: platform,
SnId: snid,
}
err := rpcCli.CallWithTimeout("FriendApplySvc.DelFriendApplyList", args, nil, time.Second*30)
if err != nil {
logger.Logger.Warn("DelFriendApplyList error:", err)
}
return
}

View File

@ -456,6 +456,7 @@ type PlayerData struct {
WeekCardTime map[int32]int64 // 周卡结束时间 key:类型 value结束时间 WeekCardTime map[int32]int64 // 周卡结束时间 key:类型 value结束时间
WeekCardAward map[int32]bool //周卡奖励领取状态false-未领取true已领取 WeekCardAward map[int32]bool //周卡奖励领取状态false-未领取true已领取
ItemRecExpireTime int64 // 记牌器到期时间 ItemRecExpireTime int64 // 记牌器到期时间
RequestAddFriend map[int32]int64 //玩家申请好友记录
} }
// 七日签到数据 // 七日签到数据
@ -780,6 +781,7 @@ func NewPlayerData(acc string, name string, id int32, channel, platform string,
WeekCardTime: make(map[int32]int64), WeekCardTime: make(map[int32]int64),
WeekCardAward: make(map[int32]bool), WeekCardAward: make(map[int32]bool),
WelfData: NewWelfareData(), WelfData: NewWelfareData(),
RequestAddFriend: make(map[int32]int64),
} }
if tel != "" { if tel != "" {

View File

@ -284,6 +284,8 @@ const (
GameHallPacketID_PACKET_CS_PLAYER_SWITCHFLAG GameHallPacketID = 8008 GameHallPacketID_PACKET_CS_PLAYER_SWITCHFLAG GameHallPacketID = 8008
GameHallPacketID_PACKET_CSRoomEvent GameHallPacketID = 8009 // 房间事件 GameHallPacketID_PACKET_CSRoomEvent GameHallPacketID = 8009 // 房间事件
GameHallPacketID_PACKET_SCRoomEvent GameHallPacketID = 8010 // 房间事件 GameHallPacketID_PACKET_SCRoomEvent GameHallPacketID = 8010 // 房间事件
GameHallPacketID_PACKET_CSExchangeChannel GameHallPacketID = 8011 // 开启兑换的渠道
GameHallPacketID_PACKET_SCExchangeChannel GameHallPacketID = 8012 // 开启兑换的渠道
) )
// Enum value maps for GameHallPacketID. // Enum value maps for GameHallPacketID.
@ -390,6 +392,8 @@ var (
8008: "PACKET_CS_PLAYER_SWITCHFLAG", 8008: "PACKET_CS_PLAYER_SWITCHFLAG",
8009: "PACKET_CSRoomEvent", 8009: "PACKET_CSRoomEvent",
8010: "PACKET_SCRoomEvent", 8010: "PACKET_SCRoomEvent",
8011: "PACKET_CSExchangeChannel",
8012: "PACKET_SCExchangeChannel",
} }
GameHallPacketID_value = map[string]int32{ GameHallPacketID_value = map[string]int32{
"PACKET_GameHall_ZERO": 0, "PACKET_GameHall_ZERO": 0,
@ -493,6 +497,8 @@ var (
"PACKET_CS_PLAYER_SWITCHFLAG": 8008, "PACKET_CS_PLAYER_SWITCHFLAG": 8008,
"PACKET_CSRoomEvent": 8009, "PACKET_CSRoomEvent": 8009,
"PACKET_SCRoomEvent": 8010, "PACKET_SCRoomEvent": 8010,
"PACKET_CSExchangeChannel": 8011,
"PACKET_SCExchangeChannel": 8012,
} }
) )
@ -7182,6 +7188,93 @@ func (x *SCRoomEvent) GetTs() int64 {
return 0 return 0
} }
// PACKET_CSExchangeChannel
type CSExchangeChannel struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *CSExchangeChannel) Reset() {
*x = CSExchangeChannel{}
if protoimpl.UnsafeEnabled {
mi := &file_game_proto_msgTypes[102]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CSExchangeChannel) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CSExchangeChannel) ProtoMessage() {}
func (x *CSExchangeChannel) ProtoReflect() protoreflect.Message {
mi := &file_game_proto_msgTypes[102]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CSExchangeChannel.ProtoReflect.Descriptor instead.
func (*CSExchangeChannel) Descriptor() ([]byte, []int) {
return file_game_proto_rawDescGZIP(), []int{102}
}
// PACKET_SCExchangeChannel
type SCExchangeChannel struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OnChannelName []string `protobuf:"bytes,1,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` // 开启渠道
}
func (x *SCExchangeChannel) Reset() {
*x = SCExchangeChannel{}
if protoimpl.UnsafeEnabled {
mi := &file_game_proto_msgTypes[103]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCExchangeChannel) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCExchangeChannel) ProtoMessage() {}
func (x *SCExchangeChannel) ProtoReflect() protoreflect.Message {
mi := &file_game_proto_msgTypes[103]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SCExchangeChannel.ProtoReflect.Descriptor instead.
func (*SCExchangeChannel) Descriptor() ([]byte, []int) {
return file_game_proto_rawDescGZIP(), []int{103}
}
func (x *SCExchangeChannel) GetOnChannelName() []string {
if x != nil {
return x.OnChannelName
}
return nil
}
var File_game_proto protoreflect.FileDescriptor var File_game_proto protoreflect.FileDescriptor
var file_game_proto_rawDesc = []byte{ var file_game_proto_rawDesc = []byte{
@ -7913,7 +8006,12 @@ var file_game_proto_rawDesc = []byte{
0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43,
0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18,
0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02,
0x54, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x2a, 0xe6, 0x09, 0x0a, 0x54, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x22, 0x13, 0x0a, 0x11,
0x43, 0x53, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65,
0x6c, 0x22, 0x39, 0x0a, 0x11, 0x53, 0x43, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43,
0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e,
0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f,
0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x2a, 0xe6, 0x09, 0x0a,
0x11, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x11, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61,
0x6d, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73,
0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43,
@ -7992,7 +8090,7 @@ var file_game_proto_rawDesc = []byte{
0x5f, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x5f, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x5f,
0x47, 0x61, 0x6d, 0x65, 0x10, 0xab, 0x46, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xab, 0x46, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f,
0x54, 0x68, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61, 0x54, 0x68, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61,
0x6d, 0x65, 0x10, 0xb2, 0x46, 0x2a, 0xd0, 0x17, 0x0a, 0x10, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6d, 0x65, 0x10, 0xb2, 0x46, 0x2a, 0x8e, 0x18, 0x0a, 0x10, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61,
0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x41, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x41,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x5f, 0x5a, 0x45, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x5f, 0x5a, 0x45,
0x52, 0x4f, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
@ -8181,10 +8279,14 @@ var file_game_proto_rawDesc = []byte{
0x4c, 0x41, 0x47, 0x10, 0xc8, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x4c, 0x41, 0x47, 0x10, 0xc8, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x5f, 0x43, 0x53, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xc9, 0x3e, 0x12, 0x5f, 0x43, 0x53, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xc9, 0x3e, 0x12,
0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d,
0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xca, 0x3e, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xca, 0x3e, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b,
0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61,
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x10, 0xcb, 0x3e, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x6c, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x54, 0x5f, 0x53, 0x43, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e,
0x6e, 0x65, 0x6c, 0x10, 0xcc, 0x3e, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e,
0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -8200,7 +8302,7 @@ func file_game_proto_rawDescGZIP() []byte {
} }
var file_game_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_game_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_game_proto_msgTypes = make([]protoimpl.MessageInfo, 102) var file_game_proto_msgTypes = make([]protoimpl.MessageInfo, 104)
var file_game_proto_goTypes = []interface{}{ var file_game_proto_goTypes = []interface{}{
(OpResultCode_Game)(0), // 0: gamehall.OpResultCode_Game (OpResultCode_Game)(0), // 0: gamehall.OpResultCode_Game
(GameHallPacketID)(0), // 1: gamehall.GameHallPacketID (GameHallPacketID)(0), // 1: gamehall.GameHallPacketID
@ -8306,6 +8408,8 @@ var file_game_proto_goTypes = []interface{}{
(*SCNoticeChange)(nil), // 101: gamehall.SCNoticeChange (*SCNoticeChange)(nil), // 101: gamehall.SCNoticeChange
(*CSRoomEvent)(nil), // 102: gamehall.CSRoomEvent (*CSRoomEvent)(nil), // 102: gamehall.CSRoomEvent
(*SCRoomEvent)(nil), // 103: gamehall.SCRoomEvent (*SCRoomEvent)(nil), // 103: gamehall.SCRoomEvent
(*CSExchangeChannel)(nil), // 104: gamehall.CSExchangeChannel
(*SCExchangeChannel)(nil), // 105: gamehall.SCExchangeChannel
} }
var file_game_proto_depIdxs = []int32{ var file_game_proto_depIdxs = []int32{
0, // 0: gamehall.SCEnterHall.OpRetCode:type_name -> gamehall.OpResultCode_Game 0, // 0: gamehall.SCEnterHall.OpRetCode:type_name -> gamehall.OpResultCode_Game
@ -9594,6 +9698,30 @@ func file_game_proto_init() {
return nil return nil
} }
} }
file_game_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CSExchangeChannel); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_game_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCExchangeChannel); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
} }
type x struct{} type x struct{}
out := protoimpl.TypeBuilder{ out := protoimpl.TypeBuilder{
@ -9601,7 +9729,7 @@ func file_game_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_game_proto_rawDesc, RawDescriptor: file_game_proto_rawDesc,
NumEnums: 2, NumEnums: 2,
NumMessages: 102, NumMessages: 104,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -159,6 +159,8 @@ enum GameHallPacketID {
PACKET_CS_PLAYER_SWITCHFLAG = 8008; PACKET_CS_PLAYER_SWITCHFLAG = 8008;
PACKET_CSRoomEvent = 8009; // PACKET_CSRoomEvent = 8009; //
PACKET_SCRoomEvent = 8010; // PACKET_SCRoomEvent = 8010; //
PACKET_CSExchangeChannel = 8011; //
PACKET_SCExchangeChannel = 8012; //
} }
// //
//PACKET_CS_ENTERHALL //PACKET_CS_ENTERHALL
@ -861,3 +863,11 @@ message SCRoomEvent{
repeated int32 Param= 5; // repeated int32 Param= 5; //
int64 Ts = 6; // int64 Ts = 6; //
} }
// PACKET_CSExchangeChannel
message CSExchangeChannel{}
// PACKET_SCExchangeChannel
message SCExchangeChannel{
repeated string OnChannelName = 1; //
}

View File

@ -375,8 +375,6 @@ const (
PlayerPacketID_PACKET_SCADV PlayerPacketID = 2822 // 看广告 PlayerPacketID_PACKET_SCADV PlayerPacketID = 2822 // 看广告
PlayerPacketID_PACKET_SCGetWeekCardAwary PlayerPacketID = 2823 //领取周卡每日奖励返回 PlayerPacketID_PACKET_SCGetWeekCardAwary PlayerPacketID = 2823 //领取周卡每日奖励返回
PlayerPacketID_PACKET_SCPigBankCoin PlayerPacketID = 2824 //存钱罐金币数量 PlayerPacketID_PACKET_SCPigBankCoin PlayerPacketID = 2824 //存钱罐金币数量
PlayerPacketID_PACKET_CSExchangeChannel PlayerPacketID = 2825 // 开启兑换的渠道
PlayerPacketID_PACKET_SCExchangeChannel PlayerPacketID = 2826 // 开启兑换的渠道
) )
// Enum value maps for PlayerPacketID. // Enum value maps for PlayerPacketID.
@ -505,8 +503,6 @@ var (
2822: "PACKET_SCADV", 2822: "PACKET_SCADV",
2823: "PACKET_SCGetWeekCardAwary", 2823: "PACKET_SCGetWeekCardAwary",
2824: "PACKET_SCPigBankCoin", 2824: "PACKET_SCPigBankCoin",
2825: "PACKET_CSExchangeChannel",
2826: "PACKET_SCExchangeChannel",
} }
PlayerPacketID_value = map[string]int32{ PlayerPacketID_value = map[string]int32{
"PACKET_PLAYERPACKET_ZERO": 0, "PACKET_PLAYERPACKET_ZERO": 0,
@ -632,8 +628,6 @@ var (
"PACKET_SCADV": 2822, "PACKET_SCADV": 2822,
"PACKET_SCGetWeekCardAwary": 2823, "PACKET_SCGetWeekCardAwary": 2823,
"PACKET_SCPigBankCoin": 2824, "PACKET_SCPigBankCoin": 2824,
"PACKET_CSExchangeChannel": 2825,
"PACKET_SCExchangeChannel": 2826,
} }
) )
@ -9403,93 +9397,6 @@ func (x *SCPigBankCoin) GetAddBankCoin() int64 {
return 0 return 0
} }
// PACKET_CSExchangeChannel
type CSExchangeChannel struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *CSExchangeChannel) Reset() {
*x = CSExchangeChannel{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[132]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CSExchangeChannel) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CSExchangeChannel) ProtoMessage() {}
func (x *CSExchangeChannel) ProtoReflect() protoreflect.Message {
mi := &file_player_proto_msgTypes[132]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CSExchangeChannel.ProtoReflect.Descriptor instead.
func (*CSExchangeChannel) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{132}
}
// PACKET_SCExchangeChannel
type SCExchangeChannel struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OnChannelName []string `protobuf:"bytes,1,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` // 开启渠道
}
func (x *SCExchangeChannel) Reset() {
*x = SCExchangeChannel{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[133]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCExchangeChannel) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCExchangeChannel) ProtoMessage() {}
func (x *SCExchangeChannel) ProtoReflect() protoreflect.Message {
mi := &file_player_proto_msgTypes[133]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SCExchangeChannel.ProtoReflect.Descriptor instead.
func (*SCExchangeChannel) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{133}
}
func (x *SCExchangeChannel) GetOnChannelName() []string {
if x != nil {
return x.OnChannelName
}
return nil
}
var File_player_proto protoreflect.FileDescriptor var File_player_proto protoreflect.FileDescriptor
var file_player_proto_rawDesc = []byte{ var file_player_proto_rawDesc = []byte{
@ -10453,12 +10360,7 @@ var file_player_proto_rawDesc = []byte{
0x4d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x4d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x43,
0x6f, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x42, 0x61, 0x6e, 0x6f, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x42, 0x61, 0x6e,
0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x64, 0x64, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x64, 0x64,
0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x53, 0x45, 0x78, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x2a, 0xef, 0x0d, 0x0a, 0x0c, 0x4f, 0x70, 0x52,
0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x39, 0x0a,
0x11, 0x53, 0x43, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e,
0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61,
0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x2a, 0xef, 0x0d, 0x0a, 0x0c, 0x4f, 0x70, 0x52,
0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52,
0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50,
0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50,
@ -10569,7 +10471,7 @@ var file_player_proto_rawDesc = []byte{
0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xd9, 0x36, 0x12, 0x74, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xd9, 0x36, 0x12,
0x29, 0x0a, 0x24, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x5f, 0x29, 0x0a, 0x24, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x5f,
0x59, 0x6f, 0x75, 0x48, 0x61, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x43, 0x61, 0x6e, 0x6e, 0x59, 0x6f, 0x75, 0x48, 0x61, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x43, 0x61, 0x6e, 0x6e,
0x6f, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xda, 0x36, 0x2a, 0xc6, 0x1c, 0x0a, 0x0e, 0x50, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xda, 0x36, 0x2a, 0x88, 0x1c, 0x0a, 0x0e, 0x50,
0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x1c, 0x0a,
0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x50, 0x41, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x50, 0x41,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x14, 0x50,
@ -10794,14 +10696,10 @@ var file_player_proto_rawDesc = []byte{
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x47, 0x65, 0x74, 0x57, 0x65, 0x65, 0x6b, 0x43, 0x61, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x47, 0x65, 0x74, 0x57, 0x65, 0x65, 0x6b, 0x43, 0x61,
0x72, 0x64, 0x41, 0x77, 0x61, 0x72, 0x79, 0x10, 0x87, 0x16, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x72, 0x64, 0x41, 0x77, 0x61, 0x72, 0x79, 0x10, 0x87, 0x16, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f,
0x69, 0x6e, 0x10, 0x88, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x69, 0x6e, 0x10, 0x88, 0x16, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67,
0x43, 0x53, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72,
0x6c, 0x10, 0x89, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x62, 0x06, 0x70,
0x43, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x10, 0x8a, 0x16, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d,
0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
} }
var ( var (
@ -10817,7 +10715,7 @@ func file_player_proto_rawDescGZIP() []byte {
} }
var file_player_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_player_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_player_proto_msgTypes = make([]protoimpl.MessageInfo, 138) var file_player_proto_msgTypes = make([]protoimpl.MessageInfo, 136)
var file_player_proto_goTypes = []interface{}{ var file_player_proto_goTypes = []interface{}{
(OpResultCode)(0), // 0: player.OpResultCode (OpResultCode)(0), // 0: player.OpResultCode
(PlayerPacketID)(0), // 1: player.PlayerPacketID (PlayerPacketID)(0), // 1: player.PlayerPacketID
@ -10953,22 +10851,20 @@ var file_player_proto_goTypes = []interface{}{
(*SCADV)(nil), // 131: player.SCADV (*SCADV)(nil), // 131: player.SCADV
(*SCGetWeekCardAwary)(nil), // 132: player.SCGetWeekCardAwary (*SCGetWeekCardAwary)(nil), // 132: player.SCGetWeekCardAwary
(*SCPigBankCoin)(nil), // 133: player.SCPigBankCoin (*SCPigBankCoin)(nil), // 133: player.SCPigBankCoin
(*CSExchangeChannel)(nil), // 134: player.CSExchangeChannel nil, // 134: player.PlayerData.RankScoreEntry
(*SCExchangeChannel)(nil), // 135: player.SCExchangeChannel nil, // 135: player.SCPlayerDataUpdate.RankScoreEntry
nil, // 136: player.PlayerData.RankScoreEntry nil, // 136: player.SCGameExDropItems.ItemsEntry
nil, // 137: player.SCPlayerDataUpdate.RankScoreEntry nil, // 137: player.SCBindTelInfo.BindTelRewardEntry
nil, // 138: player.SCGameExDropItems.ItemsEntry
nil, // 139: player.SCBindTelInfo.BindTelRewardEntry
} }
var file_player_proto_depIdxs = []int32{ var file_player_proto_depIdxs = []int32{
4, // 0: player.SCBillList.Items:type_name -> player.BillItem 4, // 0: player.SCBillList.Items:type_name -> player.BillItem
0, // 1: player.SCSavePlayerInfo.OpRetCode:type_name -> player.OpResultCode 0, // 1: player.SCSavePlayerInfo.OpRetCode:type_name -> player.OpResultCode
136, // 2: player.PlayerData.RankScore:type_name -> player.PlayerData.RankScoreEntry 134, // 2: player.PlayerData.RankScore:type_name -> player.PlayerData.RankScoreEntry
9, // 3: player.PlayerData.WeekCard:type_name -> player.WeekInfo 9, // 3: player.PlayerData.WeekCard:type_name -> player.WeekInfo
0, // 4: player.SCPlayerData.OpRetCode:type_name -> player.OpResultCode 0, // 4: player.SCPlayerData.OpRetCode:type_name -> player.OpResultCode
8, // 5: player.SCPlayerData.Data:type_name -> player.PlayerData 8, // 5: player.SCPlayerData.Data:type_name -> player.PlayerData
10, // 6: player.SCPlayerData.MiniGameArr:type_name -> player.MiniGameInfo 10, // 6: player.SCPlayerData.MiniGameArr:type_name -> player.MiniGameInfo
137, // 7: player.SCPlayerDataUpdate.RankScore:type_name -> player.SCPlayerDataUpdate.RankScoreEntry 135, // 7: player.SCPlayerDataUpdate.RankScore:type_name -> player.SCPlayerDataUpdate.RankScoreEntry
8, // 8: player.SCThirdPlayerData.Data:type_name -> player.PlayerData 8, // 8: player.SCThirdPlayerData.Data:type_name -> player.PlayerData
0, // 9: player.SCChangeNick.OpRetCode:type_name -> player.OpResultCode 0, // 9: player.SCChangeNick.OpRetCode:type_name -> player.OpResultCode
0, // 10: player.SCChangePassword.OpRetCode:type_name -> player.OpResultCode 0, // 10: player.SCChangePassword.OpRetCode:type_name -> player.OpResultCode
@ -11005,7 +10901,7 @@ var file_player_proto_depIdxs = []int32{
93, // 41: player.JybInfoAward.ItemId:type_name -> player.ItemInfo 93, // 41: player.JybInfoAward.ItemId:type_name -> player.ItemInfo
0, // 42: player.SCPlayerSetting.OpRetCode:type_name -> player.OpResultCode 0, // 42: player.SCPlayerSetting.OpRetCode:type_name -> player.OpResultCode
94, // 43: player.SCPlayerSetting.GainItem:type_name -> player.JybInfoAward 94, // 43: player.SCPlayerSetting.GainItem:type_name -> player.JybInfoAward
138, // 44: player.SCGameExDropItems.Items:type_name -> player.SCGameExDropItems.ItemsEntry 136, // 44: player.SCGameExDropItems.Items:type_name -> player.SCGameExDropItems.ItemsEntry
0, // 45: player.SCVIPBuy.OpRetCode:type_name -> player.OpResultCode 0, // 45: player.SCVIPBuy.OpRetCode:type_name -> player.OpResultCode
0, // 46: player.SCVIPDraw.OpRetCode:type_name -> player.OpResultCode 0, // 46: player.SCVIPDraw.OpRetCode:type_name -> player.OpResultCode
93, // 47: player.VIPcfg.Item:type_name -> player.ItemInfo 93, // 47: player.VIPcfg.Item:type_name -> player.ItemInfo
@ -11014,7 +10910,7 @@ var file_player_proto_depIdxs = []int32{
103, // 50: player.SCVIPInfo.List:type_name -> player.VIPcfg 103, // 50: player.SCVIPInfo.List:type_name -> player.VIPcfg
108, // 51: player.SCPayGoodsInfo.Item:type_name -> player.PayItem 108, // 51: player.SCPayGoodsInfo.Item:type_name -> player.PayItem
0, // 52: player.SCClientLog.OpRetCode:type_name -> player.OpResultCode 0, // 52: player.SCClientLog.OpRetCode:type_name -> player.OpResultCode
139, // 53: player.SCBindTelInfo.BindTelReward:type_name -> player.SCBindTelInfo.BindTelRewardEntry 137, // 53: player.SCBindTelInfo.BindTelReward:type_name -> player.SCBindTelInfo.BindTelRewardEntry
0, // 54: player.SCPlayerSMSCode.Code:type_name -> player.OpResultCode 0, // 54: player.SCPlayerSMSCode.Code:type_name -> player.OpResultCode
0, // 55: player.SCBindTel.Code:type_name -> player.OpResultCode 0, // 55: player.SCBindTel.Code:type_name -> player.OpResultCode
0, // 56: player.SCHttpPass.OpRetCode:type_name -> player.OpResultCode 0, // 56: player.SCHttpPass.OpRetCode:type_name -> player.OpResultCode
@ -12619,30 +12515,6 @@ func file_player_proto_init() {
return nil return nil
} }
} }
file_player_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CSExchangeChannel); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCExchangeChannel); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
} }
type x struct{} type x struct{}
out := protoimpl.TypeBuilder{ out := protoimpl.TypeBuilder{
@ -12650,7 +12522,7 @@ func file_player_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_player_proto_rawDesc, RawDescriptor: file_player_proto_rawDesc,
NumEnums: 2, NumEnums: 2,
NumMessages: 138, NumMessages: 136,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -205,8 +205,6 @@ enum PlayerPacketID {
PACKET_SCADV = 2822; // 广 PACKET_SCADV = 2822; // 广
PACKET_SCGetWeekCardAwary = 2823;// PACKET_SCGetWeekCardAwary = 2823;//
PACKET_SCPigBankCoin = 2824;// PACKET_SCPigBankCoin = 2824;//
PACKET_CSExchangeChannel = 2825; //
PACKET_SCExchangeChannel = 2826; //
} }
// //
@ -1180,11 +1178,3 @@ message SCPigBankCoin {
int64 BankCoinMax = 2; int64 BankCoinMax = 2;
int64 AddBankCoin = 3; int64 AddBankCoin = 3;
} }
// PACKET_CSExchangeChannel
message CSExchangeChannel{}
// PACKET_SCExchangeChannel
message SCExchangeChannel{
repeated string OnChannelName = 1; //
}

View File

@ -4301,7 +4301,6 @@ type DB_GameFree struct {
DiamondDrop int32 `protobuf:"varint,69,opt,name=DiamondDrop,proto3" json:"DiamondDrop,omitempty"` DiamondDrop int32 `protobuf:"varint,69,opt,name=DiamondDrop,proto3" json:"DiamondDrop,omitempty"`
NegativeMax int32 `protobuf:"varint,70,opt,name=NegativeMax,proto3" json:"NegativeMax,omitempty"` NegativeMax int32 `protobuf:"varint,70,opt,name=NegativeMax,proto3" json:"NegativeMax,omitempty"`
RatioMax int32 `protobuf:"varint,71,opt,name=RatioMax,proto3" json:"RatioMax,omitempty"` RatioMax int32 `protobuf:"varint,71,opt,name=RatioMax,proto3" json:"RatioMax,omitempty"`
IsDrop int32 `protobuf:"varint,72,opt,name=IsDrop,proto3" json:"IsDrop,omitempty"`
} }
func (x *DB_GameFree) Reset() { func (x *DB_GameFree) Reset() {
@ -4833,13 +4832,6 @@ func (x *DB_GameFree) GetRatioMax() int32 {
return 0 return 0
} }
func (x *DB_GameFree) GetIsDrop() int32 {
if x != nil {
return x.IsDrop
}
return 0
}
type DB_GameFreeArray struct { type DB_GameFreeArray struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
@ -5517,11 +5509,12 @@ type DB_Game_Drop struct {
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
Bet int32 `protobuf:"varint,2,opt,name=Bet,proto3" json:"Bet,omitempty"` GameId int32 `protobuf:"varint,2,opt,name=GameId,proto3" json:"GameId,omitempty"`
ItemName1 int32 `protobuf:"varint,3,opt,name=ItemName1,proto3" json:"ItemName1,omitempty"` Bet int32 `protobuf:"varint,3,opt,name=Bet,proto3" json:"Bet,omitempty"`
ItemId1 int32 `protobuf:"varint,4,opt,name=ItemId1,proto3" json:"ItemId1,omitempty"` ItemName1 int32 `protobuf:"varint,4,opt,name=ItemName1,proto3" json:"ItemName1,omitempty"`
Rate1 int32 `protobuf:"varint,5,opt,name=Rate1,proto3" json:"Rate1,omitempty"` ItemId1 int32 `protobuf:"varint,5,opt,name=ItemId1,proto3" json:"ItemId1,omitempty"`
Amount1 []int32 `protobuf:"varint,6,rep,packed,name=Amount1,proto3" json:"Amount1,omitempty"` Rate1 int32 `protobuf:"varint,6,opt,name=Rate1,proto3" json:"Rate1,omitempty"`
Amount1 []int32 `protobuf:"varint,7,rep,packed,name=Amount1,proto3" json:"Amount1,omitempty"`
} }
func (x *DB_Game_Drop) Reset() { func (x *DB_Game_Drop) Reset() {
@ -5563,6 +5556,13 @@ func (x *DB_Game_Drop) GetId() int32 {
return 0 return 0
} }
func (x *DB_Game_Drop) GetGameId() int32 {
if x != nil {
return x.GameId
}
return 0
}
func (x *DB_Game_Drop) GetBet() int32 { func (x *DB_Game_Drop) GetBet() int32 {
if x != nil { if x != nil {
return x.Bet return x.Bet
@ -10652,7 +10652,7 @@ var file_pbdata_proto_rawDesc = []byte{
0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x72, 0x72, 0x61,
0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43,
0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xbd, 0x11, 0x0a, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa5, 0x11, 0x0a,
0x0b, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x12, 0x0e, 0x0a, 0x02,
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04,
0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65,
@ -10791,98 +10791,98 @@ var file_pbdata_proto_rawDesc = []byte{
0x76, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x46, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4e, 0x65, 0x67, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x46, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4e, 0x65, 0x67,
0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x74, 0x69, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x74, 0x69,
0x6f, 0x4d, 0x61, 0x78, 0x18, 0x47, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, 0x61, 0x78, 0x18, 0x47, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x74, 0x69,
0x6f, 0x4d, 0x61, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x48, 0x6f, 0x4d, 0x61, 0x78, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x73, 0x44, 0x72, 0x6f, 0x70, 0x22, 0x39, 0x0a, 0x10, 0x72, 0x65, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18,
0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44,
0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22,
0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0xad, 0x03, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12,
0x65, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xad, 0x03, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12,
0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e,
0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x74,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c,
0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6c, 0x61, 0x73, 0x73,
0x05, 0x52, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x66, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x43, 0x6c, 0x61, 0x73, 0x73,
0x1a, 0x0a, 0x08, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x69, 0x66, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
0x05, 0x52, 0x08, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x66, 0x66, 0x65, 0x63,
0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x74, 0x30, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74,
0x18, 0x0a, 0x07, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x30, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x30, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28,
0x52, 0x07, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x30, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x66, 0x66, 0x05, 0x52, 0x06, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x61, 0x6c,
0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x45, 0x66, 0x66, 0x65, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x61, 0x6c,
0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x47, 0x6f, 0x6c,
0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x61, 0x6c, 0x65, 0x47, 0x6f, 0x6c,
0x08, 0x53, 0x61, 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x08, 0x53, 0x61, 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74,
0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x6f, 0x6d,
0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x18, 0x0b, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x54,
0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12,
0x4d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28,
0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x09, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x44,
0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44,
0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x0f,
0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c,
0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x75, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22,
0x6d, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x72,
0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d,
0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x87, 0x02, 0x0a, 0x11, 0x44,
0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x03, 0x41, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c,
0x72, 0x72, 0x22, 0x87, 0x02, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64,
0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64,
0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03,
0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c,
0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x55, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f,
0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x6f, 0x62, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x55, 0x70, 0x52,
0x74, 0x55, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18,
0x52, 0x6f, 0x62, 0x6f, 0x74, 0x55, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x20,
0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x55, 0x0a, 0x0b, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x06, 0x20,
0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x55, 0x70, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73,
0x65, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x55, 0x70, 0x47, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x07, 0x20,
0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x03, 0x28, 0x05, 0x52, 0x09, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x24,
0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x44, 0x6f, 0x77, 0x0a, 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x18,
0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65,
0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x44, 0x4f, 0x64, 0x64, 0x73, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d,
0x6f, 0x77, 0x6e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x4f, 0x64, 0x64, 0x73, 0x22, 0x45, 0x0a, 0x16, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b,
0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65,
0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63,
0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xb3, 0x01, 0x0a, 0x0b,
0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49,
0x41, 0x72, 0x72, 0x22, 0xb3, 0x01, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e,
0x75, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12,
0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d,
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d,
0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20,
0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52,
0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52,
0x61, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x18, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44,
0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x12, 0x69, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69,
0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x66, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65,
0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x69, 0x66, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03,
0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47,
0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x64, 0x0a, 0x0e,
0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x69, 0x64, 0x79, 0x12, 0x0e,
0x03, 0x41, 0x72, 0x72, 0x22, 0x64, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a,
0x75, 0x62, 0x73, 0x69, 0x64, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x52, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65,
0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05,
0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d,
0x03, 0x47, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62,
0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x13, 0x44, 0x42, 0x73, 0x69, 0x64, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72,
0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x69, 0x64, 0x79, 0x41, 0x72, 0x72, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x79, 0x12, 0x28, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x69, 0x64, 0x79, 0x52, 0x03,
0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x41, 0x72, 0x72, 0x22, 0xb0, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f,
0x75, 0x62, 0x73, 0x69, 0x64, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x98, 0x01, 0x0a, 0x0c, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x5f, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02,
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03,
0x42, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x42, 0x65, 0x74, 0x12, 0x1c, 0x42, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x42, 0x65, 0x74, 0x12, 0x1c,
0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28,
0x05, 0x52, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x05, 0x52, 0x09, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x12, 0x18, 0x0a, 0x07,
0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49,
0x74, 0x65, 0x6d, 0x49, 0x64, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x65, 0x31, 0x18, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x65, 0x31, 0x18,
0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x61, 0x74, 0x65, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x61, 0x74, 0x65, 0x31, 0x12, 0x18, 0x0a, 0x07,
0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x41, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x41,
0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d,
0x65, 0x5f, 0x44, 0x72, 0x6f, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x65, 0x5f, 0x44, 0x72, 0x6f, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41,
0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65,

View File

@ -835,8 +835,6 @@ message DB_GameFree {
int32 RatioMax = 71; int32 RatioMax = 71;
int32 IsDrop = 72;
} }
message DB_GameFreeArray { message DB_GameFreeArray {
@ -949,15 +947,17 @@ message DB_Game_Drop {
int32 Id = 1; int32 Id = 1;
int32 Bet = 2; int32 GameId = 2;
int32 ItemName1 = 3; int32 Bet = 3;
int32 ItemId1 = 4; int32 ItemName1 = 4;
int32 Rate1 = 5; int32 ItemId1 = 5;
repeated int32 Amount1 = 6; int32 Rate1 = 6;
repeated int32 Amount1 = 7;
} }

2
public

@ -1 +1 @@
Subproject commit f2cb642621ff9b824620b144e2bb561962f66004 Subproject commit 88e683b711d026b70be3d549be3c0fb64ab44332

View File

@ -8,10 +8,12 @@ func init() {
DataMgr.RegisterLoader("DB_Game_Drop.dat", GameDropMgrSingleton) DataMgr.RegisterLoader("DB_Game_Drop.dat", GameDropMgrSingleton)
} }
var GameDropMgrSingleton = &GameDropMgr{} var GameDropMgrSingleton = &GameDropMgr{
GameDropData: make(map[int32][]*GameDropData),
}
type GameDropMgr struct { type GameDropMgr struct {
GameDropData []*GameDropData GameDropData map[int32][]*GameDropData // gameId:[]*GameDropData
} }
func (this *GameDropMgr) Load(fileFullPath string) error { func (this *GameDropMgr) Load(fileFullPath string) error {
@ -38,7 +40,7 @@ func (this *GameDropMgr) ModuleName() string {
} }
func (this *GameDropMgr) Init() { func (this *GameDropMgr) Init() {
this.GameDropData = this.GameDropData[:0] this.GameDropData = make(map[int32][]*GameDropData)
if PBDB_Game_DropMgr.Datas == nil { if PBDB_Game_DropMgr.Datas == nil {
return return
} }
@ -59,17 +61,18 @@ func (this *GameDropMgr) Init() {
MinAmount: v.Amount1[0], MinAmount: v.Amount1[0],
MaxAmount: v.Amount1[1], MaxAmount: v.Amount1[1],
} }
this.GameDropData = append(this.GameDropData, gdd1) this.GameDropData[v.GameId] = append(this.GameDropData[v.GameId], gdd1)
} }
sort.Slice(this.GameDropData, func(i, j int) bool { for _, v := range this.GameDropData {
return this.GameDropData[i].BaseCoin < this.GameDropData[j].BaseCoin sort.Slice(v, func(i, j int) bool {
return v[i].BaseCoin < v[j].BaseCoin
}) })
}
} }
func (this *GameDropMgr) GetDropInfoByBaseScore(baseCoin int32) []*GameDropData { func (this *GameDropMgr) GetDropInfoByBaseScore(gameId, baseCoin int32) []*GameDropData {
var ret []*GameDropData var ret []*GameDropData
arr := this.GameDropData arr := this.GameDropData[gameId]
i := sort.Search(len(arr), func(i int) bool { i := sort.Search(len(arr), func(i int) bool {
return arr[i].BaseCoin > int64(baseCoin) return arr[i].BaseCoin > int64(baseCoin)
}) })

View File

@ -2226,6 +2226,31 @@ func (this *CSRecordAndNoticeHandler) Process(s *netlib.Session, packetid int, d
return nil return nil
} }
func CSExchangeChannel(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSExchangeChannel Process recv ", data)
_, ok := data.(*gamehall.CSExchangeChannel)
if !ok {
return nil
}
p := PlayerMgrSington.GetPlayer(sid)
if p == nil {
logger.Logger.Warn("CSExchangeChannel p == nil")
return nil
}
var onChannelName []string
conf := PlatformMgrSingleton.GetConfig(p.Platform).ChannelSwitch[common.ChannelSwitchExchange]
if conf != nil {
onChannelName = conf.OnChannelName
}
p.SendToClient(int(gamehall.GameHallPacketID_PACKET_SCExchangeChannel), &gamehall.SCExchangeChannel{
OnChannelName: onChannelName,
})
return nil
}
func init() { func init() {
// 观众进入房间 // 观众进入房间
common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_AUDIENCE_ENTERROOM), &CSAudienceEnterRoomHandler{}) common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_AUDIENCE_ENTERROOM), &CSAudienceEnterRoomHandler{})
@ -2278,4 +2303,6 @@ func init() {
//我的游戏信息及平台公告 //我的游戏信息及平台公告
common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_COMNOTICE), &CSRecordAndNoticeHandler{}) common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_COMNOTICE), &CSRecordAndNoticeHandler{})
netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_COMNOTICE), &CSRecordAndNoticePacketFactory{}) netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_COMNOTICE), &CSRecordAndNoticePacketFactory{})
// 开启兑换的渠道
common.Register(int(gamehall.GameHallPacketID_PACKET_CSExchangeChannel), gamehall.CSExchangeChannel{}, CSExchangeChannel)
} }

View File

@ -1852,33 +1852,6 @@ func init() {
} }
func CSExchangeChannel(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSExchangeChannel Process recv ", data)
_, ok := data.(*player_proto.CSExchangeChannel)
if !ok {
return nil
}
p := PlayerMgrSington.GetPlayer(sid)
if p == nil {
logger.Logger.Warn("CSExchangeChannel p == nil")
return nil
}
var onChannelName []string
conf := PlatformMgrSingleton.GetConfig(p.Platform).ChannelSwitch[common.ChannelSwitchExchange]
if conf != nil {
onChannelName = conf.OnChannelName
}
pack := &player_proto.SCExchangeChannel{
OnChannelName: onChannelName,
}
p.SendToClient(int(player_proto.PlayerPacketID_PACKET_SCExchangeChannel), pack)
logger.Logger.Tracef("SCExchangeChannel %v", pack)
return nil
}
func init() { func init() {
// 用户信息 // 用户信息
common.Register(int(player_proto.PlayerPacketID_PACKET_CS_PLAYERDATA), player_proto.CSPlayerData{}, CSPlayerData) common.Register(int(player_proto.PlayerPacketID_PACKET_CS_PLAYERDATA), player_proto.CSPlayerData{}, CSPlayerData)
@ -1902,8 +1875,6 @@ func init() {
common.Register(int(player_proto.PlayerPacketID_PACKET_CSBillList), player_proto.CSBillList{}, CSBillList) common.Register(int(player_proto.PlayerPacketID_PACKET_CSBillList), player_proto.CSBillList{}, CSBillList)
// 看广告一次 // 看广告一次
common.Register(int(player_proto.PlayerPacketID_PACKET_CSADV), player_proto.CSADV{}, CSADV) common.Register(int(player_proto.PlayerPacketID_PACKET_CSADV), player_proto.CSADV{}, CSADV)
// 开启兑换的渠道
common.Register(int(player_proto.PlayerPacketID_PACKET_CSExchangeChannel), player_proto.CSExchangeChannel{}, CSExchangeChannel)
} }
func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64) error { func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64) error {

View File

@ -10,7 +10,6 @@ import (
"mongo.games.com/game/common" "mongo.games.com/game/common"
"mongo.games.com/game/etcd" "mongo.games.com/game/etcd"
hallproto "mongo.games.com/game/protocol/gamehall" hallproto "mongo.games.com/game/protocol/gamehall"
playerproto "mongo.games.com/game/protocol/player"
"mongo.games.com/game/protocol/webapi" "mongo.games.com/game/protocol/webapi"
) )
@ -137,11 +136,10 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e
// 通知变更 // 通知变更
for _, v := range PlayerMgrSington.playerOfPlatform[config.Platform] { for _, v := range PlayerMgrSington.playerOfPlatform[config.Platform] {
if v != nil && v.IsOnLine() { if v != nil && v.IsOnLine() {
v.SendToClient(int(playerproto.PlayerPacketID_PACKET_SCExchangeChannel), &playerproto.SCExchangeChannel{ v.SendToClient(int(hallproto.GameHallPacketID_PACKET_SCExchangeChannel), &hallproto.SCExchangeChannel{})
OnChannelName: config.OnChannelName,
})
} }
} }
} }
} }

View File

@ -3,6 +3,7 @@ package main
import ( import (
"errors" "errors"
"fmt" "fmt"
"mongo.games.com/goserver/core"
"strconv" "strconv"
"time" "time"
@ -258,21 +259,15 @@ func (this *FriendMgr) IsFriend(platform string, snid, destSnid int32) bool {
// ApplyList 查询好友申请列表 // ApplyList 查询好友申请列表
func (this *FriendMgr) ApplyList(platform string, snid int32) { func (this *FriendMgr) ApplyList(platform string, snid int32) {
var err error
list := &model.ApplyList{}
ret := &model.FriendApply{}
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
ret, err = model.QueryFriendApplyBySnid(platform, snid) ret, err := model.QueryFriendApplyBySnid(platform, snid)
if err != nil { if err != nil {
logger.Logger.Errorf("(this *FriendMgr) ApplyList QueryFriendApplyBySnid %v", err) return nil
}
list, err = model.QueryFriendApplyListBySnid(platform, snid)
if err != nil {
logger.Logger.Errorf("(this *FriendMgr) ApplyList QueryFriendApplyListBySnid %v", err)
} }
return ret return ret
}), task.CompleteNotifyWrapper(func(data interface{}, tt task.Task) { }), task.CompleteNotifyWrapper(func(data interface{}, tt task.Task) {
if ret != nil && ret.ApplySnids != nil { if ret, ok := data.(*model.FriendApply); ok && ret != nil && ret.ApplySnids != nil {
if ret.ApplySnids != nil {
pack := &friend.SCFriendApplyData{} pack := &friend.SCFriendApplyData{}
for _, as := range ret.ApplySnids { for _, as := range ret.ApplySnids {
fa := &friend.FriendApply{ fa := &friend.FriendApply{
@ -291,12 +286,6 @@ func (this *FriendMgr) ApplyList(platform string, snid int32) {
} }
} }
} }
if list != nil && list.List != nil {
p := PlayerMgrSington.GetPlayerBySnId(snid)
if p != nil {
p.ApplyList = list.List
this.SendApplyList(p)
}
} }
})).StartByFixExecutor("QueryFriendApplyBySnid") })).StartByFixExecutor("QueryFriendApplyBySnid")
} }
@ -385,22 +374,66 @@ func (this *FriendMgr) FriendOp(opcode int32, p *Player, destP *model.BindFriend
case OpType_Apply: case OpType_Apply:
logger.Logger.Trace("@Apply friend", p.SnId, " -> ", destP.SnId) logger.Logger.Trace("@Apply friend", p.SnId, " -> ", destP.SnId)
this.FriendApply(p, destP) this.FriendApply(p, destP)
p.RequestAddFriend[destP.SnId] = time.Now().Unix()
this.SendRequestAddFriend(p)
case OpType_Agree: case OpType_Agree:
logger.Logger.Trace("@AgreeApply friend", p.SnId, " -> ", destP.SnId) logger.Logger.Trace("@AgreeApply friend", p.SnId, " -> ", destP.SnId)
this.FriendAgree(p, destP) this.FriendAgree(p, destP)
destPs := PlayerMgrSington.GetPlayerBySnId(destP.SnId)
if destPs != nil {
delete(destPs.RequestAddFriend, p.SnId)
this.SendRequestAddFriend(destPs)
} else {
//从DB获取玩家信息
task.New(core.CoreObject(), task.CallableWrapper(func(o *basic.Object) interface{} {
pd, _ := model.GetPlayerDataBySnId(destP.Platform, destP.SnId, false, false)
return pd
}), task.CompleteNotifyWrapper(func(data interface{}, tt task.Task) {
pd, ok := data.(*model.PlayerData)
if !ok || pd == nil {
return
}
delete(pd.RequestAddFriend, p.SnId)
model.SavePlayerData(pd)
}), "FriendMgr.FriendOp").StartByExecutor(strconv.Itoa(int(p.SnId)))
}
case OpType_Refuse: case OpType_Refuse:
logger.Logger.Trace("@Refuse friend", p.SnId, " -> ", destP.SnId) logger.Logger.Trace("@Refuse friend", p.SnId, " -> ", destP.SnId)
this.FriendRefuse(p, destP) this.FriendRefuse(p, destP)
destPs := PlayerMgrSington.GetPlayerBySnId(destP.SnId)
if destPs != nil {
delete(destPs.RequestAddFriend, p.SnId)
this.SendRequestAddFriend(destPs)
} else {
//从DB获取玩家信息
task.New(core.CoreObject(), task.CallableWrapper(func(o *basic.Object) interface{} {
pd, _ := model.GetPlayerDataBySnId(destP.Platform, destP.SnId, false, false)
return pd
}), task.CompleteNotifyWrapper(func(data interface{}, tt task.Task) {
pd, ok := data.(*model.PlayerData)
if !ok || pd == nil {
return
}
delete(pd.RequestAddFriend, p.SnId)
model.SavePlayerData(pd)
}), "FriendMgr.FriendOp").StartByExecutor(strconv.Itoa(int(p.SnId)))
}
case OpType_Delete: case OpType_Delete:
logger.Logger.Trace("@Delete friend", p.SnId, " -> ", destP.SnId) logger.Logger.Trace("@Delete friend", p.SnId, " -> ", destP.SnId)
this.FriendDelete(p, destP) this.FriendDelete(p, destP)
} }
} }
func (this *FriendMgr) SendRequestAddFriend(p *Player) {
pack := &friend.SCRequestAddFriend{}
for snid, _ := range p.RequestAddFriend {
pack.RequestAddFriend = append(pack.RequestAddFriend, snid)
}
p.SendToClient(int(friend.FriendPacketID_PACKET_SCRequestAddFriend), pack)
}
// FriendApply 好友申请 // FriendApply 好友申请
// 记录在数据库 // 记录在数据库
func (this *FriendMgr) FriendApply(p *Player, destP *model.BindFriend) { func (this *FriendMgr) FriendApply(p *Player, destP *model.BindFriend) {
var applyList []int32
SendToClick := func(retCode friend.OpResultCode, self ...bool) { SendToClick := func(retCode friend.OpResultCode, self ...bool) {
pack := &friend.SCFriendOp{ pack := &friend.SCFriendOp{
OpCode: proto.Int32(OpType_Apply), OpCode: proto.Int32(OpType_Apply),
@ -409,10 +442,6 @@ func (this *FriendMgr) FriendApply(p *Player, destP *model.BindFriend) {
} }
if len(self) == 0 { if len(self) == 0 {
p.SendToClient(int(friend.FriendPacketID_PACKET_SCFriendOp), pack) p.SendToClient(int(friend.FriendPacketID_PACKET_SCFriendOp), pack)
if applyList != nil {
p.ApplyList = applyList
this.SendApplyList(p)
}
} else { } else {
destPs := PlayerMgrSington.GetPlayerBySnId(destP.SnId) destPs := PlayerMgrSington.GetPlayerBySnId(destP.SnId)
if destPs != nil && destPs.IsOnLine() { if destPs != nil && destPs.IsOnLine() {
@ -473,21 +502,6 @@ func (this *FriendMgr) FriendApply(p *Player, destP *model.BindFriend) {
RoleId: int32(roleId), RoleId: int32(roleId),
}) })
model.UpsertFriendApply(p.Platform, destP.SnId, ret) model.UpsertFriendApply(p.Platform, destP.SnId, ret)
data, err := model.QueryFriendApplyListBySnid(p.Platform, p.SnId)
if err != nil {
logger.Logger.Errorf("QueryFriendApplyListBySnid err:%v", err)
} else {
if data == nil {
data = model.NewApplyList(p.SnId)
}
if !common.InSliceInt32(data.List, destP.SnId) {
data.List = append(data.List, destP.SnId)
model.UpsertApplyList(p.Platform, data)
applyList = data.List
}
}
return friend.OpResultCode_OPRC_Sucess return friend.OpResultCode_OPRC_Sucess
}), task.CompleteNotifyWrapper(func(data interface{}, tt task.Task) { }), task.CompleteNotifyWrapper(func(data interface{}, tt task.Task) {
SendToClick(friend.OpResultCode_OPRC_Sucess, false) // 对方 SendToClick(friend.OpResultCode_OPRC_Sucess, false) // 对方
@ -497,7 +511,6 @@ func (this *FriendMgr) FriendApply(p *Player, destP *model.BindFriend) {
// FriendAgree 同意好友申请 // FriendAgree 同意好友申请
func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) { func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) {
var applyList []int32
SendToClick := func(retCode friend.OpResultCode, self ...bool) { SendToClick := func(retCode friend.OpResultCode, self ...bool) {
pack := &friend.SCFriendOp{ pack := &friend.SCFriendOp{
OpCode: proto.Int32(OpType_Agree), OpCode: proto.Int32(OpType_Agree),
@ -538,10 +551,6 @@ func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) {
RoleId: int32(roleId), RoleId: int32(roleId),
} }
destPs.SendToClient(int(friend.FriendPacketID_PACKET_SCFriendOp), pack) destPs.SendToClient(int(friend.FriendPacketID_PACKET_SCFriendOp), pack)
if applyList != nil {
destPs.ApplyList = applyList
this.SendApplyList(destPs)
}
} }
} }
logger.Logger.Tracef(">>FriendAgree %d -> %d, %v", p.SnId, destP.SnId, pack) logger.Logger.Tracef(">>FriendAgree %d -> %d, %v", p.SnId, destP.SnId, pack)
@ -606,24 +615,6 @@ func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) {
//在申请列表 删除 //在申请列表 删除
ret.ApplySnids = append(ret.ApplySnids[:i], ret.ApplySnids[i+1:]...) ret.ApplySnids = append(ret.ApplySnids[:i], ret.ApplySnids[i+1:]...)
model.UpsertFriendApply(p.Platform, p.SnId, ret) model.UpsertFriendApply(p.Platform, p.SnId, ret)
data, err := model.QueryFriendApplyListBySnid(p.Platform, destP.SnId)
if err != nil {
logger.Logger.Errorf("QueryFriendApplyListBySnid err:%v", err)
} else {
if data == nil {
data = model.NewApplyList(destP.SnId)
}
for k, v := range data.List {
if v == p.SnId {
data.List = append(data.List[:k], data.List[k+1:]...)
model.UpsertApplyList(p.Platform, data)
applyList = data.List
break
}
}
}
// 保存好友关系 // 保存好友关系
if friendDB != nil { if friendDB != nil {
friendDB.BindFriend = append(friendDB.BindFriend, &model.BindFriend{ friendDB.BindFriend = append(friendDB.BindFriend, &model.BindFriend{
@ -682,7 +673,6 @@ func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) {
} }
func (this *FriendMgr) FriendRefuse(p *Player, destP *model.BindFriend) { func (this *FriendMgr) FriendRefuse(p *Player, destP *model.BindFriend) {
var applyList []int32
SendToClick := func(retCode friend.OpResultCode, self ...bool) { SendToClick := func(retCode friend.OpResultCode, self ...bool) {
pack := &friend.SCFriendOp{ pack := &friend.SCFriendOp{
OpCode: proto.Int32(OpType_Refuse), OpCode: proto.Int32(OpType_Refuse),
@ -711,24 +701,6 @@ func (this *FriendMgr) FriendRefuse(p *Player, destP *model.BindFriend) {
if as.SnId == destP.SnId { if as.SnId == destP.SnId {
ret.ApplySnids = append(ret.ApplySnids[:i], ret.ApplySnids[i+1:]...) ret.ApplySnids = append(ret.ApplySnids[:i], ret.ApplySnids[i+1:]...)
model.UpsertFriendApply(p.Platform, p.SnId, ret) model.UpsertFriendApply(p.Platform, p.SnId, ret)
data, err := model.QueryFriendApplyListBySnid(p.Platform, destP.SnId)
if err != nil {
logger.Logger.Errorf("QueryFriendApplyListBySnid err:%v", err)
} else {
if data == nil {
data = model.NewApplyList(destP.SnId)
}
for k, v := range data.List {
if v == p.SnId {
data.List = append(data.List[:k], data.List[k+1:]...)
model.UpsertApplyList(p.Platform, data)
applyList = data.List
break
}
}
}
return nil return nil
} }
} }
@ -743,14 +715,6 @@ func (this *FriendMgr) FriendRefuse(p *Player, destP *model.BindFriend) {
return return
} }
SendToClick(friend.OpResultCode_OPRC_Sucess) SendToClick(friend.OpResultCode_OPRC_Sucess)
destPs := PlayerMgrSington.GetPlayerBySnId(destP.SnId)
if destPs != nil && destPs.IsOnLine() {
if applyList != nil {
destPs.ApplyList = applyList
this.SendApplyList(destPs)
}
}
})).StartByFixExecutor(FriendWrite) })).StartByFixExecutor(FriendWrite)
} }
@ -851,15 +815,6 @@ func (this *FriendMgr) UpdateHead(snId, head int32) {
} }
} }
func (this *FriendMgr) SendApplyList(p *Player) {
pack := &friend.SCRequestAddFriend{}
for _, v := range p.ApplyList {
pack.RequestAddFriend = append(pack.RequestAddFriend, v)
}
p.SendToClient(int(friend.FriendPacketID_PACKET_SCRequestAddFriend), pack)
logger.Logger.Tracef("SCRequestAddFriend:%v %v", pack, p.SnId)
}
//========================implement IPlayerLoad ============================== //========================implement IPlayerLoad ==============================
func (this *FriendMgr) Load(platform string, snid int32, player any) *internal.PlayerLoadReplay { func (this *FriendMgr) Load(platform string, snid int32, player any) *internal.PlayerLoadReplay {

View File

@ -147,7 +147,6 @@ type Player struct {
LastGameId int LastGameId int
GameID []int32 // 最近三天玩的游戏 GameID []int32 // 最近三天玩的游戏
InviteNum int32 // 邀请人数 InviteNum int32 // 邀请人数
ApplyList []int32 //玩家申请好友记录
} }
func NewPlayer(sid int64, pd *model.PlayerData, s *netlib.Session) *Player { func NewPlayer(sid int64, pd *model.PlayerData, s *netlib.Session) *Player {
@ -314,6 +313,9 @@ func (this *Player) OnLogined() {
this.VipExtra = VipMgrSington.GetVipPointsExtra(this.Platform, this.VIP) this.VipExtra = VipMgrSington.GetVipPointsExtra(this.Platform, this.VIP)
if this.RequestAddFriend == nil {
this.RequestAddFriend = make(map[int32]int64)
}
// 头像决定性别 // 头像决定性别
this.Sex = (this.Head%2 + 1) % 2 this.Sex = (this.Head%2 + 1) % 2
@ -3023,8 +3025,13 @@ func (this *Player) SendPlayerInfo() {
} }
scPlayerData.Data.WeekCard = append(scPlayerData.Data.WeekCard, &weekInfo) scPlayerData.Data.WeekCard = append(scPlayerData.Data.WeekCard, &weekInfo)
} }
this.SendToClient(int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData) //玩家申请好友记录
for snid, _ := range this.RequestAddFriend {
scPlayerData.Data.RequestAddFriend = append(scPlayerData.Data.RequestAddFriend, snid)
}
proto.SetDefaults(scPlayerData)
logger.Logger.Tracef("Send SCPlayerData %v", scPlayerData) logger.Logger.Tracef("Send SCPlayerData %v", scPlayerData)
this.SendToClient(int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
if !this.IsRob { if !this.IsRob {
this.SyncPlayerDataToGateSrv(this.PlayerData) this.SyncPlayerDataToGateSrv(this.PlayerData)

Binary file not shown.

Binary file not shown.

Binary file not shown.