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
z´+jc@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZedƒ\ZZZZedƒ\ZZZd„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-dZ.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)„Z@d*dd+„ZBd,„ZCd-„ZDeEd.„ZFd/„ZGd*dd0„ZHd1„ZId2„ZJddeKd*d3„ZLd4„ZMd5„ZNd6„ZOd7„ZPd8„ZQd9„ZRd*d*d*d:„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.pytGetFATagFamilyID7scCs |j|ƒS(N(t    SetValue1(Rt tagFamilyID((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytSetFATagFamilyID8scCs
|jƒS(N(t    GetValue2(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGetFATotalStar9scCs&|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.pytGetFAMPlayerIDBscCs |j|ƒS(N(R(RtplayerID((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytSetFAMPlayerIDCscCs|jƒdS(Nid(R(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt GetFAMDefTypeDscCs|jƒdS(Nid(R(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGetFAMDefPosNumEscCs|j|d|ƒS(Nid(R (RtdefTypetposNum((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt SetFAMDefPosFscCs
|jƒS(N(R(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt GetFAMBatCntGscCs |j|ƒS(N(R(RtbatCnt((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt SetFAMBatCntHscCs
|jƒS(N(t    GetValue4(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt GetFAMDWinCntIscCs |j|ƒS(N(t    SetValue4(RtdWinCnt((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt SetFAMDWinCntJscCs
|jƒS(N(t    GetValue5(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt
GetFAMStarKscCs |j|ƒS(N(t    SetValue5(RtmemStar((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt
SetFAMStarLscCs
|jƒS(N(t    GetValue6(R((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt GetFAMKilledMscCs |j|ƒS(N(t    SetValue6(Rt killedValue((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt SetFAMKilledNstTreasurecCstjƒjtjƒS(N(t    DBDataMgrtGetEventTrigMgrtGetValuet ShareDefinetDef_AtkDefBatState(((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGetAtkDefBatStateSscCstjƒjtj|ƒS(N(R/R0tSetValueR2R3(tstate((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytSetAtkDefBatStateTscCs±|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.pytOnFamilyMemberLeavens cCst|ƒdS(N(t__syncByLoginOrEnter(t crossPlayer((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnCrossPlayerEnterFamilyrs
cCst|ƒdS(N(RV(RW((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnCrossPlayerLoginvs
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.pyRVzs 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ƒ}n tjƒr½tjƒrJtjdƒdSt    t
j
ƒƒ}t j t jƒ}|rÁtjƒjt jƒd}||krºtjd||fƒdSqÁndStjƒjƒ}|sêtjdƒdStj|ƒ}|jƒd}tƒ}d}tjddƒ}|s4dSx3t|dƒD]"\}    }
||
krD|    }PqDqDW||kr‘tjd||fƒdStjd|||fƒt|ƒ|tkrËtƒn/|tkrät |ƒn|t!krút"ƒndS(    Ns!±¾·þ¹«»áÒÑ¿ç·þ²»ÔÙ´¦Àí¹«»á¹¥·ÀÕ½!is/µ±Ç°¿ª·þÌìδ´ï¹¥·ÀÕ½¿ªÆôÌõ¼þ! serverDay=%s < %ss#¹«»á»¹Î´¼ÓÔØ·ÖÇøÍê±ÏÔݲ»´¦Àí¹¥·ÀÕ½!itFmAtkDefBatSets1¹¥·ÀÕ½µ±Ç°ÖÜÆÚ״̬²»±ä! curState=%s,curWeekday=%ss9¹¥·ÀÕ½ÖÜÆÚ״̬±ä¸ü! curState=%s,updState=%s,curWeekday=%s(#R`RatCrossMgrtGetSSServerMgrt GetCrossTimeRctDBFamilyt IsFamilyCrosstDebugLogR    R
t GameFuncCommtGetFuncLimitOpenDayR2tGameFuncID_AtkDefBatR/R0R1t Def_ServerDayt GetFamilyMgrtGetZoneIDListThisServertLogtChangeTimeNumToDatetimetweekdayR4t IpyGameDataPYtGetFuncEvalCfgt    enumerateR7t BatState_Restt__doBatState_ResttBatState_Preparet__doBatState_PreparetBatState_Fightt__doBatState_Fight( tcurTimet limitOpenDayt    serverDaytfamilyZoneIDListt curDatetimet
curWeekdaytcurStatetupdStatetweekdayStateListR6t weekdayList((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyRb˜sR     
       
 
 
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(2RvRwt
GetFuncCfgRxtlentrangetdatetimet    timedeltatappendtIPY_DatatGetFamilyAtkDefBatDefenderCountt!GetFamilyAtkDefBatDefenderByIndextGetDefenderTypetGetDefenderCntR`Rtt__getPosRobotIDDictR/RrR@tDelFamilyActionTypesR2RBtDef_ActionType_AtkDefBatMemR^RstGetZoneFamilyMgrtGetCounttGetAtR?RJR\tGetFamilyWeekdayContribDicttgettstrtxranget GetPlayerIDtPlayerViewCachet FindViewCachetGetViewCacheFightPowerHtGetFightPowerTotalt
TurnAttacktGetCacheLineupFightPowertBatPreset_FamilyAtkDefBatDeftsortRKtGetSysFamilyIDtrandomtshufflet__initFamilyAtkDefBatData(-R„R…t
needMemCnttneedContribInfotmatchGroupSplittbefDaystneedContribTotaltneedWeekDayListtbefDayt befDatetimeRvt
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.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|R`t DebugAnswerR/Rrt
FindFamilytGetZoneIDInThisServerRER2R«R@RARBRCRR’tDelFamilyActionRšR^RJRwR“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_Match<sr                 #      
cCsytjtjƒ}i}xZ|D]R\}}tjd|ƒ}|sIqn|jƒ}|jƒ}||||f<qW|S(NtRobot(R£tGetRobotFightPowerSortListtChConfigtRobotTempNum_AtkDefBatRwtGetIpyGameDatat 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|R?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`RtRŽ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/RrtGetCurCrossServerIDt 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    PlayerIDBR4R|R`RmR/RrRÖt
FindMembertGetFmLVRwR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`RtR/RrR@RsR›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.pyR4s2         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`RtR/RrR@RsR›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.pyR{Ysn                  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’RREtGetMainServerIDRwRxt
PlayerMailt SendMailByKeyRt(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/RrRú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(,R4RzR`RmR/R@RAR2RBRCRRRìRRwtGetIpyGameDataListRRšRíRxRR    tmathtceiltfloatRRîRRHRŸtFAMKey_Treasuret GetAwardColorRR<t GetItemWeightt    GetItemIDt GetItemCountR R’tGetResultByWeightListRIRJRûtGivePlayerResources(%RWRMRR9R†RNRORRtawardIpyDataListt awardIDDictRót    batMemCnttcolorSetCntDicttdefaultGridMaxtgridAddtgridMaxtcolorOutCntDicttcurMemActionDataRÈRtgNumtaIDR>t
awardColort    curBatCnttcurGNumtcurAIDt
weightListtawardIDt
itemWeighttitemIDt    itemCounttsetCnttoutCntt awardItemInfot awardItemList((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR8ã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(R4RzR`RÕR/R@RAR2RšRRíRîRRHRŸRFR’R8Rì(RWRMtopenCntR†RNRótunOpenPlayerListtgridNumOpendListRÈRt memPlayerIDR9R]tsuccCnt((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytGMFamilyADB_TreasureKsB       $  
 
 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/RrR@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 FightPowerExRR`RmR¦RtDefTypeRtPosNumRtBatCntR tDWinCntR%tStarR*t KilledStateRFtGridNumtAwardIDRtFmLVt
BatMemListt BatMemCountttagSCFamilyAtkDefBatInfoR4tBatStatet BatFamilyListt FamilyCounttDelMemIDRût SendFakePacktSendFakePackByFamily(t
byFamilyIDR=RZR>RëR½RNRORPRRÐt dismissIDListt batFamilyListRMRLt    batFamilyRQt
batMemListRóRÈt mAactionDataRRÊtbatMemRÌRÉR9R]tfMembert
clientPack((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyRJusè                            $                       c
Csc|jƒsdS|d}tj|ƒ}|ji|d6|d6ƒtjƒjƒ}    t||    fS(NitdefBaseAttrPert
fightPower(R[R§tGetPlayerLineupFightPowerRIR/RrRúRK(
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¹¥·ÀÕ½Íæ¼ÒÎÞ¹«»á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ŽR4R~R`RmR[t__checkFamilyMemCanBatRRwRRRRätGetDefBaseAttrPerListR*Rytpowt__onAtkDefBatSweepR¹RK(RWR¨R©RªR«R¬R­RR¥tisSweepR†RMtcurFMRetRPRRYt    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°bs    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`RmR4R~R°RRwRRRRätGetDefStarListR±R¹R*R²RJRût
NotifyCodeRRxRŽRR R%R(R-R R#RItFBCommontGetJsonItemListt Over_itemInfoRLRRŸt__addAtkDefBatRecRK(+RWtguidR¨R©RªR«R¬R­t
winFactiontstatMsgt    awardDictRRMR¥RR†RµRRRYR¶RR·RR¸RR¹t DefStarListRºR¼R»t    updBatCntRÀRdR t
updFamStarR't
updMemStartupdKilledStatet
tagDWinCntt updTagDWinCntt curFightPowertatkType((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pytOnTurnFightAwardCross~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(|| g|ƒdS(    Ns ·Ç¼¤Õ½ÆÚÎÞ·¨Ö±½Ó»÷ɱ:curState=%ssûÓвÎÓë¹¥·ÀÕ½iR¯iis»÷ɱ¶Ô·½:%s,ÊôÐÔ:%ss¶Ô·½Ã»Óпɱ»»÷ɱµÄ()R4R~R`RÕR/RrRÖR@RAR2RBRCRKRR¢RšRR£R¤R§R¨RRíRîRR*RRwRä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`RmRwRxRÆRÇRÈt Over_isSweepRûRLRtNotifyFBOverCrossPlayerRâtDef_FBMapID_FamilyAtkDefBatRJRŸRÉ(RWRRR«R­RRMRYRÏRdtoverDicttlineIDRRÕRÖ((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyR³Rs$   
 * 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Ö»¼Ç¼±¾¹«»áµÄ½ø¹¥/ɨµ´ÈÕÖ¾£¬ÐèҪͬʱ¼Ç¼¹¥·ÀË«·½³ÉÔ±µÄÐÅÏ¢£¬ÒòΪ½ø¹¥ÈÕÖ¾Ò²ÊǶԷ½µÄ·ÀÊØÈÕÖ¾£¬Ë«·½¹«»á¾ù¿ÉÏ໥²é¿´
    tmaxCountidiiRks(ʹÓÃmemberÐÅÏ¢´æÕ½¶·ÈÕÖ¾! tagPlayerID=%statkInfotdefInfottoFamilyIDListN(!R/R@RAR2R^RðRR RR!R&R+R£R¤RER}RR{R…RtR§R¨R©RìRrRÖRR`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ÉosX       !       (TRkR/R`R§R2R\RwR£RlRnRûR,RhRÆRâRR¬R
RCRt BatState_NoneRzR|R~tOverState_NoneRRRRRR RRRRRRRRRR R#R%R(R*R-RFR4R7RRRURXRYRVR_RdReRfRbR}RßR˜RSR®RRìRRR{RKRR6R:R8RjRRJR®R½R°R×RßR³RÉ(((sŠD:\SG_ServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\GameWorldLogic\FBProcess\GameLogic_FamilyAtkDefBat.pyt<module>s”                                                                                                                                                 4    p    I         ;    (    :    %    N /        h    *–        H        x    \