cehua_ZWJ
2018-12-22 f87b3a49fb8a6e2dbc500cacb42e94b9dbc189b1
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
Î\c@s•ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z dZ dZ ddd„ƒYZdd d„ƒYZd„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&dS(!iÿÿÿÿNiit CrossPKPlayercBseZd„ZRS(cCs‹d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_    d|_
d|_ d|_ d|_ d|_dS(Nti(taccIDtplayerIDt
playerNamet    playerJobtplayerLVtmaxHPt
fightPowertpkScoretdanLVt    matchTickt    cWinCountt
ondayScoret serverGroupIDtpkZoneIDtseasonID(tself((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyt__init__&s                                                             (t__name__t
__module__R(((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyR#st CrossPKRoomcBseZd„ZRS(cCsXd|_d|_d|_d|_d|_tj|_g|_g|_    t
|_ dS(Ni( RtroomIDtmapIDtopenTickt    readyTickt ShareDefinetDef_VsRoom_State_WaitPlayert    roomStatetroomPlayerIDListtreadyPlayerIDListtFalset    isMapOpen(R((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyR;s                                 (RRR(((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyR8scCstjƒst|ƒndS(N(t    GameWorldt IsCrossServert__OnLoginNotifyPKOverInfo(t    curPlayer((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyt OnPlayerLoginIs  cCst|dƒdS(NtPlayerDisconnect(tSendCancelCrossRealmPKMatch(R$((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyt OnLeaveServerOs cCs#dStjƒjtjƒtjkS(Ni(R!t GetGameWorldt GetDictByKeyRt Def_Notify_WorldKey_MergePKStatetChConfigtDef_Action_Open(((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pytIsCrossRealmPKOpenTscCsItjd|ƒidd6dd6dd6}tjtj||gƒdS(Ns0ͬ²½¿ç·þPKÈü¼¾ÐÅÏ¢¼°×´Ì¬µ½×Ó·þ: serverGroupID=%sitSeasonIDt SeasonStatet
MatchState(R!tLogt CrossRealmMsgtSendMsgToClientServerRtCrossServerMsg_PKSeasonInfo(Rttickt
seasonInfo((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pytClientServerMsg_ServerInitOKYscCsätjƒrdStƒsdS|jƒ}|rbtj|ƒdkrbtjd||jƒƒdSi|jƒd6|jƒd6|j    ƒd6|d6|d6}t
j t j |ƒtj|dƒtjd    t|ƒ|jƒƒdS(
Nis)Íæ¼Ò¿ç·þPK״̬£¬²»ÄÜÈ¡ÏûÆ¥Å䣡vsRoomID=%sRRRtreasontvsRoomIDis*·¢ËÍÈ¡Ïû¿ç·þPKÆ¥Åäµ½¿ç·þ·þÎñÆ÷£ºdataMsg=%s(R!R"R.t GetVsRoomIdt PlayerControltGetCrossRealmStatetDebugLogt GetPlayerIDtGetAccIDtGetNameR3tSendMsgToCrossServerRtClientServerMsg_PKCancelt SetVsRoomIdR2tstr(R$R9R:tdataMsg((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyR'`s"        
 c CsÚtjƒstjdƒdStƒs7tjdƒdS|d}|d}|d}|d}|d}|d}|d    }    |d
}
|d } |d } |d } |d}|d}tjj|gƒ}tƒ}||_    ||_
||_ ||_ |    |_ |
|_| |_| |_| |_||_||_||_||_||_||_|tj|<|j|ƒ|tj|<tjd|||||| | |t|ƒf    ƒtjtj|dg|gƒdS(Ns"·Ç¿ç·þ·þÎñÆ÷²»´¦Àí¿ç·þPKÆ¥ÅäÇëÇó£¡s&¿ç·þÆ¥ÅäPK»î¶¯Î´¿ªÆô£¬²»ÔÊÐíÇëÇóÆ¥Å䣡RRRRRRRRRR    R
R R sÍæ¼Ò¼ÓÈëÆ¥Åä: seasonID=%s,pkZoneID=%s,serverGroupID=%s,accID=%s,playerID=%s,pkScore=%s,fightPower=%s,cWinCount=%s,len(zoneMatchPlayerList)=%si(R!t IsMergeServertErrLogR.R2t
PyGameDatatg_crossPKZoneMatchPlayerDicttgetRRRRRRRR    R
RR R R RRRtg_crossPKPlayerDicttappendtlenR3R4RtCrossServerMsg_PKMatchReqRet(RtplayerInfoDictR6RRRRRtjobRRRR    R
R R tzoneMatchPlayerListtpkPlayer((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pytClientServerMsg_PKMatchsV       
 
 
 
 
 
 
 
 
 
 
 
 
 
                                                                       )c     Cs1tjƒstjdƒdStƒs*dS|d}|d}|d}|d}|tjkr˜tj|}|js€|jr˜tjd|ƒdSntjd||||fƒd}|tj    krtj    j
|ƒ}|j }tjd    |||fƒntj j |gƒ}    ||    krJ|    j|ƒtjd
t|    ƒƒnxàtjjƒD]Ï\}
}||jkr{qZnx‰|jD]~} | |kr´tjd |
|fƒq…ntj j |gƒ}    |    j| ƒ|    tj |<tjd |
| t|    ƒfƒq…Wtjj
|
ƒtjd |
ƒPqZWdS(Ns"·Ç¿ç·þ·þÎñÆ÷²»´¦ÀíÈ¡Ïû¿ç·þPKÆ¥Å䣡RRR9R:sQ¿ç·þ¶ÔÕ½·¿¼äÒѾ­¿ªÆôÁËÏß·£¬»òÕßË«·½Êý¾Ý¶¼ÒÑ´«ÊäÍê±Ï£¬²»¿ÉÔÙÈ¡ÏûÆ¥Å䣡vsRoomID=%ss8Íæ¼ÒÈ¡ÏûÆ¥Åä: reason=%s,accID=%s,playerID=%s,vsRoomID=%sis0    ÒƳýPKÍæ¼Ò: pkZoneID=%s,accID=%s,playerID=%ss)    ´ÓÆ¥Åä¶ÓÁÐÖÐɾ³ý£¬Æ¥Åä¶ÓÁÐÊ£ÓàÈËÊý=%ss%    ×Ô¼º²»´¦Àí: roomID=%s,playerID=%ssO    ½«Ö®Ç°Æ¥ÅäµÄ¶ÔÊÖÖØÐ¼ÓÈëÆ¥Åä¶ÓÁÐ: roomID=%s,roomPlayerID=%s,µ±Ç°Æ¥ÅäÈËÊý=%ss    ÒƳý·¿¼ä: popRoomID=%s(R!RGRHR.RItg_crossPKRoomDictR RR2RLtpopRRJRKtremoveRNtitemsRRM( RPR6RRR9R:tpkRoomRRSRRRt roomPlayerID((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyRCÀsP      
 
 
 
              cCstjƒstjdƒdS|d}|d}|d}|tjkretjd||fƒdS|tjkr‰tjd|ƒdStj|}|jtjkrÀtjd|jƒdS||j    krâ|j    j
|ƒntj d|||fƒdS(    Ns"·Ç¿ç·þ·þÎñÆ÷²»´¦ÀíÈ¡Ïû¿ç·þPKÆ¥Å䣡RRR:sGÍæ¼Ò¿ç·þ¶ÔÕ½Êý¾Ý×¼±¸OK, µ«ÕÒ²»µ½¸Ã¶ÔÕ½Íæ¼ÒÐÅÏ¢£¡vsRoomID=%s,playerID=%ss@Íæ¼Ò¿ç·þ¶ÔÕ½Êý¾Ý×¼±¸OK, µ«ÕÒ²»µ½¸Ã¶ÔÕ½·¿¼ä(%s)£¡¿ÉÄܶÔÊÖÒÑÈ¡Ïû£¡s8Íæ¼Ò¿ç·þ¶ÔÕ½Êý¾Ý×¼±¸OK, µ«·¿¼ä״̬·ÇµÈ´ý״̬, state=%s£¡s4Íæ¼Ò¿ç·þPK×¼±¸Íê±Ï: accID=%s,playerID=%s,vsRoomID=%s( R!RGRHRIRLRURRRRRMR2(RPR6RRR:tvsRoom((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pytClientServerMsg_PKPrepareOKøs(  
 
 
 c Cs§g}g}x^tjjƒD]M\}}|jtjkr@qn|jsOqnd}t}g}i}x›|jD]}    |    |jks•|    tj    krŸt
}Pntj    |    }
|
j }|j |
j ƒi|
j d6|
jd6|
jd6|
jd6|
jd6||    <qqW|sqntj|_||_tjd|||jt|ƒfƒ|j ||gƒ||7}qW|r£tjdt|ƒƒtjtj||ƒndS(    Nit ServerGroupIDtNametJobtLVtMaxHPsC    ×¼±¸ºÃµÄ·¿¼ä: pkZoneID=%s,roomID=%s,mapID=%s,readyMemberDict=%ss    ÒÑ×¼±¸ºÃµÄ¶ÔÕ½·¿¼äÊý: %s(RIRURXRRRRtTrueRRLRRRMRRRRRtDef_VsRoom_State_PrepareFightRR!R2RRERNR3R4t CrossServerMsg_PKReadyOKRoomList( R6tserverGroupIDListtsendReadyOKRoomListRR[Rt
isAllReadytroomGroupIDListtreadyMemberDictRZt
roomPlayer((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyt__ReadyOKRoomPlayerProcesss>         )     &cCsõtjƒsdStƒsdStjddƒd}d}tjƒj|ƒ}|||krbdStjƒj||ƒt|ƒt    |ƒtjddƒ}tjddƒd}x:t
j j ƒD])\}}t |ƒ}|dkrîqÄntjd||fƒg}    x7|D]/}
|
t
jkr-qn|    jt
j|
ƒqWt|    dtjd    ƒƒ} t|    dtjd
ƒƒ} g} t| | || |ƒt | ƒ|kr¼t| || ƒn| | } t|| |ƒtjd t | ƒƒqÄWdS( NtCrossRealmPKMatchiiètPKMatchLastTickiisN¡ï¡ï¡ï¡ï¡ï¡ï¡ï¡ï¡ï¡ï¿ªÊ¼¿ç·þPKÆ¥Åä(pkZoneID=%s, ×ÜÈËÊý:%s)¡ï¡ï¡ï¡ï¡ï¡ï¡ï¡ï¡ï¡ïtkeyR R    s+==========Æ¥Åä½áÊø(×ÜÆ¥Åä¶ÓÎé:%s)==========(R!RGR.t IpyGameDataPYt
GetFuncCfgR)R*tSetDictt__DoCheckRoomTimeoutRkRIRJRXRNR2RLRMtsortedtoperatort
attrgettert__DoMatch_OutTimePlayert__DoMatch_DanScorePlayert __DoSetVSRoom(R6t processTicktprocessTickKeytlastProcessTickt maxGroupCntt outTimeTickRtmatchPlayerIDListtmatchPlayerCounttmatchPlayerListt matchPlayerIDtmatchTickSortListt scoreSortListtmatchPlayerVSList((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pytOnPKMatchProcessCsD     
 
 
c Csstjd||fƒtjdt|ƒƒx>t|ƒD]0\}}t|ƒdkrttjdt|ƒƒPn||j|krœtjd|ƒPntjd|||j||j|fƒ||kråtjdƒq;n|j|ƒ}|t|ƒdkr.|d}tjd||fƒnÑ|d    kr^|d}tjd
||fƒn¡|d}    |d}
||    } ||
} t| j|jƒ} t|j| jƒ}| |krÄ|    n|
}tjd ||j|    | j|
| j| ||f    ƒ||kr*|j|ƒ|j|ƒ}n.||kr;|j|ƒ}|j|ƒnq;|j    ||gƒq;Wd S( s‚Æ¥Åä³¬Ê±Íæ¼Ò
        Æ¥ÅäÖеÄÍæ¼Ò°´»ý·ÖÅÅÐò£¬×îºóÒ»¸öĬÈÏÆ¥ÅäÉÏÒ»¸ö£¬µÚÒ»¸öĬÈÏÆ¥ÅäÏÂÒ»¸ö£¬ÆäËûÆ¥Åäǰºó»ý·Ö²î¾ø¶ÔÖµ½ÏСµÄÒ»¸ö
    s1 ==ÓÅÏÈÆ¥Å䳬ʱµÈ´ýÍæ¼Ò==×î´óµÈ´ýʱ¼ä:%s, tick=%ss scoreSortListLen=%sis    µ±Ç°Íæ¼ÒÊý%s<=1£¬²»ÔÙÆ¥Å䣡s    i=%s,Íæ¼Òδ³¬Ê±£¬²»ÔÙÆ¥Å䣡s.    i=%s,³¬Ê±Íæ¼Ò, %s-%s=%s >= outTimeTick(%s)s        ÒѾ­±»Æ¥Åä×ßÁË£¡s>        ³¬Ê±Íæ¼Ò»ý·ÖÅÅÐòË÷Òý%s,×îºóÒ»¸ö,ĬÈÏÆ¥ÅäÉÏÒ»¸öË÷Òý%s£¡is<        ³¬Ê±Íæ¼Ò»ý·ÖÅÅÐòË÷Òý%s,µÚÒ»¸ö,ĬÈÏÆ¥ÅäÏÂÒ»¸öË÷Òý%s£¡sf        ³¬Ê±Íæ¼Ò»ý·ÖÅÅÐòË÷Òý-»ý·Ö(%s-%s),ÉÏÒ»¸ö(%s-%s),ÏÂÒ»¸ö(%s-%s),preDiff=%s,nextDiff=%s,vsIndex=%sN(
R!R2RNt    enumerateR tindextabsR    RVRM(R‚RƒR}R„R6tit matchPlayert outTimeIndextvsIndextpreIndext    nextIndext    prePlayert
nextPlayertpreDifftnextDifftvsPlayer((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyRvsP    !  
 
 
 
 
 
       c
Cswtjd|t|ƒfƒi}x@|D]8}|j}|j|gƒ}|j|ƒ|||<q*W|jƒ}tj|ƒtjdt|ƒ|fƒxe|D]]}g}x1||D]%}    |j|    j    |    j
|    j fƒqºWtjd|t |ƒfƒq£Wd}
xft|ƒ|krr|
|krr|
d7}
t } x|D]}||}t|ƒ} | dkr‡tjd|
|fƒqBntjt| ƒdƒ} | jƒ|j| dƒ}|j| dƒ}|j||gƒt} tjd|j    |j
|j |j    |j
|j fƒt|ƒ|krBtjd    t|ƒ|
fƒPqBqBW| s tjd
|
ƒPq q Wd S( sq Æ¥Åä»ý·Ö·Ö¶ÎÍæ¼Ò
            Æ¥ÅäÖеÄÍæ¼Ò°´¶Îλ»ý·Ö¹é×飬¹é×éºó£¬Ëæ»ú¶Îλ˳Ðò£¬Ã¿¸ö¶Îλ×éÖеÄÍæ¼ÒËæ»úÁ½Á½PK
    s8 ==Æ¥Åä»ý·Ö·Ö¶ÎÍæ¼Ò== maxGroupCnt=%s,scoreSortListLen=%ss    »ý·Ö·Ö¶Î¸öÊý: %s, %ss        »ý·Ö¶Î×é, danLV=%s, %siiis8    ¶ÎλÈËÊýÉÙÓÚ2¸ö£¬´Ë¶Îλ±¾ÂÖÂÖ¿Õ£¡doCount=%s,danLV=%ssP    ³É¹¦Æ¥ÅäÍæ¼Ò: aPlayerID=%s,aScore=%s,aFP=%s VS bPlayerID=%s,bScore=%s,bFP=%ss=    ÒѾ­´ïµ½×î´óÆ¥ÅäÊý! ÒÑÆ¥Åä¶ÔÕ½Êý=%s, ²»ÔÙÆ¥Å䣡doCount=%ss4    ÒѾ­Ã»ÓÐÂú×ãÆ¥ÅäÌõ¼þµÄÍæ¼Ò! ²»ÔÙÆ¥Å䣡doCount=%sN(R!R2RNR
RKRMtkeystrandomtshuffleRR    RRERtsampletxrangetsortRVRb(RƒR|R„tdanPlayerListDictRŠR
t danPlayerListtdanListtstrListtplayertdoCountt    isMatchOKtdanPlayerCountt vsIndexListtaPlayertbPlayer((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyRw¼sP         #!!
 
 
    ,c
Cs*|s
dSi}g}tjj|gƒ}tjddƒ}tjd|t|ƒfƒxª|D]¢\}}| sa| rqan|j}    |j}
|    tj    ks±|
tj    krÎtj
d|    |
fƒqant ƒ} | s÷tj
dtj ƒqant j|ƒ} tƒ} || _| | _| | _|| _|    |
g| _| tj| <|j|j}}tjd|| | |    |
fƒ| ||    g||
ggg|| <|j|ƒ|j|ƒ|    |krÚ|j|    ƒn|
|krö|j|
ƒn|tj|<qaW|r&tjtj||ƒndS(NRlis/===¸øÅä¶ÔµÄÍæ¼Ò¿ª·¿¼ä(pkZoneID=%s,Åä¶ÔÊý:%s)===s+Íæ¼ÒÆ¥ÅäÊý¾ÝÒì³££¡aPlayerID=%s,bPlayerID=%ss;ÎÞ·¨´´½¨·¿¼ä£¡¸Ã·¿¼äÒѾ­´æÔÚ£¡PyGameData.g_crossPKRoomID=%ssA    ¿ª·¿:pkZoneID=%s,mapID=%s,roomID=%s,aPlayerID=%s,bPlayerID=%s(RIRJRKRoRpR!R2RNRRLRHt__GetNewRoomIDtg_crossPKRoomIDR•tchoiceRRRRRRRURRMRWR3R4RtCrossServerMsg_PKMatchResult(RR„R6t
vsRoomDictReRRt    mapIDListR£R¤t    aPlayerIDt    bPlayerIDRRtnewRoomtaServerGroupIDtbServerGroupID((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyRxôsP                                  "    cCsYxRtdƒD]D}tjd}|dkr5d}n|t_|tjkr |Sq WdS(Nidiiúÿi(R˜RIR¦RU(t_t    newRoomID((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyR¥-s          c     CsKi}g}d}xtjjƒD]\}}|js"|j rGq"n||j|kr`q"n|j}tjd|||j|j|fƒg}xr|j    D]g}tj
j |dƒ}    |    sÆqŸn|    j }
tjd|
|fƒ|j|
ƒ|j|
|gƒqŸW|||<tjj |ƒq"W|rGtjtj||ƒndS(Ni´ièshPK·¿¼äµÈ´ýÍæ¼Ò½øÀ´³¬Ê±£¬Ã»ÓÐÍæ¼Ò½øÀ´£¬¹Ø±Õ¸Ã·¿¼ä£¡pkZoneID=%s,roomID=%s,openTick=%s,readyTick=%s,tick=%ssB    ÒƳýÍæ¼Ò£¬Íæ¼ÒÐèÖØÐÂÊÖ¶¯Æ¥Å䣬serverGroupID=%s,roomPlayerID=%si ¿(RIRURXR RRR!R2RRRLRVtNoneRRMR3R4Rt CrossServerMsg_PKTimeoutRoomList( R6ttimeoutRoomDictRet roomTimeoutRRYRtroomPlayerInfoRZRSR((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyRr8s2             
cCsY|d}|tjkr.tjd|ƒdStj|}t|_tjd|ƒdS(Nis4MapServer_CrossPKRoomOpen => PK·¿¼ä²»´æÔÚ£¡roomID=%ss&MapServer_CrossPKRoomOpen => roomID=%s(RIRUR!RHRbR R2(tmsgListRRY((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pytMapServer_CrossPKRoomOpenXs
     c*Cs˜tjdt|ƒƒ|\}}}}}|tjkrPtjd|ƒdStjj|ƒ}|j}| r²| r²tjdƒ| sŸt|ƒdkr£dS|\}}n0|sâx'|D]}||kr¿|}Pq¿q¿Wn||ksú||krtjd||||jfƒdS|tj    krHtjd||fƒdS|tj    krrtjd||fƒdStj    j|ƒ}    tj    j|ƒ}
|    j
} |    j } |    j |
j } }|    j |
j }}td| |    jƒtd||
jƒ}}tjd    || || fƒtjd
|||fƒtjd |ƒ}tjd |ƒ}| sd| rtjd |||fƒntjd dƒ}t|ƒdkr¯|dnd}t|ƒdkrÑ|dnd}ttjd dƒƒ}d}||}||}tjd dƒ}|rh|dkrCt|||ƒ}n|dkrht|||ƒ}qhn|    j |7_ |
j |7_ |    j d7_ d|
_ |r×|jƒr×|    j |jƒkr×|    j d7_ n|r|jƒr|
j |jƒkr|
j d7_ ntjd||||    j |    j |    j fƒtjd||||
j |
j |
j fƒtjƒ}i}xÌ||gD]¾}||krÞ|    j|    j |    j |    j ||
j|
jf\} }!}"} }#}$}%nB|
j|
j |
j |
j ||    j|    jf\} }!}"} }#}$}%tjƒj|ƒ}&|&rAtnt}'|| ||||g| |!|"| |#|$|%|'g||<|&s‹q‡nt j!ƒ}(||(_"||(_#||(_$||(_%t|(j%ƒ|(_&|#|(_'|!|(_(|"|(_)| |(_*|%|(_+t|(j+ƒ|(_,t-j.|&|(ƒtjd| ||#|!|"| |$f|ƒq‡W|    j|
jg})tjd| |||||fƒt/j0t1j2||)ƒdS(Ns ÊÕµ½MapServer_¿ç·þPKÕ½¶·½á¹û: %ss¿ç·þPK·¿¼äÊý¾Ý²»´æÔÚ£¡roomID=%ss)µØÍ¼Ã»ÓнáËã¿ç·þPKʤ¸ºÍæ¼Ò£¬Ëæ»úÍæ¼Ò»ñʤ!isT¿ç·þPK·¿¼ä¼°Íæ¼Ò²»Æ¥Å䣬²»½áË㣡roomID=%s,winnerID=%s,loserID=%s,roomPlayerIDList=%ss3¿ç·þPK·¿¼ä»ñÈ¡²»µ½Íæ¼ÒPKÊý¾Ý, roomID=%s,winnerID=%ss2¿ç·þPK·¿¼ä»ñÈ¡²»µ½Íæ¼ÒPKÊý¾Ý, roomID=%s,loserID=%sis<winnerDayScore=%s,winnerScore=%s,winnerDanLV=%s,cWinCount=%ss,loserDayScore=%s,loserScore=%s,loserDanLV=%stCrossRealmPKDans>¿ç·þPK·¿¼ä¶ÎλÊý¾ÝÒì³£! roomID=%s,winnerDanLV=%s,loserDanLV=%stCrossRealmPKScoreiisSwBaseScore=%s,wExScore=%s,winnerAddScore=%s,updScore=%s,updDanLV=%s,updCWinCount=%ssRlBaseScore=%s,lExScore=%s,loserAddScore=%s,updScore=%s,updDanLV=%s,updCWinCount=%ssfͬ²½Íæ¼ÒPK½á¹û: serverGroupID=%s,roomID=%s,addScore=%s,pkScore=%s,danLV=%s,cWinCount=%s,tagPlayerID=%ss_ͬ²½×Ó·þÕ½¶·½á¹û: seasonID=%s,timeStr=%s,roomID=%s,overType=%s,winnerID=%s,roundWinnerIDList=%s(3R!R2RERIRURHRVRRNRLRR R    R
tmaxR RotGetIpyGameDatatGetFuncEvalCfgtevaltGetFuncCompileCfgRptmint GetLVUpScoretGetCurrentDataTimeStrRRRtGetPlayerManagertFindPlayerByIDRbRtChPyNetSendPackttagGCCrossRealmPKOverInfotTimeStrtOverTypetWinnerIDt RoundWinnerIDt
RoundCounttAddScoretScoretDanLVtCWinCnttTagNamet
TagNameLent NetPackCommont SendFakePackR3R4RtCrossServerMsg_PKOverInfo(*tinfoListRtwinnerIDtloserIDtroundWinnerIDListtoverTypeR[RRZtwinnertloserRR t winnerScoret
loserScoret winnerDanLVt
loserDanLVtwinnerDayScoret loserDayScoret
winIpyDatat loseIpyDatat baseScoreListt
wBaseScoret
lBaseScoretwExScoretlExScoretwinnerAddScoret loserAddScoret dayMaxScorettimeStrtplayerOverDictRRR    R
taddScoret tagPlayerIDt tagPlayerNameRžt notifyStatetoverPackRe((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pytMapServer_MergePKOverbs¾                    -""
 
      '',,  EB#                                         $    cCst|\}}tjƒj|ƒ}|s+dS|dkrKtj|dƒdS|dkrptj|tjƒƒndS(Niþÿÿÿt InCrossPKingi(    R!RÃRÄR<t
NotifyCodeRÒRÓRÅttagGCCrossRealmPKStartMatch(tretInfoRtresultR$((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyROås   c
Cs›tjƒ}tj}tjddƒ}tjd|ƒ|sOtjdƒdSxE|jƒD]7\}}|\}}tjd||fƒxt    |ƒD]÷\}}    |    \}
} |
|krÙtj
d| |
fƒq˜ntj ƒj | ƒ} | s tj
d| ƒq˜nt j| ƒr1tj
d| ƒq˜nt j| |tƒt|ƒ|kr`||n|d    \} }tj| |||d    | |ƒq˜Wq\WdS(
NRlis/=== ÊÕµ½PKÆ¥Åä½á¹û´¦Àí  === curServerGroupID=%ssûÓÐÅäÖöÔÕ½µØÍ¼½øÈë×ø±ê£¡s    roomID=%s,playerList=%ss9        ²»ÊDZ¾·þÍæ¼Ò£¬²»´¦Àí!playerID=%s,serverGroupID=%ss        Íæ¼Ò²»ÔÚÏß, playerID=%ss        Íæ¼ÒÍÑ»úÖÐ, playerID=%si(R!tGetServerGroupIDRtDef_MergeAction_MergePKRoR½R2RHRXR†R>RÃRÄR<tGetIsTJGRDRbRNtCrossRealmPlayertSendCrossRealmReg(R©tcurServerGroupIDt
actionTypet
mapPosListRtroomInfoRt
playerListR‰t
playerInfoRRRžtposXtposY((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyR¨õs4         ,'c Cstjƒ}tjd|ƒxì|D]ä\}}xÕ|jƒD]Ç\}}|d}|d}||kr†tjd||fƒq=ntjƒj|ƒ}|s¸tjd|ƒq=ntj|ƒrÞtjd|ƒq=n|j    t
j dƒt j ƒ}    xy|jƒD]k\}
} |
|kr
|
|    _| d|    _t|    jƒ|    _| d|    _| d    |    _| d
|    _Pq
q
Wtj|dƒt jƒ} || _|| _t| jƒ| _|    g| _t| jƒ| _tj|| ƒtjd |||    jfƒq=Wq$WdS( NsH===ÊÕµ½¿ç·þ·þÎñÆ÷֪ͨÒÑ×¼±¸ºÃµÄ¶ÔÕ½PK·¿¼äÐÅÏ¢´¦Àí=== curServerGroupID=%sR]R^s5    ²»ÊDZ¾·þÍæ¼Ò£¬²»´¦Àí!playerID=%s,serverGroupID=%ss    Íæ¼Ò²»ÔÚÏß , playerID=%ss    Íæ¼ÒÍÑ»úÖÐ, playerID=%siR_R`RasF    Í¨ÖªÍæ¼Ò½øÈë¿ç·þPK¶ÔÕ½·¿¼ä! roomID=%s,playerID=%s,matchPlayerID=%s(R!RùR2RXR>RÃRÄR<RûRqR,t"Def_PlayerKey_IsLoginToMergeServerRÅttagGCCrossRealmPKMatchPlayertPlayerIDt
PlayerNameRNtNameLenR_R`RatSetCrossRealmStatettagGCCrossRealmPKMatchOKtRoomIDt MatchPlayertMatchPlayerCountRÒRÓ( treadyOKRoomListRþRRiRRRRRžRŠt readyPlayerIDtreadyPlayerInfot matchOKPack((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyRdsJ 
 
                     %cCs/tjƒ}tjd|ƒx |jƒD]ý\}}|sBq*n|\}}||krwtjd||fƒq*ntjƒj|ƒ}|s©tjd|ƒq*ntj|ƒrÏtjd|ƒq*n|j    ƒ}|r||krtjd|ƒq*n|j
t j dƒtj |dƒq*WdS(NsF===ÊÕµ½¿ç·þ·þÎñÆ÷֪ͨÒѳ¬Ê±µÄ¶ÔÕ½PK·¿¼äÐÅÏ¢´¦Àí=== curServerGroupID=%ss5    ²»ÊDZ¾·þÍæ¼Ò£¬²»´¦Àí!playerID=%s,serverGroupID=%ss    Íæ¼Ò²»ÔÚÏß , playerID=%ss    Íæ¼ÒÍÑ»úÖÐ, playerID=%ss    ·¿¼äID²»Í¬, playerID=%si(R!RùR2RXR>RÃRÄR<RûR;RqR,RR (R´RþRR¶RRRžtplayerVSRoomID((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyR³Is.    cCstjƒ}tjd|ƒx[|jƒD]M\}}|\}}}}}}    }
} } } }}}}|
|krtjd||
fƒq*n||||||    | | | ||||g }tjƒj|ƒ}| sçtj|ƒr tjd|ƒ|t    j
|<q*nt |ƒ}|j ddd|t |ƒƒtjd||||||    | | | ||||jƒf |ƒq*WdS(Ns8===ÊÕµ½¿ç·þ·þÎñÆ÷ͬ²½µÄ¿ç·þPK½á¹û=== curServerGroupID=%ss5    ²»ÊDZ¾·þÍæ¼Ò£¬²»´¦Àí!playerID=%s,serverGroupID=%ss>    Íæ¼Ò²»ÔÚÏß »òÍÑ»úÖУ¬ÏÈ»º´æ£¬Íæ¼ÒÉÏÏߺóÔÙͬ²½£¬playerID=%sitCrossPKOverInfos¶Í¨ÖªµØÍ¼¿ç·þPK½áËã: roomID=%s,seasonID=%s,timeStr=%s,overType=%s,winnerID=%s,roundWinnerIDList=%s, pkScore=%s,danLV=%s,cWinCount=%s,addScore=%s,tagPlayerID=%s,notifyState=%s,mapID=%s(R!RùR2RXR>RÃRÄR<RûRItg_crossPKUnNotifyOverInfoREtMapServer_QueryPlayerResultRNtGetMapID(RíRþRtoverInfoRRRìRÙRÖRØRR    R
R RîRïRðRñtsendMapOverInfoRžtsysMsg((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyRÔhs$ 0 -      <cCs|jƒ}|tjkrdStjj|ƒ}tj|dƒt|ƒ}|jddd|t|ƒƒt    j
d|j ƒ|f|ƒdS(NiRs8Íæ¼ÒÉÏÏß֪ͨµØÍ¼Î´½áËãµÄ¿ç·þPK½áËã: mapID=%s,overInfo=%s( R?RIRRVR<R RERRNR!R2R(R$RRR((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyR#‚s   ((('R!R<R3RüRÅRÒRoRRIR,RtR•tPKPlayerState_MatchingtPKPlayerState_FightingRRR%R(R.R8R'RTRCR\RkR…RvRwRxR¥RrR¸RóROR¨RdR³RÔR#(((s_E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\CrossRealmPK.pyt<module>sL                                !    ?    8        -    >    ;    8    9              
    ƒ             4