| | |
| | | # 回合战斗复活类型 |
| | | ( |
| | | RebornType_PetSkill, |
| | | ) = range(1, 1 + 1) |
| | | RebornType_ElfSkill, |
| | | ) = range(1, 1 + 2) |
| | | |
| | | def GetObjName(gameObj): |
| | | objName = gameObj.GetName() |
| | |
| | | NetPackCommon.SendFakePack(curPlayer, clientPack) |
| | | return True |
| | | |
| | | def GetEnemyCureDefPer(gameObj): |
| | | ## 获取敌对方弱化治疗值 |
| | | def GetEnemyObj(gameObj): |
| | | ## 获取回合对手实例 |
| | | tagID = gameObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnEnemyID) |
| | | if not tagID: |
| | | return 0 |
| | | tagObj = GameWorld.FindNPCByID(tagID) |
| | | return |
| | | return GameWorld.FindNPCByID(tagID) |
| | | |
| | | def GetEnemyCureDefPer(gameObj): |
| | | ## 获取敌对方弱化治疗值 |
| | | tagObj = GetEnemyObj(gameObj) |
| | | if not tagObj: |
| | | return 0 |
| | | cureDefPer = GameObj.GetCureDefPer(tagObj) |
| | |
| | | if curRebornCount >= rebornCountMax: |
| | | GameWorld.DebugLog("%s 已经超过复活次数,不能再复活! curID=%s,curRebornCount=%s" % (GetObjName(gameObj), gameObj.GetID(), curRebornCount)) |
| | | return |
| | | |
| | | |
| | | # 自己技能 - 如精怪 |
| | | skillManager = gameObj.GetSkillManager() |
| | | for skillIndex in range(skillManager.GetSkillCount()): |
| | | skill = skillManager.GetSkillByIndex(skillIndex) |
| | | if skill.GetSkillType() != ChConfig.Def_SkillType_Revive: |
| | | continue |
| | | if skill.GetRemainTime(): |
| | | continue |
| | | if skill.GetFuncType() == ChConfig.Def_SkillFuncType_ElfSkill: |
| | | return RebornType_ElfSkill, skill |
| | | |
| | | # 检查是否有灵宠复活技能 |
| | | for index in range(gameObj.GetSummonCount()): |
| | | curSummonNPC = gameObj.GetSummonNPCAt(index) |
| | |
| | | hpPer = skill.GetEffect(0).GetEffectValue(0) |
| | | rebornValue1 = petNPC.GetID() |
| | | rebornValue2 = skill.GetSkillID() |
| | | elif rebornType == RebornType_ElfSkill: |
| | | skill = rebornTypeInfo[1] |
| | | skill.SetRemainTime(skill.GetCoolDownTime()) |
| | | hpPer = skill.GetEffect(0).GetEffectValue(0) |
| | | rebornValue1 = skill.GetSkillID() |
| | | |
| | | rebornCount = gameObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnRebornCount) + 1 |
| | | gameObj.SetDict(ChConfig.Def_Obj_Dict_TurnRebornCount, rebornCount) |
| | |
| | | gameObj.ChangeAction(IPY_GameWorld.laNPCNull) |
| | | |
| | | curHP = GameObj.GetHP(gameObj) |
| | | GameWorld.DebugLog("复活 %s: rebornType=%s,objID=%s,hpPer=%s,curHP=%s,rebornCount=%s" % (objName, rebornType, objID, hpPer, curHP, rebornCount)) |
| | | GameWorld.DebugLog("复活 %s: rebornType=%s,objID=%s,hpPer=%s,curHP=%s,rebornCount=%s,rebornValue1=%s,rebornValue2=%s" |
| | | % (objName, rebornType, objID, hpPer, curHP, rebornCount, rebornValue1, rebornValue2)) |
| | | |
| | | playerID = gameObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnFightID) |
| | | if not playerID: |