From 3746d33910465a715ff31dca487bd04692f798f0 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 23 九月 2025 18:12:42 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(刘备技能;增加效果5004-概率随机移除随机目标身上某种buff;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 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 111c080..06c2a8d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
@@ -750,7 +750,7 @@
         heroID = heroInfo.get("HeroID", 0)
         skinID = heroInfo.get("SkinID", 0)
         lv = heroInfo.get("LV", 1)
-        specialty, atkDistType, country, sex = 0, 1, 0, 1
+        specialty, atkDistType, country, sex, job = 0, 1, 0, 1, 0
         heroIpyData = IpyGameDataPY.GetIpyGameData("Hero", heroID) if heroID else None
         if heroIpyData:
             objName = heroIpyData.GetName()
@@ -758,6 +758,7 @@
             atkDistType = heroIpyData.GetAtkDistType()
             country = heroIpyData.GetCountry()
             sex = heroIpyData.GetSex()
+            job = heroIpyData.GetJob()
             
         if lineupPlayerID:
             fightPower = heroInfo.get("FightPower", 0)
@@ -789,6 +790,7 @@
         batObj.SetSpecialty(specialty)
         batObj.SetCountry(country)
         batObj.SetSex(sex)
+        batObj.SetJob(job)
         batObj.SetHero(heroID, skinID)
         
         skillManager = batObj.GetSkillManager()
@@ -1405,7 +1407,7 @@
                         #GameWorld.DebugLog("    永久buff不处理! curID=%s,index=%s,skillID=%s" % (curID, index, skillID))
                         continue
                     calcTimeline = buff.GetCalcTime()
-                    passTurn = __calcPassturn(calcTimeline, nowTimeline, False)
+                    passTurn = __calcPassturn(calcTimeline, nowTimeline, True)
                     if passTurn <= 0:
                         #GameWorld.DebugLog("    passTurn <= 0 passTurn=%s,calcTimeline=%s,nowTimeline=%s,skillID=%s" % (passTurn, calcTimeline, nowTimeline, skillID))
                         continue
@@ -1424,7 +1426,7 @@
 
 def __calcPassturn(calcTimeline, nowTimeline, equalOK):
     ## 计算已经过了的回合数
-    # @param equalOK: 时间节点相同时是否算1回合,一般技能可以算,buff不算
+    # @param equalOK: 时间节点相同时是否算1回合,一般技能可以算,buff可算可不算,具体看需求调整
     calcTurnNum = calcTimeline / TimelineSet
     calcTimeNode = calcTimeline % TimelineSet
     nowTurnNum = nowTimeline / TimelineSet
@@ -1514,7 +1516,7 @@
                            % (curID, tagID, skillID, hurtValue, lostHP, curBatObj.GetHP()))
     return
 
-def OnObjAction(turnFight, curBatObj):
+def OnObjAction(turnFight, curBatObj, isExtra=False):
     ## 战斗单位行动
     if not curBatObj:
         return
@@ -1530,12 +1532,12 @@
     # 是否可行动状态判断
     canAction = curBatObj.CanAction()
     if not canAction:
-        GameWorld.DebugLog("★回合%s %s 当前状态不可行动!" % (turnNum, objName))
+        GameWorld.DebugLog("★回合%s %s 当前状态不可行动! isExtra=%s" % (turnNum, objName, isExtra))
         return
     
     atk = curBatObj.GetAtk()
     curXP = curBatObj.GetXP()
-    GameWorld.DebugLog("★回合%s %s 行动 : atk=%s,curHP=%s/%s,curXP=%s" % (turnNum, objName, atk, curHP, curBatObj.GetMaxHP(), curXP))
+    GameWorld.DebugLog("★回合%s %s %s行动 : atk=%s,curHP=%s/%s,curXP=%s" % (turnNum, objName, "额外" if isExtra else "", atk, curHP, curBatObj.GetMaxHP(), curXP))
     turnFight.syncObjAction(turnNum, objID)
     
     TurnPassive.OnTriggerPassiveEffect(turnFight, curBatObj, ChConfig.TriggerWay_HeroActionStart)

--
Gitblit v1.8.0