From fbc7b73be513ac507ad43f1586c8f6f865049d0d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 03 十二月 2025 11:18:00 +0800
Subject: [PATCH] 358 【内政】红颜系统-服务端(游历裂纹改为指定物品奖励必定出现;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py |   47 +++++++++++++++++++----------------------------
 1 files changed, 19 insertions(+), 28 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
index 00883bb..8b88731 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
@@ -1257,15 +1257,13 @@
 def __doSetFightPoint(curPlayer, fightPoint):
     ## 设置消耗倍值
     GameWorld.DebugLog("设置战锤消耗倍值: %s" % fightPoint)
-    if fightPoint == 1:
-        pass
-    elif fightPoint == 2:
-        # 条件验证
-        pass
-    elif fightPoint == 3:
-        # 条件验证
-        pass
-    else:
+    needTreeLVList = IpyGameDataPY.GetFuncEvalCfg("AutoGuaji", 1)
+    if fightPoint < 1 or fightPoint > len(needTreeLVList):
+        return
+    needTreeLV = needTreeLVList[fightPoint - 1]
+    treeLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreeLV)
+    if treeLV < needTreeLV:
+        GameWorld.DebugLog("祝福树等级不足: treeLV=%s < %s" % (treeLV, needTreeLV))
         return
     curPlayer.SetFightPoint(fightPoint)
     return
@@ -1553,6 +1551,7 @@
             batObj = batObjMgr.getBatObj(objID)
             turnFight.ResetOneActionUseSkillCnt()
             TurnPassive.OnTriggerPassiveEffect(turnFight, batObj, ChConfig.TriggerWay_FightStart)
+            TurnPassive.OnTriggerPassiveEffect(turnFight, batObj, ChConfig.TriggerWay_InBattlefield)
             
     turnFight.enterLogic = True
     return True
@@ -1570,8 +1569,6 @@
             batObj = batObjMgr.getBatObj(objID)
             if not batObj:
                 continue
-            if not batObj.IsAlive():
-                continue
             
             turnFight.ResetOneActionUseSkillCnt()
             batObj.SetTiming(ChConfig.TurnTiming_Before) # 重置时机到回合前
@@ -1579,8 +1576,12 @@
                 RefreshObjSkillByBigTurn(batObj)
                 RefreshObjByBigTurn(turnFight, batObj)
             batObj.ResetBigTurn() # 每大回合重置
-            TurnPassive.OnTriggerPassiveEffect(turnFight, batObj, ChConfig.TriggerWay_BigTurnStart)
             
+            if not batObj.IsAlive():
+                TurnPassive.OnTriggerPassiveEffect(turnFight, batObj, ChConfig.TriggerWay_BigTurnStartByDead)
+            else:
+                TurnPassive.OnTriggerPassiveEffect(turnFight, batObj, ChConfig.TriggerWay_BigTurnStart)
+                
     return
 
 def TurnFightPerTurnBigEnd(turnFight, turnNum):
@@ -1862,6 +1863,7 @@
     skillID = useSkill.GetSkillID() if useSkill else 0
     GameWorld.DebugLog("        %s 回合战斗主体被击杀: curID=%s,killerObjID=%s,skillID=%s" % (GetObjName(gameObj), objID, killerObjID, skillID))
     gameObj.SetDead()
+    TurnBuff.DoBuffByDead(turnFight, gameObj)
     
     clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagMCTurnFightObjDead)
     clientPack.ObjID = objID
@@ -1872,19 +1874,6 @@
     # 暂时只算主线小怪
     if curPlayer and turnFight.mapID == ChConfig.Def_FBMapID_Main and gameObj.GetFaction() != ChConfig.Def_FactionA:
         GetMainFightMgr(curPlayer).killNPCCnt += 1
-        
-    # 清除光源buff
-    buffMgr = gameObj.GetBuffManager()
-    for index in range(buffMgr.GetBuffCount())[::-1]:
-        buff = buffMgr.GetBuffByIndex(index)
-        skillID = buff.GetSkillID()
-        skillData = buff.GetSkillData()
-        if skillData.GetSkillType() != ChConfig.Def_SkillType_Halo:
-            continue
-        if buff.GetOwnerID() != objID:
-            continue
-        GameWorld.DebugLog("删除光环buff: objID=%s,skillID=%s" % (objID, skillID))
-        TurnBuff.DoBuffDel(turnFight, gameObj, buff)
     return True
 
 def OnTurnAllOver(guid):
@@ -1917,8 +1906,12 @@
     turnFight.costTime = time.time() - turnFight.startTime
     winFaction = turnFight.winFaction
     turnFight.isWin = (winFaction == ChConfig.Def_FactionA)
+    mapID = turnFight.mapID
+    funcLineID = turnFight.funcLineID
     GameWorld.DebugLog("--- 战斗结束处理 ---, winFaction=%s, costTime=%ss, %s" % (winFaction, turnFight.costTime, guid))
-    
+    if mapID != ChConfig.Def_FBMapID_Main:
+        GameWorld.Log("战斗耗时: %ss, mapID=%s,funcLineID=%s" % (turnFight.costTime, mapID, funcLineID))
+        
     # 统计明细
     batObjMgr = BattleObj.GetBatObjMgr()
     statInfo = {}
@@ -1953,8 +1946,6 @@
                 
     overMsg = {"winFaction":winFaction, "statInfo":statInfo}
     curPlayer = turnFight.curPlayer
-    mapID = turnFight.mapID
-    funcLineID = turnFight.funcLineID
     
     FBLogic.OnTurnFightOver(curPlayer, turnFight, mapID, funcLineID, overMsg)
     

--
Gitblit v1.8.0