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
5çøgc@sSddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZdZdZdZdZdZeddNƒZ\ZZZeZeZedƒ\ZZ Z!Z"dZ#eddOƒ\Z$Z%Z&edƒ\Z'Z(Z)Z*dZ+edƒ\Z,Z-Z.d    e/fd
„ƒYZ0d dPd „ƒYZ1d e0fd„ƒYZ2ddQd„ƒYZ3ddRd„ƒYZ4ddSd„ƒYZ5ddTd„ƒYZ6d„Z7d„Z8d„Z9d„Z:d„Z;d„Z<d„Z=d„Z>d„Z?d „Z@d!„ZAd"„ZBd#„ZCd$„ZDeEd%„ZFd&„ZGd'„ZHd(„ZId)„ZJd*„ZKdd+„ZMd,„ZNd-„ZOd.„ZPd/„ZQd0d0d0d1„ZRd2„ZSd0d3„ZTid0d4„ZUd0d0id0dd5„ZVd0d0d0d0dd6„ZWd7„ZXd8„ZYd9„ZZd:„Z[d;„Z\d<„Z]d=„Z^d>„Z_d?„Z`d0d0d@„ZadA„Zbd0dB„ZcddC„ZddddD„ZedE„ZfdF„ZgdG„ZhgdH„ZidI„ZjdJ„ZkdK„ZldL„ZmdM„ZndS(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__cs                     cCs |jdkS(Ni(R(R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytIsDeadkscCs>|j||_t|jd|dƒ|_|j|_dS(NidgY@(RRtintRR(RthpFightPowerMultitaddHPPer((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytRefreshFighterAttrms (t__name__t
__module__RRR (((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR`s        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.pyRvs*                                                                             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.pyRss                     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.pyRs"                                                            (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.pyRs&                                                                    cCsQd|_d|_|jj|j|jƒ|jj|_t|j|j    ƒdS(Ni(
RRRaR#RVR_RtSync_FamilyGCZCampInfoRR(R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytOnRoundFamilyReset5s         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.pytRefreshFamilyAttrEs
cCs:d}x-|jjƒD]}||jddƒ7}qW|S(Nitscore(RXtvaluestget(Rt
totalScoretinfo((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt GetTotalScoreMsc 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
AddCampExpTs8          "
             *  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 GetBatGroup.s  cCs|jS(N(Rž(R((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetZoneLockFamilyIDList9scCs;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.pytAddZoneJoinFamilyCs cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R3R R&RI(RRDR”((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR:Ps  cCsad}||jkr%|j|}n"t|j||ƒ}||j|<tƒj||jƒ|S(N(R3R RIRR8tSetPlayerIDZoneID(RRDRR”((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytAddZoneJoinMemberYs cCs7i}x*|jjƒD]}|j|jƒƒqW|S(N(RŸRitupdateR(RR}R“((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytGetOLServerGroupIDDictdsic    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.pytSetPlayerInBatSceneksc 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.pytSetPlayerInBatCityxs$(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 OnSavePyDataUsœ         &  !(!     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.pytOnCrossJoinFamilyMemberUpd1s8              $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.pyRUsV   
                       *
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ª
     
 
      ) 
)&   
     !
/
 cCsø|s
dS|j}|j}|j}|j}d\}}}|j}|j}    |j}
t|j|j    ƒ} t
|j j j ƒƒ} | tj} | tj}|j}tjtj|
||||||| ||d| d|dtd|d|    ƒ dS(Nit groupValue2tid2tautoSorttvalue3tvalue5(iii(RRZR[R\R]R^RtGetRoundHurtGroupIDRRtsumRaRRiRptDef_PerPointValueRYtCrossBillboardtUpdCrossBillboardRÎRR%(R“tdataIDtname1R~tname2ttype2tvalue1tvalue2R€RRqR}troundTotalHurttcmpValuet    cmpValue2t    cmpValue3((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRmýs$                                  !+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>Fs    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!psp                  
"   #            
    "             c
CsÝ|tjddƒkrdStƒ}|j|ƒ}tjddƒ}tjƒ}|jtj    |ƒ}xet
|ƒD]W}|j |ƒ}|j }    |    |j krtd|j |    <tjd|||    fƒqtqtWt|ƒdS(NtFamilyGCZGuessiiis:ÏÉÃ˹¥³ÇÕ½Éú³É¾º²Â±¸Ñ¡Ãûµ¥: zoneID=%s,index=%s,familyID=%s(R4ReR8R9R7RËRR˜RÎRR!RšR›R¤R+RÒR(
RRRÞR>t guessRankMaxRt scoreBillObjR|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¹tguessCnttguessFamilyIDListRttmemCntt    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 (Csjtƒ} | 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ƒx |j ƒD]ÿ\}!}tjd|!|fƒ| j |!ƒ}"|"s.qðn|"j!|7_!|"j!t"j#}#|"j!t"j#}$t$j%t&j'|!||#|$dt(ƒ|jƒr‘qðn|j)j|!dƒ||j)|!<|j)|!}%| j*ƒ\}&}'|%|'krð| j+|!|%ƒqðqðW|jƒs t,|ƒnt-|||||ƒs7t.|||ƒnt/||||ƒ|rft0||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,%sRRn(2R8R9R+RÔR¯R‡RR’R,R_R)R;R:RRjRÓR    ttimeRRR'RR*RRR.RR?RÖRÒRRRˆRSRpR„R…tUpdCrossBillboardPlayerRÎRR&RRŠRRmtCheckXiuluoCityR™RCRbR%((t
gmPlayerIDRERR%RRRãRÞRßR®RáRÞR>R­tcurCityRät curFamilyIDRÊt curJoinFamilytremainHurtTotalt memHurtDictt atkMemIDListt remainAtkCnttatkMemIDt    atkMembertmemHurttkillCnttcurTimetatkedGuardIDListRttagGuardthpBeftlostHPRì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Ât8||jd|#ƒnt9||||t:|||!ƒqW|st t!d|||| ||ƒdS|j;|7_;tjd |j;|ƒ|j;t<j=}(|j;t<j=})t>j?tj@|||(|)d!tAƒ|jƒsG    |jBj|dƒ||jB|<tjd"||||jBf|ƒtC|ƒ|jB|}*|jDƒ\}+},|*|,kr'    |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ÒRRRbRCt    AtkRet_OKRSRpR„R…RïRR&RRmRŠR(-RERÉRRDRRÞRRRR:RR%R&RÞR”R>RRRRôRòRãR­tcanAtkedCityListttagCIDRät batFightPowert oneHurtTotalRSRýtoneCanAtkDefMaxthurtDictt killCntTotalRüRõRþRRÿRRRŽRRttopHurtPlayerIDR((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÅ^sB
 
 
 
 
 
 
                                          &.  
                      )
   
 
     !
    #"      
      %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( NRDRRÞs.ÏÉÃ˹¥³ÇÕ½¹¥»÷ʧ°Ü: atkRet=%s:%s,atkType=%s,%sRBtatkRetterrMsgtreqMsgRRtFamilyGCZAtkResult(RR+R2tAtkType_NormalRCR™RºRð(R"R#RÉRERR%RRRRt atkPlayerIDRRÞR¸((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRGs
 
 
  )&)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|_Bxr|D]j}|    j|ƒ}#|#s*q    ntjCƒ}$||$_D|#jE|$_F|#jG|$_H|#jI|$_J|jBj|$ƒq    Wt.|jBƒ|_KtLjM| |ƒdS(NsASync_FamilyGCZBatSceneInfo zoneID=%s,batType=%s,groupNum=%s,%s,%si(ii(NR8R9R¯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 LastAtkedTimetCityCnttPlayerInfoListttagGCFamilyGCZBatScenePlayertPlayerIDRMRERPRNRQROt    PlayerCntt NetPackCommontSendFakePackByCross(%RRRR'RRRRBRÞ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™_s¾                                                                                                           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)ttagGCFamilyGCZBatCityInfoR6RR<RR(R(tGuardIDRRpR„R>R?RR@RAR1tAtkRetR3R7R8RHRI(RRRRR"R't    hurtValueRüRBRÞR>R­RaRJR~RKRDRERU((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ˆttagGCFamilyGCZContributionRFtContributionValueR;RÓt    ContriCntRHRI(    RDRERÉRÞR“RURì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„R7R8R;RÓt    DefRepCntt
AtkRepListRt    AtkRepCntRHRI(
RDRERËRÞt    repFamilyRURÊR\tdefReptatkRep((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 tagGCFamilyGCZGroupFamilyMemHurtRFRMRERpR„R7R8R;RÓt
HurtMemCntRHRI( RDRERRÊRÞR>R“RURìRbR”Rû((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÄ0    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ÉRDRrRR:RtcanGuessStateListRÞR>t guessCountMaxR((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÆG    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çRrRDRERtRÞR>RuRRt    maxFackIDtpID((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRØl    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 |||||||    ƒdStƒ}
|
j|ƒ} | j|ƒ} | s3t    j
d|ƒdS| j}| j} | j}|}d}d}    d}|tkr–|}tj}|jddƒ}    n4|tkrÆ| }tj}|jddƒ}    ndS|    sît    j
d    ||f|ƒdStjƒ}|j||ƒ}|jƒ}|j|dƒ}|sTt    j
d
||||f|ƒdSt    j||||    ||ƒ}|s|dSt    jd |||f|ƒ| jt d |ƒB| _i|d 6|d6|d6|d6|d6|d6|d6}t!d||gƒdS(NRDt    awardTypeis(ÏÉÃ˹¥³ÇÕ½·ÇÁì½±½×¶Î: zoneID=%s,state=%stGuessTemplateIDs·ÇÏÉÃ˹¥³ÇÕ½²ÎÈü³ÉÔ±!tPersonalTemplateIDtFamilyTemplateIDs8ÏÉÃ˹¥³ÇÕ½Á콱ʱûÓÐÅÅÐн±ÀøÄ£°æ! zoneID=%s,awardType=%ssKÏÉÃ˹¥³ÇÕ½Á콱ʱûÓÐÉϰñ! zoneID=%s,awardType=%s,billboardType=%s,billID=%ssIÏÉÃ˹¥³ÇÕ½Íæ¼ÒÇëÇóÁìÈ¡½±Àø! zoneID=%s,awardType=%s,playerAwardItemList=%siRR#t
awardValuet awardItemListRLtFamilyGCZAward("RRR=RÎRRjt    ActKey_IDR3RR+R2R4tAwwardType_Guesst__clientServer_GetAward_GuessR8R9R:RRRLR3tAwwardType_PlayerHurtRtAwwardType_FamilyScoreRRËRR˜R(tGetActBillboardTempAwardRÒRTtpowRº(RERÉRDRxRR:R#RR;tawardTemplateIDRÞR>R”RRLtbillIDt billboardTypet    billValueRtbillObjt
idRankDicttbillRanktplayerAwardItemListR¸((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÇŽ    sz
 
                                     &c Csæt||||ƒ\}}|s9tjd||ƒdStjd|||f|ƒtƒ}    |    j|ƒ}
|
j|ƒ} | rŸ| jtd|ƒB| _ni|d6|d6|d6|d6|d6|d    6} t    d
| |gƒdS( Ns%ÏÉÃ˹¥³ÇÕ½Íæ¼ÒûÓоº²Â½±Àø! zoneID=%ssKÏÉÃ˹¥³ÇÕ½Íæ¼ÒÇëÇóÁìÈ¡¾º²Â½±Àø! zoneID=%s,playerAwardID=%s,awardItemList=%siRRDR#RxR|R}R~(
tGetGuessAwardInfoR+R2RÒR8R9R:RTR…Rº( RRDRER#RRxtguessTemplateIDt playerAwardIDR}RÞR>R”R¸((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRâ    s        0c Cs¢d}g}t|||ƒ\}}x0|jƒD]"\}}    ||    kr1|}Pq1q1W|r˜tjdi|d6|d6tƒ}
|
r˜|
jƒ}q˜n||fS(NitActGuesst
TemplateIDtAwardID(t__statGuessFinalRˆR4tGetIpyGameDataByConditionR&tGetAwardItemList( RRRRDRR}RR¦tawardIDtrightPlayerIDListR ((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRŽô    s #cCs¼|s
dStƒ}|j|ƒ}|js/dStjd|ƒtjƒ}xi|jjƒD]X}|dkrtq\n|j|ƒ}|sq\n|j    }|j
}|j t dt ƒ@sg|j t dt ƒB|_ |jtj|ƒ}    |    jƒ}
|
j|dƒ} d} |jƒ} tj||| | | |ƒ}|rg| g}tjd|g||dtƒqgn|j t dtƒ@s-|j t dtƒB|_ |jtj|ƒ}    |    jƒ}
|
j|dƒ} d} |jƒ} tj||| | | |ƒ}|r-| g}tjd|g||dtƒq-n|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%RƒRtGetFamilyTemplateIDR€tGetGuessTemplateIDRŽ(RR RÞR>RRDR”RRLRŠR‹RŒR‰R†Rt    paramListRR}((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR    
s\                        %      % )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(NiRy('RR=RÎRRjR3R4R8R9R¤RzR{tonlinePlayerDictRˆRR|R¥R”R)ttagGCFamilyGCZGuessInfoRFtSelectFamilyIDListRÓt    SelectCnttFinalFamilyIDListtFinalCntt RightInfoListttagGCFamilyGCZGuessRightR“tRightPlayerCntR;tRightCnttGuessFamilyListttagGCFamilyGCZGuessFamilyR(t
GuessValuet    FamilyCntRHRI(RRDRsR:RR;RÞR>RJR~REtpActInfoRrRtfinalFamilyIDListR¦RUR—R˜trightRt
guessValuet familyGuess((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRA
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²RuRR±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    ActFlowIDRyRzR{Rt playerActInfotFamilyGCZPlayerActInfo(DRR=RÎRRjR3R4RzR{R£RˆRR|R)ttagGCFamilyGCZActInfotClearRftActKey_ServerIDRangeListtServerIDRangeInfoRÓt ServerInfoLenR*RtActIDRºtEndtDateR¼R½RyRzR{tActKey_StateErrort
StateErrort ActFamilyListR8R9R°R’ttagGCFamilyGCZActFamilyR(RZRERRRFR^RJR]RIRRpR„RKt FightPowerExR[RGR\RHR:RPt
LeaderFaceRQt LeaderFacePicR;t FamilyCountRHRIRºRi(RRDR:R;R¾RJR~RER±RURÞ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ˆttagGCFamilyGCZBatR+t    GroupListR†R¯ttagGCFamilyGCZBatGroupR,R‘t FamilyIDListRÓt FamilyIDCntR;tGroupCntt
BatTypeCntRHRI(RRJR:RR%RRÞR>RURR¬tbatInfoRR­tgroup((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyR÷
sH                         cCsRtƒ}|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|_)x7|j*D],} |dkr | |kr qün|j+| ƒ} | s;qüntj,ƒ} | | _-| j.| _/| j0| _1| j2| _3| j4| _5| j6tj| _7| j6tj| _8| jtj| _| jtj| _| jtj| _| jtj| _| j9tj| _:| j9tj| _;|j)j&| ƒqüWt'|j)ƒ|_<t=j>||ƒdS(NRiRR–RhRa(?R8R9R’R3RR)ttagGCFamilyGCZCampInfoRÁR(RVtCampLVRWtCampExpRaRR<RRpR„tHPBasetHPBaseExRR@RARR>R?t RoundInfoListRXRˆttagGCFamilyGCZCampRoundRÒRjR+R,R=tScoret UpdownStateR;RÓtRoundCntt
DefMemListR_R:ttagGCFamilyGCZCampMemRFRMRERLRPRPRNRQRORRKRËRSt    TotalHurtt TotalHurtExt    DefMemCntRHRI(RRRJRnRÞR>R“RUR¢RltroundObjRDR”tdefMem((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRb# sr      
                            cCs*tj|dtƒtj|dtƒdS(NR%R~(t PlayerControltDoOfflineUnprocessedt__DoOfflineFamilyGCZAtkResultt__DoOfflineFamilyGCZAward(t    curPlayer((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt OnPlayerLoging scCsdS(N((((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pytClientServer_CrossActInfol 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_FamilyGCZp s   cCs>d}t|||gƒ}|jddd|t|ƒƒdS(NiiR¶(RftMapServer_QueryPlayerResultRÓ(RòtmsgTypetdataMsgRùR¸((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    QueryTypeR+R,R(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+RþtFindPlayerByIDRtAddOfflineUnprocessedRû(RýR·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òR    R
R ((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+RþRˆRîRRRû(RýR¾t playerManagerRDR±Rò((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyRÆ s
 ii((((((oR+RÎR@R4R´R…R+RRžR)RHRËRîRÇRpRzRÛRÙRîRRRRR R!RltBatType_JuniortBatType_Middlet BatType_HighRgRjtUpdownState_NoneRkRhRiR©R&RRRRRRRÖ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ôRúRûRR¶RðRñR(((saE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossFamilyGCZ.pyt<module>sº                   ’mrH        }    Z                     )    /    $    8    p         M    D                         5        £    ˆ    Í r.                %    "    T            <C    % N ,D                      !