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
Ó+0hc@seddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZdZdZdZdZdZeddNƒZ\ZZZeZeZedƒ\Z Z!Z"Z#dZ$eddOƒ\Z%Z&Z'edƒ\Z(Z)Z*Z+dZ,edƒ\Z-Z.Z/Z0d    e1fd
„ƒYZ2d dPd „ƒYZ3d e2fd„ƒYZ4ddQd„ƒYZ5ddRd„ƒYZ6ddSd„ƒYZ7ddTd„ƒYZ8d„Z9d„Z:d„Z;d„Z<d„Z=d„Z>d„Z?d„Z@d„ZAd „ZBd!„ZCd"„ZDd#„ZEd$„ZFeGd%„ZHd&„ZId'„ZJd(„ZKd)„ZLd*„ZMdd+„ZOd,„ZPd-„ZQd.„ZRd/„ZSd0d0d0e%d1„ZTd2„ZUd0d3„ZVid0d4„ZWd0d0id0dd5„ZXd0d0d0d0dd6„ZYd7„ZZd8„Z[d9„Z\d:„Z]d;„Z^d<„Z_d=„Z`d>„Zad?„Zbd0d0d@„ZcdA„Zdd0dB„ZeddC„ZfdddD„ZgdE„ZhdF„ZidG„ZjgdH„ZkdI„ZldJ„ZmdK„ZndL„ZodM„ZpdS(UiÿÿÿÿNiiciiii i”5wtFamilyGCZFightercBs#eZd„Zd„Zd„ZRS(cCs1d|_d|_d|_d|_d|_dS(Ni(t    fighterIDthpthpMaxthpBaset
fightPower(tself((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt__init__es                     cCs |jdkS(Ni(R(R((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytIsDeadmscCs>|j||_t|jd|dƒ|_|j|_dS(NidgY@(RRtintRR(RthpFightPowerMultitaddHPPer((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytRefreshFighterAttros (t__name__t
__module__RRR (((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRbs        tFamilyGCZCityWallcBsweZddddd„Zd dd„Zd„Zd„Zd„Zd„Zd„Z    d d„Z
d    „Z d
„Z RS( icCs»||_d|_d|_||_||_||_g|_g|_d|_t    ƒ|_
d|_ d|_ d|_ d|_d|_d|_i|_i|_i|_g|_dS(Ni(tzoneIDtbatTypetgroupNumtcityIDtcityLVtfamilyIDtguardMemIDListt fighterIDListt guardNPCCountRtguardNPCtattrLockRRRtfightPowerTotalt    atkedTimet atkReportDictt defReportDicttfighterHurtDicttinCityPlayerIDList(RRRRR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRxs*                                                                             cCs¢d|_||_g|_||_|jrO|jtdd|jƒ7_n|rg|j|7_nd|_i|_i|_i|_g|_    |j
ƒdS(Nii( RRRRtrangeRRRRR tRefreshCityAttr(RRRR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt ResetDefense’s                    "                    
cCs|jƒd|_dS(Ni(R"R(R((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt OnFightStart¤s
    cCs!|jdks|j rtStS(Ni(RRtTruetFalse(R((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytIsBrokenªscCs|js dS|jdS(Ni(R(R((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetCurGuardID°s    cCs–|js dS|jjdƒ|js*dS|jd}|j|ƒr|jj|j_tjd||jj|jjfƒntjd|ƒ|S(Nis     Çл»ÏÂÒ»¸öNPCÊØÎÀ: %s, %s/%ss    Çл»ÏÂÒ»¸ö·ÀÊØÈËÔ±: %s(Rtpopt
IsGuardNPCRRRt    GameWorldtDebugLog(Rt nextGuardID((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt    NextGuard¶s         )cCs|jdko|dkS(Nii'(R(RR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR*Åsc     CsL|jr*tjd|j|jfƒdS|dkrB||_n|j}|j}d}tjd|ƒ}|r|j    ƒ}ntj
ddƒ}tj d||||fƒt ƒj |jƒ}d|_d|_d|_g}xÛ|jD]Ð}|j|ƒr&|j}    tj
ddƒ|    _n|j|ƒ}    |    j||ƒ|j|    j7_|j|    j7_|j|    j7_|j|    j|gƒtj d|||    j|    j|    j|jfƒqðW|jƒg|D]}
|
d^qÕ|_|j|_tj d    |||j|j|jfƒtj d
|ƒtj d |jƒtS( Ns9ÏÉÃ˹¥³ÇÕ½ÒѾ­Ëø¶¨Õ½¶·ÊôÐÔ²»ÄÜË¢ÐÂ! cityID=%s,familyID=%sitCrossActFamilyGCZCampLVt FamilyGCZCityisLÏÉÃ˹¥³ÇսˢгdzØÊôÐÔ: cityID=%s,cityLV=%s,addHPPer=%s,hpFightPowerMulti=%stFamilyGCZXiuluosR    ³ÉÔ±ÊôÐÔ: cityID=%s,fighterID=%s,fightPower=%s,hpBase=%s,hpMax=%s,cityHPMax=%ssG    ³Ç³ØÊôÐÔ: cityID=%s,cityLV=%s,fightPowerTotal=%s,hpBase=%s,hpMax=%ss        ·ÀÊØÈËÔ±Õ½Á¦IDÅÅÐò=%ss        ·ÀÊØÈËÔ±IDÅÅÐò˳Ðò=%s(RR+tErrLogRRtNoneRt IpyGameDataPYtGetIpyGameDatat GetAddHPPert
GetFuncCfgR,tGetFamilyGCZMgrt
GetActZoneRRRRRR*RRtGetZoneJoinMemberR tappendtsortRRR%( RRRR t campIpyDataR
tzonetsortFighterIDListRtfightertf((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR"ÉsJ                                  *
  )c    CsR||jkr"|jj|ƒnt|j|j|j|jdi||6ƒdS(NttoPlayerServerDict(R R;tSync_FamilyGCZBatCityInfoRRRR(RtplayerIDt serverGroupID((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytSetPlayerInCityûs,cCs&||jkr"|jj|ƒndS(N(R tremove(RRD((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytSetPlayerOutCitysN( R RRR3R#R$R'R(R.R*R"RFRH(((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRus                     2    tFamilyGCZMembercBseZdddd„ZRS(icCsžtt|ƒjƒ||_d|_d|_||_||_||_d|_    d|_
d|_ d|_ d|_ d|_d|_d|_d|_dS(Nit(tsuperRIRRRRRDRRtfmLVt
playerNametjobtrealmLVtfacetfacePictlvttotalHurtValuet
awardState(RRRRD((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR    s"                                                            (R RR(((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRIstFamilyGCZFamilycBsSeZddd„Zd„Zd„Zed„Zd„Zed„Zd„Z    RS(icCs¸||_||_d|_d|_d|_d|_i|_d|_d|_d|_    d|_
d|_ d|_ d|_ d|_g|_i|_t|||j|ƒ|_dS(NiiRJ(RRRRtcampLVtcampExpt roundInfoDictt
sortWeightt
familyNameRRtleaderIDt
leaderNametemblemIDtserverIDRtjoinMemberIDListtmemAddCampExpInfoRtcityWall(RRR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRs&                                                                    cCsQd|_d|_|jj|j|jƒ|jj|_t|j|j    ƒdS(Ni(
RRRaR#RVR_RtSync_FamilyGCZCampInfoRR(R((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnRoundFamilyReset6s         cCs3|jjƒ|jj|_t|j|jƒdS(N(RaR$RRbRR(R((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnRoundFamilyFightStart?s cCsD|jj|jƒ}|jj|_|r@t|j|jƒn|S(N(RaR"RVRRbRR(RtisNotifytisOK((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytRefreshFamilyAttrFs
cCs:d}x-|jjƒD]}||jddƒ7}qW|S(Nitscore(RXtvaluestget(Rt
totalScoretinfo((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetTotalScoreNsc
Cs||jkr3tjd|j||jfƒdS|j}|j}t||tjƒ}|}t    j
d|ƒ}|r…|j ƒnd}    t    j d|dƒ}
tj d|j|||||||    fƒx|    dkr_||    kr_|
r_|d7}||    8}t    j
d|ƒ}|r&|j ƒnd}    t    j d|dƒ}
tj d|||    fƒqÐW||_||_|jj|dƒ||j|<g} t} ||krèt} tj d|j||fƒ|jtƒrèd} qèn|r
t|j|jd| ƒn| S(    NsG·ÇÏÉÃ˹¥³ÇÕ½Ëø¶¨³ÉÔ±ÎÞ·¨¼Ó´ó±¾Óª¾­Ñé! familyID=%s,playerID=%s not in %sR/iiseÔö¼Ó´ó±¾Óª¾­Ñé: familyID=%s,playerID=%s,addCampExp=%s,campLV-Exp=%s-%s,updLV-Exp=%s-%s,lvupNeedExp=%ss9    ´ó±¾ÓªÉý¼¶: updCampLV=%s,updCampExp=%s,lvupNeedExp=%ss+´ó±¾ÓªµÈ¼¶±ä¸ü! familyID=%s,campLV=%s to %st defMemIDList(R_R+R2RRVRWtmintChConfigtDef_UpperLimit_DWordR4R5tGetLVUPNeedExptGetIpyGameDataNotLogR,R`RjR&R%RgR3RbR( RRDt
addCampExpReRVRWt
updCampExpt    updCampLVR=t lvupNeedExpt nextIpyDataRntisLVUP((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt
AddCampExpUs@             #!
 
           cCsLi}tjƒ}x3|jD](}|j|ƒ}|r|||<qqW|S(N(tChPlayertGetOnlinePlayerMgrR_tGetOLPlayerServerGroupID(RtolDictt    onlineMgrRDRE((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetOLMemServerGroupIDDict‚s (
R RRRcRdR%RgRmRzR€(((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRUs                  -tFamilyGCZBatGroupcBskeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd de
d„Z d    „Z d
„Z RS( cCsL||_||_||_i|_g|_d|_d|_g|_dS(Ni(RRRt cityWallDictt_FamilyGCZBatGroup__cityIDListt#_FamilyGCZBatGroup__topHurtPlayerIDt&_FamilyGCZBatGroup__topHurtPlayerValuetinBatScenePlayerIDList(RRRR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRs                                cCs¢|jr"|jr"|j|jfSxm|jjƒD]\}|j|ƒ}|sSq2nx8|jjƒD]'\}}||jkrc||_qcqcWq2W|j|jfS(N(R„R…R‚tkeyst GetCityWallRtitems(RRRaRDt    hurtTotal((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetTopHurtPlayerIDValueœscCs|||_|_dS(N(R„R…(Rt topPlayerIDt topHurtValue((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytUpdTopHurtPlayerIDValueªscCs%|js|jjƒ|_n|jS(N(RƒR‚R‡(R((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetCityIDList®s    cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R3R‚R&R(RRRa((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRˆ³s  cCsag}xT|jƒD]F}|j|ƒ}|s4qn|j}||kr|j|ƒqqW|S(N(RRˆRR;(Rt familyIDListRtcityR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetGroupFamilyIDList¼s     cCsítƒj|jƒ}|j|ƒ}|s.dS|j|_|j|_xD|jD]9}|j|ƒ}|sqqPn|j|_|j|_qPW|j|j_|j|j_|jj    }|j|j
|<||j kré|j j |ƒn|S(N( R8R9RtGetZoneJoinFamilyRRR_R:RaRR‚RƒR;(RRR>t
joinFamilyRDt
joinMemberR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytAddGroupFamilyÇs&    icCs”t|dƒ}t|j||ƒ}|j|_|j|_|j|d|ƒ|rad|_n||j|<||jkr|jj    |ƒn|S(s    ´´½¨×Ô¶¨Òå³Ç³Ø£¬ÈçÐÞÂÞ³Ç
        @param cityID: ×Ô¶¨Òå³Ç³ØID
        @param cityLV: ³Ç³ØµÈ¼¶
        @param guardMemIDList: ²¼·ÀÍæ¼ÒIDÁбí
        @param guardNPCCount: ²¼·ÀϵͳNPCÊýÁ¿
                        ³Ç³Ø×ÜÊôÐÔ£º (²¼·ÀµÄÍæ¼Ò + ²¼·ÀϵͳNPC)ÊôÐÔ×ܺÍ
        idRi(
RoRRRRR#RR‚RƒR;(RRRRRt
isAttrLocktnewCity((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytCreateCityWallÞs    cCsL||jkr"|jj|ƒnt|j|j|jdi||6ƒdS(NRB(R†R;tSync_FamilyGCZBatSceneInfoRRR(RRDRE((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytSetPlayerInSceneòs&cCs&||jkr"|jj|ƒndS(N(R†RG(RRD((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytSetPlayerOutSceneøsN(R RRR‹RŽRRˆR’R–R3R&R™R›Rœ(((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRŒs                                      t FamilyGCZZonecBs’eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d d d d „Z d d d d d „ZRS(cCs‚||_d|_g|_i|_i|_i|_d|_d|_i|_i|_    d|_ g|_ i|_ i|_dS(Ni(Rt joinFamilyCnttlockFamilyIDListtjoinFamilyDicttjoinMemberDicttroundGroupDicttroundNumt    roundOvertfamilyGuessDicttplayerGuessDictR3tstatGuessRetDicttguessFinalFamilyIDListtinBatScenePlayerIDDicttinBatCityPlayerIDDict(RR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRs                                                        cCsj||_d|_i|_i|_i|_x6|jD]+}|j|ƒ}|sXq7n|jƒq7WdS(Ni(R£R¤R¢R©RªRŸR“Rc(RR£RR”((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt OnRoundResets                    cCs=x6|jD]+}|j|ƒ}|s+q
n|jƒq
WdS(N(RŸR“Rd(RRR”((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnRoundFightStart s cCsO||jkri|j|<n|j|}t|j||ƒ}|||<|S(N(R¢RR(RRRt groupNumDicttbatGroup((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt AddBatGroup)s  
cCs`||jkri|j|<n|j|}|j|dƒ}|dkr\tr\tƒ}n|S(N(R¢RjR3R&R(RRRR­R®((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetBatGroup1s  cCs|jS(N(RŸ(R((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetZoneLockFamilyIDList<scCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R3R R&RU(RRR”((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR“=s  cCs€d}||jkr%|j|}nt|j|ƒ}||j|<||jkrf|jj|ƒntƒj||jƒ|S(N(R3R RURRŸR;R8tSetFamilyIDZoneID(RRR”((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytAddZoneJoinFamilyFs cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R3R¡R&RI(RRDR•((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR:Ss  cCsad}||jkr%|j|}n"t|j||ƒ}||j|<tƒj||jƒ|S(N(R3R¡RIRR8tSetPlayerIDZoneID(RRDRR•((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytAddZoneJoinMember\s cCs7i}x*|jjƒD]}|j|jƒƒqW|S(N(R RitupdateR€(RR~R”((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetOLServerGroupIDDictgsic    Cs‘xŠ|jjƒD]y\}}xj|jƒD]\}|j||ƒ}|sMq)n||kse||kru|j|ƒq)|j||ƒq)WqWdS(N(R¢R‰R‡R°RœR›(    RRDRRREtbTypet    groupDicttgNumR®((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytSetPlayerInBatScenensc CsÏxÈ|jjƒD]·\}}x¨|jƒD]š}|j||ƒ}    |    sMq)nxs|    jƒD]e}
|    j|
ƒ} | s{qZn||ksŸ||ksŸ||
kr¯| j|ƒqZ| j||ƒqZWq)WqWdS(N(R¢R‰R‡R°RRˆRHRF( RRDRRRRER¸R¹RºR®tcIDRa((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytSetPlayerInBatCity{s$(R RRR«R¬R¯R°R±R“R³R:RµR·R»R½(((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRýs                                                            t FamilyGCZMgrcBsPeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    RS(cCsi|_i|_i|_dS(N(tzoneDicttfamilyIDZoneIDDicttplayerIDZoneIDDict(R((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRs            cCs||j|<dS(N(RÀ(RRR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR²•s cCs||j|<dS(N(RÁ(RRDR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR´™s cCs•|jj|dƒx<|jjƒD]+\}}||kr#|jj|ƒq#q#Wx<|jjƒD]+\}}||krb|jj|ƒqbqbWdS(N(R¿R)R3RÀR‰RÁ(RRRtfZoneIDRDtpZoneID((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt ClearGCZZones  cCsBd}||jkr%|j|}nt|ƒ}||j|<|S(N(R3R¿R(RRR>((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR9§s   cCsYd}||jkrC|j|}|j|ƒ}|j|ƒ}ntrUtƒ}n|S(N(R3RÀR9R“R&RU(RRR”RR>((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetJoinFamily±s  cCstd}||jkr^|j|}|j|ƒ}|j|ƒ}|rp|j|jƒ}qpntrptƒ}n|S(N(R3RÁR9R:R“RR&RU(RRDR”RR>R•((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetJoinFamilyByPlayerID¼s  cCsYd}||jkrC|j|}|j|ƒ}|j|ƒ}ntrUtƒ}n|S(N(R3RÁR9R:R&RI(RRDR•RR>((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetJoinMemberÉs  (
R RRR²R´RÄR9RÅRÆRÇ(((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR¾Œs                
    
          cCs(tj}|s$tƒ}|t_n|S(N(t
PyGameDatatg_familyGCZMgrR¾(tmgr((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR8Ôs
         c#CsîtjƒsdStƒ}tjƒ}|jtjƒ}x°|jƒD]¢\}}|s\qDn|d}|j    ƒ}|j
ƒ}|j |ƒ|j |ƒ}||_ |jdgƒ|_|jdiƒ|_|jdiƒ|_|jddƒ|_|jddƒ|_tjd||j t|jƒ|jfƒ|jtj|ƒ}    x«t|    dƒD]š\}
} | j    ƒ} | jƒ} | jƒ}| jƒ}| jƒ}| j
ƒ}|j| ƒ}| |_||_||_ ||_!|jd    d
ƒ|_"|jd dƒ|_#|jd d
ƒ|_$|jd dƒ|_%|jddƒ|_&|jddƒ|_'|jddƒ|_(|jdgƒ|_)|jdiƒ|_*|jdiƒ|_+|jddƒ|_,tjd||
| |j |j!|j+fƒq]W|jtj-|ƒ}x½t|dƒD]¬\}}|j    ƒ}|jƒ} |jƒ} |jƒ}|jƒ}|j
ƒ}|j.|| ƒ}| |_||_||_/|jdd
ƒ|_0|jddƒ|_1|jddƒ|_2|jddƒ|_3|jddƒ|_4|jd dƒ|_%|jddƒ|_5|jddƒ|_6|jddƒ|_7|jddƒ|_8|jddƒ|_9|jd dƒ|_:tjd!|| |||j7|j8|j5fƒq W|jtj;|ƒ}xþt|dƒD]í\}}|j    ƒ}|jƒ} |jƒ}|jƒ}|jƒ} |j<ƒ}|j
ƒ} |j=| |ƒ}!|!s‚|j>| |ƒ}!n|!sŽqõn| r¤|!j?| ƒn|!j@||ƒ|!jA|ƒ}"|"sÏqõn||"_B||"_C| jd"gƒ|"_D| jd#gƒ|"_E| jd$dƒ|"_F| jddƒ|"_7| jddƒ|"_8| jddƒ|"_9| jddƒ|"_(| jd%iƒ|"_G| jd&iƒ|"_Htjd'|| ||||"jI|"j7|"j8t|"jEƒ|"jEf
ƒqõWqDWdS((NiRŸR¥R¦R£R¤s6¼ÓÔØ·ÖÇø¼Ç¼! zoneID=%s,joinFamilyCnt=%s,lockCnt=%s,%siRZRJR[R\RRR]R^RR_R`RXRYsG    ¼ÓÔØ·ÖÇøÏÉÃË zoneID=%s,%s,familyID=%s,campLV=%s-%s,roundInfoDict=%sRMRNRORPRQRSRTRRRRsP    ¼ÓÔØ·ÖÇø³ÉÔ± zoneID=%s,familyID=%s,%s,playerID=%s,hp=%s/%s,totalHurtValue=%sRRRRRsf    ¼ÓÔØ·ÖÇø³Ç³Ø zoneID=%s,batType=%s,batType=%s,%s,cityID=%s,familyID=%s,hp=%s/%s,fighterIDList=%s,%s(JR+t IsCrossServerR8t PyDataManagertGetDBGameRecDataManagertGetGameRecDataDictt ShareDefinetDef_GameRecType_FamilyGCZMgrR‰t    GetValue1tGetUserDataDictRÄR9RžRjRŸR¥R¦R£R¤tLogtlentGetGameRecDataListt#Def_GameRecType_FamilyGCZJoinFamilyt    enumeratet    GetValue2t    GetValue3t    GetValue4t    GetValue5R³RRRVRWRZR[R\RRR]R^RR_R`RXRYt#Def_GameRecType_FamilyGCZJoinMemberRµRLRMRNRORPRQRSRTRRRRt!Def_GameRecType_FamilyGCZCityWallt    GetValue6R°R¯R–R™RˆRRRRRRRR(#tgczMgrt
gameRecMgrt recDataDictRtzoneRecDataListt zoneRecDataRžt zoneDataDictR>t familyRecListtfNumt familyRecDataRRRRVRWtfamilyDataDictR”t memberRecListtpNumt memberRecDataRDRLtplayerDataDictR•tcityWallRecListtcNumt cityRecDataRRRt cityDataDictR®R‘((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt OnLoadPyDataÛsÔ      
       ,                          '                      *                   CcCs¾tjƒsdStjƒ}|jtjƒ|jtjƒ|jtjƒ|jtj    ƒt
ƒ}|j j ƒ}tj d|ƒx2|D]*}|sžqŒn|j|ƒ}|jtj|ƒ}|j|jƒ|jƒ}i|d6|jd6|jd6|jd6|jd6}|j|ƒtj d||jt|ƒ|fƒxÌ|jjƒD]»\}}    x¬|    j ƒD]ž}
|j||
ƒ} | s“qon| jƒ} xkt| dƒD]Z\} }| j|ƒ}|sÖq¯n|jtj    |ƒ}|j|ƒ|j|j ƒ|j!|j"ƒ|j#|j$ƒ|j%|j&ƒ|j'|j(ƒi
|j)d    6|j*d
6|j+d 6|j,d 6|j-d 6|j.d6|j/d6|j0d6|j1d6|j2d6}|j|ƒtj d|||
| ||j&|j(|j,|j-t|j*ƒ|j*f ƒq¯WqoWqVWxžt|dƒD]\}}|j3|ƒ}|sLq%n|jtj|ƒ}|j|ƒ|j|j ƒ|j!|j"ƒ|j#|j4ƒ|j%|j5ƒi |j6d6|j7d6|j8d6|j9d6|j:d6|j;d6|j/d6|j<d6|j=d6|j>d6|j?d6}|j|ƒtj d||||j4|j5|j>fƒxTt|j<dƒD]@\}}|j@|ƒ}|s•qnn|jtj|ƒ}|j|ƒ|j|ƒ|j!|j ƒ|j#|j"ƒ|j%|jAƒi |jBd6|jCd 6|jDd!6|jEd"6|jFd#6|j9d6|jGd$6|jHd%6|j,d 6|j-d 6|j.d6|jId&6}|j|ƒtj d'|||||j,|j-|jGfƒqnWq%WqŒWdS((Ns%±£´æÏÉÃ˹¥³ÇÕ½·ÖÇø¼Ç¼! zoneIDList=%sRŸR¥R¦R£R¤s7----- zoneID=%s,joinFamilyCnt=%s,lockFamilyIDList=%s,%siRRRRRRRRRRss    ±£´æ·ÖÇø³Ç³Ø zoneID=%s,batType=%s,groupNum=%s,%s,cityID=%s,familyID=%s,attrLock=%s,hp=%s/%s,fighterIDList=%s,%sRZR[R\RRR]R^R_R`RXRYsG    ±£´æ·ÖÇøÏÉÃË zoneID=%s,%s,familyID=%s,campLV=%s-%s,roundInfoDict=%sRMRNRORPRQRSRTRsT        ±£´æ·ÖÇø³ÉÔ± zoneID=%s,familyID=%s,%s,playerID=%s,hp=%s/%s,totalHurtValue=%s(JR+RËRÌRÍtDelGameRecDataByTypeRÏRÐRÖRÜRÝR8R¿R‡RÓR9tAddGameRecDatat    SetValue1RžR±R¥R¦R£R¤t SetUserDataRÔR¢R‰R°RR×Rˆt    SetValue2Rt    SetValue3Rt    SetValue4Rt    SetValue5Rt    SetValue6RRRRRRRRRRRR“RVRWRZR[R\RRR]R^R_R`RXRYR:RLRMRNRORPRQRSRTR(RàRßt
zoneIDListRR>RãRŸtzoneDataRR¹RR®t
cityIDListRîRR‘RïtcityDataRæRR”Rçt
familyDataRêRDR•Rët
memberData((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt OnSavePyDataXsœ         &  !(!     M !( ,  !(
+     2cCsht|ƒ\}}|sdSt||ƒt|i||6ƒt||i||6ƒt|||ƒdS(N(tGetPlayerActJoinInfotSync_FamilyGCZActInfotSync_FamilyGCZBatGroupInfoRbtSync_FamilyGCZGuessInfo(RER^RDRR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnPlayerLogin_CrossLogic²s cCs4|dks|tkr"d|fS|d|dfS(Ni
i(tFamilyGCZState_Award(tstate((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetRoundState¿s
cCst||ƒt|ƒdS(N(tDoMailReissueAwardtDelFamilyGCZZone(tcfgIDRtipyDataR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnCrossActIDChangeÅs 
cCs±tjƒ}|jtj|ƒ|jtj|ƒ|jtj|ƒ|jtj|ƒtjƒ}|j    tj
|ƒ|j    tj |ƒ|j    tj |ƒt ƒj|ƒdS(N(RÌRÍtDelGameRecDataByTypeIDRÏRÐRÖRÜRÝtGetCrossBillboardManagertClearBillboardtDef_CBT_FamilyGCZScoretDef_CBT_FamilyGCZPlayerHurttDef_CBT_FamilyGCZRoundHurtR8RÄ(RRàt billboardMgr((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR Ës  c    Cs |jƒ}tjtj|ƒr/t|ƒdS|tkrIt|ƒdS|tkrct|ƒdSt    |ƒ\}}|dkr|t
krÂ|dkr©t ||ƒnt |||j ƒƒq|tkrótƒ}|j|ƒ}|jƒq|tkrt|ƒqnt||ƒdS(Nii(t    GetZoneIDtCrossActionControltIsActFlowStateErrorRÏtCrossActName_FamilyGCZRtFamilyGCZState_PublicityRt DoStartAwardR    tFamilyGCZRoundState_GrouptDoLockActFamilyt DoRoundGrouptGetJoinFamilyCnttFamilyGCZRoundState_FightR8R9R¬tFamilyGCZRoundState_Overt DoRoundOvertDoGenerateGuess(    R tactIDtdbStateRRtcurRoundt
roundStateRßR>((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnCrossActStateChangeÜs0 
 
 
           c CsTd\}}||f}tƒ}|j|ƒ}|rS|j|j}}||fStjtj|ƒƒ}|su|Sd}|jddƒ}|rÆtj    ƒj
|ƒ}    |    rÆ|}|    j ƒ}qÆn|sêtj |jddƒƒ}nt jtj|ƒ}
|
s|
jtjƒ r|S|
jtjƒ} | rJ| jddƒ}n||fS(sª»ñÈ¡Íæ¼Ò²ÎÓëµÄ»î¶¯ÐÅÏ¢£¬Èç¹û·µ»ØµÄÓзÖÇøID¼°»î¶¯ID£¬´ú±íÒ»¶¨ÊǻÖеÄ
    ±ØÐëÊÇzoneID¡¢actID¶¼Ò»Ö±²ÅÄÜÊÓΪͬһ¸ö»î¶¯£¬ÇÒactState·Ç0
    @return: [zoneID, familyID]
    itFamilyIDtAccIDRJtZoneID(ii(R8RÇRRtPlayerViewCachetGetCachePropDataDictt FindViewCacheRjR+tGetFamilyManagert
FindFamilyt GetServerIDtGetAccIDServerIDRtGetCrossActInfoByServerGroupIDRÏRt ActKey_StatetActKey_IpyDataInfo( RDRRt
defaultRetRßR•t    cacheDictt joinServerIDt familyIDNowt    curFamilytactInfot ipyDataInfo((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRs4      
    cCsF|s
dS|jƒ}tƒ}|j|ƒ}|s8dS|j}tjtj|ƒ}|s`dS|jtj    ƒ}|s|dSt
|ƒ\}}    t j d|||||    fƒ|j |ƒ}
x‚|D]z} |
j| ƒ} | såqÄn|j| ƒ} | sqÄnt| jtj| ƒƒ| _t j d| | j| jfƒqÄWdS(NsP¸üÐÂÏÉÃ˹¥³ÇÕ½ÏÉÃ˳ÉÔ±: familyID=%s,zoneID=%s,state=%s,curRound=%s,roundState=%ss0    playerID=%s,joinFamilyID=%s,updFightPower=%s(tGetIDR8RÅRRtGetCrossActInfoByZoneIDRÏRRjR4R    R+R,R9R:t
FindMembertmaxRt PlayerFamilytGetMemberFightPowerR(R:t updMemIDListRRßR”RR;RR&R'R>RDR•t    curMember((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnCrossJoinFamilyMemberUpd4s8              $c    Cs×|jƒ}|jƒ}|jƒ}tjd|||fƒtj||ƒd}t|ƒtƒ}|j    |ƒ}||_
xGt |dƒD]6\}}    |    j ƒ}
|    j ƒ} |j|
ƒ} tj|    ƒ} | jddƒ| _| jddƒ| _| jddƒ| _| jddƒ| _| jd    dƒ| _| jd
dƒ| _| jd dƒ| _d| _| j}xtd|    jƒƒD]}|    j|ƒ}|jƒ}|s¹qŒntj|ƒ}|j||
ƒ}|jddƒ|_|jddƒ|_|jd dƒ|_ |jd dƒ|_!|jddƒ|_"|jddƒ|_#|jd dƒ|_$|jddƒ|_%| j&j'|ƒqŒWtjd||
| |t(| j&ƒ| j&fƒqWt)|ƒdS(NsFÏÉÃ˹¥³ÇÕ½Ëø¶¨²ÎÓëÏÉÃËÃûµ¥: zoneID=%s,serverIDList=%s,joinFamilyCnt=%siitNameRJtLVtLeaderIDt
LeaderNametEmblemIDtServerIDt
FightPowertJobt OfficialRanktFacetFacePictFamilyLVs>    %s,familyID=%s,serverID=%s,fightPowerTotal=%s,memCnt=%s,%s(*RtGetServerIDRangeListRR+RÓRAtSortCrossFamilyR R8R9RžR×R=R1R³tGetCrossFamilyBaseInfoRjRZRRR[R\R]R^RRVR!tGetCounttGetAtt GetPlayerIDtGetCrossFamilyMemInfoRµRMRNRORPRQRRLR_R;RÔR(R$R Rt serverIDListRžtsortFamilyListRßR>tnumtfamilyRR^R”tfamilyBaseInfoRtitmemberRDt memBaseInfoR•((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRXsV   
                       *
c Cstjd|||fƒt|ƒtjddiƒ}t|ƒ|krOdS|t|ƒ}t|ƒ|krudS|t|ƒ}|}tƒ}|j|ƒ}i}    |dkrÍ|d}
|jƒ} xë| D]ã} |j    | ƒ} | sóqÒn| j
j |
iƒ}|j dt ƒ}|j dt ƒ}|tkrNt|dtƒ}n(|tkrpt|dt ƒ}n|}||    krg|    |<n|    |}| |krÒ|j| ƒqÒqÒWtjd|    ƒntjƒ}|jtj|ƒ|j|ƒxútD]ò}t|ƒ|krqn|t|ƒd}|sXtjd|||fƒqng}|dkrŸ|jƒ}tjd    |||t|ƒ|fƒne||    krÞ|    |}tjd
|||t|ƒ|fƒn&tjd |||t|ƒ|fƒx+tdd|ƒD]}|j||ƒqWi}g}xO|D]G} |j    | ƒ} | sfqEn|j| ƒ| j| j ƒg|| <qEW|j!d d „dt"ƒg|D]}|j#^q°}t|ƒ}tjd|||fƒd}xþt$|ƒD]ð\}} |d7}||kr)d}n|j%||ƒ}|sdtjd|||| fƒqþn|j&| ƒ} | sœtjd|||| fƒqþn|dd|d||| _'t(| ƒtjd||||| || fƒqþWqWt)|ƒt*|t"ƒdS(NsE========== ÏÉÃ˹¥³ÇÕ½ÂִηÖ×é: zoneID=%s,curRound=%s,joinFamilyCnt=%stFamilyGCZGroupSetiRt updownStatesÉÏÒ»ÂÖÉý½µ¼¶½áËã»ã×Ü: %sis4±¾ÂÖÕ½³¡²»ÐèÒª·Ö×é: zoneID=%s,curRound=%s,batType=%ssJÊ×ÂÖÕ½³¡·Ö×éÖ±½ÓÈ¡·ÖÇøËø¶¨ÏÉÃËÃûµ¥: zoneID=%s,curRound=%s,batType=%s,%s,%ssJ·ÇÊ×ÂÖ·Ö×éÖ±½ÓÈ¡ÉÏÂÖ½ú±£½µÏÉÃËÃûµ¥: zoneID=%s,curRound=%s,batType=%s,%s,%ss@±¾ÂÖ·Ö×é¿ÉÄÜûÓÐÏÉÃËÃûµ¥: zoneID=%s,curRound=%s,batType=%s,%s,%stkeycSs|j|jƒfS(N(RRm(RA((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt<lambda>æstreverses5¿ªÊ¼·Ö×é°´ÅÅÐòºóµÄ˳ÐòÑ­»·²åÈëÿ×é! ÏÉÃËÊý:%s, %s, %ssFÏÉÃË·Ö×éʱս¶··Ö×é²»´æÔÚ! zoneID=%s,batType=%s,groupNum=%s,familyID=%ssDÏÉÃË·ÖÅäµ½Õ½¶··Ö×éʧ°Ü! zoneID=%s,batType=%s,groupNum=%s,familyID=%si'idsK    ÏÉÃËID·Ö×é: zoneID=%s,curRound=%s,batType=%s,groupNum=%s,familyID=%s,%s(+R+RÓR"R4tGetFuncEvalCfgtstrR8R9R±R“RXRjt BatType_MintUpdownState_KeeptUpdownState_UpRot BatType_MaxtUpdownState_DownR@R;RÌRRRÏRR«t BatTypeListRÔR2R!R¯RRmR<R%RR×R°R–RYtUndFamilyRoundHurtBillboardRtRefreshFamilyGCZBillboard(R&RRžRat roundSetDictt batTypeDictt groupValue1RßR>tnextBatTypeFamilyInfotpreRoundRŸRR”t    roundInfoRRbt nextBatTypetbatFamilyIDListRtgroupCntRtgroupFamilyDicttgroupFamilySortListRAtgroupFamilyIDSortListtgroupFamilyIDCnttindexR®((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRsª
     
 
      ) 
)&   
     !
/
 cCsp|s
dS|j}|j}|j}|j}d
\}}}|j}|j}    |j}
t|j|j    ƒ} t
|j j j ƒƒ} d} |j jr¶|j jt|j jƒ} nttjddƒƒ}tjd||| | |j j|j jfƒ|tj}|tj}|j}tjtj|
|||||||||d| d|dtd|d    |    ƒ dS( NiR0is^¼ÆËãÏÉÃËÂÖ´ÎÉ˺¦°ñÖµ: familyID=%s,familyRoundHurt=%s,memHurtTotal=%s,cityRemainHPPer=%s, %s/%st groupValue2tid2tautoSorttvalue3tvalue5(iii(RRZR[R\R]R^RtGetRoundHurtGroupIDRRtsumRaRRiRRtfloattevalR4tGetFuncCompileCfgR+R,RptDef_PerPointValueRYtCrossBillboardtUpdCrossBillboardRÏRR%(R”tdataIDtname1Rtname2ttype2tvalue1tvalue2RR‚RrR~t memHurtTotaltcityRemainHPPertfamilyRoundHurttcmpValuet    cmpValue2t    cmpValue3((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRns0                                 &      !+cCs]tjƒsdStƒ}|jjƒ}|s2dSx$|D]}|sKq9nt|ƒq9WdS(N(R+RËR8R¿R‡Ro(t    curMinuteRßRûR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnMinuteProcesss      c)Cs”|smtjtj|ƒ}|s%dS|jtjƒ}|sAdSt|ƒ\}}| sf|tkrmdSntƒ}|j    |ƒ}|j
r’dS|j }|s¥dSt j d|||fƒtjƒ}    |    jtj|ƒ}
|
jƒtjddiƒ} xŽ|jjƒD]}\} } | jt| ƒiƒ}|sMt jd| ƒnd„|jƒDƒ}| jƒ}x|D]}|j| |ƒ}|sšqvnt| |ƒ}|    jtj||ƒ}|jƒxºt|jƒƒD]¦}|j|ƒ}|j }|d}t j!||t"dƒ}|j#|ƒ}|s9qÞn|j$j|iƒ}|j%i| d6|d    6|d
6|d 6ƒ||j$|<qÞWqvWqW|j&ƒ}xÒ|D]Ê}|j#|ƒ}|sÄq£n|j'}|j(}|j)}|j*} d\}!}"}#|j+}$|j,}%|j-ƒ}&|j.}'t/j0tj1|||| |!|"|#|&d |'d |dt"d|$d|%d|j$ƒ    q£W|    jtj1|ƒ}(|(jƒdS(Ns2ÏÉÃ˹¥³ÇÕ½°ñµ¥ÅÅÐò! zoneID=%s,roundNum=%s,force=%sRais.ÏÉÃ˹¥³ÇÕ½Õ½³¡ÀàÐÍûÓÐÅäÖÃÃû´Î»ý·Ö! batType=%scSs%i|]\}}|t|ƒ“qS((R    (t.0tktv((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pys
<dictcomp>Os    iiRRtrankRhR•RR€RR‚tuserData(iii(2RR>RÏRRjR4R    R R8R9R¤R£R+R,RÌRtGetCrossBillboardRtSortDataR4RfR¢R‰RgR2R‡R°RƒRR!RUtAttIDtGetOrderValueByDictR&R“RXR¶R±RRZR[R\R]R^RmRYR‰RŠR()RtforceR;RR&R'RßR>R£RtplayerHurtBillObjtbatTypeScoreInfoRR¹t rankScoreInfot rankScoreDictt groupNumListRR®R~troundBillboardObjtbIndextbillDataRRœRhR”RuRŸR‹RŒRRRŽRRRR‚R”R•tfamilyScoreBillObj((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRo,s‚             
 
    
)                               !2
cCs0tƒ}|j|ƒ}|jr%dS|j}|s8dSt|tƒ|j}tjddiƒ}t    |ƒ|krydS|t    |ƒ}t    |ƒ|krŸdS|t    |ƒ}t
j ƒ}t j d||fƒxN|jjƒD]=\}    }
t    |    ƒ|krqân|t    |    ƒ} | d} t| ƒdkr<| dnd} |
jƒ}t j d||    | | |fƒx®|D]¦}|j|    |ƒ}|s™qunt|    |ƒ}|jtj||ƒ}t j d||    ||jƒfƒx5t|jƒƒD]!}|j|ƒ}|j}|j}|j}|tj|}|d}t}|| krh|    t krht!}n+| r“|t"| kr“|    t#kr“t$}n|j%|ƒ}|s®qön|j&j'|iƒ}|j(i|d6ƒ||j&|<t j d    ||    |||||fƒt)||ƒqöWquWqâWd|_dS(
NRais4========== ÏÉÃ˹¥³ÇÕ½ÂִνáËã: zoneID=%s,roundNum=%siis:zoneID=%s,batType=%s,upRank=%s,downRank=%s,groupNumList=%ss2zoneID=%s,batType=%s,groupNum=%s,groupFamilyCnt=%sRbsa    Éý±£½µ¼¶zoneID=%s,batType=%s,groupNum=%s,rank=%s,familyID=%s,updownState=%s,hurtValueTotal=%s(*R8R9R¤R£RoR%RžR4RfRgRÌRR+RÓR¢R‰RÔR‡R°RƒRžRÏRRUR!R R¡tCmpValuet    CmpValue2RpRˆRiRkRjtDef_PerGroupFamilyCntRhRlR“RXRjR¶Rb(RRßR>R£RžRaRpRqRRR¹t
batTypeSettupRanktdownRankR¨RR®R~t billboardObjRªR«RR”R•thurtValueTotalRœRbR”Ru((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR"ysp                  
"   #            
    "             c Csò|tjddƒkrdStƒ}|j|ƒ}tjddƒ}tjƒ}|jtj    |ƒ}t
|j ƒ|ƒ}xet |ƒD]W}|j |ƒ}    |    j}
|
|jkr‰d|j|
<tjd|||
fƒq‰q‰Wt|ƒdS(NtFamilyGCZGuessiiis:ÏÉÃ˹¥³ÇÕ½Éú³É¾º²Â±¸Ñ¡Ãûµ¥: zoneID=%s,index=%s,familyID=%s(R4RfR8R9R7RÌRRžRÏRRoRUR!R R¡R¥R+RÓR( RRRßR>t guessRankMaxRt scoreBillObjtguessCntR}R«R((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR#½s           !
cCst|ƒt|ƒdS(N(R"R(R((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÓs
 
cCs |d|S(Nid((RR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRƒÜscCs|d}|d}||fS(Nid((R~RR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetRoundHurtGroupIDInfoÝs
 
cCs$||d<tjtj||ƒdS(Nt
ActMsgType(t CrossRealmMsgtSendMsgToClientServerRÏtCrossServerMsg_FamilyGCZ(t
actMsgTypetmsgInfotserverGroupIDList((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytSend_CrossServerMsg_FamilyGCZâs
c Cs!|d}|dkr#t|ƒnú|dkr­|d}|d}|d}|d}|d}tƒ}|j|ƒ}    |    sƒdS|    j}
|j|
ƒ} |d    krºt|||ƒq|d
krß| j||||ƒq|d krû| j|ƒq|d kr#| j|||||ƒq|d kr?| j|ƒq|dkrs|rW|n|    j} t    ||| ƒq|dkr|r‹|n|    j} t
|||
| ƒqnp|dkrÉt ||ƒnT|dkråt ||ƒn8|dkrt ||ƒn|dkrt||ƒndS(NRºRztQueryt    queryTypeRDRRRiiiiiiitGCZAtktGuesstGetAwardtGMCMD(t__clientServer_AddCampExpR8RÇRR9t$__clientServer_QueryContributionInfoR»R½Rt__clientServer_QueryBatReportt&__clientServer_QueryGroupFamilyMemHurtt__clientServer_Atkt__clientServer_Guesst__clientServer_GetAwardt__clientServer_GMCMD( REtmsgDataRºRÃRDRRt tagFamilyIDRßR•RR>t repFamilyID((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytClientServerMsg_FamilyGCZçsP
 
 
 
 
 
                   cCs|d}|d}tƒ}|j|ƒ}|sFtjd|ƒdS|j}|j|ƒ}|s|tjd||ƒdS|j||ƒdS(NRDRts·ÇÏÉÃ˹¥³ÇÕ½²ÎÈü³ÉÔ±ÎÞ·¨¼Ó¾­Ñé!s+·ÇÏÉÃ˹¥³ÇÕ½²ÎÈüÏÉÃËÎÞ·¨¼Ó¾­Ñé! familyID=%s(R8RÇR+R2RRÅRz(RÐRDRtRßR•RR”((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÈs
 
        c3Cs§ |d}|d}tƒ}|j|ƒ}|sMtj||d|ƒdS|j}|j}|j|ƒ}|j|ƒ}    |    sžtj||d|ƒdS|j|j    }
} |j
|
| ƒ} | sêtj||d|
| fƒdSt j t j|ƒ} | s    dS| jt jƒ}|s%dSt|ƒ\}}|d}|d$kr„| sf|r„|tkr„tj||d |ƒdSn|dkråt|ƒd kr¬|d nd}t|ƒdkrÎ|dnd }t|ƒdkrð|dn|}d}||kr&|    }|d kr5|}q5n|j|ƒ}|sVtj||d|ƒdS|jj}| j|ƒ}|s’tj||d|ƒdSt|||||
| |||d|ƒ }tj||d|dk|jfƒn¾|d    kr¢t|ƒd kr |d nd}t|ƒdkr/|dnd}t|ƒdkrQ|dnd}t|ƒdkrs|dn|}d}||kr©|    }|d kr¸|}q¸n|j|ƒ}|sÙtj||d|ƒdS|jj}| j|ƒ}|stj||d|ƒdS|j|krBtj||d|jƒdS|j|}t|||||
| ||d||ƒ }tj||d|dk|jfƒn|d kr“t|ƒd krÊ|d nd}t|ƒdkrì|dnd}t|ƒdkr|dn|}t|ƒdkr0|dnd}t|ƒdkrR|dnd}|j|ƒ}|sˆtj||d|ƒdS|j}|j|ƒ}|jj}|j} | |}g}!|tkr7| j|ƒ}|stj||d|ƒdS||jkr'tj||dƒdS|!j|ƒn·|tkrÓx^| jj ƒD]M}||krkqSn| j|ƒ}| sS|j!ƒr“qSn|!j|ƒqSWt|!ƒ|krît"j#|!ƒ|!| }!qîntj||d|ƒdS|t|!ƒ}"i}#d}$xg|!D]_}|j}t|||||
| ||d|"||ƒ }|dkr|"|#|<|$|7}$qqWt$||
| |||#|$ƒn|d
kr&    t|ƒd kr»|d nd}t|ƒdkrÝ|dn|}|j|ƒ}|stj||d|ƒdS|jj}|s4| j%ƒ}%n    |g}%d}xa|%ddd…D]L}&| j|&ƒ}'|'sxqWn|'j!ƒsW|&t&|gkrœqWn|'}PqWW|sÄtj||dƒdS|j}|j}t|||||
| ||d|ƒ
}tj||d|dk||fƒn}|dkr    t|ƒd krN    |d n|
}(t|ƒdkrp    |dn| })t'||(|)||ƒn|dkrã    t|ƒd kr·    |d nd }*|d}+t(|||*|+||ƒnÀ|dkrÝ
t|ƒd kr
|d nd },t|ƒdkr-
|dnd }-|-d krk
t)j*|    j+ƒ}.t"j#|.ƒ|.|- }/n    |g}/x!|/D]}0|    j,|0|,t-ƒq{
Wt.|    j|    jƒtj||dt|/ƒ|,|    j/|    j0fƒnÆ|d kr£ t|ƒd kr |d n|    j/}1t|ƒdkr* |dn|    j0}2|1rg t1j2d!|1ƒ rg tj||d"|2ƒdS|1|    _/|2|    _0tj||d#|1|2fƒ|    j3ƒndS(%s GMÃüÁ·½±ã¿ª·¢²âÊÔÓÃ
    RDtmsgLists·ÇÏÉÃ˹¥³ÇÕ½²ÎÈü³ÉÔ±:%sNs·ÇÏÉÃ˹¥³ÇÕ½²ÎÈüÏÉÃË:%ss Ã»ÓÐÕ½¶··Ö×é:batType-group:%s-%sitathRštss·ÇÕ½¶·½×¶Î!state=%siiis¹¥»÷·½²»´æÔÚ:%ssÄ¿±ê³Ç³Ø²»´æÔÚ:%ssatkOK:%s,remainHP:%sisÊ£ÓàѪÁ¿²»Äܳ¬¹ýµ±Ç°ÑªÁ¿:%sii
s²»Äܹ¥»÷×Ô¼ºÏÉÃËs·Ç¼¼Äܹ¥»÷ÀàÐÍ(%s)iÿÿÿÿsûÓпɻ÷»ÙµÄ³Ç³ØÁË!skillOK:%s,Ä¿±ê:%s,¹¥»÷·½:%stptgtxs'³ÉÔ±¾èÏ×:ÈËÊý(%s)x%s:campLV(%s),Exp(%s)tcR/s´ó±¾ÓªÃ»Óиõȼ¶:%ssÉèÖôó±¾ÓªµÈ¼¶:%s,Exp:%s(sashskss(4R8RÇR+tDebugAnswerCrossRRR9R“RRR°RR>RÏRRjR4R    R RÔRaRRˆt __DoGMAtkCityR3RR:RtAtkType_SkillSingleR;tAtkType_SkillAreaR‚R‡R'trandomtshuffleRšRt XiuluoCityIDt__GMPrintGroupCityt __DoGMGuesstcopytdeepcopyR_RzR&RbRVRWR4R5Rg(3RERÐRDRÔRßR•RRR>R”RRR®R;RR&R'tvalue0t    tagCityIDt atkCntTotalt atkFamilyIDt atkMemberIDt atkJoinFamilyt    curCityIDttagCitytatkOKtremainHPR´tatkTypet    hurtMultit hurtFamilyCntt atkJoinMembert batFightPowertcanAtkedCityListt oneHurtTotalthurtDictt killCntTotalRýRR‘R¸RºR¸tguessFamilyIDListRttmemCntt    memIDListt playerIDListtmemIDRVRW((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÏ-sl
 
            
  """    *) """"     *) """""         
         - 
 ""             ') "" "
 ""        2 %%         c Cstƒ}|j|ƒ}|j||ƒ}|jƒ}tj||d|||t|ƒfƒx´t|dƒD]£\}    }
|j|
ƒ} | s–qon| j    ƒr¨dnd} tj||d|    |
| j
ƒt| j ƒt| j ƒfƒtj||d| j | j| fƒqoWdS(Ns'---·ÖÇø(%s)·Ö×éÀàÐÍ(%s)×é(%s)³Ç³ØÊý(%s)isÒÑ»÷»ÙRJs$³Ç³Ø%02d:%s,·ÀÊØÈËÔ±ID:%s,ÈËÊý:%s/%ss    HP: %s/%s %s(R8R9R°RR+RÜRÔR×RˆR'R(RRRR( RRRRDRERßR>R®RýRîRR‘tbroken((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRã s     )/*ic *Csµtƒ} | j|ƒ} ||kr;tj||dƒdS| j||ƒ}|sWdS|j|ƒ}|j|ƒ}|s–tj||d|ƒdS|s·tj||d|ƒdS|j}|j}| j|ƒ}|sõtj||dƒdStjd|||||||    |
fƒd}i}|
rH|
|j    krH|
gn|j    }|r|}x{|dkrÚ|rÚ|d8}|j
dƒ}|j |ƒ| j |ƒ}|j }||j 7}|j|dƒ|||<q`Wtjd    ||t|ƒ|fƒn |    r¡|    }xn|    dkr}|r}|j
dƒ}|j |ƒ| j |ƒ}|j }|    |8}    |j|dƒ|||<qWtjd
|t|ƒ|fƒnd}ttjƒƒ}g}tjd ||j|j|fƒxÞ|jƒ rÂ|dkrÂ|jd}|j|ƒr&|j}n| j |ƒ}| sH|jƒrX|jƒqån|j |ƒ||_|j} td| |ƒ|_| |j}!td|j|!ƒ|_|tkr|jdkrd|_d|_|}!tjd ||fƒntjd |||!| |j|j|jfƒ||!8}|jj|dƒ|!|j|<|jj|dƒ|!|j|<|jƒrœ|d7}|jƒntjd|||j|jfƒqåWtjd|j|j|fƒ|r| j|ƒ}"|"rt |"ƒqnx |j!ƒD]ÿ\}#}tjd|#|fƒ| j |#ƒ}$|$sYqn|$j"|7_"|$j"t#j$}%|$j"t#j$}&t%j&t'j(|#||%|&dt)ƒ|jƒr¼qn|j*j|#dƒ||j*|#<|j*|#}'|j+ƒ\}(})|'|)kr|j,|#|'ƒqqW|jƒs7t |ƒntjd|ƒt-|||||ƒs‚| t.kr‚t/|||ƒq‚nt0||||ƒ|r±t1||d|ƒn|S(sôGM¹¥»÷³Ç³Ø
    @param curCityID: ¹¥»÷·½³Ç³ØID
    @param tagCityID: ·ÀÊØ·½³Ç³ØID
    @param atkCntTotal: ´óÓÚ0ʱָ¶¨×ܹ¥»÷´ÎÊý
    @param hurtValueTotal: ´óÓÚ0ʱָ¶¨×ÜÉ˺¦
    @param atkMemberID: ·¢Æð¹¥»÷µÄ³ÉÔ±ID£¬Èç¹ûΪ0ÔòËùÓгÉԱƽ̯¹¥»÷
    s²»Äܹ¥»÷×Ô¼ºµÄ³Ç³ØNs¹¥»÷·½²»´æÔÚ:%ss±»¹¥»÷·½²»´æÔÚ:%ssÎÞ¹éÊôÏÉÃ˳dzز»ÄÜ·¢Æð¹¥»÷svGM¹¥»÷³Ç³Ø: zoneID=%s,batType=%s,groupNum=%s,curCityID=%s,tagCityID=%s,atkCntTotal=%s,hurtValueTotal=%s,atkMemberID=%siis<°´×Ü´ÎÊý¹¥»÷: atkCntTotal=%s,remainHurtTotal=%s,atkMem=%s,%ss-°´×ÜÉ˺¦¹¥»÷: remainHurtTotal=%s,atkMem=%s,%ss<¼ÆËãGM¹¥»÷³Ç³Ø: tagCityID=%s,cityHP=%s/%s,remainHurtTotal=%ss,    GM¹¥»÷ÐÞÂ޳ǷÀ±¬: zoneID=%s,tagCityID=%ssM    tagGuardID=%s,remainHurtTotal=%s,lostHP=%s,hpBef=%s/%s,hpUpd=%s,cityHP=%ssG        remainHurtTotal=%s,killCnt=%s,atkReportDict=%s,defReportDict=%ss cityHP=%s/%s,atkedGuardIDList=%ss¹¥»÷·½³ÉÔ±Êä³ö: memID=%s,%sR€sA    ¹¥»÷·½ÏÉÃ˳dzØÒѱ»´Ý»Ù£¬²»ÔÙÀÛ¼Ó±¾ÂÖÏÉÃËÉ˺¦°ñÖµ! familyID=%sRn(2R8R9R+RÜR°RˆRR“R,R_R)R;R:RRjRÔR    ttimeRRR'RR*RRR.RR@RâRÓRRRnR‰RSRpRˆR‰tUpdCrossBillboardPlayerRÏRR&RR‹RŽtCheckXiuluoCitytAtkType_NormalRšRCRb(*t
gmPlayerIDRERR&RRRíRèRéR´RëRñRßR>R®tcurCityRît curFamilyIDRÑt curJoinFamilytremainHurtTotalt memHurtDictt atkMemIDListt remainAtkCnttatkMemIDt    atkMembertmemHurttkillCnttcurTimetatkedGuardIDListRttagGuardthpBeftlostHPt tagJoinFamilyRþR•R”R•tplayerRoundHurtTotalt_ttopHurtPlayerValue((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÝsà                  '
      &     
##  
                      &
   
      "       c.Cs©    |d}|d}|d}|d}|d}|d}|d}tjd||||||f|ƒtjtj|ƒ}    |    s‹dS|    jtjƒ}
|
s§dSt|
ƒ\} } | sÒ| ró| t    krótj
d    |
| | f|ƒdSt ƒ} | j |ƒ}|s%tj
d
|ƒdS||j krOtj
d |j |ƒdS| j|ƒ}|j}|j|j}}|j|ƒ}|s§tj
d ||ƒdS|j}|j}|j||ƒ}|sïtj
d ||f|ƒdSg}|tkrd'\}}x^|jjƒD]M}||kr5qn|j|ƒ}| s|jƒr]qn|j|ƒqWt|ƒ|krbtj|ƒ|| }qbnÅ|tkr\| s¼||krßt t!d|||| ||ƒdS|j|ƒ}|st t!d|||| ||ƒdS|jƒrFt t"d|||| ||ƒdSd}|j|ƒn| sv| sv||kr™t t!d|||| ||ƒdS|j|ƒ}|sÑt t!d|||| ||ƒdS|jƒrt t"d|||| ||ƒdS|j#ƒ|krUtjd|j#ƒ|j$fƒt t%d|||| ||ƒdS|j|ƒ|s‹t t!d|||| ||ƒdS|j&}||}}t|ƒdkrÇ|t|ƒ}ntjd|||f|ƒt't(j(ƒƒ}t)j*ddƒ}i}d} xó|D]ë}| s|jƒr:qnd}!|j}|}"g}#tjd||j+|j,|||j$f|ƒx|jƒ r‰t|#ƒ|kr‰|"dkr‰|j$d}$|j-|$ƒrÚ|j.}%n|j/|$ƒ}%|% sü|%j0ƒr |j1ƒq‡n|#j|$ƒ||_2|%j+}&t3d|&|"ƒ|%_+|&|%j+}'t3d|j+|'ƒ|_+|t4kr·|j+dkr·d|_+d|%_+|"}'tj5d||f|ƒntjd|$|"|'|&|%j,|%j+|j+f|ƒ|"|'8}"|j6j|dƒ|'|j6|<|j7j|dƒ|'|j7|<|%j0ƒr`|!d7}!| d7} |j1ƒntjd|"|!|j6|j7f|ƒq‡W|#s–qn|||<|jrç|j|jƒ}(|(rÎt8|(ƒnt9||jd|#ƒnt:||||t;|||!ƒqW|s3t t!d|||| ||ƒdS|j<|7_<tjd |j<|ƒ|j<t=j>})|j<t=j>}*t?j@tjA|||)|*d!tBƒ|jƒsl    |jCj|dƒ||jC|<tjd"||||jCf|ƒt8|ƒ|jC|}+|jDƒ\},}-|+|-krL    |jE||+ƒtjd#|+|-f|ƒq€    tjd$|+|-|,f|ƒntjd%||ƒt t;d&|||| |||| ƒ
dS((NRRDRñRèt
tagGuardIDRòRós]ÏÉÃ˹¥³ÇÕ½¹¥»÷: zoneID=%s,atkType=%s,tagCityID=%s,tagGuardID=%s,hurtMulti=%s,hurtFamilyCnt=%ss8ÏÉÃ˹¥³ÇÕ½·Ç¹¥»÷½×¶Î: state=%s,curRound=%s,roundState=%ss·ÇÏÉÃ˹¥³ÇÕ½²ÎÈü³ÉÔ±!s·ÇÏÉÃ˹¥³ÇÕ½²ÎÈü³ÉÔ±! zoneID=%ss!·ÇÏÉÃ˹¥³ÇÕ½²ÎÈüÏÉÃË! familyID=%ss,ÏÉÃ˹¥³ÇÕ½·Ö×é²»´æÔÚ! batType=%s,groupNum=%sisTagIDError-tagCityIDtGroupNoTagCityt    TagBrokensTagIDError-tagCityID-GuardIDsCurGuardID=%s,fighterIDList=%stTagDeadt
NoAtkedTagis2batFightPower=%s,totalHurtValue=%s,oneHurtTotal=%sR0is[¼ÆËã¹¥»÷³Ç³Ø: tagCityID=%s,cityHP=%s/%s,oneHurtTotal=%s,oneCanAtkDefMax=%s,fighterIDList=%ss%    ÐÞÂ޳ǷÀ±¬: zoneID=%s,familyID=%ssP    tagGuardID=%s,remainHurtTotal=%s,lostHP=%s,hpBef=%s/%s,hpUpd=%s,cityHPUpd=%ssG        remainHurtTotal=%s,killCnt=%s,atkReportDict=%s,defReportDict=%sRntNoHurts+    ¸üÐÂÍæ¼Ò»î¶¯×ÜÉ˺¦°ñÖµ! memTotalHurt=%sR€sH    ¸üб¾ÂÖÏÉÃ˳ÉÔ±¹±Ï×É˺¦! familyID=%s,playerID=%s,addHurtValue=%s,%ss8    ¸üÐÂΪ±¾×éÉ˺¦µÚÒ»Íæ¼Ò: playerRoundHurtTotal=%s > %ssL    Î´³¬¹ý±¾×éÉ˺¦µÚÒ»Íæ¼Ò: playerRoundHurtTotal=%s <= %s,topPlayerHurtID=%ss?    ×Ô¼ºÏÉÃ˳dzØÒѱ»´Ý»Ù£¬²»ÔÙÀÛ¼Ó±¾ÂÖÏÉÃËÉ˺¦°ñÖµ! familyID=%stOK(ii(FR+R,RR>RÏRRjR4R    R R2R8RÇRR9RRRR“RaRR°RßR‚R‡RˆR'R;RÔRàRáRÞtSendFamilyGCZAtkResultt AtkRet_OthertAtkRet_TagBrokenR(RtAtkRet_TagDeadRR    RR4R7RRR*RR:RR.RR@RâRÓRRRnRbRCt    AtkRet_OKRSRpRˆR‰RRR&RR‹RŽ(.RERÐRRDRñRèRRòRóR;RR&R'RßR•R>RRRRRRíR®RöttagCIDRîRõR÷RSRtoneCanAtkDefMaxRøRùRRRRRRRRR”R•RttopHurtPlayerIDR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR̬sH
 
 
 
 
 
 
                                          &.  
                      )
   
 
     !
     #"      
      %cCs/tƒ}|j|ƒ}tjddƒ}||kr:dS|j||ƒ}|sVdS|jtƒ}    |    rodSd}
xC|jjƒD]2} | j    ƒrq…n|
d7}
|
dkr…dSq…Wt
j d||||f|ƒtj ddƒ} tj ddƒ} |j t| d| d    tƒt|||ƒtS(
NR1iiisNÊ£ÏÂÒ»¸öÏÉÃËδ±»´Ý»Ù£¬Ë¢ÐÂÐÞÂÞ³Ç! zoneID=%s,curRound=%s,batType=%s,groupNum=%siiRR—(R8R9R4RfR°RˆRâR‚RiR'R+RÓR7R™R%Rš(RR&RRRDRßR>tappearRoundListR®t
xiuluoCitytaliveFamilyCntRît xiuluoCityLVR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR|s0      
  c
 Cs2|d}
|d} |d} |
r«|tkr«tjd||| |f|
ƒ| tkr…t|||| ||
di||
6ƒq«t||||
| di||
6ƒn|
rÜ|tkrÜt||||
| ||    ƒni|d6|d6|d6|d    6|    d
6} td | |gƒt|||||
ƒdS( NRDRñRès.ÏÉÃ˹¥³ÇÕ½¹¥»÷ʧ°Ü: atkRet=%s:%s,atkType=%s,%sRBtatkRetterrMsgtreqMsgRøRùtFamilyGCZAtkResult(R$R+R2RRCRšRÁR(R,R-RÐRERR&RRRøRùt atkPlayerIDRñRèR¿((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR ˜s
 
 
  )&)c%Csµtƒ}|j|ƒ}    |    j||ƒ}
|
s4dSi} |dkrO|} n„tjƒ} |
j} xI| D]A}| sk|| krŠqkn| j|ƒ}|rk|| |<qkqkWtj    d|||| | f|ƒ| sÝdSg}d\}}t
||ƒ}t j ƒ}|j tj||ƒ}|jƒ}|jƒr’|jdƒ}|j}|    j|ƒ}|r’|j}||kr|j|ƒqq’n|
jƒd}d}|rî||krÊ|j|ƒn|    j|ƒ}|rî|j}qîntjƒ}||_||_||_||_||_ ||_!|t"krù|rù||kr^|j|ƒn||_#||_$||_%g|_&x_|j'ƒD]Q\}}tj(ƒ}||_)|t*j+|_,|t*j+|_-|j&j|ƒqWt.|j&ƒ|_/n|
j0ƒ} g|_1xÖ| D]Î}|
j2|ƒ}!|!s6qntj3ƒ}"||"_)|!j4|"_5|!j|"_6|j7|!jdƒ|"_8|!j9t*j+|"_:|!j9t*j+|"_;|!j<t*j+|"_=|!j<t*j+|"_>|!j?|"_@|j1j|"ƒqWt.|j1ƒ|_Ag|_BxŠ|D]‚}|    j|ƒ}#|#s*q    ntjCƒ}$||$_D|#jE|$_F|#jG|$_H|#jI|$_J|#jK|$_L|#j|$_6|jBj|$ƒq    Wt.|jBƒ|_MtNjO| |ƒdS(NsASync_FamilyGCZBatSceneInfo zoneID=%s,batType=%s,groupNum=%s,%s,%si(ii(PR8R9R°R3R{R|R†R}R+R,RƒRÌRRžRÏRtGetIDOrderDictRUR R¡R“R[R;R‹R:RtChPyNetSendPackttagGCFamilyGCZBatSceneInfotBatTypetGroupNumt TopFamilyIDt TopLeaderIDt TopPlayerIDtTopPlayerFamilyIDRt AtkPlayerIDtAtkTypetKillCnttHurtListR‰ttagGCFamilyGCZBatSceneHurttCityIDRpRˆt    HurtValuet HurtValueExRÔtHurtCntRtCityListRˆttagGCFamilyGCZBatSceneCityRtCityLVR)RjtRankRtHPtHPExRtHPMaxtHPMaxExRt LastAtkedTimetCityCnttPlayerInfoListttagGCFamilyGCZBatScenePlayertPlayerIDRMRFRNRMRPRORQRPt    PlayerCntt NetPackCommontSendFakePackByCross(%RRRR0RñRøRùRBRßR>R®tonlinePlayerIDDictRtnotifyPlayerIDListRDREtsceneShowPlayerIDListt topFamilyIDt topLeaderIDR~RtroundHurtBillboardt idOrderDictttopFamilyBillboardt    topFamilyRŒttopPlayerFamilyIDt    topMembert
clientPackRRŠthurttsyncCityIDListRaR‘R•t scenePlayer((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRš°s                                                                                                             c    Cstƒ}    |    j|ƒ}
|
j||ƒ} | s4dS| j|ƒ} | sMdSi} |dkrh|} n‡tjƒ}| j}xI|D]A}| s„|| kr£q„n|j|ƒ}|r„|| |<q„q„Wt    j
d|||||| f|ƒ| sùdS| j ƒ}| j |ƒr | j }n|
j|ƒ}d\}}|rW|j|j}}ntjƒ}||_| j|_| j|_||_|tj|_|tj|_|tj|_|tj|_||_||_ ||_!|tj|_"|tj|_#t$j%| |ƒdS(NsJSync_FamilyGCZBatCityInfo zoneID=%s,batType=%s,groupNum=%s,cityID=%s,%s,%si(ii(&R8R9R°RˆR3R{R|R R}R+R,R(R*RR:RRR2ttagGCFamilyGCZBatCityInfoR?RRERR)tGuardIDRpRˆRGRHRIRJR:tAtkRetR<R@RARQRR(RRRRR,R0t    hurtValueRRBRßR>R®RaRSRRTRDREtguradIDtcurGuardtguardHPt
guradHPMaxR^((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRC$    s\                                             c    Cs²tƒ}|j|ƒ}|s"dStjƒ}g|_xK|jjƒD]:\}}tjƒ}||_||_    |jj
|ƒqGWt |jƒ|_ t ji||6|ƒdS(N(R8RÆR2ttagGCFamilyGCZContributionInfot
ContriListR`R‰ttagGCFamilyGCZContributionROtContributionValueR;RÔt    ContriCntRQRR(    RDRERÐRßR”R^Rþtvaluetcontri((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÉZ    s                  c
CsXtƒ}|j|ƒ}|s"dStjƒ}||_g|_xe|jjjƒD]Q\}}tj    ƒ}||_
|t j |_ |t j |_|jj|ƒqSWt|jƒ|_g|_xe|jjjƒD]Q\}}tj    ƒ}    ||    _
|t j |    _ |t j |    _|jj|    ƒqÖWt|jƒ|_tji||6|ƒdS(N(R8RÅR2ttagGCFamilyGCZBatReportR)t
DefRepListRaRR‰ttagGCFamilyGCZBatRepHurtt TagFamilyIDRpRˆR@RAR;RÔt    DefRepCntt
AtkRepListRt    AtkRepCntRQRR(
RDRERÒRßt    repFamilyR^RÑRetdefReptatkRep((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÊl    s0                           c Cs tƒ}|j|ƒ}|j|ƒ}|s1dStjƒ}||_g|_xŒ|jjj    ƒD]x\}}    |j
|ƒ}
tj ƒ} || _ |
r¡|
j nd| _|    tj| _|    tj| _|jj| ƒqbWt|jƒ|_tji||6|ƒdS(NRJ(R8R9R“R2t$tagGCFamilyGCZGroupFamilyMemHurtInfoR)t HurtMemListRaRR‰R:t tagGCFamilyGCZGroupFamilyMemHurtRORMRFRpRˆR@RAR;RÔt
HurtMemCntRQRR( RDRERRÑRßR>R”R^RþRoR•R((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRË‹    s&                  c CsŽ|d}|d}t|ƒd}tjtj|ƒ}|sCdS|jtjƒ}|s_dStjddƒ}||kržt    j
d|||f|ƒdSt ƒ}|j |ƒ}    tj ddƒ}
||
 }xJ|D]B} | |    jkrÙt    j
d||| |    jjƒf|ƒdSqÙWx.|D]&} |    jj| dƒd|    j| <q&W||    j|<t    jd    ||    jf|ƒt|d
|ƒdS( NRDtselectFamilyIDListiRµis2ÏÉÃ˹¥³ÇÕ½·Ç¾º²Â½×¶Î: zoneID=%s,state=%s not in %sisQÏÉÃ˹¥³ÇÕ½¸ÃÏÉÃËID²»¿É¾º²Â! zoneID=%s,selectFamilyIDList=%s,familyID=%s not in %ss%ÏÉÃ˹¥³ÇÕ½¾º²Â: %s,familyGuessDict=%stselectPlayerID(RRR>RÏRRjR4R4RfR+R2R8R9R7R¥R‡R¦R,R( RERÐRDRRR;RtcanGuessStateListRßR>t guessCountMaxR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÍ¢    s8
 
     
       $ cCsytjddƒ}||kr9tj||d|ƒdStƒ}|j|ƒ}tjddƒ}    ||     }|sœ|jjƒ}
t    j
|
ƒ|
|     }nx.|D]&} |jj | dƒ||j| <q£Wd} x8|j jƒD]'} | dkrã| | krã| } qãqãWx4t | d| d|dƒD]} ||j | <q.Wtj||d|t|j ƒfƒt|ƒdS(NRµis·Ç¾º²Â½×¶Î!state=%siii'sÐÂÔö¾º²ÂÈËÊý:%s, ×Ü:%s(R4RfR+RÜR8R9R7R¥R‡RàRáRjR¦R!RÔR(RRR¸RRDRERRßR>R‚RRt    maxFackIDtpID((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRäÇ    s.     
   $ &&
c    Cs>|d}|d}t|ƒd}tjtj|ƒ}|sCdS|jtjƒ}|jtjƒ}| sz|tkr˜t    j
d||f|ƒdS|jtj ƒ}|s´dS|t kr+|jddƒ}    t |||    |ƒ\}
} | s t    j
d||ƒdSt||||||
| ƒdS|tkritjddƒ} t|||||d| ƒdStƒ} | j|ƒ} | j|ƒ}|sªt    j
d    |ƒdS|j}|j}|j}|}d}d}    d}|tkr |}tj}|jd
dƒ}    n4|tkr=|}tj}|jd dƒ}    ndS|    set    j
d ||f|ƒdStjƒ}|j||ƒ}|j ƒ}|j|dƒ}|sËt    j
d ||||f|ƒdSt    j!||||    ||ƒ}|sódSt|||||||ƒ|jtj"gƒ}t#j$||||ƒdS(NRDt    awardTypeis(ÏÉÃ˹¥³ÇÕ½·ÇÁì½±½×¶Î: zoneID=%s,state=%stGuessTemplateIDs%ÏÉÃ˹¥³ÇÕ½Íæ¼ÒûÓоº²Â½±Àø! zoneID=%sRµis·ÇÏÉÃ˹¥³ÇÕ½²ÎÈü³ÉÔ±!tPersonalTemplateIDtFamilyTemplateIDs8ÏÉÃ˹¥³ÇÕ½Á콱ʱûÓÐÅÅÐн±ÀøÄ£°æ! zoneID=%s,awardType=%ssKÏÉÃ˹¥³ÇÕ½Á콱ʱûÓÐÉϰñ! zoneID=%s,awardType=%s,billboardType=%s,billID=%s(%RRR>RÏRRjt    ActKey_IDR4RR+R2R5tAwwardType_GuesstGetGuessAwardInfot__clientServer_GetAward_RettAwwardType_LikeR4RfR8R9R:RRRLR3tAwwardType_PlayerHurtRtAwwardType_FamilyScoreRRÌRRžR1tGetActBillboardTempAwardtActKey_ServerIDRangeListt GameXiangongtAddXiangongPlayerByItem(RERÐRDR…RR;R$RR<tawardTemplateIDt playerAwardIDt awardItemListRßR>R•RRLtbillIDt billboardTypet    billValueRtbillObjt
idRankDicttbillRanktplayerAwardItemListRY((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÎé    s„
 
                                  c CsÆtƒ}|j|ƒ}|j|ƒ}    d}
|    rX|    j}
|    jtd|ƒB|    _ntjd||||f|ƒi|d6|d6|d6|d6|d6|d    6|
d
6} td | |gƒdS( NiisQÏÉÃ˹¥³ÇÕ½Íæ¼ÒÇëÇóÁìÈ¡½±Àø! zoneID=%s,awardType=%s,awardValue=%s,awardItemList=%sRRDR$R…t
awardValueR–RLtFamilyGCZAward(    R8R9R:RLRTtpowR+RÓRÁ( RRDRER$R…RžR–RßR>R•RLR¿((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRŒD
s            &c Cs¢d}g}t|||ƒ\}}x0|jƒD]"\}}    ||    kr1|}Pq1q1W|r˜tjdi|d6|d6tƒ}
|
r˜|
jƒ}q˜n||fS(NitActGuesst
TemplateIDtAwardID(t__statGuessFinalR‰R4tGetIpyGameDataByConditionR&tGetAwardItemList( RRtguessTemplateIDRDR•R–RR§tawardIDtrightPlayerIDListR ((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR‹T
s #cCs|s
dStƒ}|j|ƒ}|js/dStjd|ƒtjƒ}x­|jjƒD]œ}|dkrtq\n|j|ƒ}|sq\n|j    }|j
}|j t dt ƒ@s‰|j t dt ƒB|_ |jtj|ƒ}    |    jƒ}
|
j|dƒ} d} |jƒ} tj||| | | |ƒ}|r‰| g}tjd|g||dtƒ|jƒ}tj|||| ƒq‰n|j t dtƒ@sq|j t dtƒB|_ |jtj|ƒ}    |    jƒ}
|
j|dƒ} d} |jƒ} tj||| | | |ƒ}|rq| g}tjd|g||dtƒ|jƒ}tj|||| ƒqqn|j t dtƒ@s\|j t dtƒB|_ |j ƒ} t!|d| |ƒ\}}|røg}tjd|g||dtƒqøq\q\WdS(    Ns'ÏÉÃ˹¥³ÇÕ½Óʼþ²¹·¢Î´ÁìÈ¡½±Àø: zoneID=%si'iitFamilyGCZAwardHurtt    crossMailtFamilyGCZAwardScoretFamilyGCZAwardGuess("R8R9R¡R+RÓRÌRR‡R:RRLRTR RŽRžRÏRR1RjR3tGetPersonalTemplateIDRtPlayerCompensationt SendMailByKeyR%RRR’R“RRtGetFamilyTemplateIDRŠtGetGuessTemplateIDR‹(RR RßR>RRDR•RRLRšR›RœR™R”Rt    paramListRYRR–((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR
e
sd                                 )cCs…tjtj|ƒ}|sdS|jtjƒ}|s;dS|jtjƒ}|sWdStƒ}|j|ƒ}|j    s|dSi}t
j ƒ}    |sãxb|    j j ƒD]8\}}
t|ƒ} || dkrÒq¤n|
||<q¤Wni|    j|ƒ|6}|sdSg} |r'|jj|gƒ} n|jddƒ} t||| ƒ\}}tjƒ}||_| |_t|jƒ|_||_t|jƒ|_g|_xN|j ƒD]@\}}tjƒ}||_t|ƒ|_|jj|ƒq²Wt|jƒ|_g|_ xK|j    j ƒD]:\}}tj!ƒ}||_"||_#|j j|ƒq!Wt|j ƒ|_$t%j&||ƒdS(NiR†('RR>RÏRRjR4R5R8R9R¥R{R|tonlinePlayerDictR‰RR}R¦R¤R2ttagGCFamilyGCZGuessInfoROtSelectFamilyIDListRÔt    SelectCnttFinalFamilyIDListtFinalCntt RightInfoListttagGCFamilyGCZGuessRightR£tRightPlayerCntR;tRightCnttGuessFamilyListttagGCFamilyGCZGuessFamilyR)t
GuessValuet    FamilyCntRQRR(RRDR€R;RR<RßR>RSRREtpActInfoRR§tfinalFamilyIDListR§R^R¨R©trightRt
guessValuet familyGuess((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR§
sf                                             c    Cs—tƒ}|j|ƒ}|jdkrC|j}|j}||fSg}i}|dkrq|tkrq||fStjddƒ}tj    ƒ}|j
t j |ƒ}    xOt |    jƒƒD];}
|    j|
ƒ} |j| jƒt|ƒ|kr·Pq·q·Wtj|ƒ} tjd|||| fƒi}x9|jjƒD](\} }tj| ||| |dƒq8Wtjd||fƒ||_||_||fS(NRµisLÏÉÃ˹¥³Çսͳ¼Æ¾º²Â½á¹û: zoneID=%s,guessTemplateID=%s,finalFamilyIDList=%s,%st    FamilyGCZs!    zoneID=%s,statGuessRetDict=%s(R8R9R§R3R¨RR4R7RÌRRžRÏRR!RUR R;R¡RÔR+tGetActGuessRightRankAwardIDDictRÓR¦R‰tStatActGuessRet(RRR§RßR>R§RÃR‚RR·R}R«trightRankAwardIDDictRDRú((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR¤ê
s6            
 
          cCsstjtj|ƒ}|sdS|jtjƒs5dS|jtjƒ}|sQdSi}i}tjƒ}|sÈx||j    j
ƒD]B\}}t |ƒ}||dkr­qn|||<|||<qWn&t |ƒ||<i|j |ƒ|6}|sødSt jƒ}    |    jƒt|jtjgƒƒ|    _t|    jƒ|    _||    _|jtjdƒ|    _|jddƒ|    _|jddƒ|    _|jddƒ|    _|jddƒ|    _|jddƒ|    _|jddƒ|    _|jd    dƒ|    _|jtjdƒ|    _ g|    _!t"ƒ}
|
j#|ƒ} xõ| j$ƒD]ç} | j%| ƒ} | sYq8nt j&ƒ}| |_'| j(|_)| j*|_+| j,|_-| j.|_/| j0t1j2|_3| j0t1j2|_4| j5|_6| j7|_8| j9|j6ƒ}|r|j:|_;|j<|_=n|    j!j>|ƒq8Wt|    j!ƒ|    _?t@jA||    ƒi|d
6|d 6}tBd ||jCƒƒdS( Nit    StartDateRJtEndDatet JoinFamilyCntt    ActFlowIDR†R‡RˆRt playerActInfotFamilyGCZPlayerActInfo(DRR>RÏRRjR4R5R{R|R´R‰RR}R2ttagGCFamilyGCZActInfotClearRgR‘tServerIDRangeInfoRÔt ServerInfoLenR+R‰tActIDRËtEndtDateRÍRÎR†R‡RˆtActKey_StateErrort
StateErrort ActFamilyListR8R9R±R“ttagGCFamilyGCZActFamilyR)RZRFRRRGR^RKR]RJRRpRˆRLt FightPowerExR[RHR\RIR:RPt
LeaderFaceRQt LeaderFacePicR;t FamilyCountRQRRRÁRi(RRDR;R<RÏRSRRERÂR^RßR>RR”t    actFamilyt    leaderMemR¿((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR s~  
 
                        cCs¶tjtj|ƒ}|sdS|jtjƒ}|s;dSt|ƒ\}}|sWdStƒ}|j|ƒ}|dkrŠ|j
ƒ}n|s”dSt j ƒ}|j |_g|_xØ|jjƒD]Ç\}    }
t jƒ} |    | _g| _xx|
jƒD]j} |j|    | ƒ} | s qünt jƒ}| |_| jƒ|_t|jƒ|_| jj|ƒqüWt| jƒ| _|jj| ƒqÅWt|jƒ|_t j!||ƒdS(N("RR>RÏRRjR4R    R8R9R3R·R2ttagGCFamilyGCZBatGroupInfoR£tRoundNumtBatListR¢R‰ttagGCFamilyGCZBatR4t    GroupListR‡R°ttagGCFamilyGCZBatGroupR5R’t FamilyIDListRÔt FamilyIDCntR;tGroupCntt
BatTypeCntRQRR(RRSR;RR&RRßR>R^RR­tbatInfoRR®tgroup((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR] sH                         cCs^tƒ}|j|ƒ}|j|ƒ}|s1dS|dkrL|jƒ}n|sVdStjƒ}|jƒ||_|j    |_
|j |_ |j j|_|j jtj|_|j jtj|_|j jtj|_|j jtj|_|j jtj|_|j jtj|_g|_x«|jjƒD]š\}}    tjƒ}
||
_|    j ddƒ|
_!|    j ddƒ|
_"|    j ddƒ|
_#|    j ddƒ|
_$|    j ddƒ|
_%|jj&|
ƒq9Wt'|jƒ|_(g|_)xC|j*D]8} |dkr | |kr qün|j+| ƒ} | s;qüntj,ƒ} | | _-| j.| _/| j0| _1| j2| _3| j4| _5| j6| _7| j8tj| _9| j8tj| _:| jtj| _| jtj| _| jtj| _| jtj| _| j;tj| _<| j;tj| _=|j)j&| ƒqüWt'|j)ƒ|_>t?j@||ƒdS(NRiRRœRhRb(AR8R9R“R3R€R2ttagGCFamilyGCZCampInfoRÒR)RVtCampLVRWtCampExpRaRRERRpRˆtHPBasetHPBaseExRRIRJRRGRHt RoundInfoListRXR‰ttagGCFamilyGCZCampRoundRâRjR4R5RFtScoret UpdownStateR;RÔtRoundCntt
DefMemListR_R:ttagGCFamilyGCZCampMemRORMRFRLRQRNRMRPRORQRPRRLRÛRSt    TotalHurtt TotalHurtExt    DefMemCntRQRR(RRRSRnRßR>R”R^R£RltroundObjRDR•tdefMem((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRb‰ st      
                             cCs*tj|dtƒtj|dtƒdS(NR/RŸ(t PlayerControltDoOfflineUnprocessedt__DoOfflineFamilyGCZAtkResultt__DoOfflineFamilyGCZAward(t    curPlayer((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt OnPlayerLoginÎ scCsdS(N((((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytClientServer_CrossActInfoÓ scCsr|jƒ}|jƒ}tjd||f|ƒ|s<dSd}|dkrRdS|t|tƒrj|n|gS(Ns'MapServer_FamilyGCZ mapID=%s,msgList=%s(t GetRealMapIDRWR+R,R3t
isinstancetlist(RRÔtmapIDRDtret((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytMapServer_FamilyGCZ× s   cCs>d}t|||gƒ}|jddd|t|ƒƒdS(NiiRÇ(RgtMapServer_QueryPlayerResultRÔ(RtmsgTypetdataMsgR    R¿((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR å sc
CsŒtjƒj|ƒ}|j}|j}|j}|j}|jƒ}idd6|d6|d6|d6|d6|d6}    tj    t
j |    ƒdS(NRÂRºRDRÃRRR( R+tGetPlayerManagertGetPlayerByIndext    QueryTypeR4R5R)RWR»tSendMsgToCrossServerRÏRÓ(
R}t
clientDatattickRRÃRRRRDR ((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnFamilyGCZQueryõ s                 0cCs!|d}|dkr#t|ƒnú|dkr¯|d}|dd}tj|ƒsZdStjƒj|ƒ}|sœ|tkr…dStj|d|ƒdSt|d|ƒnn|dkr|d}tj|ƒsØdStjƒj|ƒ}|s
tj|d|ƒdSt|d|ƒndS(NRºRÐR/R,R.RDRŸ(    t%__clientServer_FamilyGCZPlayerActInfoRþtGetDBPlayerAccIDByIDR+RtFindPlayerByIDR$tAddOfflineUnprocessedR (R R¾R,RDR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR½ s2
 
 
cCst|d|ƒdS(NR/(R (RtrecDatat    eventNamet    eventData((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR# scCst|d|ƒdS(NRŸ(R (RRRR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR( scCst|d}tjƒ}xW|jƒD]I\}}tj|ƒsDq#n|j|ƒ}|r#t|d|ƒq#q#WdS(NRÏRÐ(R+RR‰RþRRR (R RÏt playerManagerRDRÂR((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR- s
 ii((((((qR+RÏRAR4R»R‰R,RR¯R2RQRÌRþR’RÈRpR{RàRåRRRRR R!R!RmtBatType_JuniortBatType_Middlet BatType_HighRhRktUpdownState_NoneRlRiRjR¯RRÞRßR$R#R"R!RâRŠRŽRRtobjectRRRIRURRR¾R8RñRRR    RR R(RRERRRnR˜R&RoR"R#RRƒR¹R3RÁRÓRÈRÏRãRÝRÌRR RšRCRÉRÊRËRÍRäRÎRŒR‹R
RR¤RRRbRRR
R RR½RRR(((saD:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt<module>s¼                    ‘pqH        }    Z                     )    /    $    8    p         M    D                         5        ß        Ð t6                %    "    [            BC    % N ,E                      !