Compare commits

...

5 Commits

Author SHA1 Message Date
sk 7c02471d2c Merge branch 'develop' of git.pogorockgames.com:mango-games/server/game into develop 2024-05-11 16:54:25 +08:00
sk dcb54a2f58 修改道具掉落功能 2024-05-11 15:54:33 +08:00
sk f2d9d51dd6 好友申请列表 2024-05-11 15:17:02 +08:00
sk ff78edf56b update 2024-05-11 11:02:24 +08:00
sk d7316c0ef2 review 2024-05-10 18:23:03 +08:00
41 changed files with 815 additions and 2986 deletions

Binary file not shown.

View File

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

Binary file not shown.

View File

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

View File

@ -1,254 +1,56 @@
ΟΠ(±κ0:
Ο<18>'(±κ0J:
Ο<18>N(±κ0•:
Ο<18>u(±κ:
Ο <>(±κ:
Ο¨Γ(±κ0σ:
Ο°κ(±κ:
ΟΈ‘(±κ0<>:
 ΟΐΈ(±κ0<>:

ΟΘί(±κ0<>:
 ΟΠ†(±κ:
 ΟΨ­(±κ:
 ΟΰΤ(±κ:
Οθϋ(±κ0Ε:
ΟπΆ(±κ0<>:
ΟψΙ(±κ:
Ο€ρ(±κ0¤ :
Ο<18><>(±κ0ξ :
Ο<18>Ώ(±κ
:
Ο<18>ζ(±κ :
Ο <>(±κ0Ν :
Οπ“ (±κ0΄:
Οΐ<> (±κ0<>:
Ο<18>΅(±κ0<>:
Οΰ§(±κ0η":
Ο°®(±κ0Ξ(:
Ο€µ(±κ0΄.:
ΟΠ»(±κ04:
Ο Β(±κ0<>::
ΟπΘ!(±κ0θ?:
ΟΐΟ$(±κ0ΞE:
 Ο<18>Φ'(±κ0µK:
!Οΰά*(±κ0<>N:
"Ο°γ-(±κ0<>N:
#Ο€κ0(±κ0<>N:
$ΟΠπ3(±κ0<>N:
%Ο χ6(±κ0<>N:
&Οπύ9(±κ0<>N:
'Οΐ„=(±κ0<>N:
(Ο€‰z(±κ0<>N:
)Οΐ–±(±κ0<>N:
*Ο€­β(±κ0<>N: 
+ΟΐΓ“(±κ0<>N:
,Ο€ΪΔ (±κ0<>N:
-Οΐπυ (±κ0<>N:#'
.Ο€‡§(±κ0<>N:+/
/Οΐ<>Ψ(±κ0<>N:26
0Ο€΄‰(±κ0<>N:9=
1ΟΐΚΊ(±κ0<>N:AE
2Ο€αλ(±κ0<>N:HL
3ΠΠ(±κ0:
4Π<18>'(±κ0J:
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:
Ð ±ê(2
ˆ' ±ê(J2
<10>N ±ê(•2
˜u ±ê2
 œ ±ê2
¨Ã ±ê2
°ê ±ê2
¸ ±ê(ˆ2
 À¸ ±ê2

Èß ±ê2
 І ±ê2
 Ø­ ±ê2
 àÔ ±ê2
èû ±ê2
𢠱ê(<28>2
øÉ ±ê2
€ñ ±ê(¤ 2
ˆ˜ ±ê(î 2
<10>¿ ±ê
2
˜æ ±ê 2
 <> ±ê 2
ð“ ±ê(´2
Àš ±ê2
<10>¡ ±ê(<28>2
à§ ±ê(ç"2
°® ±ê(Î(2
€µ ±ê(´.2
л ±ê(42
 Â ±ê(<28>:2
ðÈ! ±ê(è?2
ÀÏ$ ±ê(ÎE2
 <10>Ö' ±ê(µK2
!àÜ* ±ê(<28>N2
"°ã- ±ê(<28>N2
#€ê0 ±ê(<28>N2
$Ðð3 ±ê(<28>N2
% ÷6 ±ê(<28>N2
&ðý9 ±ê(<28>N2
'À„= ±ê(<28>N2
(€‰z ±ê(<28>N2
)À–± ±ê(<28>N2
*€­â ±ê(<28>N2 
+ÀÓ ±ê(<28>N2
,€ÚÄ ±ê(<28>N2
-Àðõ ±ê(<28>N2#'
.€‡§ ±ê(<28>N2+/
/À<>Ø ±ê(<28>N226
0€´‰ ±ê(<28>N29=
1Àʺ ±ê(<28>N2AE
2€áë ±ê(<28>N2HL
3€Â×/ ±ê(<28>N2
4€£ÃG ±ê(<28>N2Ýá
5€„¯_ ±ê(<28>N2§«

File diff suppressed because it is too large Load Diff

View File

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

Binary file not shown.

View File

@ -2,12 +2,14 @@ package svc
import (
"errors"
"net/rpc"
"github.com/globalsign/mgo"
"github.com/globalsign/mgo/bson"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/game/dbproxy/mongo"
"mongo.games.com/game/model"
"mongo.games.com/goserver/core/logger"
"net/rpc"
)
var (
@ -16,6 +18,12 @@ var (
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 {
s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, FriendApplyDBName)
if s != nil {
@ -28,6 +36,18 @@ func FriendApplyCollection(plt string) *mongo.Collection {
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 {
}
@ -71,6 +91,49 @@ func (svc *FriendApplySvc) DelFriendApply(args *model.FriendApplyByKey, ret *boo
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{}
func init() {

View File

@ -486,14 +486,6 @@ func init() {
p := base.PlayerMgrSington.GetPlayerBySnId(wgSetPlayerBlackLevel.GetSnId())
if p != nil {
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.WBMaxNum = wgSetPlayerBlackLevel.GetMaxNum()
p.WBState = wgSetPlayerBlackLevel.GetState()

View File

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

View File

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

View File

@ -113,12 +113,9 @@ type Player struct {
cparams map[string]string //平台登陆数据
Iparams map[int]int64 //整形参数
sparams map[int]string //字符参数
WhiteLevel int32 //todo 使用WBLevel
BlackLevel int32 //todo 使用WBLevel
SingleAdjust *model.PlayerSingleAdjust
IsLocal bool //是否本地player
Items map[int32]int64 //背包数据
MatchParams []int32 //比赛参数 排名、段位、假snid、假角色
IsLocal bool //是否本地player
Items map[int32]int64 //背包数据
MatchParams []int32 //比赛参数 排名、段位、假snid、假角色
MatchRobotGrades []MatchRobotGrade
TestLog []string // 调试日志
RankScore map[int32]int64 // 段位积分
@ -175,11 +172,6 @@ func (this *Player) init(data []byte) bool {
if this.GDatas == nil {
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
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,9 +1,10 @@
package model
import (
"time"
"github.com/globalsign/mgo/bson"
"mongo.games.com/goserver/core/logger"
"time"
)
type FriendApply struct {
@ -43,7 +44,7 @@ func UpsertFriendApply(platform string, snid int32, fa *FriendApply) *FriendAppl
logger.Logger.Error("model.UpsertFriendApply rpcCli == nil")
return nil
}
if fa.ApplySnids == nil || len(fa.ApplySnids) == 0 {
if len(fa.ApplySnids) == 0 {
DelFriendApply(platform, snid)
return nil
}
@ -52,8 +53,8 @@ func UpsertFriendApply(platform string, snid int32, fa *FriendApply) *FriendAppl
SnId: snid,
FA: fa,
}
var ret *FriendApplyRet
err := rpcCli.CallWithTimeout("FriendApplySvc.UpsertFriendApply", args, &ret, time.Second*30)
ret := &FriendApplyRet{}
err := rpcCli.CallWithTimeout("FriendApplySvc.UpsertFriendApply", args, ret, time.Second*30)
if err != nil {
logger.Logger.Warn("UpsertFriendApply error:", err)
return nil
@ -70,14 +71,12 @@ func QueryFriendApplyBySnid(platform string, snid int32) (fa *FriendApply, err e
Platform: platform,
SnId: snid,
}
var ret *FriendApplyRet
err = rpcCli.CallWithTimeout("FriendApplySvc.QueryFriendApplyByKey", args, &ret, time.Second*30)
ret := &FriendApplyRet{}
err = rpcCli.CallWithTimeout("FriendApplySvc.QueryFriendApplyByKey", args, ret, time.Second*30)
if err != nil {
logger.Logger.Warn("QueryFriendApplyBySnid error:", err)
}
if ret != nil {
fa = ret.FA
}
fa = ret.FA
return
}
@ -96,3 +95,84 @@ func DelFriendApply(platform string, snid int32) {
}
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,7 +456,6 @@ type PlayerData struct {
WeekCardTime map[int32]int64 // 周卡结束时间 key:类型 value结束时间
WeekCardAward map[int32]bool //周卡奖励领取状态false-未领取true已领取
ItemRecExpireTime int64 // 记牌器到期时间
RequestAddFriend map[int32]int64 //玩家申请好友记录
}
// 七日签到数据
@ -776,12 +775,11 @@ func NewPlayerData(acc string, name string, id int32, channel, platform string,
ShopLastLookTime: make(map[int32]int64),
IsFoolPlayer: make(map[string]bool),
//测试数据
PowerList: []int32{1}, //默认炮台
UnMaxPower: 10, //初始化炮倍最小倍数
WeekCardTime: make(map[int32]int64),
WeekCardAward: make(map[int32]bool),
WelfData: NewWelfareData(),
RequestAddFriend: make(map[int32]int64),
PowerList: []int32{1}, //默认炮台
UnMaxPower: 10, //初始化炮倍最小倍数
WeekCardTime: make(map[int32]int64),
WeekCardAward: make(map[int32]bool),
WelfData: NewWelfareData(),
}
if tel != "" {

View File

@ -284,8 +284,6 @@ const (
GameHallPacketID_PACKET_CS_PLAYER_SWITCHFLAG GameHallPacketID = 8008
GameHallPacketID_PACKET_CSRoomEvent GameHallPacketID = 8009 // 房间事件
GameHallPacketID_PACKET_SCRoomEvent GameHallPacketID = 8010 // 房间事件
GameHallPacketID_PACKET_CSExchangeChannel GameHallPacketID = 8011 // 开启兑换的渠道
GameHallPacketID_PACKET_SCExchangeChannel GameHallPacketID = 8012 // 开启兑换的渠道
)
// Enum value maps for GameHallPacketID.
@ -392,8 +390,6 @@ var (
8008: "PACKET_CS_PLAYER_SWITCHFLAG",
8009: "PACKET_CSRoomEvent",
8010: "PACKET_SCRoomEvent",
8011: "PACKET_CSExchangeChannel",
8012: "PACKET_SCExchangeChannel",
}
GameHallPacketID_value = map[string]int32{
"PACKET_GameHall_ZERO": 0,
@ -497,8 +493,6 @@ var (
"PACKET_CS_PLAYER_SWITCHFLAG": 8008,
"PACKET_CSRoomEvent": 8009,
"PACKET_SCRoomEvent": 8010,
"PACKET_CSExchangeChannel": 8011,
"PACKET_SCExchangeChannel": 8012,
}
)
@ -7188,93 +7182,6 @@ func (x *SCRoomEvent) GetTs() int64 {
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_rawDesc = []byte{
@ -8006,12 +7913,7 @@ var file_game_proto_rawDesc = []byte{
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,
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, 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,
0x54, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x2a, 0xe6, 0x09, 0x0a,
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,
0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43,
@ -8090,7 +7992,7 @@ var file_game_proto_rawDesc = []byte{
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,
0x54, 0x68, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61,
0x6d, 0x65, 0x10, 0xb2, 0x46, 0x2a, 0x8e, 0x18, 0x0a, 0x10, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61,
0x6d, 0x65, 0x10, 0xb2, 0x46, 0x2a, 0xd0, 0x17, 0x0a, 0x10, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61,
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,
0x52, 0x4f, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43,
@ -8279,14 +8181,10 @@ var file_game_proto_rawDesc = []byte{
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,
0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d,
0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xca, 0x3e, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b,
0x45, 0x54, 0x5f, 0x43, 0x53, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61,
0x6e, 0x6e, 0x65, 0x6c, 0x10, 0xcb, 0x3e, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45,
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,
0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xca, 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 (
@ -8302,7 +8200,7 @@ func file_game_proto_rawDescGZIP() []byte {
}
var file_game_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_game_proto_msgTypes = make([]protoimpl.MessageInfo, 104)
var file_game_proto_msgTypes = make([]protoimpl.MessageInfo, 102)
var file_game_proto_goTypes = []interface{}{
(OpResultCode_Game)(0), // 0: gamehall.OpResultCode_Game
(GameHallPacketID)(0), // 1: gamehall.GameHallPacketID
@ -8408,8 +8306,6 @@ var file_game_proto_goTypes = []interface{}{
(*SCNoticeChange)(nil), // 101: gamehall.SCNoticeChange
(*CSRoomEvent)(nil), // 102: gamehall.CSRoomEvent
(*SCRoomEvent)(nil), // 103: gamehall.SCRoomEvent
(*CSExchangeChannel)(nil), // 104: gamehall.CSExchangeChannel
(*SCExchangeChannel)(nil), // 105: gamehall.SCExchangeChannel
}
var file_game_proto_depIdxs = []int32{
0, // 0: gamehall.SCEnterHall.OpRetCode:type_name -> gamehall.OpResultCode_Game
@ -9698,30 +9594,6 @@ func file_game_proto_init() {
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{}
out := protoimpl.TypeBuilder{
@ -9729,7 +9601,7 @@ func file_game_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_game_proto_rawDesc,
NumEnums: 2,
NumMessages: 104,
NumMessages: 102,
NumExtensions: 0,
NumServices: 0,
},

View File

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

View File

@ -375,6 +375,8 @@ const (
PlayerPacketID_PACKET_SCADV PlayerPacketID = 2822 // 看广告
PlayerPacketID_PACKET_SCGetWeekCardAwary PlayerPacketID = 2823 //领取周卡每日奖励返回
PlayerPacketID_PACKET_SCPigBankCoin PlayerPacketID = 2824 //存钱罐金币数量
PlayerPacketID_PACKET_CSExchangeChannel PlayerPacketID = 2825 // 开启兑换的渠道
PlayerPacketID_PACKET_SCExchangeChannel PlayerPacketID = 2826 // 开启兑换的渠道
)
// Enum value maps for PlayerPacketID.
@ -503,6 +505,8 @@ var (
2822: "PACKET_SCADV",
2823: "PACKET_SCGetWeekCardAwary",
2824: "PACKET_SCPigBankCoin",
2825: "PACKET_CSExchangeChannel",
2826: "PACKET_SCExchangeChannel",
}
PlayerPacketID_value = map[string]int32{
"PACKET_PLAYERPACKET_ZERO": 0,
@ -628,6 +632,8 @@ var (
"PACKET_SCADV": 2822,
"PACKET_SCGetWeekCardAwary": 2823,
"PACKET_SCPigBankCoin": 2824,
"PACKET_CSExchangeChannel": 2825,
"PACKET_SCExchangeChannel": 2826,
}
)
@ -9397,6 +9403,93 @@ func (x *SCPigBankCoin) GetAddBankCoin() int64 {
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_rawDesc = []byte{
@ -10360,7 +10453,12 @@ var file_player_proto_rawDesc = []byte{
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,
0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x41, 0x64, 0x64,
0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x2a, 0xef, 0x0d, 0x0a, 0x0c, 0x4f, 0x70, 0x52,
0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 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, 0xef, 0x0d, 0x0a, 0x0c, 0x4f, 0x70, 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,
0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50,
@ -10471,7 +10569,7 @@ var file_player_proto_rawDesc = []byte{
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,
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, 0x88, 0x1c, 0x0a, 0x0e, 0x50,
0x6f, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xda, 0x36, 0x2a, 0xc6, 0x1c, 0x0a, 0x0e, 0x50,
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,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x14, 0x50,
@ -10696,10 +10794,14 @@ var file_player_proto_rawDesc = []byte{
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,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f,
0x69, 0x6e, 0x10, 0x88, 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,
0x69, 0x6e, 0x10, 0x88, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x43, 0x53, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65,
0x6c, 0x10, 0x89, 0x16, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
0x43, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
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 (
@ -10715,7 +10817,7 @@ func file_player_proto_rawDescGZIP() []byte {
}
var file_player_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_player_proto_msgTypes = make([]protoimpl.MessageInfo, 136)
var file_player_proto_msgTypes = make([]protoimpl.MessageInfo, 138)
var file_player_proto_goTypes = []interface{}{
(OpResultCode)(0), // 0: player.OpResultCode
(PlayerPacketID)(0), // 1: player.PlayerPacketID
@ -10851,20 +10953,22 @@ var file_player_proto_goTypes = []interface{}{
(*SCADV)(nil), // 131: player.SCADV
(*SCGetWeekCardAwary)(nil), // 132: player.SCGetWeekCardAwary
(*SCPigBankCoin)(nil), // 133: player.SCPigBankCoin
nil, // 134: player.PlayerData.RankScoreEntry
nil, // 135: player.SCPlayerDataUpdate.RankScoreEntry
nil, // 136: player.SCGameExDropItems.ItemsEntry
nil, // 137: player.SCBindTelInfo.BindTelRewardEntry
(*CSExchangeChannel)(nil), // 134: player.CSExchangeChannel
(*SCExchangeChannel)(nil), // 135: player.SCExchangeChannel
nil, // 136: player.PlayerData.RankScoreEntry
nil, // 137: player.SCPlayerDataUpdate.RankScoreEntry
nil, // 138: player.SCGameExDropItems.ItemsEntry
nil, // 139: player.SCBindTelInfo.BindTelRewardEntry
}
var file_player_proto_depIdxs = []int32{
4, // 0: player.SCBillList.Items:type_name -> player.BillItem
0, // 1: player.SCSavePlayerInfo.OpRetCode:type_name -> player.OpResultCode
134, // 2: player.PlayerData.RankScore:type_name -> player.PlayerData.RankScoreEntry
136, // 2: player.PlayerData.RankScore:type_name -> player.PlayerData.RankScoreEntry
9, // 3: player.PlayerData.WeekCard:type_name -> player.WeekInfo
0, // 4: player.SCPlayerData.OpRetCode:type_name -> player.OpResultCode
8, // 5: player.SCPlayerData.Data:type_name -> player.PlayerData
10, // 6: player.SCPlayerData.MiniGameArr:type_name -> player.MiniGameInfo
135, // 7: player.SCPlayerDataUpdate.RankScore:type_name -> player.SCPlayerDataUpdate.RankScoreEntry
137, // 7: player.SCPlayerDataUpdate.RankScore:type_name -> player.SCPlayerDataUpdate.RankScoreEntry
8, // 8: player.SCThirdPlayerData.Data:type_name -> player.PlayerData
0, // 9: player.SCChangeNick.OpRetCode:type_name -> player.OpResultCode
0, // 10: player.SCChangePassword.OpRetCode:type_name -> player.OpResultCode
@ -10901,7 +11005,7 @@ var file_player_proto_depIdxs = []int32{
93, // 41: player.JybInfoAward.ItemId:type_name -> player.ItemInfo
0, // 42: player.SCPlayerSetting.OpRetCode:type_name -> player.OpResultCode
94, // 43: player.SCPlayerSetting.GainItem:type_name -> player.JybInfoAward
136, // 44: player.SCGameExDropItems.Items:type_name -> player.SCGameExDropItems.ItemsEntry
138, // 44: player.SCGameExDropItems.Items:type_name -> player.SCGameExDropItems.ItemsEntry
0, // 45: player.SCVIPBuy.OpRetCode:type_name -> player.OpResultCode
0, // 46: player.SCVIPDraw.OpRetCode:type_name -> player.OpResultCode
93, // 47: player.VIPcfg.Item:type_name -> player.ItemInfo
@ -10910,7 +11014,7 @@ var file_player_proto_depIdxs = []int32{
103, // 50: player.SCVIPInfo.List:type_name -> player.VIPcfg
108, // 51: player.SCPayGoodsInfo.Item:type_name -> player.PayItem
0, // 52: player.SCClientLog.OpRetCode:type_name -> player.OpResultCode
137, // 53: player.SCBindTelInfo.BindTelReward:type_name -> player.SCBindTelInfo.BindTelRewardEntry
139, // 53: player.SCBindTelInfo.BindTelReward:type_name -> player.SCBindTelInfo.BindTelRewardEntry
0, // 54: player.SCPlayerSMSCode.Code:type_name -> player.OpResultCode
0, // 55: player.SCBindTel.Code:type_name -> player.OpResultCode
0, // 56: player.SCHttpPass.OpRetCode:type_name -> player.OpResultCode
@ -12515,6 +12619,30 @@ func file_player_proto_init() {
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{}
out := protoimpl.TypeBuilder{
@ -12522,7 +12650,7 @@ func file_player_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_player_proto_rawDesc,
NumEnums: 2,
NumMessages: 136,
NumMessages: 138,
NumExtensions: 0,
NumServices: 0,
},

View File

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

View File

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

View File

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

2
public

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

View File

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

View File

@ -2226,31 +2226,6 @@ func (this *CSRecordAndNoticeHandler) Process(s *netlib.Session, packetid int, d
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() {
// 观众进入房间
common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_AUDIENCE_ENTERROOM), &CSAudienceEnterRoomHandler{})
@ -2303,6 +2278,4 @@ func init() {
//我的游戏信息及平台公告
common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_COMNOTICE), &CSRecordAndNoticeHandler{})
netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_COMNOTICE), &CSRecordAndNoticePacketFactory{})
// 开启兑换的渠道
common.Register(int(gamehall.GameHallPacketID_PACKET_CSExchangeChannel), gamehall.CSExchangeChannel{}, CSExchangeChannel)
}

View File

@ -1852,6 +1852,33 @@ 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() {
// 用户信息
common.Register(int(player_proto.PlayerPacketID_PACKET_CS_PLAYERDATA), player_proto.CSPlayerData{}, CSPlayerData)
@ -1875,6 +1902,8 @@ func init() {
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_CSExchangeChannel), player_proto.CSExchangeChannel{}, CSExchangeChannel)
}
func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64) error {

View File

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

View File

@ -3,7 +3,6 @@ package main
import (
"errors"
"fmt"
"mongo.games.com/goserver/core"
"strconv"
"time"
@ -259,34 +258,46 @@ func (this *FriendMgr) IsFriend(platform string, snid, destSnid int32) bool {
// ApplyList 查询好友申请列表
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{} {
ret, err := model.QueryFriendApplyBySnid(platform, snid)
ret, err = model.QueryFriendApplyBySnid(platform, snid)
if err != nil {
return nil
logger.Logger.Errorf("(this *FriendMgr) ApplyList QueryFriendApplyBySnid %v", err)
}
list, err = model.QueryFriendApplyListBySnid(platform, snid)
if err != nil {
logger.Logger.Errorf("(this *FriendMgr) ApplyList QueryFriendApplyListBySnid %v", err)
}
return ret
}), task.CompleteNotifyWrapper(func(data interface{}, tt task.Task) {
if ret, ok := data.(*model.FriendApply); ok && ret != nil && ret.ApplySnids != nil {
if ret.ApplySnids != nil {
pack := &friend.SCFriendApplyData{}
for _, as := range ret.ApplySnids {
fa := &friend.FriendApply{
Snid: proto.Int32(as.SnId),
Name: proto.String(as.Name),
CreateTs: proto.Int64(as.CreateTs),
}
pack.FriendApplys = append(pack.FriendApplys, fa)
if ret != nil && ret.ApplySnids != nil {
pack := &friend.SCFriendApplyData{}
for _, as := range ret.ApplySnids {
fa := &friend.FriendApply{
Snid: proto.Int32(as.SnId),
Name: proto.String(as.Name),
CreateTs: proto.Int64(as.CreateTs),
}
if len(pack.FriendApplys) > 0 {
proto.SetDefaults(pack)
p := PlayerMgrSington.GetPlayerBySnId(snid)
if p != nil {
p.SendToClient(int(friend.FriendPacketID_PACKET_SCFriendApplyData), pack)
logger.Logger.Trace("SCFriendApplyData: 好友申请列表 pack: ", pack)
}
pack.FriendApplys = append(pack.FriendApplys, fa)
}
if len(pack.FriendApplys) > 0 {
proto.SetDefaults(pack)
p := PlayerMgrSington.GetPlayerBySnId(snid)
if p != nil {
p.SendToClient(int(friend.FriendPacketID_PACKET_SCFriendApplyData), pack)
logger.Logger.Trace("SCFriendApplyData: 好友申请列表 pack: ", pack)
}
}
}
if list != nil && list.List != nil {
p := PlayerMgrSington.GetPlayerBySnId(snid)
if p != nil {
p.ApplyList = list.List
this.SendApplyList(p)
}
}
})).StartByFixExecutor("QueryFriendApplyBySnid")
}
@ -374,66 +385,22 @@ func (this *FriendMgr) FriendOp(opcode int32, p *Player, destP *model.BindFriend
case OpType_Apply:
logger.Logger.Trace("@Apply friend", p.SnId, " -> ", destP.SnId)
this.FriendApply(p, destP)
p.RequestAddFriend[destP.SnId] = time.Now().Unix()
this.SendRequestAddFriend(p)
case OpType_Agree:
logger.Logger.Trace("@AgreeApply friend", p.SnId, " -> ", destP.SnId)
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:
logger.Logger.Trace("@Refuse friend", p.SnId, " -> ", destP.SnId)
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:
logger.Logger.Trace("@Delete friend", p.SnId, " -> ", destP.SnId)
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 好友申请
// 记录在数据库
func (this *FriendMgr) FriendApply(p *Player, destP *model.BindFriend) {
var applyList []int32
SendToClick := func(retCode friend.OpResultCode, self ...bool) {
pack := &friend.SCFriendOp{
OpCode: proto.Int32(OpType_Apply),
@ -442,6 +409,10 @@ func (this *FriendMgr) FriendApply(p *Player, destP *model.BindFriend) {
}
if len(self) == 0 {
p.SendToClient(int(friend.FriendPacketID_PACKET_SCFriendOp), pack)
if applyList != nil {
p.ApplyList = applyList
this.SendApplyList(p)
}
} else {
destPs := PlayerMgrSington.GetPlayerBySnId(destP.SnId)
if destPs != nil && destPs.IsOnLine() {
@ -502,6 +473,21 @@ func (this *FriendMgr) FriendApply(p *Player, destP *model.BindFriend) {
RoleId: int32(roleId),
})
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
}), task.CompleteNotifyWrapper(func(data interface{}, tt task.Task) {
SendToClick(friend.OpResultCode_OPRC_Sucess, false) // 对方
@ -511,6 +497,7 @@ func (this *FriendMgr) FriendApply(p *Player, destP *model.BindFriend) {
// FriendAgree 同意好友申请
func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) {
var applyList []int32
SendToClick := func(retCode friend.OpResultCode, self ...bool) {
pack := &friend.SCFriendOp{
OpCode: proto.Int32(OpType_Agree),
@ -551,6 +538,10 @@ func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) {
RoleId: int32(roleId),
}
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)
@ -615,6 +606,24 @@ func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) {
//在申请列表 删除
ret.ApplySnids = append(ret.ApplySnids[:i], ret.ApplySnids[i+1:]...)
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 {
friendDB.BindFriend = append(friendDB.BindFriend, &model.BindFriend{
@ -673,6 +682,7 @@ func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) {
}
func (this *FriendMgr) FriendRefuse(p *Player, destP *model.BindFriend) {
var applyList []int32
SendToClick := func(retCode friend.OpResultCode, self ...bool) {
pack := &friend.SCFriendOp{
OpCode: proto.Int32(OpType_Refuse),
@ -701,6 +711,24 @@ func (this *FriendMgr) FriendRefuse(p *Player, destP *model.BindFriend) {
if as.SnId == destP.SnId {
ret.ApplySnids = append(ret.ApplySnids[:i], ret.ApplySnids[i+1:]...)
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
}
}
@ -715,6 +743,14 @@ func (this *FriendMgr) FriendRefuse(p *Player, destP *model.BindFriend) {
return
}
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)
}
@ -815,6 +851,15 @@ 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 ==============================
func (this *FriendMgr) Load(platform string, snid int32, player any) *internal.PlayerLoadReplay {

View File

@ -147,6 +147,7 @@ type Player struct {
LastGameId int
GameID []int32 // 最近三天玩的游戏
InviteNum int32 // 邀请人数
ApplyList []int32 //玩家申请好友记录
}
func NewPlayer(sid int64, pd *model.PlayerData, s *netlib.Session) *Player {
@ -313,9 +314,6 @@ func (this *Player) OnLogined() {
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
@ -3025,13 +3023,8 @@ func (this *Player) SendPlayerInfo() {
}
scPlayerData.Data.WeekCard = append(scPlayerData.Data.WeekCard, &weekInfo)
}
//玩家申请好友记录
for snid, _ := range this.RequestAddFriend {
scPlayerData.Data.RequestAddFriend = append(scPlayerData.Data.RequestAddFriend, snid)
}
proto.SetDefaults(scPlayerData)
logger.Logger.Tracef("Send SCPlayerData %v", scPlayerData)
this.SendToClient(int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
logger.Logger.Tracef("Send SCPlayerData %v", scPlayerData)
if !this.IsRob {
this.SyncPlayerDataToGateSrv(this.PlayerData)

Binary file not shown.

Binary file not shown.

Binary file not shown.