cehua_ZWJ
2019-01-30 6afaa4408f4e09e3e95dbd92f0d1cd5a1fb2942b
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
x{[c@s$dZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z dZ dZ dZdZdZdZd    „Zd
„Zd „Zd „Zeejed „Zd„Zd„Zd„Zd„Zdd„Zd„Z dS(sVersion = 2015-03-30 12:00iÿÿÿÿNt PassedCounttLvUpSteptUseSkillPercentiii?BcCs¤tj|ƒ}|jƒ}|jƒjƒdkr@|jƒnN|tjkro|jtj    ƒ|j
dƒn|tj    krŽ|j |ƒn|j t ƒ}t|t|ƒdƒ}|jƒ|jƒ}}||\}    }
tj|||    |
ƒ} | tdkrrt|dt|ƒdƒ} | |krr|jt |dƒ|| \}    }
tj|||    |
ƒ} qrn|j|    |
dƒ\} }|j| |tƒdS(Niii(t    NPCCommont
NPCControlt GetCurActiontGetPlayerHurtListt GetHurtCountt ResetNPC_Initt IPY_GameWorldt laNPCAttackt SetCurActiont    laNPCNullt SetActionTicktProcessHPRestoret GetDictByKeytNPCKey_PassedPointCounttmintlentGetPosXtGetPosYt    GameWorldtGetDistt
Dis_DiffertSetDicttGetMoveNearPostMoveToPosStepBySteptSingleMoveArea(tcurNPCt movePointListttickt
npcControlt curNPCActiontcurPassedPointCounttneedMoveToPointIndextcurPosXtcurPosYtdestPosXtdestPosYtcurDist    nextIndext    moveDestXt    moveDestY((sb.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\FBDefenseCommon.pytNpcMoveByMovePointList>s,   cCs‚|jtjƒ}|jtjƒ}tjdƒ}|dkrntjd|ƒ}||krn||}qnntj||ƒdS(NtTDMovePointListis
TD_%s_Move(RtChConfigtDef_NPC_Dict_FromRefreshValuetDef_NPC_Dict_FromRefreshMarkt ReadChConfigtGetEvalChConfigtAICommontNPCMoveByPointList(RRtfromRefreshValuetfromRefreshMarkt MovePointListt movePointDict((sb.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\FBDefenseCommon.pyt FBDefenceMoveks  cCs|jƒtjks"|jƒ r&tStj|ƒ}|j|ƒtj    |ƒdkr[dSd}|j
ƒ}|tj kr‹|j ƒ}n|dkr»||j ƒ|kr»|jƒtS|jƒ}|tjkrü|jƒtjkrüt||ƒtStS(Ni(RR    tlaNPCDietIsAlivetFalseRRtRefreshBuffStatetGameObjtGetHPtGetGameNPCObjTypet
gnotSummont GetLastTimet GetBornTimet    SetKilledt    laNPCMovetGetCurMoveTypetmtRuntFastMoveNotMoveBacktTrue(RRRt npcLastTimet
npcObjTypeR ((sb.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\FBDefenseCommon.pyt NormalChecks$"  "
 $ cCsHtj|ƒ}|jƒjƒdkr7|j|ƒn |j|ƒdS(Ni(RRRRRtProcessBattleHPRestore(RRR((sb.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\FBDefenseCommon.pyRG¦s
 c
Cs tj|ƒ}|s•d}|jƒ}|rNtj|jƒ|jƒƒ}n| sp|r´tj    |ƒdkr´|j
|||ƒ|jƒ}q´n|j
|||ƒ|jƒ}|dkrÛ|sÊdSt ||ƒdS|jƒ}|jƒ}    t ||    |||ƒdS(Ni( RRtNonetGetMaxAngryTagRtGetObjtGetObjIDt
GetObjTypeR=R>tRefreshAngryListR8t
__NPCFight(
RRtcanMovetrefreshIntervalt
isUpdAngryRtangryObjt curNPCAngrytcurNPCAngryTypet curNPCAngryID((sb.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\FBDefenseCommon.pyt NormalFight¶s( !"     cCs1tj|ƒtj|ƒ}tj||ƒ}|dksOtj|ƒdkrSdStj|j    ƒ|j
ƒ|j    ƒ|j
ƒƒ}t j ||||ƒrŸdS||j ƒkrÌ|s»dS|j|ƒdS||jƒ|jƒkrìdS|r|j|j    ƒ|j
ƒƒrdSntj||d|ƒdS(Ni(RtSetNPCInBattleStateRRRORMR=R>RRRR2tDoAutoUseSkillt
GetAtkDisttMoveToObj_Detelt GetAttackTicktGetAtkIntervalt    FixTagPost
BaseAttacktAttack(RttagIDttagTypeRRTRtcurTagttagDist((sb.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\FBDefenseCommon.pyRSâs( !0 cCst|dkrdS|jƒ}|jƒ|kr2dS|j|ƒ}|sKdStjƒjƒ}tj|||ƒdS(Ni(tGetSkillManagert GetSkillCounttGetSkillByIndexRt GetGameWorldtGetTickt
SkillShellt NPCUseSkill(Rtindext skillManagertcurSkillR((sb.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\FBDefenseCommon.pytUseSkillByIndexs  cCs1tj|dƒt||ƒtj|dƒdS(Nii(R=tSetHPRs(RRp((sb.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\FBDefenseCommon.pytDeadUseSkillByIndex$s cCs\tj|ƒ}tj|ƒ}|jtƒ}t|ƒtj}|||krTtSt    SdS(N(
R=R>tGetMaxHPRtNPCKey_UseSkillHpPercenttfloatR-tDef_MaxRateValueRHR;(RtcurHptmaxHptnpcUseSkillHpPercentt realPercent((sb.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\FBDefenseCommon.pytCallbackCheckHpPercent.scCsû||jƒ|jƒkr tS|jƒ}|jƒ}||krHtS|dkrjtd||ƒ}n|j|ƒ}|sƒtS||jƒ|jƒkr£tS|dkrÀ||ƒ rÀtSt
j |ƒt j krá|}nt
j||||ƒtS(Ni(R`RaR;RiRjRRktGetLastUseTicktGetCoolDownTimeRMRntGetSkillAffectTagR-tDef_ST_CanNPCUseSkilltDoLogic_UseSkillRH(RRgt
skillIndexRtcallbackRqtskillTotalCountRr((sb.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\FBDefenseCommon.pytSkillCheckCallbackAs&        c    Cso|gkrtS|jƒ}|jƒ}|| }x6t|ƒD](\}}t|||||ƒr?tSq?WtS(N(R;RiRjt    enumerateR‡RH(    RRgRt callbackListRqR†t callBackListRpt curCallback((sb.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\FBDefenseCommon.pytSeriesSkillByCallBackListks   
(!t__doc__RnRRR    tOperControlManagerRcR-R0R2R=trandomRtNPCKey_CurLvUp_StepRwRRt
Def_MaxDisR+R8RKRGRHt Def_NPCRefreshAngryValueIntervalR;R[RSRsRuR~RMR‡RŒ(((sb.\ServerPython\ZoneServerGroup\map1_8G\MapServer\MapServerData\Script\NPC\NPCAI\FBDefenseCommon.pyt<module>s8                   -        '    ,    -        
     *