CeHua_ZWJ
2018-11-13 4282b8bce074c0a6f7d8434e310d42d653eb4e9a
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
Šé[c@s^ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZdZdZdZedƒZ\ZZZZZd„Zd„Zd„Zd    „Zd
„Zd „Zd „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„Z.d„Z/dddde0d„Z1d„Z2d„Z3d„Z4d„Z5d „Z6d!„Z7dd"„Z9d#„Z:d$„Z;d%„Z<d&„Z=de%d'„Z>d(„Z?d)id*„Z@d+„ZAddddd,„ZBdd-„ZCd.„ZDd/„ZEe0d0„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„ZfdQ„Zge%dR„ZhdS„ZidT„ZjdU„ZkdV„ZldW„ZmdX„ZndY„ZodZ„Zpd[„Zqd\„Zrd]„Zsd^„Ztd_„Zud`„Zvda„ZwdS(biÿÿÿÿNiiiicCs+|j|ƒtjd||jƒƒdS(Ns ¶ÓÎéÏà¹ØÏà¹ØÉóºË¿ª¹Ø×´Ì¬±ä¸ü: %s(t
SetExAttr2t    GameWorldtDebugLogt GetPlayerID(t    curPlayert
checkState((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytSetTeamCheckState4s cCs|jƒdS(Ni
(t
GetExAttr2(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytIsTeamJoinReqNeedCheck9scCs|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.pytDelTeamIDFromSceneListJs  cCstjS(N(R
tg_scenePlayerIDDict(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytGetScenePlayerIDDictbscCs_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.pytAddPlayerIDToSceneListcs       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.pytDelPlayerIDFromSceneListns      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|ƒ}
|
dkrtj    d|    |ƒtd|    i|d6|d6|d6|d6|d    6ƒdSt|
tjtƒ|rpt|ƒ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_Teamt __SetTeamLVt    tmlLeaderR?tSync_TeamMemberInfotSyncMapServerTeamInfoRC( RRR"R9RURVtisSyncRXt
curNewTeamRtcurNewTeamMenber((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRRs. $      3
6
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.pytOnInvitePlayerJoinTeamEs&         cCs,tjƒ}|jƒ}t|||ƒdS(N(RatIPY_CRequestJoinTeamRt__Func_RequestJoinTeam(RSRtsendPackRx((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytRequestJoinTeamqs  cCs©tjƒj|ƒ}|jƒ}tjƒj|ƒ}|dkrjtjd||ƒtj|dƒdS|j    ƒ}|dkr•tj|dƒnt
|||ƒdS(Ns,Ä¿±ê×é¶ÓÍæ¼Ò²»ÔÚÏߣ¬ÎÞ·¨×é¶Ó£¡tagPlayerID=%sRpt TeamNoExist( RRJRKRRrR-RsRtRuRQRw(RSRxRRRRyRz((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR}ys    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
IsTeamFullRtRut GetTagMapIDt GetTagMapExRRRtGetIsTJGR    R2tDoPlayerJoinTeamR!R4ttagGCInviteJoinTeamInfoRqtGetNametNametlentNameLentGetLVtLVtGetJobtJobt
GetJobRanktJobLeveltGetOfficialRanktRealmLVRLRMRGRH(
RRyRWRR"R9RXRxtisTjgt
invitePack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRv›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 GetReqMaxLVRtRuRƒRRRR2R†RR‡R!R4ttagGCRequestJoinTeamRqR‰RŠR‹RŒRŽRRR‘R’R“R”RGRH(RRzRRyRXRxR•t requestPack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRwÛ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 GetMemberInfoRttagGCTeamMembertIndexRqt GetPlayerNameRŠR‹RŒt    GetTeamLVtMemberLVt GetPlayerLVRŽt GetPlayerJobRtGetPlayerJobLevelR’tGetPlayerRealmLVR”tGetMemberPlayerRtR†t PlayerStateRdtMapIDtGetFBIDtLineIDRt MemberCountRGRH(    R8t olPlayerListtteamMemberInfotit
memberInfoRtmembert memberPlayertplayer((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRksD                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(RRdRtGetMapR?t GetTeamLimitt GetMapFBTypetChConfigtfbtTeamRtRuR2tIsInEnterFBTeamAsktIsInEnterFBTeamPrepareRsR!(
RRyRXtcurMapIDt
curMapDatat    curTeamIDRxR"t
tagMapDatat    tagTeamID((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRP=sF  !      !   cCs;tjƒ}|jƒ}|jƒ}t||||ƒdS(N(Rat IPY_CTeamReqRtGetTypet__Func_TeamReqReply(RSRR~RxtisAgree((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(NRpsÑûÇë×é¶ÓµÄ¶ÓÎéÒѾ­²»´æÔÚ£¡R€itInviteEnterLost01( RRJRKRrR-RtRuRQRRPR‡(RSRxRÍRRRyRz((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR̈s"      cCs;tjƒ}|jƒ}|jƒ}t||||ƒdS(N(RatIPY_CRequestJoinTeamReplyRRËt__Func_RequestJoinTeamReply(RSRR~RxRÍ((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( RRJRKRRrR-RtRuRQRRPR‡R!(RSRxRÍRRRRyRW((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|di|jƒd6|jƒd6ƒt|jƒƒr_|rRtj|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: ÊÇ·ñ×Ô¶¯Æ¥Åä¼ÓÈëµÄ
    RmNR˜sÒѾ­ÓÐÕâ¸öÈË£¬²»ÐèÒªÖØÐ¼ÓÈ룡s!%s(%d)¼ÓÈë¶ÓÎé %s(%d), teamID=%s!tJoint
teamPlayert
joinPlayertTeamMatchingSucceed(RRR?RƒRtRuRgRR-RRsRQtDoPlayerLeaveTeamR2R‰RfRkRlRERCR*R=RAR!t__DoLogic_PlayerTeamChange(R×RÖttagTeamRt notifyPlayertisAutoMatchJoinR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR‡s>
 
*    
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¤RRtChGameToMapPyPackttagGMTeamMemInfoRqRdR°Rtt GetValidVIPLVtVIPLVR¨R±t tagGMTeamInfoR tTeamLVt MemInfoListR‹tMemCntRGtSendPyPackToMapServert    GetLineNOt GetRealMapIDtupdate(R8t    eventNametdrDictRtsyncPlayerListt memInfoListtmemListRSt    memPlayerR·t memPlayerIDtmemInfoRºtteamLVtteamInfo((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRlgsL        8             #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àRaRjRcR2R*RsR¾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®RtR†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~Rx((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-RcRgRàRaRjRrRPR2tGetTeamPlayerCountRÁtDef_Team_MinPlayerCountRt DoDismissTeamRst__DoLogic_PlayerLeaveTeamt Def_Team_Sync_LeaveMsg_OtherKickRtR†R
tg_tjgKickPlayerTeamDictR R( RSRxRRRXR8t    curMemberRÿRyRÇtkickTeamIDList((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRs@       
  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-RaRjRtRuRQR‰ttmlMemberCanCallRÞ(t curTeamMemberR÷tisNotifyRy((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRiCs   %%(cCs;tjƒ}|jƒ}|jƒ}t||||ƒdS(N(RatIPY_CTeamChangeMemberStateRt GetMemberLVt__Func_TeamChangeMemberState(RSRR~RxtmemberLV((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytTeamChangeMemberStateus
   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_612029tChangeMemTeamLVRxR(RRJRKRRrR-RtRuRQRcRàRaRjRPRgR2RiRÞR?RRRdRRkRl( RSRxRRRRXRyR8Rÿt
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    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(RR2RRÁRRRRRgR¨RaRjRiRÞR?t__DoSetNewLeaderRRRdRtRuR    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-RRiRaRjRRR2(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|di|d6|d6ƒ|jƒdkr't}x?t|jƒƒD]+}|j|ƒ}|jƒrßt }PqßqßW|r't||ƒq'ndS(NitLeavet delPlayerIDtmsg(tSync_LeaveTeamt DeleteMemberR-tSetTeamMemberPrepareStatetTeamMemPrepareState_LeaveTeamRetMapServer_Sync_TeamtMapServer_LeaveFBR*R2RAR?RÚRkRlRR!R¢R£R¤Rt
DeleteTeam(t    delPlayerR)R8R*Rt 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ÚXs cCsÇ|s
dSxt|jƒƒD]‰}|j|ƒ}|jƒ}|dkrPqntj|dƒ|jdƒ|jdƒt    |ƒ|j
ƒt j kr|j ƒqqWt|tjƒjƒƒtS(NR!i(R¢R£R¤RR-RtRuReR/RÚR¨RaRjR0R1Rt GetGameWorldtGetTickR!(R8R¶R R((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)R1(R8RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR1~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àRaRjRPR(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¨RaRjRR-(tdestTeamRSR R'((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRšÁs cCs(t|ƒ}|tjkp'|tjkS(N(RàRaRRj(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_QueryRecommendNearbyKeyRRdRRtcopytdeepcopyR R‹RRrRtR†RPRtabstsortR4ttagGCRecommendNearbyPlayerListt
PlayerListttagGCRecommendNearbyPlayerRqR‰RŠRŒRŽRRR‘R’R“R”t PlayerCountRGRH(RSRTRRRRXtDef_SyncPlayerCountt    playerMgrtscenePlayerIDDicttscenePlayerIDListtplayerIDSortListt curPlayerLVRRºtplayerLVRøtnearbyPlayerInfoR@t 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(2RRJRKRBRÁt!TYPE_Player_Tick_QueryTeamInfoKeyRRdRR R R)R‹R+R£tDef_Team_MaxPlayerCountRRGR!R4ttagGCSceneTeamRefresht SceneTeamListRšttagGCSceneTeamRqR‰t
PlayerNameRŒRRŽRRRtR‘R’R“R”RR³R„RLR…RMR›RNRœROt    TeamCountRGRH(RSRRRRtDef_SyncTeamCountt sceneTeamDicttsceneTeamIDListR.tfullTeamIDListtotherTeamIDListRR0t memberCounttsceneTeamIDSortListRøt sceneTeamInfoR@tleadert    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 OnServerClose’s   cCstjƒ}xƒtjjƒD]r\}}|\}}||tjkrMqntjj|ƒ|j|ƒ}|rt    d||tj |ƒqqWt ƒdS(N( RR)R
RkRRÁtDef_CountdownLeaveTeamTimeRR+R    R-R#R1(RR.RRlRRmR0((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
R RRQR-R2RdRtR†RRRktSync_TeamMemberDisconnectRgt    SetPlayerR-tTeamMemPrepareState_OfflineR¨RaRjRiRÞR"RRRkR6R7R$R=Rl(    RRRR8RÇRtisTJGRR$((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytDoPlayerLogOffTeamLogic°s< 
 
             
 c    Csà|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&|di|d6ƒt'j(|ƒsÀ|j)ƒnt*|ƒrÜt+|t,ƒnt,S(Ns!Ö´ÐÐÍæ¼ÒÉÏÏß¶ÓÎéÂß¼­!curTeamID=%siis@Íæ¼Ò(%s)ÈÔÈ»ÓжÓÎé(%s), ²¹¾ÈÍê±Ï, ¶ÓÎéÖÐÖ»ÓÐÒ»¸öÈË, É¾³ýÕâ¸ö¶ÓÎésÍæ¼Ò(%s)ÈÔÈ»ÓжÓÎé(%s), ²¹¾ÈtLoginR(-RR2RRRRdR
RkRR)tFindTeamMemberIndexR-R+RRsR1t    SetTeamIDRgReR+R/R¾RÀRÁRÂR0RsR¨RaRjRRÞRARšRR#R„RkRlRtR†tSync_TeamMemberLoginR*RAR!(RRRRÇRR8tgameMapt 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.pytOnPlayerReadMapOKCsc    Csj|jƒ}tjd||jƒƒ|jƒ}t|ƒt||ƒtj|ƒ}|jƒ}|dkrDt    |di|d6|d6ƒ|j
ƒt |ƒ}|t j kr|jƒ}t||ƒt||jƒ|ƒ|jƒtjkrt|ƒqntj|ƒ}|rf|jƒdkrft|||ƒqfn"|jƒtjkrft|ƒndS(NsTeam.OnPlayerChangeMap,mapID=%st    ChangeMapRRi(RdRRRRRR¾RQR-RltSync_TeamMemberChangeMapRàRaRjR2RRRÀRÁRÂR=R¿RÙRC(    RRRRR{R8RÿRRÆ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnPlayerChangeMap`s.  
 
    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=|tjtjgkrst|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_VIPLvtCDBPlayerRefresh_ExAttr9RlR4ttagGCTeamMemberRefreshPropertyRqt RefreshTypetValueR7( RRƒR„RRtplayerMatchInfoR"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šttagGCTagMapTeamRRqR‰R]R‹RŒRRŽRRRtR‘R’R“R”RR³R›RNRœRORR^RGRH(RSRTRRR"R9tisTagExt
matchStatetteamPackR.RRR0Rgt
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__DoMatchHelpFightTeamRMRdRQRàRaRjRsRR„R…RtR†tPlayerFBtGetFBLineIpyDataRR¾RcRÀRÁRÂt__DoMatchScenePlayert__DoMatchSceneTeamtOnEnterFBTeamAsktTeamFBAskType_Match( RSRTRRt packTagMapIDR9R"RÅR8Rÿt fbLineIpyDatat
sceneMapIDR{((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnAutoMatchTeamsH                         cCs]|jƒ}|r/t|ƒt|||ƒnt|ƒt|||ƒt|||ƒdS(N(RQR=R<RCRBR†(RR"R9RR8((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt__DoAddToMatchingList8s 
 
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)RtR†RR
R R+RƒR›RœR*RšRRFRRGR‡Ru(RRRRtcurLVtmatchTeamOLListtmatchTeamTJListR`RaR.RuttjgKickTeamIDListRR0Rgt isLeaderTJGtleaderLVRøt matchTeamListRÛ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR¤Fsd           !   (   &   
 
 
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œRtR†RRRR RJRrRER
R R    RFRRGR‡RƒRu(RR8RRRXRQRRURVR±tmatchPlayerOLListtmatchPlayerTJListRNRORMRRºRRRuR°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=%sRWs"    Æ¥Åä¶ÓÎé˳Ðò: matchMapID=%s,%siiÿÿÿÿRÝs        joinTeamID=%s(RQR
R3RRRRRÁtDef_FBMapID_DuJietDef_FBMapID_MunekadoTrialtDef_FBMapID_QueenRelicstDef_FBMapID_ChaosDemonR)RR+R›RœRARRRGR!RšR‡R?R2(RRR8tmatchingTeamDictRRtmatchMapIDListR.t
matchMapIDtmatchTeamInfoListR:RR"R9RR0RURVR|t
joinTeamIDRøRg((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àRaRjRsRR=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    ´¦ÀíÄ¿±êµØÍ¼ÆäÖÐÒ»¸öÆ¥Åä¶ÓÁÐûÓÐÊý¾Ý£¬²»´¦Àí£¡NRWs    Æ¥Åä¶ÓÎé˳Ðò: %siÿÿÿÿRÝ(R
R3R@RRRDRER)RJR‹t    enumerateR+RARRRGR!RšR›RœRrRR‡(R"R9RR:R¾tmatchingPlayerDictRRt delPlayerListR.RMtmatchTeamCountRÁR¶RR0R|RøRgRURVRRº((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
R9RRRtR.RRštSyncTeamEnterFBPrepareInfotTeamMemPrepareState_RefuseRtt
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 MemStateListRttagGCTeamMemPrepareStateRqRÈRR‹tMemCountR7(    R8RÓRÔRÕR×tteamMemPreparePackRõRÒtmemState((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRÍÉ    s                           cCs |tjkS(N(R
R9(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRÄÚ    scCs |tjkS(N(R
R8(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¦RRBRÁt#TYPE_Player_Tick_EnterFBTeamAskTickRstGetQueryPlayerMapIDtstrRJtMapServer_QueryPlayerR‹tGetRouteServerIndexRR2RÃR¢R£R®RcRR
R8R(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
R8RRFtEntFBAskRet_OKRt__DoEnterFBTeamAskResultNotifytkeysRÑRÍR!R¦R«tTeamFBAskType_EnterR‹RâtMapServer_QueryPlayerResultR=R9tGetTeamFBEnterInfoRs(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
R9RRJRòRrR-RR‹RF(RgR8RúRûRtisInPrepareTeamRÓRÔRÕttotalLVtmaxLVRMRRô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¦RtRut    Def_SpacetjoinR>R¢R£R®R4ttagGCEnterTeamFBFailReasonR°tAskTypetReasonRGRH(RRùRÓRÿRtaskPlayerIDListt 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-RatIPY_GTeamEnterFBtGetTeamFBMapIDtGetTeamFBMapFBIDRRdR±R¡tGetRecordMapIDt
GetIsEnterRàRjRtSetTeamFBMapIDtSetTeamFBMapFBIDt__OnPrepareTeamLeaderEnterFBRsR0t__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
R9RõR¢R£R®RRdR±R¡RfRsR0RâRôR‹R(R8RgtleaderDataMapIDt leaderMapIDt
leaderFBIDRRÓRÔRÕt    enterInfoRSRôRõRëtmemFBIDt memDataMapIDR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRj5 s.      $ $'cCs‚x{t|jƒƒD]g}|j|ƒ}|jƒ}|dkrFqn|jƒ|jƒkr|jƒ|jƒkrt    SqWt
S(N( R¢R£R¤RR-RdRdR±ReR!R?(R8R¶R R¹((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRkX 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.pytOnQueryTeamMemFuncDataq 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
RzRRJRrR4ttagGCTeamMemFuncDataListRytMemFuncDataListRttagGCTeamMemFuncDataRqt MemFuncDatatDataLenRRÜRGRH( t srcPlayerIDtmsgListR|RRõt 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
R8RRRRcR9R)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    GetInitOKRtR†RRRv( RSRTRRtlvlimitt    inviteCntRWt curInviteCntt playerManagerRUt    indexListR¶Ry((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnInvitePlayerJoinTeamByLVä s<                  cCs5i|d6|d6}|j|ƒtjd|ƒdS(Nt    EventNameR tTeam_GameServer(RîtDataRecordPackt SendEventPack(RïRtdataDictRð((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRh s (xR4R^RGRaRãR4R£RtRîR
RRÁR¡RDR%R—R¦RóRÑR–RÌtTeamMemPrepareState_NoneRÐRÎRtR.RRR    R RRRRRR#R$R?RR1R<R=R*RBRCRERARYR!RRR{RR}RvRwRkR-RPRÎRÌRÒRÑR‡RàRlRùR,R7RRRiRRR RÙR"R    RÚRR1R=R<RšR?RARVRjRnRpRvR}R~RR•RŸRªR«R¤R£R RÃR†RÊR-RÍRÄRÃR¥RRõRñRqRjRkR~R‹RRŒR Rh(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt<module>sÜ                                                                                                         (    ,        "    @    ;    ' C        H            /V        9    
2 "        = 2        U        (        2            &                        V    S             9    Z        /    8    ;    6        L    Q    J        R        5             J    j         Q    2    #        !    $        *    "