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