From cc2207557c22a88475e28f6a05a416c0fa97e527 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 25 八月 2025 18:53:15 +0800
Subject: [PATCH] 1111 删除不需要内容;
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 154 insertions(+), 2 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
index 24321a0..5dfbcf4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnPassive.py
@@ -17,9 +17,161 @@
import GameWorld
import PassiveTrigger
+import ChConfig
GameWorld.ImportAll("Script\\Skill\\", "PassiveTrigger")
-
def RefreshPassive(batObj):
- return
\ No newline at end of file
+ ''' 刷新被动效果,一般可能存在于技能或buff中
+ '''
+ passiveEffMgr = batObj.GetPassiveEffManager()
+ skillEffInfo = passiveEffMgr.RefreshSkillPassiveEffect()
+ buffEffInfo = passiveEffMgr.RefreshBuffPassiveEffect()
+ skillEffInfo and GameWorld.DebugLog(" 被动技能效果: %s" % skillEffInfo)
+ buffEffInfo and GameWorld.DebugLog(" 被动Buff效果: %s" % buffEffInfo)
+ return
+
+def OnTriggerPassiveEffect(turnFight, batObj, triggerType, tagObj=None, connSkill=None, connSkillTypeID=0):
+ ''' 触发被动效果,可能触发技能、buff,需根据优先级触发
+ '''
+ passiveEffMgr = batObj.GetPassiveEffManager()
+ if not connSkillTypeID and connSkill:
+ connSkillTypeID = connSkill.GetSkillTypeID()
+ effInfoList = passiveEffMgr.GetPassiveEffByTrigger(triggerType, connSkillTypeID)
+ if not effInfoList:
+ return
+ # [["skill/buff", skillID/buffID, effIDList], ...]
+ tagID = tagObj.GetID() if tagObj else 0
+ GameWorld.DebugLog("触发被动: triggerType=%s,objID=%s,tagID=%s,%s" % (triggerType, batObj.GetID(), tagID, effInfoList))
+ for effInfo in effInfoList:
+ sign = effInfo[0]
+ if sign == "skill":
+ skillID, effIDList = effInfo[1:]
+ __doTriggerPassiveEffectBySkill(turnFight, batObj, tagObj, skillID, effIDList, connSkill)
+
+ elif sign == "buff":
+ buffID, effIDList = effInfo[1:]
+ __doTriggerPassiveEffectByBuff(turnFight, batObj, tagObj, buffID, effIDList, connSkill)
+
+ return
+
+def __doTriggerPassiveEffectBySkill(turnFight, batObj, tagObj, skillID, effIDList, connSkill=None):
+ skillMgr = batObj.GetSkillManager()
+ effSkill = skillMgr.FindSkillByID(skillID)
+ if not effSkill:
+ return
+
+ for effID in effIDList:
+ curEffect = effSkill.GetEffectByID(effID)
+ if not curEffect:
+ continue
+ pyName = "PassiveEff_%s" % effID
+ callFunc = GameWorld.GetExecFunc(PassiveTrigger, "%s.%s" % (pyName, "DoSkillEffectLogic"))
+ if not callFunc:
+ continue
+ callFunc(turnFight, batObj, tagObj, effSkill, curEffect, connSkill)
+
+ return
+
+def __doTriggerPassiveEffectByBuff(turnFight, batObj, tagObj, buffID, effIDList, connSkill=None):
+ buffMgr = batObj.GetBuffManager()
+ curBuff = buffMgr.GetBuff(buffID)
+ if not curBuff:
+ return
+ skillData = curBuff.GetSkillData()
+
+ for effID in effIDList:
+ curEffect = skillData.GetEffectByID(effID)
+ if not curEffect:
+ continue
+ pyName = "PassiveEff_%s" % effID
+ callFunc = GameWorld.GetExecFunc(PassiveTrigger, "%s.%s" % (pyName, "DoBuffEffectLogic"))
+ if not callFunc:
+ continue
+ callFunc(turnFight, batObj, tagObj, curBuff, curEffect, connSkill)
+
+ return
+
+def GetTriggerPassiveValue(batObj, triggerType, tagObj=None, useSkill=None):
+ ''' 获取触发被动的值,一般用于某种条件下才会产生的值,如xx情况下属性变化 或 xx情况下是否发生什么
+ @return: 触发的值,0-没有触发或本身触发的值为0;大于0-触发的具体值
+ '''
+ return 0
+# attacker = FindRealAttacker(attacker)
+# if not attacker:
+# return 0
+#
+# stopPassiveSkill = False # 被动技能不能再触发被动技能,但可以触发天赋技能
+# if useSkill and SkillCommon.isPassiveSkill(useSkill) and isStopPassiveSkill:
+# #GameWorld.DebugLog("被动技能不能再次触发被动技能")
+# #return 0
+# if not PassPassiveLimit(useSkill):
+# stopPassiveSkill = True
+#
+#
+# passiveEff = GetPassiveEffManager().GetPassiveEff(attacker)
+# if not passiveEff:
+# return 0
+# buffDict = passiveEff.GetBuffsByTriggerType(triggerType)
+# if not buffDict:
+# return 0
+#
+# # 当前战斗关系 pvp pve
+# battleRelationType = AttackCommon.GetBattleRelationType(attacker, defender)
+# if not AttackCommon.CheckBattleRelationType(attacker, defender, useSkill, battleRelationType):
+# return 0
+#
+# useSkillID = useSkill.GetSkillID() if useSkill else 0
+# #tick = GameWorld.GetGameWorld().GetTick()
+# curValue = 0
+#
+# for skillID, effectList in buffDict.items():
+# if skillID == useSkillID:
+# continue
+# curSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID)
+# if not curSkill:
+# continue
+#
+# if not IsValidPassiveSkill(curSkill):
+# continue
+#
+# triggerCount = 0 # 成功触发次数
+# for effectInfo in effectList:
+# if stopPassiveSkill and curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_GiftSkill:
+# # 只有天赋才可以再次被触发
+# continue
+# passiveEffect = effectInfo[0]
+# # 被动触发的技能
+# pyName = "PassiveBuff_%s"%passiveEffect.GetEffectID()
+#
+# callFunc = GameWorld.GetExecFunc(PassiveBuff, "%s.%s" % (pyName, "CheckCanHappen"))
+# if not callFunc:
+# continue
+#
+# # 条件不满足
+# if not callFunc(attacker, defender, passiveEffect, skillID, useSkill=useSkill, ownerID=effectInfo[1], ownerType=effectInfo[2]):
+# continue
+#
+# callFunc = GameWorld.GetExecFunc(PassiveBuff, "%s.%s" % (pyName, "GetValue"))
+# if callFunc is None:
+# continue
+#
+# # 如被动技能:千幻冥炎真实伤害从2变4倍
+# #curValue += GetPassiveSkillValueByTriggerType(attacker, defender, curSkill, ChConfig.TriggerType_PassiveBuffValue)
+# value = callFunc(attacker, defender, passiveEffect)
+# if triggerType in TriggerValueMaxList:
+# curValue = max(curValue, value) # 取最大值
+# elif triggerType in TriggerValueMinList:
+# if not curValue:
+# curValue = value
+# elif value > 0:
+# curValue = min(curValue, value) # 取最小值
+# else:
+# curValue += value
+#
+# triggerCount += 1
+#
+# if triggerCount:
+# OnTriggerBuffDel(attacker, curSkill, triggerCount)
+#
+# return curValue
--
Gitblit v1.8.0