From 6b76741f4ea905c4de5997c40b0476bd63fa37b8 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 12 一月 2024 16:27:29 +0800
Subject: [PATCH] 10019 【砍树】回合战斗(增加伤血统计、奖励结算及通知;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 90 ++++++++++++-----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py | 61 ++++++++++-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py | 3
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 90 ++++++++++++-----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 2
6 files changed, 184 insertions(+), 64 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 60c8c3e..7b29094 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -47689,72 +47689,106 @@
# B4 20 回合制战斗状态 #tagMCTurnFightState
class tagMCTurnFightState(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("MapID", c_int), # 自定义地图ID,可用于绑定战斗场景功能(如野外关卡,爬塔功能,竞技场等)
- ("FuncLineID", c_ushort),
- ("PlayerID", c_int), # 对应玩家ID,可为0,某些功能可能有用,如竞技场
- ("State", c_ubyte), # 0-开始;1-战斗中;2-胜利;3-失败;4-结束
- ("TurnNum", c_ubyte), # 当前轮次
- ("TurnMax", c_ubyte), # 最大轮次
- ]
+ Head = tagHead()
+ MapID = 0 #(DWORD MapID)// 自定义地图ID,可用于绑定战斗场景功能(如野外关卡,爬塔功能,竞技场等)
+ FuncLineID = 0 #(WORD FuncLineID)
+ PlayerID = 0 #(DWORD PlayerID)// 对应玩家ID,可为0,某些功能可能有用,如竞技场
+ State = 0 #(BYTE State)// 0-开始;1-战斗中;2-胜利;3-失败;4-结束
+ TurnNum = 0 #(BYTE TurnNum)// 当前轮次
+ TurnMax = 0 #(BYTE TurnMax)// 最大轮次
+ Len = 0 #(WORD Len)
+ Msg = "" #(String Msg)//size = Len
+ data = None
def __init__(self):
self.Clear()
- self.Cmd = 0xB4
- self.SubCmd = 0x20
+ self.Head.Cmd = 0xB4
+ self.Head.SubCmd = 0x20
return
- def ReadData(self, stringData, _pos=0, _len=0):
+ def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.FuncLineID,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.TurnNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.TurnMax,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.Len)
+ return _pos
def Clear(self):
- self.Cmd = 0xB4
- self.SubCmd = 0x20
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB4
+ self.Head.SubCmd = 0x20
self.MapID = 0
self.FuncLineID = 0
self.PlayerID = 0
self.State = 0
self.TurnNum = 0
self.TurnMax = 0
+ self.Len = 0
+ self.Msg = ""
return
def GetLength(self):
- return sizeof(tagMCTurnFightState)
+ length = 0
+ length += self.Head.GetLength()
+ length += 4
+ length += 2
+ length += 4
+ length += 1
+ length += 1
+ length += 1
+ length += 2
+ length += len(self.Msg)
+
+ return length
def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteDWORD(data, self.MapID)
+ data = CommFunc.WriteWORD(data, self.FuncLineID)
+ data = CommFunc.WriteDWORD(data, self.PlayerID)
+ data = CommFunc.WriteBYTE(data, self.State)
+ data = CommFunc.WriteBYTE(data, self.TurnNum)
+ data = CommFunc.WriteBYTE(data, self.TurnMax)
+ data = CommFunc.WriteWORD(data, self.Len)
+ data = CommFunc.WriteString(data, self.Len, self.Msg)
+ return data
def OutputString(self):
- DumpString = '''// B4 20 回合制战斗状态 //tagMCTurnFightState:
- Cmd:%s,
- SubCmd:%s,
+ DumpString = '''
+ Head:%s,
MapID:%d,
FuncLineID:%d,
PlayerID:%d,
State:%d,
TurnNum:%d,
- TurnMax:%d
+ TurnMax:%d,
+ Len:%d,
+ Msg:%s
'''\
%(
- self.Cmd,
- self.SubCmd,
+ self.Head.OutputString(),
self.MapID,
self.FuncLineID,
self.PlayerID,
self.State,
self.TurnNum,
- self.TurnMax
+ self.TurnMax,
+ self.Len,
+ self.Msg
)
return DumpString
m_NAtagMCTurnFightState=tagMCTurnFightState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTurnFightState.Cmd,m_NAtagMCTurnFightState.SubCmd))] = m_NAtagMCTurnFightState
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTurnFightState.Head.Cmd,m_NAtagMCTurnFightState.Head.SubCmd))] = m_NAtagMCTurnFightState
#------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
index 5e7d9ce..4397612 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -2459,6 +2459,8 @@
atkObj.SetDict(ChConfig.Def_PlayerKey_LastHurtNPCObjID, defObj.GetID())
else:
defObj.SetDict(ChConfig.Def_PlayerKey_LastAttackerObjID, atkObj.GetID())
+
+ TurnAttack.AddTurnObjHurtValue(atkObj, defObj, resultHurtType.HurtType, resultHurtType.RealHurtHP, curSkill)
return
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 ad2a386..1cdcb8c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/TurnAttack.py
@@ -32,6 +32,8 @@
import PetControl
import SkillShell
import BuffSkill
+import FBCommon
+import ItemControler
(
FightState_Start,
@@ -52,7 +54,8 @@
objName = "%s[%s]" % (objName, mirrorPlayerID)
faction = GameObj.GetFaction(gameObj)
fightPlaceNum = gameObj.GetDictByKey(ChConfig.Def_Obj_Dict_FightPetPlaceNum)
- return "%s%s %s" % ("A" if faction == 1 else "B", fightPlaceNum, objName)
+ curID = gameObj.GetNPCID() if gameObj.GetGameObjType() == IPY_GameWorld.gotNPC else ""
+ return "%s%s %s%s" % ("A" if faction == 1 else "B", fightPlaceNum, objName, curID)
#// B4 10 回合制战斗 #tagCMTurnFight
#
@@ -94,7 +97,8 @@
def DoTrunFight(curPlayer, mapID, funcLineID, tagPlayerID, tick):
playerID = curPlayer.GetPlayerID()
posX, posY = curPlayer.GetPosX(), curPlayer.GetPosY()
- GameWorld.DebugLog("===== 执行回合制战斗: mapID=%s,funcLineID=%s,tagPlayerID=%s" % (mapID, funcLineID, tagPlayerID), playerID)
+ GameWorld.DebugLog("===== 执行回合制战斗: mapID=%s,funcLineID=%s,playerID=%s,tagPlayerID=%s" % (mapID, funcLineID, playerID, tagPlayerID))
+ ipyData = None
tagObj = None
if tagPlayerID:
npcID = ChConfig.Def_NPCID_PVP
@@ -205,16 +209,42 @@
break
GameWorld.DebugLog("--- 战斗结束处理 ---")
- overState = FightState_Win if isWin else FightState_Fail
- SyncTurnFightState(curPlayer, mapID, funcLineID, tagPlayerID, overState, turnNum, turnMax)
+ # 统计总伤害
+ factionTotalHurtDict = {}
+ for gameObj in fightObjList:
+ if not gameObj:
+ continue
+ faction = GameObj.GetFaction(gameObj)
+ objName = GetObjName(gameObj)
+ objID = gameObj.GetID()
+ totalHurtEx = gameObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnTotalHurtEx) * ChConfig.Def_PerPointValue
+ totalHurt = gameObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnTotalHurt) + totalHurtEx
+ factionTotalHurtDict[faction] = factionTotalHurtDict.get(faction, 0) + totalHurt
+ GameWorld.DebugLog("%s objID=%s,faction=%s, 总输出: %s" % (objName, objID, faction, totalHurt))
+ for faction, totalHurt in factionTotalHurtDict.items():
+ GameWorld.DebugLog("faction=%s, 阵营总输出: %s" % (faction, totalHurt))
+
+ GameWorld.DebugLog("玩家剩余血量: %s / %s" % (GameObj.GetHP(curPlayer), GameObj.GetMaxHP(curPlayer)))
+ GameWorld.DebugLog("对方剩余血量: %s / %s" % (GameObj.GetHP(tagObj), GameObj.GetMaxHP(tagObj)))
# 结算奖励...待扩展
+ awardItemList = []
+ if isWin and ipyData:
+ # 山寨测试先默认都是首次奖励,正式后需删除
+ awardItemList = ipyData.GetAwardItemListFirst()
+
+ GameWorld.DebugLog("奖励物品: %s" % awardItemList)
+ ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["TurnFight", False, {"mapID":mapID, "funcLineID":funcLineID}])
+
+ overMsg = {"itemInfo":FBCommon.GetJsonItemList(awardItemList), "totalHurt":factionTotalHurtDict.get(1, 0)}
+ overState = FightState_Win if isWin else FightState_Fail
+ SyncTurnFightState(curPlayer, mapID, funcLineID, tagPlayerID, overState, turnNum, turnMax, str(overMsg))
for gameObj in fightObjList:
TurnFightObjOverReset(gameObj, tick)
- GameWorld.DebugLog("===== 回合制战斗结束: mapID=%s,funcLineID=%s,tagPlayerID=%s,isWin=%s,overState=%s"
- % (mapID, funcLineID, tagPlayerID, isWin, overState), playerID)
+ GameWorld.DebugLog("===== 回合制战斗结束: mapID=%s,funcLineID=%s,playerID=%s,tagPlayerID=%s,isWin=%s,overState=%s"
+ % (mapID, funcLineID, playerID, tagPlayerID, isWin, overState))
return
def CheckIswin(curPlayer, tagObj):
@@ -364,6 +394,8 @@
isMainRole = gameObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnFightMainRole)
gameObj.SetDict(ChConfig.Def_Obj_Dict_TurnFightID, playerID)
gameObj.SetDict(ChConfig.Def_Obj_Dict_TurnRebornCount, 0)
+ gameObj.SetDict(ChConfig.Def_Obj_Dict_TurnTotalHurt, 0)
+ gameObj.SetDict(ChConfig.Def_Obj_Dict_TurnTotalHurtEx, 0)
SetTimeline(gameObj, 1, 0)
GameObj.SetFaction(gameObj, faction)
GameObj.SetHPFull(gameObj)
@@ -524,7 +556,7 @@
if curBuff.GetCalcStartTick() > timeLine:
# 回合制中产生的buff是以timeline作为CalcStartTick的,所以超过timeline的可视为非回合制buff
continue
- GameWorld.DebugLog(" 删除回合制buff: buffSkillID=%s" % buffSkillID, objID)
+ GameWorld.DebugLog(" 删除回合制buff: objID=%s,buffSkillID=%s" % (objID, buffSkillID))
ownerID, ownerType = curBuff.GetOwnerID(), curBuff.GetOwnerType()
BuffSkill.DoBuffDisApper(gameObj, curBuff, tick)
buffState.DeleteBuffByIndex(i)
@@ -551,6 +583,17 @@
NPCCommon.SetDeadEx(gameObj)
return
+def AddTurnObjHurtValue(curObj, tagObj, hurtType, hurtValue, curSkill=None):
+ if not curObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnFightTimeline):
+ return
+ skillID = curSkill.GetSkillID() if curSkill else 0
+ totalHurtEx = curObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnTotalHurtEx) * ChConfig.Def_PerPointValue
+ totalHurt = curObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnTotalHurt) + totalHurtEx + hurtValue
+ curObj.SetDict(ChConfig.Def_Obj_Dict_TurnTotalHurt, totalHurt % ChConfig.Def_PerPointValue)
+ curObj.SetDict(ChConfig.Def_Obj_Dict_TurnTotalHurtEx, totalHurt / ChConfig.Def_PerPointValue)
+ GameWorld.DebugLog(" 伤血: curTD=%s,tagID=%s,skillID=%s,hurtType=%s,hurtValue=%s,totalHurt=%s"
+ % (curObj.GetID(), tagObj.GetID(), skillID, hurtType, hurtValue, totalHurt))
+ return
def DoAttack(curObj, tagObj, tick):
curID = curObj.GetID()
@@ -780,7 +823,7 @@
GameWorld.DebugLog(" %s 攻击失败: curID=%s,tagID=%s,atkOK=%s" % (objName, playerID, tagObjID, atkOK))
return useSkillResult
-def SyncTurnFightState(curPlayer, mapID, funcLineID, tagPlayerID, state, turnNum=0, turnMax=0):
+def SyncTurnFightState(curPlayer, mapID, funcLineID, tagPlayerID, state, turnNum=0, turnMax=0, msg=""):
clientPack = ChPyNetSendPack.tagMCTurnFightState()
clientPack.Clear()
clientPack.MapID = mapID
@@ -789,6 +832,8 @@
clientPack.State = state
clientPack.TurnNum = turnNum
clientPack.TurnMax = turnMax
+ clientPack.Msg = msg
+ clientPack.Len = len(clientPack.Msg)
NetPackCommon.SendFakePack(curPlayer, clientPack)
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index fd4728f..5f2ab02 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3074,6 +3074,8 @@
Def_Obj_Dict_TurnComboNum = 'TurnComboNum' # 本回合已累计连击次数
Def_Obj_Dict_TurnAtkBackNum = 'TurnAtkBackNum' # 本回合已累计反击次数
Def_Obj_Dict_TurnBattleType = 'TurnBattleType' # 本次攻击战斗类型:TurnBattleType_xxx
+Def_Obj_Dict_TurnTotalHurt = 'TurnTotalHurt' # 本回合制战斗总伤害,求余亿部分
+Def_Obj_Dict_TurnTotalHurtEx = 'TurnTotalHurtEx' # 本回合制战斗总伤害,整除亿部分
Def_Obj_Dict_FightPetPlaceNum = 'FightPetPlaceNum' # 出战灵宠上阵位置,1~n
Def_Obj_Dict_FightPetQuality = 'FightPetQuality' # 出战灵宠品质
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 60c8c3e..7b29094 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -47689,72 +47689,106 @@
# B4 20 回合制战斗状态 #tagMCTurnFightState
class tagMCTurnFightState(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("MapID", c_int), # 自定义地图ID,可用于绑定战斗场景功能(如野外关卡,爬塔功能,竞技场等)
- ("FuncLineID", c_ushort),
- ("PlayerID", c_int), # 对应玩家ID,可为0,某些功能可能有用,如竞技场
- ("State", c_ubyte), # 0-开始;1-战斗中;2-胜利;3-失败;4-结束
- ("TurnNum", c_ubyte), # 当前轮次
- ("TurnMax", c_ubyte), # 最大轮次
- ]
+ Head = tagHead()
+ MapID = 0 #(DWORD MapID)// 自定义地图ID,可用于绑定战斗场景功能(如野外关卡,爬塔功能,竞技场等)
+ FuncLineID = 0 #(WORD FuncLineID)
+ PlayerID = 0 #(DWORD PlayerID)// 对应玩家ID,可为0,某些功能可能有用,如竞技场
+ State = 0 #(BYTE State)// 0-开始;1-战斗中;2-胜利;3-失败;4-结束
+ TurnNum = 0 #(BYTE TurnNum)// 当前轮次
+ TurnMax = 0 #(BYTE TurnMax)// 最大轮次
+ Len = 0 #(WORD Len)
+ Msg = "" #(String Msg)//size = Len
+ data = None
def __init__(self):
self.Clear()
- self.Cmd = 0xB4
- self.SubCmd = 0x20
+ self.Head.Cmd = 0xB4
+ self.Head.SubCmd = 0x20
return
- def ReadData(self, stringData, _pos=0, _len=0):
+ def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.FuncLineID,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.TurnNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.TurnMax,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.Len)
+ return _pos
def Clear(self):
- self.Cmd = 0xB4
- self.SubCmd = 0x20
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xB4
+ self.Head.SubCmd = 0x20
self.MapID = 0
self.FuncLineID = 0
self.PlayerID = 0
self.State = 0
self.TurnNum = 0
self.TurnMax = 0
+ self.Len = 0
+ self.Msg = ""
return
def GetLength(self):
- return sizeof(tagMCTurnFightState)
+ length = 0
+ length += self.Head.GetLength()
+ length += 4
+ length += 2
+ length += 4
+ length += 1
+ length += 1
+ length += 1
+ length += 2
+ length += len(self.Msg)
+
+ return length
def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteDWORD(data, self.MapID)
+ data = CommFunc.WriteWORD(data, self.FuncLineID)
+ data = CommFunc.WriteDWORD(data, self.PlayerID)
+ data = CommFunc.WriteBYTE(data, self.State)
+ data = CommFunc.WriteBYTE(data, self.TurnNum)
+ data = CommFunc.WriteBYTE(data, self.TurnMax)
+ data = CommFunc.WriteWORD(data, self.Len)
+ data = CommFunc.WriteString(data, self.Len, self.Msg)
+ return data
def OutputString(self):
- DumpString = '''// B4 20 回合制战斗状态 //tagMCTurnFightState:
- Cmd:%s,
- SubCmd:%s,
+ DumpString = '''
+ Head:%s,
MapID:%d,
FuncLineID:%d,
PlayerID:%d,
State:%d,
TurnNum:%d,
- TurnMax:%d
+ TurnMax:%d,
+ Len:%d,
+ Msg:%s
'''\
%(
- self.Cmd,
- self.SubCmd,
+ self.Head.OutputString(),
self.MapID,
self.FuncLineID,
self.PlayerID,
self.State,
self.TurnNum,
- self.TurnMax
+ self.TurnMax,
+ self.Len,
+ self.Msg
)
return DumpString
m_NAtagMCTurnFightState=tagMCTurnFightState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTurnFightState.Cmd,m_NAtagMCTurnFightState.SubCmd))] = m_NAtagMCTurnFightState
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTurnFightState.Head.Cmd,m_NAtagMCTurnFightState.Head.SubCmd))] = m_NAtagMCTurnFightState
#------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
index f3d9239..d000762 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -34,6 +34,7 @@
import GameObj
import PassiveBuffEffMng
import IpyGameDataPY
+import TurnAttack
#---------------------------------------------------------------------
#---------------------------------------------------------------------
@@ -1408,6 +1409,8 @@
elif curObjType == IPY_GameWorld.gotNPC:
AttackCommon.NPCAddObjInHurtList(attackerOwner, curObj, curObjHP_BeforeAttack, lostValue)
+ TurnAttack.AddTurnObjHurtValue(buffOwner, curObj, hurtType, lostValue, curSkill)
+
#统一调用攻击结束动作
if isDoAttackResult:
BaseAttack.DoLogic_AttackResult(buffOwner, curObj, None, tick)
--
Gitblit v1.8.0