hwj35
2026-06-10 485e96e9c31bbd658bf7fcfb8e9518c2cac752dc
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
ô&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                               tFamilyActionMgrcBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs i|_dS(N(t"_FamilyActionMgr__familyActionDict(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR ¦s    cCs{|s tƒS||jkr,i|j|<n|j|}||krR||}n%tƒ}||_||_|||<|S(N(R>RaR?R@(R    R?R@t
actionDicttaction((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFamilyActionªs               
cCslxe|jjƒD]T\}}tj|ƒs1qnx0|D](}||krPq8n|j||ƒq8WqWdS(N(RatitemsRFt IsSysFamilyIDtDelFamilyAction(R    tactionTypeListR?RbR@((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytDelSysFamilyAction¹s  cCs4||jkrdS|j|}|j|dƒdS(N(RaRVR<(R    R?R@Rb((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRgÃs
 cCs|jj|dƒdS(N(RaRVR<(R    R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytClearFamilyActionÊscCs|jj|iƒjƒS(N(RaRHtkeys(R    R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetActionTypeListÎs(R:R;R RdRiRgRjRl(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR`¤s             
        t    FamilyMemcBsmeZd'd'd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d „Z#d!„Z$d"„Z%d#„Z&d$„Z'd%„Z(d&„Z)RS((cCs(|stjƒn||_||_dS(N(RttagDBFamilyMemt_FamilyMem__dbDatat_FamilyMem__family(R    R
tfamily((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR Ôs    cCs1|js*tjƒj|jjƒ|_n|jS(N(Rpt    DBDataMgrt GetFamilyMgrt
FindFamilyRoR (R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetFamilyÙs    !cCs
|jjS(N(RotPlayerID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetPlayerIDÝscCs
|jjS(N(RoR (R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÞscCs
|jjS(N(RotJoinTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetJoinTimeßscCs
|jjS(N(Rot
PlayerName(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetPlayerNameàscCs||j_dS(N(RoRz(R    t
playerName((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetPlayerNameáscCs
|jjS(N(RotLV(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetLVâscCs||j_dS(N(RoR~(R    tlv((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetLVãscCs
|jjS(N(RotJob(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetJobäscCs||j_dS(N(RoR‚(R    tjob((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetJobåscCs
|jjS(N(RotRealmLV(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetRealmLVæscCs||j_dS(N(RoR†(R    trealmLV((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetRealmLVçscCs
|jjS(N(RotFace(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFaceèscCs||j_dS(N(RoRŠ(R    tface((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetFaceéscCs
|jjS(N(RotFacePic(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetFacePicêscCs||j_dS(N(RoRŽ(R    tfacePic((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetFacePicëscCs
|jjS(N(RotTitleID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetTitleIDìscCs||j_dS(N(RoR’(R    ttitleID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetTitleIDíscCs
|jjS(N(Rot
FightPower(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetFightPowerîscCs
|jjS(N(Rot FightPowerEx(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFightPowerExïscCs|jjtj|jjS(N(RoR˜tChConfigtDef_PerPointValueR–(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFightPowerTotalðscCs*|tj|j_|tj|j_dS(N(RšR›RoR–R˜(R    tfightPowerTotal((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetFightPowerTotalñscCst|jjƒS(N(RLRotServerID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetServerIDõscCs||j_dS(N(RoRŸ(R    tserverID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetServerIDöscCs
|jjS(N(RotOffTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
GetOffTime÷scCs||j_dS(N(RoR£(R    toffTime((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
SetOffTimeøscCs
|jjS(N(RotFmLV(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFmLVùscCs||j_dS(N(RoR§(R    tfmLV((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetFmLVúscCs
|jjS(N(Rot ContribTotal(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetContribTotalûscCs||j_dS(N(RoR«(R    t contribTotal((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetContribTotalüscCs
|jjS(N(Rot
ContribDay(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetContribDayýscCs||j_dS(N(RoR¯(R    t
contribDay((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetContribDayþscCs
|jjS(N(RotDonateCntTotal(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetDonateCntTotalÿscCs||j_dS(N(RoR³(R    tdonateCntTotal((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetDonateCntTotalscCs
|jjS(N(Rot DonateCntDay(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetDonateCntDayscCs||j_dS(N(RoR·(R    t donateCntDay((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetDonateCntDayscCs |jjƒS(N(RoR8(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR9scCsF||jƒkrdStj|ƒ}|s/dS|j|jƒƒ|j|jƒƒ|j|jƒƒ|j    |j
ƒƒ|j |j ƒƒ|j |jƒƒ|j|jƒƒ|j|jƒƒ|jƒsé|j|jƒƒnt}|jƒ}|jƒ|krB|j|ƒt}|jƒ}|rB|jƒqBn|S(s›Ë¢Ð³ÉÔ±ÐÅÏ¢£¬ÏÉÃ˳ÉÔ±ÊôÓÚÓÀ¾Ã¹¦ÄÜÊý¾Ý£¬³ý·ÇÏÉÃ˽âÉ¢£¬ËùÒÔµ¥¶À´æÒ»·Ý³ÉÔ±»ù´¡ÐÅÏ¢£¬Ö§³ÖÀëÏßÍæ¼Ò£¬Ö±½ÓʹÓò鿴»º´æ¸üÐÂ
        @return: Õ½Á¦ÊÇ·ñ±ä¸ü
        N(RwtPlayerViewCachet FindViewCacheR}R{RRR…RƒR‰R‡RR‹R‘RR•R“R¢R R¤R¦R=RœRžRBRutRefrshFightPowerTotal(R    tplayerIDt    viewCachetfpChangeRRq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytRefreshMemberByIDs0    N(*R:R;R<R RuRwRRyR{R}RRRƒR…R‡R‰R‹RRR‘R“R•R—R™RœRžR R¢R¤R¦R¨RªR¬R®R°R²R´R¶R¸RºR9RÁ(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRmÒsN                                                                                                                                                    tFamilycBsÍeZd2d„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d „Z#d!„Z$d"„Z%d#„Z&d$„Z'd%„Z(d&„Z)d'„Z*d(„Z+d)„Z,d*„Z-d+„Z.d,„Z/d-„Z0d.„Z1d/„Z2d0„Z3d1„Z4RS(3cCsO|stjƒn||_g|_i|_tjƒ|_tjƒ|_    dS(N(
Rt tagDBFamilyt_Family__dbDatat_Family__memberListt_Family__memberDictRrRst_Family__familyMgrtGetFamilyActionMgrt_Family__actionMgr(R    R
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR $s         cCs
|jjS(N(RÄtID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetID,scCs
|jjS(N(RÄt
CreateTime(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetCreateTime-scCst|jjƒS(N(RLRÄRŸ(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR .scCs
|jjS(N(RÄR(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR/scCs||j_dS(N(RÄR(R    R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR0scCs
|jjS(N(RÄtLeaderID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetLeaderID1scCs||j_dS(N(RÄRÎ(R    tleaderID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetLeaderID2scCs
|jjS(N(RÄR~(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR3scCs||j_dS(N(RÄR~(R    R€((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR4scCs
|jjS(N(RÄtExp(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetExp5scCs||j_dS(N(RÄRÒ(R    texp((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetExp6scCs
|jjS(N(RÄt
JoinReview(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetJoinReview7scCs||j_dS(N(RÄRÖ(R    t
joinReview((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetJoinReview8scCs
|jjS(N(RÄt    JoinLVMin(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetJoinLVMin9scCs||j_dS(N(RÄRÚ(R    RÚ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetJoinLVMin:scCs
|jjS(N(RÄt    Broadcast(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetBroadcast;scCs(||j_t|jjƒ|j_dS(N(RÄRÝRUt BroadcastLen(R    t    broadcast((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetBroadcast<s cCs
|jjS(N(RÄR–(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR—@scCs
|jjS(N(RÄR˜(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR™AscCs|jjtj|jjS(N(RÄR˜RšR›R–(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRœBscCsa|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žDs   cCs
|jjS(N(RÄtEmblemID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetEmblemIDLscCs||j_dS(N(RÄRå(R    temblemID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetEmblemIDMscCs
|jjS(N(RÄt
EmblemWord(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetEmblemWordNscCs||j_dS(N(RÄRé(R    t
emblemWord((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetEmblemWordOscCs
|jjS(N(RÄtExtra1(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra1PscCs||j_dS(N(RÄRí(R    textra1((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra1QscCs
|jjS(N(RÄtExtra2(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra2RscCs||j_dS(N(RÄRñ(R    textra2((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra2SscCs
|jjS(N(RÄtExtra3(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra3TscCs||j_dS(N(RÄRõ(R    textra3((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra3UscCs
|jjS(N(RÄtExtra4(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra4VscCs||j_dS(N(RÄRù(R    textra4((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra4WscCs
|jjS(N(RÄtExtra5(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetExtra5XscCs||j_dS(N(RÄRý(R    textra5((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    SetExtra5YscCs |jjƒS(N(RÄR8(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR9ZscCsœt||ƒ}|jƒ}||jkr.dS||j|<|jj|ƒtj|ƒ}|j|rr|jƒnt    t
j
ƒƒƒ|j j ||ƒ|S(s³õʼ»¯¹¦ÄÜÊý¾ÝʵÀý£¬´´½¨»ò¼ÓÔØÊý¾ÝʱͨÓ㬹¦ÄÜÒ»°ã²»µ÷ÓÃ
        @param dbData: ÊµÀý¶ÔÓ¦°ó¶¨µÄdbData
        @return: ³É¹¦·µ»ØÊµÀý¶ÔÏó£¬Ê§°Ü·µ»ØNone
        N( RmRwRÆRÅRCR»R¼R¦R¤RLRMRÇt OnAddMember(R    R
tmemberR¾R¿((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytInitMemberInstance]s  +cCs |jjƒS(N(RÆRk(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetMemberIDListmscCs”d}||jkr%|j|}natjƒ}||_|jƒ|_ttjƒƒ|_    |j
|ƒ}| r†t r†t ƒ}n|j ƒ|S(N(R<RÆRRnRvRËR RLRMRxRR=RmR½(R    R¾RR
((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    AddMemberos       
cCsX|jj|dƒ}||jkr7|jj|ƒn|jƒ|jj||ƒ|S(N(RÆRVR<RÅR^R½RÇt OnDelMember(R    R¾tdelMem((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt DeleteMember~s 
cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R<RÆR=Rm(R    R¾tmem((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt
FindMember†s  cCs t|jƒS(N(RURÅ(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCountŽscCsQd}d|ko&t|jƒknr;|j|}ntrMtƒ}n|S(Ni(R<RURÅR=Rm(R    RWR    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetAts % cCs_d}xEt|jƒƒD]1}|j|ƒ}|s:qn||jƒ7}qW|j|ƒ|S(Ni(trangeR R RœRž(R    tfamilyFightPowerTotalRWR((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR½—s cCsZ|jj|jƒtjƒ}|jtƒ}|jƒ}d|krRi|d<n|dS(NtReqJoin(RÉRdRËRFtDef_ActionType_FamilyAddR[RBR2(R    t
joinActionRDtdataDict((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetReqJoinPlayerInfo¢s    cCs?|jƒ}ttjƒƒ||<|jj||jƒƒdS(N(RRLRMRÇtAddPlayerReqJoinFamilyIDRË(R    R¾treqPlayerIDDict((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytAddReqJoinPlayerID¬s cCsE|jƒ}||kr(|j|ƒn|jj||jƒƒdS(N(RRVRÇtDelPlayerReqJoinFamilyIDRË(R    R¾R((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytDelReqJoinPlayerID²s
  cCsM|jƒ}x:|jƒD],}|j|ƒ|jj||jƒƒqWdS(N(RRkRVRÇRRË(R    RR¾((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytDelReqJoinPlayerAll¹s
  cCsKx$|jjƒD]}|j|ƒqW|jƒ|jj|jƒƒdS(N(RÆRkRRRÉRjRË(R    tmemID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytOnDeleteÀs
 
N(5R:R;R<R RËRÍR RRRÏRÑRRRÓRÕR×RÙRÛRÜRÞRáR—R™RœRžRæRèRêRìRîRðRòRôRöRøRúRüRþRR9RRRRR
R R R½RRRRR(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÂ"sd                                                                                                                                                                                      
            t ZoneFamilyMgrcBsŒeZdd„Zd„Zd„Zed„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „Zd „Zd„ZRS(icCsRtjƒ|_||_g|_i|_i|_g|_i|_t    |_
dS(N( RrRst_ZoneFamilyMgr__familyMgrt_ZoneFamilyMgr__zoneIDt_ZoneFamilyMgr__familyListt_ZoneFamilyMgr__familyIDDictt_ZoneFamilyMgr__familyNameDictt _ZoneFamilyMgr__zoneServerIDListt _ZoneFamilyMgr__familyIDRankDictRBt_ZoneFamilyMgr__needSort(R    tzoneID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR Ës                            cCs|jS(N(R(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    GetZoneIDÙscCs t|_dS(N(RBR$(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetSortÛscCsF|r|j rdS|jjdd„dtƒi|_t|_dS(s Ä¬ÈÏÅÅÐòµ¹Ðò£¬°´  ÏÉÃË×ÜÕ½Á¦ -> ÏÉÃ˵ȼ¶
        @param checkSort: ÊÇ·ñ¼ì²éÐèÒªÅÅÐò£¬Èç¹ûÐèÒªÅÅÐò²Å»áÅÅÐò£¬ÉèÖÃTrueʱÔòÇ¿ÖÆÅÅÐò²»¼ì²é
        NRQcSs|jƒ|jƒfS(N(RœR(RR((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRSãstreverse(R$RRTRBR#R=(R    t    checkSort((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSortÝs         cCs'||jkr#|jj|ƒtStS(snÖ±½Ó½«Ä³¸öÇø·þ¼ÓÈë¸Ã·ÖÇø£¬Ò»°ãÓÃÓÚ×ÔÉíûÓй«»áµÄÓÎÏ··þ
        ±È½ÏÌØÊâµÄÇé¿ö£ºµ±Ä³¸öÓÎÏ··þ×ÔÉíûÓй«»áʱ£¬ÔÚ¼ÓÈ뻥ͨºó£¬µ±»¹Ã»ÓÐÍæ¼Ò¼ÓÈëij¸öÆäËû·þ¹«»áʱ£¬»áµ¼ÖÂÕÒ²»µ½¸Ã·þµÄËùÊô·ÖÇø
        ËùÒÔÓÎÏ··þÔÚ»¥Í¨·ÖÇø¸üÐÂʱÔÚ±¾·þûÓй«»áʱÐèÒª¶îÍâͬ²½¿ç·þ¸æÖª¼ÓÈ뻥ͨ£¬·ñÔò»áµ¼Ö¸÷þÍæ¼ÒÎÞ·¨Õý³£¼ÓÈ빫»á»¥Í¨
        @return: True - ³É¹¦Ð¼ÓÈ룻  False - ÒѾ­¼ÓÈëÁË
        (R"RCRBR=(R    R¡((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytAddServerIDToZoneèsc Csµ|s
dS|jƒ}||jkr)dS||j|<|jƒ}|jƒ}||jkr½x@tddƒD]/}d||f}||jkrm|}PqmqmW|j|ƒ|jdƒn||j|<||jkrõ|jj    |ƒi|_
n||j kr|j j    |ƒnxxt|j ƒƒD]d}|j |ƒ}|jƒ}    |jƒ}
|    tjkrlq*n|
|j kr*|j j    |
ƒq*q*Wt|_|jj||jƒdS(Niiès%s%si(RËR R RR!R RRðRRCR#R"R R RwRFtRealPlayerIDStartRBR$Rt OnAddToZoneR( R    RqR?tfamilyServerIDt
familyNametdoCnttfixNameRWRRt memServerID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytAddFamilyToZoneósB             cCsz|jj|dƒ}|sdS||jkrA|jj|ƒn|jj|jƒdƒ|jj|dƒt|_    dS(N(
R RVR<RR^R!RR#RBR$(R    R?Rq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt DelZoneFamilys    cCs|jS(N(R"(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetZoneServerIDList)scCsAd}|r+||jkr+|j|}ntr=tƒ}n|S(N(R<R R=RÂ(R    R?Rq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRt+s  cCs;d}||jkr%|j|}ntr7tƒ}n|S(N(R<R!R=RÂ(R    R/Rq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytFindFamilyByName3s  cCsJ||jkrdS|jj|jƒdƒ|j|ƒ||j|<tS(N(R!RVRR<RRB(R    RqtnewName((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytFamilyRemainName;s   cCs t|jƒS(N(RUR(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR CscCsQd}d|ko&t|jƒknr;|j|}ntrMtƒ}n|S(Ni(R<RURR=RÂ(R    RWRq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR Ds % cCss|s
dS|jsUi|_x6t|jdƒD]\}}||j|jƒ<q/Wn||jkrhdS|j|S(Nii(R#t    enumerateRRË(R    R?trankRq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetFamilyRankLs        (R:R;R R&R'R=R*R+R3R4R5RtR6R8R R R;(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÇs                   +                             t    FamilyMgrcBsUeZdZd„Zd„Zd%d„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd%d„Zd„Zd„Zd„Zdd„Zd„Zd„Z d„Z!d „Z"d!„Z#d"„Z$d%d#„Z%d$„Z&RS(&sQ ËùÓзÖÇøµÄ¹«»á×ܹÜÀí£¬±¾·þ¡¢¿ç·þͨÓã¬zoneIDΪ0ʱĬÈÏÊDZ¾·þµÄ·Ç¿ç·þ»¥Í¨¹«»á
    cCsai|_i|_i|_tƒ|_i|_i|_i|_g|_d|_    d|_
dS(Ni( t_FamilyMgr__familyIDDictt_FamilyMgr__playerFamilyIDDictt_FamilyMgr__playerReqJoinDictR`t_FamilyMgr__actionMgrt_FamilyMgr__zoneFamilyMgrDictt_FamilyMgr__familyIDZoneIDDictt_FamilyMgr__crossZoneCfgDictt_FamilyMgr__curZoneServerIDListt_FamilyMgr__curCrossServerIDt_FamilyMgr__curZoneID(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR ]s                                      cCsCt|ƒ}|jƒ}||jkr2|j|S||j|<|S(s³õʼ»¯¹¦ÄÜÊý¾ÝʵÀý£¬´´½¨»ò¼ÓÔØÊý¾ÝʱͨÓ㬹¦ÄÜÒ»°ã²»µ÷ÓÃ
        @param dbData: ÊµÀý¶ÔÓ¦°ó¶¨µÄdbData
        @return: ³É¹¦·µ»ØÊµÀý¶ÔÏó£¬Ê§°Ü·µ»ØNone
        (RÂRËR=(R    R
RqR?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytInitFamilyInstance~s     cCs?d}| s| r)tjd|ƒ|S|j|ƒ}|dkrYtjd|ƒ|S|dkr—tjƒjƒ}|dkr—tjdƒ|Sn||jkr»tjd|ƒ|Stj    ƒ}||_
||_ ||_ t tjƒƒ|_|j|ƒ}| rtrtƒ}n|j|ƒ}|j|ƒ|S(Ns'´´½¨¹«»á²ÎÊýÒì³££¬ÎÞ·¨´´½¨! serverID=%sis7·þÎñÆ÷ID´´½¨µÄ¹«»á²»ÊôÓÚ±¾·þ¹ÜÀí£¬ÎÞ·¨´´½¨! serverID=%ss´´½¨¹«»áʱÉú³ÉÐÂIDÒì³£!s´´½¨¹«»áʱIDÒÑ´æÔÚ! familyID=%s(R<t    GameWorldtErrLogtGetZoneIDInThisServert PyMongoMaint GetUserCtrlDBtGetNewFamilyIDR=RRÃRÊRRŸRLRMRÌRGR=RÂtGetZoneFamilyMgrR3(R    R/R¡R?t    newFamilyR%R
tzoneMgr((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    AddFamilyŠs6                        cCs-|j|jƒƒ}|sdS|jƒdS(N(tGetZoneFamilyMgrByFamilyIDRËR'(R    RqRP((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRâ´s
 
cCs|jƒ}||j|<dS(N(RËRB(R    RqR%R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR-»s  cCs|jƒ|j|<dS(N(RËR>(R    RqR¾((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÀscCs|jj|dƒdS(N(R>RVR<(R    RqR¾((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÄscCs |jjƒS(N(R=Rk(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFamilyIDListÈscCsAd}|r+||jkr+|j|}ntr=tƒ}n|S(N(R<R=R=RÂ(R    R?Rq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRtÊs  cCsy|j|ƒ}|jj|dƒ||jkrb|jj|ƒ}|j|ƒ}|j|ƒn|ru|jƒn|S(N(    RtR=RVR<RBRHRNR4R(R    R?RqR%RP((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt    DelFamilyÒs cCs+x$|jjƒD]}|j|ƒqWdS(N(R=RkRT(R    R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt DelAllFamilyáscCs|jS(N(R@(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÈæsc
Csi|_i|_x|jjƒD]ò}|jƒ}|jƒx<t|jƒƒD](}|j|ƒ}||j|j    ƒ<qQW|j
ƒ}xˆ|j ƒD]z\}}t |ƒ}|j |dƒ|||<||jkrçg|j|<n|j|}    ||    kr–|    j|ƒq–q–Wq"WdS(N(R>R?R=tvaluesRËR½R R R RwRReRLRVR<RC(
R    RqR?RWRRtreqIDStrtvtreqIDtreqFamilyIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt__afterLoadDBFamilyDataès&         
 
  cCs|jj|dƒS(Ni(R>RH(R    R¾((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetPlayerFamilyIDscCs*||jkrg|j|<n|j|S(N(R?(R    R¾((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetPlayerReqJoinFamilyIDListscCs0|j|ƒ}||kr,|j|ƒtStS(N(R]RCRBR=(R    R¾R?RZ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR s
  cCs0|j|ƒ}||kr,|j|ƒtStS(N(R]R^RBR=(R    R¾R?RZ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRs
  cCsY|j|ƒ}xC|ddd…D].}|j|ƒ}|sDq#n|j|ƒq#WdS(Niÿÿÿÿ(R]RtR(R    R¾RZR?Rq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytDelPlayerReqJoinFamilyIDAllscCs|jS(N(RC(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCrossZoneCfgDict'scCs ||_dS(N(RC(R    tcrossZoneCfgDict((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetCrossZoneCfgDict(sc Cstjd|ƒt|j|ƒs'dStjƒjƒ}||krotjdƒ||_tjƒrktSdS||}i}g}x|jj    ƒD]Œ}|j
ƒ}|jƒ}d}    x6|j ƒD](\}
} tj || ƒrÆ|
}    PqÆqÆW|    s||kr!|j |ƒq!q•|    ||<q•W|rCtjdd|ƒdS||_i|_i|_|j|}tjd||fƒx!|jƒD]}    |j|    ƒqWtjd|jƒƒxQ|jj    ƒD]@}|j
ƒ}|j|dƒ}    |j|    ƒ} | j|ƒqÍWtS(Ns,¿ç·þ¹«»á»¥Í¨ÅäÖøüÐÂ! updCrossZoneCfgDict=%ss!±¾¿ç·þδ·ÖÅä·ÖÇøµÄÖ»¸üÐÂÅäÖü´¿É!itFamilyCrossZoneCfgErrorsnoZoneServerIDList=%ss4±¾¿ç·þÖØÖù«»á»¥Í¨·ÖÇø! crossServerID=%s,zoneDict=%ssGetZoneIDListThisServer=%s(RHtLogtCheckFamilyCrossZoneCfgRCt GetGameWorldR t IsCrossCenterRBR=RVRËRetCheckServerIDInListRCtSendGameErrorExRARBRkRNtGetZoneIDListThisServerRHR3( R    tupdCrossZoneCfgDictt crossServerIDtzoneDicttfamilyZoneDicttnoZoneServerIDListRqR?R.R%tzIDtserverIDRangeListRP((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytUpdCrossZoneCfgDict)sT       
                 cCsRi|_i|_d}|j|ƒ}x$|jjƒD]}|j|ƒq7WdS(Ni(RARBRNR=RVR3(R    R%RPRq((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt__setFamilyToDefaultZonecs        cCsÑtjƒjƒ}|s!|}nd}tjƒ}|tjkritƒrTd}qÍtƒsÍd}qÍndtjƒrÍ||j    krÍ|j    |}x9|j
ƒD](\}}tj ||ƒrž|}PqžqžWn|S(s¢»ñÈ¡·þÎñÆ÷IDÔÚ±¾¹«»áÊý¾Ý·þÎñÆ÷ÖÐËùÊôµÄ·ÖÇøID£¬
        @return: zoneID -2-»ò´«ÊäÊý¾ÝÖУ»-1-·ÖÇø²»ÔÚ±¾·þÎñÆ÷£»0-δ»¥Í¨Ä¬ÈÏ·ÖÇø0£»>0-ÔÚ±¾·þÊý¾ÝÖÐËùÔÚ·ÖÇøID
        iÿÿÿÿiþÿÿÿi( RHReR t GetServerTypeRFtserverType_MaintIsFamilyCrossInTransDatat IsFamilyCrosst IsCrossServerRCReRg(R    R¡t curServerIDR%t
serverTypeRlRoRp((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRJms"                    cCs |jjƒS(N(RARk(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRi…scCs|jj|dƒS(Niÿÿÿÿ(RBRH(R    R?((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetFamilyZoneID‡scCsMd}||jkr%|j|}nd}|dkrI|j|ƒ}n|S(Niÿÿÿÿi(RBR<RN(R    R?R%RP((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRR‰s icCsBd}||jkr%|j|}nt|ƒ}||j|<|S(N(R<RAR(R    R%RP((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRN”s   cCs¬tjƒ}|tjkrdStƒr,dStƒs9dS|jrI|jStjƒjƒ}xJ|j    j
ƒD]9\}}x*|j ƒD]}tj ||ƒr„|Sq„WqkWdS(Niÿÿÿÿiþÿÿÿi( RHRsRFRtRuRvREReR RCReRVRg(R    RyRxRkRlRp((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCurCrossServerIDŸs              cCs ||_dS(N(RE(R    tcurCrossServerID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetCurCrossServerID¸scCstƒs dS|jS(Ni(RvRF(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetCurZoneID¹scCs ||_dS(N(RF(R    t    curZoneID((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt SetCurZoneID»scCs|jS(N(RD(R    ((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytGetCurZoneServerIDList¼scCs ||_dS(N(RD(R    tcurZoneServerIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSetCurZoneServerIDList½scCsd
\}}d \}}d \}}xû|jjƒD]ê}|jƒ}    ||jƒ7}|d7}xCt|jƒƒD]/}
|j|
ƒ} || jƒ7}|d7}qsWxu|jj|    ƒD]a} |jj    |    | ƒ} xCt| j
ƒƒD]/}| j |ƒ}||jƒ7}|d7}qçWq¹Wq4Wd}|t j d|ƒ|7}tjd|t|ƒfƒ|t j d|ƒ|7}tjd|t|ƒfƒ|t j d|ƒ|7}tjd|t|ƒfƒt|tƒr|ji|d6|d6|d    6ƒn|S( NitisSave DBFamily count :%s len=%ss!Save DBFamilyMem count :%s len=%ss$Save DBFamilyAction count :%s len=%st familyDataCntt membreDataCntt actionDataCnt(is(is(is(R=RVRËR9R R R R@RlRdRIRXtCommFunct
WriteDWORDRHRcRUt
isinstancetdicttupdate(R    tcntDictR…tfamilySavaDataR†tmemberSavaDataR‡tactionSavaDataRqR?tmemIndexRR@RctaIndexRDtsaveData((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt GetSaveDataÀs6    
%c Cstj||ƒ\}}tjd|ƒxFt|ƒD]8}tjƒ}||j|||ƒ7}|j|ƒq6Wtj||ƒ\}}tjd|ƒxjt|ƒD]\}tj    ƒ}||j|||ƒ7}|j
}|j |ƒ}|s÷q¨n|j |ƒq¨Wtj||ƒ\}}tjd|ƒxˆt|ƒD]z}tj ƒ}||j|||ƒ7}|j
}|j}    |j |ƒ}|s–q>n|jj||    ƒ}
|
j|ƒq>W|jƒtjƒ} | tjkrô|jtƒƒn| tjkr|jƒn|S(NsLoad DBFamily count :%ssLoad DBFamilyMem count :%ssLoad DBFamilyAction count :%s(Rˆt    ReadDWORDRHRctxrangeRRÃtreadDataRGRnR RtRRRR@RdREt!_FamilyMgr__afterLoadDBFamilyDataRsRFtserverType_CrossCenterRqt LoadZoneCfgRtt"_FamilyMgr__setFamilyToDefaultZone( R    tdatastpostdataslentcntt_R
R?RqR@RcRy((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytLoadPyGameDataçsF               
  N('R:R;t__doc__R RGR<RQRâR-RRRSRtRTRURÈR˜R\R]RRR^R_RaRqR›RJRiRzRRRNR{R}R~R€RRƒR”R¡(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR<YsH    !     *                                                                    
            :    
                                      'cCsÌi}tjƒ}tjƒ}xt|jƒƒD]|}|j|ƒ}|jƒ|kr^q1n|jƒ}|jƒ}||kri||<n||}g|j    ƒ||<q1Wtj
d||fƒ|S(Ns!¿ç·þ¹«»á·ÖÇøÅäÖüÓÔØ: appID=%s,%s( RHtGetAppIDt IpyGameDataPYtIPY_DataR tGetFamilyCrossCounttGetFamilyCrossByIndextGetCrossServerIDR&tGetServerIDListRc(R`tappIDt
ipyDataMgrRWtipyDataRkR%Rl((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRšs      
cCsS||krtjdƒdStj||ƒ\}}|sOtjd|ƒdStS(Ns¿ç·þ¹«»á»¥Í¨·ÖÇøÅäÖò»±ä²»´¦ÀíRb(RHRct CheckServerIDtCheckCrossZoneCfgRhRB(tcurCrossZoneCfgDictRjtisOKterrInfo((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRd's  cCsKtjƒrGtƒ}| s2tjƒj|ƒ r6dStƒtƒndS(sÔÖØ¶ÁÅäÖÃÑéÖ¤Ð޸ĺóµÄÅäÖÃÊÇ·ñ·ûºÏ¹æ¶¨£¬²»·ûºÏµÄ»°£¬»¹ÊÇʹÓþÉÅäÖõķ¶Î§£¬²¢Óʼþ֪ͨÔËά
    ¹«»á·ÖÇøÅäÖÃͬ²½¹æÔò£º ÓÉ¿ç·þÖÐÐļÓÔØÅäÖà -> Ñé֤ͨ¹ýºó·¢¸øËùÓпç·þ -> ¿ç·þÑé֤ͨ¹ýºó·¢¸øËù¹ÜϽµÄ·ÖÇøËùÓÐÓÎÏ··þÎñÆ÷
    N(RHRfRšRrRsRqt!Sync_CenterToCross_FamilyCrossCfgtSync_CrossToServer_FamilyInfo(R`((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytOnReloadConfig5s     
cCs |tjkrt|ƒndS(N(RFtserverType_CrossR²(RyR¡((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytSync_CenterToCross_FamilyInfoBs icCswtjƒ}|jƒ}|s/tjdƒdSi|d6}|rK|gn    |jƒ}tjtj    ||tj
ƒdS(Ns4ûÓй«»á»¥Í¨ÅäÖûòûÓÐÑéÖ¤ÕýÈ·µÄ»¥Í¨·ÖÇøÅäÖò»Í¨Öª£¡R`( RrRsR_RHRcRktCrossMsgt SendToServerRFtCC2C_FamilyCrossCfgt dirType_Cross(R¡t    familyMgrR`tdataMsgt serverIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR²Js    cCsj|tjkrdS|d}|s'dStjƒtjkr@dStjƒ}|j|ƒs_dStƒdS(NR`(    RFR™RHRsRµRrRsRqR³(R¼t fromServerIDRyRjR»((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR¹Us
 c CsVtjd|||fƒtjƒ}|jƒ}|s<dStjƒjƒ}||kr^dS||}tjd||fƒxÐ|jƒD]Â}|rª||krªqŒn||kr¼qŒn||}|rðtj||ƒsäqŒn|g}    n|}    |j    |ƒ}
|
j
ƒ} i|d6| d6} |r8|| d<nt j t j| |    ƒqŒWdS(NsDSync_CrossToServer_FamilyInfo toServerID=%s,syncZoneID=%s,withCfg=%ss#    crossServerID=%s,zoneCfgDict=%sR%tzoneServerIDListR`(RHtDebugLogRrRsR_ReR RiRgRNR5R·tSendToClientServerRFtC2S_FamilyCrossInfo( t
toServerIDt
syncZoneIDtwithCfgR»R`Rkt zoneCfgDictR%tcfgServerIDListttoServerIDListRPR¿R¼((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyR³gs8   
 
   cCs tjƒ}|j|ƒ|j|dƒd|krr|jƒ}|d}|j|ƒ||krrtƒqrnd|krœ|j|dƒt|ƒndS(NR%R¿R`(    RrRsR}R€RRƒtSync_FamilyCrossInfoRatCheckCrossFamilyTransData(R¼R¾R»R‚tupdZoneServerIDList((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRs    
     cCs“|r|g}nHg}tjƒ}x3|jƒD]%}|j|ƒ}||jƒ7}q1W|sddS|rs|gng}tjtj||ƒdS(N(    RrRsRiRNR5R·RÁRFtC2S_FamilyCrossAllServerID(RÃtnewCrossSererIDtcrossServerIDListR»R%RPRÈ((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(RrtGetEventTrigMgrtGetValueRFtDef_FamilyCrossState(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRv¿scCstjƒjtjƒdkS(Ni(RrRÒRÓRFtDef_FamilyTransDataTime(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRuÃsc Cstƒs dS|sdStjƒ}tjƒjƒ}|jƒ}||krhtjd||fƒdSd}d}|jƒ}x€|j    ƒD]r\}}xY|j    ƒD]K\}    }
tj
||
ƒr¦|}|    }tjd|||    |
fƒPq¦q¦W|rPqqW|stjd|ƒdS||krHtjd|||fƒdStjd|||fƒt j t jidd    6|d
6|gƒdS( s|ÒѾ­»¥Í¨µÄÇé¿öÏ£¬ÐèÒªÔÙ¶îÍâ¼ì²é±¾·þÊÇ·ñÓÐÔÚÄ¿±ê·þÎñÆ÷»¥Í¨·ÖÇøÀï
    ÓÐÒ»ÖÖÇé¿ö£ºÓÎÏ·¼ÓÈ뻥ͨºó£¬¸Ã·þµÄËùÓй«»á±»É¾³ý£¨¿ÉÄÜÍæ¼ÒÖ÷¶¯É¾³ý¡¢¿ÉÄÜϵͳÈÏΪÐèҪɾ³ýµÄ¹«»á£©
    µ¼Ö¸ÃÓÎÏ··þÔÚ¿ç·þ·þÎñÆ÷ûÓй«»áÁË£¬ÇҸ÷þûÓÐÈκÎÍæ¼Ò¼ÓÈëÈκι«»á£¬´Ëʱ¸Ã·þÎñÆ÷¾ÍÎÞ·¨Õý³£±»»®Èëij¸ö·ÖÇø
    ËùÒÔÒÑ»¥Í¨µÄÓÎÏ··þÊܵ½¿ç·þͬ²½µÄ·ÖÇøÐÅϢʱ£¬ÐèÒª¼ì²éÊÇ·ñÒÑÔÚ·ÖÇøÀûÓеϰÐèÒªÖ÷¶¯»ã±¨ÇëÇó¼ÓÈë
    Ns1ÒѾ­Ôڸÿç·þ»¥Í¨·ÖÇøÀïÁ˲»´¦Àí! serverID=%s in %sisO±¾·þ¹«»áËùÊô¿ç·þID! serverID=%s,crossServerID=%s,zoneID=%s,serverIDRangeList=%ss#±¾·þ¹«»áδ·ÖÅ以ͨ·ÖÇø! serverID=%ssB±¾·þ¹«»á»¥Í¨·ÇÄ¿±ê¿ç·þID²»´¦Àí! serverID=%s,crossServerID=%s != %ssZ±¾·þÒÑ»¥Í¨µ«Ã»ÓÐÔڸÿç·þ»¥Í¨·ÖÇøÀֱ½ÓÇëÇó¼ÓÈë! serverID=%s,crossServerID=%s,toZoneID=%sit checkInZonettoZoneID(RvRrRsRHReR RRcR_ReRgR·tSendToCrossServerRFtS2C_FamilyData( t connServerIDR»R¡R‚RkR×R`tcIDRlR%Rp((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytCheckMainServerNoFamilyToCrossÇs>         'cCs$tƒr$tjdƒt|ƒdStjƒjtjƒsMtj    dƒdSt
j ddƒ}tjƒjtj ƒd}||kr¢tjd||fƒdStj ƒ}|jƒ}d}d}tjƒjƒ}x€|jƒD]r\}    }
xY|
jƒD]K\} } tj|| ƒrþ|    }| }tj    d||| | fƒPqþqþW|råPqåqåW|svtj    d|ƒdS|r©||kr÷tj    d    |||fƒdSnNtjƒj|ƒ} | jƒ}|tjkr÷tj    d
|||fƒdStjƒjtjƒ}|rh| rhttjƒƒ}||dkrhtj    d ||tj|ƒfƒdSntj    d|||fƒtjƒjtjttjƒƒƒi}tj ƒ}|j|ƒ}|jƒ}tj    dt|ƒƒt j!tj"i|d6|d6|d6|d6|gƒdS(Ns±¾·þ¹«»áÒѾ­¿ç·þÁË!s¸Ã·þÎñÆ÷ÔÝʱ먦·Å¼ÓÈë¿ç·þ!t FamilyCrossis-±¾·þ¹«»á»¥Í¨ËùÐ迪·þÌì²»×ã! serverDay=%s < %sisO±¾·þ¹«»áËùÊô¿ç·þID! serverID=%s,crossServerID=%s,zoneID=%s,serverIDRangeList=%ss#±¾·þ¹«»áδ·ÖÅ以ͨ·ÖÇø! serverID=%ssB±¾·þ¹«»á»¥Í¨·ÇÄ¿±ê¿ç·þID²»´¦Àí! serverID=%s,crossServerID=%s != %ssK±¾·þ¹«»á»¥Í¨Ä¿±ê¿ç·þID·ÇÁ¬½Ó״̬! serverID=%s,crossServerID=%s,connState=%sii<sE±¾·þ¹«»á»¥Í¨´«ÊäÊý¾ÝÖÐ! serverID=%s,crossServerID=%s,transDataTime=%ssN±¾·þ¹«»á¿ªÆô»¥Í¨¿ªÊ¼´«Ê乫»áÏà¹ØÊý¾Ý! serverID=%s,crossServerID=%s,toZoneID=%ss dataslen=%stsyncDatat familyIDListRR×i(#RvRHRÀRÜRrRÒRÓRFt Def_CanCrossRcR¤t
GetFuncCfgt Def_ServerDayRsR_ReR ReRgtCrossMgrtGetSSServerMgrt GetSSServert GetConnStatet ssConn_NormalRÕRLRMtChangeTimeNumToStrtSetValueR”RSRUR·RØRÙ(RÚtignoreCDt NeedServerDayt    serverDayR»R`RkR×R¡RÛRlR%RptssServert    connStatet transDataTimetcurTimeRRÞRß((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÊõsj     
       #%  5cCsßd|kr'|d}t||ƒdS|d}|d}|d}|d}tjd||||fƒ|s»tjd||fƒtjƒ}|j|ƒ}ggg}}    }
n€t|||ƒ} | d} | s%| d    } tjd
d || fƒtj    t
j it d 6|gƒdS| d    \}}}    }
||krˆtjd
d |||fƒtj    t
j it d 6|gƒdStjƒ}|j |ƒ}|jƒ}x:|D]2}|j}|j|ƒ|j|j|ƒƒq¶Wx?|    D]7}|j}|j|ƒ}|sqón|j|ƒqóWxc|
D][}|j}|j}|j}|j|ƒ}|sqq5n|j||ƒ}|j|ƒq5W|j|ƒtd|ƒtj    t
j itd 6|gƒ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__doCheckServerInZoneRHRcRrRsRJt__unpackFamilyDataRhR·RÁRFtC2S_FamilyDataRetR=RNRÈRÊRTR3RGR RtRRRdRER+R³RBRÏ(R¼R¾R×RÞRßRR»R%tfamilyDataListtmemberDataListtactionDataListt    unpackRetR°terrorMsgRPt    actionMgrR
R?RqR@Rc((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÙ9sj 
 
 
 
 
 
 
                                 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Í( RHRcRrRsRJRhRNR+R³R=RÏ(R¾R×R»R%RP((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(RURHRcRrRsRˆR•R–RRÃR—RCRÊR=RŸRJRkRHRnRRB(RÞRßRRùRœRRžt
zoneIDDictR»RõRŸR R
R?R.R%tuppackFamilyCntR…RötuppackMemberCntR†R÷tuppackActionCntR‡((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRó“sp        
     
 
 
 
 
 
cCs|d}tjd||fƒtjƒjtjdƒ|sDdStjd|ƒtjƒjtjdƒtj    |ƒdS(NR°s1ÊÕµ½»¥Í¨¹«»áÊý¾Ýͬ²½½á¹û! fromServerID=%s,isOK=%sis?»¥Í¨¹«»áÊý¾Ýͬ²½³É¹¦£¬±¾·þÕýʽ¿ªÆô¿ç·þ¹«»á»¥Í¨! fromServerID=%si(
RHRcRrRÒRéRFRÕRÔtChPlayertSyncOnlinePlayerToCross(R¼R¾R°((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRôÝs
 cCs_tjƒrtƒrdSntjƒ}x0|jƒD]"}|j|ƒ}|jtƒq5WdS(N(    RHt IsMainServerRvRrRsRiRNR*RB(R»R%RP((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pytOnMinuteìs      cCstƒs dStjƒ}tjƒ}|jƒ|_|jƒ|_t    |jƒ|_
|rnt j ||ƒn t j |ƒdS(N(RvRrRstChPyNetSendPackttagSCFamilyCrossInfoR~tZoneIDRt ServerIDListRUt    ServerCntt NetPackCommont SendFakePacktSendFackPackOnline(t    curPlayerR»t
clientPack((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyRÉûs       (0RRRˆRHRFR­R»RR    R¤RKRÐRrRãR·RšRRMRR>R`RmRÂRR<RšRdR´R¶R²R¹RBR³RÂRÏRÌRvRuRÜR=RÊRÙRòRóRôRR<RÉ(((snD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\DB\StructData\DBFamily.pyt<module>sZ                   \.P¥’ÿ¾                      )                    .D    J        J