xdh
2018-09-07 3365c59cb7f3e3d329433f80ee401f886b92b26e
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
b‰[c@s-ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z d„Z d„Zded„Zd„Zdded„Zd    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Zd„ZdS(iÿÿÿÿNcCs_tj}tj|ƒr$tj}ntj|ƒtjkrHtj}n|jƒj    |ƒdS(N(
tChConfigtDef_NormalNPCAngryCountt
IsGameBosstDef_SuperFBBossAngryCountt    NPCCommontGetDropOwnerTypetDropOwnerType_MaxAngrytDef_SuperBossAngryCountt GetNPCAngrytInit(tcurNPCt
angryCount((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pytDoInit0s      cCsKtj|ƒ}|jƒtjks6|jƒtkrR|j|ƒdkrRdSn|jƒr‡|j    |ƒt
j |ƒdkr‡dSn|jƒ}|tj krË|j ƒtjkrËtj||ƒdSt||ƒ}|jƒ sî| r$|tjkr |j|ƒ r tj||ƒndSt|||ƒ|jtjdƒdS(Ni(Rt
NPCControlt GetCurActiont IPY_GameWorldtlaNPCDietIsAlivetTruetDieTickt    GetIsBosstRefreshBuffStatetGameObjtGetHPt    laNPCMovetGetCurMoveTypetmtRuntAICommontNormalNPCFast_Movet__RefreshDropOwnertGetIsNeedProcesst    laNPCNulltProcessHPRestoretNormalNPCFree_Movet
__NPCFightt DoHPPerLogicRtDef_NPCHurtTypeAll(R
ttickt
npcControlt curNPCActionttagObj((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pyt    ProcessAI@s('   $i¸ c    Cs÷tj|ƒ}d}d\}}tj|ƒ}|tjkrÁ|j||ƒ}    |    r|    jƒ|    jƒ}}|tj    kr”t
|||ƒ}q¾|tj kr¾t j |tjƒ}q¾qnO|tjkrtj||||ƒ}
|
r|
\}} tj| }}qn|sÚd\} } |j||dtƒ|jƒ}|rw|jƒ}|jƒ} t j || ƒ} n| }| tjkrÚ| rÚ| rÚ| jƒ}|r¾tj    |}}q×tj | jƒ}}qÚnt||||||ƒ|S(Nit
isUpdAngry(ii(NN(RR tNoneRRtDropOwnerType_MaxHurttRefreshHurtListt GetValueTypet
GetValueIDtDef_NPCHurtTypeTeamt__GetMaxHurtTeamPlayertDef_NPCHurtTypePlayert    GameWorldtGetObjRt    gotPlayertDropOwnerType_Familyt FamilyRobBosstRefreshFamilyOwnerNPCHurttDef_NPCHurtTypeFamilytRefreshAngryListRtGetMaxAngryTagtGetObjIDt
GetObjTypet    GetTeamIDt GetPlayerIDt__RefreshBossDropOwnerObjBuff(R
R%trefreshIntervaltisDeadR&R(t    ownerTypetownerIDt dropOwnerTypet
maxHurtObjt    ownerInfot ownerFamilyIDt angryObjTypet maxAngryObjtmaxAngrytangryIDtteamID((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pyRasB       cCsÄtjƒj|ƒ}|rÀ|j|jƒƒ}xt|jƒƒD]v}|j|ƒ}|dksC|j    ƒdkr|qCn|j
ƒdkr”qCn|j |j ƒ|j ƒ|ƒrC|SqCWndS(Ni(R3tGetTeamManagertFindTeamtGetRefreshPosAttGetCurRefreshPointIndextxrangetGetMemberCountt    GetMemberR+R?RtGetIsInRefreshPointtGetPosXtGetPosY(R
R&RMtcurTeamt refreshPointtit curTeamPlayer((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pyR1s! ic Cs~|jƒ}tj|ƒ}|tjtjtjgkr=dS|jtjƒ}|jtj    ƒ}    |r²|    |ks||kr²t
j d|||    |fƒt ||    ||ƒnidddf\}
} } } |jtj|ƒ|jtj    |ƒ|tjkr\t
j|tjƒ}|rÂ|jƒ}tj|} } ||
|<t|||ƒqÂnf|tjkr½t
jƒj|ƒ} | sŠdStjd} } |j|jƒƒ}xt| jƒƒD]ô}| j|ƒ}|dksÂ|jƒdkrûqÂn|jƒt
jƒjƒkrr|j |j!ƒ|j"ƒ|ƒrrt#j$||t%ƒrrt|||ƒ||
|jƒ<qÂt&j'|tj(|d|ƒ}|rÂt
j d||jƒfƒqÂqÂWn|tj)krÂtj)|} } |j|jƒƒ}t
j*ƒ}xÂt|j+ƒƒD]«}|j,|ƒ}|s1qn|j-ƒ|krw|j |j!ƒ|j"ƒ|ƒrwt|||ƒqt&j'|tj(|d|ƒ}|rt
j d||jƒfƒqqWn|rzt
jƒj.ƒ|j/ƒ|f}| rû| j0ƒnd}|
r#|
| | | ft1j2|<n+|tj)krNid| | ft1j2|<nt
j3d|||
j4ƒ|| | fƒndS(NsU¹éÊô±ä¸ü, Çå³ý¾É¹éÊô! ownerType=%s,ownerID=%s,lastDropOwnerType=%s,lastDropOwnerID=%sit    buffOwners'ɾ³ý¹éÊô¶ÓÔ±buff: teamID=%s,playerID=%ss-ɾ³ý·Ç¹éÊôÏÉÃ˳ÉÔ±buff: teamID=%s,playerID=%ssKBoss±»»÷ɱ: npcID=%s,key=%s,playerIDList=%s,teamID=%s,hurtType=%s,hurtID=%s(5tGetNPCIDRRRR,RR6t GetDictByKeytDef_NPC_Dict_LastDropOwnerIDtDef_NPC_Dict_LastDropOwnerTypeR3tDebugLogt__DelBossDropOwnerBuffR+tSetDictR2R4RR5R?t__AddBossDropOwnerPlayerBuffR0RNROtDef_NPCHurtTypeSpecialRPRQRRRSRTt GetCopyMapIDt GetGameWorldRURVRWt AttackCommontCheckKillNPCByCnttFalset    BuffSkilltDelBuffBySkillIDtDef_SkillID_DropOwnerBuffR9tGetMapCopyPlayerManagertGetPlayerCounttGetPlayerByIndext GetFamilyIDt    GetLineIDtGetIDR>t
PyGameDatatg_npcKillerInfotLogtkeys(R
R&R%RCRDRBtnpcIDREtlastDropOwnerIDtlastDropOwnerTypet
killerDictRXthurtTypethurtIDt    curPlayertplayerIDRYRZR[tisOkt copyPlayerMgrtindextplayertkeyRM((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pyR@œsz      
!' 3'!    #cCsYtj|tjƒd}|sUtj|tj|d|ƒtjd|jƒƒndS(NiR\sÌí¼Ó¹éÊôbuff: playerID=%s(t SkillCommont FindBuffByIDRRmtAddBuffBySkillType_NoRefurbishR3RaR?(R~R%R
tfindBuff((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pyRdós
cCs|tjkr^tj|tjƒ}|s.dStjd|ƒtj|tj    |d|ƒn®|tj
kr tj ƒj |ƒ}|sŒdStjd|ƒxlt |jƒƒD]U}|j|ƒ}|dks°|jƒdkréq°ntj|tj    |d|ƒq°WndS(Nsɾ³ý¹éÊôÍæ¼Òbuff: playerID=%sR\sɾ³ý¹éÊô¶ÓÎébuff: teamID=%si(RR2R3R4RR5RaRkRlRmR0RNRORRRSRTR+R?(R
RCRDR%R~RXRZR[((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pyRbús"#c
CsW|jtjƒ}|jtjƒ}|tjkrbtj|tjƒ}|sRdSt    ||ƒnñ|tj
krðtj ƒj |ƒ}|sdSxÀt |jƒƒD]F}|j|ƒ}|dks£|jƒdkrÜq£nt    ||ƒq£Wnc|tjkrStjƒ}xEt |jƒƒD].}|j|ƒ}    |    s?qnt    |    |ƒqWndS(s ÑÓ³ÙbossµôÂä¹éÊôbuffÏûʧʱ¼ä Ni(R^RR_R`R2R3R4RR5t#__SetBossDropOwnerBuffDisappearTimeR0RNRORRRSRTR+R?R9RnRoRp(
R
RDRCR~RXRZR[RR‚Rƒ((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pyt__DelayBossDropOwnerBuffs0 c Cstjƒjtjƒ}|s"dStj|ƒ}tj||ƒ}|dkrSdSd}tjƒj    ƒ}|d}xt
|j ƒƒD]‰}|j |ƒ}    |    j ƒ}
|
jƒtjkrÄqˆn|jƒ|    jƒkràPn|    j|ƒ|    j|ƒ|j||    jƒƒPqˆWdS(Ni'i((R3t GetGameDatatGetSkillBySkillIDRRmR…t GetBuffTypetGetBuffManagerByBuffTypeRgtGetTickRRt GetBuffCounttGetBufftGetSkilltGetSkillTypeIDRst
GetOwnerIDtSetCalcStartTickt SetRemainTimetSync_RefreshBufft GetRemainTime( R~R
t    findSkilltbuffTypet    buffTuplet
RemainTimeR%tbuffStateManagerR‚tcurBufft    buffSkill((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pyR‰.s, 
   cCs,|jƒtjkr(tj||ƒndS(N(tGetGameObjTypeRR5t PlayerStatetSetBossStateTick(tatkObjR
tskillR%((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pyt
OnAttackedWscCs9tjƒjƒ}tj||ƒt||dtƒdS(Ni(R3RgRR¡R¢RR(R
R~R¤R%((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pytOnAttackDieByPlayer]scCstj|ƒdS(N(RtDoNPCUseSkillOnDie(R
tHurtTypetHurtID((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pytOnDieks cCst|ƒdS(N(RŠ(R
((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pyt OnNPCSetDeados
cCsBtj||ƒrdStj|ƒtj|ƒ}|jƒtkrR|jƒdS|dksst    j
|ƒdkrwdSt j |j ƒ|jƒ|j ƒ|jƒƒ}tj||||ƒrÃdS||jƒkræ|j|ƒdS||jƒ|jƒkrdS|j|j ƒ|jƒƒr(dStj||d|ƒdS(Ni(RtDoNPCSkillWarningProcessRtSetNPCInBattleStateR tIsInRefreshAreaRtMoveBackR+RRR3tGetDistRVRWtDoAutoUseSkillt
GetAtkDisttMoveToObj_Detelt GetAttackTicktGetAtkIntervalt    FixTagPost
BaseAttacktAttack(R
tcurTagR%R&ttagDist((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pyR"zs* 
!0 (RRRRR7RhR3R·R¡R…RtRkRR R)RjRR1R@RdRbRŠR‰R¥R¦RªR«R"(((smE:\SnxxServerCode\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_186.pyt<module>s4                     !,    W                )