hxp
2025-06-12 59331b7135fb10c24382d76fb0a3d721dddca7ee
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
¨8hc
@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZdZedƒZ\
ZZZZZZZZZ Z!eddIƒ\Z"Z#Z$Z%ide j&6de j'6de j(6Z)d    „Z*d
„Z+d „Z,d „Z-d „Z.d„Z/d„Z0d„Z1d„Z2d„Z3e j&e4d„Z5e4dd„Z6d„Z7d„Z8d„Z9d„Z:dd„Z<d„Z=eddd„Z>ddd„Z?gdd„Z@d„ZAd „ZBd!„ZCd"„ZDd#„ZEd$„ZFe4d%„ZGd&„ZHd'„ZId(„ZJd)„ZKd*„ZLd+„ZMeNd,„ZOd-„ZPd.„ZQd/„ZRd0„ZSd1„ZTd2„ZUd3„ZVd4„ZWeNd5eNd6„ZXd5d5d5d5d7„ZYd5d5d5d8„ZZd9„Z[d:„Z\dd;„Z]d<„Z^d=„Z_dd>„Z`d5ZadZbd?Zcd@„ZddA„ZeeNdB„ZfdC„ZgdD„ZhdE„ZidF„ZjdG„ZkddH„ZldS(JiÿÿÿÿNi!i
iit    MemberMaxtEliteMaxtDeputyLeaderMaxcCs\tjƒrdStjƒ}x9td|jƒƒD]"}|j|ƒ}tj|ƒq2WdS(Ni(    t    GameWorldt IsCrossServert    DBDataMgrt GetFamilyMgrtrangetGetCounttGetAttPlayerFamilyZhenbaogetOnDay(t familyManagertitfamily((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyt FamilyOnDayIs  cCsAtj|tjƒsdSt|ƒt|tƒtj|ƒdS(N(    t GameFuncCommt GetFuncCanUset ShareDefinetGameFuncID_FamilytSync_FamilyDayRewardStatet__FamilyAffair_RefreshtTrueR
t PlayerOnDay(t    curPlayer((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRUs 
  cCsrtj|tjƒsdSt||ƒt|tƒt|ƒtj    |ƒt
|ƒt j |ƒt j |ƒdS(N(RRRRtPlayerLoginRefreshFamilytSync_RequestAddFamilyInfotFalseRtPlayerFamilyTechtSync_PlayerFamilyTechLVt__FamilyAffair_CheckResettPlayerFamilyZhenfat OnPlayerLoginR
(Rttick((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyR _s  
 
  cCs¬|jƒ}|jƒ}|s"dStjƒ}|j|ƒ}|sGdS|j|ƒ}|s`dS|jttjƒƒƒt    |d|j
ƒgƒt |t d|gƒdS(NtXW_JZ_LeaguerLeavelinet excludeIDList( t GetPlayerIDt GetFamilyIDRRt
FindFamilyt
FindMembert
SetOffTimetintttimetNotifyAllFamilyMemberMsgt GetPlayerNametBroadcast_FamilyChangetFamilyChangeType_MemLogout(RtplayerIDtfamilyIDt    familyMgrRt    curMember((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnPlayerLogoutks   cCsHtj|tjdƒx+tjD] }tj|tj|dƒq WdS(Ni(t PlayerControltNomalDictSetPropertytChConfigt#Def_PDict_FamilyActivityAwardRecordRtFamilyActiveIDListt!Def_PDict_FamilyActivityFinishCnt(Rtactionid((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnWeekEx}scCs#|jƒ}tjƒ}|j|ƒ}t||ƒ|jƒ}|sJdS|j|ƒ}|scdS|j|ƒ}|s|dS|jdƒ|j    |ƒt
|ƒt |t ƒrÈt j|t|ƒƒnt|d|jƒg|gƒt|td|gƒ|jƒtjkrt|ƒndS(NitXW_JZ_LeaguerOnlineR#(R$RRtGetPlayerFamilyIDtMapServer_FamilyRefreshR%R&R'R(t RefreshMembertSync_FamilyInfotGetFamilyMemberHasPowtFamilyPowerID_Callt NetPackCommont SendFakePacktGetPack_FamilyReqJoinInfoR+tGetNameR-tFamilyChangeType_MemLogintGetFmLVtIPY_PlayerDefinet    fmlLeadertOnFamilyLeaderLogin(RR!R/R1trefreshFamilyIDR0RR2((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyR„s.      
 cCsdS(N((R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRK§scCs%tjƒj|ƒ}|j}|j}tj|tjƒs@dS|j    ƒ}|j
ƒ}t j ƒ}|r¨|j |ƒ}    |    r¨|    j|ƒr¥tj|dƒdSq¨nt||ƒ}
|
sÁdStjddƒ} tjddƒ} | r| rtj|| | dƒsdSntj|ƒ} |j|
| ƒ}    |    dkrQtjd|ƒdS|    jƒ}|    jdƒtjƒ}| s‰||kr›tj|ƒ}ntjd|||fƒ|    j |ƒt!|    ||t"j#ƒ|j$ƒtj|dƒtj%dd    |j&ƒ|
|gƒt'j(|    ƒdS(
NtGeRen_chenxin_85890t CreateFamilyiis ´´½¨¼Ò×åʧ°Üs-´´½¨ÏÉÃË: familyID=%s,playerID=%s,emblemID=%stXW_JZ_EstablishSuditjiazu_liubo_671654()RtGetPlayerManagertGetPlayerByIndextNametEmblemIDRRRRR$R%RRR&R'R4t
NotifyCodetCheckInputFamilyNamet IpyGameDataPYt
GetFuncCfgtPayMoneytGetPlayerServerIDt    AddFamilytNonetErrLogtGetIDtSetLVtPlayerFamilyEmblemtGetDefaultFamilyEmblemIDListtrandomtchoicetLogt SetEmblemIDtDoPlayerJionFamilyRIRJtSortt WorldNotifyRFR
tOnZhenbaogeReset(tindext
clientPackR!Rt    inputNametemblemIDR/tplayerFamilyIDR1t    curFamilytfullFamilyNamet    needMoneyt    moneyTypetserverIDt newFamilyIDt emblemIDList((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnCreateFamily´sP           
 
" cCsßtjƒj|ƒ}t||ƒ}|sDtjd|jƒƒdStj|ƒrgtj    |dƒdSt
|ƒdks‹t
|ƒt kr¬tj    |dt dt gƒdSt j ƒ}|j|ƒrÛtj    |dƒdS|S(s_¼ì²éÍæ¼ÒÊäÈëµÄÏÉÃËÃûÊÇ·ñºÏ·¨£¬½¨ÃË¡¢¸ÄÃûͨÓÃ
    @return: None-²»ºÏ·¨£»·Ç¿Õ-ºÏ·¨µÄÏÉÃËÈ«Ãû
    s ¼Ò×åÈ«ÃûÒì³£!NtXW_JZ_Family_NameNoLegalityitGeRen_liubo_980181itXW_JZ_EstablishErr_Name(Rt GetGameWorldt GetCharTrimtGetFamilyFullNameR]R$t    DirtyListtIsWordForbiddenR4RUtlentDef_CreatFamily_MaxStrRRtFindFamilyByName(RRlt
familyNameRpR1((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRVès $ c CsItj|ƒ}tjddƒ}||ks9|dkrTtjd||fƒdStjddiƒ}tj||ƒ}|s–tjddƒ}n|s dS|d}g|dD]}t|ƒ^qµ}|t|ƒ}    tjddƒ}
t    |    ƒ|
krEtjd    ||    t    |    ƒ|
fƒt
j |d
|
d|
gƒdS|    S( NtFamilyNameFormatiisFÏÉÃËÈ«Ãû serverID=%s error! maxServerID=%s, check FamilyNameFormat.txttiiisFÏÉÃËÈ«Ãû familyName=%s,È«Ãû=%s len=%s > %s, check FamilyNameFormat.txtRx( RRZRWRXR]tGetFuncEvalCfgtGetDictValueByRangeKeytevalttupleRR4RU( RR‚Rst maxServerIDtspecServerDicttnameFormatInfot
nameFormattpNamet    paramListtfullNametmaxLen((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyR|s(
##c
Cs©t|tƒr3|}tjƒ}|j|ƒ}n|}|sCdS|jƒ}|j|ƒ}|j|ƒ|r|j|ƒn |j    |ƒ|j
|j ƒ|j ƒƒ|t j krÊ|j|ƒn|rêt||ƒt|ƒn|t j krb|rt|td|gƒnt|d|jƒgd|gƒ|rbtj|d|jƒgƒqbntjƒjƒ}    t|jƒ|tjtjtj|dg|    ƒdS(sM¼ÓÈë¼Ò×壬֧³ÖÀëÏßÍæ¼Ò¼ÓÈë
    @param jionPlayer: Èç¹ûÊÇÀëÏßÍæ¼ÒÔòΪNone
    NR#tXW_JZ_EnterFamilytXW_JZ_EnterFamilyInfoi( t
isinstanceR)RRR&R^t    AddMembertSetFmLVR?tRefreshMemberByIDtSetFightPowerTotaltGetFightPowerTotalRIRJt SetLeaderIDR>R@R-tFamilyChangeType_MemJoinR+R,R4RURFRRztGetTicktAddFamilyActionNoteRtDef_ActionType_FamilyEventt"Def_FamilyActionEvent_MemberChangetDef_FamilyMemberChange_Join(
RR/t
jionPlayertjionFamilySetLvtbroadcastFamilyChangeR0R1RotmemberR!((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRf s:      ""R„c Cs²|tjkr tjdƒtStjƒj||ƒ}|jƒ}|sNtS|j    |ƒ|j
|ƒxCt |dƒD]2\}    }
t |d|    ƒ} | rx| |
ƒqxqxWt S(sͳһÌí¼Ó¼Ò×åActionÊý¾Ý
    s¼Ç¼¼Ò×åÐÐΪÀàÐÍ:%s ´íÎóis
SetValue%s(RtDef_ActionTypeListRR]RRtGetFamilyActionMgrtGetFamilyActiont    AddActiontSetNamet SetUserDatat    enumeratetgetattrR( tcurNameR0t
actionTypetactionDataListR!t isClearNonetuseDatat familyActiont
actionDatatnumtvaluetsetFunc((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRœSs    cCsEtjƒjƒ}|jƒ}d}d}d}d}|r±tjƒ}|j|ƒ}    |    r¨|    jƒ}|    jƒ}|    j    ƒ}|    j
|ƒ}
|
r®|
j ƒ}q®q±d}n|j ƒ} |j ƒ} tj|ƒ} | |krô|j|ƒn|jƒ|kr |j|ƒ|jƒntj|ƒ|krHtj||ƒn| |krgtj||ƒn| |krÃt}| r”|dkr”t}n|j|ƒtj|tj|ƒ|rÃqÃn| dkrñ|j ƒdkrñt||ƒnF| dkr7|j ƒdkr7|jƒtjkr'nt ||ƒn|j!ƒdS(sf Ï൱ÓÚGameServerµ÷ÓàcurPlayer.MapServer_FamilyRefresh()
    @param familyID: Íæ¼Ò¸üеÄfamilyID
    iR„N("RRzR›R$RRR&tGetLVRFt GetEmblemIDR'RHR%t GetFamilyLVR4tGetFamilyMemberLVt SetFamilyIDt GetFamilyNamet SetFamilyNametNotify_FamilyNameRefreshtGetFamilyEmblemIDtSetFamilyEmblemIDtSetFamilyMemberLVRRt SetFamilyLVR5R6tDef_Player_Dict_FamilyLVt__OnLeaveFamilyt IPY_GameWorldRJt__OnEnterFamilytView_FamilyInfoRefresh(RRLR!R/t refreshFmLVtrefreshFamilyLVtrefreshEmblemIDtrefreshFamilyNameR1RoR£t lastFamilyIDt lastFamilyLVtlastFmLVtisLVUP((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyR>isZ                     
cCsDtjƒ}|j|jƒƒt|ƒt|ƒtj|ƒdS(N(RRtDelPlayerReqJoinFamilyIDAllR$RRRR(RR!R1((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRÅ­s  
 
 cCsq|jdƒ|jdƒ|jdƒ|jdƒ|jdƒtj|ttjƒƒƒt    j
||ƒdS(Ni( t    SetPerExptSetFamilyHornortSetFamilyActiveValuetSetLastWeekFamilyActiveValueRÁR4tSetLeaveFamilyTimeExR)R*tFBLogict OnLeaveFamily(RR!((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRús     cCsKtjddiƒ}t|ƒ|kr+tS|t|ƒ}|jƒ|kS(Nt FamilyPoweri(RWR…tstrRRH(R£tpowerIDt    powerDictt needMemberLV((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRAÇs
cCs?|jƒ}|sdS|s+t|ƒ}ntj||ƒdS(N(R%tGetPack_FamilyInfoRCRD(RtinfoPackR0((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyR@Ïs cCsKtjƒ}|j|ƒ}|s%dStjƒ}||_|jƒ|_|jƒ|_    |j
ƒ|_ |j ƒ|_ |jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_t|jƒ|_|jƒ|_g|_x8t|j ƒƒD]$}|j!|ƒ}tj"ƒ}|j#ƒ|_$|j%ƒ|_&|j'ƒ|_(t|j(ƒ|_)|jƒ|_*|j+ƒ|_,|j-ƒ|_.|j/ƒ|_0|j1ƒ|_2|jƒ|_|jƒ|_|j3ƒ|_4|jƒ|_|j5ƒ|_6|j7ƒ|_8|j9ƒ|_:|jj;|ƒq Wt|jƒ|_<|S(N(=RRR&tChPyNetSendPackttagMCRoleFamilyInfotFamilyIDRFt
FamilyNameR¶tFamilyLVtGetExpt FamilyLVExpt GetJoinReviewt
JoinReviewt GetJoinLVMint    JoinLVMint GetServerIDtServerIDR·RTt GetFightPowert
FightPowertGetFightPowerExt FightPowerExt GetBroadcastt    BroadcastRt BroadcastLent GetLeaderIDtLeaderIDt
MemberListtxrangeRR    ttagMCRoleFamilyMemberR$tPlayerIDt GetJoinTimetJoinTimeR,RStNameLentLVtGetJobtJobt
GetRealmLVtRealmLVtGetFacetFacet
GetFacePictFacePicRHtFmLVtGetContribTotalt ContribTotaltGetContribWeekt ContribWeekt
GetOffTimetOffTimetappendt MemberCount(R0R1RoRkRjR£tmemInfo((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRÜÙsR           cCs,tjƒ}||_t||||ƒdS(N(RÞttagMCFamilyChangetTypetBroadcast_FamilyPack(R0t
changeTypeRÙR#Rk((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyR-s     c CsÜ|s
dStjƒ}|j|ƒ}|s/dStjƒ}xšt|jƒƒD]†}|j|ƒ}|jƒ}    |r‡|    |kr‡qNn|j    |    ƒ}
|
s¢qNn|dkrÄt ||ƒ rÄqNnt j |
|ƒqNWdS(N(RRR&RRQRõRR    R$tFindPlayerByIDR\RARCRD( R0RkRÙR#R1Rot playerManagerRjR£R/R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyR s&   c Cs³tjƒ}|j|ƒ}|s%dStjƒ}x{t|jƒƒD]g}|j|ƒ}|jƒ}    |r}|    |kr}qDn|j    |    ƒ}
|
s˜qDnt
j |
||ƒqDWdS(N( RRR&RRQRõRR    R$RR4RU( R0tcodeRŽR#R1RoRR R£R/R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyR+(s   cCsŒtjƒj|ƒ}|j}tjƒj|ƒ}|sNtjd|ƒdS|jƒ}|dkr{tjd|ƒdSt||ƒdS(Ns¶Ô·½²»ÔÚÏß! tagPlayerID=%sis¶Ô·½Ã»ÓмÒ×å! tagPlayerID=%s(RRQRRt TagPlayerIDRtDebugLogR%tRequestJoinTagFamily(Rjt
clientDataR!Rt tagPlayerIDt    tagPlayert tagFamilyID((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnRequestJoinFamilyByPlayerBs       cCsvtjƒj|ƒ}|j}|j}|dkrV|sFt|ƒqrt||ƒn|dkrrt||ƒndS(Nii(RRQRRt TagFamilyIDRtAutoJoinFamilyRtCancelJoinTagFamily(RjRR!RRt requestType((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnRequesJoinFamilyXs           c
Csf|jƒrdS|jƒ}|jƒ}tjd||ƒtjƒ}t|jƒƒ}t    j
|ƒxë|D]ã}|j |ƒ}|sqnn|j ƒ}|j ƒ}|rÙ||krÙtjd||f|ƒqnn|jƒrÿtjd||ƒqnnt|jƒdƒ}    |jƒ|    kr@tjd||ƒqnnt|||ƒdSWtjdƒdS(Ns"Íæ¼ÒÒ»¼ü×Ô¶¯¼ÓÈë¼Ò×壡 playerLV=%ss*    µÈ¼¶²»×ãµÄ²»´¦Àí! familyID=%s,lvMin=%ss!    ÐèÒªÉóºËµÄ²»´¦Àí! familyID=%sRs!    ³ÉÔ±ÒÑÂúµÄ²»´¦Àí! familyID=%ssûÓпÉ×Ô¶¯½øÈëµÄÏÉÃË!(R%R$R¶RRRRRRRbtshuffleR    R^RçRåtGetFamilySettingRf(
RR/tplayerLVR1t    indexListRjRR0tlvMinR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRks8          cCsS|s
dStjd|ƒ}|s&dSd|}t||ƒsCdSt||ƒƒS(NitFamilysGet%s(RWtGetIpyGameDatathasattrR«(tfamilyLVt    fieldNametipyDatatattrName((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyR#Žs
c Cs7|jƒ}|jƒr6tjd|jƒ|ƒdStjƒ}|j|ƒ}||krutjd||ƒdStjddƒ}t    |ƒ|kr½tjdt    |ƒ|f|ƒdS|j
|ƒ}|sÖdS|j ƒ}|j ƒ|krtjd|j ƒ|f|ƒdS|j ƒrØ|jƒ}||kr—tjddƒ}    t    |ƒ|    kr—tjdt    |ƒ|f|ƒtj|d    ƒdSn|j|ƒt|t|ƒtƒtj|d
ƒt|ƒdSt|j ƒd ƒ}
|jƒ|
kr#tjd |j ƒ|
f|ƒdSt|||ƒdS( Ns%ÒѾ­ÓÐÏÉÃ˲»ÄÜÔÙÉêÇë¼ÓÈë! familyID=%ss%ÒѾ­ÔÚÉêÇë¼ÓÈëÏÉÃËÁбíÖÐ! familyID=%st FamilyReqJoinis"ÒѾ­´ïµ½×î´óÉêÇë¼ÓÈëÏÉÃËÊý! %s, %ss,µÈ¼¶Î´´ïµ½¸ÃÏÉÃ˼ÓÈë×îµÍµÈ¼¶ÏÞÖÆ! lv=%s < %sisÄ¿±êÏÉÃËÉêÇë¼ÓÈëÊýÒÑÂú! %s, %stjiazu_pan_141056tjiazu_pan_500807Rs*Ä¿±êÏÉÃ˳ÉÔ±ÒÑÂú! familyLV=%s,memberMax=%s(R$R%RRRRtGetPlayerReqJoinFamilyIDListRWRXRR&RçR¶RåtGetReqJoinPlayerInfoR4RUtAddReqJoinPlayerIDRRERBRR#RRf( RR0R/R1treqFamilyIDListtmaxReqFamilyCntt    tagFamilyR&treqPlayerIDDicttmaxReqPlayerCntt    memberMax((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRšsN            
 cCsqtjƒ}|jƒ}|j|ƒ}|r=|j|ƒn|j||ƒt|t|ƒtƒt    |ƒdS(N(
RRR$R&tDelReqJoinPlayerIDtDelPlayerReqJoinFamilyIDRRERBR(RR0R1R/R6((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRÐs  
cCs~|jƒ}tjƒ}|j|ƒ}| r9| r9dStjƒ}|jƒ||_t|jƒ|_    t
j ||ƒdS(N( R$RRR1RÞt tagMCNotifyRequestJoinFamilyInfotCleartRequestJoinFamilyIDListRt RequestCountRCRD(RtisForceR/R1R4Rk((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRÜs   
    c Csžtjƒ}|j|ƒ}|s%dS|jƒ}tjƒ}tjƒ}g|_x3|j    ƒD]%\}}|j
|ƒ}tj ƒ}    ||    _ ||    _ |rªt|    _ntj|ƒ}
|
r[|
jƒ|    _t|    jƒ|    _|
jƒ|    _|
jƒ|    _|
jƒ|    _|
jƒ|    _|
jƒ|    _|
j ƒ|    _!|
j"ƒ|    _#|
j$ƒ|    _%n|jj&|    ƒt|jƒdkr_Pq_q_Wt|jƒ|_'|S(Nid((RRR&R2RRQRÞttagMCFamilyReqJoinInfot ReqJoinListtitemsRttagMCFamilyReqJoinPlayerR÷tReqTimeRtIsOnLinetPlayerViewCachet FindViewCacheR,RSRRúR¶RûRüRýRþRÿRRRRRëRìRíRîRéRêR tReqCnt( R0R1RoR7RRkR/treqTimeRtreqInfot    viewCache((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyREës@                  cCs>tjƒj|ƒ}|j}|j}|jƒ}|jƒ}|dkrOdStjƒ}|j    |ƒ}    |    stdS|    j
|ƒ}
|
sdSt |
t ƒs°t j|dƒdStjd|||f|ƒ|    jƒ} | jƒ} |r|| kr tjd|ƒdS|g} n| s/tjdƒdStjƒ} |sºx\| D]T}|    j|ƒ| j|ƒ}|svqHnt|ƒt j|d|    jƒgƒqHWt|t|ƒt ƒdStjddƒ}t|    jƒd    ƒ}g}x| D]}|    jƒ|krt j|d
ƒPn| j|ƒ}|sb|sbtjd ||ƒt j|d ƒqîqbn|    j
|ƒr›tjd ||ƒt j|dƒqîn|j|ƒ}|ràtjd||f|ƒt j|dƒqînt|    ||dtƒ|j |ƒqîW|sdSt!|t"d|ƒt|t|ƒt ƒdS(NitXW_JZ_InviteErr_Popedoms0ÉóºËÈëÃËÉêÇë: tagPlayerID=%s,familyID=%s,isOK=%ss ²»´æÔÚ¸ÃÉêÇëÈËÔ±! tagPlayerID=%ss ûÓÐÉêÇëÈËÔ±!tjiazu_pan_592934R.iRtjiazu_lhs_202580s$ÀëÏßÍæ¼ÒÎÞ·¨¼ÓÈëÏÉÃË! tagPlayerID=%stjiazu_hwj35_367906sÒѾ­ÊDZ¾Ã˳ÉÔ±! tagPlayerID=%stXW_JZ_InviteErr_Repeats/ÒѾ­¼ÓÈëÆäËûÏÉÃË! tagPlayerID=%s,tagFamilyID=%sR¢R#(#RRQRRRtIsOKR$R%RRR&R'RARBR4RURR2tkeysR:RRRFRRERWRXR#R¶RR=RfRR R-Rš(RjRR!RRtisOKR/R0R1RR2R7ttagPlayerIDListRRtofflinePlayerCanJoinRtjoinOKPlayerIDListR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnJoinFamilyReplysˆ                    
      c Cstjƒj|ƒ}|j}|j}|jƒ}|jƒ}|dkrOdStjƒ}|j    |ƒ}    |    stdS|    j
|ƒ}
|
sdSt |
t ƒs°tj d|ƒdStj d|||f|ƒ|    j|ƒ|    j|ƒt|ƒt|tt d|gƒdS(Nis ûÓÐÕÐÈËȨÏÞs4ÐÞ¸ÄÕÐÈËÉèÖÃ: familyID=%s,joinReview=%s,joinLVMin=%sR#(RRQRRRæRèR$R%RRR&R'RARBRt SetJoinReviewt SetJoinLVMinR@R-tFamilyChangeType_JoinSet( RjRR!Rt
joinReviewt    joinLVMinR/R0R1RR2((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnChangeFamilyJoinrs.              
c
Cs
tjƒj|ƒ}|j}|jƒ}|jƒ}|dkrFdStjƒ}|j|ƒ}|skdS|j    |ƒ}    |    s„dSt
|    t ƒs§tj d|ƒdS|j |ƒtj dtj|jƒƒtj|ƒf|ƒt|ƒt|td|gƒdS(NisûÓÐÐ޸Ĺ«¸æÈ¨ÏÞs¸ü¸ÄÏÉÃ˹«¸æ: Family=%s,¹«¸æ=%sR#(RRQRRtMsgR$R%RRR&R'RAtFamilyPowerID_BroadcastRt SetBroadcastt    CodeToGbkRFR@R-tFamilyChangeType_Broadcast(
RjRR!Rt    broadcastR/R0R1RR2((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnChangeFamilyBroadcast“s*         2
cCs2tjƒj|ƒ}|j}tj||ƒdS(N(RRQRRRTR`tOnChangeFamilyEmblem(RjRR!RtchangeEmblemID((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRf²s    cCs/tjƒj|ƒ}t||j|jƒdS(N(RRQRRtOnChangeFamilyMemberLVR÷R(RjRR!R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnChangeFamilyMemLVÀscCs´|s
dS|jƒ}|jƒ}|dkr2dStjƒ}|j|ƒ}|sWdS|j|ƒ}|spdS|dks‹|tjkr tj    d|ƒdS|sÜt
|t ƒs¹dS||krÜtj    d|ƒdSn|j|ƒ}    |    dkrtj    d||ƒdS|s|j ƒtjkr||j ƒkrTtj    d||ƒdS|    j ƒ|j ƒkrtj    d|    j ƒ|ƒdSqn|tjkrµt}
t||    ƒnÂd} xKt|jƒƒD]7} |j| ƒ} | j ƒ|krûqÎn| d7} qÎWt|jƒtj|d    ƒƒ}| |krdtj|d
ƒtj    d || |fƒdSt}
t|    |ƒ|r|jd    ƒnt|ƒt||
d ||gƒtS( sαä¸ü³ÉԱְλ
    @param curPlayer: ²Ù×÷µÄÍæ¼Ò
    @param tagID: Ä¿±ê³ÉÔ±ID
    @param changeFmlv: ÐÞ¸ÄΪxxְλ
    @param isGMOP: ÊÇ·ñÊÇGMºǫ́·¢ÆðµÄ£¬Èç¹ûÊÇGM·¢ÆðµÄ£¬Ò»°ãcurPlayer´«ÈëµÄΪĿ±ê³ÉÔ±IDʵÀý
    Nis²»´æÔÚ¸ÃְλµÈ¼¶! changeFmlv=%ss²»ÄÜÈÎÃâ×Ô¼ºµÄ¼Ò×åְλs*¸ü¸Ä¼Ò×å³ÉԱְλʱĿ±ê³ÉÔ±²»´æÔÚ! tagID=%ss+Ð޸ĵÄְλ²»ÄܱÈ×Ô¼º¸ß»òƽ¼¶! changeFmlv=%ss0Ð޸ĵÄÄ¿±ê³ÉԱְλ²»ÄܱÈ×Ô¼º¸ß»òƽ¼¶! tagFmlv=%siR„tjiazu_chenxin_31379s?Ŀǰ¸ÃְλµÄÈËÊýÒѾ­´ïµ½ÉÏÏÞ! changeFmlv=%s,fmLVMemCnt=%s >= %sR#(R$R%RRR&R'RIRJRRRAtFamilyPowerID_ChangeFmlvR\RHtFamilyChangeType_LeaderChangetChangeFamilyLeaderRRR    R#R¶tDef_FmlSetAttrNametgetR4RUtFamilyChangeType_MemFmlvChangetChangeFamilyMemberLvRaR@R-R(RttagIDt
changeFmlvtisGMOPR/R0R1RR2t    tagMemberRt
fmLVMemCntRjt familyMembertmaxCnt((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRhÅsn      
!  
cCs—|jƒ}|jƒ}|jƒ}||kr4dS|j|ƒ}|r\t|tjƒn|j|ƒt|tjƒt    j
d|||fƒdS(Ns9¼Ò×åÉèÖÃÐÂ×峤! familyID=%s,newLeaderID=%s,befLeaderID=%s( R^RòR$R'RqRIt    fmlMemberR™RJRRd(Rt newLeaderMemR0t befLeaderIDt newLeaderIDt befLeaderMem((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRm s     cCsñ|jƒ}|jƒ}|jƒ}|jƒ}|j|ƒtjƒj|ƒ}|ršt||ƒt    |ƒt
|t ƒršt j |t|ƒƒqšntjƒjƒ}t||tjtjtj||g|ƒt|d||gƒdS(NtXW_JZ_AppointFamily(R%R$R,RHR•RRQRR>R@RARBRCRDRERzR›RœRRRžtDef_FamilyMemberChange_FMLVR+(RutchangeFamilyLVR0RrtmemNamet befFamilyLVRR!((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRq s       
cCs#tjƒj|ƒ}t|ƒdS(N(RRQRRR@(RjRR!R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnGetFamilyInfo@s
c
Csbtjƒj|ƒ}|jƒ}|jƒ}|dkr=dStjƒ}|j|ƒ}|sbdS|j|ƒ}|s{dS|j    ƒ}    |j
ƒdkr¼|    t j kr¼tj d|ƒdStj d||ƒ|j|ƒt|jƒ|tjtjtjg|ƒt|d|jƒgƒt|dƒ|j
ƒdkrQ|j|ƒdSt|tƒdS(Niis%×峤ÔÚ³ÉÔ±ÈËÊý´óÓÚ1ʱ²»ÄÜÖ±½ÓÍ˳ö¼Ò×åsÀ뿪¼Ò×å! familyID=%stXW_JZ_LeaveFamily(RRQRRR$R%RRR&R'RHRRIRJRt DeleteMemberRœRFRRRžtDef_FamilyMemberChange_LeaveR+R>t    DelFamilyR-tFamilyChangeType_MemLeave(
RjRR!RR/R0R1RR2R*((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRÖKs6     !        cCs«tjƒj|ƒ}|j}|jƒ}||kr:dS|jƒ}|dkrVdStjƒ}|j|ƒ}|s{dS|j    |ƒ}    |    s”dSt
|    t ƒs´tj dƒdS|j    |ƒ}
|
sÍdS|    j ƒ} |
j ƒ} | | krtj d|| | f|ƒdS|
jƒ} |
jƒ}|j|ƒt| |tjtjtjg|ƒt|d| gƒtjƒj|ƒ}|ršt|dƒnt|tƒdS(Nis ûÓÐÌßÈËȨÏÞ!sCÖ»ÄÜÌß±È×Ô¼ºÖ°Î»µÍµÄ³ÉÔ±! tagMemberID=%s,tagFmlv(%s) >= curFmlv(%s)R„(RRQRRtMemberIDR$R%RRR&R'RAtFamilyPowerID_KickRRHR,R…RœRRRžtDef_FamilyMemberChange_KickOutR+RR>R-Rˆ(RjRR!Rt tagMemberIDR/R0R1RR2RutcurFmlvttagFmlvt tagPlayerNameRR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnDeleteFamilyMembersJ                 cCsìtjƒj|ƒ}|j}|j}|jƒ}|jƒ}|dkrOdStjƒ}|j    |ƒ}    |    stdS|    j
|ƒ}
|
sdS|
j ƒt j kr¶tjd|ƒdSt||ƒ} | sÏdS|jƒjtjƒ} | j|ƒ} tj| ƒ s| jƒtjkr3tjd||ƒdStj|| dtdƒ|    j| ƒt|ƒ}tjƒ}xtt|    jƒƒD]`}|    j|ƒ}|jƒ}|j |ƒ}|sÀq„nt!||ƒ|j"| ƒ|j#ƒq„WdS(Nis·ÇÃËÖ÷²»¿É¸ÄÃû!sûÓÐÏÉÃ˸ÄÃûµÀ¾ß! itemIndex=%sitUpdateFamilyName($RRQRRtNewNamet    ItemIndexR$R%RRR&R'RHRIRJRRVtGetItemManagertGetPackRÄtrptItemR    t
ItemCommontCheckItemCanUsetGetTypeR6tDef_ItemType_ChangeFamilyNametDelItemRR¨RÜRõRRR@R¼R½(RjRR!RtnewNamet    itemIndexR/R0R1RR2R‚titemPacktcurItemRÝRR£tmemIDtplayer((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyR‘¿sN            %      cCs¸tjƒj|ƒ}|j}|j}t|jdƒ}tjƒ}|j    ƒ}d}    |s™||}
|
|d} |dkr»tj
||ƒ}    q»n"d}d}d}    d}
|d} t j ƒ} || _t | jƒ| _|| _|| _|    | _g| _x›t|
| dƒD]†}||kr0Pn|j|ƒ} | sKqn|ri|| jƒkriqnt jƒ}| jƒ|_| jƒ|_t |jƒ|_| jƒ|_| j|jƒ}|rØ|jƒnd|_t |jƒ|_| jƒ|_ | j!ƒ|_"| j#ƒ|_$| j%ƒ|_&| j'ƒ|_(| j)ƒ|_*| j+ƒ|_,| j    ƒ|_-| jj.|ƒt | jƒ| _/| j/|krPqqWt0j1|| ƒdS(Ni2iiiR„(2RRQRRR_t    PageIndextmint    ShowCountRRRt GetIntUpperRÞttagMCFamilyViewListRtMsgLent    TotalPaget
FamilyListRR    RFttagMCFamilyViewR^RàRát FamilyNameLenRòRóR'R,t
LeaderNamet LeaderNameLenR¶RâRåRæRçRèRéRêR·RTRëRìRíRîR R t FamilyCountRCRD(RjRR!Rtmsgt    pageIndext    showCountR1t familyCountt    totalPaget
startIndextendIndexRkRt
familyViewt leaderMember((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnViewFamilyPageüsl          
 
                       cCsdS(N((RjRR!((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnFamilyMoneyDonateBsicCstS(N(R(RtaddValuetsendPackGameServertreasontisSysMsg((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytAddPlayerFamilyActiveValueKscCsdS(N((RtaddFamilyHornortaddFamilyMoneytaddFamilyActiveValuetresion((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyt#SendPack_GameServer_AddFamilyDetailNscCsdS(N((RtaddPlayerActiveValueRÀR¿RÂ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyt%SendPack_GameServer_AddFamilyDetailExPscCsZtjƒj|ƒ}|sdS|j}|j}|sF|jƒ}nt|||ƒdS(N(RRQRRt
ActionTypeRàR%tSendFamilyActionInfo(Rjt
cliendDataR!RR­R0((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnQueryFamilyAction]s        cCsotjƒj||ƒ}tjƒ}||_||_g|_xðt|j    ƒƒD]Ü}|j
|ƒ}tj ƒ}|j ƒ|_ |jƒ|_t|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_t|jƒ|_ |jj!|ƒqRWt|jƒ|_    |r^t"j#||ƒdSt$||ƒdS(N(%RR¥R¦RÞttagMCFamilyActionInfoRàRÆtFamilyActionListRõtCounttAtttagMCFamilyActiontGetTimetTimeRFRSRRút    GetValue1tValue1t    GetValue2tValue2t    GetValue3tValue3t    GetValue4tValue4t    GetValue5tValue5t    GetValue6tValue6t GetUserDatatUseDatat
UseDataLenR RCRDR(RR0R­R±RkRjtfamilyActionDataR²((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRÇks4               cCsƒt|tƒs|g}n|s%dS|d}|jƒ}|jƒ}tjƒ}||_||_g|_xÕ|D]Í}tj    ƒ}|j
ƒ|_ |j ƒ|_ t|j ƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_|jƒ|_t|jƒ|_|jj|ƒquWt|jƒ|_ |rrt!j"||ƒdSt#||ƒdS(Ni($R“tlistR%t GetActionTypeRÞRÊRàRÆRËRÎRÏRÐRFRSRRúRÑRÒRÓRÔRÕRÖR×RØRÙRÚRÛRÜRÝRÞRßR RÌRCRDR(R®RRàR0R­RkR²((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytSendFamilyActions> 
                  cCsdS(N((R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytGetFamilyDayAwardµscCs>tjƒ}d|_|jtjƒ|_tj||ƒdS(Ni(    RÞttagMCFamilyDayAwardtGetStatetNomalDictGetPropertyR6t"Def_Player_Dict_FamilyDonateRecordtMoneyDonateCountRCRD(RRk((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyR¹s
     cCsdS(N((RR:taddCnt((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytAddFamilyActivityÀsicCs|tjƒj|ƒ}|j}|j}|dkr@t|ƒn8|dkr\t||ƒn|dkrxt||ƒndS(Niii(RRQRRtOPTypetAffairIDRt__FamilyAffair_Startt__FamilyAffair_GetAward(RjRR!RtopTypetaffairID((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pytOnFamilyAffairOPÑs            cCs:|jtjdƒ}|s,t|tƒn
t|ƒdS(Ni(RçR6t Def_Player_Dict_FamilyAffairInfoRRtSyncFamilyAffairInfo(Rtinfo((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRÞs
 
cCs‡|jƒ}d \}}|jtjƒ}|s‹tjddƒ}|r‹||kr‹tjddƒ\}}tj|||ƒsˆdSq‹ng}g}tjddƒ}    tjddƒ}
d} g} xR|
j    ƒD]D\} }t
| ƒ}|| kr|} n| j |d|gƒqÔWxt d|    dƒD]{}t ||ƒ\}}|rƒ|tkrs|j ||gƒn|j |ƒq0|tkr0|| kr0|j |ƒq0q0Wtjd||||f|ƒtjd||ƒxk|D]c}|\}}t|ƒ|
krqên||g}|
t|ƒd}tjd    |g||ƒqêW|rÂtj|tjdƒx‘t d|    dƒD]:}tj|tj|dƒtj|tj|dƒqWn?|rç|rçtj|||dƒntj|tj|dƒtjd
| |ƒtjd ||ƒxM|D]E}tj| dƒ}t|||tƒtjd ||f|ƒq0Wt|ƒdS(Nit FamilyAffairiiiisFË¢ÐÂÊÂÎñ: isReset=%s,moneyType=%s,moneyValue=%s,dayRefreshFreeCount=%ss    sendMailAffairList=%stFamilyAffairAwards    starWeightList=%ss    refreshAffairIDList=%ss     Ëæ»úÊÂÎñ:affairID=%s,star=%s(ii(R$RçR6t'Def_Player_Dict_FamilyAffairRefreshFreeRWRXR…R4t    HaveMoneyRCR)R Rt__GetAffairInfotAffairState_UnderwaytAffairState_NoneRRRØt SendMailByKeyR5Rót%Def_Player_Dict_FamilyAffairStartTimeRYtGetResultByWeightListt__SetAffairInfoRô(RtisResetR/Rrt
moneyValuetdayRefreshFreeCountt freeCountMaxtsendMailAffairListtrefreshAffairIDListtaffairCountMaxtaffairStarDicttmaxStartstarWeightListtstarStrtstarInfotstarRñtstatetmailInfoRŽt addItemList((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRèsl  
              !  
cCsÅ|jƒ}t||ƒ\}}|s+dS|tkrXtjd|||f|ƒdSttjƒƒ}tj|t    j
||ƒt |||t ƒtjd|||f|ƒt ||ƒdS(NsBÏÉÃËÊÂÎñÒѾ­½øÐÐÖлòÒÑÍê³É£¬ÎÞ·¨¿ªÊ¼: affairID=%s,star=%s,state=%ss.ÏÉÃËÊÂÎñ¿ªÊ¼: affairID=%s,star=%s,startTime=%s(R$RúRüRRR)R*R4R5R6RþRRûRô(RRñR/R Rt    startTime((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRî.s   c
Cse|jƒ}ttjƒƒ}tjddƒ}t||ƒ\}}|tkrtjd|||f|ƒt    ||ƒdS|j
t j |ƒ}t |||||ƒ}|dkrçtjd|||f|ƒt    ||ƒdSt|ƒ|krýdS|t|ƒd}    tj||    ƒs'dSt|||tƒtjd||f|ƒt    ||ƒdS(NRöis:ÏÉÃËÊÂÎñ״̬·Ç½øÐÐÖÐÎÞ·¨ÁìÈ¡: affairID=%s,star=%s,state=%sisFÏÉÃËÊÂÎñµ±Ç°Ê£Óàʱ³¤Î´Íê³É: affairID=%s,remainDuration=%s,startTime=%sis!ÏÉÃËÊÂÎñÁì½±: affairID=%s,star=%s(R$R)R*RWR…RúRûRRRôRçR6Rþt__GetAffairRemainDurationRØR—t GiveAwardItemRtAffairState_Finish(
RRñR/tcurTimeRR RRtremainDurationR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRï>s0          cCs5|jtj|ƒ}|d|d}}||fS(Ni
(RçR6Ró(RRñt
affairInfoR R((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRúYscCs,|d|}tj|tj||ƒdS(Ni
(R4R5R6Ró(RRñR RRõ((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyR]sc
Cs®|jtj|ƒ}|s dS|jt|ƒgƒ}t|ƒdkrT|dnd}tj|ƒ}|r“t|t    d|dƒdƒ}nt    |||dƒ}    |    S(Niÿÿÿÿiii'gˆÃ@(
RçR6RþRoRØRR4tGetAffairSpeedPerR)tmax(
RRñR RRRR t needDurationtspeedPerR((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRas"$c Csm|dkrRg}tjddƒ}x4td|dƒD]}|j|ƒq8Wn    |g}ttjƒƒ}tjddƒ}g}x|D]y}t||ƒ\}}t    |||||ƒ}    t
j ƒ}
||
_ ||
_ ||
_td|    ƒ|
_|j|
ƒqŒW|sdSt
jƒ} | jƒ|jtjƒ| _|| _t| jƒ| _tj|| ƒdS(NRöiii(R\RWRXRR R)R*R…RúRRÞttagMCFamilyAffairRítStartStateRtRemainDurationttagMCFamilyAffairInfoR=RçR6RøtRefreshFreeCounttAffairInfoListRRÌRCRD( RRñt affairIDListRRRtaffairInfoListR RRRRk((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyRôqs6                    
    i(mRÕR6RRR4RCRGRÞRR`RR
RIRWRÄRR—RR}RbR*R€RtFamilyChangeTypestFamilyChangeType_NoneRšRˆR[RctFamilyChangeType_EChangeRlRpRGR.RBRkR`RŠRyt fmlCounsellort fmlViceLeaderRnRRR R3R;RRKRvRVR|RRfRœR>RÅRÃRAR\R@RÜR-RR+RR!RR#RRRRERXR^ReRfRiRRhRmRqRƒRÖRR‘R¸R¹R¾RÃRÅRÉRÇRãRäRRëRüRûRRòRRRîRïRúRRRô(((skD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\Player\PlayerFamily.pyt<module>s¶                     .
 
          
                 #         4        3    D              
    ,            #         6         ,    [    !             H                  4    @    =    F                 $ &         
         
F