xdh
2019-02-21 92eee67f85cbd29feb1287ae5a15ad0c787e95cb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
Zä=\c@sŽddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZdZdZdZedƒZ\ZZZZZd„Zd„Zd„Zd    „Zd
„Zd „Z d „Z!d „Z"d„Z#d„Z$d„Z%e&d„Z'd„Z(d„Z)d„Z*d„Z+d„Z,d„Z-d„Z.d„Z/d„Z0dddde1d„Z2d„Z3d„Z4d„Z5d„Z6d „Z7d!„Z8dd"„Z:d#„Z;d$„Z<d%„Z=d&„Z>de&d'„Z?d(„Z@d)id*„ZAd+„ZBd,„ZCd-„ZDddddd.„ZEdd/„ZFd0„ZGd1„ZHe1d2„ZId3„ZJd4„ZKd5„ZLd6„ZMd7„ZNd8„ZOd9„ZPd:„ZQd;„ZRd<„ZSd=„ZTd>„ZUd?„ZVd@„ZWdA„ZXdB„ZYdC„ZZdD„Z[dE„Z\dF„Z]dG„Z^dH„Z_dI„Z`dJ„ZadK„ZbdL„ZcdM„ZddN„ZedO„ZfdP„ZgdQ„ZhdR„ZidS„Zje&dT„ZkdU„ZldV„ZmdW„ZndX„ZodY„ZpdZ„Zqd[„Zrd\„Zsd]„Ztd^„Zud_„Zvd`„Zwda„Zxdb„Zydc„Zzdd„Z{de„Z|dS(fiÿÿÿÿNiiiicCs+|j|ƒtjd||jƒƒdS(Ns ¶ÓÎéÏà¹ØÏà¹ØÉóºË¿ª¹Ø×´Ì¬±ä¸ü: %s(t
SetExAttr2t    GameWorldtDebugLogt GetPlayerID(t    curPlayert
checkState((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytSetTeamCheckState5s cCs|jƒdS(Ni
(t
GetExAttr2(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytIsTeamJoinReqNeedCheck:scCs|jƒdS(Ni
(R(R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytIsTeamInvateNeedCheck<scCstjS(N(t
PyGameDatatg_sceneTeamIDDict(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytGetSceneTeamIDDict?scCs_tjj|gƒ}||kr[|j|ƒ|tj|<tjd||tjfƒndS(sXÌí¼Ó¶ÓÎéIDµ½³¡¾°¶ÓÎéÁбíÖÐ
    ´´½¨¶ÓÎé¡¢¶Ó³¤±ä¸ü¡¢¶Ó³¤Çл»µØÍ¼¡¢ÉÏÏßʱ¶ÓÎéÖ»ÓÐÒ»ÈË
    s-Ìí¼Ó³¡¾°¶ÓÎé: mapID=%s,teamID=%s,sceneTeam=%sN(R
R tgettappendRR(tteamIDtmapIDttickt
teamIDList((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.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.pytDelTeamIDFromSceneListKs  cCstjS(N(R
tg_scenePlayerIDDict(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytGetScenePlayerIDDictcscCs_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.pytAddPlayerIDToSceneListds       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.pytDelPlayerIDFromSceneListos      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.pytAddTeamIDToTagMapTeamDicts       cCs˜x‘tjjƒD]€\}}||kr|j|ƒ|sNtjj|ƒntjd||tjfƒ|tjkrtjj|ƒqqqWdS(Ns1ɾ³ýÄ¿±ê¶ÓÎé: tagMapID=%s,teamID=%s,tagMapTeam=%s(R
R RRRRRR(RR"R((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytDelTeamIDFromTagMapTeamDictŠs      cCs‚d}| rB|tjkrBtj|\}}||krBdSntjƒ}||gtj|<tjd||||fƒdS(Nis>¸üжÓÎéÄ¿±êʱ¼ä: teamID=%s,tagMapID=%s,curTime=%s,lastTime=%s(R
RttimeRR(RR"tisForcetlastTimeRtcurTime((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR—s  cCs½tjƒ}tjƒ}xžtjjƒD]\}}|\}}||dkrVq(nt|ƒrhq(n|j|ƒ}|sƒq(ntd|dƒr(tj
d||||fƒq(q(WdS(Ni°is:ÖØÖöÓÎéÄ¿±ê! teamID=%s,tagMapID=%s,curTime=%s,lastTime=%s( R%RtGetTeamManagerR
RRtIsTeamMatchingPlayertFindTeamtDoChangeTeamTagMaptNoneR(R(tteamMgrRttagMapTimeInfoR"R'tteam((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytResetTeamTagMapByTime¢s    $cCsœ||f}|jƒ}tjj|gƒ}||kr˜|j|ƒ|tj|<tjƒ}d|_t||ƒt    j
d|||tjfƒndS(Nis?Ìí¼ÓÆ¥Åä¶ÓÎé: tagMapID=%s,tagMapEx=%s,teamID=%s,matchingTeam=%s( t    GetTeamIDR
tg_matchingTeamDictR RtChPyNetSendPackttagGCTeamMatchStatet
IsMatchingtSendTeamFakePackRR(tcurTeamR"ttagMapExtkeyRRt    statePack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytAddTeamIDToMatchingList³s               cCsª|jƒ}x—tjjƒD]†\}}||kr|\}}|j|ƒ|sftjj|ƒntjƒ}t||ƒt    j
d|||tjfƒqqWdS(Ns?ɾ³ýÆ¥Åä¶ÓÎé: tagMapID=%s,tagMapEx=%s,teamID=%s,matchingTeam=%s( R2R
R3RRRR4R5R7RR(R8RR:RR"R9R;((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytDelTeamIDFromMatchingListÂs          cCs.x'tjjƒD]}||krtSqWtS(N(R
R3tvaluesR!tFalse(RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR*Ñs cCs‡||f}tjj|gƒ}|jƒ}||krƒ|j|ƒ|tj|<t|tƒtjd|||tjfƒndS(NsCÌí¼ÓÆ¥ÅäÍæ¼Ò: tagMapID=%s,tagMapEx=%s,playerID=%s,matchingPlayer=%s(    R
tg_matchingPlayerDictR RRtSync_TeamMatchStateR!RR(RR"R9R:RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytAddPlayerIDToMatchingListØs          cCsž|jƒ}x‹tjjƒD]z\}}||kr|\}}|j|ƒ|sftjj|ƒnt|tƒtj    d|||tjfƒqqWdS(NsCɾ³ýÆ¥ÅäÍæ¼Ò: tagMapID=%s,tagMapEx=%s,playerID=%s,matchingPlayer=%s(
RR
R@RRRRAR?RR(RRR:RR"R9((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytDelPlayerIDFromMatchingListås         cCs4x-tjjƒD]\}}||kr|SqWtS(N(R
R@RR?(Rt
tagMapInfoR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytIsPlayerMatchingTeamós cCs/tjƒ}t|ƒ|_tj||ƒdS(N(R4R5tintR6t NetPackCommont SendFakePack(Rt
isMatchingR;((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRAùs c
Csžtjƒj|ƒ}|j}|j}|j}|j}t|ƒsIdS|jƒ}|j    ƒ}    |dkrtj d|    ƒdSt ||||||ƒdS(NsÍæ¼ÒÒÑÓжÓÎ飬²»ÄÜ´´½¨!( RtGetPlayerManagertGetPlayerByIndextTagMapIDtTagMapExtReqMinLVtReqMaxLVt__CheckCanTeamCommtGetTeamRR-Rt DoCreateTeam(
tindext
clientDataRRR"R9treqMinLVtreqMaxLVt curPlayerTeamt curPlayerID((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt OnCreateTeam    s                    c Cs~|jƒ}|s$tjdƒ}ntjƒjtj||||ƒ}|dkrhtj    d|ƒdS|j
ƒ}    t |    |j ƒ|ƒt |    |ƒ|j|ƒ|j|ƒ|j|ƒ}
|
dkrtj    d|    |ƒtd|    i|d6|d6|d6|d6|d    6ƒ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.pytOnInvitePlayerJoinTeamFs&         cCs,tjƒ}|jƒ}t|||ƒdS(N(RatIPY_CRequestJoinTeamRt__Func_RequestJoinTeam(RSRtsendPackRx((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytRequestJoinTeamrs  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}zs    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.pyRlhsL        8             #cCsktjƒ}|jƒ|_d|_d|_g|_t|jƒ|_t    j
|j ƒ|j ƒ|ƒdS(Ni( RãRçRRqR RèRéR‹RêRGRëRìRí(RRø((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytSyncMapServerPlayerNoTeam•s             cCsVtjƒ}|jƒ|_|jƒ|_||_tj|j    ƒ|j
ƒ|ƒdS(N( RãttagGMPlayerLeaveTeamRRqR±t    CopyMapIDR RGRëRìRí(RRt    leavePack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytSyncMapServerPlayerLeaveTeam s      cCs\tjƒj|ƒ}|j}|j}|j}|j}t||jƒ||||ƒdS(N(    RRJRKRLRMRNROR,RQ(RSRTRRR"R9RURV((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnChangeTeamInfoµs                c
Cs²|s dn    |jƒ}|dkr8tjd|ƒdS|rtt|ƒ}|tjkrttjd||ƒdSn|jƒ}t    |ƒr¤tj
d||ƒdS|rÒtj |ƒ rÒtjd||ƒdS|sêt j dƒ}n|j|ƒ|j|ƒ|j|ƒ|j|ƒtjd|||||f|ƒ|rZt||tƒntjƒ}    ||    _||    _||    _||    _t||    ƒt|ƒt||ƒtS(Nis Íæ¼ÒûÓжÓÎ飬ÎÞ·¨Ð޸ĶÓÎéÐÅÏ¢£¡s.²»ÊǶӳ¤£¬ÎÞ·¨Ð޸ĶÓÎéÄ¿±ê! curPlayerTeamLv=%ss*¶ÓÎé×Ô¶¯Æ¥ÅäÖУ¬ÎÞ·¨±ä¸ü¶ÓÎéÐÅÏ¢!teamID=%ss,Ä¿±êµØÍ¼²»´æÔÚ£¬ÎÞ·¨±ä¸ü¶ÓÎéÐÅÏ¢!tagMapID=%sRZs9Ð޸ĶÓÎéÐÅÏ¢: teamID=%s,tagMapID=%s,mapEx=%s,reqLV(%s~%s)(RR-RRRà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.pytLeaderKickPlayers  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    curMemberRRyRÇ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.pyRiXs   %%(cCs;tjƒ}|jƒ}|jƒ}t||||ƒdS(N(RatIPY_CTeamChangeMemberStateRt GetMemberLVt__Func_TeamChangeMemberState(RSRR~RxtmemberLV((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytTeamChangeMemberStateŠs
   c Csãtjƒj|ƒ}|jƒ}||kr1dStjƒj|ƒ}|dkrftj|dƒdS|jƒ}|sŒtj    d|ƒdSt
|ƒ}|t j kr¿tj    d||ƒdSt ||ƒsÒdS|j|ƒ}    |    dkrtj    d||ƒdS|jƒ}
|t j krx|j|ƒ} t| t jtƒt|    t j ƒt|
|ƒt|
|jƒ|ƒn?|t jkr§t|    |ƒtj|dƒnt|    t jƒt|ƒt|di|d6|d6ƒdS(    NtTeam_Header_TransferLosts¶Ó³¤¸ø¶ÓԱȨÏÞ,Íæ¼ÒÎÞ¶ÓÎés<¶Ó³¤¸ø¶ÓԱȨÏÞ, Íæ¼Ò·Ç¶Ó³¤£¬È¨Ï޵ȼ¶²»×ã! curPlayerTeamLv=%ss/¶Ó³¤¸ø¶ÓԱȨÏÞ, ¶ÓÔ±²»ÔڸöÓÎ飡 tagPlayerID=%stGeRen_chenxin_612029tChangeMemTeamLVRxR(RRJRKR
RrR-RtRuRQRcRàRaRjRPRgR2RiRÞR?RRRdRRkRl( RSRxRRRRXRyR8Rt
packMemberRt
leadMember((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR’sH         
cCsqtjƒj|ƒ}|jƒ}|jƒ}|dkrMtjd|ƒdSt|ƒs]dSt|||ƒdS(NsÀ뿪¶ÓÎéÒì³£, Íæ¼ÒÎÞ¶ÓÎé(    RRJRKR
RQR-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(R
R2R RÁR RRR RgR¨RaRjRiRÞR?t__DoSetNewLeaderRRRdRtRuRtDef_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    cCs1|j||ƒ|j|ƒ|dkr’t|t|ƒ|jdƒt||jƒƒ|jƒt    |jƒƒr…t
|t ƒnt |ƒnt |ƒt|di|d6|d6ƒ|jƒdkr-t}x?t|jƒƒD]+}|j|ƒ}|jƒråt }PqåqåW|r-t||ƒq-ndS(NtLeavet delPlayerIDtmsgi(tSync_LeaveTeamt DeleteMemberR-tSetTeamMemberPrepareStatetTeamMemPrepareState_LeaveTeamReRýR2tMapServer_LeaveFBR*RAR?RÚRkRlR R!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Úns cCsÍ|s
dSx£t|jƒƒD]}|j|ƒ}|jƒ}|dkrPqntj|dƒ|jdƒt||j    ƒƒt
|ƒ|j ƒt j kr|jƒqqWt|tjƒjƒƒtS(NR&(R¢R£R¤RR-RtRuReRýR2RÚR¨RaRjR4R5Rt GetGameWorldtGetTickR!(R8R¶RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR vs   
cCs’|jƒ}t||ƒt|ƒt|ƒ|tjkrOtjj|ƒn|tjkrqtjj|ƒn|jƒt    j
ƒj |ƒdS(N( R2RR$R=R
tg_teamFBEnterAskDictRtg_prepareTeamDicttSync_DismissTeamRR)R5(R8RR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR5•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( RRJRKR
RQR-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-(tdestTeamRSRR,((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øtnearbyPlayerInfoRDt nearbyPlayert playerCount((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnQueryRecommendNearbyPlayerst             %
          
             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(2RRJRKRFRÁt!TYPE_Player_Tick_QueryTeamInfoKeyRRdRR R R)R‹R+R£tDef_Team_MaxPlayerCountRRKR!R4ttagGCSceneTeamRefresht SceneTeamListRšttagGCSceneTeamRqR‰t
PlayerNameRŒRRŽRRRtR‘R’R“R”R R³R„RLR…RMR›RNRœROt    TeamCountRGRH(RSRRRRtDef_SyncTeamCountt sceneTeamDicttsceneTeamIDListR.tfullTeamIDListtotherTeamIDListRR0t memberCounttsceneTeamIDSortListRøt sceneTeamInfoRDtleadert    sceneTeamt    teamCount((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytRefreshSceneTeamVsr          
         
         cCsmtjƒ}xZtjjƒD]I\}}|\}}|j|ƒ}|rtd||tj    |ƒqqWdS(N(
RR)R
tg_countdownLeaveTeamDictRR+RR-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
RoRRÁtDef_CountdownLeaveTeamTimeRR+RR-R(R1(RR.RRpRRqR0((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytDoCountdownLeaveTeamLogicµs   c    Csµ|jƒ}t|ƒt|ƒ|tjkrBtjj|ƒn|jƒ}|dkr^dS|jƒ}|j    ƒ}t
j |ƒ}t j d||||f|ƒ||gtj|<t
j |ƒsÔ|jƒn|j|ƒ}|jdƒt|t|ƒ|jƒtjkršt|tjƒt||ƒ}|rjt||ƒt||j    ƒ|ƒt|ƒqšt|t jƒjƒƒt|ƒt |ƒnt!|di|d6ƒdS(Ns;Ö´ÐÐÍæ¼ÒÏÂÏß¶ÓÎéÂß¼­!curTeamID=%s,isTJG=%s,mapID=%s,tick=%stLogOffR("RRRCR
RRRQR-R2RdRtR†RRRotSync_TeamMemberDisconnectRgt    SetPlayerR2tTeamMemPrepareState_OfflineR¨RaRjRiRÞR'RRRkR:R;R$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ÃdStj d||fƒ|j|ƒntj    ƒj |ƒ}|dks |j|ƒdkrˆ|jdƒ|jdƒt||ƒtj|jƒƒ}|r„|jƒtjkr„|jƒndS|j|ƒ}|j|ƒ|j|ƒ|jƒtjkrÙ|jtjƒnt|ƒ}|dksþt|ƒ rI|j|ƒ}|jtjƒt ||jƒ|ƒt!||j"ƒƒnt#|ƒt$|di|d6ƒt%j&|ƒs†|j'ƒnt(|ƒr¢t)|t*ƒnt+||j,ƒƒt*S(Ns!Ö´ÐÐÍæ¼ÒÉÏÏß¶ÓÎéÂß¼­!curTeamID=%sisÍæ¼Ò(%s)ÈÔÈ»ÓжÓÎé(%s), ²¹¾ÈitLoginR(-RR2RRRRdR
RoRR)tFindTeamMemberIndexR-R+Rst    SetTeamIDRgReR0RýR¾RÀRÁRÂR4RwR¨RaRjRRÞRERšRR#R„RkRlRtR†tSync_TeamMemberLoginR*RAR!tOnTeamMemFamilyRefresht GetFamilyID(RRRRÇRR8tgameMapt onLineCount((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnPlayerLoginRefreshTeamsX          !       
  cCsÕtjd|jƒƒ|jƒdkr,dStjƒj|jƒƒ}|dkrWdS|jƒ}|jt    j
ƒ}|rÑ||krÑtj d||f|jƒƒt |ƒt |di|jƒd6ƒntS(NsTeam.OnPlayerReadMapOKisRTeam.OnPlayerReadMapOK µØÍ¼ÓëµÇ¼ʱµØÍ¼²»Ò»Ö£¬ÖØÐÂͬ²½Ò»´Î!loginMapID=%s,mapID=%st    ReadMapOKR(RRRR2R)R+R-Rdt GetDictByKeyRÁtDef_PDict_LoginMapIDRsRkRlR!(RRR8Rt
loginMapID((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnPlayerReadMapOK]s      
 c    Cst|jƒ}tjd||jƒƒ|jƒ}t|ƒt||ƒtj|ƒ}|jƒ}|dkrDt    |di|d6|d6ƒ|j
ƒt |ƒ}|t j kr|jƒ}t||ƒt||jƒ|ƒ|jƒtjkrt|ƒqntj|ƒ}|rp|jƒdkrpt|||ƒqpn,|jƒtjkrft|ƒnt|ƒdS(NsTeam.OnPlayerChangeMap,mapID=%st    ChangeMapRRi(RdRRRRRR¾RQR-RltSync_TeamMemberChangeMapRàRaRjR2RRRÀRÁRÂR=R¿RÙRCRù(    RRRRRR8RRRÆ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnPlayerChangeMap~s0  
 
 
c Cs¯|jƒ}|tjkrot|ƒ}|ro|\}}tjd||||f|ƒt|||ƒqon|jƒ}|dkr‹dS|j    |ƒ}    |    s¤dStjd||f|ƒ|tjkrÝ|    j
|ƒnš|tj krü|    j |ƒn{|tj kr|    j|ƒn\|tjkr:|    j|ƒn=|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‰RaR‹RŒRRŽRRRtR‘R’R“R”R R³R›RNRœRORRbRGRH(RSRTRRR"R9tisTagExt
matchStatetteamPackR.RRR0Rkt
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ÅR8Rt fbLineIpyDatat
sceneMapIDR((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnAutoMatchTeam!sH                         cCs]|jƒ}|r/t|ƒt|||ƒnt|ƒt|||ƒt|||ƒdS(N(RQR=R<RCRBR(RR"R9RR8((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt__DoAddToMatchingListWs 
 
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
RR+RƒR›RœR*RšRRJRRKR‡Ru(RRRRtcurLVtmatchTeamOLListtmatchTeamTJListRdReR.RyttjgKickTeamIDListRR0Rkt isLeaderTJGtleaderLVRøt matchTeamListRÛ((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR®esd           !   (   &   
 
 
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
RR    RJRRKR‡RƒRu(RR8RRRXRURRURVR»tmatchPlayerOLListtmatchPlayerTJListRRRSRQRRºRVRyRº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=%sR[s"    Æ¥Åä¶ÓÎé˳Ðò: matchMapID=%s,%siiÿÿÿÿRÝs        joinTeamID=%s(RQR
R3RRRRRÁtDef_FBMapID_DuJietDef_FBMapID_MunekadoTrialtDef_FBMapID_QueenRelicstDef_FBMapID_ChaosDemonR)RR+R›RœRERR RKR!RšR‡R?R2(RRR8tmatchingTeamDictRVtmatchMapIDListR.t
matchMapIDtmatchTeamInfoListR:RR"R9RR0RURVR‚t
joinTeamIDRøRk((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.pytOnCancelMatchTeamL    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    ´¦ÀíÄ¿±êµØÍ¼ÆäÖÐÒ»¸öÆ¥Åä¶ÓÁÐûÓÐÊý¾Ý£¬²»´¦Àí£¡NR[s    Æ¥Åä¶ÓÎé˳Ðò: %siÿÿÿÿRÝ(R
R3R@RRRHRIR)RJR‹t    enumerateR+RERR RKR!RšR›RœRrRR‡(R"R9RR:RÈtmatchingPlayerDictRRt delPlayerListR.RQtmatchTeamCountRËR¶RR0R‚RøRkRURVRRº((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR[    sd          
 
     * 
     "cCs2tjƒj|ƒ}|j}t|||ƒdS(N(RRJRKt PrepareStateR2(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=RRRxR3RRštSyncTeamEnterFBPrepareInfotTeamMemPrepareState_RefuseRtt
TeamNotifyR‰R>tTeamMemPrepareState_OKR¯tTeamFBAskType_PrepareOK( RtstateRR8RRtaskMapIDtaskMapExt memStateDictt
teamLeadertisErr((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR2³    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
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°RRFRÁt#TYPE_Player_Tick_EnterFBTeamAskTickRstGetQueryPlayerMapIDtstrRJtMapServer_QueryPlayerR‹tGetRouteServerIndexRR2RÃR¢R£R®RcRR
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=tGetTeamFBEnterInfoRs(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.pytOnEnterFBTeamAskResultG
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üRrR-RR‹RF(RkR8RRRtisInPrepareTeamRÝRÞRßttotalLVtmaxLVRQRRô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 6d>d?gd@dAgdBgtj6dCdDgdEdFgdGgtj6d4d5gd6d7gd8gtj6}|jƒ}tjdH|||||f|ƒ||krOtjdI||f|ƒdS||\}}    }
|jƒ} | s©|tkrŠ|dJn|
} tj|| |gƒn+tjj|jƒƒ} |tkrÓ|n|    }xøt| jƒƒD]ä}| j|ƒ}|s qìn|jƒ}| sì||kr2qìn||kr³tj||dJ|gƒ|tjtjtjgkrÐtjƒ}||_ ||_!||_"t#j$||ƒqÐqìtj||dK|| gƒqìWdS(LNt FBIsNotOpentTeamMatchingTimeMetTeamMatchingTimeAlltTeamEnterTimeMetTeamEnterTimeAlltGeRen_chenxin_268121tTeamMatchingCDMetTeamMatchingCDAllt TeamEnterCDMetTeamEnterCDAllt SingleEnterCDtTeamMatchingLVMetTeamMatchingLVAllt TeamEnterLVMetTeamEnterLVAlltFbLVtTeamMatchingJobMetTeamMatchingJobAlltTeamEnterJobMetTeamEnterJobAlltSingleEnterJobtTeamMatchingTicketMetTeamMatchingTicketAlltTeamEnterTicketMetTeamEnterTicketAlltGeRen_chenxin_157069tTeamMatchingDeadMetTeamMatchingDeadAlltTeamEnterDeadMetTeamEnterDeadAlltSingleEnterDeadtTeamMatchingBossMetTeamMatchingBossAlltTeamEnterBossMetTeamEnterBossAlltSingleEnterBosstTeamMatchingPKMetTeamMatchingPKAllt TeamEnterPKMetTeamEnterPKAllt SingleEnterPKtTeamMatchingGatherMetTeamMatchingGatherAlltTeamEnterGatherMetTeamEnterGatherAlltSingleEnterGathertTeamMatchingDungeonMetTeamMatchingDungeonAlltTeamEnterDungeonMetTeamEnterDungeonAlltSingleEnterDungeontTeamMatchingDefaultMetTeamMatchingDefaultAlltTeamEnterDefaultMetTeamEnterDefaultAlltSingleEnterDefaultTeamMatchingSITMetTeamMatchingSITAlltTeamEnterSITMetTeamEnterSITAlltCarry_lhs_697674tCrossMatching9tCrossMatching10tCrossMatching11tCrossMatching12tCrossMatching8t    CrossMap6t    CrossMap7t    CrossMap8t    CrossMap9t    CrossMap5sf²»¿É½øÈë×é¶Ó¸±±¾Ô­ÒòÌáÐÑ£ºretAskType=%s,askMapID=%s,notifyRet=%s,causePlayerDict=%s,askPlayerIDList=%ss6×é¶Ó¸±±¾²»¿É½øÈëÔ­ÒòÎÞÌáʾ: retAskType=%s,notifyRet=%sii(%RøtEntFBAskRet_FBClosetEntFBAskRet_NoEnterCnttEntFBAskRet_EnterCDtEntFBAskRet_LVLimittEntFBAskRet_JobRankLimittEntFBAskRet_NoTickettEntFBAskRet_DeadtEntFBAskRet_BossStatetEntFBAskRet_PKStatetEntFBAskRet_PreparingtEntFBAskRet_InFBtEntFBAskRet_TJGtEntFBAskRet_SittEntFBAskRet_CrossPKMatchingtEntFBAskRet_InCrossMaptEntFBAskRet_OtherRRRRQR°RtRut    Def_SpacetjoinR>R¢R£R®R4ttagGCEnterTeamFBFailReasonR°tAskTypetReasonRGRH(RRRÝR    R
taskPlayerIDListt notifyKeyDictRtmatchNotifyListtenterNotifyListt singleNotifyR8t
notifyMarktcausePlayerNamet
notifyListRSRôRõtfailPack((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRûÑ
s~                                                                                      !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__OnPrepareTeamLeaderEnterFBRsR4t__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||||ƒ}    |jƒ}
g} i} i} xµt|j    ƒƒD]¡}|j
|ƒ}| s‰|jƒ r¸q‰n|jƒ}||krÖq‰n|j ƒ| |<|j ƒ| |<|
|kr‰t j|
|ƒr‰| j|
|gƒq‰q‰Wx t|j    ƒƒD]Œ}|j
|ƒ}| sA|jƒ rpqAn|jƒ}|jƒ}|jƒ}tj|ƒ}||krî||ksÇ||krîtjd|||fƒ|jƒn||krA||krA||krAt||g|    ƒ}|jddd|t|ƒƒtjd||f|jƒƒxc|jƒD]R}||krŒqtnt j||ƒrt||g| krt| j||gƒqtqtWqAqAWtjj|ƒtd|| | | gƒ}|jddd|t|ƒƒdS(    Ns·Ç×¼±¸ÖеĶÓÎé²»´¦Àí£¡isIÍæ¼ÒÒò×é¶Ó, ÔÚͬ¸±±¾Öв»Í¬Ïß·£¬Ìß³öÍæ¼Ò! memID=%s,memMapID=%s,memFBID=%siRés@¶Ó³¤³É¹¦½øÈë×é¶Ó¸±±¾, ¶ÓÔ±¿ªÊ¼½øÈ븱±¾: teamID=%s,memPlayerID=%st InitRelationtEnterFBTeamRelation(R2RÄRRR
R=RÿRR¢R£R®R€R‰t PlayerFriendtIsFriendRRdR±R«R|RsR4RìRþR‹RüR(R8RktleaderDataMapIDt leaderMapIDt
leaderFBIDRRÝRÞRßt    enterInfotleaderIDt
friendListtmemFamilyIDDictt memNameDictRSRôRõRõtmemFBIDt memDataMapIDR tpreMemPlayerIDt relationInfo((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR€X sZ         $ $  $!c Cs2|jƒ}|s#tjdƒdStj|jƒƒ}| sT|jƒtjkretjdƒdSt}|j    ƒ}|j
ƒ}xWt |j ƒƒD]C}|j |ƒ}    |    s·q–n|    j    ƒ}
||
kr–t}Pq–q–W|sôtjdƒdStd||||gƒ} |jddd| t| ƒƒdS(NsºÃÓѱä¸ü£¬ÎÞ¶ÓÎé²»¹Ü£¡sºÃÓѱä¸ü£¬²»ÔÚ×é¶Ó¸±±¾²»¹Ü£¡sºÃÓѹØÏµ±ä¸ü£¬²»ÊÇͬ¶ÓÎé²»¹Ü£¡t FriendChangeiR‰(R2RRR¾RdRÀRÁRÂR?RRQR¢R£R¤R!RìRþR‹( RRxtisFriendRRÆt
isSameTeamRR8RSR·RõR—((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnTeamMemFriendChange• s2        cCsÂ|s
dS|jƒ}|s-tjdƒdStj|jƒƒ}| s^|jƒtjkrotjdƒdS|jƒ}|j    ƒ}t
d|||gƒ}|j ddd|t |ƒƒdS(Ns¼Ò×å±ä¸ü£¬ÎÞ¶ÓÎé²»¹Ü£¡s¼Ò×å±ä¸ü£¬²»ÔÚ×é¶Ó¸±±¾²»¹Ü£¡t FamilyChangeiR‰( R2RRR¾RdRÀRÁRÂRR€RìRþR‹(RtfamilyIDRRÆRR—((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyR´ s     cCs‚x{t|jƒƒD]g}|j|ƒ}|jƒ}|dkrFqn|jƒ|jƒkr|jƒ|jƒkrt    SqWt
S(N( R¢R£R¤RR-RdRzR±R{R!R?(R8R¶RR¹((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRÆ s  0c
Cs{tjƒj|ƒ}|jƒ}|dkr1dS|jƒ}i}|jƒ}|j}|||f}    xŠt|j    ƒƒD]v}
|j
|
ƒ} | dksz| jƒdkr³qzntj | ƒ} | sÎqzn| jƒ} | | j ƒg|| <qzW|j ƒ}|igtj|    <xa|D]Y} || \} }t||| gƒ}tjƒj|d| | d|t|ƒ|ƒqWdS(NitTeamMemFuncData(RRJRKRQR-R2RtTeamMemFuncTypeR¢R£R®RëRîRüR
tg_queryTeamMemFuncDataDictRìRíR‹(RSRTRRR8Rt queryMemDictRt queryFuncTypeR:R¶RôRõRõtqueryMemIDListR÷Rò((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnQueryTeamMemFuncDataß s4           c Cs§|d \}}}t|ƒdkr5t|dƒnd}tjd|||||fƒ|||f}|tjkr}dStj|\}}|||<x|D]}    |    |kr¡dSq¡Wtjj|ƒ\}}tjƒj|ƒ}
|
sòdStjd||ƒt    j
ƒ} || _ g| _ xZ|j ƒD]L\}}t    jƒ} || _|| _t| jƒ| _| j j| ƒq1Wt| j ƒ| _tj|
| ƒdS(NiRásbMapServer_TeamMemFuncData srcPlayerID=%s,queryFuncType=%s,teamID=%s,memPlayerID=%s,queryFuncRet=%ss-Í¨ÖªÍæ¼Ò²éѯ¶ÓÔ±¹¦ÄÜÊý¾Ý½á¹û: queryRetDict=%s(R‹RìRRR
R RRJRrR4ttagGCTeamMemFuncDataListRŸtMemFuncDataListRttagGCTeamMemFuncDataRqt 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
R<RRRRcR=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    GetInitOKRtR†RRRv( RSRTRRtlvlimitt    inviteCntRWt curInviteCntt playerManagerRYt    indexListR¶Ry((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pytOnInvitePlayerJoinTeamByLVR s<                  cCs5i|d6|d6}|j|ƒtjd|ƒdS(Nt    EventNameR tTeam_GameServer(RîtDataRecordPackt SendEventPack(RïRtdataDictRð((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyRht s (}R8R^RGRaRãR4RÉRtRŠRøR
RRÁR«RHR%R½R°RýRÛR¼RÖtTeamMemPrepareState_NoneRÚRØRxR3RRR    R RRRRRR#R$R?RR1R<R=R*RBRCRERARYR!RRR{RR}RvRwRkR-RPRÎRÌRÒRÑR‡RàRlRùRýRþR,R7R    RRiRRR%RÙR'RRÚR R5RAR@RšRCRERZRnRrRtRzRƒRˆR‹RŸR©R´RµR®R­RªRÍRRÔR2R×RÄRÃR¯R RÿRûR‡R€R›RRR¤R±R³R²RÆRh(((sUE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerTeam.pyt<module>sæ                                                                                                          (    ,        "    @    ;    ' C        H            /V        -             
2 "        = 2        U        (        3            &                        V    S             9    ]    !    0    8    ;    6        L    Q    J        R        5             J    j         U    2    =                !    $        *    "