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
TU*jc@s0ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZdfd„ƒYZdfd„ƒYZdfd„ƒYZdfd    „ƒYZd
fd „ƒYZd fd „ƒYZdfd„ƒYZd„Zd„Zd„Zd„Zdd„Zd„Zdded„Z d„Z!ddd„Z"d„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 GetActionType0scCs
|jjS(N(RtName(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetName1scCs||j_dS(N(RR(R    tname((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetName2scCs
|jjS(N(RtTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetTime3scCs||j_dS(N(RR(R    tsetTime((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetTime4scCs
|jjS(N(RtValue1(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetValue15scCs||j_dS(N(RR(R    tvalue1((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetValue16scCs
|jjS(N(RtValue2(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetValue27scCs||j_dS(N(RR(R    tvalue2((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetValue28scCs
|jjS(N(RtValue3(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetValue39scCs||j_dS(N(RR!(R    tvalue3((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetValue3:scCs
|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 GetUserDictAscCs |jjƒS(N(RtToString(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetUserDataBscCs|jj|ƒdS(N(RtSetData(R    tvalue((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetUserDataCscCs|jjƒ|jjƒS(N(RR3Rt    getBuffer(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetBufferDs 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 Js            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.pytInitActionInstancePs     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>us(RAtsort(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRJtscCs<d|ko t|jƒknr8|jj|ƒndS(Ni(tlenRAtpop(R    tindex((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRKxs%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>Hs                               tFamilyActionMgrcBsJeZd„Zd„Zd„Zd„Zd„Zed„Zd„Z    RS(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  cCsWxP|jjƒD]?\}}x0|D](}||kr;q#n|j||ƒq#WqWdS(N(RaReRg(R    RhR?RbR@((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytDelFamilyActionTypesÃ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Ë|s|jj|dƒdS||jkr0dS|j|}xM|jƒD]?}|tjkr|tjd||fƒqJn|j|ƒqJW|s©|jj|dƒntjd|j|jƒƒdS(Ns/²»É¾³ýµÄFamilyAction: familyID=%s,actionType=%ssÊ£ÓàactionType=%s(RaRVR<tkeysRFtDelFamilyNoDelActionTypest    GameWorldtDebugLog(R    R?t
checkNoDelRbR@((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytClearFamilyActionÒs cCs|jj|iƒjƒS(N(RaRHRk(R    R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetActionTypeListäs(
R:R;R RdRiRjRgR=RpRq(((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(Rut    DBDataMgrt GetFamilyMgrt
FindFamilyRtR (R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetFamilyïs    !cCs
|jjS(N(RttPlayerID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetPlayerIDóscCs
|jjS(N(RtR (R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRôscCs
|jjS(N(RttJoinTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetJoinTimeõscCs
|jjS(N(Rtt
PlayerName(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetPlayerNameöscCs||j_dS(N(RtR(R    t
playerName((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetPlayerName÷scCs
|jjS(N(RttLV(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetLVøscCs||j_dS(N(RtRƒ(R    tlv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetLVùscCs
|jjS(N(RttJob(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetJobúscCs||j_dS(N(RtR‡(R    tjob((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetJobûscCs
|jjS(N(RttRealmLV(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetRealmLVüscCs||j_dS(N(RtR‹(R    trealmLV((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetRealmLVýscCs
|jjS(N(RttFace(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFaceþscCs||j_dS(N(RtR(R    tface((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetFaceÿscCs
|jjS(N(RttFacePic(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetFacePicscCs||j_dS(N(RtR“(R    tfacePic((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetFacePicscCs
|jjS(N(RttTitleID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetTitleIDscCs||j_dS(N(RtR—(R    ttitleID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetTitleIDscCs
|jjS(N(Rtt
FightPower(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetFightPowerscCs
|jjS(N(Rtt FightPowerEx(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFightPowerExscCs|jjtj|jjS(N(RtRtChConfigtDef_PerPointValueR›(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFightPowerTotalscCs*|tj|j_|tj|j_dS(N(RŸR RtR›R(R    tfightPowerTotal((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetFightPowerTotalscCst|jjƒS(N(RLRttServerID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetServerID scCs||j_dS(N(RtR¤(R    tserverID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetServerID scCs
|jjS(N(RttOffTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetOffTime scCs||j_dS(N(RtR¨(R    toffTime((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetOffTimescCs
|jjS(N(RttFmLV(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFmLVscCs||j_dS(N(RtR¬(R    tfmLV((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetFmLVscCs
|jjS(N(Rtt ContribTotal(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetContribTotalscCs||j_dS(N(RtR°(R    t contribTotal((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetContribTotalscCs
|jjS(N(Rtt
ContribDay(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetContribDayscCs||j_dS(N(RtR´(R    t
contribDay((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetContribDayscCs
|jjS(N(RttDonateCntTotal(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetDonateCntTotalscCs||j_dS(N(RtR¸(R    tdonateCntTotal((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetDonateCntTotalscCs
|jjS(N(Rtt DonateCntDay(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetDonateCntDayscCs||j_dS(N(RtR¼(R    t donateCntDay((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetDonateCntDayscCs |jjƒS(N(RtR8(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(R|tPlayerViewCachet FindViewCacheR‚R€R†R„RŠRˆRŽRŒR’RR–R”RšR˜R§R¥R©R«R=R¡R£RBRztRefrshFightPowerTotal(R    tplayerIDt    viewCachetfpChangeR¢Rv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytRefreshMemberByIDs0    N(*R:R;R<R RzR|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·R¹R»R½R¿R9RÆ(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRrè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__memberDictRwRxt_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.pytGetIDBscCs
|jjS(N(RÉt
CreateTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetCreateTimeCscCst|jjƒS(N(RLRÉR¤(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR¥DscCs
|jjS(N(RÉR(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyREscCs||j_dS(N(RÉR(R    R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRFscCs
|jjS(N(RÉtLeaderID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetLeaderIDGscCs||j_dS(N(RÉRÓ(R    tleaderID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetLeaderIDHscCs
|jjS(N(RÉRƒ(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR„IscCs||j_dS(N(RÉRƒ(R    R…((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR†JscCs
|jjS(N(RÉtExp(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetExpKscCs||j_dS(N(RÉR×(R    texp((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetExpLscCs
|jjS(N(RÉt
JoinReview(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetJoinReviewMscCs||j_dS(N(RÉRÛ(R    t
joinReview((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetJoinReviewNscCs
|jjS(N(RÉt    JoinLVMin(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetJoinLVMinOscCs||j_dS(N(RÉRß(R    Rß((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetJoinLVMinPscCs
|jjS(N(RÉt    Broadcast(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetBroadcastQscCs(||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 SetBroadcastRs cCs
|jjS(N(RÉR›(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRœVscCs
|jjS(N(RÉR(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRžWscCs|jjtj|jjS(N(RÉRRŸR R›(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR¡XscCsa|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£Zs   cCs
|jjS(N(RÉtEmblemID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetEmblemIDbscCs||j_dS(N(RÉRê(R    temblemID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetEmblemIDcscCs
|jjS(N(RÉt
EmblemWord(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetEmblemWorddscCs||j_dS(N(RÉRî(R    t
emblemWord((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetEmblemWordescCs
|jjS(N(RÉtExtra1(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra1fscCs||j_dS(N(RÉRò(R    textra1((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra1gscCs
|jjS(N(RÉtExtra2(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra2hscCs||j_dS(N(RÉRö(R    textra2((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra2iscCs
|jjS(N(RÉtExtra3(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra3jscCs||j_dS(N(RÉRú(R    textra3((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra3kscCs
|jjS(N(RÉtExtra4(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra4lscCs||j_dS(N(RÉRþ(R    textra4((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra4mscCs
|jjS(N(RÉtExtra5(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra5nscCs||j_dS(N(RÉR(R    textra5((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra5oscCs |jjƒS(N(RÉR8(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR9pscCsœt||ƒ}|jƒ}||jkr.dS||j|<|jj|ƒtj|ƒ}|j|rr|jƒnt    t
j
ƒƒƒ|j j ||ƒ|S(s³õʼ»¯¹¦ÄÜÊý¾ÝʵÀý£¬´´½¨»ò¼ÓÔØÊý¾ÝʱͨÓ㬹¦ÄÜÒ»°ã²»µ÷ÓÃ
        @param dbData: ÊµÀý¶ÔÓ¦°ó¶¨µÄdbData
        @return: ³É¹¦·µ»ØÊµÀý¶ÔÏó£¬Ê§°Ü·µ»ØNone
        N( RrR|RË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.pytInitMemberInstancess  +cCs |jjƒS(N(RËRk(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetMemberIDListƒscCs”d}||jkr%|j|}natjƒ}||_|jƒ|_ttjƒƒ|_    |j
|ƒ}| r†t r†t ƒ}n|j ƒ|S(N(R<RËRRsR{RÐR RLRMR}RR=RrRÂ(R    RÃRR
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    AddMember…s       
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=Rr(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=Rr(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(trangeRRR¡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
  cCsQx$|jjƒD]}|j|ƒqW|jƒ|jj|jƒdtƒdS(NRo(RËRkR RRÎRpRÐRB(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Ö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ÿRRRR9RR    R
R RRRRÂRRRRR (((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÇ8sd                                                                                                                                                                                      
            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( RwRxt_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)R$RTRBR(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&RRRõR$RCR(R'RRR|RFtRealPlayerIDStartRBR)R"t OnAddToZoneR#( R    RvR?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<R$R^R&RR(RBR)(R    R?Rv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt DelZoneFamily4s    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?Rv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRyAs  cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R<R&R=RÇ(R    R4Rv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytFindFamilyByNameIs  cCsJ||jkrdS|jj|jƒdƒ|j|ƒ||j|<tS(N(R&RVRR<RRB(R    RvtnewName((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytFamilyRemainNameQs   cCs t|jƒS(N(RUR$(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRYscCsQd}d|ko&t|jƒknr;|j|}ntrMtƒ}n|S(Ni(R<RUR$R=RÇ(R    RWRv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRZs % cCss|s
dS|jsUi|_x6t|jdƒD]\}}||j|jƒ<q/Wn||jkrhdS|j|S(Nii(R(t    enumerateR$RÐ(R    R?trankRv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetFamilyRankbs        (R:R;R R+R,R=R/R0R8R9R:RyR;R=RRR@(((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 ss                                      cCsCt|ƒ}|jƒ}||jkr2|j|S||j|<|S(s³õʼ»¯¹¦ÄÜÊý¾ÝʵÀý£¬´´½¨»ò¼ÓÔØÊý¾ÝʱͨÓ㬹¦ÄÜÒ»°ã²»µ÷ÓÃ
        @param dbData: ÊµÀý¶ÔÓ¦°ó¶¨µÄdbData
        @return: ³É¹¦·µ»ØÊµÀý¶ÔÏó£¬Ê§°Ü·µ»ØNone
        (RÇRÐRB(R    R
RvR?((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<RmtErrLogtGetZoneIDInThisServert PyMongoMaint GetUserCtrlDBtGetNewFamilyIDRBRRÈRÏRR¤RLRMRÑRLR=RÇtGetZoneFamilyMgrR8(R    R4R¦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    RvRT((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRçÊs
 
cCs|jƒ}||j|<dS(N(RÐRG(R    RvR*R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR2Ñs  cCs|jƒ|j|<dS(N(RÐRC(R    RvRÃ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÖscCs|jj|dƒdS(N(RCRVR<(R    RvRÃ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR ÚscCs |jjƒS(N(RBRk(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<RBR=RÇ(R    R?Rv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRyàs  cCsy|j|ƒ}|jj|dƒ||jkrb|jj|ƒ}|j|ƒ}|j|ƒn|ru|jƒn|S(N(    RyRBRVR<RGRHRRR9R (R    R?RvR*RT((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    DelFamilyès cCs+x$|jjƒD]}|j|ƒqWdS(N(RBRkRX(R    R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt DelAllFamily÷scCs|jS(N(RE(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(RCRDRBtvaluesRÐRÂRRRR|RReRLRVR<RC(
R    RvR?RWRRtreqIDStrtvtreqIDtreqFamilyIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt__afterLoadDBFamilyDataþs&         
 
  cCs|jj|dƒS(Ni(RCRH(R    RÃ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetPlayerFamilyIDscCs*||jkrg|j|<n|j|S(N(RD(R    RÃ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetPlayerReqJoinFamilyIDListscCs0|j|ƒ}||kr,|j|ƒtStS(N(RaRCRBR=(R    RÃR?R^((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR!s
  cCs0|j|ƒ}||kr,|j|ƒtStS(N(RaR^RBR=(R    RÃR?R^((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR*s
  cCsY|j|ƒ}xC|ddd…D].}|j|ƒ}|sDq#n|j|ƒq#WdS(Niÿÿÿÿ(RaRyR(R    RÃR^R?Rv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytDelPlayerReqJoinFamilyIDAll3scCs|jS(N(RH(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCrossZoneCfgDict=scCs ||_dS(N(RH(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(RmtLogtCheckFamilyCrossZoneCfgRHt GetGameWorldR¥t IsCrossCenterRBRBRZRÐRetCheckServerIDInListRCtSendGameErrorExRFRGRkRRtGetZoneIDListThisServerRHR8( R    tupdCrossZoneCfgDictt crossServerIDtzoneDicttfamilyZoneDicttnoZoneServerIDListRvR?R3R*tzIDtserverIDRangeListRT((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(RFRGRRRBRZR8(R    R*RTRv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt__setFamilyToDefaultZoneys        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( RmRiR¥t GetServerTypeRFtserverType_MaintIsFamilyCrossInTransDatat IsFamilyCrosst IsCrossServerRHReRk(R    R¦t curServerIDR*t
serverTypeRpRsRt((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRNƒs"                    cCs |jjƒS(N(RFRk(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRm›scCs|jj|dƒS(Niÿÿÿÿ(RGRH(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(RGR<RR(R    R?R*RT((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRVŸs icCsBd}||jkr%|j|}nt|ƒ}||j|<|S(N(R<RFR!(R    R*RT((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRRª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( RmRwRFRxRyRzRJRiR¥RHReRZRk(R    R}R|RoRpRt((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCurCrossServerIDµs              cCs ||_dS(N(RJ(R    tcurCrossServerID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetCurCrossServerIDÎscCstƒs dS|jS(Ni(RzRK(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetCurZoneIDÏscCs ||_dS(N(RK(R    t    curZoneID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetCurZoneIDÑscCs|jS(N(RI(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCurZoneServerIDListÒscCs ||_dS(N(RI(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(RBRZRÐR9RRRRERqRdRIRXtCommFunct
WriteDWORDRmRgRUt
isinstancetdicttupdate(R    tcntDictR‰tfamilySavaDataRŠtmemberSavaDataR‹tactionSavaDataRvR?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    ReadDWORDRmRgtxrangeRRÈtreadDataRLRsR RyRRRRERdREt!_FamilyMgr__afterLoadDBFamilyDataRwRFtserverType_CrossCenterRut LoadZoneCfgRxt"_FamilyMgr__setFamilyToDefaultZone( R    tdatastpostdataslentcntt_R
R?RvR@RcR}((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytLoadPyGameDataýsF               
  N('R:R;t__doc__R RLR<RURçR2RR RWRyRXRYRÍRœR`RaRRRbRcReRuRŸRNRmR~RVRRRRR‚R„R…R‡R˜R¥(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRAosH    !     *                                                                    
            :    
                                      '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( RmtGetAppIDt IpyGameDataPYtIPY_DataRtGetFamilyCrossCounttGetFamilyCrossByIndextGetCrossServerIDR+tGetServerIDListRg(RdtappIDt
ipyDataMgrRWtipyDataRoR*Rp((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRž,s      
cCsS||krtjdƒdStj||ƒ\}}|sOtjd|ƒdStS(Ns¿ç·þ¹«»á»¥Í¨·ÖÇøÅäÖò»±ä²»´¦ÀíRf(RmRgt CheckServerIDtCheckCrossZoneCfgRlRB(tcurCrossZoneCfgDictRntisOKterrInfo((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRh=s  cCsKtjƒrGtƒ}| s2tjƒj|ƒ r6dStƒtƒndS(sÔÖØ¶ÁÅäÖÃÑéÖ¤Ð޸ĺóµÄÅäÖÃÊÇ·ñ·ûºÏ¹æ¶¨£¬²»·ûºÏµÄ»°£¬»¹ÊÇʹÓþÉÅäÖõķ¶Î§£¬²¢Óʼþ֪ͨÔËά
    ¹«»á·ÖÇøÅäÖÃͬ²½¹æÔò£º ÓÉ¿ç·þÖÐÐļÓÔØÅäÖà -> Ñé֤ͨ¹ýºó·¢¸øËùÓпç·þ -> ¿ç·þÑé֤ͨ¹ýºó·¢¸øËù¹ÜϽµÄ·ÖÇøËùÓÐÓÎÏ··þÎñÆ÷
    N(RmRjRžRwRxRut!Sync_CenterToCross_FamilyCrossCfgtSync_CrossToServer_FamilyInfo(Rd((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytOnReloadConfigKs     
cCs |tjkrt|ƒndS(N(RFtserverType_CrossR¶(R}R¦((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSync_CenterToCross_FamilyInfoXs icCswtjƒ}|jƒ}|s/tjdƒdSi|d6}|rK|gn    |jƒ}tjtj    ||tj
ƒdS(Ns4ûÓй«»á»¥Í¨ÅäÖûòûÓÐÑéÖ¤ÕýÈ·µÄ»¥Í¨·ÖÇøÅäÖò»Í¨Öª£¡Rd( RwRxRcRmRgRktCrossMsgt SendToServerRFtCC2C_FamilyCrossCfgt dirType_Cross(R¦t    familyMgrRdtdataMsgt serverIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR¶`s    cCs€|tjkrdS|d}|s'dStjƒtjkr@dStjƒ}|j|ƒs_dStƒddl    }|j
ƒdS(NRdiÿÿÿÿ( RFRRmRwR¹RwRxRuR·t PlayerFamilytOnFamilyUpdZoneOK(RÀt fromServerIDR}RnR¿RÂ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR½ks
 
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*tzoneServerIDListRd(RmRnRwRxRcRiR¥RmRkRRR:R»tSendToClientServerRFtC2S_FamilyCrossInfo( t
toServerIDt
syncZoneIDtwithCfgR¿RdRot zoneCfgDictR*tcfgServerIDListttoServerIDListRTRÅRÀ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR·s8   
 
   cCs tjƒ}|j|ƒ|j|dƒd|krr|jƒ}|d}|j|ƒ||krrtƒqrnd|krœ|j|dƒt|ƒndS(NR*RÅRd(    RwRxRR„R…R‡tSync_FamilyCrossInfoRetCheckCrossFamilyTransData(RÀRÄR¿R†tupdZoneServerIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRǨs    
     cCs“|r|g}nHg}tjƒ}x3|jƒD]%}|j|ƒ}||jƒ7}q1W|sddS|rs|gng}tjtj||ƒdS(N(    RwRxRmRRR:R»RÆRFtC2S_FamilyCrossAllServerID(RÈtnewCrossSererIDtcrossServerIDListR¿R*RTRÍ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSync_C2S_FamilyCrossAllServerID¿s  cCs(|}x|D]}|tj|<q WdS(N(t
PyGameDatatg_allCrossFamilyServerIDDict(RÀRÄRÓR3((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÑÑs cCstjƒjtjƒdkS(Ni(RwtGetEventTrigMgrtGetValueRFtDef_FamilyCrossState(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRz×scCstjƒjtjƒdkS(Ni(RwR×RØRFtDef_FamilyTransDataTime(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRyÛ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(RzRwRxRmRiR¥R…RgRcReRkR»tSendToCrossServerRFtS2C_FamilyData( t connServerIDR¿R¦R†RoRÜRdtcIDRpR*Rt((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(#RzRmRnRáRwR×RØRFt Def_CanCrossRgR¨t
GetFuncCfgt Def_ServerDayRxRcRiR¥ReRktCrossMgrtGetSSServerMgrt GetSSServert GetConnStatet ssConn_NormalRÚRLRMtChangeTimeNumToStrtSetValueR˜RWRUR»RÝRÞ(RßtignoreCDt NeedServerDayt    serverDayR¿RdRoRÜR¦RàRpR*RttssServert    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ƒtd|ƒ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ÉRÒ(t__doCheckServerInZoneRmRgRwRxRNt__unpackFamilyDataRlR»RÆRFtC2S_FamilyDataRetR=RRRÍRÏRXR8RLR RyRRRdRER0R·RBRÔ(RÀRÄRÜRãRäR‘R¿R*tfamilyDataListtmemberDataListtactionDataListt    unpackRetR´terrorMsgRTt    actionMgrR
R?RvR@Rc((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÞQsj 
 
 
 
 
 
 
                                 cCsÓtjd||fƒtjƒ}|j|ƒ}||kr_tjdd|||fƒdS|j|ƒ}|j|ƒs˜tjd||fƒdStjd||fƒtd|dt    ƒt
d|ƒdS(    Ns?¼ì²éÓÎÏ··þÊÇ·ñÒѾ­³É¹¦¼ÓÈ뻥ͨ·ÖÇø! fromServerID=%s,toZoneID=%stCheckServerInZoneErrors7¼ì²éµÄ»¥Í¨·ÖÇø²»Ò»ÖÂ! fromServerID=%s,toZoneID=%s != %ss7ÒѾ­Ôڸû¥Í¨·ÖÇøÀïÁ˲»´¦Àí! fromServerID=%s,toZoneID=%ss7¼ì²éÇҳɹ¦¼ÓÈ빫»á»¥Í¨·ÖÇø! fromServerID=%s,toZoneID=%sRÉRÊRÒ( RmRgRwRxRNRlRRR0R·R=RÔ(RÄRÜR¿R*RT((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR÷›s   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(RURmRgRwRxRŒR™RšRRÈR›RCRÏR=R¤RNRkRHRsRRB(RãRäR‘RþR R¡R¢t
zoneIDDictR¿RúR£R¤R
R?R3R*tuppackFamilyCntR‰RûtuppackMemberCntRŠRütuppackActionCntR‹((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRø«sp        
     
 
 
 
 
 
cCs|d}tjd||fƒtjƒjtjdƒ|sDdStjd|ƒtjƒjtjdƒtj    |ƒdS(NR´s1ÊÕµ½»¥Í¨¹«»áÊý¾Ýͬ²½½á¹û! fromServerID=%s,isOK=%sis?»¥Í¨¹«»áÊý¾Ýͬ²½³É¹¦£¬±¾·þÕýʽ¿ªÆô¿ç·þ¹«»á»¥Í¨! fromServerID=%si(
RmRgRwR×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(    Rmt IsMainServerRzRwRxRmRRR/RB(R¿R*RT((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytOnMinutes      cCstƒs dStjƒ}tjƒ}|jƒ|_|jƒ|_t    |jƒ|_
|rnt j ||ƒn t j |ƒdS(N(RzRwRxtChPyNetSendPackttagSCFamilyCrossInfoR‚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       (0RRRŒRmRFR±RÀR    RR¨RORÕRwRèR»RŸRRMRR>R`RrRÇR!RARžRhR¸RºR¶R½RBR·RÇRÔRÑRzRyRáR=RÏRÞR÷RøRùRR<RÎ(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt<module>sZ                   \DP¥’ÿ¾                      )                    .D    J        J