1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
È-gc@s¦ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZdZdZdZedƒZ\ZZZZZd„Zd„Zd„Zd    „Zd
„Z d „Z!d „Z"d „Z#d„Z$d„Z%d„Z&e'd„Z(d„Z)d„Z*d„Z+d„Z,d„Z-d„Z.d„Z/d„Z0d„Z1dddde2d„Z3d„Z4d„Z5d„Z6d„Z7d „Z8d!„Z9d"„Z:dd#„Z<d$„Z=d%„Z>d&„Z?d'„Z@de'd(„ZAd)„ZBd*id+„ZCd,„ZDd-„ZEd.„ZFddddd/„ZGdd0„ZHd1„ZId2„ZJe2d3„ZKd4„ZLd5„ZMd6„ZNd7„ZOd8„ZPd9„ZQd:„ZRd;„ZSd<„ZTd=„ZUd>„ZVd?„ZWd@„ZXe2dA„ZYdB„ZZdC„Z[dD„Z\dE„Z]dF„Z^dG„Z_dH„Z`dI„ZadJ„ZbdK„ZcdL„ZddM„ZedN„ZfdO„ZgdP„ZhdQ„ZidR„ZjdS„ZkdT„Zle'dU„ZmdV„ZndW„ZodX„ZpdY„ZqdZ„Zrd[„Zsd\„Ztd]„Zud^„Zvd_„Zwd`„Zxda„Zydb„Zzdc„Z{dd„Z|de„Z}df„Z~dS(giÿÿÿÿNiiiicCs+|j|ƒtjd||jƒƒdS(Ns ¶ÓÎéÏà¹ØÏà¹ØÉóºË¿ª¹Ø×´Ì¬±ä¸ü: %s(t
SetExAttr2t    GameWorldtDebugLogt GetPlayerID(t    curPlayert
checkState((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytSetTeamCheckState6s cCs|jƒdS(Ni
(t
GetExAttr2(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytIsTeamJoinReqNeedCheck;scCs|jƒdS(Ni
(R(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytIsTeamInvateNeedCheck=scCstjS(N(t
PyGameDatatg_sceneTeamIDDict(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytGetSceneTeamIDDict@scCs_tjj|gƒ}||kr[|j|ƒ|tj|<tjd||tjfƒndS(sXÌí¼Ó¶ÓÎéIDµ½³¡¾°¶ÓÎéÁбíÖÐ
    ´´½¨¶ÓÎé¡¢¶Ó³¤±ä¸ü¡¢¶Ó³¤Çл»µØÍ¼¡¢ÉÏÏßʱ¶ÓÎéÖ»ÓÐÒ»ÈË
    s-Ìí¼Ó³¡¾°¶ÓÎé: mapID=%s,teamID=%s,sceneTeam=%sN(R
R tgettappendRR(tteamIDtmapIDttickt
teamIDList((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytAddTeamIDToSceneListAs     cCs–xtjjƒD]~\}}||kr|j|ƒ|sNtjj|ƒntjd||tjfƒ|tjkrŠt||ƒnPqqWdS(sZ°Ñ¶ÓÎéID´Ó³¡¾°¶ÓÎéÁбíÖÐÒÆ³ý
    É¾³ý¶ÓÎé¡¢¶Ó³¤±ä¸ü¡¢¶Ó³¤Çл»µØÍ¼¡¢ÏÂÏßʱ¶ÓÎéÖ»ÓÐÒ»ÈË
    s-ɾ³ý³¡¾°¶ÓÎé: mapID=%s,teamID=%s,sceneTeam=%sN(    R
R titemstremovetpopRRtg_tagMapTeamTimeDicttUpdateTeamTagMapTime(RRRR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytDelTeamIDFromSceneListLs  cCstjS(N(R
tg_scenePlayerIDDict(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytGetScenePlayerIDDictdscCs_tjj|gƒ}||kr[|j|ƒ|tj|<tjd||tjfƒndS(s2Ìí¼ÓÍæ¼ÒIDµ½³¡¾°Íæ¼ÒÁбíÖÐ
    ÉÏÏß¡¢Çл»µØÍ¼
    s3Ìí¼Ó³¡¾°Íæ¼Ò: mapID=%s,playerID=%s,scenePlayerID=%sN(R
RR RRR(tplayerIDRt playerIDList((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytAddPlayerIDToSceneListes       cCswxptjjƒD]_\}}||kr|j|ƒ|sNtjj|ƒntjd||tjfƒPqqWdS(s4°ÑÍæ¼ÒID´Ó³¡¾°Íæ¼ÒÁбíÖÐÒÆ³ý
    ÏÂÏß¡¢Çл»µØÍ¼
    s3ɾ³ý³¡¾°Íæ¼Ò: mapID=%s,playerID=%s,scenePlayerID=%sN(R
RRRRRR(RRR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytDelPlayerIDFromSceneListps      cCsxtjj|gƒ}||kr[|j|ƒ|tj|<tjd||tjfƒn|rtt||tƒndS(Ns1Ìí¼ÓÄ¿±ê¶ÓÎé: tagMapID=%s,teamID=%s,tagMapTeam=%s(R
tg_tagMapTeamDictR RRRRtTrue(RttagMapIDR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytAddTeamIDToTagMapTeamDict€s       cCs˜x‘tjjƒD]€\}}||kr|j|ƒ|sNtjj|ƒntjd||tjfƒ|tjkrtjj|ƒqqqWdS(Ns1ɾ³ýÄ¿±ê¶ÓÎé: tagMapID=%s,teamID=%s,tagMapTeam=%s(R
R RRRRRR(RR"R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytDelTeamIDFromTagMapTeamDict‹s      cCs‚d}| rB|tjkrBtj|\}}||krBdSntjƒ}||gtj|<tjd||||fƒdS(Nis>¸üжÓÎéÄ¿±êʱ¼ä: teamID=%s,tagMapID=%s,curTime=%s,lastTime=%s(R
RttimeRR(RR"tisForcetlastTimeRtcurTime((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR˜s  cCs½tjƒ}tjƒ}xžtjjƒD]\}}|\}}||dkrVq(nt|ƒrhq(n|j|ƒ}|sƒq(ntd|dƒr(tj
d||||fƒq(q(WdS(Ni°is:ÖØÖöÓÎéÄ¿±ê! teamID=%s,tagMapID=%s,curTime=%s,lastTime=%s( R%RtGetTeamManagerR
RRtIsTeamMatchingPlayertFindTeamtDoChangeTeamTagMaptNoneR(R(tteamMgrRttagMapTimeInfoR"R'tteam((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytResetTeamTagMapByTime£s    $cCsœ||f}|jƒ}tjj|gƒ}||kr˜|j|ƒ|tj|<tjƒ}d|_t||ƒt    j
d|||tjfƒndS(Nis?Ìí¼ÓÆ¥Åä¶ÓÎé: tagMapID=%s,tagMapEx=%s,teamID=%s,matchingTeam=%s( t    GetTeamIDR
tg_matchingTeamDictR RtChPyNetSendPackttagGCTeamMatchStatet
IsMatchingtSendTeamFakePackRR(tcurTeamR"ttagMapExtkeyRRt    statePack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytAddTeamIDToMatchingList´s               cCsª|jƒ}x—tjjƒD]†\}}||kr|\}}|j|ƒ|sftjj|ƒntjƒ}t||ƒt    j
d|||tjfƒqqWdS(Ns?ɾ³ýÆ¥Åä¶ÓÎé: tagMapID=%s,tagMapEx=%s,teamID=%s,matchingTeam=%s( R2R
R3RRRR4R5R7RR(R8RR:RR"R9R;((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytDelTeamIDFromMatchingListÃs          cCs.x'tjjƒD]}||krtSqWtS(N(R
R3tvaluesR!tFalse(RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR*Òs cCs‡||f}tjj|gƒ}|jƒ}||krƒ|j|ƒ|tj|<t|tƒtjd|||tjfƒndS(NsCÌí¼ÓÆ¥ÅäÍæ¼Ò: tagMapID=%s,tagMapEx=%s,playerID=%s,matchingPlayer=%s(    R
tg_matchingPlayerDictR RRtSync_TeamMatchStateR!RR(RR"R9R:RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytAddPlayerIDToMatchingListÙs          cCsž|jƒ}x‹tjjƒD]z\}}||kr|\}}|j|ƒ|sftjj|ƒnt|tƒtj    d|||tjfƒqqWdS(NsCɾ³ýÆ¥ÅäÍæ¼Ò: tagMapID=%s,tagMapEx=%s,playerID=%s,matchingPlayer=%s(
RR
R@RRRRAR?RR(RRR:RR"R9((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytDelPlayerIDFromMatchingListæs         cCs4x-tjjƒD]\}}||kr|SqWtS(N(R
R@RR?(Rt
tagMapInfoR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytIsPlayerMatchingTeamôs cCs/tjƒ}t|ƒ|_tj||ƒdS(N(R4R5tintR6t NetPackCommont SendFakePack(Rt
isMatchingR;((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRAús c
Csžtjƒj|ƒ}|j}|j}|j}|j}t|ƒsIdS|jƒ}|j    ƒ}    |dkrtj d|    ƒdSt ||||||ƒdS(NsÍæ¼ÒÒÑÓжÓÎ飬²»ÄÜ´´½¨!( RtGetPlayerManagertGetPlayerByIndextTagMapIDtTagMapExtReqMinLVtReqMaxLVt__CheckCanTeamCommtGetTeamRR-Rt DoCreateTeam(
tindext
clientDataRRR"R9treqMinLVtreqMaxLVt curPlayerTeamt curPlayerID((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt OnCreateTeam
s                    c Cs¤|jƒ}|s$tjdƒ}ntjƒjtj||||ƒ}|dkrhtj    d|ƒdS|j
ƒ}    t |    |j ƒ|ƒt |    |ƒ|j|ƒ|j|ƒ|j|ƒ}
|
dkrtj    d|    |ƒtd|    i|d6|d6|d6|d6|d    6ƒdS|
j|jƒƒ|
j|jƒƒt|
tjtƒ|r–t|ƒt|d
i|d6|d6|d6|d6|d    6ƒnt|ƒ|S( Nt PlayerMaxLVs×î´ó¶ÓÎéÊýÁ¿ÒÑÂú, ´´½¨Ê§°Ü£¡s0ÉèÖõ±Ç°´´½¨¶ÓÎéÍæ¼ÒΪ¶Ó³¤, ÕÒ²»µ½Íæ¼Ò!teamID=%st CreateErrortLeaderR"R9RURVtCreate(Rt IpyGameDataPYt
GetFuncCfgRR)t
CreateTeamtIPY_GameServertttNormalR-tErrLogR2RtGetMapIDR#tSetTeamt    AddMembert GetMemberByIDtDR_TeamtSetFacetGetFacet
SetFacePict
GetFacePict __SetTeamLVt    tmlLeaderR?tSync_TeamMemberInfotSyncMapServerTeamInfoRC( RRR"R9RURVtisSyncRXt
curNewTeamRtcurNewTeamMenber((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRRs2 $      3
6
c    Cstjƒj|ƒ}|jƒ}|j}tjƒj|ƒ}|dkrstjd||ƒtj    |dƒdS|j
ƒ}|j
ƒ}|dkr·|dkr·tj    |dƒdS|dkrÙt ||||ƒnA|dkr|dkrt |||ƒntjd|jƒƒdS(Ns0Ä¿±êÍæ¼Ò²»ÔÚÏß»ò²»´æÔÚ£¬ÎÞ·¨×é¶Ó£¡tagPlayerID=%stGeRen_hwj35_500807tInviteEnterLost02s%OnInvitePlayerJoinTeam ->×é¶ÓϵͳÒì³£( RRJRKRtPlayerIDtFindPlayerByIDR-tLogt PlayerControlt
NotifyCodeRQtInvitePlayerJoinTeamReqtRequestJoinTeamReq(    RSRTRRRt tagPlayerIDt    tagPlayerRWt tagPlayerTeam((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnInvitePlayerJoinTeamHs&         cCsgtjƒj|ƒ}|j}tjƒj|ƒ}|dkrStj|dƒdSt    |||ƒdS(Nt TeamNoExist(
RRJRKtTeamIDR)R+R-RyRzR|(RSRTRRRR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnRequestJoinTeamts     cCs,tjƒ}|jƒ}t|||ƒdS(N(RatIPY_CRequestJoinTeamRt__Func_RequestJoinTeam(RSRtsendPackR}((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytRequestJoinTeam†s  c    Csrtjƒj|ƒ}|jƒ}tjƒj|ƒ}|dkrjtjd||ƒtj|dƒdS|j    ƒ}|j    ƒ}|dkr®|dkr®tj|dƒdS|dkr^t
j ƒ}||_ |j ƒ|_t|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_tj||ƒtj|dƒnt|||ƒdS(Ns,Ä¿±ê×é¶ÓÍæ¼Ò²»ÔÚÏߣ¬ÎÞ·¨×é¶Ó£¡tagPlayerID=%sRttFriend_HaveTeamtTeamAskSuccess(RRJRKRRwR-RxRyRzRQR4ttagGCRequestJoinTeamRvtGetNametNametlentNameLentGetLVtLVtGetJobtJobtGetOfficialRanktRealmLVRjtFaceRltFacePicRGRHR|(    RSR}RRRR~RWRt requestPack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR…Žs4          c
Cs‘t||ƒsdSd\}}|r`|jƒrEtj|dƒdS|jƒ}|jƒ}n|jƒ}|jƒ}tjd|||f|ƒtj    |ƒ}|s·t
|ƒ rø|j ƒ røtjd||f|ƒt |||||ƒt Stjƒ}    ||    _|jƒ|    _t|    jƒ|    _|jƒ|    _|jƒ|    _|jƒ|    _||    _||    _tj||    ƒtj|dƒt S(sŸÑûÇëÍæ¼Ò¼ÓÈë/Ò»Æð×é¶Ó, Ö§³ÖË«·½ÎÞ¶ÓÎéÑûÇë
    @param curPlayer: ÑûÇë·½
    @param tagPlayer: ±»ÑûÇë·½
    @param curPlayerTeam: ÑûÇë·½µ±Ç°¶ÓÎ飬¿ÉÄÜΪNone
    NitGeRen_chenxin_570355s0ÑûÇë×é¶Ó, tagMapID=%s,tagMapEx=%s,tagPlayerID=%ssI±»ÑûÇëµÄÍæ¼Ò´¦ÓÚÍÑ»ú״̬»ò²»ÐèÒªÉóºËµÄ£¬Ö±½ÓÈë¶Ó! tagPlayerID=%s,isTjg=%stTeamInviteSuccess(ii(RPt
IsTeamFullRyRzt GetTagMapIDt GetTagMapExRRRtGetIsTJGR    R2tDoPlayerJoinTeamR!R4ttagGCInviteJoinTeamInfoRvR‹RŒRRŽRRR‘R’R“R”RLRMRGRH(
RR~RWRR"R9RXR}tisTjgt
invitePack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR{Às<                       cCsÈ|s
dSt|ƒ}|s dSt||ƒs3dS|jƒ|jƒko\|jƒknsutj|dƒdS|jƒr•tj|dƒdS|jƒ}|jƒ}t    j
d|j ƒ|f|ƒtj |ƒ}|sït |ƒ r#t    j
d||f|ƒt|||||ƒtStjƒ}||_|jƒ|_t|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_t j!||ƒtj|dƒtS(sQÇëÇó¼ÓÈë¶ÓÎé
    @param curPlayer: ÇëÇó·½
    @param tagPlayerTeam: Ä¿±ê¶ÓÎé
    Nt TeamAskLosttGeRen_chenxin_227479s%ÇëÇó¼ÓÈë¶ÓÎé,teamID=%s,tagPlayerID=%ssM±»ÇëÇó¼ÓÈëµÄ¶Ó³¤´¦ÓÚÍÑ»ú״̬»ò²»ÐèÒªÉóºËµÄ£¬Ö±½ÓÈë¶Ó! tagPlayerID=%s,isTjg=%sR‰("t GetTeamLeaderRPt GetReqMinLVRt GetReqMaxLVRyRzRšRRRR2RRRžR!R4RŠRvR‹RŒRRŽRR‘R’R“R”RjR•RlR–RGRH(RRRR~RXR}R R—((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR|ÿsD .             c    Csûg}tjƒ}|jƒ|_|jƒ|_|jƒ|_|jƒ|_    |j
ƒ|_ g|_ x[t |jƒƒD]G}|j|ƒ}|jƒ}|s¦qyntjƒ}||_||_|jƒ|_t|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|j ƒ|_!|j"ƒ|_#|j$ƒ|_%|j&|ƒ}|r°|jƒr°t'j(|ƒ |_)|j*ƒ|_+|j,ƒ|_-|j.|ƒn|j j.|ƒqyWt|j ƒ|_/x|D]}t0j1||ƒqÝWdS(N(2R4ttagGCTeamMemberInfoR2R‚R›RLRœRMR¥RNR¦ROt
MemberListtxrangetGetMemberCountt GetMemberInfoRttagGCTeamMembertIndexRvt GetPlayerNameRŒRRŽt    GetTeamLVtMemberLVt GetPlayerLVRt GetPlayerJobR’tGetPlayerJobLeveltJobLeveltGetPlayerRealmLVR”RjR•RlR–tGetMemberPlayerRyRt PlayerStateRdtMapIDtGetFBIDtLineIDRt MemberCountRGRH(    R8t olPlayerListtteamMemberInfotit
memberInfoRtmembert memberPlayertplayer((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRo;sH                c
CsÛ|jƒ}|jƒ}tj|ƒ}|s1tS|jƒsR|jƒtjkrft    j
|dƒtS|j ƒ}t |ƒr’t    j
|dƒtSt |ƒr²t    j
|dƒtSt    j|ƒrÕt    j
|dƒtS|r×|jƒ}||kr tjd||ƒtS|jƒ}tj|ƒ}|s0tS|jƒsQ|jƒtjkret    j
|dƒtS|j ƒ}    t |    ƒr‘t    j
|dƒtSt |    ƒr±t    j
|dƒtSt    j|ƒr×t    j
|dƒtSntS(NtGeRen_liubo_986912tTeamEnterForbidtInAssistForbids(Ä¿±êÍæ¼ÒID´íÎó£¬ÎÞ·¨ÑûÇ룡tagPlayerID=%st GeRen_lwh_0tTagInAssistForbid(RRdRtGetMapR?t GetTeamLimitt GetMapFBTypetChConfigtfbtTeamRyRzR2tIsInEnterFBTeamAsktIsInEnterFBTeamPreparetGetAssistTagPlayerIDRxR!(
RR~RXtcurMapIDt
curMapDatat    curTeamIDR}R"t
tagMapDatat    tagTeamID((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRPdsR  !      !   cCs;tjƒ}|jƒ}|jƒ}t||||ƒdS(N(Rat IPY_CTeamReqRtGetTypet__Func_TeamReqReply(RSRR†R}tisAgree((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt TeamReqReply±s
   cCsütjƒj|ƒ}tjƒj|ƒ}|dkrJtj|dƒdS|jƒ}|jƒ}|dkrtjdƒtj|dƒdS|dkr¯tj|dƒdS|dkrÏtj|dƒdSt    ||ƒsâdSt
|||||ƒdS(NRtsÑûÇë×é¶ÓµÄ¶ÓÎéÒѾ­²»´æÔÚ£¡RRˆitInviteEnterLost01( RRJRKRwR-RyRzRQRRPRž(RSR}RØRRR~RWR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR×¹s*        cCs;tjƒ}|jƒ}|jƒ}t||||ƒdS(N(RatIPY_CRequestJoinTeamReplyRRÖt__Func_RequestJoinTeamReply(RSRR†R}RØ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytRequestJoinTeamReplyÿs
   c    Csùtjƒj|ƒ}|jƒ}tjƒj|ƒ}|dkrVtj|dƒdS|jƒ}|dkrqn|jƒ}|dkr¬|dkr¨tj|dƒndS|dkrÌtj|dƒdSt    ||ƒsßdSt
|||||ƒt S(NtPK_hwj35_21675itAcceptTeamLosttApplyEnterLost02( RRJRKRRwR-RyRzRQRPRžR!(    RSR}RØRRRR~RWR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRÜs*       
cCsÿ|s(t||dtƒ}|s(dSn|jƒrQ|rMtj|dƒndS|j|jƒƒdkr}tj    dƒdS|j
ƒr¢t ||j
ƒ|ƒn|j ƒ}tj    d|j ƒ|jƒ|j ƒ|jƒ|fƒ|j|ƒ|j|jƒƒ}|r7|j|jƒƒ|j|jƒƒnt|ƒt|di|jƒd6|jƒd6ƒt|jƒƒr£|r–tj|d    ƒnt|ƒnt|ƒrñ|jƒrá|rÔtj|d    ƒnt|ƒqñt|tƒnt|ƒtS(
sK Ö´ÐÐÍæ¼Ò¼ÓÈë¶ÓÎé
    @param joinPlayer: ¼ÓÈë¶ÓÎéµÄÍæ¼Ò
    @param teamPlayer: ÉóºËÊÇ·ñÔÊÐí¼ÓÈëµÄ¶ÓÔ±£¬Ò»°ãÊǶӳ¤
    @param tagTeam: ¼ÓÈëµÄÄ¿±ê¶ÓÎé, ¿ÉÄÜΪNone
    @param notifyPlayer: ÏµÍ³ÐÅÏ¢·´À¡µÄÄ¿±êÍæ¼Ò£¬ ÇëÇó¼ÓÈëʱ·´À¡¸øÇëÇóµÄÍæ¼Ò£¬Èë¶Ó¼ÓÈëʱ·´À¡¸ø¶Ó³¤, Îª¿Õʱ²»×öÐÅÏ¢·´À¡
    @param isAutoMatchJoin: ÊÇ·ñ×Ô¶¯Æ¥Åä¼ÓÈëµÄ
    RqNR£sÒѾ­ÓÐÕâ¸öÈË£¬²»ÐèÒªÖØÐ¼ÓÈ룡s!%s(%d)¼ÓÈë¶ÓÎé %s(%d), teamID=%s!tJoint
teamPlayert
joinPlayertTeamMatchingSucceed(RRR?RšRyRzRgRR-RRxRQtDoPlayerLeaveTeamR2R‹RfRiRjRkRlRoRpRERCR*R=RAR!t__DoLogic_PlayerTeamChange(RãRâttagTeamRt notifyPlayertisAutoMatchJoinRt    tagMember((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRž:sF
 
*    
cCs>|jƒ}|dkrtjS|j|jƒƒ}|jƒS(N(RQR-Rat    tmlMemberRgRR¯(RR8t
teamMember((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt__GetPlayerTeamLV”s
  tcCs |std|d|ƒdS|jƒ}g}g}g}x(t|jƒƒD]}|j|ƒ}|j|ƒ}    |    s|jdgƒqOn|s«|jdgƒqOn|jƒ}
|
sÓ|jdgƒqOntj    ƒ} |
| _
|j ƒ| _ t j|ƒ| _|j| ƒ|j||    jƒgƒ|j|
|jƒ|    jƒ|j ƒ|jƒgƒqOWx{|D]s\} } tjƒ}| jƒ|_
||_| |_||_t|jƒ|_tj| jƒ| jƒ|ƒqnW|ji|d6ƒt|||ƒdS(s˜Í¬²½¶ÓÎéÐÅÏ¢µ½ MapServer ¸øËùÓÐÔÚÏß¶ÓÔ±
    @note: ÐèҪȫ¶Óͬ²½µÄÇé¿ö£º´´½¨¶ÓÎé¡¢¶ÓÔ±¼ÓÈë¡¢Í˳ö¡¢ÉÏÏß¡¢ÏÂÏß¡¢Çл»µØÍ¼¡¢VIPµÈ¼¶±ä¸ü¡¢VIPµ½ÆÚʱ¼ä¸üÐÂ
    s%s_ErroriNsnot memberInfos not memPlayersnot memPlayerIDtMemList(RhR2R©RªR¶R«RRtChGameToMapPyPackttagGMTeamMemInfoRvRdR¸Ryt GetValidVIPLVtVIPLVR¯R¹t tagGMTeamInfoR‚tTeamLVt MemInfoListRtMemCntRGtSendPyPackToMapServert    GetLineNOt GetRealMapIDtupdate(R8t    eventNametdrDictRtsyncPlayerListt memInfoListtmemListRSt    memPlayerR¿t memPlayerIDtmemInfoRÂtteamLVtteamInfo((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRpsL        8             #cCsktjƒ}|jƒ|_d|_d|_g|_t|jƒ|_t    j
|j ƒ|j ƒ|ƒdS(Ni( RðRôRRvR‚RõRöRR÷RGRøRùRú(RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytSyncMapServerPlayerNoTeamÊs             cCsVtjƒ}|jƒ|_|jƒ|_||_tj|j    ƒ|j
ƒ|ƒdS(N( RðttagGMPlayerLeaveTeamRRvR¹t    CopyMapIDR‚RGRøRùRú(RRt    leavePack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytSyncMapServerPlayerLeaveTeamÕs      cCs\tjƒj|ƒ}|j}|j}|j}|j}t||jƒ||||ƒdS(N(    RRJRKRLRMRNROR,RQ(RSRTRRR"R9RURV((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnChangeTeamInfoês                c
Cs²|s dn    |jƒ}|dkr8tjd|ƒdS|rtt|ƒ}|tjkrttjd||ƒdSn|jƒ}t    |ƒr¤tj
d||ƒdS|rÒtj |ƒ rÒtjd||ƒdS|sêt j dƒ}n|j|ƒ|j|ƒ|j|ƒ|j|ƒtjd|||||f|ƒ|rZt||tƒntjƒ}    ||    _||    _||    _||    _t||    ƒt|ƒt||ƒtS(Nis Íæ¼ÒûÓжÓÎ飬ÎÞ·¨Ð޸ĶÓÎéÐÅÏ¢£¡s.²»ÊǶӳ¤£¬ÎÞ·¨Ð޸ĶÓÎéÄ¿±ê! curPlayerTeamLv=%ss*¶ÓÎé×Ô¶¯Æ¥ÅäÖУ¬ÎÞ·¨±ä¸ü¶ÓÎéÐÅÏ¢!teamID=%ss,Ä¿±êµØÍ¼²»´æÔÚ£¬ÎÞ·¨±ä¸ü¶ÓÎéÐÅÏ¢!tagMapID=%sRZs9Ð޸ĶÓÎéÐÅÏ¢: teamID=%s,tagMapID=%s,mapEx=%s,reqLV(%s~%s)(RR-RRRíRaRnRcR2R*RxRÈR^R_t SetTagMapIDt SetTagMapExt SetReqMinLVt SetReqMaxLVRR!R4ttagGCTeamInfoChangeRLRMRNROR7R$R#(
RR8R"R9RURVRtcurPlayerTeamLvRtteamInfoChange((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR,ôsF                              
 cCs§x t|jƒƒD]Œ}|j|ƒ}|jƒ}| s||krMqn|j|ƒ}|shqn|jƒszqntj|ƒrqntj||ƒqWdS(N(    R©RªR«RR¶RyRRGRH(R8R†tignorePlayerIDR¾R¿RRÁ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR7&s  cCs,tjƒ}|jƒ}t|||ƒdS(N(RatIPY_CLeaderKickPlayerRt__Func_LeaderKickPlayer(RSRR†R}((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytLeaderKickPlayerHs  c Cs»tjƒj|ƒ}|jƒ}|jƒ}|dkrMtjd|ƒdS|j|ƒ}|dkr€tjd||ƒdS||krdSt|ƒ}|t    j
krÃtjd||ƒdStjƒj |ƒ}t ||ƒsëdS|j ƒ}    |jƒtjkr.tjd|    |ƒt|ƒdStjd|    |f|ƒt|||tj|ƒ|r·tj|ƒr·tjj|gƒ}
|    |
kr·|
j|    ƒ|
tj|<q·ndS(Ns$¶Ó³¤Ìß³öÍæ¼Ò, Íæ¼ÒÎÞ¶ÓÎé, ÎÞ·¨ÌßÈË£¡s¶Ó³¤Ìß³öÍæ¼Ò, ¶ÓÎéÎÞ´ËÍæ¼Ò = %ss-²»ÊǶӳ¤£¬ÎÞ·¨Ìß³öÍæ¼Ò£¡ curPlayerTeamLv = %ss5¶Ó³¤Ìß³öÍæ¼Òºó, Òò¶ÓÎéÈËÊý²»×㣬×Ô¶¯½âÉ¢, ¶ÓÎéID = %ss'Ìß³öÍæ¼Ò³É¹¦£¡teamID=%s, tagPlayerID=%s(RRJRKtGetIDRQR-RcRgRíRaRnRwRPR2tGetTeamPlayerCountRËtDef_Team_MinPlayerCountRt DoDismissTeamRxt__DoLogic_PlayerLeaveTeamt Def_Team_Sync_LeaveMsg_OtherKickRyRR
tg_tjgKickPlayerTeamDictR R( RSR}RRRXR8t    curMemberRR~RÒtkickTeamIDList((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRPs@       
  cCsÒ|j|ƒ|jƒ}|dkr)dS|rÎ|tjkrctj|jƒd|jƒgƒqÎ|tj    kr—tj|jƒd|jƒgƒqÎ|tj
krÎtj|jƒd|jƒgƒqÎndS(szÉèÖóÉÔ±¶ÓÎéµÈ¼¶
     @param curTeamMember ¶ÓԱʵÀý
     @param teamLV ¶ÓÎéȨÏ޵ȼ¶
     @param isNotify ÊÇ·ñ¹ã²¥¶ÓÔ±
    Nt InsteadHeadertGeRen_chenxin_76326tWithdrawalPopedom( t    SetTeamLVt    GetPlayerR-RaRnRyRzRQR‹ttmlMemberCanCallRë(t curTeamMemberRtisNotifyR~((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRms   %%(cCs;tjƒ}|jƒ}|jƒ}t||||ƒdS(N(RatIPY_CTeamChangeMemberStateRt GetMemberLVt__Func_TeamChangeMemberState(RSRR†R}tmemberLV((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytTeamChangeMemberState¿s
   c Csãtjƒj|ƒ}|jƒ}||kr1dStjƒj|ƒ}|dkrftj|dƒdS|jƒ}|sŒtj    d|ƒdSt
|ƒ}|t j kr¿tj    d||ƒdSt ||ƒsÒdS|j|ƒ}    |    dkrtj    d||ƒdS|jƒ}
|t j krx|j|ƒ} t| t jtƒt|    t j ƒt|
|ƒt|
|jƒ|ƒn?|t jkr§t|    |ƒtj|dƒnt|    t jƒt|ƒt|di|d6|d6ƒdS(    NtTeam_Header_TransferLosts¶Ó³¤¸ø¶ÓԱȨÏÞ,Íæ¼ÒÎÞ¶ÓÎés<¶Ó³¤¸ø¶ÓԱȨÏÞ, Íæ¼Ò·Ç¶Ó³¤£¬È¨Ï޵ȼ¶²»×ã! curPlayerTeamLv=%ss/¶Ó³¤¸ø¶ÓԱȨÏÞ, ¶ÓÔ±²»ÔڸöÓÎ飡 tagPlayerID=%stGeRen_chenxin_612029tChangeMemTeamLVR}R+(RRJRKRRwR-RyRzRQRcRíRaRnRPRgR2RmRëR?RRRdR%RoRp( RSR}R+RRRXR~R8Rt
packMemberRt
leadMember((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR*ÇsH         
cCsqtjƒj|ƒ}|jƒ}|jƒ}|dkrMtjd|ƒdSt|ƒs]dSt|||ƒdS(NsÀ뿪¶ÓÎéÒì³£, Íæ¼ÒÎÞ¶ÓÎé(    RRJRKRRQR-RcRPRå(RSRRRXR8((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt    LeaveTeams    cCs |jƒ}|jƒ}|jƒtjkrOtjd||ƒt|ƒdStjd||ƒ|j|ƒ}|j    ƒt
j krØt |t
j tƒt||ƒ}|rØt||ƒt||jƒ|ƒqØntj|dƒt||jƒ|tj|ƒdS(Ns-À뿪¶ÓÎ飬Òò¶ÓÎéÈËÊý²»×㣬½âÉ¢¶ÓÎé teamID= %ssÍæ¼ÒÀ뿪¶ÓÎé: teamID=%stGeRen_chenxin_498155(RR2RRËRRRRRgR¯RaRnRmRëR?t__DoSetNewLeaderRRRdRyRzRtDef_Team_Sync_LeaveMsg_Self(RR8RRXRRìt    newLeader((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRå/s"  
 cCs²x«t|jƒƒD]—}|j|ƒ}|j|ƒ}|dks|jƒdkr[qn|jƒ|krsqnt|tjƒt    j
d|j ƒ|jƒ|fƒ|SWdS(s~ÓÉÓÚijЩԭÒòÐèÒª×ªÒÆ¶Ó³¤£¬Èç¶Ó³¤ÏÂÏß¡¢¶Ó³¤Àë¶ÓµÈ
        Ä¿Ç°Ä¬ÈÏ×ªÒÆ¸øÔÚÏßµÄÏÂÒ»Ãû¶ÓÔ±
        @return: Ð¶ӳ¤playerʵÀý
    is;ϵͳÉèÖöÓÎéжӳ¤: teamID=%s,oldLeaderID=%s,newLeaderID=%sN( R©RªR¶R«R-RRmRaRnRRR2(R8t oldLeaderIDR¾tcurMemberPlayert curMemberInfo((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR4Ws    cCs1|j||ƒ|j|ƒ|dkr’t|t|ƒ|jdƒt||jƒƒ|jƒt    |jƒƒr…t
|t ƒnt |ƒnt |ƒt|di|d6|d6ƒ|jƒdkr-t}x?t|jƒƒD]+}|j|ƒ}|jƒråt }PqåqåW|r-t||ƒq-ndS(NtLeavet delPlayerIDtmsgi(tSync_LeaveTeamt DeleteMemberR-tSetTeamMemberPrepareStatetTeamMemPrepareState_LeaveTeamReR
R2tMapServer_LeaveFBR*RAR?RæRoRpRR!R©RªR«Rt
DeleteTeam(t    delPlayerR;R8R<Rt isTeamEmptyR¾R¿((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRps,
 
 
 cCstj|ƒtj|ƒdS(s0Íæ¼Ò¶ÓÎé±ä¸üͨÓô¦Àí£¬ Í˳öºÍ¼ÓÈëµÄͳһÂß¼­
    N(t GameWorldBosstOnPlayerTeamChanget PlayerAssist(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRæ£s  cCsÍ|s
dSx£t|jƒƒD]}|j|ƒ}|jƒ}|dkrPqntj|dƒ|jdƒt||j    ƒƒt
|ƒ|j ƒt j kr|jƒqqWt|tjƒjƒƒtS(NR3(R©RªR«R$R-RyRzReR
R2RæR¯RaRnRARBRt GetGameWorldtGetTickR!(R8R¾RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR¬s   
cCs’|jƒ}t||ƒt|ƒt|ƒ|tjkrOtjj|ƒn|tjkrqtjj|ƒn|jƒt    j
ƒj |ƒdS(N( R2RR$R=R
tg_teamFBEnterAskDictRtg_prepareTeamDicttSync_DismissTeamRR)RB(R8RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRBËs  
 
 
cCstjtƒ||ƒdS(N(Rt GetPsycoFunct__Func_DismissTeam(RSR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt DismissTeamñscCsžtjƒj|ƒ}|jƒ}|jƒ}|dkrMtjd|ƒdSt|ƒ}|tj    kr€tjd||ƒdSt
|ƒsdSt |ƒdS(Ns½âÉ¢¶ÓÎéÒì³£, Íæ¼ÒÎÞ¶ÓÎés4½âÉ¢¶ÓÎéÒì³£, ²»ÊǶӳ¤£¬ÎÞ·¨½âÉ¢£¡curPlayerTeamLv=%s( RRJRKRRQR-RRíRaRnRPR(RSRRRXR8R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRNõs     
cCs{xtt|jƒƒD]`}|j|ƒ}| s|jƒ rBqn|j|ƒ}|jƒtjkrlqn|jƒSWdS(N(
R©RªR¶RR«R¯RaRnR$R-(tdestTeamRSRR9((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR¤s cCs(t|ƒ}|tjkp'|tjkS(N(RíRaR%Rn(RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt CheckTeamLVs cCsx|s
dSd}xat|jƒƒD]M}|j|ƒ}|dkrJq#n| rftj|ƒrfq#n|d7}q#W|S(Nii(R©RªR¶R-RyR(R8t
includeTJGtcountR¾R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytCheckTeamOnLineCount$s cCsàtjƒj|ƒ}tj|tj|ƒs>tjdƒdS|jƒ}|jƒ}d}tjƒ}t    ƒ}t
j |j |gƒƒ}    t |    ƒ|krlg}
|jƒ} x|    D]‡} | |krÏq·n|j| ƒ} | sêq·ntj| ƒrÿq·nt| ƒsq·n| jƒ}|
jt| |ƒ| | gƒq·W|
jƒg|
D]}|d^qS}    ntjƒ}g|_d}x |    D]} ||kr¤Pn| |kr¶qŽn|j| ƒ} | sÑqŽntj| ƒræqŽnt| ƒsøqŽn|d7}tjƒ}| |_| jƒ|_t |jƒ|_| jƒ|_| jƒ|_ | j!ƒ|_"| j#ƒ|_$| j%ƒ|_&|jj|ƒqŽWt |jƒ}||_'t(j)||ƒtjd|||    f|ƒdS(Ns¸½½üÍæ¼Ò²éѯ¼ä¸ôδµ½...iiiisHͬ²½¸ø¿Í»§¶Ë³¡¾°¸½½üÍæ¼ÒÊý: mapID=%s,playerCount=%s,scenePlayerIDList=%s(*RRJRKtRefurbishPlayerTickRËt(TYPE_Player_Tick_QueryRecommendNearbyKeyRRdRRtcopytdeepcopyR RRRwRyRRPRtabstsortR4ttagGCRecommendNearbyPlayerListt
PlayerListttagGCRecommendNearbyPlayerRvR‹RŒRŽRR‘R’R“R”RjR•RlR–t PlayerCountRGRH(RSRTRRRRXtDef_SyncPlayerCountt    playerMgrtscenePlayerIDDicttscenePlayerIDListtplayerIDSortListt curPlayerLVRRÂtplayerLVRtnearbyPlayerInfoRSt nearbyPlayert playerCount((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnQueryRecommendNearbyPlayer9sv             %
          
             cCsÑtjƒj|ƒ}tj|tj|ƒs>tjdƒdS|jƒ}|jƒ}d}t    ƒ}|j
|gƒ}tj ƒ}t |ƒ|krKg}    g}
xm|D]e} |j | ƒ} | sÉq¨n| jƒ} | tjkrú|    j| | gƒq¨|
j| | gƒq¨W|
jdtƒ|
|    }g|D]}|d^q2}ntjƒ}g|_d}x|D]} ||krƒPn|j | ƒ} | sžqmnt| ƒ}|s¶qmn|d7}tjƒ}|jƒ|_|jƒ|_t |jƒ|_|jƒ|_|jƒ|_|j ƒ|_!| j"ƒ|_#| j$ƒ|_%| j&ƒ|_'| j(ƒ|_)| j*ƒ|_+|jj|ƒqmWt |jƒ}||_,t-j.||ƒtjd|||f|ƒdS(Nsˢг¡¾°¶ÓÎéʱ¼ä¼ä¸ôδµ½...itreverseiis@ͬ²½¸ø¿Í»§¶Ë³¡¾°¶ÓÎéÊý: mapID=%s,teamCount=%s,sceneTeamIDList=%s(/RRJRKRURËt!TYPE_Player_Tick_QueryTeamInfoKeyRRdRR R R)RR+RªtDef_Team_MaxPlayerCountRRZR!R4ttagGCSceneTeamRefresht SceneTeamListR¤ttagGCSceneTeamRvR‹t
PlayerNameRŽRRR‘R’R“R”RR»R›RLRœRMR¥RNR¦ROt    TeamCountRGRH(RSRRRRtDef_SyncTeamCountt sceneTeamDicttsceneTeamIDListR.tfullTeamIDListtotherTeamIDListRR0t memberCounttsceneTeamIDSortListRt sceneTeamInfoRStleadert    sceneTeamt    teamCount((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytRefreshSceneTeamsp          
         
         cCsmtjƒ}xZtjjƒD]I\}}|\}}|j|ƒ}|rtd||tj    |ƒqqWdS(N(
RR)R
tg_countdownLeaveTeamDictRR+RR-RËR5(RR.Rt leaveTeamInfoRtleaveServerTickR0((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt OnServerCloseâs   cCstjƒ}xƒtjjƒD]r\}}|\}}||tjkrMqntjj|ƒ|j|ƒ}|rt    d||tj |ƒqqWt ƒdS(N( RR)R
R~RRËtDef_CountdownLeaveTeamTimeRR+RR-R5R1(RR.RRRR€R0((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytDoCountdownLeaveTeamLogicîs   c    Csµ|jƒ}t|ƒt|ƒ|tjkrBtjj|ƒn|jƒ}|dkr^dS|jƒ}|j    ƒ}t
j |ƒ}t j d||||f|ƒ||gtj|<t
j |ƒsÔ|jƒn|j|ƒ}|jdƒt|t|ƒ|jƒtjkršt|tjƒt||ƒ}|rjt||ƒt||j    ƒ|ƒt|ƒqšt|t jƒjƒƒt|ƒt |ƒnt!|di|d6ƒdS(Ns;Ö´ÐÐÍæ¼ÒÏÂÏß¶ÓÎéÂß¼­!curTeamID=%s,isTJG=%s,mapID=%s,tick=%stLogOffR("RRRCR
RRRQR-R2RdRyRRRR~tSync_TeamMemberDisconnectRgt    SetPlayerR?tTeamMemPrepareState_OfflineR¯RaRnRmRëR4RRRoRHRIR$R=Rp(    RRRR8RÒRtisTJGR&R6((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytDoPlayerLogOffTeamLogics< 
 
             
 c    Cs¹|jƒ}|jƒ}tjd||ƒt||jƒƒ|tjkratjj|ƒn|dkrêtj    ƒj
|ƒ}|dkr’dS|jƒ}tj    ƒj |ƒ}|dkrÃdStj d||fƒ|j|ƒntj    ƒj |ƒ}|dks |j|ƒdkrˆ|jdƒ|jdƒt||ƒtj|jƒƒ}|r„|jƒtjkr„|jƒndS|j|ƒ}|j|ƒ|j|ƒ|jƒtjkrÙ|jtjƒnt|ƒ}|dksþt|ƒ rI|j|ƒ}|jtjƒt ||jƒ|ƒt!||j"ƒƒnt#|ƒt$|di|d6ƒt%j&|ƒs†|j'ƒnt(|ƒr¢t)|t*ƒnt+||j,ƒƒt*S(Ns!Ö´ÐÐÍæ¼ÒÉÏÏß¶ÓÎéÂß¼­!curTeamID=%sisÍæ¼Ò(%s)ÈÔÈ»ÓжÓÎé(%s), ²¹¾ÈitLoginR(-RR2RRRRdR
R~RR)tFindTeamMemberIndexR-R+Rxt    SetTeamIDRgReR=R
RÈRÊRËRÌRAR†R¯RaRnR#RëRTR¤RR#R›RoRpRyRtSync_TeamMemberLoginR*RAR!tOnTeamMemFamilyRefresht GetFamilyID(RRRRÒR&R8tgameMapt onLineCount((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnPlayerLoginRefreshTeam9sX          !       
  cCsÕtjd|jƒƒ|jƒdkr,dStjƒj|jƒƒ}|dkrWdS|jƒ}|jt    j
ƒ}|rÑ||krÑtj d||f|jƒƒt |ƒt |di|jƒd6ƒntS(NsTeam.OnPlayerReadMapOKisRTeam.OnPlayerReadMapOK µØÍ¼ÓëµÇ¼ʱµØÍ¼²»Ò»Ö£¬ÖØÐÂͬ²½Ò»´Î!loginMapID=%s,mapID=%st    ReadMapOKR(RRRR2R)R+R-Rdt GetDictByKeyRËtDef_PDict_LoginMapIDRxRoRpR!(RRR8Rt
loginMapID((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnPlayerReadMapOK–s      
 c    Cst|jƒ}tjd||jƒƒ|jƒ}t|ƒt||ƒtj|ƒ}|jƒ}|dkrDt    |di|d6|d6ƒ|j
ƒt |ƒ}|t j kr|jƒ}t||ƒt||jƒ|ƒ|jƒtjkrt|ƒqntj|ƒ}|rp|jƒdkrpt|||ƒqpn,|jƒtjkrft|ƒnt|ƒdS(NsTeam.OnPlayerChangeMap,mapID=%st    ChangeMapRRi(RdRRRRRRÈRQR-RptSync_TeamMemberChangeMapRíRaRnR2RRRÊRËRÌR=RÉRåRCR(    RRRRRR8RRRÑ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnPlayerChangeMap·s0  
 
 
c Csí|jƒ}|tjkrot|ƒ}|ro|\}}tjd||||f|ƒt|||ƒqon|jƒ}|dkr‹dS|j    |ƒ}    |    s¤dStjd||f|ƒ|tjkrÝ|    j
|ƒnØ|tj krü|    j |ƒn¹|tj kr|    j|ƒnš|tjkr:|    j|ƒn{|tjkrY|    j|ƒn\|tjkrx|    j|ƒn=|tjtjgkr±t|di|d6|d6ƒndStjƒ}
||
_||
_||
_t||
ƒdS(NsFÍæ¼ÒÆ¥Åä¶ÓÎéÖÐÉý¼¶, refreshType=%s, value=%s, tagMapID=%s, tagMapEx=%ss)¶ÓÎé³ÉÔ±ÊôÐÔË¢ÐÂ, refreshType=%s,value=%stRefresht refreshTypetvalue(RRatCDBPlayerRefresh_LVRERRtDoTeamMatchingProcessRQR-Rgt SetPlayerLVtCDBPlayerRefresh_Jobt SetPlayerJobtCDBPlayerRefresh_ExAttr1tSetPlayerJobLeveltCDBPlayerRefresh_OfficialRanktSetPlayerRealmLVtCDBPlayerRefresh_FaceRitCDBPlayerRefresh_HairColorRktCDBPlayerRefresh_VIPLvtCDBPlayerRefresh_ExAttr9RpR4ttagGCTeamMemberRefreshPropertyRvt RefreshTypetValueR7( RRœRRRtplayerMatchInfoR"R9R8Rìt    tmRefresh((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytPlayerTeamMemberRefreshçsH         !              cCsÚtjƒj|ƒ}|j}|j}|j}|j}tjƒ}||_||_||_||_g|_    tj
ƒ}    t j j |gƒ}
x|
D]} |    j| ƒ} | s»qšn|rÙ| jƒ|krÙqšn|ròt| ƒ ròqšnt| ƒ} | s
qšntjƒ}| jƒ|_| jƒ|_t|jƒ|_| jƒ|_| jƒ|_| jƒ|_| jƒ|_ | j!ƒ|_"| j#ƒ|_$|j    j%|ƒqšWt|j    ƒ|_&t'j(||ƒdS(N()RRJRKRLRMtIsTagExt
MatchStateR4ttagGCTagMapTeamListtTeamListR)R
R R R+RœR*R¤ttagGCTagMapTeamRRvR‹RpRRŽRRR‘R’R“R”RR»R¥RNR¦RORRqRGRH(RSRTRRR"R9tisTagExt
matchStatetteamPackR.RRR0Rzt
tagMapTeam((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnQueryTagMapTeam#sL                                         c Csëtjƒj|ƒ}|j}|dkr;t||ƒdS|j}|}|jƒ}|jƒ}|rÜt|ƒ}    |    t    j
kr¡tj d|    |j ƒƒdS|j ƒ}|jƒ}|sÜtj d|j ƒƒdSn|d    ks÷tj|ƒr|}ntj||ƒ}
|
s|n    |
jƒ} tjd||||| f|j ƒƒtj| ƒ} | sŒtjd|| f|j ƒƒdS| jƒtjkrÑ|r½t||||ƒnt|||ƒdSt|t|||ƒdS(
    ÓжÓÎéµÄÇé¿ö£º Ö»Óжӳ¤ÔÚÎҵĶÓÎé½çÃæ²ÅÄÜÆô¶¯×Ô¶¯Æ¥Å䣬ÆäËû½çÃæ¼°¶ÓÔ±¶¼¿´²»µ½×Ô¶¯Æ¥Åä°´Å¥£¬ËùÒÔÒ»¶¨ÊÇ´´½¨µÄ¶ÓÎéÄ¿±ê
    ÎÞ¶ÓÎéµÄÇé¿ö£º Íæ¼ÒÑ¡ÄÄÀï¾ÍÊÇҪƥÅäÄÄÀïµÄ£¬Ö»ÓÐÎÞ¶ÓÎéµÄ
    iNs.Íæ¼Ò²»ÊǶӳ¤£¬ÎÞ·¨·¢ÆðÆ¥Åä! curPlayerTeamLv=%ssÎÞÄ¿±ê¶ÓÎé²»ÔÊÐíÆ¥Å䣡iisOÇëÇóÆ¥Åä¶ÓÎé: curMapID=%s,packTagMapID=%s,tagMapID=%s,tagMapEx=%s,sceneMapID=%ss2Ä¿±êµØÍ¼²»´æÔÚ£¬ÎÞ·¨Æ¥Åä!tagMapID=%s,sceneMapID=%s(ii(RRJRKRLt__DoMatchHelpFightTeamRMRdRQRíRaRnRxRR›RœRyRtPlayerFBtGetFBLineIpyDataRRÈRcRÊRËRÌt__DoMatchScenePlayert__DoMatchSceneTeamtOnEnterFBTeamAsktTeamFBAskType_Match( RSRTRRt packTagMapIDR9R"RÐR8Rt fbLineIpyDatat
sceneMapIDR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnAutoMatchTeam]sH                         cCs]|jƒ}|r/t|ƒt|||ƒnt|ƒt|||ƒt|||ƒdS(N(RQR=R<RCRBRŸ(RR"R9RR8((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt__DoAddToMatchingList“s 
 
cCsv|jƒ}|jƒ}g}g}tƒ}|j|gƒ}tjƒ}    tj|ƒ}
tjd|
|||f|ƒ|
s†gnt    j
j|gƒ} x|D]} | | krºq¢n|    j | ƒ} | sÕq¢n| j ƒrçq¢n| j ƒ|ko
| jƒknsq¢nt| ƒr'q¢nt| ƒ}|s?q¢ntj|ƒ}|sat|ƒ r¢|jƒ}t||ƒ| |jƒ| |g}|r©|j|ƒq¹|j|ƒq¢q¢W|rÐ|jƒn|rã|jƒn|
rö||}n
||}x_|D]W}|d}|d}| s| r5qnt||||ƒrtj|dƒdSqWtj|dƒdS(s¼Ò»´ÎÐÔÆ¥Åä¶ÓÎé, Í¬Ò»µØÍ¼³¡¾°ÖÐ, ¶ÓÎéÄ¿±ê²»ÐèÒªÒ»Ñù
        Ìõ¼þ£º ÏÞÖÆµÈ¼¶·ûºÏ£¬¶ÓÎéδÂú£¬×Ô¶¯½ÓÊÜÈë¶ÓÉêÇëµÄ¶ÓÎé »ò ÍÑ»ú¹Ò»ú¶ÓÎé
        ÍÑ»úÍæ¼ÒÓÅÏÈ×éÍÑ»ú¶ÓÎé, ÔÚÏßÍæ¼ÒÓÅÏÈ×éÔÚÏß¶ÓÎé
    sYÍæ¼ÒÆ¥ÅäÄ¿±êµØÍ¼·Ç¸±±¾, Ò»´ÎÐÔÆ¥Å䳡¾°¶ÓÎé: isTJG=%s,curLV=%s,mapID=%s,sceneTeamIDList=%siiRäNtNoMatchingTeam(RRR R RR)RyRRR
RR+RšR¥R¦R*R¤RRYRRZRžRz(RRRRtcurLVtmatchTeamOLListtmatchTeamTJListRsRtR.RˆttjgKickTeamIDListRR0Rzt isLeaderTJGtleaderLVRt matchTeamListRç((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR¿¡sd           !   (   &   
 
 
cCs­|jƒ}|jƒ}|jƒ}|jƒ}|jƒ}tj|ƒ}    tjd||    |||f|ƒg}
g} t    ƒ} | j
|gƒ} tj ƒ}x| D]}|j |ƒ}|sÉq¨n|jƒrÛq¨nt |ƒríq¨n|jƒ}||ko|knsq¨ntj|ƒ}|rZtjj
|gƒ}||krZq¨qZn|smt|ƒ r¨t||ƒ| |jƒ|g}|r¦| j|ƒq¶|
j|ƒq¨q¨W|
rÍ|
jƒn| rà| jƒn|    ró| |
}n
|
| }d}xf|D]^}|d}|s&q
nt||||ƒr
|d7}|jƒrhtjd|ƒPqhq
q
Wtjd||ƒ|s™tj|dƒntj|dƒd    S(
s¤Ò»´ÎÐÔÆ¥ÅäÍæ¼Ò, Í¬Ò»µØÍ¼³¡¾°ÖÐ
        Ìõ¼þ£º µÈ¼¶·ûºÏ¶ÓÎéÐèÇó£¬ÎÞ¶ÓÎ飬×Ô¶¯½ÓÊÜÑûÇëÈë¶Ó »ò ÍÑ»ú¹Ò»úÍæ¼Ò
        ÍÑ»ú¶ÓÎéÓÅÏÈ×éÍÑ»úÍæ¼Ò, ÔÚÏß¶ÓÎéÓÅÏÈ×éÔÚÏßÍæ¼Ò
    sa¶ÓÎéÄ¿±êµØÍ¼·Ç¸±±¾, Ò»´ÎÐÔÆ¥Å䳡¾°Íæ¼Ò: teamID=%s,isLeaderTJG=%s,mapID=%s,reqMinLV=%s,reqMaxLV=%siiis    ¶ÓÎéÒÑÂú£¡Í˳öÆ¥Å䣡s$    ³É¹¦Ôö¼Ó¶ÓÔ±Êý: joinPlayerCnt=%stNoMatchingPlayerRäN(RRR2R¥R¦RyRRRRR RJRwRER
RR    RYRRZRžRšRz(RR8RRRXRdRRURVRÌtmatchPlayerOLListtmatchPlayerTJListRaRbR`RRÂReRˆRËt
playerInfotmatchPlayerListt joinPlayerCntRã((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR¾ísp                       #   
 
 
  c
Cs<|jƒ}|rdStj}tjd||jƒƒ|sCdS|jƒ}tjtj    tj
tj tj g}tj ƒ}x¶|D]®}g}xÐ|jƒD]Â\}    }
|    \} } | |krÉqŸnx•|
D]} |j| ƒ}|sñqÐn|jƒ}|jƒ}||ko |kns+qÐnt|ƒ}|j|d| |jƒ| |gƒqÐWqŸW|s‚tjd|ƒq†n|jdtƒtjd||fƒd}xg|D]_}|d}|sÒq¶nt|ƒ}|sêq¶nt||||d    tƒr¶|jƒ}Pq¶q¶Wtjd
|ƒ|r†Pq†q†WdS( sË Ò»´ÎÐÔÆ¥ÅäÐèÒªÖúÕ½µÄ¶ÓÎ飬Âú×ã¶ÓÎéÌõ¼þ×Ô¶¯¼ÓÈëÆ¥Åä¶ÓÎé
            °´ÒÔÏÂÓÅÏȼ¶¼ÓÈ룺
        ´ó¾³½ç¶É½Ù    > ËùÓÐ×ÚÃÅÊÔÁ¶  > ËùÓÐæ´»ÊÒż£  > »ìÂÒÑýÓò
        ×Ô¼ºÓжÓÎéʱ·¢ËÍÖúÕ½º°»°²»Ö´ÐдËÂß¼­  
    Ns*__DoMatchHelpFightTeam matchingTeamDict=%si?Bs3    Ã»ÓÐÂú×ãÖúÕ½µÈ¼¶Ìõ¼þÆ¥ÅäÖеĶÓÎé: matchMapID=%sRjs"    Æ¥Åä¶ÓÎé˳Ðò: matchMapID=%s,%siiÿÿÿÿRés        joinTeamID=%s(RQR
R3RRRRRËtDef_FBMapID_DuJietDef_FBMapID_MunekadoTrialtDef_FBMapID_QueenRelicstDef_FBMapID_ChaosDemontDef_FBMapID_KillDevilR)RR+R¥R¦RTRRRZR!R¤RžR?R2(RRR8tmatchingTeamDictRetmatchMapIDListR.t
matchMapIDtmatchTeamInfoListR:RR"R9RR0RURVR‘t
joinTeamIDRRz((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR»>    s^               . 
  cCs{tjƒj|ƒ}|jƒ}|rmt|ƒ}|tjkr`tjd||jƒƒdSt    |ƒn
t
|ƒdS(Ns.Íæ¼Ò²»ÊǶӳ¤£¬ÎÞ·¨È¡ÏûÆ¥Åä! curPlayerTeamLv=%s( RRJRKRQRíRaRnRxRR=RC(RSRTRRR8R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnCancelMatchTeam‰    s   
c Cs{||f}tj}tj}tjd||fƒtjd|ƒtjd|ƒ||kso||kr€tjdƒdS||}||}| s¢| r³tjdƒdStj|ƒ}tj|ƒ}g}tjƒ}    tjƒ}
t    |ƒ} g} xgt
|ƒD]Y\} }|    j |ƒ}|s5qnt |ƒ}| j || | |jƒ||gƒqW| jdtƒtjd| ƒxè| D]à}|d}|s¯q“nt|ƒ}|sÇq“n|jƒ}|jƒ}x‘|D]‰}||krþqæn|
j|ƒ}|sqæn||jƒko6|knsAqænt||||d    tƒsbqæn|j |ƒqæWq“WdS(
sn×é¶Ó×Ô¶¯Æ¥Åä´¦Àí, Ö»Ðè´¦ÀíÒÔÏÂʱ»ú¼´¿É
    1. ¶ÓÎé »ò Íæ¼Ò ¼ÓÈëÆ¥Åä
    2. Æ¥ÅäÍæ¼Ò¶ÓÁÐÖеÄÍæ¼ÒµÈ¼¶±ä¸üʱ
    s.DoTeamMatchingProcess tagMapID=%s, tagMapEx=%ss    matchingTeamDict=%ss    matchingPlayerDict=%ss2    ´¦ÀíÄ¿±êµØÍ¼ÆäÖÐÒ»¸öÆ¥Åä¶ÓÁÐûÓÐÊý¾Ý£¬²»´¦Àí£¡NRjs    Æ¥Åä¶ÓÎé˳Ðò: %siÿÿÿÿRé(R
R3R@RRRWRXR)RJRt    enumerateR+RTRRRZR!R¤R¥R¦RwRRž(R"R9RR:RÚtmatchingPlayerDictRRt delPlayerListR.R`tmatchTeamCountRÝR¾RR0R‘RRzRURVRRÂ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRŸ˜    sd          
 
     * 
     "cCs2tjƒj|ƒ}|j}t|||ƒdS(N(RRJRKt PrepareStateR?(RSRTRRt prepareState((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnTeamMemberPrepareê    s    c Cs“|jƒ}|sdS|jƒ}|jƒ}|tkr>dSt|ƒsNdStj|d \}}}tjd|||f|ƒ||kr•dS|t    t
gkr·|j |ƒn
|||<t |ƒ}    | pØ|     }
t |||||
ƒ|tks|
rBtjj |ƒ|tkr>tj|d|jƒgƒndSx$|jƒD]}|tkrOdSqOWtjd|ƒt|    t|||ƒdS(s ÉèÖöÓÔ±½øÈ븱±¾×¼±¸×´Ì¬±ä¸ü
    @param state: 1-×¼±¸£»2-¾Ü¾ø£»3-µôÏß; 4-Í˳ö
    @note: µôÏßÔݲ»×öÉÏÏÂÏßÖ§³Ö£¬Ä¿Ç°Ïȼòµ¥´¦Àí£¬Ö±½Ó°Ñ¸Ã³ÉÔ±ÒÆ³ö×¼±¸¶ÓÁÐ
    Nis<¶ÓÔ±½øÈ븱±¾×¼±¸×´Ì¬±ä¸ü: teamID=%s,state=%s,memStateDict=%stTeamEnterFaileds*ËùÓжÓÔ±¶¼×¼±¸ºÃÁË£¬×ö½øÈ븱±¾Ç°×îÖÕ¸´²é£¡(RQR2RtTeamMemPrepareStateListRÎR
RKRRR‡R@RR¤tSyncTeamEnterFBPrepareInfotTeamMemPrepareState_RefuseRyt
TeamNotifyR‹R>tTeamMemPrepareState_OKRÀtTeamFBAskType_PrepareOK( RtstateRR8RRtaskMapIDtaskMapExt memStateDictt
teamLeadertisErr((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR?ð    s<      
   c    Csžtjƒ}||_||_||_g|_xH|jƒD]:\}}tjƒ}||_||_    |jj
|ƒq=Wt |jƒ|_ t ||ƒdS(N(R4ttagGCTeamEnterFBPrepareRLRMt IsPrepareErrt MemStateListRttagGCTeamMemPrepareStateRvRäRRtMemCountR7(    R8RïRðRñRótteamMemPreparePackRRîtmemState((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRé%
s                           cCs |tjkS(N(R
RK(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRÎ6
scCs |tjkS(N(R
RJ(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRÍ8
sc
CsÏ|jƒ}|jƒ}|}|dkrñd}|tkrítj|tj|ƒsrtjd||f|ƒdStj    |ƒ}    |    s‹dSt
|||||gƒ}
tj ƒj |d||    d|
t |
ƒ|jƒƒtjd|ƒndS|jƒ}t|ƒrEtj|tj|ƒsEtjd|||f|ƒdSni} i} x¦t|jƒƒD]’} |j| ƒ}|dksd|jƒdkrqdn|jƒ}tj    |ƒ}|sÖtjd||ƒdSg| |<||jƒg| |<qdWt||ƒ| sdS||||| |gtj|<t
|||||gƒ}
xT| jƒD]F\}}|\}}tj ƒj |d||d|
t |
ƒ|ƒqXWtjd|||||| | f|ƒdS(    sѯÎʿɷñ½øÈë×é¶Ó¸±±¾£¬ÓÐÈý¸öʱ¼äµãÐèҪѯÎÊ£¨Æ¥Åäǰ¡¢¶Ó³¤µã»÷½øÈë¡¢¶ÓÔ±¶¼×¼±¸³É¹¦ºó½øÈëǰ×îÖÕÈ·ÈÏ£©
    @param askType: Ñ¯ÎÊÀàÐÍ£»0-·¢ÆðÆ¥Åä(¸öÈË¡¢¶Ó³¤)£»1-¶Ó³¤µã»÷½øÈ룻2-×¼±¸Íêºó½øÈëѯÎÊ
    @param tick: ¿É×÷ΪѯÎÊÇëÇóµÄ°æ±¾ºÅ, ×÷ΪÊÇ·ñͬһÇëÇóµÄ»Ø¸´Ó㬷ÀÖ¹¸²¸ÇÇëÇ󻨏´´¦Àí»ìÂÒ
    is;¸öÈËÇëÇó½øÈ븱±¾Æ¥Å䣬ÎÞ·¨Öظ´ÇëÇó! askMapID=%s,askMapEx=%sNtEnterFBTeamAsksIEnterFBTeamAsk ¸öÈË·¢Æð¸±±¾Æ¥ÅäµÄÐèҪѯÎÊÍæ¼ÒËùÔÚµØÍ¼£¬¼ì²éÍæ¼ÒÊÇ·ñ¿É½øÈësC¶ÓÎéÇëÇó½øÈ븱±¾ÖУ¬ÎÞ·¨Öظ´ÇëÇó! teamID=%s,askMapID=%s,askMapEx=%ss@ÕÒ²»µ½ÔÚÏß¶ÓÔ±ËùÊôµØÍ¼£¬·ÅÆú±¾´Î½øÈë×é¶Ó¸±±¾ÇëÇó£¡memPlayerID=%ssqAdd EnterFBTeamAsk teamID=%s,askVer=%s,askType=%s,askMapID=%s,askMapEx=%s,askPlayerMapDict=%s,askPlayerRetDict=%s(RRQR-RÁRRURËt#TYPE_Player_Tick_EnterFBTeamAskTickRxtGetQueryPlayerMapIDtstrRJtMapServer_QueryPlayerRtGetRouteServerIndexRR2RÍR©RªR¶RcRR
RJR(RtaskTypeRïRðRRR8taskVerRt playerMapIDtsendCMDtaskPlayerRetDicttaskPlayerMapDictR¾RRtmemMapIDtmapInfotrouteServerIndex((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRÀ:
s^       
       c
Csù|\}}}}}}}    }
|jƒ} |jƒ} |jƒ} tjd|||||||    f| ƒ| |kr•tjd| |f| ƒdStj}i}i}|r.|tjkr×tjd|| ƒdStj|d \}}}}}||ks'||ks'||ks'||krKtjd||||f| ƒdS||krotjd|| ƒdS|    |
g||<x™|j    ƒD]‹\}}|s¢dSt
|| kƒ||<|\}    }
|    tj krÙqŒn|    |krþ|    }i}|
||<qŒ|    |krŒ|
||<qŒqŒWtjj |ƒn"|    tj krP|    }|
||<n|tjkrªt ||||||jƒƒ|tkr¦t| |||dtƒndS|tkrÌt||||ƒn)|tkrˆ| rõt|ƒdkr8tjd    || ƒt||gƒ}|jd
d
d |t|ƒƒq…t| ƒtjd || ƒ||||gtj| <t| |||ƒqõnm|tkrõt||gt|| ||ƒƒ}|jd
d
d |t|ƒƒtjd ||jƒƒndS(NsrOnEnterFBTeamAskResult retTeamID=%s,retAskVer=%s,retAskType=%s,retAskMapID=%s,retAskMapEx=%s,retPlayerID=%s,ret=%ss2    ·Çͬ¸ö¶ÓÎéÇëÇ󣬲»´¦Àí£¡teamID=%s,retTeamID=%ss5    ¸Ã¶ÓÎéµÄÇëÇóÐÅÏ¢¼Ç¼ÒѲ»´æÔÚ£¬²»´¦Àí!retTeamID=%sisM    ·Ç±¾¶ÓÎéÇëÇó°æ±¾£¬²»´¦Àí£¡askVer=%s, askType=%s, askMapID=%s, askMapEx=%ss+    Ã»ÓÐÇëÇó¸Ã¶ÓÔ±ID£¬²»´¦Àí!retPlayerID=%sRóis-¶ÓÎéÖ»ÓÐÒ»¸öÈË£¬Ö±½Ó½øÈ븱±¾: memStateDict=%siRûs3¶ÓÎéÑé֤ͨ¹ý£¬Í¨Öª¶ÓÔ±×¼±¸½øÈ븱±¾: memStateDict=%ss-¶ÓÔ±×¼±¸Íê±Ï£¬¶Ó³¤½øÈë×é¶Ó¸±±¾: resultName=%s(RQR2RRRt ShareDefinetEntFBAskRet_MaxR
RJRRFtEntFBAskRet_OKRt__DoEnterFBTeamAskResultNotifytkeysRíRéR!RÁRÆtTeamFBAskType_EnterRRþtMapServer_QueryPlayerResultR=RKtGetTeamFBEnterInfoRx(Rt
resultListRt    retTeamIDt    retAskVert
retAskTypet retAskMapIDt retAskMapExt retPlayerIDtrett retPlayerNameR8RRt    notifyRettcausePlayerDictRñRRRïRðRRtretInfot
resultName((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnEnterFBTeamAskResult„
s‚              0             "
 %cCs|jƒ}t|ƒ}|s"gStj|d \}}}||ksT||krXgSd}    d}
tjƒ} x`|jƒD]R} | j| ƒ} | dkr¤q}n| j    ƒ}|
|krÅ|}
n|    |7}    q}W|
sÝgSt
|ƒ}t |    |ƒ}||
|gS(Nii( R2RÎR
RKRRJRRwR-RRRF(RzR8RRRtisInPrepareTeamRïRðRñttotalLVtmaxLVR`RRtmemLVt    playerCntt    averageLV((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRî
s.           cCs¹iddgddgdgtj6ddgddgdgtj6ddgd    d
gd gtj6d d gddgdgtj6ddgddgdgtj6ddgddgdgtj6ddgddgdgtj6d d!gd"d#gd$gtj6d%d&gd'd(gd)gtj    6d*d+gd,d-gd.gtj
6d/d0gd1d2gd3gtj 6d4d5gd6d7gd8gtj 6d9d:gd;d<gd=gtj 6d>d?gd@dAgdBgtj6d/d0gd1d2gd3gtj6}|jƒ}tjdC|||||f|ƒ||kr0tjdD||f|ƒdS||\}}    }
|jƒ} | sŠ|tkrk|dEn|
} tj|| |gƒn+tjj|jƒƒ} |tkr´|n|    }xøt| jƒƒD]ä}| j|ƒ}|sîqÍn|jƒ}| sÍ||krqÍn||kr”tj||dE|gƒ|tjtjtjgkr±tjƒ}||_||_ ||_!t"j#||ƒq±qÍtj||dF|| gƒqÍWdS(GNt FBIsNotOpentTeamMatchingTimeMetTeamMatchingTimeAlltTeamEnterTimeMetTeamEnterTimeAlltGeRen_chenxin_268121tTeamMatchingCDMetTeamMatchingCDAllt TeamEnterCDMetTeamEnterCDAllt SingleEnterCDtTeamMatchingLVMetTeamMatchingLVAllt TeamEnterLVMetTeamEnterLVAlltFbLVtTeamMatchingTicketMetTeamMatchingTicketAlltTeamEnterTicketMetTeamEnterTicketAlltGeRen_chenxin_157069tTeamMatchingDeadMetTeamMatchingDeadAlltTeamEnterDeadMetTeamEnterDeadAlltSingleEnterDeadtTeamMatchingBossMetTeamMatchingBossAlltTeamEnterBossMetTeamEnterBossAlltSingleEnterBosstTeamMatchingPKMetTeamMatchingPKAllt TeamEnterPKMetTeamEnterPKAllt SingleEnterPKtTeamMatchingGatherMetTeamMatchingGatherAlltTeamEnterGatherMetTeamEnterGatherAlltSingleEnterGathertTeamMatchingDungeonMetTeamMatchingDungeonAlltTeamEnterDungeonMetTeamEnterDungeonAlltSingleEnterDungeontTeamMatchingDefaultMetTeamMatchingDefaultAlltTeamEnterDefaultMetTeamEnterDefaultAlltSingleEnterDefaultTeamMatchingSITMetTeamMatchingSITAlltTeamEnterSITMetTeamEnterSITAlltCarry_lhs_697674tCrossMatching9tCrossMatching10tCrossMatching11tCrossMatching12tCrossMatching8t    CrossMap6t    CrossMap7t    CrossMap8t    CrossMap9t    CrossMap5sf²»¿É½øÈë×é¶Ó¸±±¾Ô­ÒòÌáÐÑ£ºretAskType=%s,askMapID=%s,notifyRet=%s,causePlayerDict=%s,askPlayerIDList=%ss6×é¶Ó¸±±¾²»¿É½øÈëÔ­ÒòÎÞÌáʾ: retAskType=%s,notifyRet=%sii($R
tEntFBAskRet_FBClosetEntFBAskRet_NoEnterCnttEntFBAskRet_EnterCDtEntFBAskRet_LVLimittEntFBAskRet_NoTickettEntFBAskRet_DeadtEntFBAskRet_BossStatetEntFBAskRet_PKStatetEntFBAskRet_PreparingtEntFBAskRet_InFBtEntFBAskRet_TJGtEntFBAskRet_SittEntFBAskRet_CrossPKMatchingtEntFBAskRet_InCrossMaptEntFBAskRet_OtherRRRRQRÁRyRzt    Def_SpacetjoinR>R©RªR¶R4ttagGCEnterTeamFBFailReasonR¸tAskTypetReasonRGRH(RRRïRRtaskPlayerIDListt notifyKeyDictRtmatchNotifyListtenterNotifyListt singleNotifyR8t
notifyMarktcausePlayerNamet
notifyListRSRRtfailPack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR  sz                                                                                  !c CsÒtjƒj|ƒ}|jƒ}|dkr1dStjƒ}|jƒ}|jƒ}|j    ƒ}|j
ƒ}|j ƒ}    t j |ƒ}
|jƒr¤t|ƒtjkrùtjd||    |
f|ƒ|j|ƒ|j|    ƒt|||
||    ƒqÎ|dkr<tjd||    f|ƒ|j|ƒ|j|    ƒqÎ|r‡||kr‡||    kr‡tjd||||    f|ƒ|jƒqÎtjd||f|ƒn*t|ƒr´dS|jdƒ|jdƒdS(NsI¶Ó³¤½øÈ븱±¾, ¸üÐÂTeamFB! playerMapID=%s,playerFBID=%s,playerDataMapID=%sisI¶ÓÔ±½øÈ븱±¾, teamMapID²»´æÔÚ£¬Ôò¸üÐÂTeamFB! playerMapID=%s,playerFBID=%ssl¶ÓÔ±½øÈ븱±¾£¬µ«ÊǽøÈëµÄfbIDÓë¶ÓÎ鲻ͬ£¬Ìß³ö¸ÃÍæ¼Ò£¡teamMapID=%s,teamMapFBID=%s,playerMapID=%s,playerFBID=%ss5¶ÓÔ±³É¹¦½øÈë¶ÓÎéËùÔÚ¸±±¾£¡teamMapID=%s,teamMapFBID=%s(RRJRKRQR-RatIPY_GTeamEnterFBtGetTeamFBMapIDtGetTeamFBMapFBIDRRdR¹R¼tGetRecordMapIDt
GetIsEnterRíRnRtSetTeamFBMapIDtSetTeamFBMapFBIDt__OnPrepareTeamLeaderEnterFBRxRAt__CheckTeamFBPlayerExist( RSRRR8tpackt    teamMapIDt teamMapFBIDRRt
playerFBIDtplayerDataMapID((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytMapServer_PlayerEnterFBa sB                             c Cs|jƒ}t|ƒs)tjdƒdStj|d \}}}t||||ƒ}    |jƒ}
g} i} i} xµt|j    ƒƒD]¡}|j
|ƒ}| s‰|jƒ r¸q‰n|jƒ}||krÖq‰n|j ƒ| |<|j ƒ| |<|
|kr‰t j|
|ƒr‰| j|
|gƒq‰q‰Wx t|j    ƒƒD]Œ}|j
|ƒ}| sA|jƒ rpqAn|jƒ}|jƒ}|jƒ}tj|ƒ}||krî||ksÇ||krîtjd|||fƒ|jƒn||krA||krA||krAt||g|    ƒ}|jddd|t|ƒƒtjd||f|jƒƒxc|jƒD]R}||krŒqtnt j||ƒrt||g| krt| j||gƒqtqtWqAqAWtjj|ƒtd|| | | gƒ}|jddd|t|ƒƒdS(    Ns·Ç×¼±¸ÖеĶÓÎé²»´¦Àí£¡isIÍæ¼ÒÒò×é¶Ó, ÔÚͬ¸±±¾Öв»Í¬Ïß·£¬Ìß³öÍæ¼Ò! memID=%s,memMapID=%s,memFBID=%siRûs@¶Ó³¤³É¹¦½øÈë×é¶Ó¸±±¾, ¶ÓÔ±¿ªÊ¼½øÈ븱±¾: teamID=%s,memPlayerID=%st InitRelationtEnterFBTeamRelation(R2RÎRRR
RKRRR©RªR¶RR‹t PlayerFriendtIsFriendRRdR¹R¼RˆRxRARþRRRR(R8RztleaderDataMapIDt leaderMapIDt
leaderFBIDRRïRðRñt    enterInfotleaderIDt
friendListtmemFamilyIDDictt memNameDictRSRRRtmemFBIDt memDataMapIDRtpreMemPlayerIDt relationInfo((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRŒ“ sZ         $ $  $!c Cs2|jƒ}|s#tjdƒdStj|jƒƒ}| sT|jƒtjkretjdƒdSt}|j    ƒ}|j
ƒ}xWt |j ƒƒD]C}|j |ƒ}    |    s·q–n|    j    ƒ}
||
kr–t}Pq–q–W|sôtjdƒdStd||||gƒ} |jddd| t| ƒƒdS(NsºÃÓѱä¸ü£¬ÎÞ¶ÓÎé²»¹Ü£¡sºÃÓѱä¸ü£¬²»ÔÚ×é¶Ó¸±±¾²»¹Ü£¡sºÃÓѹØÏµ±ä¸ü£¬²»ÊÇͬ¶ÓÎé²»¹Ü£¡t FriendChangeiR•(R2RRRÈRdRÊRËRÌR?RRQR©RªR«R!RþRR( RR}tisFriendRRÑt
isSameTeamRR8RSR¿RR£((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnTeamMemFriendChangeÐ s2        cCsÂ|s
dS|jƒ}|s-tjdƒdStj|jƒƒ}| s^|jƒtjkrotjdƒdS|jƒ}|j    ƒ}t
d|||gƒ}|j ddd|t |ƒƒdS(Ns¼Ò×å±ä¸ü£¬ÎÞ¶ÓÎé²»¹Ü£¡s¼Ò×å±ä¸ü£¬²»ÔÚ×é¶Ó¸±±¾²»¹Ü£¡t FamilyChangeiR•( R2RRRÈRdRÊRËRÌRRRþRR(RtfamilyIDRRÑRR£((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRŽï s     cCs‚x{t|jƒƒD]g}|j|ƒ}|jƒ}|dkrFqn|jƒ|jƒkr|jƒ|jƒkrt    SqWt
S(N( R©RªR«R$R-RdR†R¹R‡R!R?(R8R¾RRÁ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR s  0c
Cs{tjƒj|ƒ}|jƒ}|dkr1dS|jƒ}i}|jƒ}|j}|||f}    xŠt|j    ƒƒD]v}
|j
|
ƒ} | dksz| jƒdkr³qzntj | ƒ} | sÎqzn| jƒ} | | j ƒg|| <qzW|j ƒ}|igtj|    <xa|D]Y} || \} }t||| gƒ}tjƒj|d| | d|t|ƒ|ƒqWdS(NitTeamMemFuncData(RRJRKRQR-R2RtTeamMemFuncTypeR©RªR¶RýRRR
tg_queryTeamMemFuncDataDictRþRÿR(RSRTRRR8Rt queryMemDictRt queryFuncTypeR:R¾RRRtqueryMemIDListR    R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnQueryTeamMemFuncData s4           c Cs§|d \}}}t|ƒdkr5t|dƒnd}tjd|||||fƒ|||f}|tjkr}dStj|\}}|||<x|D]}    |    |kr¡dSq¡Wtjj|ƒ\}}tjƒj|ƒ}
|
sòdStjd||ƒt    j
ƒ} || _ g| _ xZ|j ƒD]L\}}t    jƒ} || _|| _t| jƒ| _| j j| ƒq1Wt| j ƒ| _tj|
| ƒdS(NiRîsbMapServer_TeamMemFuncData srcPlayerID=%s,queryFuncType=%s,teamID=%s,memPlayerID=%s,queryFuncRet=%ss-Í¨ÖªÍæ¼Ò²éѯ¶ÓÔ±¹¦ÄÜÊý¾Ý½á¹û: queryRetDict=%s(RRþRRR
R¬RRJRwR4ttagGCTeamMemFuncDataListR«tMemFuncDataListRttagGCTeamMemFuncDataRvt MemFuncDatatDataLenRRøRGRH( t srcPlayerIDtmsgListR®RRt queryFuncRetR:R¯t queryRetDicttmemIDRtmemFuncDataPackt memFuncData((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytMapServer_TeamMemFuncData; s:(    
                    cCst|ƒdS(N(t__PrepareTeamTimeoutLogic(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt DoTeamProcess_ s
c Cs‚tjrœxtjjƒD]|\}}|r\|\}}}}}}||dkr\qq\ntjj|ƒtjd||||||||fƒqWntjs©dStjƒ}    tj    ddƒ}
|
dd}
x¦tjjƒD]•\}} | \}}} } || |
krqåntjj|ƒtjd|||| | |fƒ|    j
|ƒ}|råt |||| t ƒqåqåWdS(    sb×¼±¸¶ÓÎéÒì³£´¦Àí
    ºó¶ËÑÓ³¤15Ã룬·À·¶Ç°¶ËÒì³£Çé¿öµ¼Ö¿¨¶ÓÎé×¼±¸½çÃæ£¬³¬Ê±Ê±Ç¿ÖÆÈ¡Ïû×¼±¸¶ÓÎé
    i's…¶ÓÎé½øÈ븱±¾Ñ¯Îʳ¬Ê±£¬Ç¿ÖÆÒƳýѯÎÊ״̬! teamID=%s,askVer=%s,askType=%s,askMapID=%s,askMapEx=%s,askPlayerRetDict=%s,askTick=%s,tick=%sNt TeamReadyTimeiiièsj¶ÓÎé×¼±¸³¬Ê±£¬Ç¿Öƽâ³ý¶ÓÎé×¼±¸×´Ì¬! teamID=%s,askMapID=%s,askMapEx=%s,memStateDict=%s,startTick=%s,tick=%s( R
RJRRRRcRKR)R^R_R+RéR!(RRtaskInfoRRRïRðRtaskTickR.RÀt prepareInfoRñt    startTickR8((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR¾c s2            '         c CsVtjƒj|ƒ}|j}|j}|jƒ}|s=dSd}tjƒ}|jƒ}    |    dkrkdSt|    ƒ}
tj    |
ƒxË|
D]Ã} |j
| ƒ} | dks‹| j ƒ r¿q‹nt j| ƒrÔq‹n| jƒ|jƒkròq‹n| jƒ|kr
q‹n| jƒrq‹nt|| ||ƒr>|d7}n||kr‹Pq‹q‹WdS(Niii(RRJRKtLVLimitt    InviteCntRQtGetActivePlayerCounttrangetrandomtshuffletGetActivePlayerAtR-t    GetInitOKRyRRRR{( RSRTRRtlvlimitt    inviteCntRWt curInviteCntt playerManagerRht    indexListR¾R~((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnInvitePlayerJoinTeamByLV s<                  cCsdS(N((RüRtdataDict((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRh¯ s(RGRER^RGRaRðR4tDataRecordPackRyR–R
R
RRËR¼RWR%RÉRÁRRíRÈRètTeamMemPrepareState_NoneRìRêR‡R@RRR    R RRRRRR#R$R?RR1R<R=R*RBRCRERARYR!RRR€RƒR‡R…R{R|RoR-RPRÙR×RÝRÜRžRíRpRR
R R,R7RRRmR,R*R2RåR4RRæRRBRORNR¤RQRTRiR}RRƒR‰R’R—RšR°RºRÅRÆR¿R¾R»RßRŸRæR?RéRÎRÍRÀRRR R“RŒR§RŽRR°R½R¿R¾RÒRh(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt<module>sê                                                                                                           )    ,            2    ?    <    ) M        F            2Z        -             
2 "        = 2        U        (        3                &                     W    R             9    ]    !    0    <    :    6        L    Q    K        R        5             J    j         S    2    =                !    $        *    "