129 【战斗】战斗系统-服务端(丁奉格挡潜能2反弹计算增加效果6037)
1个文件已添加
2个文件已修改
42 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6037.py 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4096,6 +4096,7 @@
PassiveEff_IgnoreSex = 6034 # 去除性别验证
PassiveEff_AddBuffTime = 6035 # 增加buff持续时间
PassiveEff_AddSkillUseCntLimit = 6036 # 增加7009回合数
PassiveEff_AddDamBackPerByBuffLayer = 6037 # 增加反弹伤害万分比(根据buff层级)
# 被动效果ID有触发值时就返回的
PassiveEffHappenValueList = [PassiveEff_ChangeHurtType, PassiveEff_ImmuneControlBuff, PassiveEff_MustSuperHit, PassiveEff_SkillInvalid, 
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_6037.py
New file
@@ -0,0 +1,39 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package Skill.PassiveTrigger.PassiveEff_6037
#
# @todo:增加反弹伤害万分比(根据buff层级)
# @author hxp
# @date 2026-01-04
# @version 1.0
#
# 详细描述: 增加反弹伤害万分比(根据buff层级)
#
#-------------------------------------------------------------------------------
#"""Version = 2026-01-04 19:00"""
#-------------------------------------------------------------------------------
import GameWorld
def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, connSkill, **skillkwargs):
    layerPer = curEffect.GetEffectValue(0) # 每层增加的万分比
    buffStateList = curEffect.GetEffectValue(1) # buff״̬ [״̬1, ״̬2, ...]
    checkTag = curEffect.GetEffectValue(2) # buff检查自己还是对方: 0-自己,1-对方
    if not buffStateList:
        return
    layerTotal = 0
    buffObj = defender if checkTag else attacker
    buffMgr = buffObj.GetBuffManager()
    for buffState in buffStateList:
        for buff in buffMgr.FindBuffListByState(buffState)[::-1]:
            layerTotal += buff.GetLayer()
    if layerTotal <= 0:
        return
    addPer = layerTotal * layerPer
    GameWorld.DebugLog("    反弹时buff状态层数: %s,addPer=%s,buffStateList=%s,buffObjID=%s" % (layerTotal, addPer, buffStateList, buffObj.GetID()))
    return addPer
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -2805,7 +2805,7 @@
    for buff in buffMgr.FindBuffListByState(ChConfig.BatObjState_DamBackShield):
        damBackPer += buff.GetValue1()
        connSkillTypeID = buff.GetSkillTypeID()
        damBackPer += TurnPassive.GetTriggerEffectValue(turnFight, defObj, atkObj, ChConfig.PassiveEff_AddSkillPerByBuffLayer, connSkillTypeID=connSkillTypeID)
        damBackPer += TurnPassive.GetTriggerEffectValue(turnFight, defObj, atkObj, ChConfig.PassiveEff_AddDamBackPerByBuffLayer, connSkillTypeID=connSkillTypeID)
        
    if damBackPer <= 0:
        return