cehua-HWJ35
2019-03-07 cd6fbfa9dce9c101fe7a819c811036cfbbefab8d
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
»‚|\c@spddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZedƒ\ZZ 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„Z0d„Z1d„Z2d„Z3dd„Z5d„Z6d„Z7d„Z8d„Z9d„Z:d„Z;d„Z<d„Z=d„Z>d„Z?d „Z@d!„ZAejBejCd"„ZDd#„ZEd$„ZFd%„ZGd&„ZHd'„ZId(„ZJd)„ZKd*„ZLd+„ZMd,„ZNd-„ZOd.„ZPd/„ZQgeRd0„ZSd1„ZTd2„ZUd3„ZVd4„ZWeXd5„ZYd6„ZZd7„Z[d8„Z\d9„Z]d:„Z^d;„Z_d<„Z`d=„Zad>„Zbd?„Zcd@„ZddA„ZedB„ZfdC„ZgdD„ZhdE„ZidF„ZjdG„ZkdH„ZldI„ZmdJ„ZndK„ZodL„ZpdM„ZqdN„ZrdO„ZsdP„ZtdQ„ZudR„ZvdS„ZwdT„ZxdU„ZydV„ZzdW„Z{eXdX„Z|dY„Z}dZ„Z~d[„Zd\„Z€d]„Zd^„Z‚d_„Zƒd`„Z„da„Z…db„Z†dc„Z‡dd„Zˆde„Z‰df„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~„Z¢d„Z£d€„Z¤d„Z¥d‚„Z¦dƒ„Z§d„„Z¨d…„Z©d†„Zªd‡„Z«dˆ„Z¬eRd‰„Z­dŠ„Z®d‹„Z¯dS(ŒiÿÿÿÿNicCs
|jƒS(N(tGetPoint(t    curFamily((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyWarRank>scCs |j|ƒS(N(tSetPoint(Rtrank((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.pytGetFamilyTotalFightPowerAscCs,|j|tjƒ|j|tjƒdS(N(t    SetExtra4RRt    SetExtra5(RttotalFightPower((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetFamilyTotalFightPowerBscCs)tjƒj|ƒ}|sdSt|ƒS(Ni(t    GameWorldtGetFamilyManagert
FindFamilyR
(tfamilyIDtfamily((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyTotalFightPowerByIDFscCs
|jƒS(N(t    GetExtra3(R((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyBroadcastCntMscCs|jt|tjƒƒS(N(t    SetExtra3tminRtDef_UpperLimit_DWord(RtsetCnt((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetFamilyBroadcastCntNscCs
|jƒS(N(t    GetHornor(R((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyBossFoodPscCs|jt|tjƒƒS(N(t    SetHornorRRR(RR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetFamilyBossFoodQscCs
|jƒS(N(t    GetExtra2(R((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetCurWeekMissionMoneyTscCs|jt|tjƒƒS(N(t    SetExtra2RRR(Rtvalue((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetCurWeekMissionMoneyUscCs
|jƒS(N(t    GetExtra1(R((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyMixServerDayXscCs |j|ƒS(N(t    SetExtra1(RR#((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetFamilyMixServerDayYscCs
|jƒS(N(t
GetExattr3(t    curMember((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetMemberFightPower[scCs |j|ƒS(N(t
SetExattr3(R*t
fightPower((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetMemberFightPower\scCs
|jƒS(N(t
GetExattr4(R*((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetMemberJoinTime^scCs |j|ƒS(N(t
SetExattr4(R*tjoinTime((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetMemberJoinTime_scCsß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Ûtjd||fƒgS|S(s Ëæ»ú3¸ö¼ÙÏÉÃËtFakeFamilyNameiiis'    Ëæ»ú¼ÙÏÉÃË  changeIndex=%s,value=%ssQ    Ëæ»ú¼ÙÏÉÃËÒì³£ ÒÑ´æÔÚµÄËæ»úÊý´óÓÚ»¹ÐèÒªµÄËæ»ú¸öÊýlackFakeCnt=%s,fakeIDList=%s(t IpyGameDataPYtGetFuncEvalCfgtrangetlent
GetFuncCfgRRtmaxtGetCounttxrangetPlayerDBGSEventtGetDBGSTrig_ByKeytDef_FakeFamilyIndextappendtlisttsettrandomtshufflet    GbkToCodetFindFamilyByNametindextSetDBGSTrig_ByKeytDebugLogtErrLog(tfakeFamilyNameListt
randomListt    randomCntt familyManagert lackFakeCntt
fakeIDListt
curfakeCnttit    fakeIndextlackCntR#t
familyNamet
findFamilyt changeIndex((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytRandomFakeFamilybsF  
 
 
  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(RXRARBtChPyNetSendPackttagGCFakeFamilyInfotClearR8tCountt
FakeIDListRtGetPlayerManagerR7tGetPlayerCounttGetPlayerByIndextNonet    GetInitOKt PlayerControltGetIsTJGt NetPackCommont SendFakePack(t    curPlayerRPtfakeFamilyPackt playerManagerRR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSyncFakeFamilyInfo‹s&     
     cCs|jƒ}|jƒdkr2tj|dƒdS|jƒdkrXtj|dƒdStjƒj|ƒ}t    ||ƒ}|s†dSt
|||ƒsœdStj ƒ}|j ƒ}||j ƒkrÚtj|dƒdStƒ}|j|ƒ}    |    dkrtjd|ƒdStjd|    jƒ|fƒ|    jtjƒƒ|    jdƒ|    jtjƒtjƒj|    jƒƒt|    tjtjƒƒt |    |t!j"ƒ|ró||krótj#tj$|j%|ƒdƒtj&d|j%|ƒƒnxx;t'|ƒD]-\}
} | rtj#tj$|
dƒPqqWt(j)dƒ} | rkt(j)dd    ƒ} |j*| | ƒnt+ƒt,ƒtj|d
ƒt-j.|j/ƒ||j0ƒ||    jƒƒtjd ||    jƒ|f|ƒtj1dd |j0ƒ||    jƒgƒdS( NtGeRen_chenxin_85890itXW_JZ_Family_Fulls¼Ò×å´´½¨ÊýÄ¿ÒÑÂú, ´´½¨¼Ò×åʧ°Üs!´´½¨ÏÉÃË: familyID=%s,playerID=%sis%    ´´½¨Ç°3¸öÏÉÃ˲»¿ÛÇ®! ¼ÙÏÉÃËË÷Òý%stCreateFamilyNeedMoneyitXW_JZ_EstablishSuds´´½¨¼Ò×å : %s(%s), fakeIndex=%stjiazu_liubo_671654(2t GetPlayerIDt    GetFamilyRaRct
NotifyCodet GetFamilyIDRt GetGameWorldt GetCharTrimtGetFamilyFullNametCheckFamilNameRR;tGetFamilyUpperLimitCountRXt    AddFamilyRJtLogtGetIDt SetCreateTimetGetCurrentDataTimeStrtSetLVt SetAcceptJoint ShareDefinetFamilyAcceptJoin_Agreet PyDataManagertGetFamilyStoreItemManagertDelFamilyStoreItemAllR(R=R>tDef_LastMixServerDaytDoPlayerJionFamilytIPY_GameServert    fmlLeaderRHR?RGRIt    enumerateR5R9tMapServer_PayMoneyRjt DoFamilySorttDataRecordPacktDR_CreateFamilytGetAccIDtGetNamet WorldNotify(RgRURSttickt curPlayerIDtfullFamilyNameRNtcurCntt fakeIndexListRRRtfindext    needMoneyt    moneyType((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytDoCreateFamily³sb           #(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 GetChConfigRJtGetDictValueByRangeKeyttupleR8RcRr( RgRUtserverIDtroleNameFormatt
nameFormatt    paramListtmaxLent maxServerIDtspecServerDicttnameFormatInfotfullName((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRv*s#cCs!|j|ƒ}t||ƒ|tjkrg|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*||j+ƒƒt,|jƒƒt-j.|ƒt/j0||jƒƒt1j2||jƒ|jƒ|j3ƒƒdS(N(4t    AddMembertRefreshFamilyMemberBaseMsgR‡Rˆt SetLeaderIDRpt SetLeaderNameRtSetLeaderOfficialRanktGetOfficialRankR3tintttimetChangeFamilyMemberLvtTruet SetFamilyIDR{t    SetFamilytMapServer_FamilyRefreshtGetFamilyMemberHasPowRtDef_PurviewDictKey_CanCalltSync_FamilyInfotPlayerFamilyActiontViewFamilyRequestInfot__OnFamilyNameChangetPlayerViewCachetOnPlayerFamilyChanget
PlayerTeamtOnTeamMemFamilyRefreshtGameWorldFamilyWartAddFamilyWarMemtCheckPlayerJoinFamilyWarInfotPlayerFamilyRedPackettNotifyRedPacketInfotPlayerFamilyBosstNotifyFamilyBossFBInfoR‚RƒtSyncFamilyStoreItemt AuctionHousetSync_FamilyAuctionItemInfoR.t GetFightPowert!AddFamilyIDToFightPowerChangeListtPlayerFamilyPartytNotifyFamilyPartyQuestiontPlayerFamilySWRHtNotifySWRHInfoRŒtDR_PlayerJoinFamilyR;(Rt
jionPlayertjionFamilySetLvt familyMember((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR†Es:  
 
    %    (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,    Íæ¼ÒÕ½ÃËÃû±ä¸ü´¦Àí ¸ÃÍæ¼ÒûÓÐÔÚÅÅÐаñÉÏ (RRIt GetBillboardt FindBillboardtFindByIDtSetName2(tplayerIDRUtneedChangeFamilyBillboardListt billboardMgrtbillboardIndext    billBoardtplayerBillBoardData((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR¾‚s  cCsF|jƒ}|tjkrtS|jt|t|ƒtjƒƒtS(N(tGetMoneyRRtFalsetSetMoneyRt!GetPlayerMoney_Change_FamilyMoneyRµ(RgRt playerMoneytcurFamilyMoney((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytPlayerAddFamilyMoneyŸs   cCst|tjƒS(N(R²R€t'Def_PlayerMoney_Change_FamilyMoney_Rate(Rå((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRä°scCsÉ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    DirtyListtIsWordForbiddenRcRrR8RtDef_CreatFamily_MaxStrRRRFRaR{RsRµ(RgRUR“RV((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRw¸s'# cCsdS(N((RGR‘((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytInputFamilyNameÙscCsdS(N((RGR‘((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt__Func_InputFamilyNameãscCsRtjƒj|ƒ}|j}|j}t||||ƒt|ƒ|jƒdS(N(RR^R`tNametFakeIDR™t__ClearViewFamilyStatetMapServer_LeaveEvent(RGt
clientPackR‘Rgt    inputNameRS((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt PyCreatFamilyós        
 
cCs|jtjƒdS(N(tSetViewFamilyStateR€tTViewFamilyType_None(Rg((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRò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_CCheckFamilyNameExistRtRuRRRFRaRcRr(RGR‘RgtpackRUR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytCheckFamilyNameExists  cCsžttjƒ}tj||ƒ}|dkri|dksE||kritjd||f|jƒƒdStj|||ƒ\}}t|||||ƒdS(Nis>¿Í»§¶Ë²é¿´¼Ò×åÒ³·â°ü´íÎó,ÎÞ´ËÒ³ viewPage = %s, allPageCnt = %s(    R8t
PyGameDatatg_sortFamilyIDListRt GetIntUpperRzRpt GetViewPageBeginIndexAndEndIndextSync_PyAllFamilyInfo(RgtviewPagetpageCnttsortRulet familyCountt
allPageCntt
startIndextendIndex((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSync_AllFamilyInfo2s$     cCsttjƒj|ƒ}|sdSxNt|jƒƒD]:}|j|ƒ}|jƒ}|r2tj||ƒq2q2WdS(N(    RRRR<R;tGetAtt    GetPlayerReRf(RRôRRGtmembert    memPlayer((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSendFamilyFakePackIs c Csíttjƒ}|dks'||kr+dStjƒ}tjƒ}|jƒ||_||_    g|_
x\t ||dƒD]G}tj|}    |j |    ƒ}
|
sªq|n|j
j t||
ƒƒq|Wt|j
ƒ|_tj||ƒdS(Nii(R8RþRÿRRRYttagGCPyAllFamilyViewR[t
TotalCounttCurPagetFamilyR<RR@t__GetFamilyViewt    PageCountReRf( RgRRRR    Rt    familyMgrtfamilyViewPackRRRR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRVs$  
             cCsútjƒ}|jƒ||_|jƒ|_|jƒ|_t|jƒ|_    |j
ƒ|_ |j ƒ|_ t|j ƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_t|ƒ|_t|ƒ}|tj|_|tj|_|S(N(RYttagGCPyFamilyViewR[t FamilyIndexR{tFamilyIDRt
FamilyNameR8t FamilyNameLent GetLeaderIDtLeaderIDt GetLeaderNamet
LeaderNamet LeaderNameLentGetLeaderOfficialRanktLeaderOfficialRanktGetLVtFamilyLVR;tFamilyMemberCountt GetAcceptJoint
JoinAcceptRtWarRankR
RRtTotalFightPowertTotalFightPowerEx(RGRt
familyViewR ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRks$ 
     cCsUtjƒj|ƒ}tjƒ}|jƒ}|sDt|dƒdSt||ƒdS(Ni(RR^R`R‡tIPY_CSearchFamilytGetMsgR
tSync_SearchFamily(RGR‘RgRütmsg((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt SearchFamily„s    cCsÏtjƒ}tjƒ}|jƒd|_d|_g|_xitt    j
ƒD]X\}}|j |ƒ}|stqMn||j ƒkrŒqMn|jj t||ƒƒqMWt|jƒ|_tj||ƒdS(Ni(RRRYRR[t IsSearchingRRR‰RþRÿRRR@RR8RReRf(RgR0RRRRRR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR/“s   
            c CsHtjƒj|ƒ}|j}|j}td|jƒ}|j}tjƒ}t    j
ƒ}    |    j ƒ||    _d|    _ g|    _ x ttjƒ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`tMsgtLVRtMaxCountR2RRYRR[RRR‰RþRÿRRR$R@RR8RReRf( RGt
clientDataR‘RgR0t minFamilyLVtmaxCountR2RRRRRR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytPySearchFamily±s2              
            cCsItjƒ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WdS(
Ns'¸üй«¸æ -> ¿Í»§¶Ë·â°üÒì³£ ->Íæ¼ÒÎÞ¼Ò×ås)¸üй«¸æ -> ¿Í»§¶Ë·â°üÒì³£ ->ÕÒµ½³ÉÔ±´íÎós'¸üй«¸æ -> ¿Í»§¶Ë·â°üÒì³£ ->ÄãûÓÐȨÏÞtFamilyBroadcastiitFamilyBroadcastCostis¸ü¸ÄÏÉÃ˹«¸æ Family=%s,¹«¸æ=%s($RR^R`RpRqRaRzt
FindMemberR¹RtDef_PurviewDictKey_CanBroadcastRR5R9tstrtMapServer_QueryPlayerResultR8RR‡tIPY_CFamilyChangeBroadcastt SetBroadcastR.t    CodeToGBKRtBroadcast_FamilyChangeR7R;R tFindPlayerByIDtChatMit
PlayerTalktGetTalkExtraValueR‚tGetContactsManagertAddContactsBothR{(RGR‘RgR’RR*tcurBroadcastCnttmaxBroadcastCnttcroadcastCostGoldtresultRüRiRRt notifyMembert notifyPlayer((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytUpdateBroadcastÚsF       " 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(RptGetFamilySettingRtDef_FamilySetting_MaxMemberCntR;RcRrRâR<RaRRJR¹RºR{RqR$tDef_Family_JionMinLVt IsSameCountryRµ(RgRt    tagPlayerR’t maxMemberCntR*t    tagMember((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt__CheckCanAddFamilyMembers4   cCstjtƒ||ƒdS(N(Rt GetPsycoFunct__Func_AddFamilyPlayer(RGR‘((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytAddFamilyPlayerVsc
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`R{RqRaRJR‡tIPY_CAddFamilyPlayertGetTagIDt
GetTagNameRDtFindPlayerByNameRcRrR]t
AddRequestt    reqFamilyRtDef_EventClearTimetFrm_FamilyAskIfJoinR(
RGR‘RiRgR’RRütpack_FindPlayerIDtpack_FindPlayerNamet
findPlayer((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR__s.         "(cCstjtƒ||ƒdS(N(RR^t__Func_AskJoinFamilyReply(RGR‘((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_AskJoinFamilyReplyRDtGetTagPlayerIDRaRcRrt PlayerRequestt CheckRequestRhtGetIsOKRqRJR{R]R†t    fmlMemberRtNotifyAllFamilyMemberMsgRC(RGR‘RitnoFamilyPlayerRüt    srcPlayert    srcFamilytnoFamilyPlayerName((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRn©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]tAddFamilyReplyRÛRrRsi(#RR^R`tRefurbishPlayerTickRtTYPE_Player_Tick_AddFamilyReplyRst TagPlayerIDtGetFamilyActionManagertGetFamilyActionR€tDef_ActionType_FamilyAddR7R\tAtt    GetValue1R@RqRâRDtIsOKRcRrRR?R8R¼tClearFamilyActionR]R†R‡RyRµRzRC(RGR6R‘RiRgtfamilyIdt tagPlayerIDttagPlayerIDListtallFamilyActionManagert familyActiontfamilyActionDataRÛRt
isNeedSyncRZtsendMsg((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( RcRdRR^R7R;R RDRpRaRr(    RRgtcodetparListt includeSelfRiRRRNRO((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRz;s  %cCs[d}xNtd|jƒƒD]7}|j|ƒ}|jƒ|krIqn|d7}qW|S(Nii(R7R;R t GetFamilyLV(RtfamilyLVt    memberCntRRRÖ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytFindFamilyMemberCntByPowLvZscCsP|tjkrdS|tjkr&dS|tjkr9dS|tjkrLdSdS(NRyt fmlCounsellort fmlViceLeaderRˆR›(R‡RyRšR›Rˆ(tinfo((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt__GetFamilyLVInfojscCstjtƒ||ƒdS(N(RR^t__Func_FamilyChangeMemberLV(RGR‘((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytFamilyChangeMemberLVƒscCsˆtjƒj|ƒ}|jƒ}|jƒ}|dkrMtjd|ƒdStjƒ}|jƒ}|j    ƒ}t
||||ƒdS(Ns(¸ü¸Ä¼Ò×å³ÉÔ±µÈ¼¶->·â°üÒì³£->Íæ¼ÒûÓмÒ×å( RR^R`RpRqRaRzR‡tIPY_CFamilyChangeMemberR–tDoChangeFamilyMemberLV(RGR‘RgR’RRüt
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›(,RpR<RaRRzR¹Rt%Def_PurviewDictKey_CanChangeFamilyJobtDef_Family_MemberLVListR–R‡RˆR{RR5R9R$RcRrRR´RyRŒtDR_PlayerChangeFamilyJobtSetFamilyLeaderRzR¸R R™RVt&Def_FamilyPowLvChangeFamilySettingDictR›Rþtg_autoViceleaderDicttgettg_forbidAutoViceleaderFamilyR@RºR»R¼R½RARCRµ(RRgttagIDR£tisGMOPR’R*R\RRUtcreateFamily_MinLVtleaderIDt leaderMembert leaderPlayertfamilyLvMemberCntRZ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR¡s„   *
 
   )"6 $  
 
 
cCstjtƒ||ƒdS(N(RR^t__Func_GetFamilyMember(RGR‘((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`RqRzRptGetPlayerGetFamilyInfoTickRtDef_PlayerGetFamilyInfoTicktSetPlayerGetFamilyInfoTickR»t__CheckCanRenameFamilyNametFrm_RenameFamilyAskR(RGR‘RgtcurPlayerFamily((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR¶s  
 cCs8tjƒj|ƒ}tjƒ}|j|jƒƒdS(N(RR^R`R‡tIPY_GSetPlayerViewFamilyStateR÷tGetState(RGR‘RgRü((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytMapServer_PlayerViewFamilyState>s cCstjtƒ||ƒdS(N(RR^t__Func_DeleteFamilyMember(RGR‘((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytDeleteFamilyMemberTsc
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ƒdS|jƒ}
|jƒ} |jƒ} t||d    |
gƒtj |
|jƒtj!tj"tj#g|ƒ|j$| ƒt%|| ƒ|j&|ƒ} t'| |ƒt(j)||jƒ|jƒ|j*ƒ|    | |
| ƒ|j+ƒdS(
Ns&ɾ³ý¼Ò×å³ÉÔ± ->·â°ü´íÎó ->²»ÄÜÌß³ö×Ô¼ºs&ɾ³ý¼Ò×å³ÉÔ± ->·â°ü´íÎó ->Íæ¼ÒûÓмÒ×ås"ɾ³ý¼Ò×å³ÉÔ± ->·â°ü´íÎó ->Î޴˳ÉÔ±s&ɾ³ý¼Ò×å³ÉÔ± ->·â°ü´íÎó ->²»ÄÜÌß³ö×峤s*ɾ³ý¼Ò×å³ÉÔ± ->·â°ü´íÎó ->»¤·¨²»ÄÜÌß³ö»¤·¨t FamilyWarFightingDeleteMemLimiittDungeonGuardSkyText2tFairyGrabBossExitErrortXW_JZ_LeaveFamily(,RR^R`R‡tIPY_CDeleteFamilyMembert GetMemberIDRpRzRqRaR<R¹Rt Def_PurviewDictKey_CanKickMemberR–RˆR›RÃtIsFamilyInWarFightingR{RcRrRÑtIsInFamilySWRHRtt GetDictByKeyR€t$Def_Notify_WorldKey_DailyActionStatetDailyActionID_FamilyRobBossRRzR¼tAddFamilyActionNotetDef_ActionType_FamilyEventt"Def_FamilyActionEvent_MemberChangetDef_FamilyMemberChange_KickOutt DeleteMembert__DoPlayerLeaveFamilyByIDRDtPlayerForceLeaveFamilyRŒtDR_PlayerLeaveFamilyR;RC(RGR‘RiRgRüt tagMemberIDRR*t curTagMembert curFamilyLVt tagPlayerNameRŒt tagFamilyLVRZ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÁ]sf        $       $
cCstjtƒ||ƒdS(N(RR^t__Func_LeaveFamily(RGR‘((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt LeaveFamily»sc Cs tjƒ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ƒdSttjƒƒ}t j|ƒ}|dkrÔtjd    d
ƒ||}|d kr°t j |d    |d gƒdStjd    ƒdkrËdn|}    n,|tjd    ƒdkrö|}    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 krÿt*||ƒdS|j+ƒdS(Ns$À뿪¼Ò×å -> ·â°ü´íÎó -> Íæ¼ÒûÓмÒ×åsÀ뿪¼Ò×å -> ·â°ü´íÎó ->Î޴˳ÉÔ±itXW_JZ_FamilyHeadCannotExittFamilyWarFightingLeaveLimiittDungeonGuardSkyText1RÅidt ExitFairyTimeiiièRÆ(,RR^R`RqRaRzRpR<R–R;R‡RˆRcRrRÃRÊR{RÑRËRtRÌR€RÍRÎR²R³tGetLeaveFamilyTimeR5R9tSetLeaveFamilyTimeRzRR¼RÏRÐRÑtDef_FamilyMemberChange_LeaveRÓRÕRÔRŒRÖt __DelFamilyRC( RGR‘RgRR*R—tcurTimetlastLeaveFamilyTimet
remainTimetupdTimeR’((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÜÄs`    !   $    
   $ 
cCsˆtj|jƒ|ƒt|dƒt|jƒƒtj|ddƒ|tjj    |jƒgƒkr„tj|jƒj
|ƒndS(NR›i( R¼tDelFamilyOfficerModelEquipR{R¾RÎR¿RÀRþR¬R­tremove(Rt leavePlayerID((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÔ s !cCs&tjƒj|ƒ}t|dƒdS(Ni(RR^R`R
(RGR‘Rg((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytMapServer_PlayerViewAllFamily&s cCstjtƒ||ƒdS(N(RR^t&__Func_MapServer_PlayerAddFamilyDetail(RGR‘((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytMapServer_PlayerAddFamilyDetail;scCs_tjƒj|ƒ}tjƒ}|jƒ}|jƒ}|jƒ}t||||dƒdS(Ni(    RR^R`R‡tIPY_GAddFamilyDetailtGetAddFamilyHornortGetAddFamilyMoneytGetFamilyActiveValuet)__DoLogic_MapServer_PlayerAddFamilyDetail(RGR‘RgRütaddFamilyHornortaddFamilyMoneytaddFamilyActiveValue((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRî?s    c    CsVtjƒj|jƒ}|j}|j}|j}|j}t|||||ƒdS(N(    RR^RDtPlayerIDtAddFamilyHornortAddFamilyMoneytFamilyActiveValuet    AddResionRô(    t
routeIndextmapIDt curPackDataR‘RgRõRöR÷t    addResion((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnMGAddFamilyDetailSs                c
Cs^|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|jƒ|dkrZt|ƒndS(Ns-MapServer_PlayerAddFamilyDetail Player = NonesAddFamilyDetail ->Íæ¼ÒûÓмÒ×åsAddFamilyDetail ->Î޴˳ÉÔ±s_PlayerAddFamilyDetail addFamilyHornor=%s,addFamilyMoney=%s,addFamilyActiveValue=%s,addResion=%sis\    ±¾ÖÜÈÎÎñÒÑ»ñµÃÏÉÃË×ʽðÊý!curWeekMissionMoney=%s,weekMissionMoneyMax=%s,addFamilyMoney=%s( RRJRpRqRaRzR<RIRVRt%Def_FamilySetting_WeekMissionMoneyMaxR€tDef_AddFAVReason_DoFamilyMissonR!RR:RRRRãRáR$tSetFamilyActiveValueRót#ReFreshPlayerFamilyTotalActiveValueRŒtDR_AddFamilyDetailRR{R$R»t&SendPack_MapServer_PlayerFamilyRefresh(
RgRõRöR÷RR’RR*tweekMissionMoneyMaxtcurWeekMissionMoney((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRô\sH         !      & # # *
  cCsmtjƒj|ƒ}|sdS|j|ƒ}|s8dSt||ƒtjd||f|ƒt|ƒdS(Ns*ÏÉÃ˳ÉÔ±Õ½Á¦±ä¸ü familyID=%s,fightPower=%s(RRRR<R.RIRÎ(RRÛR-RR*((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytUpdFamilyMemberFightPower˜s 
cCstjtƒ||ƒdS(N(RR^t!__Func_MapServer_PlayerLVUpFamily(RGR6R‘((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnPlayerLVUpFamily«scCstjtƒ||ƒdS(N(RR^R (RGR‘((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`RpRqRaRcRrR<RJR¹Rt Def_PurviewDictKey_CanFamilyLvUpt DoFamilyLvUp(RGR‘RgR’RR*((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR Ãs    
cCsV|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ƒtS(NsÕ½ÃË×ʽð²»×ã! needMoney=%sitjiazu_chenxin_272921R›(R$RtDef_Family_MaxLvRVtDef_FamilySetting_LvUpCostRáRRIRãR~Rct FamilyNotifyR{RŒt DR_FamilyLvUpRRttGetTickRR<R¼RÏR€RÐtDef_FamilyActionEvent_LVUPRRCR‹Rµ(RR—R‘R²t    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( RaRR^tSetForbiddenEnterFamilyRpRµR·R¶R¸tSendPackClientImpeachMsgRÁRÂ(RgR‘((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÕs   
cCsVtjƒj|jƒƒ}ttj|dƒƒ}|jddd|t|ƒƒdS(NitForbiddenFamilyAction(RR^tGetForbiddenEnterFamilyRpR>tToIntDefR?R8(RgtisForbidR0((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytNoteForbiddenFamilyAction1scCs|jƒdS(N(R¸(RgR‘((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnPlayerChangeMap>s
cCsDt|ƒ|jƒ}d}x2tdƒD]$}|dkrŸtjƒj|jƒƒ}|dkrfdS|jƒ}tjd|jƒ|fƒ|j    |ƒntjƒ}|j
|ƒ}|dkrùt ||ƒtjd||jƒƒd}q)n|j |jƒƒ}|dkr)t ||ƒtjd||jƒƒd}q)q)q)W|j |ƒ|j|ƒ|j|ƒtj|ƒs¡|jdƒ|jƒn|jƒt|ƒ}|rßt|tjƒrßtj|ƒnt||d|jƒgtƒt||ƒtj ||ƒ|j!ƒt"j#kr@t$||ƒndS(NiisÍæ¼Ò(%s)ÈÔÈ»ÓмÒ×å(%s), ²¹¾Ès-PlayerLoginRefreshFamily -> Íæ¼ÒÀ뿪¼Ò×å = %ss/PlayerLoginRefreshFamily -> Íæ¼Ò±»Ìß³ö¼Ò×å = %stXW_JZ_LeaguerOnline(%RjRsRaR7RRtFindPlayerFamilyIndexRpRzR¶RRÕR<RºR·t    SetPlayerRcRdt
SetExattr2R»R¸tGetPlayerFamilyMemberR¹RRºR¼R½RzRRât PlayerRefreshRÃt OnPlayerLoginR–R‡RˆtOnFamilyLeaderLogin(RgR‘RRRRR½RNR*((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytPlayerLoginRefreshFamilyIsP
 
 
  cCst||ƒdS(N(t%__DoFamilyMixServerLogicOnLeaderLogin(RgR((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…R{R&RRIR(RzR5R6RptPlayerCompensationt SendMailByKey(    RgRt isMixServertlastMixServerDayRtfamilyMixServerDayt mailItemListRÛt
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( RsRqRaR<RpRRzR%RzRRâ(RgR‘RRR*((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytPlayerLogoffRefreshFamily·s    # cCsv|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|jƒƒ|j|j    ƒƒ|j
|j ƒƒdS(N( tSetNameRR~R$tSetReincarnationLvtGetReincarnationLvtSetJobtGetJobtSetOperateInfotGetOperateInfotSetOfficialRankR±(R*Rg((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR­ÒscCsgt|ƒ}|dkrdSt||ƒ|jƒ}|jƒ|jƒkrc|j|jƒƒndS(N(R'RaR­RqRR{R°R±(RgR‘R*R((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR(às    cCs-t|ƒ}|dkrdS|j|ƒdS(N(R'RaR(RgR#R*((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytReFreshPlayerFamilyActiveValueós
   cCsIt|ƒ}|dkrdS|jƒ}|jt||tjƒƒdS(sÉèÖóÉÔ±ÀúÊ·¹±Ï×¶ÈN(R'Rat
GetExattr1t
SetExattr1RRR(RgtaddValueR*tcurValue((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRýs    cCs/|jƒ}|dkrdS|j|jƒƒS(N(RqRaR<Rp(RgR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR' s  cCs*|jƒ}|sdSt|||ƒdS(N(RqtDoLogic_DeleteFamily(RgR‘R((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt DeleteFamilys
 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(R7R;R R@R RÓRpRÕRaRRzR{RRå(RgRR‘t member_ListRGtplayerRÖRZ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRG(s   / c
Cs3|jƒ}|jƒ}t|ƒ}|dkr‚tj|jƒ|jƒ|jƒ|||jƒ|j    ƒ|j
ƒ|j ƒƒ    n4tj |||jƒ|j    ƒ|j
ƒ|j ƒƒt jƒj|ƒ|tjkrëtjj|ƒntj|ƒtjƒj|ƒtj||ƒtj|ƒtƒdS(N(R{RRRaRŒtDR_DismissFamilyByPlayerRŽRpRáR$RRtDR_DismissFamilyBySystemRRt    DelFamilyRþRÿRëR¼RŠR‚RƒR„RÃtOnDeleteFamilyRÆtDelRedPackByFamilyIDRj(RgRRRUt familyWarRank((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRåGs&      cCsi|j|jƒƒ|j|jƒƒ|j|jƒƒt|tjƒt    j
|j ƒ|jƒƒdS(N( R®RpR¯RR°R±R´R‡RˆRÃtOnChangeFamilyLeaderR{(RRÖ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRªss cCsô|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ƒƒndS(N(R–t SetFamilyLVt__SetFamilyMemberPurviewRRtRR€tDef_FamilyMemberChange_JointDef_FamilyMemberChange_FMLVR¼RÏRRsRÐRÑR‡RytUpdFamilyOfficerModelEquipRpRê(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.pyRS¡scCs?tjdƒ}|t|ƒkr%tS||}|jƒ|kS(Nt FamilyPurview(R5R6R8RâR–(RÖtpowIDtpowListt needMemberLV((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR¹ªs
 
cCs?t|ƒ}|dkr2tjd|jƒƒtSt||ƒS(Ns%GetPlayerHasFamilyPow -> ¼Ò×åÎ޴˳ÉÔ±(R'RaRRJR{RâR¹(RgR\R*((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetPlayerHasFamilyPow¸s
  cCsdS(N((Rg((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytOnWeekÅscCstjdƒdS(Ns
´Ë½Ó¿Ú·ÏÆú(RRJ(RGR‘((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytMapServer_FamilyWarCalcResultìs cCstjtƒ||ƒdS(N(RR^t__Func_RenameFamilyAnswer(RGR‘((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytRenameFamilyAnswer    scCs>tjƒj|ƒ}tjƒ}|jƒ}t||ƒdS(N(RR^R`R‡tIPY_CRenameFamilyAnswert GetFamilyNamet RenameFamily(RGR‘RgRüt cFamilyName((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRb
    s
   c    Cs¨tjƒj|ƒ}t||ƒ}|j||ƒ|dkr¤|jƒ}tj|ƒ}t|dgƒ}tjƒj    dd||d|t
|ƒ|j ƒƒndS(NiR›itFamilyNameRefresh( RRtRut__DoLogic_RenameFamilyAnswertSync_FamilyRenameResultRptGetQueryPlayerMapIDR>R^tMapServer_QueryPlayerR8tGetRouteServerIndex(RgRURMR’tcurPlayerMapIDtmsgStr((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRf    s   c
Csœt|ƒsdSt||ƒ}|dkr/|S|jƒ}|jƒ}|jƒ}|jƒ}|j|ƒ|jƒtjƒ}t    j
||ƒg}xÈt d|j ƒƒD]±}    |j |    ƒ}
|
jƒ} t| |ƒ|j| ƒ|j| ƒ} | sq®ntj| ƒ} | sq®nt||gƒ}|jdd| | d|t|ƒ| jƒƒq®Wtjd|g||gƒtjdd||gƒtS(NiiRhtFamilyNameChangetFamily_ChangeName(R»tCheckRenameFamilNameRqR{RR:RCRR^RÃtOnRenameFamilyR7R;R RpR¾R@RDRkR>RlR8RmR1R2RcRRµ(RgRUtcheckFamilyNameRt curFamilyIDR’toldNameRit memberIDListRGR*t curMemberIDRJRnRo((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRi+    s@      
     cCsR|jƒ}|sdS|j|jƒƒ}|s5dS|jƒtjkrNdStS(N(RqR<RpR–R‡RˆRµ(RgRR*((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR»t    s  cCs†tj|ƒrdSt|ƒdks:t|ƒtjkr>dStjƒj|ƒ}|dkr‚|j    ƒ|j
ƒkr{dSdSndS(Niiiii( RëRìR8RRíRRRFRaR{Rs(RgRURV((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRrš    s' cCs)tjƒj|ƒ}|r%|jƒSdS(NR›(RRRR(RR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyName_ByID´    s
cCs)tjƒj|ƒ}|r%|jƒSdS(NR›(RRRR(RR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetLeaderName_ByFamilyIDÀ    s
cCs=|s
dS|j|ƒ}|s#dS|jƒ|kr9dStS(N(R<R–Rµ(RÛRR—R*((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytCheckPlayerFamilyLVΠ   scCsBtjƒj|ƒ}|sdS|j|ƒ}|s8dS|jƒS(Ni(RRRR<R–(RRÛRR*((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetPlayerFamilyMemberLVExÜ    scCs?|jƒ}|sdS|j|jƒƒ}|s5dS|jƒS(Ni(RqR<RpR–(RgRR*((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetPlayerFamilyMemberLVè    s cCs t|ƒ}|sdSt|ƒS(Ni(R'R0(RgR*((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetPlayerJoinFamilyTimeó    s cCsVtjƒjƒtjƒ}g}xÕtd|jƒƒD]¾}|j|ƒ}|jƒ}t|ƒ}tj    d|j
ƒ|fƒ|t j dƒkrª|j |ƒq8ntj|j
ƒtjƒtj|j
ƒtjtjƒ|jƒt|ƒq8WxK|D]C}tj|j
ƒdƒtjd|j
ƒƒtd||ƒqWtdƒdS(Nis    ÏÉÃË%s %sÌìûÈËÉÏÏßÁËt AutoDelFamilytjiazu_hwj35_59724s%s¼Ò×åÒò×ʽð²»×ãά»¤, ½âÉ¢ (RR^tClearForbiddenEnterFamilyRR7R;R RátGetLastOnlineMemberOfflineTimeRIR{R5R9R@R¼RŠR€tDef_ActionType_FamilyArrestR†Rt"Def_Family_ClearRequestAddNote_DayRCRRcRRzRGRat __SetFamilyActivityDayStateValue(R‘RNt delFamilyListRRRt familyMoneyt
offlineDayt    delFamily((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt FamilyOnDayÿ    s, 
 
    
 
cCstjƒ}xòtd|jƒƒD]Û}|j|ƒ}|jƒ}|jƒ}|j|ƒ|jdƒt    |dƒt
|dƒx6t |jƒƒD]"}|j|ƒ}|jdƒq–Wt |ƒtj d|ƒtj||jƒ|ƒtj|ƒq"WdS(NisfamilyActiveValue = %s(RRR7R;R R{RótSetLastWeekFamilyActiveValueRRR$R<RRzRŒtDR_FamilyActiveValueByOnWeekRRÈtFamilyBossFBOnWeek(R‘RNRRRRtfamilyActiveValuetjR ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt FamilyOnWeek?
s"       
cCsPtjƒ}x=t|jƒƒD])}|j|ƒ}t|ƒt|ƒqWdS(N(RRR<R;R t__AutoChangeLeadert__AutoChangeFamilyJobLV(RNRRR((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(R{R=R>t Def_ServerDayR5R9RþR®t GetCreateTimeRt GetPastHourRIR‡R›R<R;R R–R@RVRR«R¬tsorttCmpAutoMemberSortR‰R´RpRz( RRt openServerDayt
createTimetpastHourttofmlvt viceLeaderCnttchangeMemberListRRRÖtmaxCntR RÛ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR’i
sL  ,    
  cCspt|jƒ|jƒƒ }|dkrltt|ƒt|ƒƒ }|dkrltt|ƒt|ƒƒSn|S(Ni(R•R$R+R0(tmember1tmember2tret((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRšœ
s   cCs[xTtd|jƒƒD]=}|j|ƒ}|jƒ}|dkrIqn|jƒqWdS(Ni(R7R;R R RaR¸(RRRR*Rg((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRª
s
  cCsf|tjkrdS|jƒ}tjd|ƒ}|sLtjd|ƒdStj|}t||ƒS(NiRskey = %s not in tagFamily.txt(RtFamilySettingDictR$R5tGetIpyGameDataRRJtgetattr(RRGtfamilyLvtcurFamilyLvSettingtkeyStr((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRVÄ
s  cCs;tjƒj|ƒ}|j}|j}t|||ƒdS(N(RR^R`t    PageIndext    ShowCountR
(RGR6R‘RgRtshowCnt((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…R€R†RâR7R\R‡RˆR{RµR@(
Rgt
familyListRŽt
resultListRRtisExistRGRRÛ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytQueryRequestIsFamilyû
s   
cCs~|dkrdS|jƒ}|j|ƒ}|dkrLtjd|ƒdS|jƒ}|sbdStj|ƒ}tj|ƒS(Nis)GetLeaderOfflineTime->FindMember, None;%s(RaRR<RRzt
GetExattr2tChangeTimeNumToStrR˜(RR²R*toffLineTimeNumt offLineTime((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetLeaderOfflineTime s    cCsd}x`td|jƒƒD]I}|j|ƒ}|jƒ}|sGdS|sV|}qt||ƒ}qW|ssdStj|ƒ}tj|ƒS(s»ñȡսÃ˶à¾ÃûÈËÉÏÏßÁËi(R7R;R R³R:RR´t
GetPastDay(RR¶RRR Rµ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR‚& s     c Cs®t|ƒ}tjd||jƒƒ|tjdƒkr?dSd}d}d}xtd|jƒƒD]î}|j    |ƒ}|j
ƒt j kr—qgn|j
ƒt j kr¶|}Pn|sÅ|}n!|jƒ|jƒkræ|}n|jƒrtjtj|jƒƒƒnd}|dkrg|s1|}qU|jƒ|jƒkrU|}qUqgqgW|ph|ph|}|sudStjd|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СʱtAutoChangeLeaderNii0s,ÏÉÃËfamilyID=%s,leaderID=%s´«Î»¸øtoMember=%sR¥(R·RRIR{R5R9RaR7R;R R–R‡RˆR›RCR³R˜R´RRpR<R´RyRzRRªRRŒtDR_ImpeachChangeFamilyJobR R¸( RtleaderOffLineTimettoMembert    toMember1t    toMember2RRR t offLineHourR²R³RRUR´((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR‘8 sX         0     , " "    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(RqRaR{tGetLeaderImpeachDataRtClearFamilyImpeachR<RzRRRŸtGetEvalChConfigR·tImpeachNoteTimetCanImpeachTimeRcRrR²tSendClientImpeachMag(    RgRR‹t notePlayerIDtnoteTimeR*t impeachTimeR»t
playerName((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytLeaderImpeachOnLoginz 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Ã(RqRaRŸRÇR·RÉRcRrR{RÅR¼RÏRR€t Def_ActionType_LeaderImpeachTimeR?RztSendClientAllMemberImpeachMag(    RgR‘RRÍR‹tplayerIdRËRÌRÎ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytPlayerExecLeaderImpeach¹ s,       cCsbtjƒ}|j|tjƒ}|jƒdkr^|jdƒ}|jƒt|j    ƒƒfSdS(Ni(ii(
RR„R…R€RÒR\R‡RˆR²tGetTime(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¤R¥tjiazu_xyj_272921(2RtSetWorldDictKeyRtTYPE_LeaderImpeachTickRŸRÇR7RR;R RÅR{R<RaRÆR´tGetPastSecondsR>tImpeachLastTimeRRJR5R9R$RR¼RÏR€RÐRÑtDef_FamilyMemberChange_ImpeachR´R‡RyRzRŒtDR_ImpeachLeaveFamilyRªR–RºRpRcRR^RDR¸R¹RºR»RC(R‘RÍRRRRËRÌRR*R¶R²RR±RRURÙtnotePlayerNameRJ((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´RÛRÚR7R;R R^RDRpRaR(RRËRÌRÍR¶RRRNRg((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÓ] s  cCst|jƒƒ\}}|dkr(dStjdƒ}tj|ƒ}|ttj|ƒ}|dkrmdSt|||ƒdS(NiRÁ(    RÅR{RŸRÇRR´RÛRÚR(RgRRËRÌRÍR¶((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÊx s  cCsdS(N((RgRËRÌ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR“ scCs3|jƒ}tj|tjƒt|ddƒdS(Ni(R{R¼RŠR€RÒRÓ(RRËRÌR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÆ¢ s cCs&tjƒj|ƒ}tj|ƒdS(N(RR^R`R¼R½(RGRôR‘Rg((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR½º s cCs2tjƒj|ƒ}|j}tj||ƒdS(N(RR^R`tMapIDRÈtOpenFamilyBossFB(RGR6R‘RgtfbMapID((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRáÅ s    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`RsRqRaRpR<R¹RRºR'tTypeR€tFamilyAcceptJoin_RefuseRR»RC(RGR6R‘RgR‹RR’R*((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytChangeFamilyAcceptJoinType× s*      
 
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( RRJRpRqRaRzR<RIR>RâRCR(RgtinfoDictR’RR*tisMapServerRefresh((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytMapServer_PyAddFamilyInfoValueù s*     
 cCs*tjtj|ƒtjtj|ƒdS(s ÉèÖÃÕ½Ã˻½ñÌ쿪Æô״ֵ̬ N(R=RHR€t*Def_Notify_WorldKey_FamilyActivityDayStateRtSendMapServerMsgEx(tupdValue((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR… scCs3tjtjƒ}|td|ƒB}t|ƒdS(s ÉèÖÃÕ½Ã˶ÔÓ¦»î¶¯½ñÈÕ¿ªÆô¹ý iN(R=R>R€RétpowR…(t activityTypetfadStatetupdState((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytSetFamilyActivityDayOpen$ s
cCs†tjƒj|ƒ}|sdSd}|jƒ}xNtd|jƒƒD]7}|j|ƒ}|jƒ|krG|jƒ}PqGqGW|S(s »ñȡսÃËÃËÖ÷µÈ¼¶ i(    RRRRR7R;R RpR$(RRtleaderLVR²RRR ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyLeaderLV+ s  cCs:|tjkr6tjj|ƒtjdtjƒndS(Ns7ÏÉÃËÕ½Á¦±ä¸ü´ý´¦ÀíÁбí: fightPowerChangeFamilyIDList=%s(Rþtg_fightPowerChangeFamilyIDListR@RRI(R((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyRÎ9 scCsÙtjs dStjdtjƒtjƒ}x’tjD]‡}|j|ƒ}|sXq7nd}x9t|jƒƒD]%}|j|ƒ}|t    |ƒ7}qqWt
||ƒtjd||fƒq7Wgt_t t ƒt S(Ns.¸üÐÂÏÉÃË×ÜÕ½Á¦ fightPowerChangeFamilyIDList=%sis"    familyID=%s,totalFightPower=%s(RþRóRRIRRR<R;R R+RR‹RâRµ(RNRRR RRR ((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytUpdFamilyTotalFightPower? s"          
cCstjS(N(RþRÿ(((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetSortFamilyIDListX scCs4|tjkr ttjƒdStjj|ƒdS(s»ñÈ¡ÏÉÃ˵ÄÅÅÃû£¬ ×¢ÒâÓëÁªÈüÅÅÃûÇø·Ö
    Ã¿¸öÏÉÃËÒ»¶¨ÓÐÅÅÃû£¬µ«ÊDz»Ò»¶¨ÓÐÁªÈüÅÅÃû£¬ÁªÈüÅÅÃûÖ»ÊǾö¶¨ÏÉÃË×îÖÕÅÅÃûµÄÒ»¸ö±È½ÏÒòËØ
    i(RþRÿR8RG(R((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytGetFamilyIDRankY sc    Cstjdƒ|rtƒng}tjƒ}x6t|jƒƒD]"}|j|ƒ}|j|ƒqBW|jdt    ƒgt
_ xtt |dƒD]c\}}tjd|t |ƒt|ƒ|jƒ|jƒ|jƒfƒt
j j|jƒƒq‘Wtjdt
j ƒdS(s} ÏÉÃËÅÅÐò£¬ ÅÅÐò¹æÔò: ÁªÈüÆÀ¼¶ > ×ÜÕ½Á¦ > µÈ¼¶ > ´´½¨Ê±¼ä
    ¶¨Ê±5·ÖÖÓÅÅÐòÒ»´Î
    ÏÉÃËÁªÈü·Ö×éǰ¼°Ã¿ÖܽáÊøºóÇ¿ÖÆÅÅÒ»´Î
    s7ÏÉÃËÅÅÐò, ÅÅÐò¹æÔò: ÁªÈüÆÀ¼¶ > ×ÜÕ½Á¦ > µÈ¼¶ > ´´½¨Ê±¼äR•isA    i=%s,warRank=%s,fightPower=%s,LV=%s,CreateTime=%s,familyID=%ss    sortFamilyIDList=%sN(RRIRôRR<R;R R@R™t CmpFamilySortRþRÿR‰RR
R$R—R{(tisUpdTotalFightPowerR¯RNRRR((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR‹a s  
         8cCsät|ƒ}t|ƒ}|rF|rFt||ƒ}|dkr_|Sn|sR|r_t||ƒStt|ƒt|ƒƒ}|dkrŠ|St|jƒ|jƒƒ}|dkrµ|St|jƒ|jƒƒ}|dkrà|SdS(Ni(RR•R
R$R—(tfamily1tfamily2tfamilyWarRankCmpValue1tfamilyWarRankCmpValue2R¤((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyR÷y s$         cCs¹tjƒj|ƒ}|jƒr%dStj}|jƒ}|jƒ}|jƒ||j    ƒ|j
ƒg}tj ƒ}tj ƒ}    t |    jƒƒ}
tj|
ƒd} x{|
D]s} |    j| ƒ} | sÏq®n| jƒ}| jƒ}|tjkrüq®n|tjkr—t| tjƒ}| jƒ|kr®|tjkr®t| |tjƒt| |d|gƒtj|d| jƒgƒ| jƒdSq®n| s®|j ||ƒ}|j!ƒ}t"}xHt d|ƒD]7}|j#|ƒ}|jƒ}||krÑt$}PqÑqÑW|rq®n|} q®q®W| r¥|    j%| ƒ}t&j'|| |||t"ƒ}|r¥|r¥t(| gƒ}|j)ddd|t*|ƒƒt&j+|ƒq¥ntj|dƒdS(NiRrRst    FamilyAddtjiazu_pan_500807(,RR^R`RsR€R†RR$R{R>RÍR„RR7R;RCRDR R'RäRRVRRWRXR†R‡RyRzRcRrRCR…R\RâR‡RµRR¼RÏR>R?R8tNotifyFamilyRequestInfo(RGR6R‘Rgt
actionTypetrequestPlayerNametplayerLVtactionDataListRŽRNt    indexListt joinFamilyIDRRRRtcurAcceptJoinTypeR[RtfamilyActionCntthasApplyRtnamet
joinfamilyRMR’((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pytQuicklyJoinFamilyž sf       $      !
     (°RR‡RRvRcRëRŸR=R€R¼RŒRÈR5RÆRÃRYReR‚RþR1RÏRÑR¿t GameWorldBossRËRFRÁtcopyRCR³R7RÈRÉRÛRRR
RRRRRRR!R$R&R(R+R.R0R3RXRaRjR™RvR†R¾RçRäRwRîRïRöRòRýtDef_ViewAllFamilyPageCountt    fsrHornorR
RRRR1R/R9RPR]R`R_RoRnR€RµRzR™RRŸRžRâR¡R·R¶RÀRÂRÁRÝRÜRÔRíRïRîRRôR
R R R RRÕR!R"R+R*R,R9R­R(RBRR'RHRGRåRªR´RSR¹R_R`RaRcRbRfRiR»RrRyRzR{R|R}R~RŠRR“R’RšRRVR®R²R·R‚R‘RÏRÕRÅRßRÓRÊRRÆR½RáRåRèR…RðRòRÎRôRõRöR‹R÷R (((sWE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\Player\PlayerFamily.pyt<module>sN                                                                                                      ) (    w        =                !    
                                         )    6    F            A            =    U                     u            #                ^            I                            <                    "    3                  N                        
                     ,                          '                            I    &                                    @         
    3            !                    B    ?    +        h                             "    %                                 %