129 【战斗】战斗系统-服务端(吕玲绮突破2潜能;张飞突破2、4潜能;刘备突破2潜能;黄月英突破2、6、7潜能;增加效果5508;优化效果5005;)
1个文件已修改
1个文件已添加
63 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5005.py 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5508.py 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5005.py
@@ -16,15 +16,21 @@
#-------------------------------------------------------------------------------
import GameWorld
import TurnSkill
import TurnBuff
import random
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
    skillTypeList = curEffect.GetEffectValue(0) # buff技能类型
    delBuffCnt = curEffect.GetEffectValue(1) # 移除个数,0为全部
    isSelf = curEffect.GetEffectValue(2) # 目标是否强制为自己
    effObj = batObj if isSelf else tagObj
    if not effObj:
        return
    
    buffList = []
    buffMgr = tagObj.GetBuffManager()
    buffMgr = effObj.GetBuffManager()
    for index in range(buffMgr.GetBuffCount()):
        buff = buffMgr.GetBuffByIndex(index)
        skillData = buff.GetSkillData()
@@ -39,7 +45,13 @@
        buffList = buffList[:delBuffCnt]
        
    for buff in buffList:
        GameWorld.DebugLog("移除/驱散buff: tagID=%s,buffID=%s" % (tagObj.GetID(), buff.GetBuffID()))
        TurnBuff.DoBuffDel(turnFight, tagObj, buff, connSkill)
        GameWorld.DebugLog("移除/驱散buff: tagID=%s,buffID=%s" % (effObj.GetID(), buff.GetBuffID()))
        TurnBuff.DoBuffDel(turnFight, effObj, buff, connSkill)
    exSkillID = curEffect.GetEffectValue(3) # 成功驱散额外释放技能ID
    if exSkillID:
        effectID = curEffect.GetEffectID()
        effSkillID = effSkill.GetSkillID()
        TurnSkill.OnUsePassiveSkill(turnFight, batObj, effObj, exSkillID, connSkill, effSkillID, effectID, connBuff, **kwargs)
        
    return True
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5508.py
New file
@@ -0,0 +1,45 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package Skill.PassiveTrigger.PassiveEff_5508
#
# @todo:触发释放技能(对触发友军)
# @author hxp
# @date 2025-12-20
# @version 1.0
#
# 详细描述: 触发释放技能(对触发友军)
#
#-------------------------------------------------------------------------------
#"""Version = 2025-12-20 22:00"""
#-------------------------------------------------------------------------------
import TurnSkill
import GameWorld
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
    if "byFriendObj" not in kwargs:
        return
    byFriendObj = kwargs.pop("byFriendObj") # 直接取出,防止传递
    passiveSkillID = curEffect.GetEffectValue(0) # 技能ID,为0时释放本技能
    rate = curEffect.GetEffectValue(1) # 概率万分率
    sameCountryRate = curEffect.GetEffectValue(2) # 友军同国时的概率
    if sameCountryRate:
        if byFriendObj.GetCountry() == batObj.GetCountry():
            rate = sameCountryRate
    if not GameWorld.CanHappen(rate):
        GameWorld.DebugLogEx("5508概率不触发技能! rate=%s,friendID=%s", rate, byFriendObj.GetID())
        return
    GameWorld.DebugLogEx("5508概率触发技能! rate=%s,friendID=%s", rate, byFriendObj.GetID())
    if not passiveSkillID:
        passiveSkillID = effSkill.GetSkillID()
    if not passiveSkillID:
        return
    effectID = curEffect.GetEffectID()
    effSkillID = effSkill.GetSkillID()
    return TurnSkill.OnUsePassiveSkill(turnFight, batObj, byFriendObj, passiveSkillID, connSkill, effSkillID, effectID, connBuff, **kwargs)