hwj35
2026-06-11 f04d6f2ae347d838133bcd7e0e82ce0b9e02dfd9
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
 Š*jc@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZedƒ\ZZZZedƒ\ZZZd„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,dZ-d„Z.d„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d „Z6d!„Z7d"„Z8d#„Z9d$„Z:d%„Z;d&„Z<d'„Z=d(„Z>d)„Z?d*dd+„ZAd,„ZBd-„ZCeDd.„ZEd/„ZFd*dd0„ZGd1„ZHd2„ZIddeJd*d3„ZKd4„ZLd5„ZMd6„ZNd7„ZOd8„ZPd9„ZQd*d*d*d:„ZRdS(;iÿÿÿÿNiicCs
|jƒS(N(t    GetValue1(t famActionData((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGetFATagFamilyID6scCs |j|ƒS(N(t    SetValue1(Rt tagFamilyID((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytSetFATagFamilyID7scCs
|jƒS(N(t    GetValue2(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGetFATotalStar8scCs&|jttjƒƒƒ|j|ƒS(N(tSetTimetintttimet    SetValue2(RtfamStar((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytSetFATotalStar9scCs
|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.pytGetFAMPlayerIDAscCs |j|ƒS(N(R(RtplayerID((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytSetFAMPlayerIDBscCs|jƒdS(Nid(R(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt GetFAMDefTypeCscCs|jƒdS(Nid(R(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGetFAMDefPosNumDscCs|j|d|ƒS(Nid(R (RtdefTypetposNum((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt SetFAMDefPosEscCs
|jƒS(N(R(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt GetFAMBatCntFscCs |j|ƒS(N(R(RtbatCnt((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt SetFAMBatCntGscCs
|jƒS(N(t    GetValue4(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt GetFAMDWinCntHscCs |j|ƒS(N(t    SetValue4(RtdWinCnt((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt SetFAMDWinCntIscCs
|jƒS(N(t    GetValue5(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt
GetFAMStarJscCs |j|ƒS(N(t    SetValue5(RtmemStar((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt
SetFAMStarKscCs
|jƒS(N(t    GetValue6(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt GetFAMKilledLscCs |j|ƒS(N(t    SetValue6(Rt killedValue((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt SetFAMKilledMstTreasurecCstjƒjtjƒS(N(t    DBDataMgrtGetEventTrigMgrtGetValuet ShareDefinetDef_AtkDefBatState(((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGetAtkDefBatStateRscCstjƒjtj|ƒS(N(R/R0tSetValueR2R3(tstate((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytSetAtkDefBatStateSscCs±|jƒ}tjƒ}|j|tjƒ}|jƒ}|sCdSi|jƒd6|jƒd6|j    ƒd6|j
ƒd6}|j ƒj i|d6ƒt |dgdtƒdS(Nt
FamilyNametServerIDtEmblemIDt
EmblemWordtBaset    memIDListt    byDismiss(tGetIDR/tGetFamilyActionMgrtGetFamilyActionR2tDef_ActionType_AtkDefBatFamt GetOneActiontGetNamet GetServerIDt GetEmblemIDt GetEmblemWordt GetUserDicttupdatetSyncFamilyAtkDefBatInfotTrue(tfamilytfamilyIDt    actionMgrt    curActiont
actionDatatbaseInfo((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt OnDelFamily_s   :cCst||ƒdS(N(t__doCoverDefPos(RLt leavePlayerID((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnFamilyMemberLeavems cCst|ƒdS(N(t__syncByLoginOrEnter(t crossPlayer((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnCrossPlayerEnterFamilyqs
cCst|ƒdS(N(RV(RW((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnCrossPlayerLoginus
cCsb|jƒ}|sdSt|d|ƒ}|s2dStj||tjƒtj||tjƒdS(NtsyncToCrossPlayer(t GetFamilyIDRJt PlayerFamilytSendFamilyActionInfoR2tDef_ActionType_AtkDefBatRec(RWRMR((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyRVys cCsdS(N((((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt OnServerStart„scCs0tjƒrtƒntjƒr,tƒndS(N(t    GameWorldt IsCrossServert__doCheckAtkDefBatStatet IsMainServer(((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnFamilyUpdZoneOK‡s
 
 
cCstjƒrtƒndS(N(R`RaRb(((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt
OnDayCrossŽs 
cCs tƒdS(N(Rb(((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnDay“sc    Cs tjƒr!tjƒjƒ}nBtjƒr_tjƒrJtjdƒdSt    t
j
ƒƒ}ndSt j ƒj ƒ}|sŒtjdƒdStj|ƒ}|jƒd}tƒ}d}tjddƒ}|sÖdSx3t|dƒD]"\}}||kræ|}PqæqæW||kr3tjd||fƒdStjd|||fƒt|ƒ|tkrmtƒn/|tkr†t|ƒn|tkrœtƒndS(Ns!±¾·þ¹«»áÒÑ¿ç·þ²»ÔÙ´¦Àí¹«»á¹¥·ÀÕ½!s#¹«»á»¹Î´¼ÓÔØ·ÖÇøÍê±ÏÔݲ»´¦Àí¹¥·ÀÕ½!iitFmAtkDefBatSets1¹¥·ÀÕ½µ±Ç°ÖÜÆÚ״̬²»±ä! curState=%s,curWeekday=%ss9¹¥·ÀÕ½ÖÜÆÚ״̬±ä¸ü! curState=%s,updState=%s,curWeekday=%s(R`RatCrossMgrtGetSSServerMgrt GetCrossTimeRctDBFamilyt IsFamilyCrosstDebugLogR    R
R/t GetFamilyMgrtGetZoneIDListThisServertLogtChangeTimeNumToDatetimetweekdayR4t IpyGameDataPYtGetFuncEvalCfgt    enumerateR7t BatState_Restt__doBatState_ResttBatState_Preparet__doBatState_PreparetBatState_Fightt__doBatState_Fight(    tcurTimetfamilyZoneIDListt curDatetimet
curWeekdaytcurStatetupdStatetweekdayStateListR6t weekdayList((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyRb—sF           
 
 
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ƒ}i}tjƒ}tjƒ}|jtjtjtjgƒxç|jƒD]Ù}|j|ƒ}|jƒ}tjd||fƒg}xÑt|ƒD]Ã}|j|ƒ}|jƒ}|jƒ}||krRtjd    |||fƒt|ƒqïnd}tj |ƒ}x*|D]"}
||j!t"|
ƒdƒ7}qnW||krÍtjd
||||fƒt|ƒqïng}d}x©t#|ƒD]›}|j|ƒ} | j$ƒ}!t%j&|!ƒ}"t%j'|"ƒ}#|#s:| j(ƒ}#n||#7}t)j*|"tj+ƒ}$|$sn| j(ƒ}$n|j|$|!gƒqæW|j,d t-ƒ|||<|j||gƒqïW|j,d t-ƒtjd |t|ƒ|fƒt|ƒddkrGtj.|ƒ}%|%r'|jd|%gƒntjd t|ƒ|%fƒnx3tt|ƒƒdd|…D]}&g||&|&|!D]}'|'d^q}(tjd||&|(fƒt/j0|(ƒxºt|(ƒdkrx|(d})|(d}*|(d}(|j!|)gƒ}+|j!|*gƒ},tjd||)|*t|+ƒt|,ƒfƒt1|)|*|+| |ƒt1|*|)|,| |ƒt|)ƒq¿WqgWq¤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(2RrRst
GetFuncCfgRttlentrangetdatetimet    timedeltatappendtIPY_DatatGetFamilyAtkDefBatDefenderCountt!GetFamilyAtkDefBatDefenderByIndextGetDefenderTypetGetDefenderCntR`Rpt__getPosRobotIDDictR/RnR@tDelFamilyActionTypesR2RBtDef_ActionType_AtkDefBatMemR^RotGetZoneFamilyMgrtGetCounttGetAtR?RJR\tGetFamilyWeekdayContribDicttgettstrtxranget GetPlayerIDtPlayerViewCachet FindViewCachetGetViewCacheFightPowerHtGetFightPowerTotalt
TurnAttacktGetCacheLineupFightPowertBatPreset_FamilyAtkDefBatDeftsortRKtGetSysFamilyIDtrandomtshufflet__initFamilyAtkDefBatData(-R~Rt
needMemCnttneedContribInfotmatchGroupSplittbefDaystneedContribTotaltneedWeekDayListtbefDayt befDatetimeRrt
memCntListt
ipyDataMgrtindextipyDatat    robotDictt familyMemDictt familyManagerRNtzoneIDtzoneMgrt    familyCnttfamilySortListtiRLRMtmemCntt 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.pyRyÅ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()R4RxR`t DebugAnswerR/Rnt
FindFamilytGetZoneIDInThisServerRER2R¥R@RARBRCRRŒtDelFamilyActionR”R^RJRsRR‰RŽRRR‘R’R›R–R—RœRRžR¡R¢R£R¤RKR¨(RWt curFamilyIDRR€R·t    curFamilyR¸RÇt    tagFamilyRNtresetFamilyIDListRMRORtsrcTagFamilyIDR±R²R³R´RµRÀRLRÂRÃRRÄRÆttagFID((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGMFamilyADB_Match5sr                 #      
cCsytjtjƒ}i}xZ|D]R\}}tjd|ƒ}|sIqn|jƒ}|jƒ}||||f<qW|S(NtRobot(RtGetRobotFightPowerSortListtChConfigtRobotTempNum_AtkDefBatRstGetIpyGameDatat 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( R4RxR?tNoneR/R@RAR2R”R`RmtCountR‰tAtRRRRžR¡R¢R£RŒRtDelActionDataByValue1R¤RKR’R™t    AddActionRRRJ(RLRTR€RMtcoverActionDatat freeMemListRNt    memActionRÂt mActionDataRRÄRÆRRt coverPlayerIDRµt syncMemIDList((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyRSŠ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/R@RAR2RBRCRKRR`RpRˆR”R‰tpopR™RêRR(RMRRÀR±RµRNRORPRí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(R`tGetPlayerManagertGetPlayerByIndexR/RntGetCurCrossServerIDt 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œR[t    PlayerIDAt    PlayerIDBR4RxR`RmR/RnRÐt
FindMembertGetFmLVRsR‡R@RAR2RBRCRR”tGetActionDataByValue1RRRRJRK(RWR÷Røt fromServerIDt    reqDataExRRMt    playerIDAt    playerIDBR€RLt    curMembertfmLVtneedFmLVRNRORRí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¹«»á¹¥·ÀÕ½½øÈ뿪ʼ¼¤Õ½!R=N(R`RpR/RnR@RoR•R–R‰R—R?RÐRAR2RBRCRRŒRJ( tsyncFamilyIDListR·RNR¸R¹RºR¼RLRMRORR((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR{-s2         c
Cs tjdƒ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ƒnÚ| sð| rt}t}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=%sR=s.¹¥·ÀÕ½¹«»áÒѽáËã½±Àø! familyID=%s,overState=%ss2¶Ôսϵͳ¹«»áÖ±½ÓËã»ñʤ! familyID=%s,tagFamilyID=%ss2¶ÔÊÖ¹«»áÒѾ­½âÉ¢Ëã»ñʤ! familyID=%s,tagFamilyID=%sR†iiÿÿÿÿsN×ÜÐÇÊý¸ßµÄ»ñʤ! familyID=%s,tagFamilyID=%s,winFamilyID=%s,isWin=%s,sortList=%s(R`RpR/RnR@RoR•R–R‰R—R?RÐRAR2RBRCRRJRt OverState_WintOverState_LosetFalseRKt IsSysFamilyIDRæRtGetTimeR¤t$__giveFamilyAtkDefBatMemWinLoseAward(R·RNR¸R¹RºR¼RLRMRORRt    overStatet    tagActionttagFamActionDataRt checkBatCntt isSysFamilyIDRÕt curTotalStart curStarTimet tagTotalStart tagStarTimetsortListt winFamilyID((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyRwRsn                  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(RRRRR`RaRAR2R”R‰RçRèRRRŒRþREtGetMainServerIDRsRtt
PlayerMailt SendMailByKeyRp(RNRMRLRRRt 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/RnRôRõRö(RùR÷RøRú((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnGetFamilyAtkDefBatTreasureÏscCs8|jƒ}|jƒ}|j}t||||ƒdS(N(RœR[tDataExt__doOpenFamilyAtkDefBatTreasure(RWR÷RøRRRRMtgridNum((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt__OnGetFamilyAtkDefBatTreasureÕs
      c% CsB|s
dStƒ}|tkr7tjd||ƒdStjƒ}|j|tjƒ}|j    ƒ}| sxt
|ƒ rŒtjd|ƒdSt |ƒ}d}    |t kr¿tjddƒ}    n!|tkràtjddƒ}    n|    stjd||f|ƒdSd„|    Dƒ}
|j|tjƒ} | jƒ} tjddiƒ} tjddƒ}tjdd    ƒ}|}| |kr®|ttj| |t|ƒƒ|ƒ7}n|d
ksÆ||krçtjd ||| f|ƒdStjd ||| | f|ƒi}d}x×t| ƒD]É}| j|ƒ}|t|ƒkrP|}n|jƒjtd
d
gƒ\}}|s€q n||krªtjd ||f|ƒdS||
kr |
|}|jƒ}|j|d
ƒd||<q q W|s tjd||ƒdS|rDt |ƒ}|sDtjd||f|ƒdSn|jƒjtd
d
gƒ\}}d
r’|r’tjd||f|ƒdSg}xé|    D]á}|j!ƒ}|jƒ}|j"ƒ}|j#ƒ}|j$ƒ} |dkrL| jt%|ƒd
ƒ}!|j|d
ƒ}"|"|!krLtjd|||"|!f|ƒqŸqLn| sŸ| sŸ|  rgqŸn|j&|||| gƒqŸW|sŽdStjd||ƒtj'|ƒ}#|#\}}} tjd|||| f|ƒ|jƒj(i||gt6ƒt)||gƒ|r>|| gg}$t*j+||$ddƒn|S(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;¹¥·ÀÕ½³ÉԱûÓÐÕ½¶·¹ýÎÞ·¨¿ªÆô±¦¿â! familyID=%s,curBatCnt=%s,s+ÒѾ­¿ª¹ý¹¥·ÀÕ½±¦¿âÁË! gridNum=%s,awardID=%ssJ¸Ã¹¥·ÀÕ½±¦¿â¸ñ×ÓÆ·ÖÊÒÑ´ï²ú³öÉÏÏÞ! awardID=%s,awardColor=%s,outCnt=%s >= %ss    weightList=%ss0    gridNum=%s,awardID=%s,itemID=%s,itemCount=%st    eventNametAtkDefBatTreasure(,R4RvR`RmR/R@RAR2RBRCRRRæRRstGetIpyGameDataListRR”RçRtR‡R    tmathtceiltfloatR‰RèRRHR™tFAMKey_Treasuret GetAwardColorRR6t GetItemWeightt    GetItemIDt GetItemCountRšRŒtGetResultByWeightListRIRJRõtGivePlayerResources(%RWRMRR3R€RNRORRtawardIpyDataListt awardIDDictRít    batMemCnttcolorSetCntDicttdefaultGridMaxtgridAddtgridMaxtcolorOutCntDicttcurMemActionDataRÂRtgNumtaIDR8t
awardColort    curBatCnttcurGNumtcurAIDt
weightListtawardIDt
itemWeighttitemIDt    itemCounttsetCnttoutCntt awardItemInfot awardItemList((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR2Üs´            .     $  
 ! $                cCs¨tƒ}|tkr-tj|d|ƒdStjƒ}|j|tjƒ}g}g}x…t    |j
ƒƒD]q}|j |ƒ}    t |    ƒ}
|    j ƒjtddgƒ\} } | rË|j| ƒqmn|j|
|    gƒqmWd} x¥t    ddƒD]”} | |krqøn|sPn|d\}
}    td||
| ƒ} | sKqøn| d7} tj|d|
| | fƒ|d}| |krøPqøqøWtj|d|ƒdS(Ns ·ÇÐÝÕ½ÆÚÎÞ·¨´ò¿ª±¦¿â:curState=%siiids³ÉÔ±(%s)´ò¿ª±¦¿â(%s)½±ÀøID(%s)s³É¹¦¿ªÆô±¦¿âÊý: %s(R4RvR`RÏR/R@RAR2R”R‰RçRèRRHR™R@RŒR2Ræ(RWRMtopenCntR€RNRítunOpenPlayerListtgridNumOpendListRÂRt memPlayerIDR3RWtsuccCnt((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGMFamilyADB_TreasureDsB       $  
 
 c    CsF|s
dStjƒ}tjƒ}|j|tjƒ}|jtƒ}|sPdSt|ƒ}    |g}
g} |r| j    |ƒn|    r—|
j    |    ƒng} x|
D]ù} tj
| ƒrÂd}nA|j | ƒ}| | ksä| r| | kr| j    | ƒqn|j| tjƒ}|jƒ}|s0q¤nt jƒ}| |_t|ƒ|_t|ƒ|_| | krudnd|_|rÍ|j rÍ|jƒ|_|jƒ|_|jƒ|_|jƒ|_nl|jƒjdiƒ}|jddƒ|_|jddƒ|_|jddƒ|_|jd    dƒ|_| j    |ƒ|gkrXq¤ng}|j| tjƒ}x t |j!ƒƒD]ø}|j"|ƒ}t#|ƒ}|r¿||kr¿q†nt$j%|ƒ}t j&ƒ}||_'|rÉ|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@|_Bnè|r±|jC|ƒ}|r±tDjEd
|ƒ|j(ƒ|_)t*|j)ƒ|_+|j,ƒ|_-|j.ƒ|_/|j0ƒ|_1|j2ƒ|_3|j4ƒ|_5|j:ƒ|_;|jƒ|_|jFƒ}|t?j@|_A|t?j@|_Bq±ntG|ƒ|_HtI|ƒ|_JtK|ƒ|_LtM|ƒ|_NtO|ƒ|_PtQ|ƒ|_R|jƒjtSddgƒ\}}||_T||_U|rq|jC|ƒ}|rq|jVƒ|_Wqqn|j    |ƒq†W||_Xt*|jXƒ|_Yq¤W| s«dSt jZƒ}t[ƒ|_\| |_]t*|j]ƒ|_^||__|rt`ja||ƒnBx?|
D]7} | | kstj
| ƒr.qnt`jb| |ƒqW|    S( sïͬ²½¹¥·ÀÕ½ÐÅÏ¢
    @param byFamilyID: Òý·¢Í¬²½µÄ¹«»áID
    @param memIDList: ÐèҪͬ²½Êý¾ÝµÄÕ½¶·³ÉÔ±IDÁÐ±í£¬¿É°üº¬¶ÔÊÖ³ÉÔ±£¬None-È«²¿£»[]-²»Í¬²½£»[ID, ...] - Ö¸¶¨Í¬²½³ÉÔ±ÐÅÏ¢
    @param syncToCrossPlayer: Ö¸¶¨Ö»Í¬²½¸øÄ³¸öÍæ¼Ò£¬ÈçµÇ¼ʱ
    NiiR<R8tR9R:R;s#ʹÓÃmemberÐÅϢͬ²½·â°ü! playerID=%s(cR/RnR@RAR2RBRCRKRRŒRRæRÐtChPyNetSendPackttagSCFamilyAtkDefBatFamilytFamilyIDRt    TotalStarRt    OverStatet    IsDismissRDR8RER9RFR:RGR;RHR™R”R‰RçRèRRRžttagSCFamilyAtkDefBatMemtPlayerIDt GetPlayerNametNameRˆtNameLentGetLVtLVtGetJobtJobt
GetRealmLVtRealmLVtGetFacetFacet
GetFacePictFacePict GetModelMarkt    ModelMarktGetEquipShowSwitchtEquipShowSwitcht
GetTitleIDtTitleIDR¡R¢R£RÜtDef_PerPointValuet
FightPowert FightPowerExRþR`RmR RtDefTypeRtPosNumRtBatCntR tDWinCntR%tStarR*t KilledStateR@tGridNumtAwardIDRÿtFmLVt
BatMemListt BatMemCountttagSCFamilyAtkDefBatInfoR4tBatStatet BatFamilyListt FamilyCounttDelMemIDRõt SendFakePacktSendFakePackByFamily(t
byFamilyIDR=RZR>RåR·RNRORPRRÊt dismissIDListt batFamilyListRMRLt    batFamilyRQt
batMemListRíRÂt mAactionDataRRÄtbatMemRÆRÃR3RWtfMembert
clientPack((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyRJnsè                            $                       c
Csc|jƒsdS|d}tj|ƒ}|ji|d6|d6ƒtjƒjƒ}    t||    fS(NitdefBaseAttrPert
fightPower(R[R¡tGetPlayerLineupFightPowerRIR/RnRôRK(
RùtmapIDt
funcLineIDttagTypettagIDt    valueListt    reqExDictRŸR Rú((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnTurnFightRequests 
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¹¥·ÀÕ½Íæ¼ÒÎÞ¹«»áRgis*¹¥·ÀÕ½Íæ¼ÒÌôÕ½´ÎÊýÉÏÏÞ! 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ˆR4RzR`RmR[t__checkFamilyMemCanBatRRsR‡RRRÞtGetDefBaseAttrPerListR*Rutpowt__onAtkDefBatSweepR³RK(RWR¢R£R¤R¥R¦R§RRŸtisSweepR€RMtcurFMRetRPRRSt    canBatCntRttagFMRetRâttagMemActionDataRtdefTypeIpyDatatDefBaseAttrPerListt killedStatet attrPerIndex((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnTurnFightRequestCrosssl 
"                           c    CsÛtjƒ}|j|tjƒ}|jƒ}| sAt|ƒ rYtjd||ƒdSt    |ƒ}|r‰tjd||f|ƒdS|j|tj
ƒ}|j |ƒ}|sÑtjd||f|ƒdS||fS(Ns¹¥·ÀÕ½¹«»áûÓвÎÕ½! familyID=%ss2¹¥·ÀÕ½¹«»áÒѽáËã²»¿ÉÕ½¶·! familyID=%s,overState=%ss1¹¥·ÀÕ½³ÉԱûÓнøÈë²ÎÕ½Ãûµ¥! familyID=%s,memID=%s,( R/R@RAR2RBRCRR`RmRR”R(    RMtmemIDRRNRORPRRí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| ƒ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=%sRgiR©sf¹¥·ÀÕ½½áËãÕ½¶·Ê±²ÎÕ½³ÉÔ±ÊôÐÔ°Ù·Ö±ÈÒѱ»ËûÈË»÷°Ü! tagFamilyID=%s,tagID=%s,attrPerIndex=%s,killedState=%sRZtTagPlayerAlreadyKillediR#sK»ñʤ: updBatCnt=%s,addStar=%s,updFamStar=%s,updMemStar=%s,updKilledState=%ss#ʧ°Ü: updBatCnt=%s,updTagDWinCnt=%sR¥taddStarR:t    AtkDefBatt isNotifyAwardR (*RœR[RÜt Def_FactionAR`RmR4RzRªRRsR‡RRRÞtGetDefStarListR«R³R*R¬RJRõt
NotifyCodeRRtRˆRR R%R(R-R R#RItFBCommontGetJsonItemListt Over_itemInfoRFRR™t__addAtkDefBatRecRK(+RWtguidR¢R£R¤R¥R¦R§t
winFactiontstatMsgt    awardDictRRMRŸRR€R¯RRRSR°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.pytOnTurnFightAwardCrossws†  
                   
 " 
 
  & 
 ."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(|| g|ƒdS(    Ns ·Ç¼¤Õ½ÆÚÎÞ·¨Ö±½Ó»÷ɱ:curState=%ssûÓвÎÓë¹¥·ÀÕ½iR©iis»÷ɱ¶Ô·½:%s,ÊôÐÔ:%ss¶Ô·½Ã»Óпɱ»»÷ɱµÄ()R4RzR`RÏR/RnRÐR@RAR2RBRCRKRRœR”RRRžR¡R¢R‰RçRèRR*RRsRÞR¾R«RˆR¬RŒRR R%R(R-RÃRJ('RWRMt tagPlayerIDt baseAttrPerR€R·RÔRNRORRRRRRíRt curViewCacheRÏt killMemIDListt
attrPerCntt tagMemActionR³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¥R:R»R¼iR (ii(RœR[RRR`RmRsRtRÀRÁRÂt Over_isSweepRõRFRtNotifyFBOverCrossPlayerRÜtDef_FBMapID_FamilyAtkDefBatRJR™RÃ(RWRRR¥R§RRMRSRÉR^toverDicttlineIDRRÏRÐ((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR­Ks$   
 * c     Cstjƒ}    |    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}|s«d
}tjƒ}|j|ƒ}|r:|j|ƒ}n|r«tjd|ƒ|jƒ}|jƒ}|jƒ}|jƒ}|jƒ}|jƒ}|jƒ}q«n|||||||g}| ji|d6|d6ƒtj | gd    ||gƒd
S( svÖ»¼Ç¼±¾¹«»áµÄ½ø¹¥/ɨµ´ÈÕÖ¾£¬ÐèҪͬʱ¼Ç¼¹¥·ÀË«·½³ÉÔ±µÄÐÅÏ¢£¬ÒòΪ½ø¹¥ÈÕÖ¾Ò²ÊǶԷ½µÄ·ÀÊØÈÕÖ¾£¬Ë«·½¹«»á¾ù¿ÉÏ໥²é¿´
    tmaxCountidiiRes(ʹÓÃmemberÐÅÏ¢´æÕ½¶·ÈÕÖ¾! tagPlayerID=%statkInfotdefInfottoFamilyIDListN(!R/R@RAR2R^RêRR RR!R&R+RRžRERwRyRuRRnR¡R¢R£RæRnRÐRþR`RmR t SetUserDataR\tSendFamilyAction( RMRRRÏRÒRRÐRŸRºRNt batRecActionRPRÔt curServerIDtcurFacet
curFacePict
curRealmLVtcurTitlet curPlayerNameRàt tagViewCachet tagServerIDttagFacet
tagFacePict
tagRealmLVt
tagTitleIDt tagPlayerNamet tagFightPowert    tagMemberR·RÕRá((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyRÃhsX       !       (SRkR/R`R¡R2R\RsRRfRõR&RhRÀRÜRŠR¦R
R=R‰t BatState_NoneRvRxRztOverState_NoneRRRRRR RRRRRRRRRR R#R%R(R*R-R@R4R7RRRURXRYRVR_RdReRfRbRyRÙR’RSR¨RûRæRR{RwRKRR0R4R2RdRRJR¨R·RªRÑRÙR­RÃ(((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt<module>s’                                                                                                                                                .    p    I         ;    (    :    %    N /        h    *–        H        x    \