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
Ǘ[c@sCddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZdZdZdZedƒZ\ZZZZZd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „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„Z-d„Z.dddde/d„Z0d„Z1d„Z2d„Z3d„Z4d „Z5d!„Z6dd"„Z8d#„Z9d$„Z:d%„Z;d&„Z<de$d'„Z=d(„Z>d)„Z?d*„Z@ddddd+„ZAdd,„ZBd-„ZCd.„ZDe/d/„ZEd0„ZFd1„ZGd2„ZHd3„ZId4„ZJd5„ZKd6„ZLd7„ZMd8„ZNd9„ZOd:„ZPd;„ZQd<„ZRd=„ZSd>„ZTd?„ZUd@„ZVdA„ZWdB„ZXdC„ZYdD„ZZdE„Z[dF„Z\dG„Z]dH„Z^dI„Z_dJ„Z`dK„ZadL„ZbdM„ZcdN„ZddO„ZedP„Zfe$dQ„ZgdR„ZhdS„ZidT„ZjdU„ZkdV„ZldW„ZmdX„ZndY„ZodZ„Zpd[„Zqd\„Zrd]„Zsd^„Ztd_„ZudS(`iÿÿÿÿNiiiicCs+|j|ƒtjd||jƒƒdS(Ns ¶ÓÎéÏà¹ØÏà¹ØÉóºË¿ª¹Ø×´Ì¬±ä¸ü: %s(t
SetExAttr2t    GameWorldtDebugLogt GetPlayerID(t    curPlayert
checkState((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytSetTeamCheckState3s cCs|jƒdS(Ni
(t
GetExAttr2(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytIsTeamJoinReqNeedCheck8scCs|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.pytAddTeamIDToSceneList>s     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.pytDelTeamIDFromSceneListIs  cCstjS(N(R
tg_scenePlayerIDDict(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytGetScenePlayerIDDictascCs_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.pytAddPlayerIDToSceneListbs       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.pytDelPlayerIDFromSceneListms      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 OnCreateTeams                    c Cs|jƒ}|s$tjdƒ}ntjƒjtj||||ƒ}|dkrhtj    d|ƒdS|j
ƒ}    t |    |j ƒ|ƒt |    |ƒ|j|ƒ|j|ƒ|j|ƒ}
|
dkràtj    d|ƒdSt|
tjtƒ|rt|ƒt|ƒnt|ƒ|S(Nt PlayerMaxLVs×î´ó¶ÓÎéÊýÁ¿ÒÑÂú, ´´½¨Ê§°Ü£¡s'ÉèÖõ±Ç°´´½¨¶ÓÎéÍæ¼ÒΪ¶Ó³¤, ÕÒ²»µ½Íæ¼Ò!(Rt IpyGameDataPYt
GetFuncCfgRR)t
CreateTeamtIPY_GameServertttNormalR-tErrLogR2RtGetMapIDR#tSetTeamt    AddMembert GetMemberByIDt __SetTeamLVt    tmlLeaderR?tSync_TeamMemberInfotSyncMapServerTeamInfoRC( RRR"R9RURVtisSyncRXt
curNewTeamRtcurNewTeamMenber((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRRs, $      
 
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.pytOnInvitePlayerJoinTeamCs&         cCs,tjƒ}|jƒ}t|||ƒdS(N(R^tIPY_CRequestJoinTeamRt__Func_RequestJoinTeam(RSRtsendPackRu((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytRequestJoinTeamns  cCs©tjƒj|ƒ}|jƒ}tjƒj|ƒ}|dkrjtjd||ƒtj|dƒdS|j    ƒ}|dkr•tj|dƒnt
|||ƒdS(Ns,Ä¿±ê×é¶ÓÍæ¼Ò²»ÔÚÏߣ¬ÎÞ·¨×é¶Ó£¡tagPlayerID=%sRlt TeamNoExist( RRJRKRRoR-RpRqRrRQRt(RSRuRRRRvRw((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRzvs    c
Cs–t||ƒsdSd\}}|r`|jƒrEtj|dƒdS|jƒ}|jƒ}n|jƒ}|jƒ}tjd|||f|ƒtj    |ƒ}|s·t
|ƒ rëtjd||f|ƒt |||||ƒt St jƒ}    ||    _|jƒ|    _t|    jƒ|    _|jƒ|    _|jƒ|    _tj|ƒ|    _|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
IsTeamFullRqRrt GetTagMapIDt GetTagMapExRRRtGetIsTJGR    tDoPlayerJoinTeamR!R4ttagGCInviteJoinTeamInfoRntGetNametNametlentNameLentGetLVtLVtGetJobtJobt
GetJobRanktJobLeveltGetOfficialRanktRealmLVRLRMRGRH(
RRvRWRR"R9RXRutisTjgt
invitePack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRs˜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ƒ|_tj|ƒ|_|jƒ|_tj||ƒtj|dƒtS(sQÇëÇó¼ÓÈë¶ÓÎé
    @param curPlayer: ÇëÇó·½
    @param tagPlayerTeam: Ä¿±ê¶ÓÎé
    Nt TeamAskLosttGeRen_chenxin_227479s%ÇëÇó¼ÓÈë¶ÓÎé,teamID=%s,tagPlayerID=%ssM±»ÇëÇó¼ÓÈëµÄ¶Ó³¤´¦ÓÚÍÑ»ú״̬»ò²»ÐèÒªÉóºËµÄ£¬Ö±½ÓÈë¶Ó! tagPlayerID=%s,isTjg=%stTeamAskSuccess( t GetTeamLeaderRPt GetReqMinLVRŠt GetReqMaxLVRqRrR€RRRR2RƒRR„R!R4ttagGCRequestJoinTeamRnR†R‡RˆR‰R‹RŒRRŽRRR‘RGRH(RRwRRvRXRuR’t requestPack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRtØsB .             c    CsÝg}tjƒ}|jƒ|_|jƒ|_|jƒ|_|jƒ|_    |j
ƒ|_ g|_ x=t |jƒƒD])}|j|ƒ}|jƒ}|s¦qyntjƒ}||_||_|jƒ|_t|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|j ƒ|_!|j"|ƒ}|r’|jƒr’t#j$|ƒ |_%|j&ƒ|_'|j(ƒ|_)|j*|ƒn|j j*|ƒqyWt|j ƒ|_+x|D]}t,j-||ƒq¿WdS(N(.R4ttagGCTeamMemberInfoR2tTeamIDRRLR‚RMR˜RNR™ROt
MemberListtxrangetGetMemberCountt GetMemberInfoRttagGCTeamMembertIndexRnt GetPlayerNameR‡RˆR‰t    GetTeamLVtMemberLVt GetPlayerLVR‹t GetPlayerJobRtGetPlayerJobLevelRtGetPlayerRealmLVR‘tGetMemberPlayerRqRƒt PlayerStateRatMapIDtGetFBIDtLineIDRt MemberCountRGRH(    R8t olPlayerListtteamMemberInfotit
memberInfoRtmembert memberPlayertplayer((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRgsD                c
Cs•|jƒ}|jƒ}tj|ƒ}|s1tS|jƒsR|jƒtjkrft    j
|dƒtS|j ƒ}t |ƒr’t    j
|dƒtSt |ƒr²t    j
|dƒtS|r‘|jƒ}||krètjd||ƒtS|jƒ}tj|ƒ}|s tS|jƒs.|jƒtjkrBt    j
|dƒtS|j ƒ}    t |    ƒrnt    j
|dƒtSt |    ƒr‘t    j
|dƒtSntS(NtGeRen_liubo_986912tTeamEnterForbids(Ä¿±êÍæ¼ÒID´íÎó£¬ÎÞ·¨ÑûÇ룡tagPlayerID=%st GeRen_lwh_0(RRaRtGetMapR?t GetTeamLimitt GetMapFBTypetChConfigtfbtTeamRqRrR2tIsInEnterFBTeamAsktIsInEnterFBTeamPrepareRpR!(
RRvRXtcurMapIDt
curMapDatat    curTeamIDRuR"t
tagMapDatat    tagTeamID((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRP:sF  !      !   cCs;tjƒ}|jƒ}|jƒ}t||||ƒdS(N(R^t IPY_CTeamReqRtGetTypet__Func_TeamReqReply(RSRR{RutisAgree((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(NRlsÑûÇë×é¶ÓµÄ¶ÓÎéÒѾ­²»´æÔÚ£¡R}RmitInviteEnterLost01( RRJRKRoR-RqRrRQRRPR„(RSRuRÊRRRvRWRw((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRɅs*        cCs;tjƒ}|jƒ}|jƒ}t||||ƒdS(N(R^tIPY_CRequestJoinTeamReplyRRÈt__Func_RequestJoinTeamReply(RSRR{RuRÊ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytRequestJoinTeamReplyËs
   cCsßtjƒj|ƒ}|jƒ}tjƒj|ƒ}|dkrVtj|dƒdS|jƒ}|dkr’tj    d|ƒtj|dƒdS|dkr²tj|dƒdSt
||ƒsÅdSt |||||ƒt S(NtPK_hwj35_21675s!Íæ¼ÒÎÞ¶ÓÎ飬ÎÞ·¨ÉóºË¼ÓÈë¶ÓÎéÇëÇó!R}itApplyEnterLost02( RRJRKRRoR-RqRrRQRRPR„R!(RSRuRÊRRRRvRW((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¦|r¢tj|dƒndS|j ƒ}tj    d|j ƒ|jƒ|j ƒ|jƒ|fƒ|j |ƒt|ƒt|ƒt|jƒƒrC|r6tj|dƒnt|ƒnt|ƒr‘|jƒr|rttj|dƒnt|ƒq‘t|tƒnt|ƒtS(sK Ö´ÐÐÍæ¼Ò¼ÓÈë¶ÓÎé
    @param joinPlayer: ¼ÓÈë¶ÓÎéµÄÍæ¼Ò
    @param teamPlayer: ÉóºËÊÇ·ñÔÊÐí¼ÓÈëµÄ¶ÓÔ±£¬Ò»°ãÊǶӳ¤
    @param tagTeam: ¼ÓÈëµÄÄ¿±ê¶ÓÎé, ¿ÉÄÜΪNone
    @param notifyPlayer: ÏµÍ³ÐÅÏ¢·´À¡µÄÄ¿±êÍæ¼Ò£¬ ÇëÇó¼ÓÈëʱ·´À¡¸øÇëÇóµÄÍæ¼Ò£¬Èë¶Ó¼ÓÈëʱ·´À¡¸ø¶Ó³¤, Îª¿Õʱ²»×öÐÅÏ¢·´À¡
    @param isAutoMatchJoin: ÊÇ·ñ×Ô¶¯Æ¥Åä¼ÓÈëµÄ
    RiNR•sÒѾ­ÓÐÕâ¸öÈË£¬²»ÐèÒªÖØÐ¼ÓÈ룡tAcceptTeamLosts!%s(%d)¼ÓÈë¶ÓÎé %s(%d), teamID=%s!tTeamMatchingSucceed(RRR?R€RqRrRdRR-RRpRQR2R†RcRgRhRERCR*R=RAR!t__DoLogic_PlayerTeamChange(t
joinPlayert
teamPlayerttagTeamRt notifyPlayertisAutoMatchJoinR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR„sB
 
 
 
cCs>|jƒ}|dkrtjS|j|jƒƒ}|jƒS(N(RQR-R^t    tmlMemberRdRR¥(RR8t
teamMember((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt__GetPlayerTeamLVUs
  c Csg|s
dS|jƒ}g}g}xÀt|jƒƒD]¬}|j|ƒ}|j|ƒ}| s5| rmq5n|jƒ}|s…q5ntjƒ}||_|j    ƒ|_
t j |ƒ|_ |j|ƒ|j||jƒgƒq5Wx{|D]s\}    }
tjƒ} |    jƒ| _|| _|
| _|| _t| jƒ| _tj|    jƒ|    jƒ| ƒqìWdS(s˜Í¬²½¶ÓÎéÐÅÏ¢µ½ MapServer ¸øËùÓÐÔÚÏß¶ÓÔ±
    @note: ÐèҪȫ¶Óͬ²½µÄÇé¿ö£º´´½¨¶ÓÎé¡¢¶ÓÔ±¼ÓÈë¡¢Í˳ö¡¢ÉÏÏß¡¢ÏÂÏß¡¢Çл»µØÍ¼¡¢VIPµÈ¼¶±ä¸ü¡¢VIPµ½ÆÚʱ¼ä¸üÐÂ
    N(R2RŸR R«R¡RtChGameToMapPyPackttagGMTeamMemInfoRnRaR­Rqt GetValidVIPLVtVIPLVRR¥t tagGMTeamInfoRtTeamLVt MemInfoListRˆtMemCntRGtSendPyPackToMapServert    GetLineNOt GetRealMapID( R8RtsyncPlayerListt memInfoListRSt    memPlayerR´t memPlayerIDtmemInfoR·tteamLVtteamInfo((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRh^s8                     #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ÜR^RfR`R2R*RpR»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«RqRƒRGRH(R8R{tignorePlayerIDR³R´RR¶((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR7És  cCs,tjƒ}|jƒ}t|||ƒdS(N(R^tIPY_CLeaderKickPlayerRt__Func_LeaderKickPlayer(RSRR{Ru((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytLeaderKickPlayerës  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-R`RdRÜR^RfRoRPR2tGetTeamPlayerCountR¾tDef_Team_MinPlayerCountRt DoDismissTeamRpt__DoLogic_PlayerLeaveTeamt Def_Team_Sync_LeaveMsg_OtherKickRqRƒR
tg_tjgKickPlayerTeamDictR R( RSRuRRRXR8t    curMemberRõRvRÄtkickTeamIDList((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRùós@       
  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-R^RfRqRrRQR†ttmlMemberCanCallRÚ(t curTeamMemberRítisNotifyRv((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRe0s   %%(cCs;tjƒ}|jƒ}|jƒ}t||||ƒdS(N(R^tIPY_CTeamChangeMemberStateRt GetMemberLVt__Func_TeamChangeMemberState(RSRR{RutmemberLV((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytTeamChangeMemberStatebs
   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|ƒdS(NtTeam_Header_TransferLosts¶Ó³¤¸ø¶ÓԱȨÏÞ,Íæ¼ÒÎÞ¶ÓÎés<¶Ó³¤¸ø¶ÓԱȨÏÞ, Íæ¼Ò·Ç¶Ó³¤£¬È¨Ï޵ȼ¶²»×ã! curPlayerTeamLv=%ss/¶Ó³¤¸ø¶ÓԱȨÏÞ, ¶ÓÔ±²»ÔڸöÓÎ飡 tagPlayerID=%stGeRen_chenxin_612029(RRJRKRûRoR-RqRrRQR`RÜR^RfRPRdR2ReRÚR?RRRaR    RgRh( RSRuRRRRXRvR8Rõt
packMemberRt
leadMember((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRjsH         
 
cCsqtjƒj|ƒ}|jƒ}|jƒ}|dkrMtjd|ƒdSt|ƒs]dSt|||ƒdS(NsÀ뿪¶ÓÎéÒì³£, Íæ¼ÒÎÞ¶ÓÎé(    RRJRKRûRQR-R`RPtDoPlayerLeaveTeam(RSRRRXR8((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt    LeaveTeam¿s    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(RûR2RüR¾RýRRRþRdR¥R^RfReRÚR?t__DoSetNewLeaderRRRaRqRrRÿtDef_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-RReR^RfRRR2(R8t oldLeaderIDR³tcurMemberPlayert curMemberInfo((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRús    cCs|j||ƒ|j|ƒ|dkrŒt|t|ƒ|jdƒ|jdƒ|jƒt|j    ƒƒrt
|t ƒnt |ƒnt |ƒt|ƒ|jƒdkrt}x?t|jƒƒD]+}|j|ƒ}|jƒrËt }PqËqËW|rt||ƒqndS(Ni(tSync_LeaveTeamt DeleteMemberR-tSetTeamMemberPrepareStatetTeamMemPrepareState_LeaveTeamRbtMapServer_Sync_TeamtMapServer_LeaveFBR*R2RAR?RÔRgRhRüR!RŸR R¡Rt
DeleteTeam(t    delPlayert delPlayerIDR8tmsgRt isTeamEmptyR³R´((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRÿs,
 
 
 
 cCstj|ƒdS(s0Íæ¼Ò¶ÓÎé±ä¸üͨÓô¦Àí£¬ Í˳öºÍ¼ÓÈëµÄͳһÂß¼­
    N(t GameWorldBosstOnPlayerTeamChange(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRÔEs cCsÇ|s
dSxt|jƒƒD]‰}|j|ƒ}|jƒ}|dkrPqntj|dƒ|jdƒ|jdƒt    |ƒ|j
ƒt j kr|j ƒqqWt|tjƒjƒƒtS(NRi(RŸR R¡RR-RqRrRbR"RÔR¥R^RfR#R$Rt GetGameWorldtGetTickR!(R8R³RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRþMs    
cCs’|jƒ}t||ƒt|ƒt|ƒ|tjkrOtjj|ƒn|tjkrqtjj|ƒn|jƒt    j
ƒj |ƒdS(N( R2RR$R=R
tg_teamFBEnterAskDictRtg_prepareTeamDicttSync_DismissTeamRR)R$(R8RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR$ks  
 
 
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( RRJRKRûRQR-RRÜR^RfRPRþ(RSRRRXR8Rõ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR1•s     
cCs{xtt|jƒƒD]`}|j|ƒ}| s|jƒ rBqn|j|ƒ}|jƒtjkrlqn|jƒSWdS(N(
RŸR R«RR¡R¥R^RfRR-(tdestTeamRSRR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR—®s cCs(t|ƒ}|tjkp'|tjkS(N(RÜR^R    Rf(RRí((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt CheckTeamLV¾s cCsRd}xEt|jƒƒD]1}|j|ƒ}|dkr@qn|d7}qW|S(Nii(RŸR R«R-(R8tcountR³R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytCheckTeamOnLineCountÄs cCs¡tjƒj|ƒ}tj|tj|ƒs>tjdƒdS|jƒ}|jƒ}d}tjƒ}t    ƒ}|j
|gƒ}    t |    ƒ|krNg}
|j ƒ} xz|    D]r} | |krÆq®n|j | ƒ} | sáq®n| jƒróq®n| j ƒ}|
jt| |ƒ| | gƒq®W|
jƒg|
D]}|d^q5}    ntjƒ}g|_d}xì|    D]ä} ||kr†Pn| |kr˜qpn|j | ƒ} | s³qpn| jƒrÅqpn|d7}tjƒ}| |_| jƒ|_t |jƒ|_| j ƒ|_| jƒ|_tj| ƒ|_| j ƒ|_!|jj|ƒqpWt |jƒ}||_"t#j$||ƒtjd|||    f|ƒdS(Ns¸½½üÍæ¼Ò²éѯ¼ä¸ôδµ½...iiiisHͬ²½¸ø¿Í»§¶Ë³¡¾°¸½½üÍæ¼ÒÊý: mapID=%s,playerCount=%s,scenePlayerIDList=%s(%RRJRKtRefurbishPlayerTickR¾t(TYPE_Player_Tick_QueryRecommendNearbyKeyRRaRRR RˆRŠRoR2RtabstsortR4ttagGCRecommendNearbyPlayerListt
PlayerListttagGCRecommendNearbyPlayerRnR†R‡R‰R‹RŒRRqRŽRRR‘t PlayerCountRGRH(RSRTRRRRXtDef_SyncPlayerCountt    playerMgrtscenePlayerIDDicttscenePlayerIDListtplayerIDSortListt curPlayerLVRR·tplayerLVRîtnearbyPlayerInfoR5t nearbyPlayert playerCount((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnQueryRecommendNearbyPlayerÖsl             %
          
             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}x1|D])} ||krƒPn|j | ƒ} | sžqmnt| ƒ}|s¶qmn|d7}tjƒ}|jƒ|_|jƒ|_t |jƒ|_|jƒ|_|jƒ|_t j!|ƒ|_"|j#ƒ|_$| j%ƒ|_&| j'ƒ|_(| j)ƒ|_*| j+ƒ|_,| j-ƒ|_.|jj|ƒqmWt |jƒ}||_/t0j1||ƒtjd|||f|ƒdS(Nsˢг¡¾°¶ÓÎéʱ¼ä¼ä¸ôδµ½...itreverseiis@ͬ²½¸ø¿Í»§¶Ë³¡¾°¶ÓÎéÊý: mapID=%s,teamCount=%s,sceneTeamIDList=%s(2RRJRKR7R¾t!TYPE_Player_Tick_QueryTeamInfoKeyRRaRR R R)RˆR+R tDef_Team_MaxPlayerCountRR:R!R4ttagGCSceneTeamRefresht SceneTeamListR—ttagGCSceneTeamRnR†t
PlayerNameR‰RŠR‹RŒRRqRŽRRR‘RüR°RRLR‚RMR˜RNR™ROt    TeamCountRGRH(RSRRRRtDef_SyncTeamCountt sceneTeamDicttsceneTeamIDListR.tfullTeamIDListtotherTeamIDListRR0t memberCounttsceneTeamIDSortListRît sceneTeamInfoR5tleadert    sceneTeamt    teamCount((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytRefreshSceneTeam$sr          
         
         cCsmtjƒ}xZtjjƒD]I\}}|\}}|j|ƒ}|rtd||tj    |ƒqqWdS(N(
RR)R
tg_countdownLeaveTeamDictRR+RÿR-R¾R(RR.Rt leaveTeamInfoRtleaveServerTickR0((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt OnServerClosews   cCstjƒ}xƒtjjƒD]r\}}|\}}||tjkrMqntjj|ƒ|j|ƒ}|rt    d||tj |ƒqqWt ƒdS(N( RR)R
R^RR¾tDef_CountdownLeaveTeamTimeRR+RÿR-RR1(RR.RR_RR`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!|ƒdS(Ns;Ö´ÐÐÍæ¼ÒÏÂÏß¶ÓÎéÂß¼­!curTeamID=%s,isTJG=%s,mapID=%s,tick=%s("RRRCR
RRRQR-R2RaRqRƒRRR^tSync_TeamMemberDisconnectRdt    SetPlayerR tTeamMemPrepareState_OfflineR¥R^RfReRÚRRRRgR+R,R$R=Rh(    RRRR8RÄRtisTJGR
R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytDoPlayerLogOffTeamLogic•s< 
 
             
 
cCsÓ|jƒ}|jƒ}tjd||ƒt||jƒƒ|tjkratjj|ƒn|dkr$tj    ƒj
|ƒ}|dkr’dS|jƒ}tj    ƒj |ƒ}|dkrÃdS|j ƒdkrýtjd||fƒt||ƒdStjd||fƒ|j|ƒntj    ƒj |ƒ}|dksZ|j|ƒdkrÂ|jdƒ|jdƒ|jdƒtj|jƒƒ}|r¾|jƒtjkr¾|jƒndS|j|ƒ}|j|ƒ|j|ƒ|jƒtjkr|jtjƒnt |ƒ}|dks8t!|ƒ rƒ|j|ƒ}|jtjƒt"||jƒ|ƒt#||j$ƒƒnt%|ƒt&|ƒt'j(|ƒs³|j)ƒnt*|ƒrÏt+|t,ƒnt,S(Ns!Ö´ÐÐÍæ¼ÒÉÏÏß¶ÓÎéÂß¼­!curTeamID=%siis@Íæ¼Ò(%s)ÈÔÈ»ÓжÓÎé(%s), ²¹¾ÈÍê±Ï, ¶ÓÎéÖÐÖ»ÓÐÒ»¸öÈË, É¾³ýÕâ¸ö¶ÓÎésÍæ¼Ò(%s)ÈÔÈ»ÓжÓÎé(%s), ²¹¾È(-RR2RRRRaR
R^RR)tFindTeamMemberIndexR-R+RüRpR$t    SetTeamIDRdRbRR"R»R½R¾R¿R#ReR¥R^RfRRÚR6R—RR#RRgRhRqRƒtSync_TeamMemberLoginR*RAR!(RRRRÄR
R8tgameMapt onLineCount((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnPlayerLoginRefreshTeamÎs^       !       
 
  cCstjd|jƒƒtS(NsTeam.OnPlayerReadMapOK(RRRR!(RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnPlayerReadMapOK(sc    CsV|jƒ}tjd||jƒƒ|jƒ}t|ƒt||ƒtj|ƒ}|jƒ}|dkr0t    |ƒ|j
ƒt |ƒ}|t j kró|jƒ}t||ƒt||jƒ|ƒ|jƒtjkrót|ƒqóntj|ƒ}|rR|jƒdkrRt|||ƒqRn"|jƒtjkrRt|ƒndS(NsTeam.OnPlayerChangeMap,mapID=%si(RaRRRRRR»RQR-RhtSync_TeamMemberChangeMapRÜR^RfR2RRR½R¾R¿R=R¼RRC(    RRRRRlR8RõRRÃ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnPlayerChangeMapEs.  
 
 
    c Cs›|jƒ}|tjkrot|ƒ}|ro|\}}tjd||||f|ƒt|||ƒqon|jƒ}|dkr‹dS|j    |ƒ}    |    s¤dStjd||f|ƒ|tjkrÝ|    j
|ƒn†|tj krü|    j |ƒng|tj kr|    j|ƒnH|tjkr:|    j|ƒn)|tjtjgkr_t|ƒndStjƒ}
||
_||
_||
_t||
ƒdS(NsFÍæ¼ÒÆ¥Åä¶ÓÎéÖÐÉý¼¶, refreshType=%s, value=%s, tagMapID=%s, tagMapEx=%ss)¶ÓÎé³ÉÔ±ÊôÐÔË¢ÐÂ, refreshType=%s,value=%s(RR^tCDBPlayerRefresh_LVRERRtDoTeamMatchingProcessRQR-Rdt SetPlayerLVtCDBPlayerRefresh_Jobt SetPlayerJobtCDBPlayerRefresh_ExAttr1tSetPlayerJobLeveltCDBPlayerRefresh_OfficialRanktSetPlayerRealmLVtCDBPlayerRefresh_VIPLvtCDBPlayerRefresh_ExAttr9RhR4ttagGCTeamMemberRefreshPropertyRnt RefreshTypetValueR7( Rt refreshTypetvalueRRtplayerMatchInfoR"R9R8RÛt    tmRefresh((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytPlayerTeamMemberRefreshts@                        cCsìtjƒj|ƒ}|j}|j}|j}|j}tjƒ}||_||_||_||_g|_    tj
ƒ}    t j j |gƒ}
x0|
D](} |    j| ƒ} | s»qšn|rÙ| jƒ|krÙqšn|ròt| ƒ ròqšnt| ƒ} | s
qšntjƒ}| jƒ|_| jƒ|_t|jƒ|_| jƒ|_| jƒ|_tj| ƒ|_| j ƒ|_!| j"ƒ|_#| j$ƒ|_%| j&ƒ|_'|j    j(|ƒqšWt|j    ƒ|_)t*j+||ƒdS(N(,RRJRKRLRMtIsTagExt
MatchStateR4ttagGCTagMapTeamListtTeamListR)R
R R R+R‚R*R—ttagGCTagMapTeamRRnR†RPRˆR‰RŠR‹RŒRRqRŽRRR‘RüR°R˜RNR™RORRQRGRH(RSRTRRR"R9tisTagExt
matchStatetteamPackR.RRR0RZt
tagMapTeam((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnQueryTagMapTeam¬sN                                         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__DoMatchHelpFightTeamRMRaRQRÜR^RfRpRRR‚RqRƒtPlayerFBtGetFBLineIpyDataRR»R`R½R¾R¿t__DoMatchScenePlayert__DoMatchSceneTeamtOnEnterFBTeamAsktTeamFBAskType_Match( RSRTRRt packTagMapIDR9R"RÂR8Rõt fbLineIpyDatat
sceneMapIDRl((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnAutoMatchTeamçsH                         cCs]|jƒ}|r/t|ƒt|||ƒnt|ƒt|||ƒt|||ƒdS(N(RQR=R<RCRBRs(RR"R9RR8((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt__DoAddToMatchingLists 
 
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)RqRƒRR
RR+R€R˜R™R*R—RR9RR:R„Rr(RRRRtcurLVtmatchTeamOLListtmatchTeamTJListRSRTR.RgttjgKickTeamIDListRR0RZt isLeaderTJGtleaderLVRît 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™RqRƒRRRR RJRoRER
RR    R9RR:R„R€Rr(RR8RRRXRDRRURVR tmatchPlayerOLListtmatchPlayerTJListRARBR@RR·RERgRŸt
playerInfotmatchPlayerListt joinPlayerCntRÕ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR’wsp                       #   
 
 
  c
Cs6|jƒ}|rdStj}tjd||jƒƒ|sCdS|jƒ}tjtj    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_ChaosDemonR)RR+R˜R™R6RRüR:R!R—R„R?R2(RRR8tmatchingTeamDictREtmatchMapIDListR.t
matchMapIDtmatchTeamInfoListR:RR"R9RR0RURVRmt
joinTeamIDRîRZ((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ÜR^RfRpRR=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@RRtcopytdeepcopyR)RJRˆt    enumerateR+R6RRüR:R!R—R˜R™RoRŠR„(R"R9RR:R­tmatchingPlayerDictRRt delPlayerListR.R@tmatchTeamCountR°R³RR0RmRîRZRURVRR·((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRs!    sd          
 
     * 
     "cCs2tjƒj|ƒ}|j}t|||ƒdS(N(RRJRKt PrepareStateR (RSRTRRt prepareState((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnTeamMemberPrepares    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
R.RRRfR!RR—tSyncTeamEnterFBPrepareInfotTeamMemPrepareState_RefuseRqt
TeamNotifyR†R>tTeamMemPrepareState_OKR”tTeamFBAskType_PrepareOK( RtstateRR8RRtaskMapIDtaskMapExt memStateDictt
teamLeadertisErr((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR y    s<      
   c    Csžtjƒ}||_||_||_g|_xH|jƒD]:\}}tjƒ}||_||_    |jj
|ƒq=Wt |jƒ|_ t ||ƒdS(N(R4ttagGCTeamEnterFBPrepareRLRMt IsPrepareErrt MemStateListRttagGCTeamMemPrepareStateRnR¹RRˆtMemCountR7(    R8RÄRÅRÆRÈtteamMemPreparePackRëRÃtmemState((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR¾®    s                           cCs |tjkS(N(R
R.(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRÁ¿    scCs |tjkS(N(R
R-(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRÀÁ    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•RR7R¾t#TYPE_Player_Tick_EnterFBTeamAskTickRptGetQueryPlayerMapIDtstrRJtMapServer_QueryPlayerRˆtGetRouteServerIndexRR2RÀRŸR R«R`RR
R-R(RtaskTypeRÄRÅRRR8taskVerRt playerMapIDtsendCMDtaskPlayerRetDicttaskPlayerMapDictR³RêRëtmemMapIDtmapInfotrouteServerIndex((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{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
R-RRFtEntFBAskRet_OKRt__DoEnterFBTeamAskResultNotifytkeysRÂR¾R!R•RštTeamFBAskType_EnterRˆRÓtMapServer_QueryPlayerResultR.tGetTeamFBEnterInfoRp(Rt
resultListRt    retTeamIDt    retAskVert
retAskTypet retAskMapIDt retAskMapExt retPlayerIDtrett retPlayerNameR8RRt    notifyRettcausePlayerDictRÆR×RÖRÄRÅRÚRëtretInfot
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
R.RRJRãRoR-RŠRˆRF(RZR8RëRìRtisInPrepareTeamRÄRÅRÆttotalLVtmaxLVR@RRêtmemLVt    playerCntt    averageLV((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRæv
s.           cCsBiddgddgdgtj6ddgddgdgtj6ddgd    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 6d4d5gd6d7gd8gtj6}|jƒ}tjd>|||||f|ƒ||krtjd?||f|ƒdS||\}}    }
|jƒ} | sk|tkrL|d@n|
} tj|| |gƒnÓtjj|jƒƒ} |tkr•|n|    }x t| jƒƒD]Œ}| j|ƒ}|sÏq®n|jƒ}| s®||krôq®n||krtj||d@|gƒq®tj||dA|| gƒq®WdS(BNt FBIsNotOpentTeamMatchingTimeMetTeamMatchingTimeAlltTeamEnterTimeMetTeamEnterTimeAlltGeRen_chenxin_268121tTeamMatchingCDMetTeamMatchingCDAllt TeamEnterCDMetTeamEnterCDAllt SingleEnterCDtTeamMatchingLVMetTeamMatchingLVAllt TeamEnterLVMetTeamEnterLVAlltFbLVtTeamMatchingJobMetTeamMatchingJobAlltTeamEnterJobMetTeamEnterJobAlltSingleEnterJobtTeamMatchingTicketMetTeamMatchingTicketAlltTeamEnterTicketMetTeamEnterTicketAlltGeRen_chenxin_157069tTeamMatchingDeadMetTeamMatchingDeadAlltTeamEnterDeadMetTeamEnterDeadAlltSingleEnterDeadtTeamMatchingBossMetTeamMatchingBossAlltTeamEnterBossMetTeamEnterBossAlltSingleEnterBosstTeamMatchingPKMetTeamMatchingPKAllt TeamEnterPKMetTeamEnterPKAllt SingleEnterPKtTeamMatchingGatherMetTeamMatchingGatherAlltTeamEnterGatherMetTeamEnterGatherAlltSingleEnterGathertTeamMatchingDungeonMetTeamMatchingDungeonAlltTeamEnterDungeonMetTeamEnterDungeonAlltSingleEnterDungeontTeamMatchingDefaultMetTeamMatchingDefaultAlltTeamEnterDefaultMetTeamEnterDefaultAlltSingleEnterDefaultTeamMatchingSITMetTeamMatchingSITAlltTeamEnterSITMetTeamEnterSITAlltCarry_lhs_697674sf²»¿É½øÈë×é¶Ó¸±±¾Ô­ÒòÌáÐÑ£ºretAskType=%s,askMapID=%s,notifyRet=%s,causePlayerDict=%s,askPlayerIDList=%ss6×é¶Ó¸±±¾²»¿É½øÈëÔ­ÒòÎÞÌáʾ: retAskType=%s,notifyRet=%sii(RßtEntFBAskRet_FBClosetEntFBAskRet_NoEnterCnttEntFBAskRet_EnterCDtEntFBAskRet_LVLimittEntFBAskRet_JobRankLimittEntFBAskRet_NoTickettEntFBAskRet_DeadtEntFBAskRet_BossStatetEntFBAskRet_PKStatetEntFBAskRet_PreparingtEntFBAskRet_InFBtEntFBAskRet_TJGtEntFBAskRet_SittEntFBAskRet_OtherRRRRQR•RqRrt    Def_SpacetjoinR>RŸR R«(RRêRÄRðRñtaskPlayerIDListt notifyKeyDictRtmatchNotifyListtenterNotifyListt singleNotifyR8t
notifyMarktcausePlayerNamet
notifyListRSRêRë((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRâ–
sj                                                                 !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-R^tIPY_GTeamEnterFBtGetTeamFBMapIDtGetTeamFBMapFBIDRRaR®RtGetRecordMapIDt
GetIsEnterRÜRfRtSetTeamFBMapIDtSetTeamFBMapFBIDt__OnPrepareTeamLeaderEnterFBRpR#t__CheckTeamFBPlayerExist( RSRRR8tpackt    teamMapIDt teamMapFBIDRRØt
playerFBIDtplayerDataMapID((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytMapServer_PlayerEnterFBá
sB                             c Cs¬|jƒ}t|ƒs)tjdƒdStj|d \}}}t||||ƒ}    x=t|jƒƒD])}
|j    |
ƒ} | sk| j
ƒ ršqkn| j
ƒ} | j ƒ} | j ƒ}t j| ƒ}||kr| |ksñ||krtjd| | |fƒ| jƒn||krk| |krk||krkt||g|    ƒ}| jddd|t|ƒƒtjd|| f|j
ƒƒqkqkWtjj|ƒdS(Ns·Ç×¼±¸ÖеĶÓÎé²»´¦Àí£¡isIÍæ¼ÒÒò×é¶Ó, ÔÚͬ¸±±¾Öв»Í¬Ïß·£¬Ìß³öÍæ¼Ò! memID=%s,memMapID=%s,memFBID=%siRÐs@¶Ó³¤³É¹¦½øÈë×é¶Ó¸±±¾, ¶ÓÔ±¿ªÊ¼½øÈ븱±¾: teamID=%s,memPlayerID=%s(R2RÁRRR
R.RæRŸR R«RRaR®RRSRpR#RÓRåRˆR(R8RZtleaderDataMapIDt leaderMapIDt
leaderFBIDRRÄRÅRÆt    enterInfoRSRêRëRÜtmemFBIDt memDataMapIDRó((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRW s.      $ $'cCs‚x{t|jƒƒD]g}|j|ƒ}|jƒ}|dkrFqn|jƒ|jƒkr|jƒ|jƒkrt    SqWt
S(N( RŸR R¡RR-RaRQR®RRR!R?(R8R³RR¶((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRX6 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ÒRÕRãR
tg_queryTeamMemFuncDataDictRÓRÔRˆ(RSRTRRR8Rt queryMemDictRt queryFuncTypeR:R³RêRÜRëtqueryMemIDListRÞRÙ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnQueryTeamMemFuncDataO 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(NitsbMapServer_TeamMemFuncData srcPlayerID=%s,queryFuncType=%s,teamID=%s,memPlayerID=%s,queryFuncRet=%ss-Í¨ÖªÍæ¼Ò²éѯ¶ÓÔ±¹¦ÄÜÊý¾Ý½á¹û: queryRetDict=%s(RˆRÓRRR
RgRRJRoR4ttagGCTeamMemFuncDataListRftMemFuncDataListRttagGCTeamMemFuncDataRnt MemFuncDatatDataLenRRÍRGRH( t srcPlayerIDtmsgListRiRRët queryFuncRetR:Rjt queryRetDicttmemIDRtmemFuncDataPackt memFuncData((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytMapServer_TeamMemFuncDatap 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
R-RRRR`R.R)R[R\R+R¾R!(RRtaskInfoR×RÖRÄRÅRÚtaskTickR.R|t prepareInfoRÆt    startTickR8((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRz˜ 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    GetInitOKRqRƒRRŠRs( RSRTRRtlvlimitt    inviteCntRWt curInviteCntt playerManagerRHt    indexListR³Rv((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnInvitePlayerJoinTeamByLV s<                  (vR)R[RGR^RÝR4RqRßR
RR¾RR³R%R…R•RäRÂR„R½tTeamMemPrepareState_NoneRÁR¿RfR!RRR    R RRRRRR#R$R?RR1R<R=R*RBRCRERARYR!RRRxR|RzRsRtRgR-RPRËRÉRÏRÎR„RÜRhRïR,R7RúRùReRRRRRRÿRÔRþR$R2R1R—R4R6RIR]RaRcRhRnRoRqR„RŽR™RšR“R’RR²RsR»R R¾RÁRÀR”RôRæRâR^RWRXRkRyR{RzRŽ(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt<module>sØ                                                                                                        '    +        "    @    ;    ' C        F            /R            /    
2 "        = 2        U        (        2            &                        N    S             9    Z        /    8    ;    6        L    Q    J        R        5             J    i         K    2    #        !    $        *