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
Sð    hc@sÜddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
dZ dZ d„Z d„Zd„Zd„Zd„Zd    „Zd
„Zd „ZdS( iÿÿÿÿNt
TagObjTypetTagObjIDcCs|jƒjtjƒdS(N(t GetNPCAngrytInittChConfigtDef_SuperFBBossAngryCount(tcurNPC((sP.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_22.pytDoInit(scCs|jtƒdS(N(tSetIsNeedProcesstTrue(R((sP.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_22.pyt OnNPCReborn,s cCs$tj|ƒ}|jƒtjks1|jƒ r5dS|j|ƒtj|ƒdkr[dS|j    |ƒ|j
ƒ}d\}}|r¡|j ƒ}|j ƒ}n0t ||ƒ}|rÑ|jƒ}|jƒ}n|jt|ƒ|jt|ƒ|r|rt||||ƒn t||ƒdS(Ni(ii(t    NPCCommont
NPCControlt GetCurActiont IPY_GameWorldtlaNPCDietIsAlivetRefreshBuffStatetGameObjtGetHPtRefreshAngryListtGetMaxAngryTagt
GetObjTypetGetObjIDt getRandAtkObjtGetGameObjTypetGetIDtSetDicttKey_TagObjTypet Key_TagObjIDt
robotFightt
randomMove(Rttickt
npcControlt curNPCAngryt
tagObjTypettagObjIDttagObj((sP.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_22.pyt    ProcessAI5s,"        cCs‹|jƒtjkrdStj|ƒ}|r=|\}}n:tj|jƒ|jƒdƒ}|jƒ|jƒ}}|j    ||ƒdS(Ni
(
R Rt    laNPCMovetFBLogictGetFBRobotRandomMovePostGameMaptGetEmptyPlaceInAreatGetPosXtGetPosYtMove(RR trandPosttagPosXttagPosYttagPos((sP.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_22.pyRXs!c     CsK|jtƒ}|jtƒ}|r€|r€tj||ƒ}|r€tj|ƒ r€tj|ƒdkr€t    |||ƒr€|Snt
j |ƒ}xH|D]@\}}tj||ƒ}|sÀq–nt    |||ƒr–|Sq–Wtj ƒ}t |jƒƒ}    tj|    ƒx?|    D]7}
|j|
ƒ} | s-q nt    || |ƒr | Sq WdS(Ni(t GetDictByKeyRRt    GameWorldtGetObjt AttackCommont    GetIsDeadRRtcheckCanAtkTagR(tGetFBRobotCanAtkObjTypeIDListtGetMapCopyPlayerManagertrangetGetPlayerCounttrandomtshuffletGetPlayerByIndex( RR R#R$R%tcanAtkObjTypeIDListtobjTypetobjIDt
copyMapMgrt randIndexListtindext    tagPlayer((sP.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_22.pyRis. =   cCsItj||ƒsdStj||d|ƒd}|tjkrEdStS(Ni(R6tCheckCanAttackTagt
BaseAttacktGetTagRelationtNoneRtType_Relation_EnemyR    (RR%R trelation((sP.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_22.pyR8‘s cCs?tj||ƒ}|dks3tj|ƒdkr7dStj|jƒ|jƒ|jƒ|jƒƒ}||jƒkrŠt    ||ƒdSt
j |ƒ}|j ƒt jkrÝ|jƒ|j|jƒ|jƒƒrÝdSnt
j|ƒtj||||ƒrdS||jƒ|jƒkr;tj||d|ƒndS(Ni(R4R5RJRRtGetDistR,R-t
GetAtkDistt    moveToTagR R R RR'tStopMovet    FixTagPostSetNPCInBattleStatetAICommontDoAutoUseSkillt GetAttackTicktGetAtkIntervalRHtAttack(RttagIDttagTypeR tcurTagttagDistR!((sP.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_22.pyRšs$!0 
 cCs¶|jƒ|jƒ}}tj|jƒ|jƒ|jƒ|jƒƒ}||jƒkrt|jƒtj    krtdSt
j ||dƒ}|jƒ|jƒ}}|j ||ƒdS(Ni( R,R-R4RMt GetDestPosXt GetDestPosYRNR RR'R*R+R.(RR%R0R1tdestDisttmovePostmovePosXtmovePosY((sP.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_22.pyRO¸s0'(RRSR RHRR6R4RR*R(R=RRRR
R&RRR8RRO(((sP.\\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\AIType_22.pyt<module>s(                           #        (