cehua-TT
2018-11-01 ff97726c31dc09a76be7ac234e29fd82866df9ee
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    Cs!tjƒj|ƒ}|jƒ}|j}tjƒj|ƒ}|dkrstjd||ƒtj    |dƒdS|j
ƒ}|j
ƒ}|dkrº|dkrºt ||||ƒdS|dkrÜt ||||ƒnA|dkr|dkrt |||ƒntjd|jƒƒdS(Ns0Ä¿±êÍæ¼Ò²»ÔÚÏß»ò²»´æÔÚ£¬ÎÞ·¨×é¶Ó£¡tagPlayerID=%stGeRen_hwj35_500807s%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(RSRtsendPackRt((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytRequestJoinTeamos  cCs©tjƒj|ƒ}|jƒ}tjƒj|ƒ}|dkrjtjd||ƒtj|dƒdS|j    ƒ}|dkr•tj|dƒnt
|||ƒdS(Ns,Ä¿±ê×é¶ÓÍæ¼Ò²»ÔÚÏߣ¬ÎÞ·¨×é¶Ó£¡tagPlayerID=%sRlt TeamNoExist( RRJRKRRnR-RoRpRqRQRs(RSRtRRRRuRv((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRyws    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ƒ|    _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
IsTeamFullRpRqt GetTagMapIDt GetTagMapExRRRtGetIsTJGR    R2tDoPlayerJoinTeamR!R4ttagGCInviteJoinTeamInfoRmtGetNametNametlentNameLentGetLVtLVtGetJobtJobt
GetJobRanktJobLeveltGetOfficialRanktRealmLVRLRMRGRH(
RRuRWRR"R9RXRttisTjgt
invitePack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRr™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 GetReqMaxLVRpRqRRRRR2R‚RRƒR!R4ttagGCRequestJoinTeamRmR…R†R‡RˆRŠR‹RŒRRŽRRRGRH(RRvRRuRXRtR‘t requestPack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRsÙ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 GetMemberInfoRttagGCTeamMembertIndexRmt GetPlayerNameR†R‡Rˆt    GetTeamLVtMemberLVt GetPlayerLVRŠt GetPlayerJobRŒtGetPlayerJobLevelRŽtGetPlayerRealmLVRtGetMemberPlayerRpR‚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 GetMapFBTypetChConfigtfbtTeamRpRqR2tIsInEnterFBTeamAsktIsInEnterFBTeamPrepareRoR!(
RRuRXtcurMapIDt
curMapDatat    curTeamIDRtR"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(RSRRzRttisAgree((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt TeamReqReply~s
   cCsÐtjƒj|ƒ}tjƒj|ƒ}|dkrJtj|dƒdS|jƒ}|dkrƒtjdƒtj|dƒdS|dkr£tj|dƒdSt    ||ƒs¶dSt
|||||ƒdS(NRlsÑûÇë×é¶ÓµÄ¶ÓÎéÒѾ­²»´æÔÚ£¡R|itInviteEnterLost01( RRJRKRnR-RpRqRQRRPRƒ(RSRtRÉRRRuRv((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRȆs"      cCs;tjƒ}|jƒ}|jƒ}t||||ƒdS(N(R^tIPY_CRequestJoinTeamReplyRRÇt__Func_RequestJoinTeamReply(RSRRzRtRÉ((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( RRJRKRRnR-RpRqRQRRPRƒR!(RSRtRÉRRRRuRW((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|ƒt|ƒt|ƒt|jƒƒr?|r2tj|dƒnt|ƒnt|ƒr|jƒr}|rptj|dƒnt|ƒqt|tƒnt|ƒtS(sK Ö´ÐÐÍæ¼Ò¼ÓÈë¶ÓÎé
    @param joinPlayer: ¼ÓÈë¶ÓÎéµÄÍæ¼Ò
    @param teamPlayer: ÉóºËÊÇ·ñÔÊÐí¼ÓÈëµÄ¶ÓÔ±£¬Ò»°ãÊǶӳ¤
    @param tagTeam: ¼ÓÈëµÄÄ¿±ê¶ÓÎé, ¿ÉÄÜΪNone
    @param notifyPlayer: ÏµÍ³ÐÅÏ¢·´À¡µÄÄ¿±êÍæ¼Ò£¬ ÇëÇó¼ÓÈëʱ·´À¡¸øÇëÇóµÄÍæ¼Ò£¬Èë¶Ó¼ÓÈëʱ·´À¡¸ø¶Ó³¤, Îª¿Õʱ²»×öÐÅÏ¢·´À¡
    @param isAutoMatchJoin: ÊÇ·ñ×Ô¶¯Æ¥Åä¼ÓÈëµÄ
    RiNR”sÒѾ­ÓÐÕâ¸öÈË£¬²»ÐèÒªÖØÐ¼ÓÈ룡s!%s(%d)¼ÓÈë¶ÓÎé %s(%d), teamID=%s!tTeamMatchingSucceed(RRR?RRpRqRdRR-RRoRQtDoPlayerLeaveTeamR2R…RcRgRhRERCR*R=RAR!t__DoLogic_PlayerTeamChange(t
joinPlayert
teamPlayerttagTeamRt notifyPlayertisAutoMatchJoinR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRƒs>
 
 
 
cCs>|jƒ}|dkrtjS|j|jƒƒ}|jƒS(N(RQR-R^t    tmlMemberRdRR¤(RR8t
teamMember((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt__GetPlayerTeamLV\s
  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 RtChGameToMapPyPackttagGMTeamMemInfoRmRaR¬Rpt GetValidVIPLVtVIPLVRR¤t tagGMTeamInfoRœtTeamLVt MemInfoListR‡tMemCntRGtSendPyPackToMapServert    GetLineNOt GetRealMapID( R8RtsyncPlayerListt memInfoListRSt    memPlayerR³t memPlayerIDtmemInfoR¶tteamLVtteamInfo((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRhes8                     #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*RoRº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ªRpR‚RGRH(R8RztignorePlayerIDR²R³RRµ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR7Ðs  cCs,tjƒ}|jƒ}t|||ƒdS(N(R^tIPY_CLeaderKickPlayerRt__Func_LeaderKickPlayer(RSRRzRt((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^RfRnRPR2tGetTeamPlayerCountR½tDef_Team_MinPlayerCountRt DoDismissTeamRot__DoLogic_PlayerLeaveTeamt Def_Team_Sync_LeaveMsg_OtherKickRpR‚R
tg_tjgKickPlayerTeamDictR R( RSRtRRRXR8t    curMemberRôRuRÃ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^RfRpRqRQR…ttmlMemberCanCallRÙ(t curTeamMemberRìtisNotifyRu((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRe7s   %%(cCs;tjƒ}|jƒ}|jƒ}t||||ƒdS(N(R^tIPY_CTeamChangeMemberStateRt GetMemberLVt__Func_TeamChangeMemberState(RSRRzRttmemberLV((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytTeamChangeMemberStateis
   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úRnR-RpRqRQR`RÛR^RfRPRdR2ReRÙR?RRRaRRgRh( RSRtRRRRXRuR8Rôt
packMemberRt
leadMember((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR qsH         
 
cCsqtjƒj|ƒ}|jƒ}|jƒ}|dkrMtjd|ƒdSt|ƒs]dSt|||ƒdS(NsÀ뿪¶ÓÎéÒì³£, Íæ¼ÒÎÞ¶ÓÎé(    RRJRKRúRQR-R`RPRÒ(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__DoSetNewLeaderRRRaRpRqRþ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.pyRs    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ÓLs 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-RpRqRbR RÓR¤R^RfR!R"Rt GetGameWorldtGetTickR!(R8R²RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRýTs    
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"rs  
 
 
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.pyR/œ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^RRf(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    ƒ}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ƒ|_ tj!| ƒ|_"| j#ƒ|_$|jj|ƒqŽWt |jƒ}||_%t&j'||ƒtjd|||    f|ƒdS(Ns¸½½üÍæ¼Ò²éѯ¼ä¸ôδµ½...iiiisHͬ²½¸ø¿Í»§¶Ë³¡¾°¸½½üÍæ¼ÒÊý: mapID=%s,playerCount=%s,scenePlayerIDList=%s((RRJRKtRefurbishPlayerTickR½t(TYPE_Player_Tick_QueryRecommendNearbyKeyRRaRRtcopytdeepcopyR R‡R‰RnRpR‚RPRtabstsortR4ttagGCRecommendNearbyPlayerListt
PlayerListttagGCRecommendNearbyPlayerRmR…R†RˆRŠR‹RŒRRŽRRt PlayerCountRGRH(RSRTRRRRXtDef_SyncPlayerCountt    playerMgrtscenePlayerIDDicttscenePlayerIDListtplayerIDSortListt curPlayerLVRR¶tplayerLVRítnearbyPlayerInfoR3t nearbyPlayert playerCount((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnQueryRecommendNearbyPlayerÝst             %
          
             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(2RRJRKR5R½t!TYPE_Player_Tick_QueryTeamInfoKeyRRaRR R R)R‡R+RŸtDef_Team_MaxPlayerCountRR:R!R4ttagGCSceneTeamRefresht SceneTeamListR–ttagGCSceneTeamRmR…t
PlayerNameRˆR‰RŠR‹RŒRpRRŽRRRûR¯R€RLRRMR—RNR˜ROt    TeamCountRGRH(RSRRRRtDef_SyncTeamCountt sceneTeamDicttsceneTeamIDListR.tfullTeamIDListtotherTeamIDListRR0t memberCounttsceneTeamIDSortListRít sceneTeamInfoR3tleadert    sceneTeamt    teamCount((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytRefreshSceneTeam3sr          
         
         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 OnServerClose†s   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-R2RaRpR‚RRR^tSync_TeamMemberDisconnectRdt    SetPlayerRtTeamMemPrepareState_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ûRoR"t    SetTeamIDRdRbRR RºR¼R½R¾R!ReR¤R^RfRRÙR4R–RR#R€RgRhRpR‚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.pytOnPlayerReadMapOK7sc    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»RÒRC(    RRRRRlR8RôRRÂ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnPlayerChangeMapTs.  
 
 
    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_ExAttr9RhR4ttagGCTeamMemberRefreshPropertyRmt RefreshTypetValueR7( Rt refreshTypetvalueRRtplayerMatchInfoR"R9R8RÚt    tmRefresh((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytPlayerTeamMemberRefreshƒs@                        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–ttagGCTagMapTeamRRmR…RPR‡RˆR‰RŠR‹RŒRpR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^RfRoRR€RRpR‚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__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)RpR‚RR
RR+RR—R˜R*R–RR9RR:RƒRq(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˜RpR‚RRRR RJRnRER
RR    R9RR:RƒRRq(RR8RRRXRDRRURVR tmatchPlayerOLListtmatchPlayerTJListRARBR@RR¶RERgRŸt
playerInfotmatchPlayerListt joinPlayerCntRÔ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR’†sp                       #   
 
 
  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˜R4RRû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^RfRoRR=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@RRR7R8R)RJR‡t    enumerateR+R4RRûR:R!R–R—R˜RnR‰Rƒ(R"R9RR:R­tmatchingPlayerDictRRt delPlayerListR.R@tmatchTeamCountR°R²RR0RmRíRZRURVRR¶((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRs0    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
R,RRRfRRR–tSyncTeamEnterFBPrepareInfotTeamMemPrepareState_RefuseRpt
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 MemStateListRttagGCTeamMemPrepareStateRmR·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•RR5R½t#TYPE_Player_Tick_EnterFBTeamAskTickRotGetQueryPlayerMapIDtstrRJtMapServer_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…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
R+RRFtEntFBAskRet_OKRt__DoEnterFBTeamAskResultNotifytkeysRÀR¼R!R•RštTeamFBAskType_EnterR‡RÑtMapServer_QueryPlayerResultR=R,tGetTeamFBEnterInfoRo(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áRnR-R‰R‡RF(RZR8RéRêRtisInPrepareTeamRÂRÃRÄttotalLVtmaxLVR@RRétmemLVt    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 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||krutj||d@|gƒ|tjtjtjgkr’tjƒ}||_||_||_ t!j"||ƒq’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•RpRqt    Def_SpacetjoinR>RžRŸRªR4ttagGCEnterTeamFBFailReasonR¬tAskTypetReasonRGRH(RRèRÂRîRïtaskPlayerIDListt notifyKeyDictRtmatchNotifyListtenterNotifyListt singleNotifyR8t
notifyMarktcausePlayerNamet
notifyListRSRéRêtfailPack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRà¦
sv                                                                              !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__OnPrepareTeamLeaderEnterFBRoR!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RURoR!RÑRãR‡R(R8RZtleaderDataMapIDt leaderMapIDt
leaderFBIDRRÂRÃRÄt    enterInfoRSRéRêRÚtmemFBIDt memDataMapIDRñ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRY) s.      $ $'cCs‚x{t|jƒƒD]g}|j|ƒ}|jƒ}|dkrFqn|jƒ|jƒkr|jƒ|jƒkrt    SqWt
S(N( RžRŸR RR-RaRSR­RTR!R?(R8R²RRµ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRZL 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.pytOnQueryTeamMemFuncDatae 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
RiRRJRnR4ttagGCTeamMemFuncDataListRhtMemFuncDataListRttagGCTeamMemFuncDataRmt MemFuncDatatDataLenRRËRGRH( t srcPlayerIDtmsgListRkRRêt queryFuncRetR:Rlt 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
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.pyR|® 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    GetInitOKRpR‚RR‰Rr( RSRTRRtlvlimitt    inviteCntRWt curInviteCntt playerManagerRHt    indexListR²Ru((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnInvitePlayerJoinTeamByLVØ s<                  (vR'R[RGR^RÜR4RpRÝR
RR½RR7R%R‡R•RâRÀR†R»tTeamMemPrepareState_NoneR¿R½RfRRRR    R RRRRRR#R$R?RR1R<R=R*RBRCRERARYR!RRRwR{RyRrRsRgR-RPRÊRÈRÎRÍRƒRÛRhRîR,R7RùRøReRR RRÒRRþRÓRýR"R0R/R–R2R4RIR]RaRcRhRnRoRqR„RŽR™RšR“R’RR²RsR¹RR¼RÀR¿R”RòRäRàR`RYRZRmR{R}R|R(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt<module>sØ                                                                                                        '    ,        "    @    ;    ' C        H            /V            /    
2 "        = 2        U        (        2            &                        V    S             9    Z        /    8    ;    6        L    Q    J        R        5             J    j         Q    2    #        !    $        *