cehua-TT
2018-09-21 3b92f6e8c56c92c6b5d078309c8a06a8034ec484
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
=Œ˜[c@sÃddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZdad„Zd„Zddd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zdd„Z dgd„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/de0fd „ƒYZ1d!„Z2d"„Z3d#„Z4d$„Z5d%„Z6d&„Z7dgd'„Z8d(„Z9d)„Z:e;d*„Z<d+„Z=dd,„Z>d-„Z?d.„Z@d/„ZAd0„ZBd1„ZCd2„ZDd3„ZEd4„ZFdS(5iÿÿÿÿNicCsþg}d}t|ƒ}tj|ƒ}||krNtjd||fƒdStjd||fƒxq||D]e}x\|D]T}t|ƒ}t|ƒ}|dkr­q}nt|dƒtjd||fƒq}WqpWtj    ||ƒtjd|ƒdS(NtResetBossKilledCntVers,ÒѾ­ÖØÖùýboss±»»÷ɱ´ÎÊý!curVer=%s,maxVer=%ss*¿ªÊ¼ÖØÖÃboss±»»÷ɱ´ÎÊý!curVer=%s,maxVer=%sis/    ÖØÖÃboss±»»÷ɱ´ÎÊý: bossID=%s,Òѱ»É±´ÎÊý=%ss    ÖØÖóɹ¦: maxVer=%s(
tlentPlayerDBGSEventtGetDBGSTrig_ByKeyt    GameWorldtDebugLogtLogt__GetBossRecDataByIDt__GetKilledCntt__SetKilledCnttSetDBGSTrig_ByKey(t resetVerInfot
resetDBKeytmaxVertcurVertresetBossIDListtbossIDt bossPrizeRect    killedCnt((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt#CheckResetBossKilledCntOnServerInit@s&       cCsÅt|ƒdkrdS|d}|dkr0dS|d}|d}|d}t|ƒdkrj|dnt}t|ƒdkrŒ|dnd}t|ƒ}t|ƒ}    tjd||||||    fƒ|rë|     rëtjdƒdStt    j    ƒƒ}
t
|ƒ} t | |
||ƒ|rYt | ƒ} t | | dƒtjd    || fƒn|r–t|dƒt||
ƒtd|gƒt|ƒntjd
dƒ} || krÁt|ƒndS( Niiiiiisk»÷ɱÊÀ½çboss DoGameWorldBossOnKilled...bossID=%s,hurtValue=%s,mapID=%s,tick=%s,isMapNeedShunt=%s,isAlive=%ssPÐèÒª·ÖÁ÷µÄµØÍ¼boss±»»÷ɱ£¬µ«Êǵ±Ç°bossÈ«¾Ö״̬ΪËÀÍö״̬£¬²»ÔÙ¸üÐÂboss»÷ɱÐÅÏ¢£¡s5    addBossKillCnt: killPlayerName=%s,befKilledCnt=%stFairyGrabBossID(RtTruetNonetIsMapNeedBossShuntt __GetIsAliveRRRtintttimeRt__SetKillRecordRR    t __SetIsAlivetSetBossRefreshTimet Sync_BossInfotSendMapServerBossKilledCntt IpyGameDataPYtGetFuncEvalCfgtOnFamilyKillHorsePetRobBoss(tmsgListttickRtkillPlayerNamet    hurtValuet isAddKillCnttisNotifytmapIDtisMapNeedShunttisAlivet
killedTimeRt befKilledCntthorsePetRobBossIDList((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytDoGameWorldBossOnKilled`sB
 
 
 
""               cs”xKtjD]@}||dkr
|r3||d<n|rF||d<nPq
q
Wttjƒƒ‰tjjd‡fd†ƒtjdtjƒdS(Niiitkeycstd|dˆ|dƒS(Niii(tmax(tasd(tcurTime(s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt<lambda>˜ss'    PyGameData.g_sortBOSSRefreshList=%s(t
PyGameDatatg_sortBOSSRefreshListRRtsortRR(RR,t refreshTimetbossInfo((R3s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt__UpdateBossRefreshLists  cCs:t|ƒdkrdS|d}|d}t|ƒdkrF|dnd}t|ƒdkrh|dnd}tjd|||||fƒ|dkrždSt|ƒ}|sÃt|||ƒn|rÜt|||ƒn|t|ƒkrt||ƒt    d|gƒn|r6|t
j kr6t
j j |ƒndS(NiiiisPÊÀ½çboss DoGameWorldBossOnReborn...mapID=%s,lineID=%s,bossID=%s,state=%s,tick=%s( RRRRRtDoRemoveBossShuntPlayerByNPCIDt__UpdBossLineStateRRRR5tg_familyOwnerBossInfotpop(R#R$RR+R)tlineIDR*((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytDoGameWorldBossOnReborn s(
 
""    cCsÎ|dkrdStjj|gƒ}|rG||krG|j|ƒn'| rj||krj|j|ƒndS|tj|<|s”tjj|ƒn|tjkr¶tjj|ƒntj    dtjƒdS(Ns    bossÒÑËÀÍöÏß·±ä¸ü: %s(
RR5tg_bossShuntDeadLinetgettremovetappendR>tg_bossShuntDeadLineChangeBossRR(RR?R+tbossDeadLineList((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR<Às  cCs”tƒ}d}xEt|jƒƒD]1}|j|ƒ}|jƒ|kr"|}Pq"q"W|dkrtjd|ƒ|jƒ}|j    |ƒn|S(Ns)ÊÀ½çboss id=%s Î´ÕÒµ½ÒÑÓмǼ£¡Ìí¼ÓмǼ(
t__GetBossPrizeRecDataRtrangetCounttAtt    GetValue1RRtAddRect    SetValue1(RtrecTypeListDatatbossRectindextuniversalRecData((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRÙs      cCs|j|ƒdS(N(t    SetValue3(trecR((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR    îs cCs
|jƒS(N(t    GetValue3(RS((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRñscCs!tjƒjtj||ƒdS(N(Rt GetGameWorldtSetDicttChConfigtDef_WorldKey_BossIsAlive(RR+((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR÷scCstjƒjtj|ƒS(N(RRUt GetDictByKeyRWRX(R((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRþscCsªt|ƒ}|r!|jdƒng}|rJ|jd|||fƒn|jd||fƒt|ƒdkr}|d=ndj|ƒ}|j|ƒ|j|ƒdS(Ns|s%s_%s_%ss%s_%sii(t__GetKillRecordtsplitRDRtjoint SetStrValue3t    SetValue2(RSR,t
playerNameR&t
killRecordtkillRecordList((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRs 
  cCs
|jƒS(N(t GetStrValue3(RS((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRZscCs(tj}tjƒ}|j|ƒ}|S(N(t ShareDefinet!Def_UniversalGameRecType_BossInfoRtGetUniversalRecMgrt GetTypeList(trecTypetuniversalRecMgrRN((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRG s     cCsdS(N((R((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR'sc CsÚttjƒƒ}tjƒ}tƒ}g|_xæt|jƒƒD]Ò}|j|ƒ}|j    ƒ}|spqCn|rˆ||krˆqCntj
ƒ}||_ t |j ƒ|_ t|ƒ|_t|jƒ|_|jƒ}    t|j ƒ}
td|
||    ƒ|_|jj|ƒqCWt|jƒ|_|s³tjƒ} x–td| jƒƒD]Y} | j| ƒ}|dksS|jƒ r‡qSntj|ƒrœqSnt j!||ƒqSWn#tj|ƒrÆdSt j!||ƒdS(Ni("RRtChPyNetSendPackttagGCGameWorldBossInfoRGt BossInfoListRHRIRJRKttagBossInfoObjtBossIDRtIsAliveRZt
KillRecordRt    RecordLent    GetValue2t__GetBossRefreshTimeR1t RefreshSecondRDtBossCntRtGetPlayerManagertGetActivePlayerCounttGetActivePlayerAtRt    GetInitOKt PlayerControltGetIsTJGt NetPackCommont SendFakePack( t    curPlayertsyncBOSSIDListR3R9RNRPRQRt bossInfoObjR,R8t playerManagerti((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR?sD                 c sÅtjtj|ƒsdSttjƒƒ‰tˆ|ƒtˆƒtj    sëx~t
t j ƒj ƒƒD]d}t j ƒj|ƒ}|jƒ}t|ƒ}|jƒ}t|ƒ}tj    j|||gƒqdWtj    jd‡fd†ƒng}x·tj    D]¬}|\}}}t|ƒ}    |    r(qûntd|ˆ|ƒ}
|
dkrOPntj|ƒt|dƒ|j|ƒtjtj|dƒtjd|||
fƒqûW|rÁtd|ƒndS(NR0cstd|dˆ|dƒS(Niii(R1(R2(R3(s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR4€siis>    Í¨ÖªMapServerÖØÉú: bossID=%s,killedTime=%s,rebornSecond=%s( RtSetWorldDictKeyRWtTYPE_WorldBossProcessTickRRtDoCheckWorldBossShuntInfotBossRebornWorldNotifyR5R6txrangeR tIPY_DatatGetBOSSInfoCounttGetBOSSInfoByIndextGetNPCIDRRqRrRDR7RR1t PlayerGeTuitGeTuiBossRebornRtSendMapServerMsgExRct'Def_Notify_WorldKey_GameWorldBossRebornRRR( R$RtipyDataRRR,R8R~R9R+t rebornSecond((R3s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytDoCheckWorldBossRebornqs@ 
                 cCstjtj|ƒsdSttjƒƒ}xktjD]`}|\}}}t|ƒ}|rbq5nt    d|||ƒ}|s…q5nt
j ||ƒq5WdS(Ni( RR‚RWtTYPE_WorldBossGeTuiTickRRR5R6RR1R‹t    GeTuiBoss(R$R3R9RR,R8R+R((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytProcessBossGeTui s cCsit|ƒ}|jƒ}t|ƒ}ttjƒƒ}td|||ƒ}t|ƒ}|ph|dkS(Ni(RRqRrRRR1R(RRR,R8R3RR+((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytGetBossIsAliveOrCanReborn´s    cCs•xŽttjƒjƒƒD]t}tjƒj|ƒ}|jƒ}t|ƒ}|sXqn|jƒ}|tj    krt
j t j |dƒqqWdS(Ni(R†R R‡RˆR‰RŠRtGetMapIDRWtDef_FBMapID_SealDemonRRRcRŽ(RRRR+R)((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt__SendMapServerAliveBossÁs   cCsrt|ƒtjƒj|ƒtdƒr6t|ƒntjƒ}|jt    j
t j ƒ}|rnt |ƒndS(Ni(Rt PyDataManagertGetBossAttentionManagertNotifyBossAttentionInfoRtSync_BossShuntLineInfoRRURYRWt!Def_WorldKey_OperationActionStateRctOperationActionName_BossReborntSync_BossRebornPoint(R}t    gameWorldtstate((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt OnPlayerLoginÐs
    cCs¨tƒtƒtdƒrItjtjtjƒtjtj    tj
ƒnt j ddƒ}t |ƒd}tjtj||ƒtjr¤tjtjtjƒndS(NitDogzFBRefreshCfgi(RR˜RRtSendCommMapServerMsgRct#Def_Notify_WorldKey_BossShuntPlayerR5tg_bossShuntPlayerInfot%Def_Notify_WorldKey_BossShuntDeadLineRAR t
GetFuncCfgt__GetBossOnlineHeroCntRt%Def_Notify_WorldKey_BossOnlineHeroCntt"g_familyKillHorsePetRobBossCntDictt0Def_Notify_WorldKey_FamilyKillHorsePetRobBossCnt(Rt    onlineCnt((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnMapServerInitOKßs     c    Cs#t|ƒdkrdS|\}}}}}}}tjd||||||fƒtjdƒ}    |    smdStj}
tjƒ} | j|
ƒ} |    | j    ƒkrñt
t j ƒƒ} tjddƒddd}| j dƒ}|j ƒ}| ||kr| jdƒqñg}xWt| j    ƒƒD]C}| j |ƒ}|j ƒ}|jƒ}|j|||gƒq'W|jd|| gƒt|d    d
„d tƒ}|d }|jd    d „ƒ|rñ|dddkrñ| j|ddƒqñntjd|
|||||g|d|gƒdS(NisZ»÷ɱBossµôÂäºÃÎïÆ·: mapID=%s,npcID=%s,killerName=%s,itemID=%s, userData=%s, weightValue=%st DropRecordNumiii<iiÿÿÿÿR0cSs|dS(Ni((R2((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR4streverseicSs|dS(Ni((R2((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR4st(RRRR R¨Rct-Def_UniversalGameRecType_BossDropGoodItemInfoReRfRIRRRJtGetTimetDeleteR†t    GetValue5RDtsortedRR7tPlayerUniversalGameRectMapServer_UniversalGameRecR(R#R$tplayerIDt
killerNameR)tnpcIDtitemIDtuserDatat weightValuet maxRecordCntRgRht
recordListR3t    rangeTimet firstRecDatat    fsaveTimetdropRecordListRtrecDatatsaveTimetcurWeightValuet
commonList((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnKillBossDropGoodItemòsB            
cCsUtjtj|ƒsdStjdƒi}xlttjƒjƒƒD]R}tjƒj    |ƒ}|j
ƒ}|j ƒ}d|krE|j ƒ||<qEqEWi}tj ƒ}xÇt|jƒƒD]³}|j|ƒ}|dksÀ|jƒ rôqÀntj|ƒr    qÀn|jƒ}    x[|jƒD]M\}
} | d|    koM| dknr"|j|
dƒd||
<q"q"WqÀWtjd|ƒtjƒ} x| jƒD]q} | tj}    x[|jƒD]M\}
} | d|    koì| dknrÁ|j|
dƒd||
<qÁqÁWq¡Wtjd|ƒx'|jƒD]\}
}t|
|ƒq4WdS(NsÊÀ½çbossÔÚÏßÈËÊýͳ¼ÆR­iis#    bossµÈ¼¶ÐÅÏ¢¶ÔÓ¦±¾·þÔÚÏßÈËÊý %ss)    bossµÈ¼¶ÐÅÏ¢¶ÔÓ¦±¾·þ¼°¿ç·þÔÚÏßÈËÊý %s(RR‚RWtTYPE_WorldBossOnlineCntTickRR†R R‡RˆR‰RŠtGetRefreshTimet
GetLVLimitRuRvRwRRxRyRztGetLVtitemsRBt MergePlayertGetMergeServerOnlinePlayerInfotvaluestDef_MSOLPlayer_LVtSetBossOnlineHeroCnt(R$tbossRebornDictRRRtrefreshTimeStrt playerCntDictR€t
findPlayertfindLVtbossidtlvLimittmergeServerOnlinePlayerDictt
playerInfot curOnlineCnt((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytCalcGameWorldBossOnlineCnt sB      $%  $%cCstjd|ƒ}|sdSt|ƒ\}}| sYt||ƒd||jƒkrh|}d}n1||jƒkr‰|}d}n|}|d7}|d|}tjtj    ||ƒ|tj
ddƒkrðt j tj ||ƒnt jd||||fƒdS(    s ÉèÖüÆËãbossË¢ÐÂʱ¼äÓõÄÔÚÏßÈËÊýtBOSSInfoNidiiR£isiÉèÖüÆËãbossË¢ÐÂʱ¼äÓõÄÔÚÏßÈËÊý Change:bossid=%s, beforeOnlineCnt = %s, newOnlieCnt = %s, unUpdataCnt=%s(R tGetIpyGameDataR©tabst
GetDiffPertGetNoUpdataCntRR
Rct*Def_Notify_WorldKey_GameWorldBossOnlineCntR¨RRRªR(RÙtonlieCntRtbeforeOnlineCntt unUpdataCntt newOnlieCnttnewNum((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRÓKs$+        
cCs5tjtj|ƒ}|d|d}}||fS(s »ñÈ¡¼ÆËãbossË¢ÐÂʱ¼äÓõÄÔÚÏßÈËÊýid(RRRcRä(RÙt    beforeNumRåRç((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR©dscCsƒtjd|ƒ}|sdSt|ƒd}t|jƒƒ}tjtj||ƒt|||ƒt    j
d|||fƒdS(sÉèÖÃbossË¢ÐÂʱ¼äRßNis:    ÉèÖÃbossË¢ÐÂʱ¼ä BossID=%s,onlineCnt=%s,refreshTime=%s( R RàR©tevalRËRR
tDef_BossRefreshTimeR:RR(RÙR,RR­R8((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRjscCstjtj|ƒS(s»ñÈ¡bossË¢ÐÂʱ¼ä(RRRì(RÙ((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRrwscCsJtjƒj|ƒ}|j}|j}tjƒj|jƒ||ƒdS(N(    RRutGetPlayerByIndexRmtIsAddR™RštUpdateBossAttentiont GetPlayerID(RPt
clientDataR$R}RtisAdd((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnAttentionBoss„s
        tBossAttentionManagercBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs i|_dS(N(tbossAttentionDict(tself((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt__init__’s    cCs|jS(N(Rõ(Rö((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytGetBossAttentionDict–scCs||jkr•|j|}t|jƒ}|r>|||<n|j|dƒ|sq|jƒ|jj|ƒqót|ƒ|_t|jƒ|_n^|sŸdStj    ƒ}|jƒ||_
ti||6ƒ|_t|jƒ|_||j|<t j d|||fƒdS(Nis/¸üÐÂBOSS¹Ø×¢¼Ç¼ playerid=%s,bossid=%s,isAdd=%s( RõRët
RecordDataR>tcleartstrRtDataLentPyGameDataStructttagDBPyBossAttentiontPlayerIDRR(RötplayeridRÙRòtbossAttentionDatat
recordDictt bossAttention((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRï™s*  
 
     cCsÊtj|ƒrdS|jj|jƒƒ}|s5dSt|jƒ}tjƒ}g|_    xH|j
ƒD]:\}}tj ƒ}||_ ||_ |j    j|ƒqfWt|j    ƒ|_tj||ƒdS(N(RyRzRõRBRðRëRùRittagGCBossAttentionInfotBossListRÎttagGCBossAttentionRmtAddStateRDRRtR{R|(RöR}t attentionDatat bttentionDicttpackDataRÙtaddStateR9((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR›¶s               cCskd}d}d}x1|jjƒD] }|d7}||jƒ7}q"Wtjd|ƒtj||ƒ|S(NR±iisSaveBossAttention cnt :%s(RõRÑt    getBufferRRtCommFunct
WriteDWORD(RötsavaDatatcntDatatcntR((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt GetSaveDataËs
cCsºtj||ƒ\}}tjd|ƒi|_xt|ƒD]s}tjƒ}|jƒ||j    |||ƒ7}|j
}t t |j ƒƒtkr¨||j|<q?|jƒq?W|S(NsLoadBossAttention cnt :%s(R t    ReadDWORDRRRõR†RýRþRútreadDataRÿttypeRëRùtlist(RötdatastpostdataslenRt_tdataR¹((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytLoadPyGameData×s     
    (t__name__t
__module__R÷RøRïR›RR(((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRôs                      cCs[tjddƒ}tjtjƒd}||krW|s>tStjdƒ}||kStS(Nt    BossShuntii(R R¨RRt Def_ServerDayRR!tFalse(R)tbossShuntMaxServerDayt openServerDaytbossShuntMapIDList((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRës 
cCsB|\}}}||f}|tj|<tjtjtjƒdS(N(R5R¦RR¤RcR¥(R#R$R)R?tshuntPlayerDictR0((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytMapServer_WorldBossShuntInfoös
  c Csâtjs dS|jƒ}t}xtjjƒD]Œ\}}|\}}xq|jƒD]c\}}|\}    }
} ||
krqTn||d<t}tjd|||    ||
| |fƒqTWq/W|rÞtjt    j
tjƒndS(NisbBoss·ÖÁ÷Íæ¼Ò¶ÓÎé±ä¸ü:mapID=%s,lineID=%s,npcID=%s,playerID=%s,teamID=%s,relatedTick=%s,updTeamID=%s( R5R¦t    GetTeamIDR!RÎRRRR¤RcR¥( R}t    updTeamIDt isNeedSyncMapR0R%R)R?R¹t    shuntInfoR»tteamIDt relatedTick((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnPlayerTeamChangeþs"       
    %c    Csá||f}|tjkrdStj|}g}xM|jƒD]?\}}|d}||kr?|j|ƒ|j|ƒq?q?W|s›tjj|ƒn|rÝtjtjtjƒtj    d||||tjfƒndS(NisP    Çå³ýbossÏß··ÖÁ÷Íæ¼Ò: mapID=%s,lineID=%s,bossID=%s,removePlayerIDList=%s, %s(
R5R¦RÎR>RDRR¤RcR¥R(    R)R?RR0R%tremovePlayerIDListR¹R*R»((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR;s"  
      c CsOtjrK|ddkrKtjtjtjƒtdtjƒgt_n|ddkr_dSd}t    }x¾tj
j ƒD]­\}}|\}}xy|j ƒD]k\}}    |    \}
} } | s || |krØq nt }|j |ƒtjd|||
|| fƒq W|s{tj
j |ƒq{q{W|rKtjtjtj
ƒndS(Niii
i ¿sFBoss·ÖÁ÷ÒÆ³ý³¬Ê±Íæ¼Ò:mapID=%s,lineID=%s,npcID=%s,playerID=%s,teamID=%s(R5RERR¤RcR§RARœRR!R¦RÎRR>RR¥( R3R$t    ProceTimeR)R0R%R)R?R¹R*R»R+R,((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR„*s,   $c
Cstjs dS|jƒ}|jƒ}|jƒ}|jƒ}t}xŸtjjƒD]Ž\}}|\}}    ||kr‰||    kr‰qSn||krSt}|j    |ƒt
j d||    ||fƒ|sátjj    |ƒqáqSqSW|rt
j t jtjƒndS(NsJÇÐÍ¼ÒÆ³ýÆäËûµØÍ¼Ïß·boss·ÖÁ÷Íæ¼Ò: mapID=%s,lineID=%s,playerID=%s,teamID=%s(R5R¦R'RðR–tGetFBIDR!RÎRR>RRR¤RcR¥(
R}R+R¹t playerMapIDt playerLineIDR)R0R%R)R?((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnPlayerChangeMapGs(           cCsU|stjjƒ}ntjƒ}|jƒg|_x]|D]U}tjƒ}||_tjj    |gƒ|_
t |j
ƒ|_ |jj |ƒq>Wt |jƒ|_|s.tjƒ}x“t|jƒƒD]Y}|j|ƒ}|dksÎ|jƒ rqÎntj|ƒrqÎntj||ƒqÎWn#tj|ƒrAdStj||ƒdS(N(R5RAtkeysRittagGCBossShuntLineStateInfotCleartBossLineStateInfottagGCBossShuntLineStateRmRBt DeadLineListRt DeadLineCountRDRIRRuR†RvRwRRxRyRzR{R|(R}R~tbossShuntLineInfoRt bossLineStateR€R((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRœcs2 
           cCswtjƒ}|jtjtjƒ}|s<tjdƒdS|jtjƒ}|s`t    ƒ}n|swtjdƒdSt
j t
j ƒ}|||}t
j t
j |ƒ|||krt
j t
jƒ}t
j t
j|dƒtjddiƒ}g}xH|jƒD]:\}    }
|
tjtjgkr5q n|t|    ƒ7}q Wtjd|ƒg} xttjƒD]n\} } | \}}}||krqpnt|ƒ}|rµqpnd}|||gtj| <| j|ƒqpWtjd| ƒttjƒƒandtjdƒ}xR|D]J}||d    }||koI|knrtjdd
|gƒPqqWtƒdS( Ns Ôö¼Óboss¸´»îµã »î¶¯Î´¿ªÆôs" Ôö¼Óboss¸´»îµã Ã»ÓÐ×ܵãÊý£¡£¡£¡£¡itKillBossCntLimitscanRebornBossIDList=%sis$ boss¸´»î»î¶¯ ÖØÉúboss bossIDList=%stBossRebornNotifyidt BossFHPoint1( RRURYRWRRcRžRt Def_WorldKey_BossRebornNeedPointtSetBossRebornNeedPointRRtDef_BossRebornPointR
tDef_BossRebornCntR R!RÎtDef_Boss_Func_WorldtDef_Boss_Func_HomeRt    enumerateR5R6RRDRRtg_lastBossRebornTimeRyt WorldNotifyRŸ(taddPointR R¡t
totalPointtcurPointtupdPointt    rebornCnttkillBossCntLimitDicttcanRebornBossIDListtbidlisttbkeyt
bossIDListRR9RR,R8R+tneedNotifyPointPerListtpointPertnPoint((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytAddBossRebornPoint…sZ       cCs·tjtjdƒtjtjdƒtjdƒ}tgtjj    ƒD]}||krHd^qHƒ}t
tj ddƒƒ}tjtj |ƒt jd|ƒtƒtƒdS(NitServerActivePlayerCntiis;    boss¸´»î»î¶¯¿ªÆôʱÉèÖÃ×òÈÕ»îÔ¾ÈËÊýyesterdayPlayerCnt=%s(RR
RBRCR R¨RR5tg_yesterdayPlayerLVDictRÑRëtGetFuncCompileCfgtDef_BRServerPlayerCntRRRARŸ(RÚtlvtyesterdayPlayerCnttserverActivePlayerCnt((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytResetBossRebornPoint¾s4c    Csùtjdƒ}tjddƒ}tjtjƒ}t|ƒd}x`t|ƒD]R\}}|dkrndn ||d}||ko“|knrP|}PqPqPW|t|ƒkrÂ|dn||}tjƒj    t
j |ƒ|rõt ƒn|S(NtBossRebornTotalPointiiiiÿÿÿÿ( R R!RRRZRRFRRURVRWR@RŸ(    tisSyncttotalPointListt playerCntListtBRServerPlayerCntRPRRtpreCntRJ((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRAÏs &
cCsats
dStjddƒ}|t|dkr:dadS|t|kr]tjddƒndS(NR>iiÿÿÿÿit BossFHPoint2(RGR R!RyRH(R3tnotifySecondList((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR…âscCstjƒ}tjtjƒ|_tjƒjt    j
ƒ}|sKt ƒ}n||_ tjtj ƒ|_tjƒ}|sîx“t|jƒƒD]Y}|j|ƒ}|dksŽ|jƒ rÂqŽntj|ƒr×qŽntj||ƒqŽWn#tj|ƒrdStj||ƒdS(N(RittagGCBossRebornPointRRRBtPointRRURYRWR@RAt
TotalPointRCt    RebornCntRuR†RvRwRRxRyRzR{R|(R}R
RJR€R((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRŸîs(       c
Csf|\}}|r'tjƒj|ƒnd}|r>| r>dS|sHdStjƒ}g|_xH|jƒD]:\}}tjƒ}||_    ||_
|jj |ƒqjWt |jƒ|_ |s?tjƒ}x“t|jƒƒD]Y}    |j|    ƒ}|dksß|jƒ rqßntj|ƒr(qßntj||ƒqßWn#tj|ƒrRdStj||ƒdS(N(RRutFindPlayerByIDRRittagGCDogzNPCRefreshTimetInfoListRÎttagDogzTimeInfoObjtNPCIDRsRDRtCntR†RvRwRxRyRzR{R|(
R#R¹trefreshTimeDictR}R
tnpcidtrTimettimeInfoR€R((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytSync_DogzNPCRefreshTimes6 !                cCsŠtjƒj|ƒ}|s0tjd|ƒdS|jƒ}tjj|dƒdtj|<tjt    j
tjƒtj dtjƒdS(Ns!ÕÒ²»µ½¸ÃÏÉÃËÃû: killFamilyName=%siisÆï³èÕù¶áÏÉÃË»÷ɱBossÊýͳ¼Æ: %s( RtGetFamilyManagertFindFamilyByNametErrLogtGetIDR5R«RBRRcR¬R(tkillFamilyNametfamilytfamilyID((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR"'s  cCs,ttjddƒƒ}tjtjƒ}tjtj    ƒ}t
|||ƒ}d}t j ƒ}x‘t |jƒƒD]}}|j|ƒ}|dkst|jƒ r¨qtntj|ƒr½qtn|jƒsÏqtn|jƒ|krçqtn|d7}qtWt jtj|ƒt jd|||||fƒdS(NRiiis]ͬ²½Æï³èÕù¶áÓÐЧ²ÎÓëÈËÊý: playerCount=%s,minLV=%s,funcLimitLV=%s,curWorldLV=%s,diffWorldLV=%s(RR R¨RytGetFuncLimitLVRctGameFuncID_HorsePetRobBossRRt"Def_Notify_WorldKey_WorldAverageLvR1RRuR†RvRwRRxRzt GetFamilyIDRÍRt.Def_Notify_WorldKey_HorsePetRobBossPlayerCountR(t diffWorldLVt funcLimitLVt
curWorldLVtminLVt playerCountR€RR×((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt(SyncMapServer_HorsePetRobBossPlayerCount5s*      cCs#it_tjtjtjƒdS(N(R5R«RRRcR¬(tisOpen((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnHorsePetRobBossActionChangeTs    c
CsGtjdt|ƒƒt|tƒ r=t|ƒdkr=dS|\}}|tj|<tjdtjƒtj    ddƒ}x!|D]}|tjkrƒdSqƒWtj    ddƒ}g}x[tjj
ƒD]J}xA|j
ƒD]3}x*|D]"}    |    |krè|j |    ƒqèqèWqÛWqÈWtjd|ƒt j d||ƒit_dS(NsÆï³èÕù¶ábossÉËÑªÍæ¼Òͬ²½: %sisÉËÑªÍæ¼Ò»ã×Ü: %sRis+½áËãÆï³èÕù¶á²ÎÓë½±Íæ¼Ò: joinPlayerIDList=%stFairyGrabBossJoin(RRRût
isinstanceRRR5t!g_horsePetRobBossHurtPlayerIDInfoR R!RÑRDtPlayerCompensationt SendMailByKey(
tmsgInfoRtfamilyHurtPlayerIDListDictR.t
needBossIDtjoinAwardItemListtjoinPlayerIDListtfamilyHurtPlayerIDDictt playerIDListR¹((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt#MapServer_HorsePetRobBossHurtPlayer^s*"         cCs't|tƒsdStjj|ƒdS(N(R‹tdictR5R=tupdate(R((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytMapServer_FamilyOwnerBossInfo|sc Cs tjƒj|ƒ}tjƒ}g|_x¸tjjƒD]§\}}|\}}}    }
tj    ƒ}||_
|t j |_ |t j |_|t j |_|t j |_|    |_|
|_t|jƒ|_|jj|ƒq:Wt|jƒ|_tj||ƒdS(N(RRuRíRittagGCAllFamilyBossHurtInfoListt NPCHurtInfoR5R=RÎttagGCFamilyBossHurtInfoRoRctDef_PerPointValuetCurHPtCurHPExtMaxHPtMaxHPExtFamilyIDt
FamilyNameRtNameLenRDtNPCCountR{R|( RPRñR$R}thurtPackR»thurtInfotcurHPtmaxHPt firstFamilyIDtfirstFamilyName((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnQueryAllFamilyBossHurts$                  cCs®tjƒj|ƒ}|jƒ}|j}|jƒ}|dkrFdS|j|ƒ}|dkredS|jƒt    j
krŽtj d|ƒdSt j |jƒd|gƒdS(NsÆÕͨ³ÉÔ±ÎÞ·¨ÕÙ¼¯£¡tFairyGrabBossHelp(RRuRíRðRot    GetFamilyRt
FindMembert GetFamilyLVtIPY_GameServert    fmlMemberRRyt FamilyNotifyRy(RPRñR$R}R¹R»t    curFamilyt    curMember((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnCallupFamilyMemberToBoss©s        (GRRcRWR{RiRR·RR RÏRýR™RyR R5R‹R±RRGRR/R:R@R<RR    RRRRRZRGRRRR‘R”R•R˜R¢R®RÉRÞRÓR©RRrRótobjectRôRR&R-R;R„R3RœRVR^R!RAR…RŸRuR"R‡R‰R–R™R¬R¶(((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt<module> s†                           /                                          2    /                         .    +                       [                         "    9              !