1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
‡Uÿgc@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl!Z!ddl"Z"ddl#Z#ddl$Z$e%dƒ\Z&Z'Z(dd±d„ƒYZ)d„Z*d„Z+d„Z,d„Z-d    „Z.d
„Z/d „Z0d „Z1d „Z2d„Z3d„Z4d„Z5d„Z6d„Z7d„Z8d„Z9d„Z:d„Z;d„Z<d„Z=d„Z>d„Z?d„Z@d„ZAd„ZBdd„ZDdd„ZEd d!„ZFd"„ZGd#„ZHd$„ZId%„ZJd&„ZKd'„ZLd(„ZMd)„ZNd*„ZOd+„ZPd,„ZQejRejSd-„ZTgd.„ZUd/„ZVd0„ZWd1„ZXd2„ZYd3„ZZd4„Z[d5„Z\d6„Z]d7„Z^d8„Z_d9„Z`d:„Zad;„Zbd<„Zcd=„Zdgeed>„Zfd?„Zgd@„ZhdA„ZidB„ZjekdC„ZldD„ZmdE„ZndF„ZodG„ZpdH„ZqdI„ZrdJ„ZsddK„ZtdL„ZudM„ZvdN„ZwdO„ZxdP„ZydQ„ZzdR„Z{dS„Z|dT„Z}dU„Z~dV„ZdW„Z€dX„ZdY„Z‚dZ„Zƒd[„Z„d\„Z…d]„Z†d^„Z‡d_„Zˆd`„Z‰da„ZŠdb„Z‹dc„ZŒdd„Zde„ZŽekdf„Zdg„Zdh„Z‘di„Z’dj„Z“dk„Z”dl„Z•dm„Z–dn„Z—do„Z˜dp„Z™dq„Zšdr„Z›ds„Zœdt„Zdu„Zždv„ZŸdw„Z dx„Z¡dy„Z¢dz„Z£d{„Z¤d|„Z¥d}„Z¦d d~d„Z§d€„Z¨d„Z©d‚„Zªdƒ„Z«d„„Z¬d…„Z­d†„Z®d‡„Z¯dˆ„Z°d‰„Z±dŠ„Z²d‹„Z³dŒ„Z´d„ZµdŽ„Z¶d„Z·d„Z¸d‘„Z¹d’„Zºd“„Z»d”„Z¼d•„Z½d–„Z¾d—„Z¿d˜„ZÀeed™„ZÁdš„ZÂd›„ZÃdœ„ZÄd„ZÅdž„ZÆdŸ„ZÇd „ZÈd¡„ZÉd¢„ZÊd£„ZËd¤„ZÌd¥„ZÍd¦„ZÎd§„ZÏd¨„ZÐdd©„ZÑdª„ZÒd«„ZÓd¬„ZÔd­„ZÕd®„ZÖd¯„Z×d°„ZØdS(²iÿÿÿÿNit    FamilyMgrcBsJeZd„Zd„Zd„Zdd„Zded„Zdd„ZRS(cCsg|_g|_i|_dS(N(tsortFamilyIDListtfightPowerChangeFamilyIDListtsyncCrossFamilyDict(tself((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt__init__Ds            cCs3||jkr"|jj|ƒn|j|ƒdS(N(RtremovetSetSyncCrossFamilyDel(RtfamilyID((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnDeleteFamilyIDMs cCs4||jkr t|jƒdS|jj|ƒdS(Ni(Rtlentindex(RR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyIDRankSsicCsJ||jkr6|jj|ƒtjd|jƒn|j||ƒdS(Ns7ÏÉÃËÕ½Á¦±ä¸ü´ý´¦ÀíÁбí: fightPowerChangeFamilyIDList=%s(Rtappendt    GameWorldtDebugLogtSetSyncCrossFamilyUpd(RRtplayerID((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt!AddFamilyIDToFightPowerChangeListXs
cCse||jkrg|j|<n|rQ|j|}||krQ|j|ƒqQn|ratƒndS(N(RR t!Sync_ClientFamilyUpdToCrossServer(RRRtsyncNowtneedSyncMemIDList((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR_s  
cCs6|g}tjƒ}|jtj||ƒtƒdS(N(t PyDataManagertGetDBGameRecDataManagertAddGameRecDatat ShareDefinet"Def_GameRecType_FamilyDelSyncCrosst!Sync_ClientFamilyDelToCrossServer(RRRt valueSetListt
gameRecMgr((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRks
     (    t__name__t
__module__RR    R RtFalseRR(((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRBs                   cCs(tj}|s$tƒ}|t_n|S(N(t
PyGameDatat g_familyMgrR(tmgr((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt GetFamilyMgrts
         cCs
|jƒS(N(tGetPoint(t    curFamily((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyWarRank}scCs |j|ƒS(N(tSetPoint(R&trank((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetFamilyWarRank~scCs|jƒtj|jƒS(N(t    GetExtra4tChConfigtDef_PerPointValuet    GetExtra5(R&((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyTotalFightPower€scCsB|j|tjƒ|j|tjƒtƒj|jƒƒdS(N(t    SetExtra4R,R-t    SetExtra5R$RtGetID(R&ttotalFightPower((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetFamilyTotalFightPowerscCs)tjƒj|ƒ}|sdSt|ƒS(Ni(RtGetFamilyManagert
FindFamilyR/(Rtfamily((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyTotalFightPowerByID†scCs
|jƒS(N(t    GetExtra6(R&((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyEmblemIDŒscCs'|j|ƒtƒj|jƒƒdS(N(t    SetExtra6R$RR2(R&temblemID((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetFamilyEmblemIDs cCs
|jƒS(N(t    GetExtra3(R&((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyBroadcastCnt“scCs|jt|tjƒƒS(N(t    SetExtra3tminR,tDef_UpperLimit_DWord(R&tsetCnt((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetFamilyBroadcastCnt”scCs
|jƒS(N(t    GetHornor(R&((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyBossFood–scCs|jt|tjƒƒS(N(t    SetHornorRAR,RB(R&RC((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetFamilyBossFood—scCs
|jƒS(N(t    GetExtra2(R&((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetCurWeekMissionMoneyšscCs|jt|tjƒƒS(N(t    SetExtra2RAR,RB(R&tvalue((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetCurWeekMissionMoney›scCs
|jƒS(N(t    GetExtra1(R&((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyMixServerDayžscCs |j|ƒS(N(t    SetExtra1(R&RL((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetFamilyMixServerDayŸscCs|jƒ|jƒtjS(N(t
GetExattr3t
GetExattr5R,R-(t    curMember((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetMemberFightPower¡scCs,|j|tjƒ|j|tjƒdS(N(t
SetExattr5R,R-t
SetExattr3(RTt
fightPower((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetMemberFightPower¢scCs
|jƒS(N(t
GetExattr4(RT((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetMemberJoinTime§scCs |j|ƒS(N(t
SetExattr4(RTtjoinTime((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetMemberJoinTime¨scCstjƒrntƒdS(N(Rt IsCrossServert DoFamilySort(((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnGameServerInitOK«s cCs§tjƒrdStjƒtjƒ}xst|jƒƒD]_}|j|ƒ}t|dƒ|j    ƒ}t
|ƒ}t j |ƒ}t jtj||ƒq9WtƒdS(Ni(RR_tGameWorldFamilyWartDoFamilyWarResetR5txrangetGetCounttGetAtR*R2tGetFamilyBillboardInfotPlayerActBossTrialtGetFamilySubmitTotalByIDtPlayerBillboardtUpdateFamilyBillboardRtDef_BT_BossTrialSubmitFamilyR`(t familyManagertiR7RtfamilyBillInfotfamilySubmitTotal((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnMixServerInit³s 
    cCsºtjƒ}x§t|jƒƒD]“}|j|ƒ}|jƒrFqn|jƒ}|jƒ}tj    |ƒ}|syqntj
|ƒ}|j |ƒtj d||||fƒqWdS(Ns@Æô¶¯¸üÐÂÏÉÃËËùÊô·þÎñÆ÷ID: familyID=%s,serverID=%s,leaderID=%s,%s( RR5RdReRft GetServerIDR2t GetLeaderIDt PlayerControltGetDBPlayerAccIDByIDtGetAccIDServerIDt SetServerIDtLog(RmRnR7RtleaderIDt leaderAccIDtserverID((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnLoadDBPlayerOKËs     !cCsÈtjdƒ}tdt|ƒdƒ}tjddƒ}tjƒ}td||jƒƒ}g}d}xJt    |ƒD]<}t
j t
j |ƒ}|j |ƒ|rx|d7}qxqxW||}    |    dkr´tt|ƒt|ƒƒ}tj|ƒxÊ|D]¯}
||
d} tj| ƒ} tjƒj| ƒ} | rBqþnd|krRgS|jdƒ} t
jt
j | |
ƒtjd| |
fƒ|
|| <|    d8}    |    sþPqþqþWn|    dkrÄgS|S(s Ëæ»ú3¸ö¼ÙÏÉÃËtFakeFamilyNameiiis'    Ëæ»ú¼ÙÏÉÃË  changeIndex=%s,value=%s(t IpyGameDataPYtGetFuncEvalCfgtrangeR
t
GetFuncCfgRR5tmaxReRdtPlayerDBGSEventtGetDBGSTrig_ByKeytDef_FakeFamilyIndexR tlisttsettrandomtshufflet    GbkToCodetFindFamilyByNameR tSetDBGSTrig_ByKeyR(tfakeFamilyNameListt
randomListt    randomCntRmt lackFakeCntt
fakeIDListt
curfakeCntRnt    fakeIndextlackCntRLt
familyNamet
findFamilyt changeIndex((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytRandomFakeFamilyàsD  
 
 
  cCs¬tjdƒ}tjddƒ}x„t|ƒD]v}tjtj|ƒ}|sVq.n|d}|dkr.|t|ƒkr.tj    ||ƒ}||kr¤|Sq.q.WdS(NR}iii(
R~RRRdRƒR„R…R
RRŠ(R•RRRntfakeIDt    nameIndextfakeName((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyNameFakeIndex    s
  cCstƒ}tt|ƒtdgƒƒ}tjƒ}|jƒt|ƒ|_||_|sÞt    j
ƒ}x–t d|j ƒƒD]Y}|j |ƒ}|dks~|jƒ r²q~ntj|ƒrÇq~ntj||ƒq~Wn#tj|ƒrñdStj||ƒdS(s֪ͨ¼ÙÏÉÃËÐÅÏ¢iN(R˜R†R‡tChPyNetSendPackttagGCFakeFamilyInfotClearR
tCountt
FakeIDListRtGetPlayerManagerR€tGetPlayerCounttGetPlayerByIndextNonet    GetInitOKRttGetIsTJGt NetPackCommont SendFakePack(t    curPlayerR‘tfakeFamilyPackt playerManagerRn((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSyncFakeFamilyInfos&     
     cCsÚtjƒ}|jƒtjtjƒ|_|s³tjƒ}x–t    d|j
ƒƒD]Y}|j |ƒ}|dksS|j ƒ r‡qSntj|ƒrœqSntj||ƒqSWn#tj|ƒrÆdStj||ƒdS(Ni(RttagGCServerCreatFamilyTimesRŸRƒR„tDef_ServerCreatFamilyTimestTimesRR¢R€R£R¤R¥R¦RtR§R¨R©(RªtpackDataR¬Rn((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSyncCreatFamilyTimes3s  
 ic CsY|jƒ}|jƒdkr2tj|dƒdS|jƒdkrXtj|dƒdStjƒj|ƒ}t    ||ƒ}|s†dSt
|||ƒsœdStj ƒ}|j ƒ}||j ƒkrÚtj|dƒdStƒ}    |j|ƒ}
|
dkrtjd|ƒdStjƒ} | s1|| krCtj| ƒ}ntjd|
jƒ||fƒ|
jtj|jƒƒƒ|
jtjƒƒ|
jdƒ|
jtjƒt |
|ƒt!j"ƒj#|
jƒƒt$|
t%j&t%j'ƒƒt(|
|t)j*ƒt%j&t%j+ƒ} |r@| r@t,|ƒ}tj-d|ƒn|r·||    kr·t%j.t%j/|    j0|ƒdƒtjd|    j0|ƒƒt1j2d    d
ƒ} t3j4d |g| ƒnÅ| t1j5d d
ƒkrãtjd | ƒn™x;t6|    ƒD]-\}}|rðt%j.t%j/|dƒPqðqðWt1j5d ƒ}|r|t1j5d dƒ}t7||gƒ}|j8ddd|t9|ƒƒnt:ƒt;ƒtj|dƒt%j.t%j+t<| dtj=ƒƒt>ƒt?j@|jƒ||jAƒ||
jƒ| dƒtjd||
jƒ|| df|ƒtjBdd|jAƒ||
jƒgƒtCjD|
ƒdS(NtGeRen_chenxin_85890itXW_JZ_Family_Fulls¼Ò×å´´½¨ÊýÄ¿ÒÑÂú, ´´½¨¼Ò×åʧ°Üs-´´½¨ÏÉÃË: familyID=%s,playerID=%s,emblemID=%sisU    Íæ¼ÒÊÖ¶¯ÊäÈë´´½¨ÏÉÃËÃûÓëÏµÍ³Ëæ»úµÄ¼ÙÏÉÃËÃûÏàͬ£¬Ä¬Èϵ±×ö´´½¨¼ÙÏÉÃË!fakeIndexID=%ss'    ´´½¨Ç°n¸ö¼ÙÏÉÃ˲»¿ÛÇ®! ¼ÙÏÉÃËË÷Òý%sR}itFackFamilyNoticetCreateFamilyNeedMoneys,    ´´½¨Ç°n¸öÏÉÃ˲»¿ÛÇ®! creatFamilyTimes=%sitCreateFamilyPayMoneytXW_JZ_EstablishSuds4´´½¨¼Ò×å : %s(%s), fakeIndex=%s, creatFamilyTimes=%stjiazu_liubo_671654(Et GetPlayerIDt    GetFamilyR¥Rtt
NotifyCodet GetFamilyIDRt GetGameWorldt GetCharTrimtGetFamilyFullNametCheckFamilNameR5RetGetFamilyUpperLimitCountR˜t    AddFamilytErrLogtPlayerFamilyEmblemtGetDefaultFamilyEmblemIDListRˆtchoiceRxR2RwRvtGetAccIDt SetCreateTimetGetCurrentDataTimeStrtSetLVt SetAcceptJoinRtFamilyAcceptJoin_AgreeR=RtGetFamilyStoreItemManagertDelFamilyStoreItemAllRQRƒR„tDef_LastMixServerDaytDoPlayerJionFamilytIPY_GameServert    fmlLeaderR¯RœRRŒR…R R~RtPlayerCompensationt SendMailByKeyRt    enumeratetstrtMapServer_QueryPlayerResultR
R­R`RARBR²tDataRecordPacktDR_CreateFamilytGetNamet WorldNotifytPlayerFamilyZhenbaogetOnZhenbaogeReset(RªR•R“ttickR<t curPlayerIDtfullFamilyNameRmtcurCntt fakeIndexListR&t emblemIDListtcreatFamilyTimestfakeAwardItemListRntfindext    needMoneyt    moneyTypetsendMsg((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytDoCreateFamilyWs„                "#*( c Csýtj|ƒ}ttjdƒƒ}|\}}}}}||ksQ|dkrltjd||fƒdStj||ƒ}    |    r“|    \}}n|t|ƒ}
t|
ƒ|krùtjd||
t|
ƒ|fƒt    j
|d|d|gƒdS|
S(NtFamilyNameFormatisOGetFamilyFullName serverID=%s error! maxServerID=%s, check FamilyNameFormat.txttsOGetFamilyFullName familyName=%s,È«Ãû=%s len=%s > %s, check FamilyNameFormat.txttGeRen_liubo_980181i( RtGetPlayerServerIDtevalt ReadChConfigt GetChConfigRÄtGetDictValueByRangeKeyttupleR
RtR¼( RªR•R{troleNameFormatt
nameFormatt    paramListtmaxLent maxServerIDtspecServerDicttnameFormatInfotfullName((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÀàs#cCsF|j|ƒ}t|||ƒ|tjkrj|j|jƒƒ|j|jƒƒ|j|j    ƒƒnt
|t t j ƒƒƒt ||tƒ|j|jƒƒ|j|ƒ|jƒt|tjƒré|jƒtj|ƒnt|jƒ|jƒƒtj|jƒ|jƒ|jƒƒtj||jƒƒtj|jƒ|jƒƒtj |ƒt!j"|ƒt#j$||ƒt%j&ƒj'||jƒƒt(j)||jƒƒt*|t+j,|ƒƒt-ƒj.|jƒ|jƒƒt/j0|ƒt1j2||jƒƒt3j4|ƒt5j6||jƒ|jƒ|j7ƒƒdS(N(8t    AddMembertRefreshFamilyMemberBaseMsgRÒRÓt SetLeaderIDRºt SetLeaderNameRÛtSetLeaderOfficialRanktGetOfficialRankR^tintttimetChangeFamilyMemberLvtTruet SetFamilyIDR2t    SetFamilytMapServer_FamilyRefreshtGetFamilyMemberHasPowR,tDef_PurviewDictKey_CanCalltSync_FamilyInfotPlayerFamilyActiontViewFamilyRequestInfot__OnFamilyNameChangetPlayerViewCachetOnPlayerFamilyChanget
PlayerTeamtOnTeamMemFamilyRefreshRbtAddFamilyWarMemtCheckPlayerJoinFamilyWarInfotPlayerFamilyRedPackettNotifyRedPacketInfotPlayerFamilyBosstOnPlayerJionFamilyRRÎtSyncFamilyStoreItemt AuctionHousetSync_FamilyAuctionItemInfoRYRtt GetFightPowerR$RtPlayerFamilyPartytNotifyFamilyPartyQuestiontPlayerFamilySWRHtNotifySWRHInfot PlayerAssisttSyncFamilyAssistRÙtDR_PlayerJoinFamilyRe(R&t
jionPlayertjionFamilySetLvt familyMember((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÑûs< 
 
    %    (cCsŸtjd||ƒg}tjƒ}xr|D]j}|j|ƒ}|s_tjd|ƒq-n|j|ƒ}|sŠtjd|ƒq-n|j|ƒq-WdS(Ns(    Íæ¼ÒÕ½ÃËÃû±ä¸ü´¦Àí, newFamilyName=%ss;    Íæ¼ÒÕ½ÃËÃû±ä¸ü´¦Àí ÕÒ²»µ½ÕâÀàÐÍÅÅÐаñ billboardIndex=%ss,    Íæ¼ÒÕ½ÃËÃû±ä¸ü´¦Àí ¸ÃÍæ¼ÒûÓÐÔÚÅÅÐаñÉÏ (RRt GetBillboardt FindBillboardtFindByIDtSetName2(RR•tneedChangeFamilyBillboardListt billboardMgrtbillboardIndext    billBoardtplayerBillBoardData((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR:s  cCsF|jƒ}|tjkrtS|jt|t|ƒtjƒƒtS(N(tGetMoneyR,RBR tSetMoneyRAt!GetPlayerMoney_Change_FamilyMoneyR(RªR&t playerMoneytcurFamilyMoney((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytPlayerAddFamilyMoneyVs   cCst|tjƒS(N(RRt'Def_PlayerMoney_Change_FamilyMoney_Rate(R4((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR3gscCsÉtj|ƒr#tj|dƒdSt|ƒdksJt|ƒtjkrqtj|dtjdtjgƒdStjƒj    |ƒ}|dkrÅ|j ƒ|j ƒkr®t Stj|dƒdSnt S(NtXW_JZ_Family_NameNoLegalityiRîitXW_JZ_EstablishErr_Name(t    DirtyListtIsWordForbiddenRtR¼R
R,tDef_CreatFamily_MaxStrRR5R‹R¥R2R½R(RªR•RáR–((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÁos'# cCsdS(N((R Rß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytInputFamilyNamescCsdS(N((R Rß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt__Func_InputFamilyNamešscCs^tjƒj|ƒ}|j}|j}|j}t|||||ƒt|ƒ|jƒdS(N(    RR¢R¤tNametFakeIDtEmblemIDRët__ClearViewFamilyStatetMapServer_LeaveEvent(R t
clientPackRßRªt    inputNameR“R<((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt PyCreatFamily«s            
 
cCs|jtjƒdS(N(tSetViewFamilyStateRtTViewFamilyType_None(Rª((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRB½scCs…tjƒj|ƒ}tjƒ}tjƒj|jƒƒ}tjƒj    |ƒ}|dkrqt j |dƒdSt j |dƒdS(NtXW_JZ_Query_BeingtXW_JZ_Query_NoBeing( RR¢R¤RÒtIPY_CCheckFamilyNameExistR¾R¿RÛR5R‹R¥RtR¼(R RßRªtpackR•R&((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytCheckFamilyNameExistÍs  cCs¡ttƒjƒ}tj||ƒ}|dkrl|dksH||krltjd||f|jƒƒdStj|||ƒ\}}t|||||ƒdS(Nis>¿Í»§¶Ë²é¿´¼Ò×åÒ³·â°ü´íÎó,ÎÞ´ËÒ³ viewPage = %s, allPageCnt = %s(    R
R$RRt GetIntUpperRxRºt GetViewPageBeginIndexAndEndIndextSync_PyAllFamilyInfo(RªtviewPagetpageCnttsortRulet familyCountt
allPageCntt
startIndextendIndex((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSync_AllFamilyInfoës$     cCs•tjƒj|ƒ}|sdSxot|jƒƒD][}|j|ƒ}|jƒ}|s_q2n|r}|jƒ|kr}q2ntj    ||ƒq2WdS(N(
RR5R6RdReRft    GetPlayerRºR¨R©(RRDtexcludePlayerIDListR7R tmembert    memPlayer((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSendFamilyFakePacks c Csótƒj}t|ƒ}|dks0||kr4dStjƒ}tjƒ}|jƒ||_||_    g|_
xYt ||dƒD]D}    ||    }
|j |
ƒ} | s°q…n|j
j t|    | ƒƒq…Wt|j
ƒ|_tj||ƒdS(Nii(R$RR
RR5RttagGCPyAllFamilyViewRŸt
TotalCounttCurPagetFamilyRdR6R t__GetFamilyViewt    PageCountR¨R©( RªRURQRVRWRRTt    familyMgrtfamilyViewPackRnRR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRPs&    
            
cCs    tjƒ}|jƒ||_|jƒ|_|jƒ|_t|jƒ|_    |j
ƒ|_ |j ƒ|_ t|j ƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_t|ƒ|_t|ƒ}|tj|_|tj|_t|ƒ|_|S(N( RttagGCPyFamilyViewRŸt FamilyIndexR2tFamilyIDRÛt
FamilyNameR
t FamilyNameLenRstLeaderIDt GetLeaderNamet
LeaderNamet LeaderNameLentGetLeaderOfficialRanktLeaderOfficialRanktGetLVtFamilyLVRetFamilyMemberCountt GetAcceptJoint
JoinAcceptR'tWarRankR/R,R-tTotalFightPowertTotalFightPowerExR:RA(R R7t
familyViewR3((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRb(s& 
     cCsUtjƒj|ƒ}tjƒ}|jƒ}|sDt|dƒdSt||ƒdS(Ni(RR¢R¤RÒtIPY_CSearchFamilytGetMsgRXtSync_SearchFamily(R RßRªRLtmsg((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt SearchFamilyBs    cCsÒtjƒ}tjƒ}|jƒd|_d|_g|_xltt    ƒj
ƒD]X\}}|j |ƒ}|swqPn||j ƒkrqPn|jj t||ƒƒqPWt|jƒ|_tj||ƒdS(Ni(RR5RR^RŸt IsSearchingR_RaRÖR$RR6RÛR RbR
RcR¨R©(RªR}RdReRnRR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR|Qs   
            c CsKtjƒj|ƒ}|j}|j}td|jƒ}|j}tjƒ}t    j
ƒ}    |    j ƒ||    _d|    _ g|    _ x£ttƒjƒD]\}
} |j| ƒ} | s¹q’n|| jƒkrÑq’n|rï| jƒ|krïq’n|    j jt|
| ƒƒt|    j ƒ|kr’Pq’q’Wt|    j ƒ|    _tj||    ƒdS(Nii(RR¢R¤tMsgtLVRAtMaxCountRR5RR^RŸR_RaRÖR$RR6RÛRqR RbR
RcR¨R©( R t
clientDataRßRªR}t minFamilyLVtmaxCountRRdReRnRR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytPySearchFamilyos2              
            cCs2tjƒj|ƒ}|j}tj||ƒdS(N(RR¢R¤RARÅtOnChangeFamilyEmblem(R RƒRßRªtchangeEmblemID((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR‡”s    cCs{tjƒj|ƒ}|jƒ}|j}t|ƒ}|sgi|d6|d6}tjtj    |ƒdSt
j ||ƒdS(NRt tagFamilyID( RR¢R¤Rºt TagFamilyIDt__GetTagFamilyInfoPackt CrossRealmMsgtSendMsgToCrossServerRt ClientServerMsg_QueryCrossFamilyR¨R©(R RƒRßRªRR‰RDtdataMsg((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnViewTagFamily¡s      c    Csàtjƒ}|j|ƒ}|s%dStjƒ}||_|jƒ|_|jƒ|_    |j
ƒ|_ t |j ƒ|_ g|_xût|jƒƒD]ç}|j|ƒ}tjƒ}|jƒ|_|jƒ|_t |jƒ|_|jƒ|_    |jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_ t!|ƒ}|t"j#|_$|t"j#|_%|jj&|ƒq•Wt |jƒ|_'t(|ƒ}|t"j#|_$|t"j#|_%t)|ƒ|_*|j+ƒ|_,|S(N(-RR5R6RttagGCTagFamilyInfoRhRÛRiRqRrt GetBroadcastt    BroadcastR
t BroadcastLentMemberR€ReRfttagGCTagFamilyMemberRºtPlayerIDR?tNameLent GetFamilyLVRtGetJobtJobtGetFacetFacet
GetFacePictFacePicRt OfficialRankRUR,R-t
FightPowert FightPowerExR t MemberCountR/R:RARrtServerID(    R‰RmR7RDR RTtmemRXtfamilyFightPower((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR‹®sD             cCs_tjƒj|ƒ}|jƒ}|jƒ}|dkrMtjd|ƒdS|j|ƒ}|dkr|tjd|ƒdSt|t    j
ƒs¢tjd|ƒdSt |ƒ}t j dƒ}||kr    t j ddƒ}t|ƒ}    |jddd|    t|    ƒƒnt||dƒtjƒ}
|j|
jƒƒtjd    tj|jƒƒtj|
jƒƒf|ƒ|jƒtjƒ} x»td|jƒƒD]¤} |j| ƒ} | j| jƒƒ}|dkrÙqn|jƒ|jƒkr÷qn|j|d|
jƒdtj|ƒƒt j!ƒj"|j#ƒ|j#ƒƒqWt$ƒj%|j#ƒƒdS(
Ns'¸üй«¸æ -> ¿Í»§¶Ë·â°üÒì³£ ->Íæ¼ÒÎÞ¼Ò×ås)¸üй«¸æ -> ¿Í»§¶Ë·â°üÒì³£ ->ÕÒµ½³ÉÔ±´íÎós'¸üй«¸æ -> ¿Í»§¶Ë·â°üÒì³£ ->ÄãûÓÐȨÏÞtFamilyBroadcastiitFamilyBroadcastCostis¸ü¸ÄÏÉÃ˹«¸æ Family=%s,¹«¸æ=%s(&RR¢R¤RºR»R¥Rxt
FindMemberR
R,tDef_PurviewDictKey_CanBroadcastR?R~RR×RØR
RDRÒtIPY_CFamilyChangeBroadcastt SetBroadcastR{t    CodeToGBKRÛtBroadcast_FamilyChangeR€ReRftFindPlayerByIDtChatMit
PlayerTalktGetTalkExtraValueRtGetContactsManagertAddContactsBothR2R$R(R RßRªRàR&RTtcurBroadcastCnttmaxBroadcastCnttcroadcastCostGoldtresultRLR¬Rnt notifyMembert notifyPlayer((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytUpdateBroadcastÞsH       " 8
  (&cCsP|jƒ}t|tjƒ}|jƒ|krDtj|dƒtS|j|ƒ}|dkrst
j d|ƒtSt |tj ƒs™tj|dƒtS|j|jƒƒ}|dkrÎtj|dƒtS|jƒdkrôtj|dƒtS|jƒtjkr&tj|dtjgƒtSt
j||ƒsLtj|dƒtStS(Ntjiazu_lhs_202580sÌí¼Ó¼Ò×å³ÉÔ± - >ÕÒµ½³ÉÔ±´íÎótXW_JZ_InviteErr_PopedomtXW_JZ_InviteErr_RepeattXW_JZ_InviteErr_LvtXW_JZ_InviteErr_Antagonize(RºtGetFamilySettingR,tDef_FamilySetting_MaxMemberCntReRtR¼R R©R¥RRÄR
R R2R»RqtDef_Family_JionMinLVt IsSameCountryR(RªR&t    tagPlayerRàt maxMemberCntRTt    tagMember((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt__CheckCanAddFamilyMembers4   cCstjtƒ||ƒdS(N(Rt GetPsycoFunct__Func_AddFamilyPlayer(R Rß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytAddFamilyPlayer[sc
CsJtjƒ}|j|ƒ}|jƒ}|jƒ}|dkrStjd|ƒdStjƒ}|j    ƒ}|j
ƒ}d}    |dkr›|j |ƒ}    n|j |ƒ}    |    dkrÊt j|dƒdSt|||    ƒsàdS|j|    jƒtj|tjƒ|    j||jƒ|jƒ|jƒƒt j|d|    jƒgƒdS(NsAddFamilyPlayer, Íæ¼ÒÎÞ¼Ò×åitjiazu_hwj35_367906tXW_JZ_InviteEnter(RR¢R¤R2R»R¥RÄRÒtIPY_CAddFamilyPlayertGetTagIDt
GetTagNameR¯tFindPlayerByNameRtR¼RÈt
AddRequestt    reqFamilyR,tDef_EventClearTimetFrm_FamilyAskIfJoinRÛ(
R RßR¬RªRàR&RLtpack_FindPlayerIDtpack_FindPlayerNamet
findPlayer((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÊds.         "(cCstjtƒ||ƒdS(N(RRÉt__Func_AskJoinFamilyReply(R Rß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytAskJoinFamilyReply¥scCs9tjƒ}|j|ƒ}tjƒ}|j|jƒƒ}|dkr\tj    |dƒdSt
j ||tj ƒsxdS|j ƒs˜tj    |dƒdS|jƒ}|sÄtjd|jƒƒdSt|||ƒsÚdSt||tjƒ|jƒ}t||d|gƒtj    |d|jƒgƒ|jƒdS(Ntjiazu_hwj35_329496tXW_JZ_InviteErr_RefusesAskJoinFamilyReply, Íæ¼ÒÎÞ¼Ò×åtXW_JZ_EnterFamilytXW_JZ_EnterFamilyInfo(RR¢R¤RÒtIPY_AskJoinFamilyReplyR¯tGetTagPlayerIDR¥RtR¼t PlayerRequestt CheckRequestRÓtGetIsOKR»RÄR2RÈRÑt    fmlMemberRÛtNotifyAllFamilyMemberMsgR®(R RßR¬tnoFamilyPlayerRLt    srcPlayert    srcFamilytnoFamilyPlayerName((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÙ®s0      
cCsjtjƒ}|j|ƒ}tj|tj|ƒs7dS|jƒ}|dkrSdS|j}g}tjƒ}|j    |t
j ƒ}    xqt d|    j ƒƒD]Z}|    j|ƒ}
|
jƒ} |dkrÖ|j| ƒn|| kr™|j| ƒPq™q™W|sdS|jƒ} t} x=|D]5} |j| ƒ}|js«|rŒtj|d| jƒgƒd|df}|jddd|t|ƒƒqtj|t
j d|ƒqn|s·qnt|| |ƒsÏqnt| |tjƒt } t!| |d|jƒgƒtj|d| jƒgƒd|df}|jddd|t|ƒƒqW| rf| j"ƒndS(    Nitjiazu_pan_592934s[%s, %s]tAddFamilyReplyRRÝRÞi(#RR¢R¤tRefurbishPlayerTickR,tTYPE_Player_Tick_AddFamilyReplyR½t TagPlayerIDtGetFamilyActionManagertGetFamilyActionRtDef_ActionType_FamilyAddR€R tAtt    GetValue1R R»R R¯tIsOKRtR¼RÛRØR
R tClearFamilyActionRÈRÑRÒRäRRåR®(R RƒRßR¬RªtfamilyIdt tagPlayerIDttagPlayerIDListtallFamilyActionManagert familyActiontfamilyActionDataRR7t
isNeedSyncRÅRê((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRëësZ                  "# c    CsÒ|rtj|ƒrdStjƒ}x¦td|jƒƒD]}|j|ƒ}|j|jƒƒ}|dkrwq;n| r¢|r¢|jƒ|jƒkr¢q;ntj|ƒr·q;ntj
|||ƒq;WdS(Ni( RtR§RR¢R€ReRfR¯RºR¥R¼(    R&RªtcodetparListt includeSelfR¬RnR¹Rº((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRå@s  %cCs[d}xNtd|jƒƒD]7}|j|ƒ}|jƒ|krIqn|d7}qW|S(Nii(R€ReRfR™(R&tfamilyLVt    memberCntRnR'((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytFindFamilyMemberCntByPowLv_scCsP|tjkrdS|tjkr&dS|tjkr9dS|tjkrLdSdS(NRät fmlCounsellort fmlViceLeaderRÓRí(RÒRäRRRÓ(tinfo((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt__GetFamilyLVInfooscCstjtƒ||ƒdS(N(RRÉt__Func_FamilyChangeMemberLV(R Rß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytFamilyChangeMemberLVˆscCsˆtjƒj|ƒ}|jƒ}|jƒ}|dkrMtjd|ƒdStjƒ}|jƒ}|j    ƒ}t
||||ƒdS(Ns(¸ü¸Ä¼Ò×å³ÉÔ±µÈ¼¶->·â°üÒì³£->Íæ¼ÒûÓмÒ×å( RR¢R¤RºR»R¥RxRÒtIPY_CFamilyChangeMemberR™tDoChangeFamilyMemberLV(R RßRªRàR&RLt
pack_tagIDt pack_FamilyLv((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR‘s      c Cs|jƒ}|j|ƒ}|dks3|dkrGtjd|ƒdS|s†t|tjƒscdS||kr†tjd|ƒdSn|j|ƒ}|dkr¹tjd||ƒdS|tjkràtjd||ƒdS|s?|j    ƒt
j kr?|j    ƒ|j    ƒks%||j    ƒkr<tjd|ƒdSq?n|j ƒ}|j ƒ}    |t
j kr‹tjdƒ}
|jƒ|
kr¡tj|d|
gƒdS|jƒ} |j| ƒ} | sÆdSt| t
jƒtj|||    | jƒ| j ƒ| j    ƒ|ƒt||ƒt||d|j ƒ|gƒ|jƒ| jƒ} |rb| rb| jƒntjd    |j ƒ|j ƒf|ƒnÛt||ƒ}|t|tj|ƒkrÊtj|d
ƒdS|j    ƒ|krþt||d|j ƒ|gƒn|j    ƒt
jkrY|jƒt j!j"|gƒkrY|t j#krYt j#j$|ƒqYnt||ƒtj||j ƒ|j ƒ|jƒ|j ƒ|j    ƒ|ƒ|jƒ}|dkrô|jƒt|tj%ƒrô|j&ƒt'j(|ƒqôn|r
|j)d ƒn|j*ƒt+S( Ns$¸ü¸Ä¼Ò×å³ÉÔ±µÈ¼¶->·â°üÒì³£->Î޴˳ÉÔ±s(¸ü¸Ä¼Ò×å³ÉÔ±µÈ¼¶->·â°üÒì³£->²»ÄÜÈÎÃâ×Ô¼ºs0¸ü¸Ä¼Ò×å³ÉÔ±µÈ¼¶->·â°üÒì³£->Ä¿±ê²»´æÔÚ, tagID=%ss+¸ü¸Ä¼Ò×å³ÉÔ±µÈ¼¶->·â°üÒì³£->µÈ¼¶ = %s²»´æÔÚs>¸ü¸Ä¼Ò×å³ÉÔ±µÈ¼¶->Ä¿±êְλ±È×Ô¼ºµÄ¸ß»òÕß¶Ô·½µÄµ±Ç°Ö°Î»±È×Ô¼º¸ßtCreateFamilyMinLVs#DBB17139-6C93-4E66-9CC1314EAEB6F455tXW_JZ_AppointFamilys%s¼Ò×åתÈÃ×峤, ÉèÖÃΪ×峤:%stjiazu_chenxin_31379Rí(,RºR©R¥RRxR
R,t%Def_PurviewDictKey_CanChangeFamilyJobtDef_Family_MemberLVListR™RÒRÓR2RÛR~RRqRtR¼RsRRäRÙtDR_PlayerChangeFamilyJobtSetFamilyLeaderRåR    RYRRÁt&Def_FamilyPowLvChangeFamilySettingDictRR!tg_autoViceleaderDicttgettg_forbidAutoViceleaderFamilyR R R R RR¬R®R(R&RªttagIDR tisGMOPRàRTRÇRR•tcreateFamily_MinLVRyt leaderMembert leaderPlayertfamilyLvMemberCntRÅ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR
¢s„   *
 
   )"6 $  
 
 
cCstjtƒ||ƒdS(N(RRÉt__Func_GetFamilyMember(R Rß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyMemberscCs±tjƒj|ƒ}|jƒ}|sAtjd|jƒƒdS||jƒtjkrttjd|jƒƒdS|j    |ƒ|j
ƒt |ƒr­|j |j ƒƒndS(Ns####²é¿´¼Ò×å½çÃæ·â°üÒì³££¬Íæ¼ÒÎÞ¼Ò×ås2ÒªÇóµÃµ½¼Ò×å³ÉÔ±ÐÅÏ¢ -> ¿Í»§¶Ë -> µÃµ½ÐÅÏ¢Ëٶȹý¿ì(RR¢R¤R»RxRºtGetPlayerGetFamilyInfoTickR,tDef_PlayerGetFamilyInfoTicktSetPlayerGetFamilyInfoTickR t__CheckCanRenameFamilyNametFrm_RenameFamilyAskRÛ(R RßRªtcurPlayerFamily((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR s  
 cCs8tjƒj|ƒ}tjƒ}|j|jƒƒdS(N(RR¢R¤RÒtIPY_GSetPlayerViewFamilyStateRGtGetState(R RßRªRL((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytMapServer_PlayerViewFamilyStateCs cCstjtƒ||ƒdS(N(RRÉt__Func_DeleteFamilyMember(R Rß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytDeleteFamilyMemberYsc
Cs;tjƒ}|j|ƒ}tjƒ}|jƒ}|jƒ|kr_tjd|jƒƒdS|jƒ}|dkr‘tjd|jƒƒdS|j
|jƒƒ}|dkrÌtjd|jƒƒdSt |t j ƒsâdS|j
|ƒ}|dkrtjd|jƒƒdS|jƒtjkrFtjd|jƒƒdS|jƒ}    |    tjkr|jƒtjkrtjd|jƒƒdStj|jƒƒr¹tj|dƒdStjƒrÙtj|dƒdStjƒjtjtjƒr tj|dƒdStjƒr,tj|d    ƒdStj |jƒ|ƒrXtj|d
ƒdS|j!ƒ}
|jƒ} |jƒ} t"||d |
gƒt#j$|
|jƒtj%tj&tj'g|ƒ|j(| ƒ|j)|ƒ} t*|| | ƒt+| |ƒt,j-||jƒ|j!ƒ|j.ƒ|    | |
| ƒ|j/ƒdS( Ns&ɾ³ý¼Ò×å³ÉÔ± ->·â°ü´íÎó ->²»ÄÜÌß³ö×Ô¼ºs&ɾ³ý¼Ò×å³ÉÔ± ->·â°ü´íÎó ->Íæ¼ÒûÓмÒ×ås"ɾ³ý¼Ò×å³ÉÔ± ->·â°ü´íÎó ->Î޴˳ÉÔ±s&ɾ³ý¼Ò×å³ÉÔ± ->·â°ü´íÎó ->²»ÄÜÌß³ö×峤s*ɾ³ý¼Ò×å³ÉÔ± ->·â°ü´íÎó ->»¤·¨²»ÄÜÌß³ö»¤·¨t FamilyWarFightingDeleteMemLimiittDungeonGuardSkyText2tFairyGrabBossExitErrortLeagueBOSSExitError1tPaimai7tXW_JZ_LeaveFamily(0RR¢R¤RÒtIPY_CDeleteFamilyMembert GetMemberIDRºRxR»R¥R©R
R,t Def_PurviewDictKey_CanKickMemberR™RÓRRbtIsFamilyInWarFightingR2RtR¼R tIsInFamilySWRHR¾t GetDictByKeyRt$Def_Notify_WorldKey_DailyActionStatetDailyActionID_FamilyRobBossRtIsInAllFamilyBossRt IsFamilyMemberBiddingAuctionItemRÛRåR tAddFamilyActionNotetDef_ActionType_FamilyEventt"Def_FamilyActionEvent_MemberChangetDef_FamilyMemberChange_KickOutt DeleteMemberR¯t__DoPlayerLeaveFamilyByIDtPlayerForceLeaveFamilyRÙtDR_PlayerLeaveFamilyReR®(R RßR¬RªRLt tagMemberIDR&RTt curTagMembert curFamilyLVt tagPlayerNameR÷t tagFamilyLVRÅ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR)bsr        $       $
cCstjtƒ||ƒdS(N(RRÉt__Func_LeaveFamily(R Rß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt LeaveFamilyÅsc Csbtjƒj|ƒ}|jƒ}|dkrGtjd|jƒƒdS|j|jƒƒ}|dkr‚tjd|jƒƒdS|jƒ}|j    ƒdkrÃ|t
j krÃt j |dƒdStj|jƒƒrìt j |dƒdStjƒr t j |dƒdStjƒjtjtjƒr?t j |dƒdStjƒr_t j |dƒdStj|jƒ|jƒƒr‘t j |d    ƒdSttjƒƒ}t j|ƒ}|d
kr&tj d d ƒ||}|d krt j |d |dgƒdStj d ƒdkrdn|}    n,|tj d ƒdkrH|}    n
|d}    t j!||    ƒt"||d|j#ƒgƒt$j%|j#ƒ|jƒtj&tj'tj(g|ƒ|jƒ}
|j)|jƒƒt*||ƒt+||
|ƒt,j-||jƒ|j#ƒ|j    ƒ||jƒ|j#ƒ||    ƒ    |j    ƒd krTt.||ƒdS|j/ƒdS(Ns$À뿪¼Ò×å -> ·â°ü´íÎó -> Íæ¼ÒûÓмÒ×åsÀ뿪¼Ò×å -> ·â°ü´íÎó ->Î޴˳ÉÔ±itXW_JZ_FamilyHeadCannotExittFamilyWarFightingLeaveLimiittDungeonGuardSkyText1R-R.tPaimai8idt ExitFairyTimeiiièR0(0RR¢R¤R»R¥RxRºR©R™ReRÒRÓRtR¼RbR4R2R R5R¾R6RR7R8RR9RR:RRtGetLeaveFamilyTimeR~RtSetLeaveFamilyTimeRåRÛR R;R<R=tDef_FamilyMemberChange_LeaveR?RAR@RÙRBt __DelFamilyR®( R RßRªR&RTRtcurTimetlastLeaveFamilyTimet
remainTimetupdTimeRà((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRHÎsl    !    $    
  $ 
cCsÙtjd|ggƒtj|jƒ|ƒt|dƒtƒj|jƒ|ƒtj    |ddƒt
j |jƒ||ƒ|t j j|jƒgƒkr¼t j |jƒj|ƒntƒj|jƒ|ƒdS(NtLeaveFamilyNoticeRíi(RÔRÕR tDelFamilyOfficerModelEquipR2RR$RRRR"tOnPlayerLeaveFamilyR!RRRR(R&t leavePlayerIDRÅ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR@s !cCs&tjƒj|ƒ}t|dƒdS(Ni(RR¢R¤RX(R RßRª((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytMapServer_PlayerViewAllFamily9s cCstjtƒ||ƒdS(N(RRÉt&__Func_MapServer_PlayerAddFamilyDetail(R Rß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytMapServer_PlayerAddFamilyDetailNscCs_tjƒj|ƒ}tjƒ}|jƒ}|jƒ}|jƒ}t||||dƒdS(Ni(    RR¢R¤RÒtIPY_GAddFamilyDetailtGetAddFamilyHornortGetAddFamilyMoneytGetFamilyActiveValuet)__DoLogic_MapServer_PlayerAddFamilyDetail(R RßRªRLtaddFamilyHornortaddFamilyMoneytaddFamilyActiveValue((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR\Rs    c    CsVtjƒj|jƒ}|j}|j}|j}|j}t|||||ƒdS(N(    RR¢R¯R—tAddFamilyHornortAddFamilyMoneytFamilyActiveValuet    AddResionRb(    t
routeIndextmapIDt curPackDataRßRªRcRdRet    addResion((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnMGAddFamilyDetailfs                c
Csq|stjdƒdS|jƒ}|jƒ}|dkrOtjd|ƒdS|j|ƒ}|dkr~tjd|ƒdStjd||||f|ƒt|t    j
ƒ}|dkr|t j kr|rt |ƒ}    t|t||    dƒƒ}tjd|    ||f|ƒn|dkrKt|tt|ƒ|t    jƒƒn|dkr¬|jt|jƒ|t    jƒƒ|t j kr¬|r¬t|t |ƒ|ƒq¬n|dkrë|jt|jƒ|t    jƒƒt||ƒn|dkr7tj|jƒ|jƒ|jƒ|jƒ||jƒ|ƒn|rJ|jƒn
|jƒ|dkrmt |ƒndS(Ns-MapServer_PlayerAddFamilyDetail Player = NonesAddFamilyDetail ->Íæ¼ÒûÓмÒ×åsAddFamilyDetail ->Î޴˳ÉÔ±s_PlayerAddFamilyDetail addFamilyHornor=%s,addFamilyMoney=%s,addFamilyActiveValue=%s,addResion=%sis\    ±¾ÖÜÈÎÎñÒÑ»ñµÃÏÉÃË×ʽðÊý!curWeekMissionMoney=%s,weekMissionMoneyMax=%s,addFamilyMoney=%s(!RRÄRºR»R¥RxR©RRÁR,t%Def_FamilySetting_WeekMissionMoneyMaxRtDef_AddFAVReason_DoFamilyMissonRJRAR‚RHRFRBR2R1RMtSetFamilyActiveValueRat#ReFreshPlayerFamilyTotalActiveValueRÙtDR_AddFamilyDetailRÛR2RqR®R t&SendPack_MapServer_PlayerFamilyRefresh(
RªRcRdReRmRàR&RTtweekMissionMoneyMaxtcurWeekMissionMoney((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRbosL         !      & # # * 
  cCsvtjƒj|ƒ}|sdS|j|ƒ}|s8dSt||ƒtjd||f|ƒtƒj||ƒdS(Ns*ÏÉÃ˳ÉÔ±Õ½Á¦±ä¸ü familyID=%s,fightPower=%s(RR5R6R©RYRR$R(RRRXR&RT((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytUpdFamilyMemberFightPower­s cCstjtƒ||ƒdS(N(RRÉt!__Func_MapServer_PlayerLVUpFamily(R RƒRß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnPlayerLVUpFamilyÀscCstjtƒ||ƒdS(N(RRÉRx(R Rß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytMapServer_PlayerLVUpFamilyÏscCs°tjƒj|ƒ}|jƒ}|jƒ}|dkrMtj|dƒdS|j|ƒ}|dkr|tj    d|ƒdSt
|t j ƒs¢tj|dƒdSt |ƒdS(Ntjiazu_pan_161795sFamilyLVUp -> Î޴˳ÉÔ±tjiazu_liubo_272921(RR¢R¤RºR»R¥RtR¼R©RÄR
R,t Def_PurviewDictKey_CanFamilyLvUpt DoFamilyLvUp(R RßRªRàR&RT((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRxØs    
cCsr|jƒtjkrdSt|tjƒ}|jƒ|krRtjd|ƒdS|j|jƒ|ƒ|j    |jƒdƒt
j |j ƒd|gƒt j|jƒ|j ƒ|jƒƒtjƒjƒ}|jƒ}|j|ƒ}|r|jƒnd}tj||j ƒtjtj|jƒg|ƒt|ƒ|jƒtƒtƒj|j ƒdtƒtS(NsÕ½ÃË×ʽð²»×ã! needMoney=%sitjiazu_chenxin_272921RíR(RqR,tDef_Family_MaxLvRÁtDef_FamilySetting_LvUpCostR1RRR2RËRtt FamilyNotifyR2RÙt DR_FamilyLvUpRÛR¾tGetTickRsR©R R;RR<tDef_FamilyActionEvent_LVUPRtR®R`R$RR(R&RèRßRyt    memLeadert
leaderName((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR~ús*% 
 
cCst|dkrdStjƒj|jƒtƒ|jdƒ|jdƒ|jƒt    |ddƒt
j |dƒdS(Ni( R¥RR¢tSetForbiddenEnterFamilyRºRRRR    tSendPackClientImpeachMsgRR(RªRß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRA.s   
cCsVtjƒj|jƒƒ}ttj|dƒƒ}|jddd|t|ƒƒdS(NitForbiddenFamilyAction(RR¢tGetForbiddenEnterFamilyRºR×tToIntDefRØR
(RªtisForbidR}((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytNoteForbiddenFamilyActionGscCstjƒrdS|jƒdS(N(RR_R    (RªRß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnPlayerChangeMapTs 
cCs[t|ƒt|ƒ|jƒ}d}x2tdƒD]$}|dkr©tjƒj|jƒƒ}|dkrpdS|jƒ}tj    d|jƒ|fƒ|j
|ƒntjƒ}|j |ƒ}|dkrt ||ƒtj    d||jƒƒd}q3n|j |jƒƒ}|dkr3t ||ƒtj    d||jƒƒd}q3q3q3W|j|ƒ|j|ƒ|j|ƒtj|ƒs«|jdƒ|jƒn |jdƒ|jƒt|ƒ}|röt|tjƒrötj|ƒnt||d|jƒgtƒt||ƒt j!||ƒ|j"ƒt#j$krWt%||ƒndS(NiisÍæ¼Ò(%s)ÈÔÈ»ÓмÒ×å(%s), ²¹¾Ès-PlayerLoginRefreshFamily -> Íæ¼ÒÀ뿪¼Ò×å = %ss/PlayerLoginRefreshFamily -> Íæ¼Ò±»Ìß³ö¼Ò×å = %sitXW_JZ_LeaguerOnline(&R­R²R½R¥R€RR5tFindPlayerFamilyIndexRºRxRR6RAR©R"Rt    SetPlayerRtR§t
SetExattr2R R    tGetPlayerFamilyMemberR
R,R R RRåRÛR t PlayerRefreshRbt OnPlayerLoginR™RÒRÓtOnFamilyLeaderLogin(RªRßRR&RnR%RmRT((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytPlayerLoginRefreshFamilyasT
 
 
 
  cCst||ƒdS(N(t%__DoFamilyMixServerLogicOnLeaderLogin(RªR&((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR—²s c    Csétjtjƒ}|sdStjtjƒ}|jƒ}t|ƒ}||krjtjd||ƒdSt||ƒtj    d||ƒt
j ddƒ}|j ƒ}i}tj    d||f|ƒt jd|g|d|ƒdS(Ns3ÒѾ­´¦Àí¹ýÏÉÃËÃËÖ÷ºÏ·þµÇ¼Âß¼­! lastMixServerDay=%ss)´¦ÀíºÏ·þÏÉÃËÃËÖ÷µÇ¼! lastMixServerDay=%st MixServerMailis9    ·¢ËͺϷþÃËÖ÷רÊô²¹³¥Óʼþ! familyID=%s,mailItemList=%st
MixServer2tdetail(RƒR„tDef_IsMixServerRÐR2RORRRQRxR~RRºRÔRÕ(    RªR&t isMixServertlastMixServerDayRtfamilyMixServerDayt mailItemListRt
detailDict((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR™·s"     cCsª|jƒ}|dkrdS|jƒ}|dkr8dS|j|jƒƒ}|sztjd|jƒ|jƒfƒdS|jdƒt||d|j    ƒgt
ƒdS(Nis<###Íæ¼Ò¼Ò×åÒì³££¬Íæ¼Ò = %s,ÓмÒ×å = %s£¬¼Ò×åÖÐÎÞ·¨²éÕÒ´ËÍæ¼ÒtXW_JZ_LeaguerLeaveline( R½R»R¥R©RºRRxR’RåRÛR (RªRßRR7RT((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytPlayerLogoffRefreshFamilyÒs    # cCs»|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|j    ƒƒ|j
|j ƒƒ|j |j ƒƒ|j|jƒƒtƒj|jƒ|jƒƒdS(N(tSetNameRÛRËRqtSetReincarnationLvtGetReincarnationLvtSetJobRštSetOperateInfotGetOperateInfotSetOfficialRankRtSetFaceRœt
SetFacePicRžR$RR2Rº(R&RTRª((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRþíscCsjt|ƒ}|dkrdS|jƒ}t|||ƒ|jƒ|jƒkrf|j|jƒƒndS(N(R”R¥R»RþRsR2RR(RªRßRTR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR•þs   cCs-t|ƒ}|dkrdS|j|ƒdS(N(R”R¥Rq(RªRLRT((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytReFreshPlayerFamilyActiveValue    s
   cCsIt|ƒ}|dkrdS|jƒ}|jt||tjƒƒdS(sÉèÖóÉÔ±ÀúÊ·¹±Ï×¶ÈN(R”R¥t
GetExattr1t
SetExattr1RAR,RB(RªtaddValueRTtcurValue((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRr    s    cCs/|jƒ}|dkrdS|j|jƒƒS(N(R»R¥R©Rº(RªR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR”*    s  cCs*|jƒ}|sdSt|||ƒdS(N(R»tDoLogic_DeleteFamily(RªRßR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt DeleteFamily6    s
 cCsÔg}x6t|jƒƒD]"}|j|ƒ}|j|ƒqWxF|D]>}|jƒ}|j|jƒƒ|swqFnt||ƒqFW|dkrÃt    j
d|j ƒ|j ƒ|j ƒfƒnt ||ƒdS(Ns&Íæ¼ÒID = %s, Íæ¼ÒÃû = %s, É¾³ý¼Ò×å =%s(R€ReRfR RYR?RºRAR¥RRxR2RÛRR(RªR7Rßt member_ListR tplayerR'RÅ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR³F    s   / c
Cs!|jƒ}|jƒ}t|ƒ}|dkr‚tj|jƒ|jƒ|jƒ|||jƒ|j    ƒ|j
ƒ|j ƒƒ    n4tj |||jƒ|j    ƒ|j
ƒ|j ƒƒt jƒj|ƒtƒj|ƒtj|ƒtjƒj|ƒtj||ƒtj|ƒtƒdS(N(R2RÛR'R¥RÙtDR_DismissFamilyByPlayerRÈRºR1RqRER%tDR_DismissFamilyBySystemRR5t    DelFamilyR$R    R RõRRÎRÏRbtOnDeleteFamilyRtDelRedPackByFamilyIDR­(RªR7RR•t familyWarRank((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRRe    s$      cCs…|j|jƒƒ|j|jƒƒ|j|jƒƒt|tjƒt    j
|j ƒ|jƒƒt ƒj |j ƒdtƒdS(NR(RÿRºRRÛRRRRÒRÓRbtOnChangeFamilyLeaderR2R$RR(R&R'((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR    scCs|jƒ}|j|ƒt|ƒtjƒjƒ}|rDtjntj}t    j
|j ƒ|j ƒtj tj|||g|ƒ||kr”dS|tjkrÂt    j|j ƒ|jƒƒn.|tjkrðt    j|j ƒ|jƒƒntƒj|j ƒ|jƒdtƒdS(NR(R™t SetFamilyLVt__SetFamilyMemberPurviewRR¾R„RtDef_FamilyMemberChange_JointDef_FamilyMemberChange_FMLVR R;RÛR½R<R=RÒRätUpdFamilyOfficerModelEquipRºRXR$RR(R'tchangeFamilyLVtisJoint befFamilyLVRßt
changeType((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR     s  
 %cCsdS(N((R'((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR¿Á    scCs?tjdƒ}|t|ƒkr%tS||}|jƒ|kS(Nt FamilyPurview(R~RR
R R™(R'tpowIDtpowListt needMemberLV((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR
Ê    s
 
cCs?t|ƒ}|dkr2tjd|jƒƒtSt||ƒS(Ns%GetPlayerHasFamilyPow -> ¼Ò×åÎ޴˳ÉÔ±(R”R¥RRÄR2R R
(RªRÈRT((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetPlayerHasFamilyPowØ    s
  cCsdS(N((Rª((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnWeekå    scCstjdƒdS(Ns
´Ë½Ó¿Ú·ÏÆú(RRÄ(R Rß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytMapServer_FamilyWarCalcResult
s cCstjtƒ||ƒdS(N(RRÉt__Func_RenameFamilyAnswer(R Rß((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytRenameFamilyAnswer!
scCs>tjƒj|ƒ}tjƒ}|jƒ}t||ƒdS(N(RR¢R¤RÒtIPY_CRenameFamilyAnswert GetFamilyNamet RenameFamily(R RßRªRLt cFamilyName((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÎ*
s
   c    Cs¨tjƒj|ƒ}t||ƒ}|j||ƒ|dkr¤|jƒ}tj|ƒ}t|dgƒ}tjƒj    dd||d|t
|ƒ|j ƒƒndS(NiRíitFamilyNameRefresh( RR¾R¿t__DoLogic_RenameFamilyAnswertSync_FamilyRenameResultRºtGetQueryPlayerMapIDR×R¢tMapServer_QueryPlayerR
tGetRouteServerIndex(RªR•R¸RàtcurPlayerMapIDtmsgStr((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÒ3
s   c
Cs²t|ƒsdSt||ƒ}|dkr/|S|jƒ}|jƒ}|jƒ}|jƒ}|j|ƒ|jƒtƒj|dt    ƒt
j ƒ}t j ||ƒg}xÈtd|jƒƒD]±}    |j|    ƒ}
|
jƒ} t| |ƒ|j| ƒ|j| ƒ} | sqÄnt
j| ƒ} | s5qÄnt||gƒ}|jdd| | d|t|ƒ| jƒƒqÄWtjd|g||gƒtjdd||gƒt    S(NiiRRÔtFamilyNameChangetFamily_ChangeName(R#tCheckRenameFamilNameR»R2RÛR¥R®R$RRRR¢RbtOnRenameFamilyR€ReRfRºRR R¯R×R×RØR
RÙRÔRÕRtRÜ(RªR•tcheckFamilyNameR&t curFamilyIDRàtoldNameR¬t memberIDListR RTt curMemberIDR¶RÚRÛ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÕK
sB      
     cCsR|jƒ}|sdS|j|jƒƒ}|s5dS|jƒtjkrNdStS(N(R»R©RºR™RÒRÓR(RªR&RT((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR#•
s  cCs†tj|ƒrdSt|ƒdks:t|ƒtjkr>dStjƒj|ƒ}|dkr‚|j    ƒ|j
ƒkr{dSdSndS(Niiiii( R:R;R
R,R<RR5R‹R¥R2R½(RªR•R–((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÞ»
s' cCs)tjƒj|ƒ}|r%|jƒSdS(NRí(RR5R6RÛ(RR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyName_ByIDÕ
s
cCs)tjƒj|ƒ}|r%|jƒSdS(NRí(RR5R6Rl(RR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetLeaderName_ByFamilyIDá
s
cCs=|s
dS|j|ƒ}|s#dS|jƒ|kr9dStS(N(R©R™R(RR7RRT((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytCheckPlayerFamilyLVï
scCsBtjƒj|ƒ}|sdS|j|ƒ}|s8dS|jƒS(Ni(RR5R6R©R™(RRR&RT((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetPlayerFamilyMemberLVExý
scCs?|jƒ}|sdS|j|jƒƒ}|s5dS|jƒS(Ni(R»R©RºR™(RªR7RT((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetPlayerFamilyMemberLV     s cCs t|ƒ}|sdSt|ƒS(Ni(R”R[(RªRT((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetPlayerJoinFamilyTime s cCsftjƒrdStjƒjƒtjƒ}g}xÕtd|jƒƒD]¾}|j|ƒ}|jƒ}t    |ƒ}tj
d|j ƒ|fƒ|t j dƒkrº|j|ƒqHntj|j ƒtjƒtj|j ƒtjtjƒ|jƒt|ƒqHWxK|D]C}tj|j ƒdƒtjd|j ƒƒtd||ƒqWtdƒdS(Nis    ÏÉÃË%s %sÌìûÈËÉÏÏßÁËt AutoDelFamilytjiazu_hwj35_59724s%s¼Ò×åÒò×ʽð²»×ãά»¤, ½âÉ¢ (RR_R¢tClearForbiddenEnterFamilyR5R€ReRfR1tGetLastOnlineMemberOfflineTimeRR2R~RR R RõRtDef_ActionType_FamilyArrestRñR,t"Def_Family_ClearRequestAddNote_DayR®RtRtR‚RxR³R¥t __SetFamilyActivityDayStateValue(RßRmt delFamilyListRnR7t familyMoneyt
offlineDayt    delFamily((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt FamilyOnDay  s0  
 
    
 
cCsitjƒrdStjƒ}xFtd|jƒƒD]/}|j|ƒ}tj|ƒtj    |ƒq2WdS(Ni(
RR_R5R€ReRfRtFamilyBossFBOnDayExRÝtOnDayEx(RßRmRnR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt FamilyOnDayEx\ s   cCstjƒrdStjƒ}xòtd|jƒƒD]Û}|j|ƒ}|jƒ}|jƒ}|j|ƒ|j    dƒt
|dƒt |dƒx6t |jƒƒD]"}|j|ƒ}|j    dƒq¦Wt |ƒtjd|ƒtj||jƒ|ƒtj|ƒq2WdS(NisfamilyActiveValue = %s(RR_R5R€ReRfR2RatSetLastWeekFamilyActiveValueRqRDRMRdRtRxRÙtDR_FamilyActiveValueByOnWeekRÛRtFamilyBossFBOnWeek(RßRmRnR7RtfamilyActiveValuetjR[((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt FamilyOnWeekm s&        
cCs`tjƒrdStjƒ}x=t|jƒƒD])}|j|ƒ}t|ƒt|ƒq/WdS(N(RR_R5RdReRft__AutoChangeLeadert__AutoChangeFamilyJobLV(RmRnR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt FamilyOnHourŽ s  
c Cs8|jƒ}tjtjƒ}|tjdƒkr7dS|tjkrJdS|jƒ}t    j
|ƒ}|tjddƒkrdS|tjddƒtjddƒdkrÈt    j d||fƒdSt j }d}g}xmt|jƒƒD]Y}|j|ƒ}    |    jƒ|kr'|d7}qðn|    jƒ|krð|j|    ƒqðqðWt|tj|ƒ}
||
ksv| rzdS|tjkr™gtj|<n|jdtƒxˆt|ƒD]z\}} |||
krÖPnt| |ƒ| jƒ} | tj|krtj|j| ƒnt    jd|| fƒq¶WdS(    NtFairyFMZiiis9×Ô¶¯ÎªÏÉÃ˰²ÅÅÁ½Î»¸±ÃËÖ÷ ¼ä¸ôûµ½ familyID=%s,pastHour=%sitcmps,×Ô¶¯ÎªÏÉÃ˰²ÅŸ±ÃËÖ÷ familyID=%s,playerID=%s(R2RƒR„t Def_ServerDayR~RR!Rt GetCreateTimeRt GetPastHourRRÒRRdReRfR™R RÁR,RRtsorttCmpAutoMemberSortRÖRRºRx( R7Rt openServerDayt
createTimetpastHourttofmlvt viceLeaderCnttchangeMemberListRnR'tmaxCntR[R((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRš sL  ,    
  cCspt|jƒ|jƒƒ }|dkrltt|ƒt|ƒƒ }|dkrltt|ƒt|ƒƒSn|S(Ni(RRqRUR[(tmember1tmember2tret((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR    Í s   ic
CsÇg}tjƒ}xZt|jƒƒD]F}|j|ƒ}|jƒ}tj||ƒs^q%n|j|ƒq%W|jdd„dt    ƒt
|ƒ}|r½|d|}    ||    |    |!|fS||fS(s® ¿ç·þÏÉÃËÅÅÐò£¬ ÅÅÐò¹æÔò: ×ÜÕ½Á¦  > µÈ¼¶ > ID
    @param serverIDList: ÏÉÃËËùÊôÇø·þID·¶Î§Áбí
    @param getCnt: ·µ»ØÅÅÐò¿¿Ç°x¸öÏÉÃË£¬0ÔòÈ«²¿·µ»Ø
    @param page: µÚ¼¸Ò³
    tkeycSst|ƒ|jƒ|jƒfS(N(R/RqR2(tf((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt<lambda>ä streversei( RR5RdReRfRrtCheckServerIDInListR RRR
(
t serverIDListtgetCnttpaget
familyListRmRnR7R{ttotalCntRV((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSortCrossFamilyÖ s   cCsktjƒrdSxTtd|jƒƒD]=}|j|ƒ}|jƒ}|dkrYq&n|jƒq&WdS(Ni(RR_R€ReRfRYR¥R    (R&RnRTRª((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRtð s 
  cCsm|tjkrdS|jƒ}tjd|ƒ}|sLtjd|ƒdStj|}t|d|ƒƒS(NiRaskey = %s not in tagFamily.txtsGet%s(R,tFamilySettingDictRqR~tGetIpyGameDataRRÄtgetattr(R&R tfamilyLvtcurFamilyLvSettingtkeyStr((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÁ s  cCs;tjƒj|ƒ}|j}|j}t|||ƒdS(N(RR¢R¤t    PageIndext    ShowCountRX(R RƒRßRªRQtshowCnt((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytPyViewFamilyPage- s
        
c
Cs®tjƒ}g}x•|D]}|j|tjƒ}t}xVtd|jƒƒD]?}|j|ƒ}|j    ƒ}    |j
ƒ|    kr‰qPnt }qPW|j ||gƒqW|S(Ni( RRïRðRRñR R€R RòRóR2RR (
RªRRùt
resultListRRútisExistR RûR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytQueryRequestIsFamilyC s   
cCs‹|dkrdS|jƒ}|j|ƒ}|dkrLtjd|ƒdS|jƒ}| sk|dkrodStj|ƒ}tj|ƒS(Nis)GetLeaderOfflineTime->FindMember, None;%si(R¥RsR©RRxt
GetExattr2tChangeTimeNumToStrR(R&RyRTtoffLineTimeNumt offLineTime((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetLeaderOfflineTime^ s    cCsœd}xmtd|jƒƒD]V}|j|ƒ}|jƒ}| sP|dkrTdS|sc|}qt||ƒ}qW|s€dStj|ƒ}tj|ƒS(s»ñȡսÃ˶à¾ÃûÈËÉÏÏßÁËii(R€ReRfR,R‚RR-t
GetPastDay(R7R/RnR[R.((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRîn s     c Cs´t|ƒ}tjd||jƒƒ|tjdƒkr?dSd}d}d}x td|jƒƒD]ô}|j    |ƒ}|j
ƒt j kr—qgn|j
ƒt j kr¶|}Pn|sÅ|}n!|jƒ|jƒkræ|}n|jƒdkrtjtj|jƒƒƒnd}|dkrg|s7|}q[|jƒ|jƒkr[|}q[qgqgW|pn|pn|}|s{dStjd|jƒ|jƒ|jƒfƒ|jƒ}|j|ƒ}    t|    t jƒt|dd|jƒt jgƒt||ƒt|dd|jƒt j gƒ|jƒ}
|jƒ} tj|
| |jƒ|jƒ|j
ƒƒtj|
| |    jƒ|    jƒ|    j
ƒƒ|jƒ} | r°| jƒndS(    s×Ô¶¯´«Î»s°ïÖ÷ÏÂÏßÁË%sСʱtAutoChangeLeaderNiii0s,ÏÉÃËfamilyID=%s,leaderID=%s´«Î»¸øtoMember=%sR(R0RRR2R~RR¥R€ReRfR™RÒRÓRR¯R,RR-RsRºR©RRäRåRlRRÛRÙtDR_ImpeachChangeFamilyJobRYR    ( R&tleaderOffLineTimettoMembert    toMember1t    toMember2RnR[t offLineHourRyRRR•R((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR€ sX         6     , " "    c    Cs{|jƒ}|dkrdS|jƒ}t|ƒ\}}|jƒ|jƒkrº|dkrbdSt|||ƒ|j|ƒ}|dkr‘dSt||d|jƒ|j    ƒgƒdSt
j dƒ}t |ƒ}||t krédS||tkrtj|dt|dƒgƒdS|j|ƒ}|rZ|j    ƒ}tj|d||gƒntj|dƒt||ƒdS(Nitjiazu_xyj_202580tFamilyLeaderImpeacht jiazu_xyj_0itjiazu_xyj_861048tjiazu_xyj_31379(R»R¥R2tGetLeaderImpeachDataRstClearFamilyImpeachR©RåRlRÛRñtGetEvalChConfigR0tImpeachNoteTimetCanImpeachTimeRtR¼RtSendClientImpeachMag(    RªR&Röt notePlayerIDtnoteTimeRTt impeachTimeR4t
playerName((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytLeaderImpeachOnLogin s:          c    Cs(|jƒ}|dkrdStjdƒ}t|ƒ|tkrUtj|dƒdS|jƒ}|jƒ}t    |ƒ\}}||krŸtj|dƒdSt
j |j ƒ|t j|g|ƒ|jdddddƒ|j ƒ}t||d||gƒt    |ƒ\}}t|||ƒdS(NR:tjiazu_xyj_161795itDelFamilyImpeachItemRíR<(R»R¥RñR@R0RBRtR¼R2R>R R;RÛRt Def_ActionType_LeaderImpeachTimeRØRåtSendClientAllMemberImpeachMag(    RªRßR&RFRötplayerIdRDRERG((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytPlayerExecLeaderImpeach s,       cCsbtjƒ}|j|tjƒ}|jƒdkr^|jdƒ}|jƒt|j    ƒƒfSdS(Ni(ii(
RRïRðRRKR RòRóRtGetTime(RöRùRúRû((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR>, s  cCsÛtjtj|ƒsdStjdƒ}x¬tdtjƒjƒƒD]}tjƒj    |ƒ}t
|j ƒƒ\}}|dkr‰qDn|j ƒ}|j |ƒ}|dkrÄt|||ƒdStj|ƒ}tjt|ƒƒ|tkrøqDn|jƒ}    |j |    ƒ}
|
dkr0tjdƒdStjdƒ} |jƒ| ks]|    |krqt|||ƒdS|
jƒ} tj| |tjtjtjg|ƒt|
t j!ƒt"|dd| t j!gƒ|jƒ} t#j$|| |    | ƒt%||ƒ|j&ƒ}|jƒ}t#j'|| |j(ƒ||ƒt"|dd||gƒt)j*dd|| gƒtj+ƒj,|ƒ}|dkr¶|j-ƒt.|tj/ƒr¶|j0ƒq¶n|j1ƒt|||ƒqDqDWdS(NR:is/OnLeaderImpeachTick: Can not find family leaderR Rtjiazu_xyj_272921(2RtSetWorldDictKeyR,tTYPE_LeaderImpeachTickRñR@R€R5ReRfR>R2R©R¥R?R-tGetPastSecondsR×tImpeachLastTimeRsRÄR~RRqRÛR R;RR<R=tDef_FamilyMemberChange_ImpeachRRÒRäRåRÙtDR_ImpeachLeaveFamilyRR™R3RºRtRÜR¢R¯R    R
R R R®(RßRFRnR7RDRERRTR/RyR†RR‡R•REtnotePlayerNameR¶((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnLeaderImpeachTick= s`"           
 
 
cCs´|dkrDtjdƒ}tj|ƒ}|ttj|ƒ}nxitd|jƒƒD]R}|j|ƒ}tj    ƒj
|j ƒƒ}|dkrœqZnt |||ƒqZWdS(NiR:(RñR@RR-RTRSR€ReRfR¢R¯RºR¥R‰(R&RDRERFR/RnR¹Rª((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRL¥ s  cCst|jƒƒ\}}|dkr(dStjdƒ}tj|ƒ}|ttj|ƒ}|dkrmdSt|||ƒdS(NiR:(    R>R2RñR@RR-RTRSR‰(RªR7RDRERFR/((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRCÀ s  cCsdS(N((RªRDRE((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR‰Û scCs3|jƒ}tj|tjƒt|ddƒdS(Ni(R2R RõRRKRL(R&RDRER((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR?ê s cCs&tjƒj|ƒ}tj|ƒdS(N(RR¢R¤R R(R RDRßRª((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRs cCsåtjƒj|ƒ}|jƒ}|dkr1dS|jƒ}|dkrMdS|jƒ}|j|ƒ}|dkrxdSt|t    j
ƒsŽdS|j ƒ|j kr§dS|j t jkr½dS|j|j ƒ|jƒ|jƒdS(Ni(RR¢R¤R½R»R¥RºR©R
R,R RttTypeRtFamilyAcceptJoin_RefuseRÌR R®(R RƒRßRªRöR&RàRT((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytChangeFamilyAcceptJoinTypes*      
 
cCsÙ|stjdƒdS|jƒ}|jƒ}|dkrOtjd|ƒdS|j|ƒ}|dkr~tjd|ƒdS|s˜tjd|ƒdStjdt|ƒ|ƒt    }|j
ƒ|rÕt |ƒndS(Ns,MapServer_PyAddFamilyInfoValue Player = Nones-MapServer_PyAddFamilyInfoValue ->Íæ¼ÒûÓмÒ×ås)MapServer_PyAddFamilyInfoValue ->Î޴˳ÉÔ±s,MapServer_PyAddFamilyInfoValue ->ÎÞ¸üÐÂÐÅÏ¢!s,MapServer_PyAddFamilyInfoValue ->infoDict=%s( RRÄRºR»R¥RxR©RR×R R®Rt(RªtinfoDictRàR&RTtisMapServerRefresh((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytMapServer_PyAddFamilyInfoValue6s*     
 cCs*tjtj|ƒtjtj|ƒdS(s ÉèÖÃÕ½Ã˻½ñÌ쿪Æô״ֵ̬ N(RƒRŒRt*Def_Notify_WorldKey_FamilyActivityDayStateRtSendMapServerMsgEx(tupdValue((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRñ[scCs3tjtjƒ}|td|ƒB}t|ƒdS(s ÉèÖÃÕ½Ã˶ÔÓ¦»î¶¯½ñÈÕ¿ªÆô¹ý iN(RƒR„RR_tpowRñ(t activityTypetfadStatetupdState((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetFamilyActivityDayOpenas
cCs†tjƒj|ƒ}|sdSd}|jƒ}xNtd|jƒƒD]7}|j|ƒ}|jƒ|krG|jƒ}PqGqGW|S(s »ñȡսÃËÃËÖ÷µÈ¼¶ i(    RR5R6RsR€ReRfRºRq(RR7tleaderLVRyRnR[((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyLeaderLVhs  cCsJtjƒrdS|ddkr$dStƒtjƒtjƒtƒdS(Nii(RR_tUpdFamilyTotalFightPowerRtCheckDelRedpacketDataRÅtCheckExpireEmblemR(t    curMinute((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnMinuteProcessvs 
 
cCsâtƒ}|jsdStjd|jƒtjƒ}x’|jD]‡}|j|ƒ}|saq@nd}x9t|jƒƒD]%}|j|ƒ}|t    |ƒ7}qzWt
||ƒtjd||fƒq@Wg|_t t ƒt S(Ns.¸üÐÂÏÉÃË×ÜÕ½Á¦ fightPowerChangeFamilyIDList=%sis"    familyID=%s,totalFightPower=%s(R$RRRR5R6RdReRfRUR4R`R R(R#RmRR7R3RnR[((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRi„s$              
cCs
tƒjS(N(R$R(((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetSortFamilyIDListžscCstƒj|ƒS(s»ñÈ¡ÏÉÃ˵ÄÅÅÃû£¬ ×¢ÒâÓëÁªÈüÅÅÃûÇø·Ö
    Ã¿¸öÏÉÃËÒ»¶¨ÓÐÅÅÃû£¬µ«ÊDz»Ò»¶¨ÓÐÁªÈüÅÅÃû£¬ÁªÈüÅÅÃûÖ»ÊǾö¶¨ÏÉÃË×îÖÕÅÅÃûµÄÒ»¸ö±È½ÏÒòËØ
    (R$R (R((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR Ÿsc    Cstjdƒ|rtƒng}tjƒ}x6t|jƒƒD]"}|j|ƒ}|j|ƒqBW|jdt    ƒt
ƒ}g|_ xtt |dƒD]c\}}tjd|t |ƒt|ƒ|jƒ|jƒ|jƒfƒ|j j|jƒƒqšWtjd|j ƒdS(s} ÏÉÃËÅÅÐò£¬ ÅÅÐò¹æÔò: ÁªÈüÆÀ¼¶ > ×ÜÕ½Á¦ > µÈ¼¶ > ´´½¨Ê±¼ä
    ¶¨Ê±5·ÖÖÓÅÅÐòÒ»´Î
    ÏÉÃËÁªÈü·Ö×éǰ¼°Ã¿ÖܽáÊøºóÇ¿ÖÆÅÅÒ»´Î
    s7ÏÉÃËÅÅÐò, ÅÅÐò¹æÔò: ÁªÈüÆÀ¼¶ > ×ÜÕ½Á¦ > µÈ¼¶ > ´´½¨Ê±¼äRisA    i=%s,warRank=%s,fightPower=%s,LV=%s,CreateTime=%s,familyID=%ss    sortFamilyIDList=%sN(RRRiR5RdReRfR Rt CmpFamilySortR$RRÖR'R/RqRR2(tisUpdTotalFightPowerRRmRnR7R#((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR`¥s" 
             8cCsät|ƒ}t|ƒ}|rF|rFt||ƒ}|dkr_|Sn|sR|r_t||ƒStt|ƒt|ƒƒ}|dkrŠ|St|jƒ|jƒƒ}|dkrµ|St|jƒ|jƒƒ}|dkrà|SdS(Ni(R'RR/RqR(tfamily1tfamily2tfamilyWarRankCmpValue1tfamilyWarRankCmpValue2R((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRo¾s$         cCsÓtjƒj|ƒ}|jƒr%dStj}|jƒ}|jƒ}tj    |ƒ}|j
ƒ||j ƒ|t j |t j g}tjƒ}    tjƒ}
t|
jƒƒ} tj| ƒd} x{| D]s} |
j| ƒ}|séqÈn|j
ƒ}|jƒ}|tjkrqÈn|tjkr±t|t jƒ}|jƒ|krÈ|t jkrÈt||tjƒt||d|gƒtj|d|jƒgƒ|j ƒdSqÈn| sÈ|    j!||ƒ}|j"ƒ}t#}xHtd|ƒD]7}|j$|ƒ}|jƒ}||krët%}PqëqëW|r2qÈn|} qÈqÈW| r¿|
j&| ƒ}t'j(|| |||t#ƒ}|r¿|r¿t)| gƒ}|j*ddd|t+|ƒƒt'j,|ƒq¿ntj|dƒdS(NiRÝRÞt    FamilyAddtjiazu_pan_500807(-RR¢R¤R½RRñRÛRqRtRR2RšR,R-RïR5R€ReRˆR‰RfRtRZRÍRÁRÂRÃRÑRÒRäRåR¼R®RðR R RòRR6R R;R×RØR
tNotifyFamilyRequestInfo(R RƒRßRªt
actionTypetrequestPlayerNametplayerLVRXtactionDataListRùRmt    indexListt joinFamilyIDRnR7RtcurAcceptJoinTypeRÆRútfamilyActionCntthasApplyRûtnamet
joinfamilyR¸Rê((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytQuicklyJoinFamilyãsh       /      !
     cCs|\}}|dkr3|d}t||ƒdS|dkr_|\}}t|||ƒdS|dkr{t||ƒndS(NtInviteitResponset
ThanksGift(t__DoChuangong_Invitet__DoChuangong_Responset__DoChuangong_ThanksGift(RªtmsgListtmsgTypetmsgDataR÷tisOK((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytMapServer_FamilyChuangong&s  
    cCss|jƒ}|sdS|j|ƒ}|sItjd||jƒƒdS|jƒ}|sotj|dƒdS|S(Ns·ÇÃËÓÑÎÞ·¨´«¹¦! tagPlayerID=%stFairyFeastPlayerOffline(R»R©RRRºRYRtR¼(RªR÷R&RÇRÅ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt__CheckChuangongPlayer7s  cCs|jƒ}|jƒ}|s"dS|j|ƒ}|sUtjd||jƒƒdS|jƒ}|stjƒ}|jƒ|jƒ|_    |j
ƒ|_ t |j ƒ|_ |jƒ|_|jƒ|_|jƒ|_tj||ƒ|tj|<tjd|tjf|ƒdStjj|gƒ}||krV|j|ƒ|tj|<ntjƒ}|jƒ|jƒ|_    |j
ƒ|_ t |j ƒ|_ |jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_tj||ƒtjd|tjf|ƒdS(Ns·ÇÃËÓÑÎÞ·¨´«¹¦! tagPlayerID=%ss0¶Ô·½ÀëÏߣ¬Ôò×Ô¼ºÖ±½Ó¿ªÊ¼´«¹¦: tagPlayerID=%s, %ssÑûÇë´«¹¦: tagPlayerID=%s, %s( RºR»R©RRRYRttagGCChuangongStartRŸR—RÛR?R
R˜RqRRšR›RtRealmLVR¨R©R!tg_chuangongTagPlayerDicttg_chuangongPlayerDictRR ttagGCChuangongInviteInfoRœRRžRŸ(RªR÷RR&RÇRÅRDtinvitePlayerIDList((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR‡EsN    
 
cCsü|jƒ}t||ƒ}|s%dStjj|gƒ}|sŠ||kri|j|ƒ|tj|<ntjd|tjf|ƒdS|s¤tj    |dƒdS||krÎtjd||f|ƒdStjj
|ƒt ||ƒt ||ƒdS(Ns¾Ü¾ø´«¹¦: tagPlayerID=%s, %stTagHadFinishChuangongs0²»ÔÚ¶Ô·½ÑûÇëÁбíÁË£¬ÎÞ·¨´«¹¦: tagPlayerID=%s, %s( RºRR!R”RRRRRtR¼tpopt__NotifyChuangongStart(RªR÷RRRÅR–((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRˆos*      cCs tjƒ}|jƒ|jƒ|_|jƒ|_t|jƒ|_|j    ƒ|_
|j ƒ|_ |j ƒ|_tj||ƒ|jƒtj|jƒ<dS(N(RR‘RŸRºR—RÛR?R
R˜RqRRšR›RR’R¨R©R!R“(RªRÅRD((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR™‰s 
cCsþ|d}|jƒ}tjj|dƒ}tjd||ƒ|sIdS|jƒ}|s_dS|j|ƒ}|sxdSii|jƒd6|j    ƒd6|j
ƒd6|j ƒd6|j ƒd6|j ƒd6|6}tjd    ||ƒtj|||ƒdS(
Nis'__DoChuangong_ThanksGift tagPlayerID=%st
PlayerNameR›RR’RRŸs    assistPlayerDict %s(RºR!R“R˜RRR»R©RÛRšRqRRœRžR"tAddNewAssistThanksEx(RªRŒtitemIDRR÷R&RÇtassistPlayerDict((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR‰–s$
   !cCsa|d}|jddƒ}tjƒ}|rJ|jtj|g|ƒn|jtj|ƒdS(NRRi(RRRtDelGameRecDataByTypeValueRRtDelGameRecDataByTypeID(RŒRRR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytCrossServerMsg_FamilyDelRet¬s
 c Cs½|jƒ}|jƒ}|jƒ}|jƒ}t|ƒ}|tj}|tj}t|ƒ}|jƒ}    |j    ƒ}
i    |d6|d6|d6|d6|d6|d6|d6|    d6|
d    6S(
NtidRtid2tname2tvalue1tvalue2tvalue3tvalue4tvalue5(
R2RÛRsRlR/R,R-R:RqRr( R&RRR¢R£RXR¤R¥R¦R§R¨((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRg·s          -cCs‡tƒtƒ}|jsdStjƒ}xN|jjƒD]=\}}|j|ƒ}|s`q9ntdt||ƒƒq9Wi|_dS(Nt    FamilyUpd(    RR$RRR5titemsR6t#Send_ClientServerMsg_SyncFamilyInfotGetSyncCrossServerFamilyInfo(R#RmRt updMemIDListR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÆs             cCs¤tjƒjtjƒrdStjƒjtjdƒtjdƒtƒtjƒ}xHt    |j
ƒƒD]4}|j |ƒ}|s‰qhnt dt |ƒƒqhWdS(Nis!¿ªÊ¼Í¬²½±¾·þËùÓÐÏÉÃ˵½¿ç·þ·þÎñÆ÷!R©(RR¾R6R,t!Def_WorldKey_SyncFamilyAllToCrosstSetDictRxRR5RdReRfR«R¬(RmRnR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt!Sync_ClientFamilyAllToCrossServerÙs  cCswtjƒ}|jtjƒ}xR|jƒD]D\}}x5|D]-}|jƒ}tdi|d6|d6ƒq>Wq+WdS(Nt    FamilyDelRR(RRtGetGameRecDataDictRRRªRóR«(Rt recDataDictRt recDataListtrecDataR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRës   #cCsyi    |jƒd6|jƒd6|jƒd6t|ƒd6|jƒd6|jƒd6t|ƒd6|jƒd6|jƒd    6S(
NtIDR?RR¡RkRmRAR¤R“(    R2RÛRqR/RsRlR:RrR’(R7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetCrossFamilyBaseInfoõs7'cCsli|jƒd6|jƒd6|jƒd6|jƒd6|jƒd6|jƒd6|jƒd6t|ƒd6S(    NR?RR›R RRŸRrR¡(RÛRqRšRRœRžR™RU(R[((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetCrossFamilyMemInfoús7cCsµt|ƒ}|dkrtnt}i}xit|jƒƒD]U}|j|ƒ}|jƒ}|sjq=n|r‚||kr‚q=nt|ƒ||<q=W|j    i|d6|d6ƒ|S(NtmemInfotmemAll(
R·R¥RR RdReRfRºR¸tupdate(R7t    memIDListtcrossFamilyInfoRºR¹tmR[tmemID((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR¬þs  cCs+i|d6|d6}tjtj|ƒdS(NtsyncTypetsyncInfo(RŒRRtClientServerMsg_SyncFamilyInfo(RÀRÁR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR«scCsM|d}|d}|dkr-t|ƒn|dkrIt||ƒndS(NRÀRÁR©R±(t__CrossServer_FamilyUpdt__CrossServer_FamilyDel(t serverGroupIDRŒRÀRÁ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÂs
 
   cCs|d}|jddƒ}|rPtjƒj|ƒ}|rp|j|ƒqpn tjƒj|ƒtj|ƒtj    t
j ||gƒdS(NRRi( RRR5R6R?R¹R RõRŒtSendMsgToClientServerRR (RÅRÁRRR&((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÄ%s
 c Csö|d}|d}t||ƒ}|s>tjd|ƒdS|j|dƒt||dƒ|j|dƒ|j|dƒt||dƒ|j|d    ƒ|j    |d
ƒg}|j
d t ƒ}|j
d iƒ}|râx¢t |j ƒƒddd …D]}|j|ƒ}|jƒ}    |    s2qn|    |krZ|r|j|    ƒqqn|j|    ƒ}
t|||
ƒ|j|    ƒqWxU|jƒD]D\}    }
|j|    ƒ}|s¾q—nt|||
ƒ|j|    ƒq—Wntj||ƒdS(NR¶R?s5¿ç·þ¸üÐÂÏÉÃËʧ°Ü! ÏÉÃ˲»´æÔÚ»òÕß´´½¨Ê§°Ü! familyID=%sRR¡RkRmRAR¤R“RºR¹iÿÿÿÿ(tFindAndFixCrossFamilyByIDNameRRÄRËR4RÿRR=RwR¬RR R€ReRfRºR?R˜t__updCrossFamilyMemberInfoR Rªt AddMemberExtCrossFamilyGCZtOnCrossJoinFamilyMemberUpd( t
familyInfoRR•R&R­Rºt memInfoDictR¾R[R¿R¹((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÃ7sJ
 
&  c    Csetjƒ}|j|ƒ}|s‘xitdƒD][}|dkrF|n d||f}|j||ƒ}|r.tjd||fƒPq.q.W|S|j|ƒ}|sÈtjd|ƒ|j|ƒ|S|jƒ|krÞ|Sx€tddƒD]o}d||f}|j|ƒ}|r5|jƒ|krîPqîqîn|j|ƒtj    d|||fƒPqîW|S(Nidis%s_%ss!¿ç·þÌí¼ÓÐÂÏÉÃË! familyID=%s, i=%ss=ÐÂͬ²½µÄÃû×ÖÒѾ­²»´æÔÚÏÉÃËÁË£¬¿ÉÖ±½ÓÌæ»»ÐÂÏÉÃËÃû! familyID=%sis%¿ç·þÇ¿ÖÆÐÞ¸ÄÏÉÃËÃû: familyID=%s,%s,%s(
RR5R6R€t AddFamilyExRR‹R¥R2Rx(    RR•RmR&RntcrossFamilyNamet
nameFamilyt fixFamilyNameR7((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÇgs8 "  cCs|j|jddƒƒ|j|jddƒƒ|j|jddƒƒ|j|jddƒƒ|j|jddƒƒ|j|jd    dƒƒt||jd
dƒƒ|jd dƒ}|j|ƒ|t    j
kr|j |j ƒƒ|j |jƒƒ|j|jƒƒndS( NR?RíRiR›R RiRŸR¡Rr(R¥RRËR¨R«R¬R­RYR¾RÒRÓRÿRºRRÛRR(R&R[R¹t memFamilyLV((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRȐs cCsi|d}|jddƒ}|ret|ƒ}|rNtji||6|ƒntj||dƒdSdS(NRR‰itTagFamilyNotExist(RR‹R¨tSendFakePackByCrossRttNotifyCodeCross(RÅRŒRR‰RD((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRŽ¡s
 ((ÙRRÒR,RáRtR:RñRƒRR RÙRR~RÝRRbRR¨RR!RjRhRÔRÅRR Rt GameWorldBossRŒRÊRR"R±RtcopyRˆRR€RARBRTRR$R'R*R/R4R8R:R=R?RDRFRHRJRMRORQRURYR[R^RaRqR|R˜RœR¥R­R²RëRÀRÑRR6R3RÁR=R>RFRBRMtDef_ViewAllFamilyPageCountt    fsrHornorRXR]RPRbR~R|R†R‡RR‹R»RÈRËRÊRÚRÙRëRRåRRRRR R
RRR(R*R)RIRHR@R[R]R\RnRbRwRyRzRxR~RARŽRR˜R—R™R¤RþR•R®RrR”R´R³RRRRR¿R
RËRÌRÍRÏRÎRÒRÕR#RÞRåRæRçRèRéRêRöRùRÿRRR    RRtRÁR(R+R0RîRRHRNR>RXRLRCR‰R?RR[R^RñRfRhRmRiRnR R`RoRƒRŽRR‡RˆR™R‰R RgRR°RR·R¸R¬R«RÂRÄRÃRÇRÈRŽ(((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt<module>s                                      2                                                                                                    )      $ ‰        ?                !    
                                     %              0    7    F            A            =    U                     u            #                c            O                         >                    "    4                  Q                        
                     +     !                     '                            J    &                                    <        !         3                !                    B    ?    +        h                        "    %                                 %    C            *                                  
                         0    )