cehua_lyf
2019-03-06 3c8ee0a8a524a6251d7d5aae2372e76fd8a99b9c
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
¤aV\c@säddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZdad„Zd„Zddd„Zd„Zd„Zd„Zd    „Zd
„Zd „Zd „Zd „Zd„Z d„Z!dd„Z"d„Z#dgd„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!e4fd"„ƒYZ5d#„Z6d$„Z7d%„Z8d&„Z9d'„Z:d(„Z;dgd)„Z<d*„Z=d+„Z>e?d,„Z@d-„ZAdd.„ZBd/„ZCd0„ZDd1„ZEd2„ZFd3„ZGd4„ZHd5„ZIdS(6iÿÿÿÿ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#CheckResetBossKilledCntOnServerInitBs&       cCs¹t|ƒdkrdS|d}|dkr0dS|\}}}}}}}}    tjƒrztj||||||    ƒdS|}
t} t|
ƒ} t|ƒ} tjd|||
|| | fƒ| rß| rßtj    dƒdSt
t j ƒƒ}t |ƒ}t ||||ƒ| rMt|ƒ}t||dƒtj    d||fƒn|rŠt|dƒt||ƒtd|gƒt|ƒntjddƒ}||krµt|ƒndS(Nisk»÷ɱÊÀ½çboss DoGameWorldBossOnKilled...bossID=%s,hurtValue=%s,mapID=%s,tick=%s,isMapNeedShunt=%s,isAlive=%ssPÐèÒª·ÖÁ÷µÄµØÍ¼boss±»»÷ɱ£¬µ«Êǵ±Ç°bossÈ«¾Ö״̬ΪËÀÍö״̬£¬²»ÔÙ¸üÐÂboss»÷ɱÐÅÏ¢£¡is5    addBossKillCnt: killPlayerName=%s,befKilledCnt=%stFairyGrabBossID(RRt IsCrossServert    CrossBosstDoCrossBossOnKilledtFalsetIsMapNeedBossShuntt __GetIsAliveRRtintttimeRt__SetKillRecordRR    t __SetIsAlivetSetBossRefreshTimet Sync_BossInfotNonetSendMapServerBossKilledCntt IpyGameDataPYtGetFuncEvalCfgtOnFamilyKillHorsePetRobBoss(tmsgListttickRtkillPlayerNamet    hurtValuetisNotifyt    realMapIDt    dataMapIDt    copyMapIDt killerIDListtmapIDt isAddKillCnttisMapNeedShunttisAlivet
killedTimeRt befKilledCntthorsePetRobBossIDList((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytDoGameWorldBossOnKilledbsD
                 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(RR3t refreshTimetbossInfo((R:s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt__UpdateBossRefreshList’s  c CsKt|ƒdkrdS|\}}}}}tjƒrTtj|||||ƒdS||}}tjd|||||fƒ|dkr‘dStjdƒ}    ||    k}
t|ƒ} |sÑt    |||ƒn|
rít
|||| ƒn|t |ƒkrt ||ƒt d|gƒn|rG|tjkrGtjj|ƒndS(Nis?ÊÀ½çboss״̬±ä¸ü: mapID=%s,lineID=%s,bossID=%s,state=%s,tick=%st    BossShunt(RRRRtDoCrossBossStateChangeRR#R$RtDoRemoveBossShuntPlayerByNPCIDt__UpdBossLineStateRRR R!R<tg_familyOwnerBossInfotpop( R&R'RR2R,R+R-R/tlineIDtbossShuntMapIDListtisBossShuntMapR1((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnGameWorldBossStateChangeŸs.       cCs™|dkrdStjj|iƒ}|j|ƒ|kr>dS|||<|tj|<|s_dS|tjkrtjj|ƒntjdtjƒdS(Ns    ·ÖÁ÷BossÏß·״̬±ä¸ü: %s(R!R<tg_bossShuntLineStatetgettg_bossShuntStateChangeBosstappendRR(RRHR2R1tbossLineStateDict((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyREÃ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__GetBossPrizeRecDataR!txrangetCounttAtt    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(R]((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRñscCs!tjƒjtj||ƒdS(N(Rt GetGameWorldtSetDicttChConfigtDef_WorldKey_BossIsAlive(RR2((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR÷scCstjƒjtj|ƒS(N(RR_t GetDictByKeyRaRb(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__GetKillRecordtsplitRORtjoint SetStrValue3t    SetValue2(R]R3t
playerNameR)t
killRecordtkillRecordList((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRs 
  cCs
|jƒS(N(t GetStrValue3(R]((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRdscCs(tj}tjƒ}|j|ƒ}|S(N(t ShareDefinet!Def_UniversalGameRecType_BossInfoRtGetUniversalRecMgrt GetTypeList(trecTypetuniversalRecMgrRX((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRQ s     cCsdS(N((R((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR"'scCs/tjƒj|ƒ}|j}t||ƒdS(N(RtGetPlayerManagertGetPlayerByIndext
BossIDListR (RZt
clientDataR't    curPlayert
bossIDList((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnQueryBossInfoCs     cCsttjƒƒ}tjƒ}tƒ}g|_x.t|jƒƒD]}|j|ƒ}|j    ƒ}|spqCn|rˆ||krˆqCnt
j d|ƒ}|s¦qCn|j ƒ}    |    t jkrÇqCntjƒ}
||
_t|
jƒ|
_t|ƒ|
_t|
jƒ|
_|jƒ} t|
jƒ} td| || ƒ|
_| |
_|jj|
ƒqCWt|jƒ|_|søtjƒ} x“t| j ƒƒD]Y}| j!|ƒ}|dks˜|j#ƒ rÌq˜nt$j%|ƒráq˜nt&j'||ƒq˜Wn#t$j%|ƒr dSt&j'||ƒdS(NtBOSSInfoi((RRtChPyNetSendPackttagGCGameWorldBossInfoRQt BossInfoListRRRSRTRUR#tGetIpyGameDatatGetMapIDRatDef_CrossMapIDListttagBossInfoObjtBossIDRtIsAliveRdt
KillRecordRt    RecordLent    GetValue2t__GetBossRefreshTimeR8t RefreshSecondt    RefreshCDROtBossCntRRstGetActivePlayerCounttGetActivePlayerAtR!t    GetInitOKt PlayerControltGetIsTJGt NetPackCommont SendFakePack(RwtsyncBOSSIDListR:R@RXRZR[RtipyDataR/t bossInfoObjR3R?t playerManagerti((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR MsR                      c stjtj|ƒsdStjƒr6tj|ƒdSttjƒƒ‰t    ˆ|ƒt
ˆƒt j s)xŸt tjƒjƒƒD]…}tjƒj|ƒ}|jƒ}|jƒ}|tjkrÉqnt|ƒ}|jƒ}t|ƒ}t j j|||gƒqWt j jd‡fd†ƒng}x·t j D]¬}    |    \}}}t|ƒ}
|
rfq9ntd|ˆ|ƒ} | dkrPntj|ƒt|dƒ|j|ƒtjt j!|dƒtj"d||| fƒq9W|rÿt#d|ƒndS(NR7cstd|dˆ|dƒS(Niii(R8(R9(R:(s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR;›siis>    Í¨ÖªMapServerÖØÉú: bossID=%s,killedTime=%s,rebornSecond=%s(%RtSetWorldDictKeyRatTYPE_WorldBossProcessTickRRtDoCheckCrossBossRebornRRtDoCheckWorldBossShuntInfotBossRebornWorldNotifyR<R=RRR#tIPY_DatatGetBOSSInfoCounttGetBOSSInfoByIndextGetNPCIDRR€RR†R‡ROR>RR8t PlayerGeTuitGeTuiBossRebornRtSendMapServerMsgExRmt'Def_Notify_WorldKey_GameWorldBossRebornRR R!( R'R–R“RR/RR3R?R’R@R2t rebornSecond((R:s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytDoCheckWorldBossReborn†sL   
                  cCs­tjtj|ƒsdStjƒr)dSttjƒƒ}xktjD]`}|\}}}t    |ƒ}|rrqEnt
d|||ƒ}|s•qEnt j ||ƒqEWdS(Ni( RR—RatTYPE_WorldBossGeTuiTickRRRR<R=RR8R t    GeTuiBoss(R'R:R@RR3R?R2R¤((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytProcessBossGeTui»s  cCsit|ƒ}|jƒ}t|ƒ}ttjƒƒ}td|||ƒ}t|ƒ}|ph|dkS(Ni(RR†R‡RRR8R(RRR3R?R:R¤R2((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytGetBossIsAliveOrCanRebornÐs    cCs¶x¯ttjƒjƒƒD]•}tjƒj|ƒ}|jƒ}|jƒ}|tjkraqnt    |ƒ}|syqn|jƒ}|tj
krt j t j|dƒqqWdS(Ni(RRR#RœRRžRŸRRaR€RtWorldBossFBMapIDListRR¢RmR£(R–R“RR/R2((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt__SendMapServerAliveBossÝs    cCstj|ƒt|ƒtjƒj|ƒtdƒrCt|ƒntj    ƒ}|j
t j t jƒ}|r{t|ƒndS(Ni(Rt OnPlayerLoginR t PyDataManagertGetBossAttentionManagertNotifyBossAttentionInfoRtSync_BossShuntLineInfoRR_RcRat!Def_WorldKey_OperationActionStateRmtOperationActionName_BossReborntSync_BossRebornPoint(Rwt    gameWorldtstate((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR¬ïs 
    cCs‰tjƒrtjƒdStƒtƒtdƒrctjtj    t
j ƒtjtj t
j ƒnt
jr…tjtjt
jƒndS(Ni(RRRtOnCrossMapServerInitOKR"R«RtSendCommMapServerMsgRmt#Def_Notify_WorldKey_BossShuntPlayerR<tg_bossShuntPlayerInfot&Def_Notify_WorldKey_BossShuntLineStateRLt"g_familyKillHorsePetRobBossCntDictR¢t0Def_Notify_WorldKey_FamilyKillHorsePetRobBossCnt(((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnMapServerInitOKÿs 
     cCsI|d}tjƒj|ƒ}|r8|jƒ|d<nt||ƒdS(Nii(RRstFindPlayerByIDtGetNametOnKillBossDropGoodItem(R&R'tplayerIDRw((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytCrossServerMsg_DropGoodItems 
 c    Cs©t|ƒdkrdS|\}}}}}}}}    tjd|||||||    fƒtjdƒ}
|
ssdStjƒrÈ|    s‰dStj|    ƒ} | s¢dS| jƒ} t    j
t j || ƒdSt j } tjƒ}|j| ƒ}|
|jƒkrLttjƒƒ}tjddƒddd}|jdƒ}|jƒ}|||kri|jdƒqLg}xWt|jƒƒD]C}|j|ƒ}|jƒ}|jƒ}|j|||gƒq‚W|jd||gƒt|d    d
„d tƒ}|d }|jd    d „ƒ|rL|dddkrL|j|ddƒqLntjd| |||||g|d|gƒ||||||g}tj dd|ƒdS(Nisl»÷ɱBossµôÂäºÃÎïÆ·: mapID=%s,npcID=%s,killerName=%s,itemID=%s, userData=%s, weightValue=%s, serverGroupID=%st DropRecordNumiii<iiÿÿÿÿR7cSs|dS(Ni((R9((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR;DstreverseicSs|dS(Ni((R9((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR;Fstt
DropRecord(!RRRR#t
GetFuncCfgRtCrossRealmPlayert&GetCrossCommZoneIpyDataByServerGroupIDtGetServerGroupIDListt CrossRealmMsgtSendMsgToClientServerRmRÂt-Def_UniversalGameRecType_BossDropGoodItemInfoRoRpRSRRRTtGetTimetDeleteRRt    GetValue5ROtsortedtTrueR>tPlayerUniversalGameRectMapServer_UniversalGameRecR!RŽt WorldNotify(R&R'RÁt
killerNameR/tnpcIDtitemIDtuserDatat weightValuet serverGroupIDt maxRecordCntt zoneIpyDatatserverGroupIDListRqRrt
recordListR:t    rangeTimet firstRecDatat    fsaveTimetdropRecordListR–trecDatatsaveTimetcurWeightValuet
commonList((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRÀsX              
cCsçtjtj|ƒsdStjƒr)dStjdƒi}xttjƒj    ƒƒD]s}tjƒj
|ƒ}|j ƒ}|j ƒ}|tj krqUn|jƒ}d|krU|jƒ||<qUqUWi}tjƒ}xÇt|jƒƒD]³}|j|ƒ}    |    dksñ|    jƒ r%qñntj|    ƒr:qñn|    jƒ}
x[|jƒD]M\} } | d|
ko~| dknrS|j| dƒd|| <qSqSWqñWtjd|ƒx'|jƒD]\} } t| | ƒqÆWdS(NsÊÀ½çbossÔÚÏßÈËÊýͳ¼Æt    onlineCntiis#    bossµÈ¼¶ÐÅÏ¢¶ÔÓ¦±¾·þÔÚÏßÈËÊý %s(RR—RatTYPE_WorldBossOnlineCntTickRRRRR#RœRRžRŸRR€tGetRefreshTimet
GetLVLimitRsR‹RŒR!RRŽRtGetLVtitemsRMtSetBossOnlineHeroCnt(R'tbossRebornDictR–R“RR/trefreshTimeStrt playerCntDictR•t
findPlayertfindLVtbossidtlvLimitt curOnlineCnt((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytCalcGameWorldBossOnlineCntWs>        $%cCsßtjd|ƒ}|sdSt|ƒ\}}| sYt||ƒd||jƒkrh|}d}n1||jƒkr‰|}d}n|}|d7}|d|}tjtj    ||ƒt
j d||||fƒdS(s ÉèÖüÆËãbossË¢ÐÂʱ¼äÓõÄÔÚÏßÈËÊýRzNidiisiÉèÖüÆËãbossË¢ÐÂʱ¼äÓõÄÔÚÏßÈËÊý Change:bossid=%s, beforeOnlineCnt = %s, newOnlieCnt = %s, unUpdataCnt=%s( R#R~t__GetBossOnlineHeroCnttabst
GetDiffPertGetNoUpdataCntRR
Rmt*Def_Notify_WorldKey_GameWorldBossOnlineCntRR(RôtonlieCntR“tbeforeOnlineCntt unUpdataCntt newOnlieCnttnewNum((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRî~s +        
cCs5tjtj|ƒ}|d|d}}||fS(s »ñÈ¡¼ÆËãbossË¢ÐÂʱ¼äÓõÄÔÚÏßÈËÊýid(RRRmRü(Rôt    beforeNumRýRÿ((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRø•sc        Cs&tjd|ƒ}|sdSt|ƒd}|jƒ}tjtjƒ}|dkr½|r½t|ƒdkr½tgtj    j
ƒD]0}|d|ko¦|dknrd^qƒ}ntj dƒ}t |j ƒƒ}tjtj||ƒt|||ƒtjd||||fƒdS(sÉèÖÃbossË¢ÐÂʱ¼äRzNiiitFirstDayActivePlayerCntsJ    ÉèÖÃbossË¢ÐÂʱ¼ä BossID=%s,onlineCnt=%s,yesterdayCnt=%s,refreshTime=%s(R#R~RøRëRRt Def_ServerDayRR<tg_yesterdayPlayerLVDicttvaluesRÇtevalRêR
tDef_BossRefreshTimeRARR(    RôR3R“RètLVLimitt openServerDaytlvt yesterdayCntR?((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR›s $OcCstjtj|ƒS(s»ñÈ¡bossË¢ÐÂʱ¼ä(RRR(Rô((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR‡®scCsJtjƒj|ƒ}|j}|j}tjƒj|jƒ||ƒdS(N(    RRsRtR‚tIsAddR­R®tUpdateBossAttentiont GetPlayerID(RZRvR'RwRtisAdd((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( RRt
RecordDataRGtcleartstrRtDataLentPyGameDataStructttagDBPyBossAttentiontPlayerIDRR(RtplayeridRôRtbossAttentionDatat
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(RŽRRRMRRRR{ttagGCBossAttentionInfotBossListRíttagGCBossAttentionR‚tAddStateRORRŠRR‘(RRwt attentionDatat bttentionDicttpackDataRôtaddStateR@((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(RRt    getBufferRRtCommFunct
WriteDWORD(RtsavaDatatcntDatatcntR&((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt GetSaveDatas
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    ReadDWORDRRRRRRRRtreadDataRttypeRRtlist(RtdatastpostdataslenR/t_tdataRÁ((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytLoadPyGameDatas     
    (t__name__t
__module__RRRR¯R0R:(((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRÇs                      cCs[tjddƒ}tjtjƒd}||krW|s>tStjdƒ}||kStS(NRBii(R#RÇRRRRÒR$R(R/tbossShuntMaxServerDayR
RI((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR"s 
cCsB|\}}}||f}|tj|<tjtjtjƒdS(N(R<R¹RR·RmR¸(R&R'R/RHtshuntPlayerDictR7((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( R<R¹t    GetTeamIDRRíRÒRRR·RmR¸( Rwt    updTeamIDt isNeedSyncMapR7R>R/RHRÁt    shuntInfoR×tteamIDt relatedTick((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnPlayerTeamChange5s"       
    %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(
R<R¹RíRGRORR·RmR¸R(    R/RHRR7R>tremovePlayerIDListRÁRCR×((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRDJs"  
      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(R<RNRR·RmRºRLR°R!RR¹RíRÒRGRR¸( R:R't    ProceTimeRBR7R>R/RHRÁRCR×RDRE((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyRšas,   $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(R<R¹R@RRtGetFBIDRRíRÒRGRRR·RmR¸(
RwRDRÁt playerMapIDt playerLineIDRBR7R>R/RH((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnPlayerChangeMap~s(           c Cs§|stjjƒ}ntjƒ}|jƒg|_x¯|D]§}tjj|iƒ}g}g}x4|jƒD]&\}}|j    |ƒ|j    |ƒqrWtj
ƒ}    ||    _ ||    _ ||    _ t|    j ƒ|    _|jj    |    ƒq>Wt|jƒ|_|s€tjƒ}
x“t|
jƒƒD]Y} |
j| ƒ}|dks |jƒ rTq ntj|ƒriq ntj||ƒq Wn#tj|ƒr“dStj||ƒdS(N(R<RLtkeysR{ttagGCBossShuntLineStateInfotCleartBossLineStateInfoRMRíROttagGCBossShuntLineStateR‚t
LineIDListt    StateListRt    LineCountRSRRsRRR‹RŒR!RRŽRRR‘( RwR’tbossShuntLineInfoRRPt
lineIDListt    stateListRHRµt bossLineStateR•R–((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR°šs@ 
                    cs™tjƒ}|jtjtjƒ}|s<tjdƒdS|jtjƒ}|s`t    ƒ}n|swtjdƒdSt
j t
j ƒ}|||}t
j t
j |ƒ|||kr*t
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|ƒqpWttjƒƒ‰tjjd‡fd†ƒtjd    | ƒˆandtjd
ƒ}xR|D]J}||d }||kok|knr@tjdd |gƒPq@q@Wt ƒdS( Ns Ôö¼Óboss¸´»îµã »î¶¯Î´¿ªÆôs" Ôö¼Óboss¸´»îµã Ã»ÓÐ×ܵãÊý£¡£¡£¡£¡itKillBossCntLimitscanRebornBossIDList=%siR7cstd|dˆ|dƒS(Niii(R8(R9(R:(s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR;îss$ boss¸´»î»î¶¯ ÖØÉúboss bossIDList=%stBossRebornNotifyidt BossFHPoint1(!RR_RcRaR±RmR²Rt Def_WorldKey_BossRebornNeedPointtSetBossRebornNeedPointRRtDef_BossRebornPointR
tDef_BossRebornCntR#R$RítDef_Boss_Func_WorldtDef_Boss_Func_HomeR4t    enumerateR<R=RRORRR>tg_lastBossRebornTimeRŽRÕR³(taddPointR´Rµt
totalPointtcurPointtupdPointt    rebornCnttkillBossCntLimitDicttcanRebornBossIDListtbidlisttbkeyRxR–R@RR3R?R2tneedNotifyPointPerListtpointPertnPoint((R:s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytAddBossRebornPointÃs^           cCs·tjtjdƒtjtjdƒtjdƒ}tgtjj    ƒD]}||krHd^qHƒ}t
tj ddƒƒ}tjtj |ƒt jd|ƒtƒtƒdS(NitServerActivePlayerCntiis;    boss¸´»î»î¶¯¿ªÆôʱÉèÖÃ×òÈÕ»îÔ¾ÈËÊýyesterdayPlayerCnt=%s(RR
R^R_R#RÇRR<RRRtGetFuncCompileCfgtDef_BRServerPlayerCntRRR]R³(RõR tyesterdayPlayerCnttserverActivePlayerCnt((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$RRRsRRbRR_R`RaR\R³(    tisSyncttotalPointListt playerCntListtBRServerPlayerCntRZR–R/tpreCntRe((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR]s &
cCsats
dStjddƒ}|t|dkr:dadS|t|kr]tjddƒndS(NRZiiÿÿÿÿit BossFHPoint2(RcR#R$RŽRÕ(R:tnotifySecondList((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(R{ttagGCBossRebornPointRRR^tPointRR_RcRaR\R]t
TotalPointR_t    RebornCntRsRRR‹RŒR!RRŽRRR‘(RwR(ReR•R–((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR³.s(       cCsŠtjƒj|ƒ}|s0tjd|ƒdS|jƒ}tjj|dƒdtj|<tjt    j
tjƒtj dtjƒdS(Ns!ÕÒ²»µ½¸ÃÏÉÃËÃû: killFamilyName=%siisÆï³èÕù¶áÏÉÃË»÷ɱBossÊýͳ¼Æ: %s( RtGetFamilyManagertFindFamilyByNametErrLogtGetIDR<R»RMR¢RmR¼R(tkillFamilyNametfamilytfamilyID((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyR%Hs  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ÇRŽtGetFuncLimitLVRmtGameFuncID_HorsePetRobBossRRt"Def_Notify_WorldKey_WorldAverageLvR8RRsRRR‹RŒR!RRt 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_HorsePetRobBossPlayerCountVs*      cCs#it_tjtjtjƒdS(N(R<R»RR¢RmR¼(tisOpen((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnHorsePetRobBossActionChangeus    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(RRRt
isinstanceR4RR<t!g_horsePetRobBossHurtPlayerIDInfoR#R$RROtPlayerCompensationt SendMailByKey(
tmsgInfoRtfamilyHurtPlayerIDListDictR5t
needBossIDtjoinAwardItemListtjoinPlayerIDListtfamilyHurtPlayerIDDictt playerIDListRÁ((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt#MapServer_HorsePetRobBossHurtPlayers*"         cCs't|tƒsdStjj|ƒdS(N(R˜tdictR<RFtupdate(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(RRsRtR{ttagGCAllFamilyBossHurtInfoListt NPCHurtInfoR<RFRíttagGCFamilyBossHurtInfotNPCIDRmtDef_PerPointValuetCurHPtCurHPExtMaxHPtMaxHPExtFamilyIDt
FamilyNameRtNameLenROtNPCCountRR‘( RZRvR'RwthurtPackR×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|jƒ|gƒdS(NsÆÕͨ³ÉÔ±ÎÞ·¨ÕÙ¼¯£¡tFairyGrabBossHelp(RRsRtRRªt    GetFamilyR!t
FindMembert GetFamilyLVtIPY_GameServert    fmlMemberRRŽt FamilyNotifyR†R¿(RZRvR'RwRÁR×t    curFamilyt    curMember((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pytOnCallupFamilyMemberToBossÊs        %(JRRmRaRR{RRÓRšR#RRÈR­RŽRËR+R<R R¿RRRcRR6RARKRERR    RRRRRdRQR"RyR!R R¥R¨R©R«R¬R½RÂRÀR÷RîRøRR‡RtobjectRRR?RFRDRšRLR°RpRvRR]R›R³R%R”R–R£R¦RºRÄ(((s`E:\SnxxServerCode\ServerPython\CoreServerGroup\GameServer\Script\GameWorldLogic\GameWorldBoss.pyt<module> sŒ                             0     $                                         
9    5                                 =    '                      [                         )    ;