hxp
2018-09-01 ae67df5f1df07f5acfd73b7d02c8198b96b87448
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
äNŠ[c@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZdZdZdZdZeeZdZdZdZd    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#„Z2d$„Z3d%„Z4d&„Z5d'„Z6d(„Z7d)„Z8e9d*„Z:d+„Z;d,„Z<d-„Z=d.„Z>d/„Z?d0„Z@d1„ZAd2„ZBd3„ZCd4„ZDd5„ZEd6„ZFd7„ZGdd8„ZId9„ZJgd:„ZKd;„ZLd<„ZMe9d=„ZNd>„ZOd?„ZPd@„ZQdA„ZRdB„ZSdC„ZTdD„ZUdE„ZVdS(FiÿÿÿÿNiiiii i i iiiiccCs
|jƒS(N(t    GetValue1(trecData((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetBatRecGroupIDEscCs |j|ƒS(N(t    SetValue1(RtgroupID((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetBatRecGroupIDFscCs
|jƒS(N(t    GetValue2(R((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetBatRecRoundNumGscCs |j|ƒS(N(t    SetValue2(RtroundNum((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetBatRecRoundNumHscCs
|jƒS(N(t    GetValue3(R((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetBatRecFamilyIDAIscCs |j|ƒS(N(t    SetValue3(Rt    familyIDA((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetBatRecFamilyIDAJscCs
|jƒS(N(t    GetValue4(R((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetBatRecFamilyIDBKscCs |j|ƒS(N(t    SetValue4(Rt    familyIDB((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetBatRecFamilyIDBLscCs
|jƒS(N(t    GetValue5(R((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetBatRecWinFamilyIDMscCs |j|ƒS(N(t    SetValue5(Rt winFamilyID((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetBatRecWinFamilyIDNscCs
|jƒS(N(t GetStrValue1(R((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetBatRecFamilyNameAOscCs |j|ƒS(N(t SetStrValue1(Rt familyNameA((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetBatRecFamilyNameAPscCs
|jƒS(N(t GetStrValue2(R((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetBatRecFamilyNameBQscCs |j|ƒS(N(t SetStrValue2(Rt familyNameB((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetBatRecFamilyNameBRscCs |jƒsgSt|jƒƒS(N(t GetStrValue3teval(R((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetBatRecDissolutionIDSscCs|jt|ƒƒS(N(t SetStrValue3tstr(RtdissFamilyIDList((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetBatRecDissolutionIDTscCs
|jƒS(N(R(tchampionRecData((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetFWChampionFamilyID^scCs |j|ƒS(N(R(R+tfamilyID((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetFWChampionFamilyID_scCs
|jƒS(N(R(R+((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetFWChampionLeaderID`scCs |j|ƒS(N(R(R+tleaderID((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetFWChampionLeaderIDascCs
|jƒS(N(R (R+((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetFWChampionWinCountbscCs |j|ƒS(N(R (R+twinCount((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetFWChampionWinCountcscCs
|jƒS(N(R(R+((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetFWChampionWinRewardAllotdscCs |j|ƒS(N(R(R+t allotWinCount((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetFWChampionWinRewardAllotescCs
|jƒS(N(R(R+((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetFWChampionEndWinCountfscCs |j|ƒS(N(R(R+t endWinCount((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetFWChampionEndWinCountgscCs
|jƒS(N(R(R+((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytGetFWChampionFamilyNamehscCs |j|ƒS(N(R(R+t
familyName((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytSetFWChampionFamilyNameiscCsÉit_gt_tjƒjtjƒ}xpt|j    ƒƒD]\}|j
|ƒ}|j ƒ}|j ƒ}|tjkrŒtjj |ƒn|tj|<q=WtjdtjƒtjdtjƒdS(Ns¼ÓÔØÏÉÃËÁªÈü²ÎÈüÏÉÃËID: %ss¼ÓÔØÏÉÃËÁªÈü²ÎÈüÏÉÃËÍæ¼Ò: %s(t
PyGameDatatg_familyWarMemDicttg_familyWarFamilyIDListt    GameWorldtGetUniversalRecMgrt GetTypeListt ShareDefinet(Def_UniversalGameRecType_FamilyWarMembertxrangetCounttAtRRtappendtLog(t warMemRecListtiRt warPlayerIDt warFamilyID((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytOnGameServerInitOKls          cCsìgt_gt_tjƒ}x<tjjƒD]+}|j|ƒ}|r.t|dƒq.q.Wit_t    j
t    j dƒt    j
t    j dƒ|r×tj ƒjtjƒtj ƒjtjƒtj ƒjtjƒntjd|ƒdS(NisÖØÖÃÏÉÃËÁªÈü£¡isDelRec=%s(R>tg_familyWarFightingIDListR@RAtGetPlayerManagerR?tkeystFindPlayerByIDt__NotifyPlayerJoinFamilyInfotPlayerDBGSEventtSetDBGSTrig_ByKeytDef_FamilyWar_RoundtDef_FamilyWar_AllOverRBtDeleteRDt(Def_UniversalGameRecType_FamilyWarBattlet*Def_UniversalGameRecType_FamilyWarChampionRERJ(tisDelRect playerManagertplayerIDtplayer((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytDoFamilyWarResets              cCsŒ|jƒ}|jƒ}|tjkr;tj|dƒtStj|}||krhtj|dƒtSt|ƒsˆtj|dƒtStS(NtPlayerNotInFamilyWarMemListtPlayerWarFamilyIDIsChangetPlayerFamilyWarIsOver(    t GetPlayerIDt GetFamilyIDR>R?t PlayerControlt
NotifyCodetFalsetIsFamilyInWarFightingtTrue(t    curPlayerR^R-RN((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyt!CheckPlayerCanEnterFamilyWarFBMap—s     cCs |tjkS(N(R>RP(R-((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyRi©scCst|ƒdS(N(tCheckPlayerJoinFamilyWarInfo(t    curFamilyRk((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyt OnPlayerLogin­s
cCsZ|jƒ}|tjkrdStj|}| sE|jƒ|krIdSt||ƒdS(N(RdR>R?ReRT(RkR^t joinFamilyID((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyRm±s   cCs€d}|r<tjƒj|ƒ}|s-dn    |jƒ}ntjƒ}||_||_t|jƒ|_    t
j ||ƒdS(Nt( RAtGetFamilyManagert
FindFamilytGetNametChPyNetSendPackttagGCPlayerJoinFamilyWarInfot JoinFamilyIDtJoinFamilyNametlentJoinFamilyNameLent NetPackCommont SendFakePack(RkRptjoinFamilyNamet
joinFamilytjoinFamilyWarInfo((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyRT¼s         c
    CsAt}tjƒ}|jtjƒ}xÀt|jƒƒD]¬}|j|ƒ}t    |ƒ}t
|ƒ}|||gkr7t |ƒ}    ||    krã|    j |ƒt ||    ƒtjd|t|ƒt|ƒ|||    fƒt}qãq7q7W|rtjdtjƒn|r-tjd||fƒtjƒnttƒtƒdS(Nsw¸üÐÂÏÉÃËÁªÈü¶ÔÕ½¼Ç¼½âÉ¢ÏÉÃËIDÊý¾Ý: delFamilyID=%s,roundNum=%s,groupID=%s,familyIDA=%s,familyIDB=%s,dissFamilyIDList=%ss?½âÉ¢ÏÉÃË£¬´¥·¢¸üÐÂÏÉÃËÁªÈüÅÅÃû: delFamilyID=%s,familyWarRank=%s(RhRARBRCRDRZRFRGRHR RR&RIR*RJRRRjtPlayerUniversalGameRectSendUniversalGameRecInfotNonet PlayerFamilytUpdFamilyWarRanktAllotWinRewardBySystemtGetFamilyWarChampionRecData(
R-t familyWarRankt isWarFamilytuniversalRecMgrt warBatRecListRLRRRR)((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytOnDeleteFamilyÉs,           & cCs@|s
dStƒ}t|ƒ}||kr/dSt||ƒdS(N(R†R,R1(R-R0R+tchampionFamilyID((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytOnChangeFamilyLeaderès       c    Cs
t}tjƒ}|jtjƒ}xÃt|jƒƒD]¯}|j|ƒ}t    |ƒ}t
|ƒ}|||gkr|q7nt }||kržt ||ƒn||krºt ||ƒntjd|t|ƒt|ƒ||fƒq7W|rtjdtjƒndS(NsNÏÉÃËÁªÈüÏÉÃ˸ÄÃû: familyID=%s,roundNum=%s,groupID=%s,familyIDA=%s,familyIDB=%s(RhRARBRCRDRZRFRGRHR RRjRR#RJRRR€RR‚(    R-R<RˆR‰RŠRLRRR((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytOnRenameFamilyós&         'cCsÌtjd|ƒ|tkr'tƒn¡|tkr@ttƒnˆ|tkrYttƒno|t    krot
ƒnY|t krˆtt ƒn@|t kr¡tt ƒn'|tkr·tƒntjd|ƒdS(NsÏÉÃËÁªÈü״̬±ä¸ü: stateValue=%ss#²»´æÔÚ¸ÃÏÉÃËÁªÈü״̬£¡stateValue=%s(RARJtFamilyWarState_FirstRoundGroupt DoLogicFamilyWar_FirstRoundGrouptFamilyWarState_FirstRoundBattletOnFamilyWar_StarttFamilyWarRound_FirsttFamilyWarState_FirstRoundOvertOnFamilyWar_OvertFamilyWarState_SecondRoundGroupt!DoLogicFamilyWar_SecondRoundGroupt FamilyWarState_SecondRoundBattletFamilyWarRound_SecondtFamilyWarState_SecondRoundOvert FamilyWarState_NextWeekGroupRankt"DoLogicFamilyWar_NextWeekGroupRanktErrLog(t
stateValue((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytOnFamilyWarStateChange s" 
 
 
cCsttƒƒ}tjtj|ƒtjƒjtjt    j
ƒ}t j t j ƒ}|r{|r{tjtjt|ƒƒndS(N(R,R†RAtSendMapServerMsgExRDt$Def_Notify_WorldKey_ChampionFamilyIDt GetGameWorldt GetDictByKeytDef_Notify_WorldKey_FBCanEntertChConfigtDef_FBMapID_FamilyWarRUtGetDBGSTrig_ByKeyRWt Def_Notify_WorldKey_VSFamilyInfotGetRoundOpenFBVSFamilyInfo(RŒtcanEnterR    ((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytOnMapServerInitOK0s c Cs7tƒ}t|ƒ}t|ƒ}tjd||fƒg}tjƒ}|jtjƒ}t    }|j
ƒ}xÂt |ƒD]´}    |j |    ƒ}
|t |
ƒkr¨q{n|dkpÄ| oÄ|tk} | rÖt}nt|
ƒ} t|
ƒ} t|
ƒ}t|
ƒ}| s| r4tjd|    | | fƒq{nt|
ƒ}|rftjd|    | | fƒq{nt|
ƒ}|r›tjd|    | | |fƒq{nt|
ƒ}tj| ƒ}tj| ƒ}| |kr×|nd}| |krï|nd}|j| ||| | g||g||g||ggƒq{W|S(Ns=    ÏÉÃËÁªÈüÀúÊ·¹Ú¾ü: championFamilyID=%s,championWinCount=%sis>    ÓÐÏÉÃËÂÖ¿Õ£¬²»¿ªÆô±¾³¡±ÈÈü£¡i=%s,familyIDA=%s,familyIDB=%ss>    ÓÐÏÉÃ˽âÉ¢£¬²»¿ªÆô±¾³¡±ÈÈü£¡i=%s,familyIDA=%s,familyIDB=%ssQ    ÒÑÓÐʤ¸º½á¹ûµÄ£¬²»¿ªÆô±¾³¡±ÈÈü£¡i=%s,familyIDA=%s,familyIDB=%s,winFamilyID=%si(R†R,R2RARJRBRCRDRZRhRGRFRHRR™RjR RRR R&RRRƒtGetFamilyIDRankRI(R    R+RŒtchampionWinCountt vsFamilyInfoR‰RŠtfinalMatchStatetwarBatRecCountRLRt isFinalMatchRRRR"tdisFamilyIDListRRt familyRankAt familyRankBt    winCountAt    winCountB((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyR©=sN                       >c    Csòtjtjƒ}||kr9tjd||fƒdStjd|ƒt|ƒ}tjd|ƒgt_x%|D]}tjj    |t
j ƒqwWtj t
j |ƒ|rît|ƒ}tjƒjdddtjd|t|ƒƒndS(Ns;µ±Ç°ÂÖ´ÎÒì³£Êý¾Ý£¬ÎÞ·¨¿ªÆôÏÉÃËÁªÈü!dbRound=%s,startRound=%ss1==========ÏÉÃËÁªÈüÕ½¶·¿ªÊ¼, µ±Ç°ÂÖ´Î(%s)=========s    vsFamilyInfo=%sitFamilyWarStart(RUR§RWRARRJR©R>RPtextendRDtVSFamilyInfo_FamilyIDListR R¨R(RQtMapServer_QueryPlayerR¥R¦Ry(R    tcurRoundR®tvsFamilytmsgInfo((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyR’ns         cCstjtjƒ}|tkr/tjdƒdS|dkrPtjd|ƒdStjdƒtjtj    dƒt
j ƒt j tjƒ}it_gt_tjƒ}|jtjƒ|jtjƒ|jtjƒ}|jtjƒ}t}g}tjƒ}t
jƒ}t|ƒ}    tjddƒ}
tjd|
ƒxŒt|ƒD]~\} } |j| ƒ} | sŒtjd| | fƒqNn| jƒ|
krÄtjd    | | jƒ|
fƒqNn|j | ƒtjj | ƒx“t!| j"ƒƒD]}| j#|ƒ}|j$ƒ}|j%ƒ}t&|| |ƒ}|j'|dƒ}|rô|rô|| krô|rôt(|| ƒqôqôWt|ƒt)ks™| |    dkrNt*|||ƒ|dkr¹PqÌ|d8}g}qNqNWtjd
tjƒtjd tjƒtjd ƒtjtjtƒdS( NsÏÉÃËÁªÈüÒѾ­´¦Àí¹ýÊ×ÂÖ·Ö×飡is1ÏÉÃËÁªÈü´¦Àí¹ýÊ×ÂÖ·Ö×éÂִμǼֵÒì³££¡curRound=%ss0============= ¿ªÊ¼ÏÉÃËÁªÈü·Ö×éÊ×ÂÖ =============tFamilyMatchSetis×îµÍ²ÎÈüÏÉÃ˵ȼ¶£º %ss2ÏÉÃËÁªÈüÊ×ÂÖ·Ö×éʱÎÞ·¨ÕÒµ½¸ÃÏÉÃË: i=%s,familyID=%ssBÏÉÃ˵ȼ¶²»×㣬ÎÞ·¨²ÎÓëÁªÈü£¡familyID=%s,LV=%s,joinFamilyLVLimit=%ss*    PyGameData.g_familyWarFamilyIDList: %ss%    PyGameData.g_familyWarMemDict: %ss"    ÏÉÃËÁªÈüÊ×ÂÖ±ÈÈü·Ö×éÈ·ÈÏÍê±Ï£¡(+RUR§RWR“RAtDebugLogRRJRVRXRƒt DoFamilySorttcopytdeepcopyR>R?R@RBRYRDRZRERCtFamilyWar_MaxGroupIDRrtGetSortFamilyIDListRyt IpyGameDataPYt
GetFuncCfgt    enumerateRstGetLVRIRFtGetCounttGetAtRdt    GetPlayertAddFamilyWarMemtgetRTtFamilyWar_GroupFamilyCountt__DoFristRoundRandBattle(R»tlastFamilyWarMemDictR‰RŠRKRtgroupFamilyListt    familyMgrtsortFamilyIDListt familyCounttjoinFamilyLVLimitRLR-tfamilytindext    curMembert memPlayerIDt    memPlayertisAddOKtlastJoinFamilyID((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyR…sl    
                " 
  cCsÑ|tjkr$tjd|ƒdS|tjkrXtjd||tj|fƒdS|sytjƒjtjƒ}n|sƒdS|j    ƒ}|j
|ƒ|j |ƒ|tj|<tjd||fƒt S(Ns)·Ç²ÎÈüÏÉÃË£¬²»ÄÜÌí¼Ó²ÎÈü³ÉÔ±£¡familyID=%ssT±¾ÖÜÒѾ­Ìí¼Ó¹ý¸Ã³ÉÔ±ËùÊô²ÎÈüÏÉÃË£¬²»Öظ´Ìí¼Ó£¡playerID=%s,familyID=%s,warFamilyID=%ss1    Ìí¼ÓÏÉÃËÁªÈüÕ½¶·ÈËÔ±: playerID=%s,familyID=%s( R>R@RAR¿R?RBRCRDREtAddRecRRRj(R^R-RKR((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyRÌÌs"        c CsÓ|s
dStj|ƒt}x¯|rÎ|d }|d}|d}t|ƒdkr`|dnd}|jƒ|jƒ}}|s‹dn    |jƒ}    |s£dn    |jƒ}
t|||||    ||
ƒq WdS(NiiiRq(trandomtshuffleR“RyR‚tGetIDRttAddFamilyWarBatRec( RŠRRÑR    t vaFamilyListtfamilyAtfamilyBRRRR"((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyRÏàs     
 
 
" c
 
Csç| r| rdS|jƒ}t||ƒt||ƒt||ƒt||ƒt||ƒt||ƒg}    |r”||kr”|    j|ƒn|r¶||kr¶|    j|ƒnt||    ƒt    j
d|||||    fƒdS(NsX    AddRec roundNum=%s,groupID=%s,familyIDA(%s) VS familyIDB(%s), setDissFamilyIDList=%s( RÝRR
RRRR#RIR*RARJ(
RŠR    RRRRR"R²RtsetDissFamilyIDList((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyRáôs$            c
Csetjtjƒ}|tkr/tjdƒdS|tkrPtjd|ƒdStjdƒi}tj    ƒ}|j
t j ƒ}xvt |jƒƒD]b}|j|ƒ}tt|ƒkrÁq”nt|ƒ}|j|gƒ}|j|ƒ|||<q”Wt}t}x8t tƒD]*}t|}tjd|ƒ||kr]tjd||fƒqn||}t|ƒdkr–tjd||fƒqn|\}    }
t|    ƒ\} } } }}t|
ƒ\}}}}}||}tjd| || |fƒt|||| || ||ƒt|||| ||||ƒqWtjd    ƒtjtjtƒdS(
NsÏÉÃËÁªÈüÒѾ­´¦Àí¹ý´ÎÂÖ·Ö×飡s1ÏÉÃËÁªÈü´¦Àí¹ý´ÎÂÖ·Ö×éÂִμǼֵÒì³££¡curRound=%ss0============= ¿ªÊ¼ÏÉÃËÁªÈü·Ö×é´ÎÂÖ =============s-----groupID=%s-----s3    Ã»Óиü¶±ð±ÈÈü£¬½áÊø·Ö×é!roundNum=%s,groupID=%sis=    Ê×ÂÖ±ÈÈü²»ÊÇÁ½³¡£¬Ö±½ÓÌø¹ý´ÎÂÖ±ÈÈü!roundNum=%s,groupID=%ss]    Ê¤Õß¶ÔʤÕߣ¬°ÜÕß¶Ô°ÜÕß: winFamilyID1=%s,winFamilyID2=%s,loseFamilyID1=%s,loseFamilyID2=%ss"    ÏÉÃËÁªÈü´ÎÂÖ±ÈÈü·Ö×éÈ·ÈÏÍê±Ï£¡(RUR§RWR™RAR¿R“RRJRBRCRDRZRFRGRHRRRÍRIRÃRyt"__GetWinLoseFamilyInfoForNextRoundRáRV(R»tsecondRoundBatDictR‰RŠRLRRtfristRoundBatRecR    trecData1trecData2t winFamilyID1twinFamilyName1t loseFamilyID1tloseFamilyName1tdisFamilyIDList1t winFamilyID2twinFamilyName2t loseFamilyID2tloseFamilyName2tdisFamilyIDList2R²((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyR— sT       
 
 
    # c
Cs²t|ƒ}t|ƒ}t|ƒ}t|ƒ}t|ƒ}|sZt|||tƒ}n||kr{|}|}|}n|}|}|}|}t|ƒ}    |||||    fS(sâ¸ù¾ÝÉÏÒ»ÂÖ±ÈÈü½á¹û»ñÈ¡ÓÐ×ʸñ²ÎÓëÏÂÒ»ÂÖ±ÈÈüµÄʤÕßÓë°ÜÕßÏÉÃËÐÅÏ¢
    @param recData: ÉÏÒ»ÂÖ±ÈÈü½á¹û¼Ç¼Êý¾Ý
    ×¢: ÉÏÒ»ÂÖµÄʤÕßÓë°ÜÕß²¢²»Ò»¶¨¶¼ÓÐ×ʸñ²ÎÓëÏÂÒ»ÂÖ±ÈÈü£¬±ØÐëÂú×ãÆäÖÐÒ»¸öÏÉÃËδ½âÉ¢£¨¿ÉÄÜÈüǰ¡¢Èüºó½âÉ¢£©²ÅÄܲÎÓë;
    (R RRR Rt__SetBatRecWinFamilyIDBySystemRhR&(
RRRRR"Rt winFamilyNamet loseFamilyIDtloseFamilyNameR²((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyRæEs"           c Cst|ƒ}|r|Sd}t|ƒ}|râ||krl||krl|}tjd||||fƒq¯|r°|r°||krŠ|n|}tjd||||fƒq¯|s¼|n|}tjd||||fƒnÍ| rN|rN|rNtj|ƒ}tj|ƒ}||kr%|n|}tjd|||||fƒna| s\| r‹|sh|n|}tjd|||fƒn$|r¯tjd|||fƒdS|sÊ|sÁ|n|}n|sÔdSt||ƒtjƒ}|j    |ƒ}    |    stjd|ƒ|St
j d    d
ƒ}
t
j d    d ƒ} t |ƒ} d
| kodt | ƒknrw| | d
n| d} g}g}xD|
D]<\}}}|j|td
t|| d ƒƒ|gƒq”Wx<t|    jƒƒD](}|    j|ƒ}|j|jƒƒqçWt|ƒ}tjd |||| gƒt
j ddƒ}tjd|||gƒtjd|| || ||fƒ|S(sM ÏµÍ³¼ì²éÉèÖñÈÈüʤÕßÏÉÃË
    @param isFight: ÊÇ·ñÊDZÈÈüÖеģ¬Èç¹ûÊÇ£¬Ôò²»ÉèÖÃʤÕߣ¨ÂÖ¿Õ¼°½âÉ¢µÄ³ýÍ⣩
                        µ±²»ÊÇʱ£¬ÏµÍ³Ò»¶¨»áÇ¿ÖÆÉèÖÃÒ»¸öʤÕßÏÉÃËID£¬¼´Ê¹¸ÃÏÉÃËÒѾ­½âÉ¢£¡
    Ê×ÂÖÓÐδÕý³£½áÊøµÄ£¬´ÎÂÖ¿ªÊ¼·ÖÅäʱ½øÐв¹´¦Àí
    ´ÎÂÖÓÐδÕý³£½áÊøµÄ£¬ÏÂÖÜ·Ö×鶨¼¶Ê±½øÐв¹´¦Àí
    ²¹´¦ÀíµÄÇé¿ö£¬Ò»¶¨»áÉèÖÃÒ»¸ö»ñʤID
    is`        Á½¸öÏÉÃ˶¼ÒѾ­½âÉ¢£¬Ä¬ÈÏAʤ£¡familyIDA=%s,familyIDB=%s,disFamilyIDList=%s,winFamilyID=%ss_        ¶ÔÕ½ÏÉÃËÒѾ­½âÉ¢, Ö±½Ó»ñʤ: familyIDA=%s,familyIDB=%s,disFamilyIDList=%s,winFamilyID=%ssd        ±ÈÈüÂÖ¿Õ, µ«ÏÉÃËÒѽâÉ¢, Ä¬ÈÏ»ñʤ!familyIDA=%s,familyIDB=%s,disFamilyIDList=%s,winFamilyID=%ssw        ±ÈÈüÒ쳣ûÓÐÕý³£½áÊø, ÓÉϵͳĬÈÏÉèÖÃʤÕß!familyIDA=%s,familyRankA=%s,familyIDB=%s,familyRankB=%s,winFamilyID=%ssM        ±ÈÈüÂÖ¿Õ, ÓÉϵͳĬÈÏÉèÖÃʤÕß!familyIDA=%s,familyIDB=%s,winFamilyID=%ssG        ±ÈÈüÖУ¬²»ÉèÖÃʤÕß!familyIDA=%s,familyIDB=%s,disFamilyIDList=%ss.    »ñʤÏÉÃËÒѽâÉ¢£¡²»·¢·Å½±Àø£¡winFamilyID=%stFamilyMatchOtherRewardiigY@tFairyLeagueCompensationtFamilyMatchRankRewarditFairyLeagueJoinRewardsm    ·¢·Åδ½áËã±ÈÈü½±Àø=roundNum=%s,groupID=%s,winFamilyID=%s,rewardPer=%s,addItemList=%s,joinAwardItemList=%s(RR&RARJRƒR¬R¿RRrRsRÅtGetFuncEvalCfgRRyRItmaxtintRFRÉRÊRdRtPlayerCompensationt SendMailByKey(RRRtisFightRR²R³R´RÒRÖtnotBattleRewardItemListtnotBattleRewardRateListRt    rewardPert playerIDListt addItemListtitemIDt    itemCounttisBindR×RØR    tjoinAwardItemList((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyRõcst                          :1     cCs|tkrûtjƒjtjƒ}|jƒ}xÄt|ƒD]¶}|j|ƒ}|t    |ƒkrjq=nt
|ƒr|q=nt |ƒ}t |ƒ}t |ƒ}tjd||||fƒt|||tƒ|dkr=tjdƒtƒq=q=WdS|tkrtƒndS(NsRÏÉÃËÁªÈüϵͳ´¦Àíδ½áËãµÄ¶ÔÕ½½á¹û! roundNum=%s,groupID=%s,familyIDA=%s,familyIDB=%sis)ÏÉÃËÁªÈüÊ×ÂÖÖ»ÓÐÒ»³¡¶ÔÕ½£¬Ö±½ÓÖ´ÐÐ×ܽáËã!(R“RARBRCRDRZRGRFRHRRRR RRJRõRht__DoLogicFamilyWarAllOverR™(R    RŠtwarCountRLRRRR((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyR•ºs*         
cCs"tjdƒtƒtjƒdS(sl ÏÂÖÜ·Ö×鶨¼¶
        ×îµÍ¼¶±ð×飺 ²»ÉèÖÃÁªÈü¼¶±ð, ÏÂÖÜ×îµÍ¼¶±ð×éÃûµ¥ÓÉÆäËûÎÞÁªÈü¼¶±ðÏÉÃË×ÜÕ½Á¦ÅÅÐеõ½
    s$======= ÏÉÃËÁªÈüÏÂÖÜ·Ö×鶨¼¶ =======N(RARJR RƒR„(((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyRœØs 
cCsŽtjtjƒ}|r)tjdƒdStjdƒidt6dt6}g}i}tjƒ}|jt    j
ƒ}|j ƒs‘tjdƒdSxTt |j ƒƒD]@}|j |ƒ}t|ƒ}t|ƒ}    t|ƒ}
t|ƒ} t|ƒ} t|ƒ} x*| D]"}||kr|j|ƒqqW| sLt||
| tƒ} n|
| krj|j|    dƒnd}| | krŽ|j|    dƒnd}|j|iƒ}|j|
dƒ|||
<|j| dƒ||| <|||<q¤Wg}t}xÇt tƒD]¹}t|}||kr#qn||}g}x6|jƒD](\}}|r@|j||gƒq@q@W|jdtƒg|D]}|d^qƒ}tjd    ||fƒ||7}qWtjd
|ƒ|dgtt|ƒ7}x€t dtƒD]o}|t}|d}||s5tjd |ƒqúntjd ||fƒ||||||<||<qúWtjd |ƒd|kr±||jdƒ }tjd|ƒn|tt }tjd|ƒtjd|ƒg}tj ƒ}t!j"ƒ}x­|D]¥}|j#|ƒ}|s'qnt!j$|ƒ}|s@Pn|j|ƒ||kr_dn|j|ƒd}||kr‘t!j%||ƒntjd|||fƒqWx‘t&|dƒD]€\}}||krÝq¿n|j#|ƒ}|stjd||fƒq¿nd}t!j%||ƒtjd|||fƒq¿Wt!j'ƒ|rdt(|dƒntj)tj*dƒtj)tjdƒdS(sº ÏÉÃËÈüÈ«²¿±ÈÈü½áÊøºóÂß¼­
        ·Ç×î¸ß¼¶±ð×é: µÚÒ»Ãû½ú¼¶
        ·Ç×îµÍ¼¶±ð×é: ×îºóÃû½µ¼¶
        ×îµÍ¼¶±ð×飺 ²»ÉèÖÃÁªÈü¼¶±ð, ÏÂÖÜ×îµÍ¼¶±ð×éÃûµ¥ÓÉÆäËûÎÞÁªÈü¼¶±ðÏÉÃË×ÜÕ½Á¦ÅÅÐеõ½
    s&ÒѾ­´¦Àí¹ýÏÉÃËÁªÈü×ܽáË㣬²»Öظ´´¦Àí£¡Ns2====== ÏÉÃËÁªÈü×ܽáË㣬´¦ÀíÏÉÃ˽ú¼¶¡¢½µ¼¶£¡ ======i
is"ûÓÐÏÉÃËÁªÈü±ÈÈü¼Ç¼£¬²»ÐèÒª½áË㣡itreverses1×éÏÉÃË»ý·ÖÅÅÃû: groupID=%s,groupFamilySortList=%ss»ý·ÖÅÅÐòºóÏÉÃËID: %ss%    ÏÂ×éµÚÒ»ÃûÎÞÏÉÃË£¬²»½»»»!index=%ss$    ½µ¼¶ÏÉÃËË÷Òý=%s£¬½ú¼¶ÏÉÃËË÷Òý=%ss½ú¼¶½µ¼¶ºóÏÉÃËID: %ss³ý0ºóÏÉÃËID: %ss×îÖÕµÄÅÅÃûÏÉÃËID: %ss    ½âÉ¢µÄÏÉÃËID: %ss0¸üÐÂÏÉÃËÆÀ¼¶: familyID=%s,lastRank=%s,updRank=%ss/нúÏÉÃËÆÀ¼¶, ÏÉÃËÒѽâÉ¢!familyID=%s,updRank=%ss0нúÏÉÃËÆÀ¼¶: familyID=%s,lastRank=%s,updRank=%s(+RUR§RXRARJR“R™RBRCRDRZRGRFRHRRR RRR&RIRõRhRÍRÃtitemstsortRjtFamilyWar_MaxFamilyCountRyRÎR×RrRƒRÄRstGetFamilyWarRanktSetFamilyWarRankRÇRÀtUpdFamilyWarChampionRVRW(t    allOverDot Def_WinScoretallDissFamilyIDListtallGroupFamilyScoreDictR‰RŠRLRRR    RRRR)R-t familyScoreAt familyScoreBtgroupFamilyScoreDicttfamilyWarIDRankListtgroupFamilySortListtscoret groupFamilytgroupFamilyIDSortListR×tpreIndextupdFamilyIDListRÒRÓRÖtlastRanktupdRank((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyR ãs¾             $$
 
 
 
 
!     %  
c
Cs&tjƒj|ƒ}tƒ}t|ƒ}t|ƒ}tjd|ƒtjd|ƒt|ƒ}||kr¨|d7}t||ƒtjd|ƒt    |t
ƒn!t    |t ƒt ||ƒt|dƒt |dƒtjdƒtjddƒ}tjdd    ƒ}|d}||ksC||krd|||dkrdt||ƒtjd
|ƒn|r™|jƒ}t||jƒƒt||ƒn tjd ƒtjtj|ƒtjd|ƒtjd d    ƒ}    |    r|rtj||jƒ|    ƒn|r"tjdd |gƒndS(NsÉÏÖܹھüÏÉÃËID: %ss±¾ÖܹھüÏÉÃËID: %sis    ¸üÐÂÁ¬Ê¤: %sis     ¹Ú¾ü±ä¸ü!tFamilyMatchLianWinRewardiis     ÖÕÖ¹¶Ô·½Á¬Ê¤! endWinCount=%ss    ¹Ú¾üÏÉÃ˲»´æÔÚ»òÒѾ­½âÉ¢ÁË!RùtFamilyMatchSecondSessionEnd(RARrRsR†R,R;RJR2R4R…RhRjR.R7RÅRÆR:RtR1t GetLeaderIDR=R RDR¡R€tSendUniversalGameRecSingleR‚tPlayerFamilyRedPackettCreatNewFamilyRedPacketRft WorldNotify(
RŒRÖR+tlastChampionFamilyIDtchampionFamilyNameR3twinRewardStartCounttwinRewardSpaceCountR9t    redPackID((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyRcsH        
 
,    cCsAtjƒ}|jtjƒ}|jƒr7|jdƒS|jƒS(Ni(RARBRCRDR[RGRHRÝ(R‰tchampionRecList((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyR†”s
   cCst|ƒ}t|ƒ}t|ƒ}t|ƒ}t|ƒ}tjddƒ}tjddƒ}tjddƒ}    | s‡| s‡|     r‹dSd}
|s|n||    } t| |d|    ƒ} |oÌ|pÌ| } | ré| ré| d } n| rü| d}
nt    | ƒ}| r|d7}n|dkr+dS|dkrjt
j |ƒ}x!|D]}|dc|9<qMWnt j d||||||||fƒ| r­t j d| ƒn|rÐt j d    ƒt|dƒn|
r÷t j d
|
ƒt||
ƒntjd |g|ƒt j d ƒdS( NR%iiiiiÿÿÿÿs~ϵͳ×Ô¶¯·ÖÅäÁ¬Ê¤½±Àø¸øÃËÖ÷£¡Éϴν±ÀøÁ¬Ê¤´ÎÊý=%s,µ±Ç°Á¬Ê¤Êý=%s,ÖÕ½áÁ¬Ê¤=%s,·ÖÅä´ÎÊý=%s,ÎïÆ·=%s,isAll=%s,familyID=%s,leaderID=%ss    sysAllotWinCountList=%ss#    ÖØÖÃÒÑ·ÖÅäÖÕ½á¶ÔÊÖÁ¬Ê¤´ÎÊý½±Àø!s    ¸üÐÂÒÑ·ÖÅäµ½µÄÁ¬Ê¤´ÎÊý: %stFamilyMatchWinAllotMail2s    -----------------------(R,R/R2R5R8RÅRýRÆtrangeRyRÁRÂRARJR:R7RR(R+tisAllR-R0R3tlastAllotWinCountR9twinRewardItemListR.R/tupdAllotWinCounttstartRewardWinCounttsysAllotWinCountListtisAllotEndWinCountt sysAllotCounttitemInfo((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyR…›sP                    cCsftjƒj|ƒ}|j}|jƒ}|jƒ}|dkrFdS|j|ƒ}|dkredS|jƒt    j
krŽtj d|ƒdS|j ƒ}|j|ƒ}    |    dkrÓtj d||f|ƒdSt ƒ}
t|
ƒ} || krtj d| |f|ƒdSt|
ƒ} | rNt|
dƒtj d|| f|ƒn¦t|
ƒ} t|
ƒ}tjddƒ}tjddƒ}|s–|n||}| |krÍtj d    ||| f|ƒdSt|
|ƒtj d
||f|ƒtjdd ƒ}tjd |g|ƒtj||
ƒ|dd}tjdd|jƒ||    jƒgƒdS( Ns²»ÊÇÃËÖ÷£¬²»ÄÜ·ÖÅäÁ¬Ê¤½±Àø£¡s<ÏÉÃËûÓиóÉÔ±£¬ÎÞ·¨·ÖÅäÁ¬Ê¤½±Àø£¡familyID=%s,memPlayerID=%ss=·ÇÍõÕßÏÉÃË£¬ÎÞ·¨·ÖÅäÁ¬Ê¤½±Àø£¡championFamilyID=%s,familyID=%sis/·ÖÅäÖÕ½áÏÉÃËÁ¬Ê¤½±Àø!familyID=%s,endWinCount=%sR%iis]Á¬Ê¤´ÎÊý²»×㣬ÎÞ·¨·ÖÅäÁ¬Ê¤½±Àø£¡ÒÑ·ÖÅäÁ¬Ê¤½±Àø´ÎÊý=%s,Ï´ÎÁ¬Ê¤½±Àø´ÎÊý(%s) > µ±Ç°Á¬Ê¤´ÎÊý(%s)s*·ÖÅäÏÉÃËÁ¬Ê¤½±Àø!familyID=%s,·ÖÅäÁ¬Ê¤Êý=%sitFamilyMatchWinAllotMail1(RARQtGetPlayerByIndext MemPlayerIDRdt    GetFamilyR‚t
FindMembert GetFamilyLVtIPY_GameServert    fmlLeaderRJRàR†R,R8R:R2R5RÅRÆR7RýRRR€R(RfR+Rt(R×t
clientDatattickRkRÙR^RnRØR-t curTagMemberR+RŒR9R3R5R.R/tnextRewardWinCountR6t notifyItemID((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytOnFamilyWarWinRewardAllotÖsV                          (c
Csí|\}}}}tjtjƒ}tjd|||||fƒ|ttgkrZdStjƒ}|jt    j
ƒ}xt |j ƒƒD]y}|j |ƒ}    |t|    ƒkr¸q‹n|t|    ƒkr‹|t|    ƒkr‹t|    |ƒtjd||fƒPq‹q‹Wtjdtjƒ|tjkr>tjj|ƒn|tjkr`tjj|ƒntjdtjƒtjdt    j
ƒ|tkr·tj r·| r·tjddƒn|tkrÍtj sß|tkré|rétƒndS(NsdÊÕµ½µØÍ¼Í¬²½µÄÏÉÃËÁªÈü½áÊøÊý¾Ý: roundNum=%s,familyIDA=%s,familyIDB=%s,winFamilyID=%s,isFinalMatch=%ss'    ¸üлñʤÏÉÃËID: i=%s,winFamilyID=%ss+    PyGameData.g_familyWarFightingIDList=%sitFamilyMatchFirstSessionEnd(RUR§RWRARJR“R™RBRCRDRZRFRGRHRR RRR>RPtremoveR€RR‚RfR+R (
tmsgListRRRR±R    R‰RŠRLR((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pytMapServer_FamilyWarOver s:     $ 
(WRARÅRCRR€R)RURuR{RfRƒRDR>R¥RÞRÁR“R™RÃRÎRRR‘R”R–R˜RšR›RRRR
R RRRRRRRR R#R&R*R,R.R/R1R2R4R5R7R8R:R;R=RORjR`RlRiRoRmRTR‹RRŽRŸR«R©R’RR‚RÌRÏRáR—RæRõR•RœR RR†R…RJRN(((seE:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldFamilyWar.pyt<module>s¨                    
                                                                 
                                                                                            $         1        G          :     W             €    1        ;    6