From fdf293d937f74d7012ad80ef9ea71c23f440193a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 28 十月 2025 10:04:32 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(陆逊技能;增加效果ID5009:检测场上最高层buff复制buff到目标上; 增加效果ID5020:引爆目标所有持续buff所有回合效果(只算按回合结算的))
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/TurnFight.py | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 54 insertions(+), 1 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/TurnFight.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/TurnFight.py
index a3b0243..1b854b5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/TurnFight.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/TurnFight.py
@@ -17,10 +17,12 @@
import ChConfig
import GameWorld
+import ChPyNetPack
import ChPyNetSendPack
import NetPackCommon
import TurnAttack
import BattleObj
+import TurnBuff
FactionList = [1, 2]
@@ -31,8 +33,10 @@
# @remarks 函数详细说明.
def OnExec(curPlayer, msgList):
if not msgList:
+ GameWorld.DebugAnswer(curPlayer, "发起战斗: TurnFight mapID [lineID 玩家ID]")
GameWorld.DebugAnswer(curPlayer, "设置属性: TurnFight a 属性ID 值 [阵营 位置] ")
GameWorld.DebugAnswer(curPlayer, "击杀目标: TurnFight k 阵营 [位置 ...] ")
+ GameWorld.DebugAnswer(curPlayer, "添加buff: TurnFight b 阵营 位置 buff技能ID")
GameWorld.DebugAnswer(curPlayer, "输出明细: TurnFight p [阵营 位置] ")
GameWorld.DebugAnswer(curPlayer, "阵营: 1-左边;2-右边")
GameWorld.DebugAnswer(curPlayer, "位置: 1~6号位")
@@ -44,9 +48,26 @@
__doSetAttr(curPlayer, msgList)
elif value == "k":
__doKillObj(curPlayer, msgList)
+ elif value == "b":
+ __doAddBuff(curPlayer, msgList)
elif value == "p":
__printInfo(curPlayer, msgList)
-
+ elif value > 0 and value != ChConfig.Def_FBMapID_Main:
+ __reqTurnFight(curPlayer, msgList)
+ return
+
+def __reqTurnFight(curPlayer, msgList):
+ mapID = msgList[0]
+ funcLineID = msgList[1] if len(msgList) > 1 else 0
+ tagPlayerID = msgList[2] if len(msgList) > 2 else 0
+ clientData = ChPyNetPack.tagCMTurnFight()
+ clientData.MapID = mapID
+ clientData.FuncLineID = funcLineID
+ clientData.TagType = 0 if not tagPlayerID else 1
+ clientData.TagID = tagPlayerID
+ index = curPlayer.GetIndex()
+ tick = GameWorld.GetGameWorld().GetTick()
+ TurnAttack.OnTurnFight(index, clientData, tick)
return
def __doSetAttr(curPlayer, msgList):
@@ -132,6 +153,38 @@
NetPackCommon.SendFakePack(curPlayer, clientPack)
return
+def __doAddBuff(curPlayer, msgList):
+ faction = msgList[1] if len(msgList) > 1 else 2
+ posNum = msgList[2] if len(msgList) > 2 else 1
+ skillID = msgList[3] if len(msgList) > 3 else 0
+ if faction not in FactionList:
+ GameWorld.DebugAnswer(curPlayer, "阵营: 1-左边;2-右边")
+ return
+ mainFightMgr = TurnAttack.GetMainFightMgr(curPlayer)
+ turnFight = mainFightMgr.turnFight
+ if not turnFight.isInFight():
+ GameWorld.DebugAnswer(curPlayer, "主线非战斗中")
+ return
+
+ batObjMgr = BattleObj.GetBatObjMgr()
+ batFaction = turnFight.getBatFaction(faction)
+ batLineup = batFaction.getBatlineup(1)
+ objID = batLineup.posObjIDDict.get(posNum)
+ batObj = batObjMgr.getBatObj(objID)
+ if not batObj:
+ GameWorld.DebugAnswer(curPlayer, "不存在该战斗对象:阵营:%s,位置:%s" % (faction, posNum))
+ return
+ if not batObj.IsAlive():
+ GameWorld.DebugAnswer(curPlayer, "该对象已被击杀:阵营:%s,位置:%s" % (faction, posNum))
+ return
+
+ addBuff = TurnBuff.DoAddBuffBySkillID(turnFight, batObj, skillID)
+ if addBuff:
+ GameWorld.DebugAnswer(curPlayer, "添加buff成功! buffID=%s" % addBuff.GetBuffID())
+ else:
+ GameWorld.DebugAnswer(curPlayer, "添加buff失败")
+ return
+
def __printInfo(curPlayer, msgList):
## 输出信息
faction = msgList[1] if len(msgList) > 1 else 0
--
Gitblit v1.8.0