1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
ó
bÅ´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 FamilyActioncBsteZd„Zd„Zd d„Zd„Zd„Zd„Ze    d„Z
d„Z d„Z e    d    „Z d
„ZRS( 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.pyRJtscCst|jƒ}g|_|S(N(tlenRA(R    t    dataCount((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt DelAllActionxs    cCs<d|ko t|jƒknr8|jj|ƒndS(Ni(RURAtpop(R    tindex((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRK}s%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    RYR\((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRZŒs % cCscd}x-|jD]"}|jƒ|kr|}PqqW| r_|r_|jƒ}|j|ƒn|S(N(R<RARRPR(R    RR[tfindActionDataRD((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<RPRJRWRKR=R]RIRZR_Ra(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR>Hs                                   tFamilyActionMgrcBsSeZd„Zd„Zd„Zd„Zd„Zed„Zd„Z    d„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>RcR?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(RctitemsRFt IsSysFamilyIDtDelFamilyAction(R    tactionTypeListR?RdR@((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(RcRgRi(R    RjR?RdR@((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytDelFamilyActionTypesÈs   cCs4||jkrdS|j|}|j|dƒdS(N(RcRXR<(R    R?R@Rd((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRiÐ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(RcRXR<tkeysRFtDelFamilyNoDelActionTypest    GameWorldtDebugLog(R    R?t
checkNoDelRdR@((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytClearFamilyAction×s cCs |jjƒS(N(RcRm(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetActionFamilyIDListéscCs|jj|iƒjƒS(N(RcRHRm(R    R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetActionTypeListës( R:R;R RfRkRlRiR=RrRsRt(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRb©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(Rxt    DBDataMgrt GetFamilyMgrt
FindFamilyRwR (R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetFamilyös    !cCs
|jjS(N(RwtPlayerID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetPlayerIDúscCs
|jjS(N(RwR (R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRûscCs
|jjS(N(RwtJoinTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetJoinTimeüscCs
|jjS(N(Rwt
PlayerName(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetPlayerNameýscCs||j_dS(N(RwR‚(R    t
playerName((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetPlayerNameþscCs
|jjS(N(RwtLV(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetLVÿscCs||j_dS(N(RwR†(R    tlv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetLVscCs
|jjS(N(RwtJob(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetJobscCs||j_dS(N(RwRŠ(R    tjob((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetJobscCs
|jjS(N(RwtRealmLV(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetRealmLVscCs||j_dS(N(RwRŽ(R    trealmLV((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetRealmLVscCs
|jjS(N(RwtFace(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFacescCs||j_dS(N(RwR’(R    tface((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetFacescCs
|jjS(N(RwtFacePic(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetFacePicscCs||j_dS(N(RwR–(R    tfacePic((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetFacePicscCs
|jjS(N(RwtTitleID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetTitleID    scCs||j_dS(N(RwRš(R    ttitleID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetTitleID
scCs
|jjS(N(Rwt
FightPower(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetFightPower scCs
|jjS(N(Rwt FightPowerEx(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFightPowerEx scCs|jjtj|jjS(N(RwR 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£RwRžR (R    tfightPowerTotal((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetFightPowerTotalscCst|jjƒS(N(RLRwtServerID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetServerIDscCs||j_dS(N(RwR§(R    tserverID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetServerIDscCs
|jjS(N(RwtOffTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetOffTimescCs||j_dS(N(RwR«(R    toffTime((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetOffTimescCs
|jjS(N(RwtFmLV(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFmLVscCs||j_dS(N(RwR¯(R    tfmLV((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetFmLVscCs
|jjS(N(Rwt ContribTotal(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetContribTotalscCs||j_dS(N(RwR³(R    t contribTotal((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetContribTotalscCs
|jjS(N(Rwt
ContribDay(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetContribDayscCs||j_dS(N(RwR·(R    t
contribDay((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetContribDayscCs
|jjS(N(RwtDonateCntTotal(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetDonateCntTotalscCs||j_dS(N(RwR»(R    tdonateCntTotal((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetDonateCntTotalscCs
|jjS(N(Rwt DonateCntDay(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetDonateCntDayscCs||j_dS(N(RwR¿(R    t donateCntDay((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetDonateCntDayscCs |jjƒS(N(RwR8(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR9 scCsF||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(RtPlayerViewCachet FindViewCacheR…RƒR‰R‡RR‹R‘RR•R“R™R—RR›RªR¨R¬R®R=R¤R¦RBR}tRefrshFightPowerTotal(R    tplayerIDt    viewCachetfpChangeR¥Ry((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytRefreshMemberByID"s0    N(*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¶R¸RºR¼R¾RÀRÂR9RÉ(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRuï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__memberDictRzR{t_Family__familyMgrtGetFamilyActionMgrt_Family__actionMgr(R    R
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR As         cCs
|jjS(N(RÌtID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetIDIscCs
|jjS(N(RÌt
CreateTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetCreateTimeJscCst|jjƒS(N(RLRÌR§(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR¨KscCs
|jjS(N(RÌR(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRLscCs||j_dS(N(RÌR(R    R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRMscCs
|jjS(N(RÌtLeaderID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetLeaderIDNscCs||j_dS(N(RÌRÖ(R    tleaderID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetLeaderIDOscCs
|jjS(N(RÌR†(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR‡PscCs||j_dS(N(RÌR†(R    Rˆ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR‰QscCs
|jjS(N(RÌtExp(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetExpRscCs||j_dS(N(RÌRÚ(R    texp((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetExpSscCs
|jjS(N(RÌt
JoinReview(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetJoinReviewTscCs||j_dS(N(RÌRÞ(R    t
joinReview((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetJoinReviewUscCs
|jjS(N(RÌt    JoinLVMin(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetJoinLVMinVscCs||j_dS(N(RÌRâ(R    Râ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetJoinLVMinWscCs
|jjS(N(RÌt    Broadcast(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetBroadcastXscCs(||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 SetBroadcastYs 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¤_scCsa|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¦as   cCs
|jjS(N(RÌtEmblemID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetEmblemIDiscCs||j_dS(N(RÌRí(R    temblemID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetEmblemIDjscCs
|jjS(N(RÌt
EmblemWord(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetEmblemWordkscCs||j_dS(N(RÌRñ(R    t
emblemWord((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetEmblemWordlscCs
|jjS(N(RÌtExtra1(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra1mscCs||j_dS(N(RÌRõ(R    textra1((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra1nscCs
|jjS(N(RÌtExtra2(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra2oscCs||j_dS(N(RÌRù(R    textra2((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra2pscCs
|jjS(N(RÌtExtra3(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra3qscCs||j_dS(N(RÌRý(R    textra3((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra3rscCs
|jjS(N(RÌtExtra4(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra4sscCs||j_dS(N(RÌR(R    textra4((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra4tscCs
|jjS(N(RÌtExtra5(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra5uscCs||j_dS(N(RÌR(R    textra5((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra5vscCs |jjƒS(N(RÌR8(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR9wscCsœt||ƒ}|jƒ}||jkr.dS||j|<|jj|ƒtj|ƒ}|j|rr|jƒnt    t
j
ƒƒƒ|j j ||ƒ|S(s³õʼ»¯¹¦ÄÜÊý¾ÝʵÀý£¬´´½¨»ò¼ÓÔØÊý¾ÝʱͨÓ㬹¦ÄÜÒ»°ã²»µ÷ÓÃ
        @param dbData: ÊµÀý¶ÔÓ¦°ó¶¨µÄdbData
        @return: ³É¹¦·µ»ØÊµÀý¶ÔÏó£¬Ê§°Ü·µ»ØNone
        N( RuRRÎ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.pytInitMemberInstancezs  +cCs |jjƒS(N(RÎRm(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ÎRRvR~RÓR RLRMR€R R=RuRÅ(R    RÆR
R
((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ÎRXR<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=Ru(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=Ru(R    RYR((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    tfamilyFightPowerTotalRYR
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÅ´s cCs»|jj|jƒtjƒ}|jtƒ}|jƒ}d|krRi|d<n|d}xX|jƒD]J\}}t    |ƒt
krqint |ƒ}|j |dƒ|||<qiW|S(NtReqJoin(RÑRfRÓRFtDef_ActionType_FamilyAddR]RBR2RgttypetstrRLRXR<(R    t
joinActionRDtdataDicttreqPlayerIDDicttreqIDStrtvtreqID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetReqJoinPlayerInfo¿s   
 cCs?|jƒ}ttjƒƒ||<|jj||jƒƒdS(N(R!RLRMRÏtAddPlayerReqJoinFamilyIDRÓ(R    RÆR((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytAddReqJoinPlayerIDÑs cCsE|jƒ}||kr(|j|ƒn|jj||jƒƒdS(N(R!RXRÏ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(R!RmRXRÏR$RÓ(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(NRq(RÎRmRR&RÑRrRÓ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þRRRRRR9R R R RRRRRÅR!R#R%R&R((((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( RzR{t_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(RBR1(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetSortscCsF|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.pyRSstreverse(R1R,RTRBR0R=(R    t    checkSort((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSorts         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,RCR0R/RRRRFtRealPlayerIDStartRBR1R*t OnAddToZoneR+( R    RyR?tfamilyServerIDt
familyNametdoCnttfixNameRYR
R't memServerID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytAddFamilyToZonesB             cCsz|jj|dƒ}|sdS||jkrA|jj|ƒn|jj|jƒdƒ|jj|dƒt|_    dS(N(
R-RXR<R,R`R.RR0RBR1(R    R?Ry((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt DelZoneFamilyCs    cCs|jS(N(R/(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetZoneServerIDListNscCsAd}|r+||jkr+|j|}ntr=tƒ}n|S(N(R<R-R=RÊ(R    R?Ry((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR|Ps  cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R<R.R=RÊ(R    R<Ry((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytFindFamilyByNameXs  cCsJ||jkrdS|jj|jƒdƒ|j|ƒ||j|<tS(N(R.RXRR<RRB(R    RytnewName((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.pyRhscCsQd}d|ko&t|jƒknr;|j|}ntrMtƒ}n|S(Ni(R<RUR,R=RÊ(R    RYRy((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRis % cCss|s
dS|jsUi|_x6t|jdƒD]\}}||j|jƒ<q/Wn||jkrhdS|j|S(Nii(R0t    enumerateR,RÓ(R    R?trankRy((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetFamilyRankqs        (R:R;R R3R4R=R7R8R@RARBR|RCRERRRH(((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__playerReqJoinDictRbt_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ÓRJ(R    R
RyR?((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<RotErrLogtGetZoneIDInThisServert PyMongoMaint GetUserCtrlDBtGetNewFamilyIDRJRRËRÒRR§RLRMRÔRTR=RÊtGetZoneFamilyMgrR@(R    R<R©R?t    newFamilyR2R
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ÓR4(R    RyR\((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRêÙs
 
cCs|jƒ}||j|<dS(N(RÓRO(R    RyR2R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR:às  cCs|jƒ|j|<dS(N(RÓRK(R    RyRÆ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR    åscCs|jj|dƒdS(N(RKRXR<(R    RyRÆ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRéscCs |jjƒS(N(RJRm(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<RJR=RÊ(R    R?Ry((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR|ïs  cCsy|j|ƒ}|jj|dƒ||jkrb|jj|ƒ}|j|ƒ}|j|ƒn|ru|jƒn|S(N(    R|RJRXR<RORHRZRAR((R    R?RyR2R\((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    DelFamily÷s cCs+x$|jjƒD]}|j|ƒqWdS(N(RJRmR`(R    R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt DelAllFamilyscCs|jS(N(RM(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(RKRLRJtvaluesRÓRÅRRRRR!RgRLRXR<RC(
R    RyR?RYR
RRRR treqFamilyIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt__afterLoadDBFamilyData s&         
 
  cCs|jj|dƒS(Ni(RKRH(R    RÆ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetPlayerFamilyID&scCs*||jkrg|j|<n|j|S(N(RL(R    RÆ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetPlayerReqJoinFamilyIDList*scCs0|j|ƒ}||kr,|j|ƒtStS(N(RfRCRBR=(R    RÆR?Rc((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR"0s
  cCs0|j|ƒ}||kr,|j|ƒtStS(N(RfR`RBR=(R    RÆR?Rc((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR$9s
  cCsY|j|ƒ}xC|ddd…D].}|j|ƒ}|sDq#n|j|ƒq#WdS(Niÿÿÿÿ(RfR|R%(R    RÆRcR?Ry((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytDelPlayerReqJoinFamilyIDAllBscCs|jS(N(RP(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCrossZoneCfgDictLscCs ||_dS(N(RP(R    tcrossZoneCfgDict((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetCrossZoneCfgDictMsc 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(RotLogtCheckFamilyCrossZoneCfgRPt GetGameWorldR¨t IsCrossCenterRBRJRbRÓRgtCheckServerIDInListRCtSendGameErrorExRNRORmRZtGetZoneIDListThisServerRHR@( R    tupdCrossZoneCfgDictt crossServerIDtzoneDicttfamilyZoneDicttnoZoneServerIDListRyR?R;R2tzIDtserverIDRangeListR\((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytUpdCrossZoneCfgDictNsT       
                 cCsRi|_i|_d}|j|ƒ}x$|jjƒD]}|j|ƒq7WdS(Ni(RNRORZRJRbR@(R    R2R\Ry((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt__setFamilyToDefaultZoneˆs        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( RoRnR¨t GetServerTypeRFtserverType_MaintIsFamilyCrossInTransDatat IsFamilyCrosst IsCrossServerRPRgRp(R    R©t curServerIDR2t
serverTypeRuRxRy((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRV’s"                    cCs |jjƒS(N(RNRm(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRrªscCs|jj|dƒS(Niÿÿÿÿ(RORH(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(ROR<RZ(R    R?R2R\((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR^®s icCsBd}||jkr%|j|}nt|ƒ}||j|<|S(N(R<RNR)(R    R2R\((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRZ¹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( RoR|RFR}R~RRRRnR¨RPRgRbRp(R    R‚RRtRuRy((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCurCrossServerIDÄs              cCs ||_dS(N(RR(R    tcurCrossServerID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetCurCrossServerIDÝscCstƒs dS|jS(Ni(RRS(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetCurZoneIDÞscCs ||_dS(N(RS(R    t    curZoneID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetCurZoneIDàscCs|jS(N(RQ(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCurZoneServerIDListáscCs ||_dS(N(RQ(R    tcurZoneServerIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetCurZoneServerIDListâscCs%d
\}}d \}}d \}}xƒ|jjƒD]r}|jƒ}    ||jƒ7}|d7}xCt|jƒƒD]/}
|j|
ƒ} || jƒ7}|d7}qsWq4W|jjƒ} x†| D]~}    xu|jj    |    ƒD]a} |jj
|    | ƒ}xCt|j ƒƒD]/}|j |ƒ}||jƒ7}|d7}qWqÙWqÀWd}|t jd|ƒ|7}tjd|t|ƒfƒ|t jd|ƒ|7}tjd|t|ƒfƒ|t jd|ƒ|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(RJRbRÓR9RRRRMRsRtRfRIRZtCommFunct
WriteDWORDRoRlRUt
isinstancetdicttupdate(R    tcntDictRŽtfamilySavaDataRtmemberSavaDataRtactionSavaDataRyR?tmemIndexR
tactionFamilyIDR@RetaIndexRDtsaveData((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetSaveDataås:    
 %c Cs&tj||ƒ\}}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]Œ}tj ƒ}||j|||ƒ7}|j
}|j}    |    tjkr¨|j |ƒ}|s¨q>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    ReadDWORDRoRltxrangeRRËtreadDataRTRvR R|R RRRFRnRMRfREt!_FamilyMgr__afterLoadDBFamilyDataR|tserverType_CrossCenterRzt LoadZoneCfgR}t"_FamilyMgr__setFamilyToDefaultZone( R    tdatastpostdataslentcntt_R
R?RyR@ReR‚((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytLoadPyGameDatasH                   
  N('R:R;t__doc__R RTR<R]RêR:R    RR_R|R`RaRÐR¢ReRfR"R$RgRhRjRzR¥RVRrRƒR^RZR„R†R‡R‰RŠRŒRžR«(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRI~sH    !     *                                                                    
            :    
                                      *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( RotGetAppIDt IpyGameDataPYtIPY_DataRtGetFamilyCrossCounttGetFamilyCrossByIndextGetCrossServerIDR3tGetServerIDListRl(RitappIDt
ipyDataMgrRYtipyDataRtR2Ru((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR¤?s      
cCsS||krtjdƒdStj||ƒ\}}|sOtjd|ƒdStS(Ns¿ç·þ¹«»á»¥Í¨·ÖÇøÅäÖò»±ä²»´¦ÀíRk(RoRlt CheckServerIDtCheckCrossZoneCfgRqRB(tcurCrossZoneCfgDictRstisOKterrInfo((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRmPs  cCsKtjƒrGtƒ}| s2tjƒj|ƒ r6dStƒtƒndS(sÔÖØ¶ÁÅäÖÃÑéÖ¤Ð޸ĺóµÄÅäÖÃÊÇ·ñ·ûºÏ¹æ¶¨£¬²»·ûºÏµÄ»°£¬»¹ÊÇʹÓþÉÅäÖõķ¶Î§£¬²¢Óʼþ֪ͨÔËά
    ¹«»á·ÖÇøÅäÖÃͬ²½¹æÔò£º ÓÉ¿ç·þÖÐÐļÓÔØÅäÖà -> Ñé֤ͨ¹ýºó·¢¸øËùÓпç·þ -> ¿ç·þÑé֤ͨ¹ýºó·¢¸øËù¹ÜϽµÄ·ÖÇøËùÓÐÓÎÏ··þÎñÆ÷
    N(RoRoR¤RzR{Rzt!Sync_CenterToCross_FamilyCrossCfgtSync_CrossToServer_FamilyInfo(Ri((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytOnReloadConfig^s     
cCs |tjkrt|ƒndS(N(RFtserverType_CrossR¼(R‚R©((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSync_CenterToCross_FamilyInfoks icCswtjƒ}|jƒ}|s/tjdƒdSi|d6}|rK|gn    |jƒ}tjtj    ||tj
ƒdS(Ns4ûÓй«»á»¥Í¨ÅäÖûòûÓÐÑéÖ¤ÕýÈ·µÄ»¥Í¨·ÖÇøÅäÖò»Í¨Öª£¡Ri( RzR{RhRoRlRmtCrossMsgt SendToServerRFtCC2C_FamilyCrossCfgt dirType_Cross(R©t    familyMgrRitdataMsgt serverIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR¼ss    cCs€|tjkrdS|d}|s'dStjƒtjkr@dStjƒ}|j|ƒs_dStƒddl    }|j
ƒdS(NRiiÿÿÿÿ( RFR£RoR|R¿RzR{RzR½t PlayerFamilytOnFamilyUpdZoneOK(RÆt fromServerIDR‚RsRÅRÈ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÃ~s
 
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=%sR2tzoneServerIDListRi(RoRpRzR{RhRnR¨RrRpRZRBRÁtSendToClientServerRFtC2S_FamilyCrossInfo( t
toServerIDt
syncZoneIDtwithCfgRÅRiRtt zoneCfgDictR2tcfgServerIDListttoServerIDListR\RË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(NR2RËRi(    RzR{R†R‰RŠRŒtSync_FamilyCrossInfoRjtCheckCrossFamilyTransData(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(    RzR{RrRZRBRÁRÌRFtC2S_FamilyCrossAllServerID(RÎtnewCrossSererIDtcrossServerIDListRÅR2R\RÓ((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ÙR;((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR×äs cCstjƒjtjƒdkS(Ni(RztGetEventTrigMgrtGetValueRFtDef_FamilyCrossState(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRêscCstjƒjtjƒdkS(Ni(RzRÝRÞRFtDef_FamilyTransDataTime(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR~î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(RRzR{RoRnR¨RŠRlRhRgRpRÁtSendToCrossServerRFtS2C_FamilyData( t connServerIDRÅR©R‹RtRâRitcIDRuR2Ry((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytCheckMainServerNoFamilyToCrossòs>         'cCsQtƒr$tjdƒt|ƒdStjƒjtjƒsMtj    dƒdStj
ƒ}t j ddiƒ}|j |t jddƒƒ}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|rPqqW|s£tj    d    |
ƒdS|rÖ||kr$tj    d
|
||fƒdSnNtjƒj|ƒ}|jƒ}|tjkr$tj    d |
||fƒdStjƒjtjƒ}|r•| r•ttjƒƒ}||dkr•tj    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 FamilyCrossiis-±¾·þ¹«»á»¥Í¨ËùÐ迪·þÌì²»×ã! 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(&RRoRpRçRzRÝRÞRFt Def_CanCrossRlR­R®tGetFuncEvalCfgRHt
GetFuncCfgt Def_ServerDayR{RhRnR¨RgRptCrossMgrtGetSSServerMgrt GetSSServert GetConnStatet ssConn_NormalRàRLRMtChangeTimeNumToStrtSetValueRžR_RURÁRãRä(RåtignoreCDR´tappIDNeedServerDayDictt NeedServerDayt    serverDayRÅRiRtRâR©RæRuR2RytssServert    connStatet transDataTimetcurTimeR–RéRê((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÕ sn     
        #%  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óWxu|
D]m}|j}|j}|j}|t
jkrƒ|j|ƒ}|sƒq5qƒn|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__doCheckServerInZoneRoRlRzR{RVt__unpackFamilyDataRqRÁRÌRFtC2S_FamilyDataRetR=RZRÐRÒR`R@RTR R|R RRnRfRER8R½RBRÚ(RÆRÊRâRéRêR–RÅR2tfamilyDataListtmemberDataListtactionDataListt    unpackRetRºterrorMsgR\t    actionMgrR
R?RyR@Re((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRäfsl 
 
 
 
 
 
 
                                     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Ø( RoRlRzR{RVRqRZR8R½R=RÚ(RÊRâRÅR2R\((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(RURoRlRzR{R‘RŸR RRËR¡RCRÒR=R§RVRmRHRvRRB(RéRêR–RR¦R§R¨t
zoneIDDictRÅRR©RªR
R?R;R2tuppackFamilyCntRŽRtuppackMemberCntRRtuppackActionCntR((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(
RoRlRzRÝ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(    Rot IsMainServerRRzR{RrRZR7RB(RÅR2R\((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(RRzR{tChPyNetSendPackttagSCFamilyCrossInfoR‡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       (0R RR‘RoRFR·RÃRRR®RWRÛRzRïRÁR¢RRMRR>RbRuRÊR)RIR¤RmR¾RÀR¼RÃRBR½RÍRÚR×RR~RçR=RÕRäRÿRRRR<RÔ(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt<module>sZ                   aFP­’ÿ                      )                    .F    K        J