129 【战斗】战斗系统-服务端(吕玲绮突破2潜能;张飞突破2、4潜能;刘备突破2潜能;黄月英突破2、6、7潜能;增加效果5508;优化效果5005;)
| | |
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | 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()
|
| | |
| | | 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
|
| New file |
| | |
| | | #!/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)
|