From 5ca218ac01201f10c196a07b61ef3b1fe59040e5 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 18 九月 2025 18:30:07 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(B427使用技能无伤血时默认发目标;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py | 104 +++++++++++++++++++++++++++------------------------- 1 files changed, 54 insertions(+), 50 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py index 032cb06..93f395e 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py @@ -1283,14 +1283,12 @@ AttackCommon.OnPVPDamage(attackerOwner, lostValue, curObj, "SkillLostHP") elif curObjType == IPY_GameWorld.gotNPC: AttackCommon.NPCAddObjInHurtList(attackerOwner, curObj, curObjHP_BeforeAttack, lostValue) - - TurnAttack.AddTurnObjHurtValue(buffOwner, curObj, hurtType, lostValue, lostHP, curSkill) #统一调用攻击结束动作 if isDoAttackResult: BaseAttack.DoLogic_AttackResult(buffOwner, curObj, None, tick) - TurnAttack.OnTurnfightAttackResult(buffOwner, curObj, curSkill) + #TurnAttack.OnTurnfightAttackResult(buffOwner, curObj, curSkill) return lostHP ## 检查增加淬毒buff @@ -1850,9 +1848,13 @@ #0通哟 1 PVP类型 2PVE类型 return curSkill.GetHurtType() % 10 +def isDamageShieldSkill(skillData): + ## 是否承伤盾技能 + return skillData.GetAtkType() == ChConfig.BuffAtkType_DamageShield + def isAngerSkill(curSkill): ## 是否怒气技能 - return curSkill and curSkill.GetXP() > 0 + return curSkill and curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_AngerSkill def isTurnNormalSkill(curSkill): ## 是否回合普攻技能,区别与无技能的普通A一下,该普攻同样可以有各种技能效果,只是他属于普攻 @@ -2071,12 +2073,12 @@ cureBaseValue = GetCureBaseValue(userObj, curSkill) elif cureType == ChConfig.Def_Cure_MaxHP: cureBaseValue = GameObj.GetMaxHP(userObj) - elif cureType == ChConfig.Def_Cure_PNE: - cureBaseValue = userObj.GetPNE() - addPer = curSkill.GetEffect(0).GetEffectValue(2)/float(ChConfig.Def_MaxRateValue) - addExValue = GetCureBaseValue(userObj, curSkill)*addPer - elif cureType == ChConfig.Def_Cure_PHY: - cureBaseValue = GameObj.GetMaxHP(userObj) + #elif cureType == ChConfig.Def_Cure_PNE: + # cureBaseValue = userObj.GetPNE() + # addPer = curSkill.GetEffect(0).GetEffectValue(2)/float(ChConfig.Def_MaxRateValue) + # addExValue = GetCureBaseValue(userObj, curSkill)*addPer + #elif cureType == ChConfig.Def_Cure_PHY: + # cureBaseValue = GameObj.GetMaxHP(userObj) elif cureType == ChConfig.Def_Cure_HurtValue: cureBaseValue = GameObj.GetLastHurtValue(userObj) elif cureType == ChConfig.Def_Cure_TagMaxHP: @@ -2167,48 +2169,50 @@ def GetSkillAddPerByID(curPlayer, skillTypeID): ## 获取技能伤害百分比提升值 # @param skillTypeID: 技能TypeID - SkillAddPerAttrIDDict = IpyGameDataPY.GetConfigEx("SkillAddPerAttrIDDict") - if not SkillAddPerAttrIDDict: - SkillAddPerAttrIDDict = {} - skillPlusAttrIDDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 2, {}) - for attrIDStr, skillTypeIDList in skillPlusAttrIDDict.items(): - attrID = int(attrIDStr) - if attrID not in ShareDefine.SkillAddPerAttrIDList: - continue - for cfgSkillTypeID in skillTypeIDList: - SkillAddPerAttrIDDict[cfgSkillTypeID] = attrID - IpyGameDataPY.SetConfigEx("SkillAddPerAttrIDDict", SkillAddPerAttrIDDict) - - if skillTypeID not in SkillAddPerAttrIDDict: - return 0 - curAttrID = SkillAddPerAttrIDDict[skillTypeID] - attrInfo = ChConfig.ItemEffect_AttrDict.get(curAttrID, []) - if attrInfo == []: - return 0 - effIndex = attrInfo[0][0] - return EffGetSet.GetValueByEffIndex(curPlayer, effIndex) + return 0 +# SkillAddPerAttrIDDict = IpyGameDataPY.GetConfigEx("SkillAddPerAttrIDDict") +# if not SkillAddPerAttrIDDict: +# SkillAddPerAttrIDDict = {} +# skillPlusAttrIDDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 2, {}) +# for attrIDStr, skillTypeIDList in skillPlusAttrIDDict.items(): +# attrID = int(attrIDStr) +# if attrID not in ShareDefine.SkillAddPerAttrIDList: +# continue +# for cfgSkillTypeID in skillTypeIDList: +# SkillAddPerAttrIDDict[cfgSkillTypeID] = attrID +# IpyGameDataPY.SetConfigEx("SkillAddPerAttrIDDict", SkillAddPerAttrIDDict) +# +# if skillTypeID not in SkillAddPerAttrIDDict: +# return 0 +# curAttrID = SkillAddPerAttrIDDict[skillTypeID] +# attrInfo = ChConfig.ItemEffect_AttrDict.get(curAttrID, []) +# if attrInfo == []: +# return 0 +# effIndex = attrInfo[0][0] +# return EffGetSet.GetValueByEffIndex(curPlayer, effIndex) def GetSkillReducePerByID(curPlayer, skillTypeID): ## 获取技能伤害百分比减伤值 # @param skillTypeID: 技能TypeID - SkillReducePerAttrIDDict = IpyGameDataPY.GetConfigEx("SkillReducePerAttrIDDict") - if not SkillReducePerAttrIDDict: - SkillReducePerAttrIDDict = {} - skillPlusAttrIDDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 2, {}) - for attrIDStr, skillTypeIDList in skillPlusAttrIDDict.items(): - attrID = int(attrIDStr) - if attrID not in ShareDefine.SkillReducePerAttrIDList: - continue - for cfgSkillTypeID in skillTypeIDList: - SkillReducePerAttrIDDict[cfgSkillTypeID] = attrID - IpyGameDataPY.SetConfigEx("SkillReducePerAttrIDDict", SkillReducePerAttrIDDict) - - if skillTypeID not in SkillReducePerAttrIDDict: - return 0 - curAttrID = SkillReducePerAttrIDDict[skillTypeID] - attrInfo = ChConfig.ItemEffect_AttrDict.get(curAttrID, []) - if attrInfo == []: - return 0 - effIndex = attrInfo[0][0] - return EffGetSet.GetValueByEffIndex(curPlayer, effIndex) + return 0 +# SkillReducePerAttrIDDict = IpyGameDataPY.GetConfigEx("SkillReducePerAttrIDDict") +# if not SkillReducePerAttrIDDict: +# SkillReducePerAttrIDDict = {} +# skillPlusAttrIDDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 2, {}) +# for attrIDStr, skillTypeIDList in skillPlusAttrIDDict.items(): +# attrID = int(attrIDStr) +# if attrID not in ShareDefine.SkillReducePerAttrIDList: +# continue +# for cfgSkillTypeID in skillTypeIDList: +# SkillReducePerAttrIDDict[cfgSkillTypeID] = attrID +# IpyGameDataPY.SetConfigEx("SkillReducePerAttrIDDict", SkillReducePerAttrIDDict) +# +# if skillTypeID not in SkillReducePerAttrIDDict: +# return 0 +# curAttrID = SkillReducePerAttrIDDict[skillTypeID] +# attrInfo = ChConfig.ItemEffect_AttrDict.get(curAttrID, []) +# if attrInfo == []: +# return 0 +# effIndex = attrInfo[0][0] +# return EffGetSet.GetValueByEffIndex(curPlayer, effIndex) -- Gitblit v1.8.0