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
âAhc@sbddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    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/„ZSd0d0d0d1„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((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt__init__es                     cCs |jdkS(Ni(R(R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytIsDeadmscCs>|j||_t|jd|dƒ|_|j|_dS(NidgY@(RRtintRR(RthpFightPowerMultitaddHPPer((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytRefreshFighterAttros (t__name__t
__module__RRR (((saE:\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((saE:\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((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt ResetDefense’s                    "                    
cCs|jƒd|_dS(Ni(R"R(R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt OnFightStart¤s
    cCs!|jdks|j rtStS(Ni(RRtTruetFalse(R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytIsBrokenªscCs|js dS|jdS(Ni(R(R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetCurGuardID°s    cCs’|js dS|jjdƒ|js*dS|j}|j|ƒr}|jj|j_tjd||jj|jjfƒntjd|ƒ|S(Nis     Çл»ÏÂÒ»¸öNPCÊØÎÀ: %s, %s/%ss    Çл»ÏÂÒ»¸ö·ÀÊØÈËÔ±: %s(Rtpopt
IsGuardNPCRRRt    GameWorldtDebugLog(Rt nextGuardID((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt    NextGuard¶s            )cCs|jdko|dkS(Nii'(R(RR((saE:\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((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR"ÉsJ                                  *
  )c    CsS||jkrdS|jj|ƒt|j|j|j|jdi||6ƒdS(NttoPlayerServerDict(R R;tSync_FamilyGCZBatCityInfoRRRR(RtplayerIDt serverGroupID((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytSetPlayerInCityûs
,cCs&||jkr"|jj|ƒndS(N(R tremove(RRD((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytSetPlayerOutCitysN( R RRR3R#R$R'R(R.R*R"RFRH(((saE:\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((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR
s"                                                            (R RR(((saE:\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((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR s&                                                                    cCsQd|_d|_|jj|j|jƒ|jj|_t|j|j    ƒdS(Ni(
RRRaR#RVR_RtSync_FamilyGCZCampInfoRR(R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnRoundFamilyReset7s         cCs3|jjƒ|jj|_t|j|jƒdS(N(RaR$RRbRR(R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnRoundFamilyFightStart@s cCsD|jj|jƒ}|jj|_|r@t|j|jƒn|S(N(RaR"RVRRbRR(RtisNotifytisOK((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytRefreshFamilyAttrGs
cCs:d}x-|jjƒD]}||jddƒ7}qW|S(Nitscore(RXtvaluestget(Rt
totalScoretinfo((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetTotalScoreOsc Cs®||jkr3tjd|j||jfƒdS|j}|j}t||tjƒ}|}t    j
d|ƒ}|rÍ|j ƒrÍ|j ƒ}    ||    krÍt    j d|dƒrÍ||    8}|d}qÍn||_||_|j j|dƒ||j |<tjd|j|||||||j |fƒg}
t} ||krˆt} tjd|j||fƒ|jtƒrˆd}
qˆn|rªt|j|jd|
ƒn| S(NsG·ÇÏÉÃ˹¥³ÇÕ½Ëø¶¨³ÉÔ±ÎÞ·¨¼Ó´ó±¾Óª¾­Ñé! familyID=%s,playerID=%s not in %sR/iiskÔö¼Ó´ó±¾Óª¾­Ñé: familyID=%s,playerID=%s,addCampExp=%s,campLV-Exp=%s-%s,updLV-Exp=%s-%s,playerAddExpTotal=%ss)´ó±¾ÓªÉý¼¶ÁË! familyID=%s,campLV=%s to %st defMemIDList(R_R+R2RRVRWtmintChConfigtDef_UpperLimit_DWordR4R5tGetLVUPNeedExptGetIpyGameDataNotLogR`RjR,R&R%RgR3RbR( RRDt
addCampExpReRVRWt
updCampExpt    updCampLVR=t lvupNeedExpRntisLVUP((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt
AddCampExpVs8          "
             *  cCsLi}tjƒ}x3|jD](}|j|ƒ}|r|||<qqW|S(N(tChPlayertGetOnlinePlayerMgrR_tGetOLPlayerServerGroupID(RtolDictt    onlineMgrRDRE((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetOLMemServerGroupIDDict€s (
R RRRcRdR%RgRmRyR(((saE:\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((saE:\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((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetTopHurtPlayerIDValuešscCs|||_|_dS(N(RƒR„(Rt topPlayerIDt topHurtValue((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytUpdTopHurtPlayerIDValue¨scCs%|js|jjƒ|_n|jS(N(R‚RR†(R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetCityIDList¬s    cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R3RR&R(RRRa((saE:\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((saE:\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((saE:\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((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytCreateCityWallÜs    cCsM||jkrdS|jj|ƒt|j|j|jdi||6ƒdS(NRB(R…R;tSync_FamilyGCZBatSceneInfoRRR(RRDRE((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytSetPlayerInSceneðs
&cCs&||jkr"|jj|ƒndS(N(R…RG(RRD((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytSetPlayerOutScene÷sN(R RRRŠRRŽR‡R‘R•R3R&R˜RšR›(((saE:\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((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÿs                                                        cCsj||_d|_i|_i|_i|_x6|jD]+}|j|ƒ}|sXq7n|jƒq7WdS(Ni(R¢R£R¡R¨R©RžR’Rc(RR¢RR“((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt OnRoundResets                    cCs=x6|jD]+}|j|ƒ}|s+q
n|jƒq
WdS(N(RžR’Rd(RRR“((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnRoundFightStarts cCsO||jkri|j|<n|j|}t|j||ƒ}|||<|S(N(R¡R€R(RRRt groupNumDicttbatGroup((saE:\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­((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetBatGroup0s  cCs|jS(N(Rž(R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetZoneLockFamilyIDList;scCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R3RŸR&RU(RRR“((saE:\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“((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytAddZoneJoinFamilyEs cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R3R R&RI(RRDR”((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR:Rs  cCsad}||jkr%|j|}n"t|j||ƒ}||j|<tƒj||jƒ|S(N(R3R RIRR8tSetPlayerIDZoneID(RRDRR”((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytAddZoneJoinMember[s cCs7i}x*|jjƒD]}|j|jƒƒqW|S(N(RŸRitupdateR(RR}R“((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetOLServerGroupIDDictfsic    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­((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytSetPlayerInBatScenemsc 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((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytSetPlayerInBatCityzs$(R RRRªR«R®R¯R°R’R²R:R´R¶RºR¼(((saE:\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((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRŽs            cCs||j|<dS(N(R¿(RRR((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR±”s cCs||j|<dS(N(RÀ(RRDR((saE:\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((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt ClearGCZZoneœs  cCsBd}||jkr%|j|}nt|ƒ}||j|<|S(N(R3R¾Rœ(RRR>((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR9¦s   cCsYd}||jkrC|j|}|j|ƒ}|j|ƒ}ntrUtƒ}n|S(N(R3R¿R9R’R&RU(RRR“RR>((saE:\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”((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetJoinFamilyByPlayerID»s  cCsYd}||jkrC|j|}|j|ƒ}|j|ƒ}ntrUtƒ}n|S(N(R3RÀR9R:R&RI(RRDR”RR>((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetJoinMemberÈs  (
R RRR±R³RÃR9RÄRÅRÆ(((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR½‹s                
    
          cCs(tj}|s$tƒ}|t_n|S(N(t
PyGameDatatg_familyGCZMgrR½(tmgr((saE:\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((saE:\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((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt OnSavePyDataWsœ         &  !(!     M !( ,  !(
+     2cCsht|ƒ\}}|sdSt||ƒt|i||6ƒt||i||6ƒt|||ƒdS(N(tGetPlayerActJoinInfotSync_FamilyGCZActInfotSync_FamilyGCZBatGroupInfoRbtSync_FamilyGCZGuessInfo(RER^RDRR((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnPlayerLogin_CrossLogic±s cCs4|dks|tkr"d|fS|d|dfS(Ni
i(tFamilyGCZState_Award(tstate((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetRoundState¾s
cCst||ƒt|ƒdS(N(tDoMailReissueAwardtDelFamilyGCZZone(tcfgIDRtipyDataR((saE:\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((saE:\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 DoStartAwardRtFamilyGCZRoundState_GrouptDoLockActFamilyt DoRoundGrouptGetJoinFamilyCnttFamilyGCZRoundState_FightR8R9R«tFamilyGCZRoundState_Overt DoRoundOvertDoGenerateGuess(    R tactIDtdbStateRRtcurRoundt
roundStateRÞR>((saE:\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((saE:\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ÎRRjR3RR+R,R9R:t
FindMembertmaxRt PlayerFamilytGetMemberFightPowerR(R9t updMemIDListRRÞR“RR:RR%R&R>RDR”t    curMember((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnCrossJoinFamilyMemberUpd3s8              $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ÒR@tSortCrossFamilyR
R8R9RRÖR<R0R²tGetCrossFamilyBaseInfoRjRZRRR[R\R]R^RRVR!tGetCounttGetAtt GetPlayerIDtGetCrossFamilyMemInfoR´RMRNRORPRQRRLR_R;RÓR(R#R Rt serverIDListRtsortFamilyListRÞR>tnumtfamilyRR^R“tfamilyBaseInfoRtitmemberRDt memBaseInfoR”((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRWsV   
                       *
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((saE:\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R`t roundSetDictt batTypeDictt groupValue1RÞR>tnextBatTypeFamilyInfotpreRoundRžRR“t    roundInfoRRat nextBatTypetbatFamilyIDListRtgroupCntRtgroupFamilyDicttgroupFamilySortListRAtgroupFamilyIDSortListtgroupFamilyIDCnttindexR­((saE:\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“tdataIDtname1R~tname2ttype2tvalue1tvalue2R€RRqR}t memHurtTotaltcityRemainHPPertfamilyRoundHurttcmpValuet    cmpValue2t    cmpValue3((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRmÿs0                                 &      !+cCs]tjƒsdStƒ}|jjƒ}|s2dSx$|D]}|sKq9nt|ƒq9WdS(N(R+RÊR8R¾R†Rn(t    curMinuteRÞRúR((saE:\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=%sR`is.ÏÉÃ˹¥³ÇÕ½Õ½³¡ÀàÐÍûÓÐÅäÖÃÃû´Î»ý·Ö! batType=%scSs%i|]\}}|t|ƒ“qS((R    (t.0tktv((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pys
<dictcomp>Ns    iiRRtrankRhR”R~RR€RtuserData(iii(2RR=RÎRRjR3RRR8R9R£R¢R+R,RËRtGetCrossBillboardRtSortDataR4ReR¡RˆRfR2R†R¯R‚RR!RTtAttIDtGetOrderValueByDictR&R’RXRµR°RRZR[R\R]R^RmRYRˆR‰R()RtforceR:RR%R&RÞR>R¢RtplayerHurtBillObjtbatTypeScoreInfoRR¸t rankScoreInfot rankScoreDictt groupNumListRR­R}troundBillboardObjtbIndextbillDataRR›RhR“RtRžRŠR‹R~RŒRRŽRR€RR“R”tfamilyScoreBillObj((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRn+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(
NR`is4========== ÏÉÃ˹¥³ÇÕ½ÂִνáËã: zoneID=%s,roundNum=%siis:zoneID=%s,batType=%s,upRank=%s,downRank=%s,groupNumList=%ss2zoneID=%s,batType=%s,groupNum=%s,groupFamilyCnt=%sRasa    Éý±£½µ¼¶zoneID=%s,batType=%s,groupNum=%s,rank=%s,familyID=%s,updownState=%s,hurtValueTotal=%s(*R8R9R£R¢RnR%RR4ReRfRËRR+RÒR¡RˆRÓR†R¯R‚RRÎRRTR!RŸR tCmpValuet    CmpValue2RpR‡RhRjRitDef_PerGroupFamilyCntRgRkR’RXRjRµRb(RRÞR>R¢RR`RoRpRRR¸t
batTypeSettupRanktdownRankR§RR­R}t billboardObjR©RªRR“R”thurtValueTotalR›RaR“Rt((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR!xsp                  
"   #            
    "             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(R4ReR8R9R7RËRRRÎRRoRTR!RŸR R¤R+RÒR( RRRÞR>t guessRankMaxRt scoreBillObjtguessCntR|RªR((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR"¼s           !
cCst|ƒt|ƒdS(N(R!R(R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÒs
 
cCs |d|S(Nid((RR((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR‚ÛscCs|d}|d}||fS(Nid((R}RR((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetRoundHurtGroupIDInfoÜs
 
cCs$||d<tjtj||ƒdS(Nt
ActMsgType(t CrossRealmMsgtSendMsgToClientServerRÎtCrossServerMsg_FamilyGCZ(t
actMsgTypetmsgInfotserverGroupIDList((saE:\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¹RytQueryt    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((saE:\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ÄRy(RÏRDRtRÞR”RR“((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÇs
 
        c*Csš|d}|d}tƒ}|j|ƒ}|sFtjd|ƒdS|j}|j}|j|ƒ}|j|ƒ}    |    s”tjd||ƒdS|j|j    }
} |j
|
| ƒ} | sàtj ||d|
| fƒdSt j tj|ƒ} | sÿdS| jtjƒ}|sdSt|ƒ\}}|d}|dkrz| s\|rz|tkrztj ||d |ƒdSn|dkrÕt|ƒd kr¢|d nd}t|ƒd krÄ|d nd }t|ƒdkræ|dn|}d}||kr|    }|d kr+|}q+n|j|ƒ}|sLtj ||d|ƒdS|jj}| j|ƒ}|sˆtj ||d|ƒdSt|||||
| |||d|ƒ }tj ||d||jfƒnÁ|d    krŒt|ƒd krý|d nd}t|ƒd kr|d nd}t|ƒdkrA|dnd}t|ƒdkrc|dn|}d}||kr™|    }|d kr¨|}q¨n|j|ƒ}|sÉtj ||d|ƒdS|jj}| j|ƒ}|stj ||d|ƒdS|j|kr2tj ||d|jƒdS|j|}t|||||
| ||d||ƒ }tj ||d||jfƒn
|d
krt|ƒd kr´|d nd}t|ƒd krÖ|d n|}|j|ƒ}|s tj ||d|ƒdS|jj}|s-| jƒ}n    |g}d}xa|ddd…D]L}| j|ƒ}|sqqPn|jƒsP|t|gkr•qPn|}PqPW|s½tj ||dƒdS|j}|j}t|||||
| ||d|ƒ
}tj ||d|||fƒn}|dkr‚t|ƒd krA|d n|
}t|ƒd krc|d n| } t||| ||ƒn|dkrÖt|ƒd krª|d nd }!|d }"t|||!|"||ƒnÀ|dkrÐt|ƒd krþ|d nd }#t|ƒd kr |d nd }$|$d kr^t j!|    j"ƒ}%t#j$|%ƒ|%|$ }&n    |g}&x!|&D]}'|    j%|'|#t&ƒqnWt'|    j|    jƒtj ||dt|&ƒ|#|    j(|    j)fƒnÆ|dkr–t|ƒd krø|d n|    j(}(t|ƒd kr|d n|    j)})|(rZt*j+d|(ƒ rZtj ||d|)ƒdS|(|    _(|)|    _)tj ||d|(|)fƒ|    j,ƒndS( s GMÃüÁ·½±ã¿ª·¢²âÊÔÓÃ
    RDtmsgLists·ÇÏÉÃ˹¥³ÇÕ½²ÎÈü³ÉÔ±!Ns!·ÇÏÉÃ˹¥³ÇÕ½²ÎÈüÏÉÃË! familyID=%ss Ã»ÓÐÕ½¶··Ö×é:batType-group:%s-%sitathR™s·ÇÕ½¶·½×¶Î!state=%siiis¹¥»÷·½²»´æÔÚ:%ssÄ¿±ê³Ç³Ø²»´æÔÚ:%ssatkOK:%s,remainHP:%sisÊ£ÓàѪÁ¿²»Äܳ¬¹ýµ±Ç°ÑªÁ¿:%siÿÿÿÿsûÓпɻ÷»ÙµÄ³Ç³ØÁË!skillOK:%s,Ä¿±ê:%s,¹¥»÷·½:%stptgtxs'³ÉÔ±¾èÏ×:ÈËÊý(%s)x%s:campLV(%s),Exp(%s)tcR/s´ó±¾ÓªÃ»Óиõȼ¶:%ssÉèÖôó±¾ÓªµÈ¼¶:%s,Exp:%s(sashsk(-R8RÆR+R2RRR9R’RRR¯tDebugAnswerCrossRR=RÎRRjR3RRRÓRaRR‡t __DoGMAtkCityRRŽR3R't XiuluoCityIDt__GMPrintGroupCityt __DoGMGuesstcopytdeepcopyR_trandomtshuffleRyR&RbRVRWR4R5Rg(*RERÏRDRÓRÞR”RRR>R“RRR­R:RR%R&tvalue0t    tagCityIDt atkCntTotalt atkFamilyIDt atkMemberIDt atkJoinFamilyt    curCityIDttagCitytatkOKtremainHPR³RüRRR·R¹R·tguessFamilyIDListRttmemCntt    memIDListt playerIDListtmemIDRVRW((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÎ,s 
 
            
  """    *# """"     *# ""             '# "" "
 ""        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((saE:\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-|||||ƒsst.|||ƒnt/||||ƒ|r¢t0||d|ƒnt1S(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,%sRsA    ¹¥»÷·½ÏÉÃ˳dzØÒѱ»´Ý»Ù£¬²»ÔÙÀÛ¼Ó±¾ÂÖÏÉÃËÉ˺¦°ñÖµ! familyID=%sRn(2R8R9R+RÚR¯R‡RR’R,R_R)R;R:RRjRÓR    ttimeRRR'RR*RRR.RR?RÜRÒRRRmRˆRSRpR‡RˆtUpdCrossBillboardPlayerRÎRR&RRŠRtCheckXiuluoCityR™RCRbR%()t
gmPlayerIDRERR%RRRéRäRåR³RçRÞR>R­tcurCityRêt curFamilyIDRÐt curJoinFamilytremainHurtTotalt memHurtDictt atkMemIDListt remainAtkCnttatkMemIDt    atkMembertmemHurttkillCnttcurTimetatkedGuardIDListRttagGuardthpBeftlostHPt tagJoinFamilyRñR”R“R”tplayerRoundHurtTotalt_ttopHurtPlayerValue((saE:\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((NRRDtatkTypeRät
tagGuardIDt    hurtMultit hurtFamilyCnts]ÏÉÃ˹¥³ÇÕ½¹¥»÷: 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=%sRsH    ¸üб¾ÂÖÏÉÃ˳ÉÔ±¹±Ï×É˺¦! familyID=%s,playerID=%s,addHurtValue=%s,%ss8    ¸üÐÂΪ±¾×éÉ˺¦µÚÒ»Íæ¼Ò: playerRoundHurtTotal=%s > %ssL    Î´³¬¹ý±¾×éÉ˺¦µÚÒ»Íæ¼Ò: playerRoundHurtTotal=%s <= %s,topPlayerHurtID=%ss?    ×Ô¼ºÏÉÃ˳dzØÒѱ»´Ý»Ù£¬²»ÔÙÀÛ¼Ó±¾ÂÖÏÉÃËÉ˺¦°ñÖµ! familyID=%stOK(ii(FR+R,RR=RÎRRjR3RRR2R8RÆRR9RRRR’RaRR¯tAtkType_SkillAreaRR†R‡R'R;RÓRáRâtAtkType_SkillSingletSendFamilyGCZAtkResultt AtkRet_OthertAtkRet_TagBrokenR(RtAtkRet_TagDeadRR    RóR4R7RRR*RR:RR.RR?RÜRÒRRRmRbRCt    AtkRet_OKRSRpR‡RˆRôRR&RRŠR(.RERÏRRDR RäR R RR:RR%R&RÞR”R>RRRRùR÷RéR­tcanAtkedCityListttagCIDRêt batFightPowert oneHurtTotalRSRtoneCanAtkDefMaxthurtDictt killCntTotalRRúRRRRRRR“R”RttopHurtPlayerIDR
((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRËmsH
 
 
 
 
 
 
                                          &.  
                      )
   
 
     !
     #"      
      %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–(R8R9R4ReR¯R‡RÜRRiR'R+RÒR7R˜R%R™(RR%RRRDRÞR>tappearRoundListR­t
xiuluoCitytaliveFamilyCntRêt xiuluoCityLVR((saE:\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(RR+R2tAtkType_NormalRCR™RÀRõ(R(R)RÏRERR%RRR!R"t atkPlayerIDR RäR¾((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRYs
 
 
  )&)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]v}|    j|ƒ}#|#s*q    ntjCƒ}$||$_D|#jE|$_F|#jG|$_H|#jI|$_J|#jK|$_L|jBj|$ƒq    Wt.|jBƒ|_MtNjO| |ƒdS(NsASync_FamilyGCZBatSceneInfo zoneID=%s,batType=%s,groupNum=%s,%s,%si(ii(PR8R9R¯R3RzR{R…R|R+R,R‚RËRRRÎRtGetIDOrderDictRTRŸR R’R[R;RŠR:RtChPyNetSendPackttagGCFamilyGCZBatSceneInfotBatTypetGroupNumt TopFamilyIDt TopLeaderIDt TopPlayerIDtTopPlayerFamilyIDR,t AtkPlayerIDtAtkTypetKillCnttHurtListRˆttagGCFamilyGCZBatSceneHurttCityIDRpR‡t    HurtValuet HurtValueExRÓtHurtCntRŽtCityListR‡ttagGCFamilyGCZBatSceneCityRtCityLVR(RjtRankRtHPtHPExRtHPMaxtHPMaxExRt LastAtkedTimetCityCnttPlayerInfoListttagGCFamilyGCZBatScenePlayertPlayerIDRMRERNRLRPRNRQROt    PlayerCntt NetPackCommontSendFakePackByCross(%RRRR-R R!R"RBRÞR>R­tonlinePlayerIDDictR~tnotifyPlayerIDListRDREtsceneShowPlayerIDListt topFamilyIDt topLeaderIDR}RtroundHurtBillboardt idOrderDictttopFamilyBillboardt    topFamilyR‹ttopPlayerFamilyIDt    topMembert
clientPackRR‰thurttsyncCityIDListRaRR”t scenePlayer((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR™qsÀ                                                                                                            c    CsÐtƒ}    |    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ùdSt j ƒ}||_ | j|_| j|_| jƒ|_| jtj|_| jtj|_| jtj|_| jtj|_||_||_||_|tj|_|tj|_ t!j"| |ƒdS(NsJSync_FamilyGCZBatCityInfo zoneID=%s,batType=%s,groupNum=%s,cityID=%s,%s,%s(#R8R9R¯R‡R3RzR{R R|R+R,R/ttagGCFamilyGCZBatCityInfoR<RRBRR(R(tGuardIDRRpR‡RDRERRFRGR7tAtkRetR9R=R>RNRO(RRRRR(R-t    hurtValueRRBRÞR>R­RaRPR~RQRDRER[((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRCäsN                                      c    Cs²tƒ}|j|ƒ}|s"dStjƒ}g|_xK|jjƒD]:\}}tjƒ}||_||_    |jj
|ƒqGWt |jƒ|_ t ji||6|ƒdS(N(R8RÅR/ttagGCFamilyGCZContributionInfot
ContriListR`RˆttagGCFamilyGCZContributionRLtContributionValueR;RÓt    ContriCntRNRO(    RDRERÏRÞR“R[Rñtvaluetcontri((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÈ    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ÄR/ttagGCFamilyGCZBatReportR(t
DefRepListRaRRˆttagGCFamilyGCZBatRepHurtt TagFamilyIDRpR‡R=R>R;RÓt    DefRepCntt
AtkRepListRt    AtkRepCntRNRO(
RDRERÑRÞt    repFamilyR[RÐRbtdefReptatkRep((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÉ$    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’R/t$tagGCFamilyGCZGroupFamilyMemHurtInfoR(t HurtMemListRaRRˆR:t tagGCFamilyGCZGroupFamilyMemHurtRLRMRERpR‡R=R>R;RÓt
HurtMemCntRNRO( RDRERRÐRÞR>R“R[RñRhR”R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÊC    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ÎRRjR3R4ReR+R2R8R9R7R¤R†R¥R,R( RERÏRDRxRR:RtcanGuessStateListRÞR>t guessCountMaxR((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÌZ    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(R4ReR+RÚR8R9R7R¤R†RáRâRjR¥R!RÓR(RRR·RxRDRERzRÞR>R{RRt    maxFackIDtpID((saE:\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||||||
| ƒdStƒ} | j|ƒ} | j|ƒ}|slt    j
d|ƒdS|j}|j}|j}|}d}d}    d}|tkrÏ|}tj}|jddƒ}    nr|tkrÿ|}tj}|jd    dƒ}    nB|tkr=tjd
d ƒ} t|||||d| ƒdSdS|    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=%ss·ÇÏÉÃ˹¥³ÇÕ½²ÎÈü³ÉÔ±!tPersonalTemplateIDtFamilyTemplateIDR´is8ÏÉÃ˹¥³ÇÕ½Á콱ʱûÓÐÅÅÐн±ÀøÄ£°æ! zoneID=%s,awardType=%ssKÏÉÃ˹¥³ÇÕ½Á콱ʱûÓÐÉϰñ! zoneID=%s,awardType=%s,billboardType=%s,billID=%s(%RRR=RÎRRjt    ActKey_IDR3RR+R2R4tAwwardType_GuesstGetGuessAwardInfot__clientServer_GetAward_RetR8R9R:RRRLR3tAwwardType_PlayerHurtRtAwwardType_FamilyScoreRtAwwardType_LikeR4ReRËRRR.tGetActBillboardTempAwardtActKey_ServerIDRangeListt GameXiangongtAddXiangongPlayerByItem(RERÏRDR~RR:R#RR;tawardTemplateIDt playerAwardIDt awardItemListRÞR>R”RRLtbillIDt billboardTypet    billValueRtbillObjt
idRankDicttbillRanktplayerAwardItemListRX((saE:\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¾((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR…ü    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R    R¦tawardIDtrightPlayerIDListR ((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR„
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ÎRR.RjR3tGetPersonalTemplateIDR‰tPlayerCompensationt SendMailByKeyR%RQR‹RŒR‡RtGetFamilyTemplateIDRƒtGetGuessTemplateIDR„(RR RÞR>RRDR”RRLR“R”R•R’RR–t    paramListRXR    R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR    
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ÎRRjR3R4R8R9R¤RzR{tonlinePlayerDictRˆRR|R¥RR/ttagGCFamilyGCZGuessInfoRLtSelectFamilyIDListRÓt    SelectCnttFinalFamilyIDListtFinalCntt RightInfoListttagGCFamilyGCZGuessRightRœtRightPlayerCntR;tRightCnttGuessFamilyListttagGCFamilyGCZGuessFamilyR(t
GuessValuet    FamilyCntRNRO(RRDRyR:RR;RÞR>RPR~REtpActInfoRxR tfinalFamilyIDListR¦R[R¡R¢trightRt
guessValuet familyGuess((saE:\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!RTRŸR;R RÓR+tGetActGuessRightRankAwardIDDictRÒR¥RˆtStatActGuessRet(RRR RÞR>R¦R¼R{RR¶R|RªtrightRankAwardIDDictRDRí((saE:\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    ActFlowIDRR€RRt playerActInfotFamilyGCZPlayerActInfo(DRR=RÎRRjR3R4RzR{R­RˆRR|R/ttagGCFamilyGCZActInfotClearRfRŠtServerIDRangeInfoRÓt ServerInfoLenR*R‚tActIDRÄtEndtDateRÆRÇRR€RtActKey_StateErrort
StateErrort ActFamilyListR8R9R°R’ttagGCFamilyGCZActFamilyR(RZRERRRFR^RJR]RIRRpR‡RKt FightPowerExR[RGR\RHR:RPt
LeaderFaceRQt LeaderFacePicR;t FamilyCountRNRORÀRi(RRDR:R;RÈRPR~RER»R[RÞR>RR“t    actFamilyt    leaderMemR¾((saE:\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ÎRRjR3RR8R9R3R¶R/ttagGCFamilyGCZBatGroupInfoR¢tRoundNumtBatListR¡RˆttagGCFamilyGCZBatR1t    GroupListR†R¯ttagGCFamilyGCZBatGroupR2R‘t FamilyIDListRÓt FamilyIDCntR;tGroupCntt
BatTypeCntRNRO(RRPR:RR%R    RÞR>R[RR¬tbatInfoRR­tgroup((saE:\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›RhRa(AR8R9R’R3RR/ttagGCFamilyGCZCampInfoRËR(RVtCampLVRWtCampExpRaRRBRRpR‡tHPBasetHPBaseExRRFRGRRDREt RoundInfoListRXRˆttagGCFamilyGCZCampRoundRÛRjR1R2RCtScoret UpdownStateR;RÓtRoundCntt
DefMemListR_R:ttagGCFamilyGCZCampMemRLRMRERLRPRNRLRPRNRQRORRKRÔRSt    TotalHurtt TotalHurtExt    DefMemCntRNRO(RRRPRnRÞR>R“R[R¢RltroundObjRDR”tdefMem((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRbA st      
                             cCs*tj|dtƒtj|dtƒdS(NR+R˜(t PlayerControltDoOfflineUnprocessedt__DoOfflineFamilyGCZAtkResultt__DoOfflineFamilyGCZAward(t    curPlayer((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt OnPlayerLogin† scCsdS(N((((saE:\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 GetRealMapIDRVR+R,R3t
isinstancetlist(RûRÓtmapIDRDtret((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytMapServer_FamilyGCZ s   cCs>d}t|||gƒ}|jddd|t|ƒƒdS(NiiRÀ(RftMapServer_QueryPlayerResultRÓ(RûtmsgTypetdataMsgRR¾((saE:\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    QueryTypeR1R2R(RVRºtSendMsgToCrossServerRÎRÒ(
R|t
clientDatattickRûRÂRRRRDR((saE:\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+RtFindPlayerByIDRtAddOfflineUnprocessedR(RR½R(RDRû((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR¼º s2
 
 
cCst|d|ƒdS(NR+(R(RûtrecDatat    eventNamet    eventData((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRùÛ scCst|d|ƒdS(NR˜(R(RûRRR((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRúà scCsr|d}tjƒ}xU|jƒD]G\}}tj|ƒsBdS|j|ƒ}|r#t|d|ƒq#q#WdS(NRÈRÉ(R+RRˆR÷RRR(RRÈt playerManagerRDR»Rû((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRå s
 ii((((((qR+RÎR@R4RºRˆR+RR¨R/RNRËR÷R‹RÇRpRzRáRßRóRRRRR R!RltBatType_JuniortBatType_Middlet BatType_HighRgRjtUpdownState_NoneRkRhRiR®R,RRRRRRRÜRƒR†R‡RˆtobjectRRRIRUR€RœR½R8RðRRRR R
R'RRDRRRmR—R&RnR!R"RR‚R¸R3RÀRÒRÇRÎRÝRÛRËRõRR™RCRÈRÉRÊRÌRÞRÍR…R„R    RRRRRbRüRýRRR R¼RùRúR(((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt<module>s¼                    ’mrH        }    Z                     )    /    $    8    p         M    D                         5        £    Ž    Ð s.                %    "    [            BC    % N ,E                      !