| | |
| | | # @return None
|
| | | # @remarks 执行AI
|
| | | def ProcessAI(rolePet, tick):
|
| | | ## 执行频率, 根据人数降低---------------------------
|
| | | if tick - rolePet.GetDictByKey(Def_LastAI1ProTick) < 1500:
|
| | | return
|
| | | rolePet.SetDict(Def_LastAI1ProTick, tick)
|
| | | #-------------------------------------------------------
|
| | | #===========================================================================
|
| | | # ## 执行频率, 根据人数降低---------------------------
|
| | | # if tick - rolePet.GetDictByKey(Def_LastAI1ProTick) < 3000:
|
| | | # return
|
| | | # rolePet.SetDict(Def_LastAI1ProTick, tick)
|
| | | # #-------------------------------------------------------
|
| | | #===========================================================================
|
| | |
|
| | | curPlayer = NPCCommon.GetSummonNPCOwner(IPY_GameWorld.gotPlayer, rolePet)
|
| | |
|
| | |
| | | posX, posY = petControl.GetMoveNearPos(curPlayer.GetPosX(), curPlayer.GetPosY(), 1)
|
| | | rolePet.ResetPos(posX, posY)
|
| | |
|
| | | skillManager = rolePet.GetSkillManager()
|
| | | for index in range(0, skillManager.GetSkillCount()):
|
| | | useSkill = skillManager.GetSkillByIndex(index)
|
| | | #已经到尾部了
|
| | | if not useSkill or useSkill.GetSkillTypeID() == 0:
|
| | | break
|
| | | |
| | | if SkillCommon.isPassiveSkill(useSkill):
|
| | | #GameWorld.Log('被动技能不释放不释放 = %s'%(useSkill.GetSkillName()))
|
| | | continue
|
| | | |
| | | effect = SkillCommon.GetSkillEffectByEffectID(useSkill, ChConfig.Def_Skill_Effect_HPPerLimit)
|
| | | if not effect:
|
| | | continue
|
| | | |
| | | if GameObj.GetHP(curPlayer)*ChConfig.Def_MaxRateValue/GameObj.GetMaxHP(curPlayer) >= effect.GetEffectValue(0):
|
| | | continue
|
| | | |
| | | AICommon.DoNPCUseSkill(rolePet, curPlayer, useSkill, 0, tick)
|
| | | #===========================================================================
|
| | | # skillManager = rolePet.GetSkillManager()
|
| | | # for index in range(0, skillManager.GetSkillCount()):
|
| | | # useSkill = skillManager.GetSkillByIndex(index)
|
| | | # #已经到尾部了
|
| | | # if not useSkill or useSkill.GetSkillTypeID() == 0:
|
| | | # break
|
| | | # |
| | | # if SkillCommon.isPassiveSkill(useSkill):
|
| | | # #GameWorld.Log('被动技能不释放不释放 = %s'%(useSkill.GetSkillName()))
|
| | | # continue
|
| | | # |
| | | # effect = SkillCommon.GetSkillEffectByEffectID(useSkill, ChConfig.Def_Skill_Effect_HPPerLimit)
|
| | | # if not effect:
|
| | | # continue
|
| | | # |
| | | # if GameObj.GetHP(curPlayer)*ChConfig.Def_MaxRateValue/GameObj.GetMaxHP(curPlayer) >= effect.GetEffectValue(0):
|
| | | # continue
|
| | | # |
| | | # AICommon.DoNPCUseSkill(rolePet, curPlayer, useSkill, 0, tick)
|
| | | #===========================================================================
|
| | | return
|
| | |
|