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
V¬þic@s ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZdfd„ƒYZdfd„ƒYZdfd„ƒYZdfd    „ƒYZd
fd „ƒYZd fd „ƒYZdfd„ƒYZd„Zd„Zd„Zd„Zdd„Zd„Zdded„Zd„Z d„Z!d„Z"d„Z#de$d„Z%d„Z&d„Z'd„Z(d „Z)d!„Z*e+d"„Z,dS(#iÿÿÿÿNtFamilyActionDatacBsÝeZded„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d„Z d„Z d    „Z d
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs=|stjƒn||_tj|jdd|ƒ|_dS(NtDatatDataLen(tDBStructttagDBFamilyActiont_FamilyActionData__dbDatatDBCommt UserDataDictt_FamilyActionData__dataDict(tselftdbDatat
dataToJson((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt__init__)scCs
|jjS(N(RtFamilyID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetFamilyID.scCs
|jjS(N(Rt
ActionType(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetActionType/scCs
|jjS(N(RtName(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetName0scCs||j_dS(N(RR(R    tname((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetName1scCs
|jjS(N(RtTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetTime2scCs||j_dS(N(RR(R    tsetTime((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetTime3scCs
|jjS(N(RtValue1(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetValue14scCs||j_dS(N(RR(R    tvalue1((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetValue15scCs
|jjS(N(RtValue2(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetValue26scCs||j_dS(N(RR(R    tvalue2((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetValue27scCs
|jjS(N(RtValue3(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetValue38scCs||j_dS(N(RR!(R    tvalue3((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetValue39scCs
|jjS(N(RtValue4(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetValue4:scCs||j_dS(N(RR%(R    tvalue4((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetValue4;scCs
|jjS(N(RtValue5(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetValue5<scCs||j_dS(N(RR)(R    tvalue5((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetValue5=scCs
|jjS(N(RtValue6(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetValue6>scCs||j_dS(N(RR-(R    tvalue6((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetValue6?scCs |jjƒS(N(RtGetData(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetUserDict@scCs |jjƒS(N(RtToString(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetUserDataAscCs|jj|ƒdS(N(RtSetData(R    tvalue((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetUserDataBscCs|jjƒ|jjƒS(N(RR3Rt    getBuffer(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetBufferCs N(t__name__t
__module__tNonetFalseR RRRRRRRRRR R"R$R&R(R*R,R.R0R2R4R7R9(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR's.                                                                                    t FamilyActioncBskeZd„Zd„Zd
d„Zd„Zd„Zed„Z    d„Z
d„Z ed„Z d    „Z RS( cCsd|_d|_g|_dS(Ni(tfamilyIDt
actionTypet_FamilyAction__actionDataList(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR Is            cCsAt}|jdkrt}nt||ƒ}|jj|ƒ|S(s³õʼ»¯¹¦ÄÜÊý¾ÝʵÀý£¬´´½¨»ò¼ÓÔØÊý¾ÝʱͨÓ㬹¦ÄÜÒ»°ã²»µ÷ÓÃ
        @param dbData: ÊµÀý¶ÔÓ¦°ó¶¨µÄdbData
        @return: ³É¹¦·µ»ØÊµÀý¶ÔÏó£¬Ê§°Ü·µ»ØNone
        ((tTrueRR=RRAtappend(R    R
R t
actionData((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytInitActionInstanceOs     cCs»t}|dkr-tjj|jdƒ}nd}|ro|jƒ|kro|sU|S|jƒ|jdƒnt    j
ƒ}|j |_ |j|_ ttjƒƒ|_|j|ƒ}|S(Ni(RBR<t ShareDefinetActionTypeSaveCnttgetR@tCountt
SortByTimet    DelActionRRR?R RtintttimeRRE(R    tmaxCountt    fullClearRDR
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    AddAction\s 
   cCs|jjdd„ƒdS(NtkeycSs
|jƒS(N(R(tf((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt<lambda>ts(RAtsort(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRJsscCs<d|ko t|jƒknr8|jj|ƒndS(Ni(tlenRAtpop(R    tindex((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRKws%cCs=d}|jƒr$|jdƒ}n|r9|jƒ}n|S(Ni(R<RItAtRP(R    tisAddtaData((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetOneAction|s  cCs t|jƒS(N(RURA(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRI…scCsQd}d|ko&t|jƒknr;|j|}ntrMtƒ}n|S(Ni(R<RURAR=R(R    RWRZ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRX†s % cCscd}x-|jD]"}|jƒ|kr|}PqqW| r_|r_|jƒ}|j|ƒn|S(N(R<RARRPR(R    RRYtfindActionDataRD((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetActionDataByValue1Žs  cCsKxD|jddd…D],}|jƒ|kr|jj|ƒPqqWdS(Niÿÿÿÿ(RARtremove(R    RRD((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytDelActionDataByValue1›s
N(R:R;R RER<RPRJRKR=R[RIRXR]R_(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR>Gs                               tFamilyActionMgrcBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs i|_dS(N(t"_FamilyActionMgr__familyActionDict(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR ¥s    cCs{|s tƒS||jkr,i|j|<n|j|}||krR||}n%tƒ}||_||_|||<|S(N(R>RaR?R@(R    R?R@t
actionDicttaction((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFamilyAction©s               
cCslxe|jjƒD]T\}}tj|ƒs1qnx0|D](}||krPq8n|j||ƒq8WqWdS(N(RatitemsRFt IsSysFamilyIDtDelFamilyAction(R    tactionTypeListR?RbR@((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytDelSysFamilyAction¸s  cCs4||jkrdS|j|}|j|dƒdS(N(RaRVR<(R    R?R@Rb((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRgÂs
 cCs|jj|dƒdS(N(RaRVR<(R    R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytClearFamilyActionÉscCs|jj|iƒjƒS(N(RaRHtkeys(R    R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetActionTypeListÍs(R:R;R RdRiRgRjRl(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR`£s             
        t    FamilyMemcBsmeZd'd'd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d „Z#d!„Z$d"„Z%d#„Z&d$„Z'd%„Z(d&„Z)RS((cCs(|stjƒn||_||_dS(N(RttagDBFamilyMemt_FamilyMem__dbDatat_FamilyMem__family(R    R
tfamily((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR Ós    cCs1|js*tjƒj|jjƒ|_n|jS(N(Rpt    DBDataMgrt GetFamilyMgrt
FindFamilyRoR (R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetFamilyØs    !cCs
|jjS(N(RotPlayerID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetPlayerIDÜscCs
|jjS(N(RoR (R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÝscCs
|jjS(N(RotJoinTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetJoinTimeÞscCs
|jjS(N(Rot
PlayerName(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetPlayerNameßscCs||j_dS(N(RoRz(R    t
playerName((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetPlayerNameàscCs
|jjS(N(RotLV(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetLVáscCs||j_dS(N(RoR~(R    tlv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetLVâscCs
|jjS(N(RotJob(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetJobãscCs||j_dS(N(RoR‚(R    tjob((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetJobäscCs
|jjS(N(RotRealmLV(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetRealmLVåscCs||j_dS(N(RoR†(R    trealmLV((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetRealmLVæscCs
|jjS(N(RotFace(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFaceçscCs||j_dS(N(RoRŠ(R    tface((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetFaceèscCs
|jjS(N(RotFacePic(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetFacePicéscCs||j_dS(N(RoRŽ(R    tfacePic((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetFacePicêscCs
|jjS(N(RotTitleID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetTitleIDëscCs||j_dS(N(RoR’(R    ttitleID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetTitleIDìscCs
|jjS(N(Rot
FightPower(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetFightPoweríscCs
|jjS(N(Rot FightPowerEx(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFightPowerExîscCs|jjtj|jjS(N(RoR˜tChConfigtDef_PerPointValueR–(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFightPowerTotalïscCs*|tj|j_|tj|j_dS(N(RšR›RoR–R˜(R    tfightPowerTotal((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetFightPowerTotalðscCst|jjƒS(N(RLRotServerID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetServerIDôscCs||j_dS(N(RoRŸ(R    tserverID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetServerIDõscCs
|jjS(N(RotOffTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetOffTimeöscCs||j_dS(N(RoR£(R    toffTime((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetOffTime÷scCs
|jjS(N(RotFmLV(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFmLVøscCs||j_dS(N(RoR§(R    tfmLV((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetFmLVùscCs
|jjS(N(Rot ContribTotal(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetContribTotalúscCs||j_dS(N(RoR«(R    t contribTotal((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetContribTotalûscCs
|jjS(N(Rot
ContribDay(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetContribDayüscCs||j_dS(N(RoR¯(R    t
contribDay((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetContribDayýscCs
|jjS(N(RotDonateCntTotal(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetDonateCntTotalþscCs||j_dS(N(RoR³(R    tdonateCntTotal((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetDonateCntTotalÿscCs
|jjS(N(Rot DonateCntDay(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetDonateCntDayscCs||j_dS(N(RoR·(R    t donateCntDay((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetDonateCntDayscCs |jjƒS(N(RoR8(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR9scCsF||jƒkrdStj|ƒ}|s/dS|j|jƒƒ|j|jƒƒ|j|jƒƒ|j    |j
ƒƒ|j |j ƒƒ|j |jƒƒ|j|jƒƒ|j|jƒƒ|jƒsé|j|jƒƒnt}|jƒ}|jƒ|krB|j|ƒt}|jƒ}|rB|jƒqBn|S(s›Ë¢Ð³ÉÔ±ÐÅÏ¢£¬ÏÉÃ˳ÉÔ±ÊôÓÚÓÀ¾Ã¹¦ÄÜÊý¾Ý£¬³ý·ÇÏÉÃ˽âÉ¢£¬ËùÒÔµ¥¶À´æÒ»·Ý³ÉÔ±»ù´¡ÐÅÏ¢£¬Ö§³ÖÀëÏßÍæ¼Ò£¬Ö±½ÓʹÓò鿴»º´æ¸üÐÂ
        @return: Õ½Á¦ÊÇ·ñ±ä¸ü
        N(RwtPlayerViewCachet FindViewCacheR}R{RRR…RƒR‰R‡RR‹R‘RR•R“R¢R R¤R¦R=RœRžRBRutRefrshFightPowerTotal(R    tplayerIDt    viewCachetfpChangeRRq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytRefreshMemberByIDs0    N(*R:R;R<R RuRwRRyR{R}RRRƒR…R‡R‰R‹RRR‘R“R•R—R™RœRžR R¢R¤R¦R¨RªR¬R®R°R²R´R¶R¸RºR9RÁ(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRmÑsN                                                                                                                                                    tFamilycBsÍeZd2d„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„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-„Z0d.„Z1d/„Z2d0„Z3d1„Z4RS(3cCsO|stjƒn||_g|_i|_tjƒ|_tjƒ|_    dS(N(
Rt tagDBFamilyt_Family__dbDatat_Family__memberListt_Family__memberDictRrRst_Family__familyMgrtGetFamilyActionMgrt_Family__actionMgr(R    R
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR #s         cCs
|jjS(N(RÄtID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetID+scCs
|jjS(N(RÄt
CreateTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetCreateTime,scCst|jjƒS(N(RLRÄRŸ(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR -scCs
|jjS(N(RÄR(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR.scCs||j_dS(N(RÄR(R    R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR/scCs
|jjS(N(RÄtLeaderID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetLeaderID0scCs||j_dS(N(RÄRÎ(R    tleaderID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetLeaderID1scCs
|jjS(N(RÄR~(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR2scCs||j_dS(N(RÄR~(R    R€((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR3scCs
|jjS(N(RÄtExp(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetExp4scCs||j_dS(N(RÄRÒ(R    texp((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetExp5scCs
|jjS(N(RÄt
JoinReview(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetJoinReview6scCs||j_dS(N(RÄRÖ(R    t
joinReview((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetJoinReview7scCs
|jjS(N(RÄt    JoinLVMin(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetJoinLVMin8scCs||j_dS(N(RÄRÚ(R    RÚ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetJoinLVMin9scCs
|jjS(N(RÄt    Broadcast(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetBroadcast:scCs(||j_t|jjƒ|j_dS(N(RÄRÝRUt BroadcastLen(R    t    broadcast((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetBroadcast;s cCs
|jjS(N(RÄR–(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR—?scCs
|jjS(N(RÄR˜(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR™@scCs|jjtj|jjS(N(RÄR˜RšR›R–(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRœAscCsa|jƒ}|tj|j_|tj|j_|jƒ}||kr]|jj|ƒndS(N(RœRšR›RÄR–R˜RÇtOnFightPowerChange(R    RtfpBeftfpAft((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRžCs   cCs
|jjS(N(RÄtEmblemID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetEmblemIDKscCs||j_dS(N(RÄRå(R    temblemID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetEmblemIDLscCs
|jjS(N(RÄt
EmblemWord(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetEmblemWordMscCs||j_dS(N(RÄRé(R    t
emblemWord((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetEmblemWordNscCs
|jjS(N(RÄtExtra1(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra1OscCs||j_dS(N(RÄRí(R    textra1((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra1PscCs
|jjS(N(RÄtExtra2(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra2QscCs||j_dS(N(RÄRñ(R    textra2((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra2RscCs
|jjS(N(RÄtExtra3(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra3SscCs||j_dS(N(RÄRõ(R    textra3((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra3TscCs
|jjS(N(RÄtExtra4(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra4UscCs||j_dS(N(RÄRù(R    textra4((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra4VscCs
|jjS(N(RÄtExtra5(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra5WscCs||j_dS(N(RÄRý(R    textra5((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra5XscCs |jjƒS(N(RÄR8(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR9YscCsœt||ƒ}|jƒ}||jkr.dS||j|<|jj|ƒtj|ƒ}|j|rr|jƒnt    t
j
ƒƒƒ|j j ||ƒ|S(s³õʼ»¯¹¦ÄÜÊý¾ÝʵÀý£¬´´½¨»ò¼ÓÔØÊý¾ÝʱͨÓ㬹¦ÄÜÒ»°ã²»µ÷ÓÃ
        @param dbData: ÊµÀý¶ÔÓ¦°ó¶¨µÄdbData
        @return: ³É¹¦·µ»ØÊµÀý¶ÔÏó£¬Ê§°Ü·µ»ØNone
        N( RmRwRÆRÅRCR»R¼R¦R¤RLRMRÇt OnAddMember(R    R
tmemberR¾R¿((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytInitMemberInstance\s  +cCs |jjƒS(N(RÆRk(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetMemberIDListlscCs”d}||jkr%|j|}natjƒ}||_|jƒ|_ttjƒƒ|_    |j
|ƒ}| r†t r†t ƒ}n|j ƒ|S(N(R<RÆRRnRvRËR RLRMRxRR=RmR½(R    R¾RR
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    AddMemberns       
cCsX|jj|dƒ}||jkr7|jj|ƒn|jƒ|jj||ƒ|S(N(RÆRVR<RÅR^R½RÇt OnDelMember(R    R¾tdelMem((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt DeleteMember}s 
cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R<RÆR=Rm(R    R¾tmem((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
FindMember…s  cCs t|jƒS(N(RURÅ(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCountscCsQd}d|ko&t|jƒknr;|j|}ntrMtƒ}n|S(Ni(R<RURÅR=Rm(R    RWR    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetAtŽs % cCs_d}xEt|jƒƒD]1}|j|ƒ}|s:qn||jƒ7}qW|j|ƒ|S(Ni(trangeR R RœRž(R    tfamilyFightPowerTotalRWR((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR½–s cCsZ|jj|jƒtjƒ}|jtƒ}|jƒ}d|krRi|d<n|dS(NtReqJoin(RÉRdRËRFtDef_ActionType_FamilyAddR[RBR2(R    t
joinActionRDtdataDict((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetReqJoinPlayerInfo¡s    cCs?|jƒ}ttjƒƒ||<|jj||jƒƒdS(N(RRLRMRÇtAddPlayerReqJoinFamilyIDRË(R    R¾treqPlayerIDDict((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytAddReqJoinPlayerID«s cCsE|jƒ}||kr(|j|ƒn|jj||jƒƒdS(N(RRVRÇtDelPlayerReqJoinFamilyIDRË(R    R¾R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytDelReqJoinPlayerID±s
  cCsM|jƒ}x:|jƒD],}|j|ƒ|jj||jƒƒqWdS(N(RRkRVRÇRRË(R    RR¾((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytDelReqJoinPlayerAll¸s
  cCsKx$|jjƒD]}|j|ƒqW|jƒ|jj|jƒƒdS(N(RÆRkRRRÉRjRË(R    tmemID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytOnDelete¿s
 
N(5R:R;R<R RËRÍR RRRÏRÑRRRÓRÕR×RÙRÛRÜRÞRáR—R™RœRžRæRèRêRìRîRðRòRôRöRøRúRüRþRR9RRRRR
R R R½RRRRR(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÂ!sd                                                                                                                                                                                      
            t ZoneFamilyMgrcBsŒeZdd„Zd„Zd„Zed„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „Zd „Zd„ZRS(icCsRtjƒ|_||_g|_i|_i|_g|_i|_t    |_
dS(N( RrRst_ZoneFamilyMgr__familyMgrt_ZoneFamilyMgr__zoneIDt_ZoneFamilyMgr__familyListt_ZoneFamilyMgr__familyIDDictt_ZoneFamilyMgr__familyNameDictt _ZoneFamilyMgr__zoneServerIDListt _ZoneFamilyMgr__familyIDRankDictRBt_ZoneFamilyMgr__needSort(R    tzoneID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR Ês                            cCs|jS(N(R(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetZoneIDØscCs t|_dS(N(RBR$(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetSortÚscCsF|r|j rdS|jjdd„dtƒi|_t|_dS(s Ä¬ÈÏÅÅÐòµ¹Ðò£¬°´  ÏÉÃË×ÜÕ½Á¦ -> ÏÉÃ˵ȼ¶
        @param checkSort: ÊÇ·ñ¼ì²éÐèÒªÅÅÐò£¬Èç¹ûÐèÒªÅÅÐò²Å»áÅÅÐò£¬ÉèÖÃTrueʱÔòÇ¿ÖÆÅÅÐò²»¼ì²é
        NRQcSs|jƒ|jƒfS(N(RœR(RR((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRSâstreverse(R$RRTRBR#R=(R    t    checkSort((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSortÜs         cCs'||jkr#|jj|ƒtStS(snÖ±½Ó½«Ä³¸öÇø·þ¼ÓÈë¸Ã·ÖÇø£¬Ò»°ãÓÃÓÚ×ÔÉíûÓй«»áµÄÓÎÏ··þ
        ±È½ÏÌØÊâµÄÇé¿ö£ºµ±Ä³¸öÓÎÏ··þ×ÔÉíûÓй«»áʱ£¬ÔÚ¼ÓÈ뻥ͨºó£¬µ±»¹Ã»ÓÐÍæ¼Ò¼ÓÈëij¸öÆäËû·þ¹«»áʱ£¬»áµ¼ÖÂÕÒ²»µ½¸Ã·þµÄËùÊô·ÖÇø
        ËùÒÔÓÎÏ··þÔÚ»¥Í¨·ÖÇø¸üÐÂʱÔÚ±¾·þûÓй«»áʱÐèÒª¶îÍâͬ²½¿ç·þ¸æÖª¼ÓÈ뻥ͨ£¬·ñÔò»áµ¼Ö¸÷þÍæ¼ÒÎÞ·¨Õý³£¼ÓÈ빫»á»¥Í¨
        @return: True - ³É¹¦Ð¼ÓÈ룻  False - ÒѾ­¼ÓÈëÁË
        (R"RCRBR=(R    R¡((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytAddServerIDToZoneçsc Csµ|s
dS|jƒ}||jkr)dS||j|<|jƒ}|jƒ}||jkr½x@tddƒD]/}d||f}||jkrm|}PqmqmW|j|ƒ|jdƒn||j|<||jkrõ|jj    |ƒi|_
n||j kr|j j    |ƒnxxt|j ƒƒD]d}|j |ƒ}|jƒ}    |jƒ}
|    tjkrlq*n|
|j kr*|j j    |
ƒq*q*Wt|_|jj||jƒdS(Niiès%s%si(RËR R RR!R RRðRRCR#R"R R RwRFtRealPlayerIDStartRBR$Rt OnAddToZoneR( R    RqR?tfamilyServerIDt
familyNametdoCnttfixNameRWRRt memServerID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytAddFamilyToZoneòsB             cCsz|jj|dƒ}|sdS||jkrA|jj|ƒn|jj|jƒdƒ|jj|dƒt|_    dS(N(
R RVR<RR^R!RR#RBR$(R    R?Rq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt DelZoneFamilys    cCs|jS(N(R"(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetZoneServerIDList(scCsAd}|r+||jkr+|j|}ntr=tƒ}n|S(N(R<R R=RÂ(R    R?Rq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRt*s  cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R<R!R=RÂ(R    R/Rq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytFindFamilyByName2s  cCsJ||jkrdS|jj|jƒdƒ|j|ƒ||j|<tS(N(R!RVRR<RRB(R    RqtnewName((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytFamilyRemainName:s   cCs t|jƒS(N(RUR(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR BscCsQd}d|ko&t|jƒknr;|j|}ntrMtƒ}n|S(Ni(R<RURR=RÂ(R    RWRq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR Cs % cCss|s
dS|jsUi|_x6t|jdƒD]\}}||j|jƒ<q/Wn||jkrhdS|j|S(Nii(R#t    enumerateRRË(R    R?trankRq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetFamilyRankKs        (R:R;R R&R'R=R*R+R3R4R5RtR6R8R R R;(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÆs                   +                             t    FamilyMgrcBsUeZdZd„Zd„Zd%d„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd%d„Zd„Zd„Zd„Zdd„Zd„Zd„Z d„Z!d „Z"d!„Z#d"„Z$d%d#„Z%d$„Z&RS(&sQ ËùÓзÖÇøµÄ¹«»á×ܹÜÀí£¬±¾·þ¡¢¿ç·þͨÓã¬zoneIDΪ0ʱĬÈÏÊDZ¾·þµÄ·Ç¿ç·þ»¥Í¨¹«»á
    cCsai|_i|_i|_tƒ|_i|_i|_i|_g|_d|_    d|_
dS(Ni( t_FamilyMgr__familyIDDictt_FamilyMgr__playerFamilyIDDictt_FamilyMgr__playerReqJoinDictR`t_FamilyMgr__actionMgrt_FamilyMgr__zoneFamilyMgrDictt_FamilyMgr__familyIDZoneIDDictt_FamilyMgr__crossZoneCfgDictt_FamilyMgr__curZoneServerIDListt_FamilyMgr__curCrossServerIDt_FamilyMgr__curZoneID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR \s                                      cCsCt|ƒ}|jƒ}||jkr2|j|S||j|<|S(s³õʼ»¯¹¦ÄÜÊý¾ÝʵÀý£¬´´½¨»ò¼ÓÔØÊý¾ÝʱͨÓ㬹¦ÄÜÒ»°ã²»µ÷ÓÃ
        @param dbData: ÊµÀý¶ÔÓ¦°ó¶¨µÄdbData
        @return: ³É¹¦·µ»ØÊµÀý¶ÔÏó£¬Ê§°Ü·µ»ØNone
        (RÂRËR=(R    R
RqR?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytInitFamilyInstance}s     cCs?d}| s| r)tjd|ƒ|S|j|ƒ}|dkrYtjd|ƒ|S|dkr—tjƒjƒ}|dkr—tjdƒ|Sn||jkr»tjd|ƒ|Stj    ƒ}||_
||_ ||_ t tjƒƒ|_|j|ƒ}| rtrtƒ}n|j|ƒ}|j|ƒ|S(Ns'´´½¨¹«»á²ÎÊýÒì³££¬ÎÞ·¨´´½¨! serverID=%sis7·þÎñÆ÷ID´´½¨µÄ¹«»á²»ÊôÓÚ±¾·þ¹ÜÀí£¬ÎÞ·¨´´½¨! serverID=%ss´´½¨¹«»áʱÉú³ÉÐÂIDÒì³£!s´´½¨¹«»áʱIDÒÑ´æÔÚ! familyID=%s(R<t    GameWorldtErrLogtGetZoneIDInThisServert PyMongoMaint GetUserCtrlDBtGetNewFamilyIDR=RRÃRÊRRŸRLRMRÌRGR=RÂtGetZoneFamilyMgrR3(R    R/R¡R?t    newFamilyR%R
tzoneMgr((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    AddFamily‰s6                        cCs-|j|jƒƒ}|sdS|jƒdS(N(tGetZoneFamilyMgrByFamilyIDRËR'(R    RqRP((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRâ³s
 
cCs|jƒ}||j|<dS(N(RËRB(R    RqR%R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR-ºs  cCs|jƒ|j|<dS(N(RËR>(R    RqR¾((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR¿scCs|jj|dƒdS(N(R>RVR<(R    RqR¾((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÃscCs |jjƒS(N(R=Rk(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFamilyIDListÇscCsAd}|r+||jkr+|j|}ntr=tƒ}n|S(N(R<R=R=RÂ(R    R?Rq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRtÉs  cCsy|j|ƒ}|jj|dƒ||jkrb|jj|ƒ}|j|ƒ}|j|ƒn|ru|jƒn|S(N(    RtR=RVR<RBRHRNR4R(R    R?RqR%RP((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    DelFamilyÑs cCs+x$|jjƒD]}|j|ƒqWdS(N(R=RkRT(R    R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt DelAllFamilyàscCs|jS(N(R@(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÈåsc
Csi|_i|_x|jjƒD]ò}|jƒ}|jƒx<t|jƒƒD](}|j|ƒ}||j|j    ƒ<qQW|j
ƒ}xˆ|j ƒD]z\}}t |ƒ}|j |dƒ|||<||jkrçg|j|<n|j|}    ||    kr–|    j|ƒq–q–Wq"WdS(N(R>R?R=tvaluesRËR½R R R RwRReRLRVR<RC(
R    RqR?RWRRtreqIDStrtvtreqIDtreqFamilyIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt__afterLoadDBFamilyDataçs&         
 
  cCs|jj|dƒS(Ni(R>RH(R    R¾((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetPlayerFamilyIDscCs*||jkrg|j|<n|j|S(N(R?(R    R¾((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetPlayerReqJoinFamilyIDListscCs0|j|ƒ}||kr,|j|ƒtStS(N(R]RCRBR=(R    R¾R?RZ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR
s
  cCs0|j|ƒ}||kr,|j|ƒtStS(N(R]R^RBR=(R    R¾R?RZ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRs
  cCsY|j|ƒ}xC|ddd…D].}|j|ƒ}|sDq#n|j|ƒq#WdS(Niÿÿÿÿ(R]RtR(R    R¾RZR?Rq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytDelPlayerReqJoinFamilyIDAllscCs|jS(N(RC(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCrossZoneCfgDict&scCs ||_dS(N(RC(R    tcrossZoneCfgDict((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetCrossZoneCfgDict'sc Cstjd|ƒt|j|ƒs'dStjƒjƒ}||krotjdƒ||_tjƒrktSdS||}i}g}x|jj    ƒD]Œ}|j
ƒ}|jƒ}d}    x6|j ƒD](\}
} tj || ƒrÆ|
}    PqÆqÆW|    s||kr!|j |ƒq!q•|    ||<q•W|rCtjdd|ƒdS||_i|_i|_|j|}tjd||fƒx!|jƒD]}    |j|    ƒqWtjd|jƒƒxQ|jj    ƒD]@}|j
ƒ}|j|dƒ}    |j|    ƒ} | j|ƒqÍWtS(Ns,¿ç·þ¹«»á»¥Í¨ÅäÖøüÐÂ! updCrossZoneCfgDict=%ss!±¾¿ç·þδ·ÖÅä·ÖÇøµÄÖ»¸üÐÂÅäÖü´¿É!itFamilyCrossZoneCfgErrorsnoZoneServerIDList=%ss4±¾¿ç·þÖØÖù«»á»¥Í¨·ÖÇø! crossServerID=%s,zoneDict=%ssGetZoneIDListThisServer=%s(RHtLogtCheckFamilyCrossZoneCfgRCt GetGameWorldR t IsCrossCenterRBR=RVRËRetCheckServerIDInListRCtSendGameErrorExRARBRkRNtGetZoneIDListThisServerRHR3( R    tupdCrossZoneCfgDictt crossServerIDtzoneDicttfamilyZoneDicttnoZoneServerIDListRqR?R.R%tzIDtserverIDRangeListRP((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytUpdCrossZoneCfgDict(sT       
                 cCsRi|_i|_d}|j|ƒ}x$|jjƒD]}|j|ƒq7WdS(Ni(RARBRNR=RVR3(R    R%RPRq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt__setFamilyToDefaultZonebs        cCsÑtjƒjƒ}|s!|}nd}tjƒ}|tjkritƒrTd}qÍtƒsÍd}qÍndtjƒrÍ||j    krÍ|j    |}x9|j
ƒD](\}}tj ||ƒrž|}PqžqžWn|S(s¢»ñÈ¡·þÎñÆ÷IDÔÚ±¾¹«»áÊý¾Ý·þÎñÆ÷ÖÐËùÊôµÄ·ÖÇøID£¬
        @return: zoneID -2-»ò´«ÊäÊý¾ÝÖУ»-1-·ÖÇø²»ÔÚ±¾·þÎñÆ÷£»0-δ»¥Í¨Ä¬ÈÏ·ÖÇø0£»>0-ÔÚ±¾·þÊý¾ÝÖÐËùÔÚ·ÖÇøID
        iÿÿÿÿiþÿÿÿi( RHReR t GetServerTypeRFtserverType_MaintIsFamilyCrossInTransDatat IsFamilyCrosst IsCrossServerRCReRg(R    R¡t curServerIDR%t
serverTypeRlRoRp((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRJls"                    cCs |jjƒS(N(RARk(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRi„scCs|jj|dƒS(Niÿÿÿÿ(RBRH(R    R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFamilyZoneID†scCsMd}||jkr%|j|}nd}|dkrI|j|ƒ}n|S(Niÿÿÿÿi(RBR<RN(R    R?R%RP((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRRˆs icCsBd}||jkr%|j|}nt|ƒ}||j|<|S(N(R<RAR(R    R%RP((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRN“s   cCs¬tjƒ}|tjkrdStƒr,dStƒs9dS|jrI|jStjƒjƒ}xJ|j    j
ƒD]9\}}x*|j ƒD]}tj ||ƒr„|Sq„WqkWdS(Niÿÿÿÿiþÿÿÿi( RHRsRFRtRuRvREReR RCReRVRg(R    RyRxRkRlRp((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCurCrossServerIDžs              cCs ||_dS(N(RE(R    tcurCrossServerID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetCurCrossServerID·scCstƒs dS|jS(Ni(RvRF(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetCurZoneID¸scCs ||_dS(N(RF(R    t    curZoneID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetCurZoneIDºscCs|jS(N(RD(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCurZoneServerIDList»scCs ||_dS(N(RD(R    tcurZoneServerIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetCurZoneServerIDList¼scCsd
\}}d \}}d \}}xû|jjƒD]ê}|jƒ}    ||jƒ7}|d7}xCt|jƒƒD]/}
|j|
ƒ} || jƒ7}|d7}qsWxu|jj|    ƒD]a} |jj    |    | ƒ} xCt| j
ƒƒD]/}| j |ƒ}||jƒ7}|d7}qçWq¹Wq4Wd}|t j d|ƒ|7}tjd|t|ƒfƒ|t j d|ƒ|7}tjd|t|ƒfƒ|t j d|ƒ|7}tjd|t|ƒfƒt|tƒr|ji|d6|d6|d    6ƒn|S( NitisSave DBFamily count :%s len=%ss!Save DBFamilyMem count :%s len=%ss$Save DBFamilyAction count :%s len=%st familyDataCntt membreDataCntt actionDataCnt(is(is(is(R=RVRËR9R R R R@RlRdRIRXtCommFunct
WriteDWORDRHRcRUt
isinstancetdicttupdate(R    tcntDictR…tfamilySavaDataR†tmemberSavaDataR‡tactionSavaDataRqR?tmemIndexRR@RctaIndexRDtsaveData((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetSaveData¿s6    
%c Cstj||ƒ\}}tjd|ƒxFt|ƒD]8}tjƒ}||j|||ƒ7}|j|ƒq6Wtj||ƒ\}}tjd|ƒxjt|ƒD]\}tj    ƒ}||j|||ƒ7}|j
}|j |ƒ}|s÷q¨n|j |ƒq¨Wtj||ƒ\}}tjd|ƒxˆt|ƒD]z}tj ƒ}||j|||ƒ7}|j
}|j}    |j |ƒ}|s–q>n|jj||    ƒ}
|
j|ƒq>W|jƒtjƒ} | tjkrô|jtƒƒn| tjkr|jƒn|S(NsLoad DBFamily count :%ssLoad DBFamilyMem count :%ssLoad DBFamilyAction count :%s(Rˆt    ReadDWORDRHRctxrangeRRÃtreadDataRGRnR RtRRRR@RdREt!_FamilyMgr__afterLoadDBFamilyDataRsRFtserverType_CrossCenterRqt LoadZoneCfgRtt"_FamilyMgr__setFamilyToDefaultZone( R    tdatastpostdataslentcntt_R
R?RqR@RcRy((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytLoadPyGameDataæsF               
  N('R:R;t__doc__R RGR<RQRâR-RRRSRtRTRURÈR˜R\R]RRR^R_RaRqR›RJRiRzRRRNR{R}R~R€RRƒR”R¡(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR<XsH    !     *                                                                    
            :    
                                      'cCsÌi}tjƒ}tjƒ}xt|jƒƒD]|}|j|ƒ}|jƒ|kr^q1n|jƒ}|jƒ}||kri||<n||}g|j    ƒ||<q1Wtj
d||fƒ|S(Ns!¿ç·þ¹«»á·ÖÇøÅäÖüÓÔØ: appID=%s,%s( RHtGetAppIDt IpyGameDataPYtIPY_DataR tGetFamilyCrossCounttGetFamilyCrossByIndextGetCrossServerIDR&tGetServerIDListRc(R`tappIDt
ipyDataMgrRWtipyDataRkR%Rl((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRšs      
cCsS||krtjdƒdStj||ƒ\}}|sOtjd|ƒdStS(Ns¿ç·þ¹«»á»¥Í¨·ÖÇøÅäÖò»±ä²»´¦ÀíRb(RHRct CheckServerIDtCheckCrossZoneCfgRhRB(tcurCrossZoneCfgDictRjtisOKterrInfo((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRd&s  cCsKtjƒrGtƒ}| s2tjƒj|ƒ r6dStƒtƒndS(sÔÖØ¶ÁÅäÖÃÑéÖ¤Ð޸ĺóµÄÅäÖÃÊÇ·ñ·ûºÏ¹æ¶¨£¬²»·ûºÏµÄ»°£¬»¹ÊÇʹÓþÉÅäÖõķ¶Î§£¬²¢Óʼþ֪ͨÔËά
    ¹«»á·ÖÇøÅäÖÃͬ²½¹æÔò£º ÓÉ¿ç·þÖÐÐļÓÔØÅäÖà -> Ñé֤ͨ¹ýºó·¢¸øËùÓпç·þ -> ¿ç·þÑé֤ͨ¹ýºó·¢¸øËù¹ÜϽµÄ·ÖÇøËùÓÐÓÎÏ··þÎñÆ÷
    N(RHRfRšRrRsRqt!Sync_CenterToCross_FamilyCrossCfgtSync_CrossToServer_FamilyInfo(R`((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytOnReloadConfig4s     
cCs |tjkrt|ƒndS(N(RFtserverType_CrossR²(RyR¡((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSync_CenterToCross_FamilyInfoAs icCswtjƒ}|jƒ}|s/tjdƒdSi|d6}|rK|gn    |jƒ}tjtj    ||tj
ƒdS(Ns4ûÓй«»á»¥Í¨ÅäÖûòûÓÐÑéÖ¤ÕýÈ·µÄ»¥Í¨·ÖÇøÅäÖò»Í¨Öª£¡R`( RrRsR_RHRcRktCrossMsgt SendToServerRFtCC2C_FamilyCrossCfgt dirType_Cross(R¡t    familyMgrR`tdataMsgt serverIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR²Is    cCsj|tjkrdS|d}|s'dStjƒtjkr@dStjƒ}|j|ƒs_dStƒdS(NR`(    RFR™RHRsRµRrRsRqR³(R¼t fromServerIDRyRjR»((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR¹Ts
 c CsVtjd|||fƒtjƒ}|jƒ}|s<dStjƒjƒ}||kr^dS||}tjd||fƒxÐ|jƒD]Â}|rª||krªqŒn||kr¼qŒn||}|rðtj||ƒsäqŒn|g}    n|}    |j    |ƒ}
|
j
ƒ} i|d6| d6} |r8|| d<nt j t j| |    ƒqŒWdS(NsDSync_CrossToServer_FamilyInfo toServerID=%s,syncZoneID=%s,withCfg=%ss#    crossServerID=%s,zoneCfgDict=%sR%tzoneServerIDListR`(RHtDebugLogRrRsR_ReR RiRgRNR5R·tSendToClientServerRFtC2S_FamilyCrossInfo( t
toServerIDt
syncZoneIDtwithCfgR»R`Rkt zoneCfgDictR%tcfgServerIDListttoServerIDListRPR¿R¼((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR³fs8   
 
   cCs tjƒ}|j|ƒ|j|dƒd|krr|jƒ}|d}|j|ƒ||krrtƒqrnd|krœ|j|dƒt|ƒndS(NR%R¿R`(    RrRsR}R€RRƒtSync_FamilyCrossInfoRatCheckCrossFamilyTransData(R¼R¾R»R‚tupdZoneServerIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRs    
     cCstjƒjtjƒdkS(Ni(RrtGetEventTrigMgrtGetValueRFtDef_FamilyCrossState(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRv¦scCstjƒjtjƒdkS(Ni(RrRÌRÍRFtDef_FamilyTransDataTime(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRuªsc Cstƒs dS|sdStjƒ}tjƒjƒ}|jƒ}||krhtjd||fƒdSd}d}|jƒ}x€|j    ƒD]r\}}xY|j    ƒD]K\}    }
tj
||
ƒr¦|}|    }tjd|||    |
fƒPq¦q¦W|rPqqW|stjd|ƒdS||krHtjd|||fƒdStjd|||fƒt j t jidd    6|d
6|gƒdS( s|ÒѾ­»¥Í¨µÄÇé¿öÏ£¬ÐèÒªÔÙ¶îÍâ¼ì²é±¾·þÊÇ·ñÓÐÔÚÄ¿±ê·þÎñÆ÷»¥Í¨·ÖÇøÀï
    ÓÐÒ»ÖÖÇé¿ö£ºÓÎÏ·¼ÓÈ뻥ͨºó£¬¸Ã·þµÄËùÓй«»á±»É¾³ý£¨¿ÉÄÜÍæ¼ÒÖ÷¶¯É¾³ý¡¢¿ÉÄÜϵͳÈÏΪÐèҪɾ³ýµÄ¹«»á£©
    µ¼Ö¸ÃÓÎÏ··þÔÚ¿ç·þ·þÎñÆ÷ûÓй«»áÁË£¬ÇҸ÷þûÓÐÈκÎÍæ¼Ò¼ÓÈëÈκι«»á£¬´Ëʱ¸Ã·þÎñÆ÷¾ÍÎÞ·¨Õý³£±»»®Èëij¸ö·ÖÇø
    ËùÒÔÒÑ»¥Í¨µÄÓÎÏ··þÊܵ½¿ç·þͬ²½µÄ·ÖÇøÐÅϢʱ£¬ÐèÒª¼ì²éÊÇ·ñÒÑÔÚ·ÖÇøÀûÓеϰÐèÒªÖ÷¶¯»ã±¨ÇëÇó¼ÓÈë
    Ns1ÒѾ­Ôڸÿç·þ»¥Í¨·ÖÇøÀïÁ˲»´¦Àí! serverID=%s in %sisO±¾·þ¹«»áËùÊô¿ç·þID! serverID=%s,crossServerID=%s,zoneID=%s,serverIDRangeList=%ss#±¾·þ¹«»áδ·ÖÅ以ͨ·ÖÇø! serverID=%ssB±¾·þ¹«»á»¥Í¨·ÇÄ¿±ê¿ç·þID²»´¦Àí! serverID=%s,crossServerID=%s != %ssZ±¾·þÒÑ»¥Í¨µ«Ã»ÓÐÔڸÿç·þ»¥Í¨·ÖÇøÀֱ½ÓÇëÇó¼ÓÈë! serverID=%s,crossServerID=%s,toZoneID=%sit checkInZonettoZoneID(RvRrRsRHReR RRcR_ReRgR·tSendToCrossServerRFtS2C_FamilyData( t connServerIDR»R¡R‚RkRÑR`tcIDRlR%Rp((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytCheckMainServerNoFamilyToCross®s>         'cCs$tƒr$tjdƒt|ƒdStjƒjtjƒsMtj    dƒdSt
j ddƒ}tjƒjtj ƒd}||kr¢tjd||fƒdStj ƒ}|jƒ}d}d}tjƒjƒ}x€|jƒD]r\}    }
xY|
jƒD]K\} } tj|| ƒrþ|    }| }tj    d||| | fƒPqþqþW|råPqåqåW|svtj    d|ƒdS|r©||kr÷tj    d    |||fƒdSnNtjƒj|ƒ} | jƒ}|tjkr÷tj    d
|||fƒdStjƒjtjƒ}|rh| rhttjƒƒ}||dkrhtj    d ||tj|ƒfƒdSntj    d|||fƒtjƒjtjttjƒƒƒi}tj ƒ}|j|ƒ}|jƒ}tj    dt|ƒƒt j!tj"i|d6|d6|d6|d6|gƒdS(Ns±¾·þ¹«»áÒѾ­¿ç·þÁË!s¸Ã·þÎñÆ÷ÔÝʱ먦·Å¼ÓÈë¿ç·þ!t FamilyCrossis-±¾·þ¹«»á»¥Í¨ËùÐ迪·þÌì²»×ã! serverDay=%s < %sisO±¾·þ¹«»áËùÊô¿ç·þID! serverID=%s,crossServerID=%s,zoneID=%s,serverIDRangeList=%ss#±¾·þ¹«»áδ·ÖÅ以ͨ·ÖÇø! serverID=%ssB±¾·þ¹«»á»¥Í¨·ÇÄ¿±ê¿ç·þID²»´¦Àí! serverID=%s,crossServerID=%s != %ssK±¾·þ¹«»á»¥Í¨Ä¿±ê¿ç·þID·ÇÁ¬½Ó״̬! serverID=%s,crossServerID=%s,connState=%sii<sE±¾·þ¹«»á»¥Í¨´«ÊäÊý¾ÝÖÐ! serverID=%s,crossServerID=%s,transDataTime=%ssN±¾·þ¹«»á¿ªÆô»¥Í¨¿ªÊ¼´«Ê乫»áÏà¹ØÊý¾Ý! serverID=%s,crossServerID=%s,toZoneID=%ss dataslen=%stsyncDatat familyIDListRRÑi(#RvRHRÀRÖRrRÌRÍRFt Def_CanCrossRcR¤t
GetFuncCfgt Def_ServerDayRsR_ReR ReRgtCrossMgrtGetSSServerMgrt GetSSServert GetConnStatet ssConn_NormalRÏRLRMtChangeTimeNumToStrtSetValueR”RSRUR·RÒRÓ(RÔtignoreCDt NeedServerDayt    serverDayR»R`RkRÑR¡RÕRlR%RptssServert    connStatet transDataTimetcurTimeRRØRÙ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÊÜsj     
       #%  5cCsÒd|kr'|d}t||ƒdS|d}|d}|d}|d}tjd||||fƒ|s»tjd||fƒtjƒ}|j|ƒ}ggg}}    }
n€t|||ƒ} | d} | s%| d    } tjd
d || fƒtj    t
j it d 6|gƒdS| d    \}}}    }
||krˆtjd
d |||fƒtj    t
j it d 6|gƒdStjƒ}|j |ƒ}|jƒ}x:|D]2}|j}|j|ƒ|j|j|ƒƒq¶Wx?|    D]7}|j}|j|ƒ}|sqón|j|ƒqóWxc|
D][}|j}|j}|j}|j|ƒ}|sqq5n|j||ƒ}|j|ƒq5W|j|ƒtd|ƒtj    t
j itd 6|gƒdS(NRÐRÑRØRÙRsTÊÕµ½ÓÎÏ··þͬ²½µÄ»¥Í¨¹«»áÊý¾Ý! fromServerID=%s,toZoneID=%s,cntDict=%s,familyIDList=%ss;¸Ã·þûÓй«»á£¬Ö±½Ó¼ÓÈ뻥ͨ·¶Î§! fromServerID=%s,toZoneID=%siitS2C_FamilyDataErrors1»¥Í¨¹«»áÊý¾Ýͬ²½Ê§°Ü! fromServerID=%s,errorMsg=%sR°s7¼ÓÈëµÄ»¥Í¨·ÖÇø²»Ò»ÖÂ! fromServerID=%s,toZoneID=%s != %sRÄ(t__doCheckServerInZoneRHRcRrRsRJt__unpackFamilyDataRhR·RÁRFtC2S_FamilyDataRetR=RNRÈRÊRTR3RGR RtRRRdRER+R³RB(R¼R¾RÑRØRÙRR»R%tfamilyDataListtmemberDataListtactionDataListt    unpackRetR°terrorMsgRPt    actionMgrR
R?RqR@Rc((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÓ sh 
 
 
 
 
 
 
                                cCsÆtjd||fƒtjƒ}|j|ƒ}||kr_tjdd|||fƒdS|j|ƒ}|j|ƒs˜tjd||fƒdStjd||fƒtd|dt    ƒdS(Ns?¼ì²éÓÎÏ··þÊÇ·ñÒѾ­³É¹¦¼ÓÈ뻥ͨ·ÖÇø! fromServerID=%s,toZoneID=%stCheckServerInZoneErrors7¼ì²éµÄ»¥Í¨·ÖÇø²»Ò»ÖÂ! fromServerID=%s,toZoneID=%s != %ss7ÒѾ­Ôڸû¥Í¨·ÖÇøÀïÁ˲»´¦Àí! fromServerID=%s,toZoneID=%ss7¼ì²éÇҳɹ¦¼ÓÈ빫»á»¥Í¨·ÖÇø! fromServerID=%s,toZoneID=%sRÄRÅ(
RHRcRrRsRJRhRNR+R³R=(R¾RÑR»R%RP((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRìgs  cCs:d}|dt|ƒ}}}tjd|ƒi}tjƒ}g}    tj||ƒ\}
}tjd|
ƒxÀt|
ƒD]²} tj    ƒ} || j
|||ƒ7}|    j | ƒ| j } | |kræd| |f}t |fS| j}|j|ƒ}|dkr'd| ||f}t |fS|||<qWt|ƒdkr[d|}t |fS|jƒd}t|    ƒ}|jd    dƒ}||kr¯d
||f}t |fSg}tj||ƒ\}
}tjd |
ƒxFt|
ƒD]8} tjƒ} || j
|||ƒ7}|j | ƒqëWt|ƒ}|jd dƒ}||krkd ||f}t |fSg}tj||ƒ\}
}tjd|
ƒxFt|
ƒD]8} tjƒ} || j
|||ƒ7}|j | ƒq§Wt|ƒ}|jddƒ}||kr'd||f}t |fSt||    ||fS(NR„is__unpackFamilyData: dataslen=%ssRead DBFamily count :%ss-ͬ²½µÄÊý¾Ý¹«»áID²»Æ¥Åä! familyID=%s not in %ssCͬ²½µÄ¹«»áÊý¾Ý²»ÊôÓÚ±¾¿ç·þ! familyID=%s,familyServerID=%s,zoneID=%sis5ͬ²½µÄ¹«»áÊý¾Ý·ÖÇøÒì³£¿ÉÄÜ´æÔÚ¶à¸ö·ÖÇø! zoneIDDict=%sR…s.ͬ²½µÄ¹«»á¸öÊý²»Æ¥Åä! uppackFamilyCnt=%s != %ssRead DBFamilyMem count :%sR†s.ͬ²½µÄ³ÉÔ±¸öÊý²»Æ¥Åä! uppackMemberCnt=%s != %ssRead DBFamilyAction count :%sR‡s.ͬ²½µÄÐÐΪ¸öÊý²»Æ¥Åä! uppackActionCnt=%s != %s(RURHRcRrRsRˆR•R–RRÃR—RCRÊR=RŸRJRkRHRnRRB(RØRÙRRóRœRRžt
zoneIDDictR»RïRŸR R
R?R.R%tuppackFamilyCntR…RðtuppackMemberCntR†RñtuppackActionCntR‡((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRívsp        
     
 
 
 
 
 
cCs|d}tjd||fƒtjƒjtjdƒ|sDdStjd|ƒtjƒjtjdƒtj    |ƒdS(NR°s1ÊÕµ½»¥Í¨¹«»áÊý¾Ýͬ²½½á¹û! fromServerID=%s,isOK=%sis?»¥Í¨¹«»áÊý¾Ýͬ²½³É¹¦£¬±¾·þÕýʽ¿ªÆô¿ç·þ¹«»á»¥Í¨! fromServerID=%si(
RHRcRrRÌRãRFRÏRÎtChPlayertSyncOnlinePlayerToCross(R¼R¾R°((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRîÀs
 cCs_tjƒrtƒrdSntjƒ}x0|jƒD]"}|j|ƒ}|jtƒq5WdS(N(    RHt IsMainServerRvRrRsRiRNR*RB(R»R%RP((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytOnMinuteÏs      cCstƒs dStjƒ}tjƒ}|jƒ|_|jƒ|_t    |jƒ|_
|rnt j ||ƒn t j |ƒdS(N(RvRrRstChPyNetSendPackttagSCFamilyCrossInfoR~tZoneIDRt ServerIDListRUt    ServerCntt NetPackCommont SendFakePacktSendFackPackOnline(t    curPlayerR»t
clientPack((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÉÞs       (-RúRRˆRHRFR­R»RþRR¤RKRrRÝR·RšRRMRR>R`RmRÂRR<RšRdR´R¶R²R¹RBR³RÂRvRuRÖR=RÊRÓRìRíRîRýR<RÉ(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt<module>sT                  \.P¥’ÿ¾                      )                .D    G        J