From 985bdf70fd0022733f75bf2106e69c6de77c26b1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 28 十一月 2025 17:29:51 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(卑弥呼所有技能;技能表增加字段Buff保留-BuffRetain,支持死亡保留、复活保留;增加触发方式42-大回合开始时(死亡后有效);增加属性ID 73复活生命加成、74复活怒气加成;优化效果6014-支持失败次数额外概率;优化死亡、复活时的buff处理;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
index 3bc1cff..251aecb 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BattleObj.py
@@ -365,6 +365,7 @@
def GetLayerMax(self): return self._ipyData.GetLayerMax()
def GetBuffRepeat(self): return self._ipyData.GetBuffRepeat() # Buff叠加规则
def GetDispersedLimit(self): return self._ipyData.GetDispersedLimit() or self._ipyData.GetSkillType() == ChConfig.Def_SkillType_Halo # 驱散限制
+ def GetBuffRetain(self): return self._ipyData.GetBuffRetain()
def GetFightPower(self): return self._ipyData.GetFightPower()
class PyBuff():
@@ -392,6 +393,8 @@
def GetSkillData(self): return self._skillData
def GetSkillID(self): return self._skillData.GetSkillID()
def GetCurBuffState(self): return self._skillData.GetCurBuffState()
+ def GetDispersedLimit(self): return self._skillData.GetDispersedLimit()
+ def GetBuffRetain(self): return self._skillData.GetBuffRetain()
def GetAddTiming(self): return self._addTiming
def SetAddTiming(self, addTiming):
self._addTiming = addTiming
@@ -661,6 +664,7 @@
def GetLayerMax(self): return self._skillData.GetLayerMax()
def GetBuffRepeat(self): return self._skillData.GetBuffRepeat() # Buff叠加规则
def GetDispersedLimit(self): return self._skillData.GetDispersedLimit() # 驱散限制
+ def GetBuffRetain(self): return self._ipyData.GetBuffRetain()
def GetFightPower(self): return self._skillData.GetFightPower()
## ---------------------------------- 非技能表内容 ----------------------------------
@@ -844,6 +848,7 @@
self._kvDict = {} # 自定义kv字典
self._bigTurnAtkbackCnt = 0 # 大回合累计反击次数
self._incrementValue = 0 # 自增值,每场战斗重置,用于确保唯一的场景,如 Skill tag 标签
+ self._skillHappenFailCntDict = {} # 技能累计概率触发次数,使用成功后重置 {skillID:failCnt, ...}
self._skillUseCntDict = {} # 技能累计使用次数 {skillID:useCnt, ...}
self._skillTurnUseCntDict = {} # 技能单回合累计使用次数 {skillID:useCnt, ...}
self._skillMgr = ObjPool.GetPoolMgr().acquire(SkillManager, self)
@@ -909,6 +914,7 @@
return
def ResetBattleEffect(self):
+ ## 重置战斗属性,一般刷属性前调用
self._batAttrDict = {}
self._batAttrDict.update(self._initAttrDict)
self.__onUpdBatAttr()
@@ -1077,9 +1083,19 @@
self._skillTempAttrDict[attrID] = self._skillTempAttrDict.get(attrID, 0) + value
def ClearSkillTempAttr(self): self._skillTempAttrDict = {}
+ def GetSkillHappenFailCnt(self, skillID): return self._skillHappenFailCntDict.get(skillID, 0) # 技能概率触发失败累计次数
+ def IsSkillCanHappen(self, skillID, happenRate):
+ if happenRate and not GameWorld.CanHappen(happenRate, ChConfig.Def_MaxRateValue):
+ self._skillHappenFailCntDict[skillID] = self._skillHappenFailCntDict.get(skillID, 0) + 1
+ return False
+ self._skillHappenFailCntDict.pop(skillID, 0)
+ return True
+
def GetSkillUseCnt(self, skillID): return self._skillUseCntDict.get(skillID, 0) # 单场战斗累计使用次数
def GetSkillTurnUseCnt(self, skillID): return self._skillTurnUseCntDict.get(skillID, 0) # 单回合累计使用次数
def ResetSkillUseCnt(self):
+ ## 每场战斗开始时重置
+ self._skillHappenFailCntDict = {}
self._skillUseCntDict = {}
self._skillTurnUseCntDict = {}
self._incrementValue = 0
--
Gitblit v1.8.0