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
3×þic@s ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZedƒ\ZZZZedƒ\ZZZZZd„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.dZ/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d„Z6d„Z7d „Z8d!„Z9d"„Z:d#„Z;d$„Z<d%„Z=d&„Z>d'„Z?d(„Z@d)„ZAd*dd+„ZCd,„ZDd-„ZEeFd.„ZGd/„ZHd*dd0„ZIddeJd*d1„ZKd2„ZLd3„ZMd4„ZNd5„ZOd6„ZPd7„ZQd8„ZRd*d*d*d9„ZSdS(:iÿÿÿÿNiicCs
|jƒS(N(t    GetValue1(t famActionData((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGetFATagFamilyID8scCs |j|ƒS(N(t    SetValue1(Rt tagFamilyID((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytSetFATagFamilyID9scCs
|jƒS(N(t    GetValue2(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGetFATotalStar:scCs&|jttjƒƒƒ|j|ƒS(N(tSetTimetintttimet    SetValue2(RtfamStar((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytSetFATotalStar;scCs
|jƒS(N(t    GetValue3(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGetFAOverState>scCs |j|ƒS(N(t    SetValue3(RtisWin((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytSetFAOverState?scCs
|jƒS(N(R(t memActionData((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGetFAMPlayerIDCscCs |j|ƒS(N(R(RtplayerID((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytSetFAMPlayerIDDscCs|jƒdS(Nid(R(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt GetFAMDefTypeEscCs|jƒdS(Nid(R(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGetFAMDefPosNumFscCs|j|d|ƒS(Nid(R (RtdefTypetposNum((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt SetFAMDefPosGscCs
|jƒS(N(R(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt GetFAMBatCntHscCs |j|ƒS(N(R(RtbatCnt((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt SetFAMBatCntIscCs
|jƒS(N(t    GetValue4(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt GetFAMDWinCntJscCs |j|ƒS(N(t    SetValue4(RtdWinCnt((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt SetFAMDWinCntKscCs
|jƒS(N(t    GetValue5(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt
GetFAMStarLscCs |j|ƒS(N(t    SetValue5(RtmemStar((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt
SetFAMStarMscCs
|jƒS(N(t    GetValue6(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt GetFAMKilledNscCs |j|ƒS(N(t    SetValue6(Rt killedValue((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt SetFAMKilledOstTreasurecCstjƒjtjƒS(N(t    DBDataMgrtGetEventTrigMgrtGetValuet ShareDefinetDef_AtkDefBatState(((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGetAtkDefBatStateTscCstjƒjtj|ƒS(N(R/R0tSetValueR2R3(tstate((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytSetAtkDefBatStateUscCsqtjƒ}|rN|j|tjƒ|j|tjƒ|j|tjƒn|jtjtjtjgƒdS(N(R/tGetFamilyActionMgrtDelFamilyActionR2tDef_ActionType_AtkDefBatFamtDef_ActionType_AtkDefBatMemtDef_ActionType_AtkDefBatRectDelSysFamilyAction(tfamilyIDt    actionMgr((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR=Ws c    Cs?|jƒ}tjƒ}|j|tjƒ}|jƒ}|sCdSt|ƒ}|sYdStj|ƒrƒt    j
dƒt |ƒdS|j|tjƒ}|jƒ}|s®dSt|ƒ|krÄdSi|j ƒd6|j ƒd6|jƒd6|jƒd6t|ƒd6}|jƒji|d6ƒt|dgd    tƒdS(
Ns;½âÉ¢¹«»áʱ¹¥·ÀÕ½¶ÔÊÖÊÇϵͳ¹«»áͬ²½É¾³ýϵͳ¹«»áÏà¹Ø»î¶¯Êý¾Ý!t
FamilyNametServerIDtEmblemIDt
EmblemWordt    TotalStart TagFamilyBaset    memIDListt    byDismiss(tGetIDR/R8tGetFamilyActionR2R:t GetOneActionRt IsSysFamilyIDt    GameWorldtDebugLogR=tGetNamet GetServerIDt GetEmblemIDt GetEmblemWordRt GetUserDicttupdatetSyncFamilyAtkDefBatInfotTrue(    tfamilyR>R?t    curActiont
actionDataRt    tagActiont tagActionDatat tagFamilyBase((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt OnDelFamilyas0     
 7cCst||ƒdS(N(t__doCoverDefPos(RVt leavePlayerID((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnFamilyMemberLeaves cCst|ƒdS(N(t__syncByLoginOrEnter(t crossPlayer((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnCrossPlayerEnterFamily…s
cCst|ƒdS(N(R`(Ra((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnCrossPlayerLogin‰s
cCsb|jƒ}|sdSt|d|ƒ}|s2dStj||tjƒtj||tjƒdS(NtsyncToCrossPlayer(t GetFamilyIDRTt PlayerFamilytSendFamilyActionInfoR2R<(RaR>R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR`s cCs0tjƒrtƒntjƒr,tƒndS(N(RLt IsCrossServert__doCheckAtkDefBatStatet IsMainServer(((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt OnServerStart˜s
 
 
cCstjƒrtƒndS(N(RLRhRi(((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt
OnDayCrossŸs 
cCs tƒdS(N(Ri(((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnDay¤scCswtjƒr!tjƒjƒ}nBtjƒr_tjƒrJtjdƒdSt    t
j
ƒƒ}ndStj |ƒ}|j ƒd}t ƒ}d}tjddƒ}|s­dSx3t|dƒD]"\}}||kr½|}Pq½q½W||kr
tjd||fƒdStjd|||fƒt|ƒ|tkrDtƒn/|tkr]t|ƒn|tkrstƒndS(Ns!±¾·þ¹«»áÒÑ¿ç·þ²»ÔÙ´¦Àí¹«»á¹¥·ÀÕ½!iitFmAtkDefBatSets1¹¥·ÀÕ½µ±Ç°ÖÜÆÚ״̬²»±ä! curState=%s,curWeekday=%ss9¹¥·ÀÕ½ÖÜÆÚ״̬±ä¸ü! curState=%s,updState=%s,curWeekday=%s(RLRhtCrossMgrtGetSSServerMgrt GetCrossTimeRjtDBFamilyt IsFamilyCrossRMR    R
tChangeTimeNumToDatetimetweekdayR4t IpyGameDataPYtGetFuncEvalCfgt    enumeratetLogR7t BatState_Restt__doBatState_ResttBatState_Preparet__doBatState_PreparetBatState_Fightt__doBatState_Fight(tcurTimet curDatetimet
curWeekdaytcurStatetupdStatetweekdayStateListR6t weekdayList((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyRi¨s>          
 
 
c- Cs”|jƒd}tjddƒ}tjddƒ}tjddƒ}d\}}|ryt|ƒdkry|\}}ng}xOtdd|ƒD]:}|tjd| ƒ}    |    jƒd}
|j|
ƒq“Wg} tj    ƒ} xHt| j
ƒƒD]4} | j | ƒ}| j|j ƒ|j ƒgƒqöWtjd|||||| fƒtƒ}tdƒi}tjƒ}tjƒ}x |jƒD]ý}|j|ƒ}|jƒ}tjd||fƒg}xõt|ƒD]ç}|j|ƒ}|jƒ}|jƒ}|j|tjƒ|j|tjƒ|j|tjƒ||krvtjd    |||fƒt|ƒqÚnd}t j!|ƒ}x*|D]"}
||j"t#|
ƒdƒ7}q’W||krñtjd
||||fƒt|ƒqÚng}d}x”t$|ƒD]†}|j|ƒ} | j%ƒ}!t&j'|!ƒ}"t&j(|"ƒ}#|#s^| j)ƒ}#n||#7}t*j+|"tj,ƒ}$|j|$|!gƒq
W|j-d t.ƒ|||<|j||gƒqÚW|j-d t.ƒtjd |t|ƒ|fƒt|ƒddkrVtj/|ƒ}%|%r6|jd|%gƒntjd t|ƒ|%fƒnx3tt|ƒƒdd|…D]}&g||&|&|!D]}'|'d^qŽ}(tjd||&|(fƒt0j1|(ƒxºt|(ƒdkr‡|(d})|(d}*|(d}(|j"|)gƒ}+|j"|*gƒ},tjd||)|*t|+ƒt|,ƒfƒt2|)|*|+| |ƒt2|*|)|,| |ƒt|)ƒqÎWqvWqWdS(süÇл»µ½±¸Õ½
    1. ±¾·þÏȱ¸Õ½ -> ¹«»á¼ÓÈë¿ç·þ -> ¿ç·þ¹ýÌ챸ս£º ±¾·þÒѾ­·ÖÅäµÄ»á±»¿ç·þÖØÐ·ÖÅ串¸Ç£¬¿É½ÓÊÜÖ±½ÓÓÿç·þ·ÖÅ串¸Ç
    2. ¿ç·þÏȱ¸Õ½ -> ±¾·þ¹ýÌ챸ս -> ¹«»á¼ÓÈë¿ç·þ: ÓÉÓÚ¿ç·þÒѾ­Ïȱ¸Õ½ÁË£¬Ö®ºó¹«»á²Å¼ÓÈëµÄ¿ç·þ£¬ËùÒԻᱣÁô±¾·þ×ÔÉíµÄ·ÖÅä½á¹û
    itFmAtkDefBatPrepareiiitdayss†¹«»á¹¥·ÀÕ½½øÈ뱸ս¿ªÊ¼´¦Àí¹«»áÆ¥Åä! needMemCnt=%s,needContribInfo=%s,curWeekday=%s,needWeekDayList=%s,matchGroupSplit=%s,memCntList=%ss1-- ´¦Àí¹«»á·ÖÇø¹¥·ÀսƥÅä: zoneID=%s,familyCnt=%ss:    ¹«»áÈËÊý²»×ãÎÞ·¨²ÎÓë¹¥·ÀÕ½! familyID=%s,memCnt=%s < %ssC    ¹«»á¹±Ïײ»×ãÎÞ·¨²ÎÓë¹¥·ÀÕ½! familyID=%s,contribTotal=%s < %s,%streversesB·ÖÇø¹¥·ÀÕ½Âú×ãÌõ¼þ¹«»áÕ½Á¦ÅÅÐòÁбí: zoneID=%s,familySortList=%s,%ss3    ·ÇżÊý¸ö¹«»á²¹³äϵͳ¹«»á: cnt=%s,sysFamilyID=%sNs7¹¥·ÀսƥÅä·Ö¸î: zoneID=%s,startIndex=%s,familyIDList=%ssM    ¹¥·ÀÕ½¹«»áÆ¥Åä: zoneID=%s,familyIDA=%s,familyIDB=%s,memCntA=%s,memCntB=%s(ii(3RuRvt
GetFuncCfgRwtlentrangetdatetimet    timedeltatappendtIPY_DatatGetFamilyAtkDefBatDefenderCountt!GetFamilyAtkDefBatDefenderByIndextGetDefenderTypetGetDefenderCntRLRyt__getPosRobotIDDictR=R/t GetFamilyMgrR8tGetZoneIDListThisServertGetZoneFamilyMgrtGetCounttGetAtRHR9R2R:R;R<RTRftGetFamilyWeekdayContribDicttgettstrtxranget GetPlayerIDtPlayerViewCachet FindViewCachetGetViewCacheFightPowerHtGetFightPowerTotalt
TurnAttacktGetCacheLineupFightPowertBatPreset_FamilyAtkDefBatDeftsortRUtGetSysFamilyIDtrandomtshufflet__initFamilyAtkDefBatData(-RR‚t
needMemCnttneedContribInfotmatchGroupSplittbefDaystneedContribTotaltneedWeekDayListtbefDayt befDatetimeRut
memCntListt
ipyDataMgrtindextipyDatat    robotDictt familyMemDictt familyManagerR?tzoneIDtzoneMgrt    familyCnttfamilySortListtiRVR>tmemCntt contribTotalt contribDictt memSortListtfamilyFightPowerHtmemIndextmemberRt    viewCachetfightPowerHighestt fightPowerDeft sysFamilyIDt
startIndext
familyInfot familyIDListt    familyIDAt    familyIDBt memSortListAt memSortListB((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR}Ðs¬  #        
 
   
 
 
  &( 
 
 
    #cCs)tƒ}|tkr-tj|d|ƒdStjƒ}|j|ƒ}|sRdS|j|jƒƒ}t    j
|ƒ}|sŸ|s–tj|dƒdS|}n||krÛ|j|ƒ}|sÛtj|d|ƒdSntj ƒ}    ||g}
xo||gD]a} |    j | t    j ƒ} | jƒ} | s3qnt| ƒ}|r||
kr|
j|ƒqqWxQ|
D]I} |    j| t    j ƒ|    j| t    jƒ|    j| t    jƒt| ƒqlWg}tjƒ}xHt|jƒƒD]4}|j|ƒ}|j|jƒ|jƒgƒqÞWtƒ}xå||gD]×} g}| |krÕ|j| ƒ}xlt|jƒƒD]X}|j|ƒ}|j ƒ}t!j"|ƒ}t#j$|t    j%ƒ}|j||gƒqfW|j&dt'ƒn| |krç|n|}t(| ||||ƒq,Wt|ƒtj|d|ƒdS(Ns ·Ç±¸Õ½ÆÚÎÞ·¨Ö±½ÓÆ¥Åä:curState=%ssϵͳ¹«»áID²»´æÔÚ!sÄ¿±ê¹«»á²»´æÔÚ:%sR‰s¹¥·ÀÕ½Ö¸¶¨Æ¥Åä³É¹¦! %s()R4R|RLt DebugAnswerR/R–t
FindFamilytGetZoneIDInThisServerROR2R¨R8RIR:RJRRR9R;R<RTRvRRŒR‘R’R“R”R•RžR™RšRŸR R¡R¤R¥R¦R§RUR«(Rat curFamilyIDRRƒRºt    curFamilyR»RÊt    tagFamilyR?tresetFamilyIDListR>RWRtsrcTagFamilyIDR´RµR¶R·R¸RÃRVRÅRÆRRÇRÉttagFID((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGMFamilyADB_Match=sr                 #      
cCsytjtjƒ}i}xZ|D]R\}}tjd|ƒ}|sIqn|jƒ}|jƒ}||||f<qW|S(NtRobot(R tGetRobotFightPowerSortListtChConfigtRobotTempNum_AtkDefBatRvtGetIpyGameDatat GetTempValue1t GetTempValue2(trobotFPSortListR¸t_trobotIDt robotIpyDataRR((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR•†s  cCsztƒ}|tkrdS|jƒ}d}g}tjƒ}|j|tjƒ}t    j
d|j ƒƒx“t |j ƒƒD]}|j |ƒ}    t|    ƒ}
|
|kr²|    }q|t|    ƒs|tj|
ƒ} tj| tjƒ} |j| |
|    gƒq|q|W|s t    j
d||fƒdSt|ƒ} t|ƒ}|j|ƒd}| skt    j
d||fƒnãt    j
d||| |fƒd}|rØ|jdtƒ|dd}t|ƒ}t    j
d||fƒn]tƒ}|j| |fdƒ}t    j
d    || |fƒ|r5|jƒ}t||ƒn|rNt|| |ƒn|r]|gng}t||d
|ƒdS( NsmemAction.Count()=%ss<¹¥·ÀÕ½·Ç²ÎÓë³ÉÔ±Í˳ö²»´¦Àí²¹Î»! familyID=%s,leavePlayerID=%sis:¹¥·ÀÕ½·Ç·ÀÊØ³ÉÔ±Í˳ö²»Óò¹Î»! familyID=%s,leavePlayerID=%ssO¹¥·ÀÕ½·ÀÊØ³ÉÔ±Í˳öʱ×Ô¶¯²¹Î»! familyID=%s,leavePlayerID=%s,defType=%s,posNum=%sR‰iÿÿÿÿs!×Ô¶¯²¹Î»Íæ¼Ò! coverPlayerID=%s,%ss5×Ô¶¯²¹Î»»úÆ÷ÈË! coverPlayerID=%s,defType=%s,posNum=%stdelMemID( R4R|RHtNoneR/R8RIR2R;RLRMtCountRŒtAtRRR R¡R¤R¥R¦RRtDelActionDataByValue1R§RUR•Rœt    AddActionRRRT(RVR^RƒR>tcoverActionDatat freeMemListR?t    memActionRÅt mActionDataRRÇRÉRRt coverPlayerIDR¸t syncMemIDList((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR]’s\                           cCsctjƒ}|j|tjƒ}|jtƒ}t||ƒtj    d||t
|ƒ|fƒ|j|tj ƒ}x›|D]“\}    }
x„t dd|
ƒD]o} |r¾|j dƒd} n|j|    | fdƒ} | sâqœn|jƒ} t| | ƒt| |    | ƒqœWq|WxI|D]A\}} d\}    } |jƒ} t| | ƒt| |    | ƒqWdS(NsG        ¹«»á³õʼ»¯: familyID=%s,tagFamilyID=%s,memCnt=%s,memSortList=%sii(ii(R/R8RIR2R:RJRURRLRyR‹R;RŒtpopRœRìRR(R>RRÃR´R¸R?RWRXRïRRÀRRRRä((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR«Ís,  #     cCsDtjƒj|ƒ}tjƒjƒ}tj||||dƒdS(Ns6GameLogic_FamilyAtkDefBat.__OnFamilyAtkDefBatChangeMem(RLtGetPlayerManagertGetPlayerByIndexR/R–tGetCurCrossServerIDt CrossPlayertPyPackForwarding(R¶t
clientDatattickt    curPlayert crossServerID((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnFamilyAtkDefBatChangeMemõsic Css|jƒ}|jƒ}|j}|j}| s8| r<dStƒ}    |    tkritjd|    |ƒdStj    ƒj
|ƒ}
|
sˆdS|
j |ƒ} | j ƒ} t jddƒ} | | krßtjd| | f|ƒdStjƒ}|j|tjƒ}|jƒ}| s t|ƒ r8tjd||ƒdS|j|tjƒ}|j|ƒ}|s€tjd||f|ƒdS|j|ƒ}|s³tjd||f|ƒdSt|ƒ}t|ƒ}t|ƒ}t|ƒ}t|||ƒt|||ƒt|ƒ}t|ƒ}t|ƒ}t|ƒ}tjd|||||||f|ƒt|||gƒtS(    Ns%¹¥·ÀÕ½·Ç±¸Õ½×´Ì¬ÎÞ·¨µ÷Õû! curState=%sR‡is4¹«»áְλȨÏÞ²»×ãÎÞ·¨µ÷Õû¹¥·ÀÕ½·ÀÊØ³ÉÔ±! fmLV=%s < %ss'¹¥·ÀÕ½¹«»áûÓвÎÕ½ÎÞ·¨µ÷Õû! familyID=%ss5¹¥·ÀÕ½³ÉԱûÓвÎÕ½ÎÞ·¨µ÷Õû! familyID=%s,playerIDA=%s,s5¹¥·ÀÕ½³ÉԱûÓвÎÕ½ÎÞ·¨µ÷Õû! familyID=%s,playerIDB=%s,sS¹¥·ÀÕ½µ÷Õû³ÉÔ±! familyID=%s,playerIDA=%s,defTypeA=%s-%s,playerIDB=%s,defTypeB=%s-%s(RŸRet    PlayerIDAt    PlayerIDBR4R|RLRMR/R–RÓt
FindMembertGetFmLVRvRŠR8RIR2R:RJRR;tGetActionDataByValue1RRRRTRU(RaRùRút fromServerIDt    reqDataExRR>t    playerIDAt    playerIDBRƒRVt    curMembertfmLVtneedFmLVR?RWRRïtmemActionDataAtmemActionDataBtdefTypeAtposNumAtdefTypeBtposNumB((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt__OnFamilyAtkDefBatChangeMemûs`                                c Cs,tjdƒg}tjƒ}tjƒ}xú|jƒD]ì}|j|ƒ}|jƒ}xÈt|ƒD]º}|j    |ƒ}|j
ƒ}||kr™qfn|j |ƒ}|s´qfn|j |t jƒ}    |    jƒ}
|
sáqfnt|
ƒ} |j|ƒ| r|j| ƒnt|dgƒqfWq8WdS(spÇл»µ½¼¤Õ½
    ¹«»á¼ÓÈë¿ç·þÁÙ½çÌ죬ÎÞÂÛ±¾·þ»ò¿ç·þË­ÏÈ¿ªÊ¼¼¤Õ½¶¼²»Ó°Ï죬ÒòΪ·ÖÅä½á¹ûÒѹ̶¨£¬¸÷×Ô´ò¸÷×Եļ´¿É
    s¹«»á¹¥·ÀÕ½½øÈ뿪ʼ¼¤Õ½!RFN(RLRyR/R–R8R—R˜R™RŒRšRHRÓRIR2R:RJRRRT( tsyncFamilyIDListRºR?R»R¼R½R¿RVR>RWRR((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR5s2         c
Csitjdƒtjƒ}tjƒ}x=|jƒD]/}|j|ƒ}|jƒ}tjd||fƒxôt|ƒD]æ}|j    |ƒ}|j
ƒ}|j |ƒ}|sÄtjd|ƒqwn|j |t jƒ}|jƒ}    |    sñqwnt|    ƒ}
|
s*tjd|ƒt|dgƒqwnt|    ƒ} | ttgkretjd|| fƒqwn|j |
t jƒ} | jƒ} t}t}t j|
ƒ}|s¶|j |
ƒnd}|rât}tjd||
fƒn8| sð| rt}t}tjd||
fƒn| tkrEt}tjd    ||
| fƒnÕ| tkrtt}tjd
||
| fƒn¦t|    ƒ}|    jƒ}t| ƒ}| jƒ}|| |g|| |
gg}|jd tƒ|d d }||krôtnt}tjd||
|||fƒt||||    ||ƒt||
|| | |ƒt|dgƒqwWq2WdS(Ns#¹«»á¹¥·ÀÕ½½øÈëÐÝÕ½¿ªÊ¼´¦Àí½±Àø½áËã!s1-- ´¦Àí¹«»á·ÖÇø¹¥·ÀÕ½½áËã: zoneID=%s,familyCnt=%ss#¹¥·ÀÕ½¹«»áÒѽâÉ¢ÎÞ½±Àø! familyID=%ss#¹¥·ÀÕ½¹«»áδ²ÎÕ½ÎÞ½±Àø! familyID=%sRFs.¹¥·ÀÕ½¹«»áÒѽáËã½±Àø! familyID=%s,overState=%ss2¶Ôսϵͳ¹«»áÖ±½ÓËã»ñʤ! familyID=%s,tagFamilyID=%ss2¶ÔÊÖ¹«»áÒѾ­½âÉ¢Ëã»ñʤ! familyID=%s,tagFamilyID=%ss1Ìáǰ»ñʤ! familyID=%s,tagFamilyID=%s,overState=%ss1Ìáǰʧ°Ü! familyID=%s,tagFamilyID=%s,overState=%sR‰iiÿÿÿÿsN×ÜÐÇÊý¸ßµÄ»ñʤ! familyID=%s,tagFamilyID=%s,winFamilyID=%s,isWin=%s,sortList=%s(RLRyR/R–R8R—R˜R™RŒRšRHRÓRIR2R:RJRRTRt OverState_WintOverState_LosetFalseRURKRètOverState_WinAdvancetOverState_LoseAdvanceRtGetTimeR§t$__giveFamilyAtkDefBatMemWinLoseAward(RºR?R»R¼R½R¿RVR>RWRRt    overStateRYttagFamActionDataRt checkBatCntt isSysFamilyIDR×t curTotalStart curStarTimet tagTotalStart tagStarTimetsortListt winFamilyID((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR{Zsz                    c    CsÍ|s
dSt|ƒttgkr&dSt||r8tntƒ|sIdS|rUdnd}tjƒ}g}g}    g}
|j|tjƒ} xt    | j
ƒƒD]} | j | ƒ} t | ƒ}|rèt | ƒ rè|    j|ƒq¡n|j|ƒ}|s|
j|ƒq¡n|jƒ}d}|rFtj|ƒ}|sFq¡qFn|j|ƒ|rntjddƒ}ntjddƒ}g}tj||||d|ƒq¡Wtjd|||||    |
fƒdS(    NtFamilyAtkDefBatWintFamilyAtkDefBatLoseitFmAtkDefBatAwardiit
toServerIDsp    ½áËã¹¥·ÀÕ½¹«»á½±Àø! familyID=%s,isWin=%s,checkBatCnt=%s,awardMemIDList=%s,unBatMemIDList=%s,noInMemIDList=%s(RRRRRLRhRIR2R;RŒRéRêRRRRROtGetMainServerIDRvRwt
PlayerMailt SendMailByKeyRy(R?R>RVRRRt mailTypeKeyt isCrossServertawardMemIDListtunBatMemIDListt noInMemIDListRïRÅRRRÆtserverIDR&titemListt    paramList((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR¨sL               cCs/tjƒjƒ}tj||||dƒdS(Ns8GameLogic_FamilyAtkDefBat.__OnGetFamilyAtkDefBatTreasure(R/R–RöR÷Rø(RûRùRúRü((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnGetFamilyAtkDefBatTreasure×sc( Cs|jƒ}|jƒ}|j}|s+dStƒ}|tkrXtjd||ƒdStjƒ}    |    j    |t
j ƒ}
|
j ƒ} | s™t | ƒ r­tjd|ƒdSt| ƒ} d} | tkràtjddƒ} n!| tkrtjddƒ} n| s%tjd|| f|ƒdSd„| Dƒ}|    j    |t
jƒ}|jƒ}tjddiƒ}tjddƒ}tjdd    ƒ}|}||krÏ|ttj||t|ƒƒ|ƒ7}n|d
ksç||krtjd |||f|ƒdStjd ||||f|ƒi}d}x×t|ƒD]É}|j|ƒ}|t|ƒkrq|}n|jƒj t!d
d
gƒ\}}|s¡qAn||krËtjd ||f|ƒdS||krA||}|j"ƒ}|j |d
ƒd||<qAqAW|s,tjd||ƒdS|jƒj t!d
d
gƒ\}}d
rz|rztjd||f|ƒdSg}xã| D]Û}|j#ƒ} |j"ƒ}|j$ƒ}!|j%ƒ}"|j&ƒ}#|dkr.|j |d
ƒ}$|j |d
ƒ}%|%|$kr.tjd| ||%|$f|ƒq‡q.n|  s‡|" s‡|# rIq‡n|j'|!| |"|#gƒq‡W|spdStjd||ƒtj(|ƒ}&|&\} }"}#tjd|| |"|#f|ƒ|jƒj)i|| gt!6ƒt*||gƒ|"|#gg}'t+j,||'ddƒdS(Ns)¹¥·ÀÕ½·ÇÐÝս״̬ÎÞ·¨´ò¿ª±¦¿â! curState=%ss¹¥·ÀÕ½¹«»áδ²ÎÓëÎÞ·¨´ò¿ª±¦¿â!tFamilyAtkDefBatTreasureiis.¹¥·ÀÕ½±¦¿âʤ¸º¿âÒì³£! familyID=%s,overState=%scSsi|]}||jƒ“qS((t
GetAwardID(t.0taIpyData((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pys
<dictcomp>ùs    tFmAtkDefBatTreasureiis:¿ªÆô¹¥·ÀÕ½±¦¿â¸ñ×ÓÒì³£! gridNum=%s,gridMax=%s,batMemCnt=%ssE¿ªÆô¹¥·ÀÕ½±¦¿â! gridNum=%s,gridMax=%s,batMemCnt=%s,colorSetCntDict=%ss2¸Ã¹¥·ÀÕ½±¦¿â¸ñ×ÓÒѱ»¿ªÆô¹ý! familyID=%s,gridNum=%ss/·Ç¸Ã¹«»á¹¥·ÀÕ½²ÎÈü³ÉÔ±ÎÞ·¨´ò¿ª±¦¿â! familyID=%ss+ÒѾ­¿ª¹ý¹¥·ÀÕ½±¦¿âÁË! gridNum=%s,awardID=%ssJ¸Ã¹¥·ÀÕ½±¦¿â¸ñ×ÓÆ·ÖÊÒÑ´ï²ú³öÉÏÏÞ! awardID=%s,awardColor=%s,outCnt=%s >= %ss    weightList=%ss0    gridNum=%s,awardID=%s,itemID=%s,itemCount=%st    eventNametAtkDefBatTreasure(-RŸRetDataExR4RzRLRMR/R8RIR2R:RJRRRèRRvtGetIpyGameDataListRR;RéRwRŠR    tmathtceiltfloatRŒRêRRRRœtFAMKey_Treasuret GetAwardColorR4t GetItemWeightt    GetItemIDt GetItemCountRtGetResultByWeightListRSRTR÷tGivePlayerResources((RaRùRúRRRR>tgridNumRƒR?RWRRtawardIpyDataListt awardIDDictRït    batMemCnttcolorSetCntDicttdefaultGridMaxtgridAddtgridMaxtcolorOutCntDicttcurMemActionDataRÅRtgNumtaIDR6t
awardColortcurGNumtcurAIDt
weightListtawardIDt
itemWeighttitemIDt    itemCounttsetCnttoutCntt awardItemInfot awardItemList((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt__OnGetFamilyAtkDefBatTreasureÝs®                  .     $  
 !$                cCs©|s
dStjƒ}tjƒ}|j|tjƒ}|jtƒ}|sPdSt|ƒ}    |g}
g} |r| j    |ƒn|    r—|
j    |    ƒng} xd|
D]\} tj
| ƒrÂd}nM|j | ƒ}| | ksä| r| | kr| j    | ƒn| |kr|    n|}|s$q¤n|j|tjƒ}|jƒ}|sQq¤n|j ƒjdiƒ}tjƒ}| |_d|_|jddƒ|_|jddƒ|_|jddƒ|_|jd    dƒ|_|jd
dƒ|_| j    |ƒq¤n|sq¤n|j| tjƒ}|jƒ}|s<q¤ntjƒ}| |_t|ƒ|_t|ƒ|_|r´|jƒ|_|jƒ|_|jƒ|_|jƒ|_n| j    |ƒ|gkrÓq¤ng}|j| tjƒ}xôt |j!ƒƒD]à}|j"|ƒ}t#|ƒ}|r:||kr:qnt$j%|ƒ}tj&ƒ}||_'|rD|j(ƒ|_)t*|j)ƒ|_+|j,ƒ|_-|j.ƒ|_/|j0ƒ|_1|j2ƒ|_3|j4ƒ|_5|j6ƒ|_7|j8ƒ|_9|j:ƒ|_;|jƒ|_t<j=|tj>ƒ}|t?j@|_A|t?j@|_BntC|ƒ|_DtE|ƒ|_FtG|ƒ|_HtI|ƒ|_JtK|ƒ|_LtM|ƒ|_N|j ƒjtOddgƒ\}}||_P||_Q|j    |ƒqW||_Rt*|jRƒ|_Sq¤W| sdStjTƒ}tUƒ|_V| |_Wt*|jWƒ|_X||_Y|rctZj[||ƒnBx?|
D]7} | | ksjtj
| ƒr‘qjntZj\| |ƒqjW|    S( sïͬ²½¹¥·ÀÕ½ÐÅÏ¢
    @param byFamilyID: Òý·¢Í¬²½µÄ¹«»áID
    @param memIDList: ÐèҪͬ²½Êý¾ÝµÄÕ½¶·³ÉÔ±IDÁÐ±í£¬¿É°üº¬¶ÔÊÖ³ÉÔ±£¬None-È«²¿£»[]-²»Í¬²½£»[ID, ...] - Ö¸¶¨Í¬²½³ÉÔ±ÐÅÏ¢
    @param syncToCrossPlayer: Ö¸¶¨Ö»Í¬²½¸øÄ³¸öÍæ¼Ò£¬ÈçµÇ¼ʱ
    NREiR@tRAiRBRCRD(]R/R–R8RIR2R:RJRURRRKRèRÓRRRœtChPyNetSendPackttagSCFamilyAtkDefBatFamilytFamilyIDt    IsDismissR@RARBRCRDRRt    OverStateRNRORPRQR;RŒRéRêRR R¡ttagSCFamilyAtkDefBatMemtPlayerIDt GetPlayerNametNameR‹tNameLentGetLVtLVtGetJobtJobt
GetRealmLVtRealmLVtGetFacetFacet
GetFacePictFacePict GetModelMarkt    ModelMarktGetEquipShowSwitchtEquipShowSwitcht
GetTitleIDtTitleIDR¤R¥R¦RÞtDef_PerPointValuet
FightPowert FightPowerExRtDefTypeRtPosNumRtBatCntR tDWinCntR%tStarR*t KilledStateR?tGridNumtAwardIDt
BatMemListt BatMemCountttagSCFamilyAtkDefBatInfoR4tBatStatet BatFamilyListt FamilyCounttDelMemIDR÷t SendFakePacktSendFakePackByFamily(t
byFamilyIDRFRdRGRçRºR?RWRXRRÍt dismissIDListt batFamilyListR>RVRÚRYRZR[t    batFamilyt
batMemListRïRÅt mAactionDataRRÇtbatMemRÉRFRVt
clientPack((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyRTBsÜ                                      $                       c
Csc|jƒsdS|d}tj|ƒ}|ji|d6|d6ƒtjƒjƒ}    t||    fS(NitdefBaseAttrPert
fightPower(ReR¤tGetPlayerLineupFightPowerRSR/R–RöRU(
RûtmapIDt
funcLineIDttagTypettagIDt    valueListt    reqExDictR–R—Rü((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnTurnFightRequestÔs 
c    Cs¤|jƒ}| s||kr#dS|d}t|ƒdkrI|dnd}    tƒ}
|
tkr|tjd|
|ƒdS|jƒ} | s¢tjd|ƒdSt| ||ƒ} | s¾dS| \} }t|ƒ}t    j
ddƒ}||krtjd||f|ƒdSt | ƒ}t|||ƒ}|s:dS|\}}t |ƒ}|sytjd|||f|ƒdSt    j d    |ƒ}|s•dS|jƒ}t|ƒ}|    r!xQt|ƒD]C\}}|td|ƒ@sÀtjd
||||f|ƒdSqÀWt|||||ƒdS||krTtjd |||||f|ƒdS|j|ƒ}|td|ƒ@r tjd ||||||f|ƒdStS( Niis%¹¥·ÀÕ½·Ç¼¤Õ½×´Ì¬ÎÞ·¨Õ½¶·! curState=%ss¹¥·ÀÕ½Íæ¼ÒÎÞ¹«»áRnis*¹¥·ÀÕ½Íæ¼ÒÌôÕ½´ÎÊýÉÏÏÞ! curBatCnt=%s >= %ss<¹¥·ÀÕ½ÎÞ·¨¹¥»÷·Ç·ÀÊØ³ÉÔ±! tagFamilyID=%s,tagID=%s,defType=%stFamilyAtkDefBatDefenders^¹¥·ÀÕ½·ÀÊØ³ÉÔ±ÊôÐÔ°Ù·Ö±Èδ±»»÷°ÜÎÞ·¨É¨µ´! tagFamilyID=%s,tagID=%s,defType=%s,defBaseAttrPer=%ss^¹¥·ÀÕ½·ÀÊØ³ÉÔ±ÊôÐ԰ٷֱȲ»´æÔÚ! tagFamilyID=%s,tagID=%s,defType=%s,defBaseAttrPer=%s not in %ssu¹¥·ÀÕ½²ÎÕ½³ÉÔ±ÊôÐÔ°Ù·Ö±ÈÒѱ»»÷°Ü! tagFamilyID=%s,tagID=%s,defType=%s,defBaseAttrPer=%s,attrPerIndex=%s,killedState=%s(RŸR‹R4R~RLRMRet__checkFamilyMemCanBatRRvRŠRRRàtGetDefBaseAttrPerListR*Rxtpowt__onAtkDefBatSweepR¶RU(RaR™RšR›RœRRžRR–tisSweepRƒR>tcurFMRetRXRt    curBatCntt    canBatCntRttagFMRetRättagMemActionDataRtdefTypeIpyDatatDefBaseAttrPerListt killedStatet attrPerIndex((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnTurnFightRequestCrossãsl 
"                           c
Cs tj|ƒsEtjƒj|ƒ}|sEtjd||ƒdSntjƒ}|j|tj    ƒ}|j
ƒ}| s†t |ƒ ržtjd||ƒdSt |ƒ}|rÎtjd||f|ƒdS|j|tj ƒ}|j|ƒ}    |    stjd||f|ƒdS||    fS(Ns¹¥·ÀÕ½¹«»á²»´æÔÚ! familyID=%ss¹¥·ÀÕ½¹«»áûÓвÎÕ½! familyID=%ss2¹¥·ÀÕ½¹«»áÒѽáËã²»¿ÉÕ½¶·! familyID=%s,overState=%ss1¹¥·ÀÕ½³ÉԱûÓнøÈë²ÎÕ½Ãûµ¥! familyID=%s,memID=%s,(R2RKR/R–RÓRLRMR8RIR:RJRRR;R(
R>tmemIDRRVR?RWRXRRïR((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR¡+s*   c +
Cs½|s
dS|jƒ} |jƒ} |d} |tjk}tjd||| f| ƒtƒ}|tkr…tjd|| ƒdSt| | | ƒ}|s¡dS|\}}t    |ƒ}t
j ddƒ}||krÛdSt |ƒ}t||| ƒ}|sdS|\}}t |ƒ}t
jd|ƒ}|s7dS|jƒ}|jƒ}| |kr_dS|j| ƒ}t|ƒ}|td|ƒ@r×tjd||||f| ƒt| |gd|ƒtj|d    ƒdS|d
}t||ƒd} |rÓt
jd d
ƒ}!t|ƒ|kr(||nd} t|ƒ}"|"| }#t||#ƒt|ƒ}$|$| }%t||%ƒ|td|ƒB}&t||&ƒtjd || |#|%|&f| ƒt|||t|ƒƒnOt
jd dƒ}!t |ƒ}'|'d
}(t!||(ƒtjd ||(f| ƒ|
j"i|d6| d6t#j$|!ƒt#j%6ƒtj&||!dddt'ƒt| | |gƒ|j(ddƒ})d
}*t)| || |)|||*| | ƒ    t*S(Nis7½áËã¹¥·ÀÕ½Õ½¶·½áËã! isWin=%s,tagID=%s,defBaseAttrPer=%ss%¹¥·ÀÕ½·Ç¼¤Õ½×´Ì¬ÎÞ·¨½áËã! curState=%sRniR sf¹¥·ÀÕ½½áËãÕ½¶·Ê±²ÎÕ½³ÉÔ±ÊôÐÔ°Ù·Ö±ÈÒѱ»ËûÈË»÷°Ü! tagFamilyID=%s,tagID=%s,attrPerIndex=%s,killedState=%sRdtTagPlayerAlreadyKillediR%sK»ñʤ: updBatCnt=%s,addStar=%s,updFamStar=%s,updMemStar=%s,updKilledState=%ss#ʧ°Ü: updBatCnt=%s,updTagDWinCnt=%sRœtaddStarR8t    AtkDefBatt isNotifyAwardR—(+RŸReRÞt Def_FactionARLRMR4R~R¡RRvRŠRRRàtGetDefStarListR¢R¶R*R£RTR÷t
NotifyCodeRRwR‹RR R%R(R-t__checkAdvanceWinR R#RStFBCommontGetJsonItemListt Over_itemInfoRERRœt__addAtkDefBatRecRU(+RatguidR™RšR›RœRRžt
winFactiontstatMsgt    awardDictRR>R–RRƒR¦RRR§R¨RR©RRªRR«t DefStarListR¬R®R­t    updBatCntR²R]R t
updFamStarR't
updMemStartupdKilledStatet
tagDWinCntt updTagDWinCntt curFightPowertatkType((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnTurnFightAwardCrossGsˆ  
                   
 " 
 
  # 
 ."c    Cs¶|s
dStjƒj|tjƒ}xct|jƒƒD]O}|j|ƒ}t|ƒ}x+t|ƒD]}|t    d|ƒ@sfdSqfWq8Wt
j dƒt |t ƒt |tƒdS(Nis%¶Ô·½¹«»á·ÀÊØ³ÉÔ±ÒÑÈ«²¿±»»÷ɱÌáǰ»ñʤ!(R/R8RIR2R;RŒRéRêR*R£RLRMRRR(    RRRt
attrPerCntt tagMemActionRÅttagMAactionDatattagKilledStatetapIndex((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR¸¯s     c'Cs‘tƒ}|tkr-tj|d|ƒdStjƒ}|j|ƒ}|sRdStjƒ}|j|t    j
ƒ}|j t ƒ}    t |    ƒ}
|
s¨tj|dƒdS|j|
t    j
ƒ} | j ƒ} | sÓdS|jƒ} |j|t    jƒ}|j| ƒ}tj| ƒ}|r'tj|ƒnd}g}d}|j|
t    jƒ}xût|jƒƒD]ç}|j|ƒ}t|ƒ}|rš||kršqant|ƒ}t|ƒ}tjd|ƒ}|sÐqan|jƒ}|jƒ}t|ƒ}g}xt|ƒD] }|t d|ƒ@r&qn||}|rH||krHqn|j!|ƒt|ƒ|krq||nd} t"|    ƒ}!|!| }"t#|    |"ƒ|rÆt$|ƒ}#|#| }$t%||$ƒn|t d|ƒB}t&||ƒt }%d}&t'||
| |||%|&|| ƒ    qW|ra|j!|ƒtj|d||fƒqaqaW|sftj|dƒdSt(|    | |
|ƒt)|| g|ƒdS(    Ns ·Ç¼¤Õ½ÆÚÎÞ·¨Ö±½Ó»÷ɱ:curState=%ssûÓвÎÓë¹¥·ÀÕ½iR iis»÷ɱ¶Ô·½:%s,ÊôÐÔ:%ss¶Ô·½Ã»Óпɱ»»÷ɱµÄ(*R4R~RLRÒR/R–RÓR8RIR2R:RJRURRŸR;RR R¡R¤R¥RŒRéRêRR*RRvRàR¶R¢R‹R£RRR R%R(R-R¼R¸RT('RaR>t tagPlayerIDt baseAttrPerRƒRºRÖR?RWRRRYRRRïRt curViewCacheRÈt killMemIDListRËRÌR¶RªRœR­RR«RÁR¬tkillAttrPerListR®R–R²R RÃR'RÄRRÉ((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGMFamilyADB_Kill¿sŒ                
 " 
 
 & !cCs*|s
dS|jƒ}|jƒ}t|ƒ}|d}t||ƒtjd|||f|ƒtjddƒ}    i|d6tj    |    ƒtj
6dtj 6}
t j ||    dddtƒd \} } tj|tj| | |
ƒt||gƒ|jd
d    ƒ} d    }t|||| || |ƒdS( Nis8½áËã¹¥·ÀÕ½Õ½¶·É¨µ´! tagFamilyID=%s,tagID=%s,updBatCnt=%sR%iRœR8R³R´iR—(ii(RŸReRRRLRMRvRwR¹RºR»t Over_isSweepR÷RERtNotifyFBOverCrossPlayerRÞtDef_FBMapID_FamilyAtkDefBatRTRœR¼(RaRRRœRžRR>R§RÂR]toverDicttlineIDRRÈRÉ((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR¤s$   
 * c    CsQtjƒ}    |    j|tjƒ}
|
jddƒ} | j|ƒ| j|ƒ| j|ƒ| j    |ƒ| j
|ƒ| j |ƒt j |ƒ} | r¢| jƒnd} | rº| jƒnd}| rÒ| jƒnd}| rê| jƒnd}| r| jƒnd}| r| jƒnd}| ||||||g}t j |ƒ}|r\|jƒnd}|rt|jƒnd}|rŒ|jƒnd}|r¤|jƒnd}|r¼|jƒnd}|rÔ|jƒnd}|rõtj|tjƒnd}|||||||g}| ji|d6|d6ƒtj| gd||gƒd    S(
svÖ»¼Ç¼±¾¹«»áµÄ½ø¹¥/ɨµ´ÈÕÖ¾£¬ÐèҪͬʱ¼Ç¼¹¥·ÀË«·½³ÉÔ±µÄÐÅÏ¢£¬ÒòΪ½ø¹¥ÈÕÖ¾Ò²ÊǶԷ½µÄ·ÀÊØÈÕÖ¾£¬Ë«·½¹«»á¾ù¿ÉÏ໥²é¿´
    tmaxCountidiiR_tatkInfotdefInfottoFamilyIDListN(R/R8RIR2R<RìRR RR!R&R+R R¡RORpRrRnRxRgR¤R¥R¦t SetUserDataRftSendFamilyAction(R>RRRÈRÐRRÉR–R²R?t batRecActionRXRÒt curServerIDtcurFacet
curFacePict
curRealmLVtcurTitlet curPlayerNameRÜt tagViewCachet tagServerIDttagFacet
tagFacePict
tagRealmLVt
tagTitleIDt tagPlayerNamet tagFightPowerRÝ((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR¼8s:       !(TRrR/RLR¤R2RfRvR R`R÷R(RoR¹RÞRR©R
R<RŒt BatState_NoneRzR|R~tOverState_NoneRRRRRRRR RRRRRRRRRR R#R%R(R*R-R?R4R7R=R\R_RbRcR`RkRlRmRiR}RÛR•R]R«RýRèRRR{RURR2R^RRTRŸR¯R¡RÊR¸RÕR¤R¼(((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt<module>s                                                                                                              
                                      (    m    I         ;    (    :    %    N /    e’        H        h        \