From b7b26c834c51a76e419faacde84efcf5d6525f86 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 01 二月 2024 15:09:36 +0800 Subject: [PATCH] 10019 【砍树】回合战斗(增加灵兽协同攻击支持;增加灵兽释放技能触发被动;增加精怪复活方式;被动触发的技能造成伤害改为不吸血;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py | 36 +++++++++++++++++++++++++++++------- 1 files changed, 29 insertions(+), 7 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py index 1924a71..dd30895 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py @@ -49,7 +49,8 @@ # 回合战斗复活类型 ( RebornType_PetSkill, -) = range(1, 1 + 1) +RebornType_ElfSkill, +) = range(1, 1 + 2) def GetObjName(gameObj): objName = gameObj.GetName() @@ -382,12 +383,16 @@ 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) @@ -410,7 +415,18 @@ 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) @@ -449,6 +465,11 @@ 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) @@ -461,7 +482,8 @@ 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: -- Gitblit v1.8.0