From efc4f490488935020d1b58a451a396ee420de9da Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 06 八月 2025 18:21:05 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(NPC、技能使用新表N.NPC表卡牌、J.技能表卡牌;重构战斗系统;优化战利品掉落;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py | 51 ++++++++++++++++++++++++--------------------------- 1 files changed, 24 insertions(+), 27 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py index 9080305..a6a329f 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py @@ -129,12 +129,12 @@ return realmNPCIpyData.GetLV() return curNPC.GetLV() -def GetNPCDataEx(npcID): - ## 获取NPC扩展数据表,可热更 - npcDataEx = IpyGameDataPY.GetIpyGameDataNotLog("NPCEx", npcID) +def GetNPCDataPy(npcID): + ## 获取NPC数据表,py自定义的表,可热更 + npcDataEx = IpyGameDataPY.GetIpyGameDataNotLog("NPC", npcID) if not npcDataEx: if False: # 不可能成立的条件,只为了 . 出代码提示 - npcDataEx = IpyGameDataPY.IPY_NPCEx() + npcDataEx = IpyGameDataPY.IPY_NPC() return npcDataEx return npcDataEx @@ -142,11 +142,9 @@ def SetRealmLV(curNPC, realmLV): return curNPC.SetMAtkMin(realmLV) # NPC表中此字段含义改成境界等级 def GetIsLVSuppress(curNPC): return curNPC.GetWindDef() # 风防代表是否等级压制 def GetFightPowerLackAtkLimit(curNPC): # 战力不足限制攻击,默认不限制 - npcDataEx = GetNPCDataEx(curNPC.GetNPCID()) - return npcDataEx.GetFightPowerLackAtkLimit() if npcDataEx else 0 -def GetSuppressFightPower(curNPC): - npcDataEx = GetNPCDataEx(curNPC.GetNPCID()) - return npcDataEx.GetSuppressFightPower() if npcDataEx else curNPC.GetThunderDef() # 雷防代表压制战力 + return 0 +def GetSuppressFightPower(curNPC): # 压制战力 + return 0 def SetSuppressFightPower(curNPC, value): return curNPC.SetThunderDef(min(value, ShareDefine.Def_UpperLimit_DWord)) def GetCommendFightPower(curNPC): return curNPC.GetFireDef() # 火防代表推荐战力 def GetDropOwnerType(curNPC): return curNPC.GetThunderAtk() # 雷攻代表掉落归属类型 @@ -1124,19 +1122,18 @@ # C++设置npc死亡 notifyClient = True - tfMgr = TurnAttack.GetTurnFightMgr() - turnFight = tfMgr.getNPCTurnFight(objID) - if turnFight: - notifyClient = False # 回合制战斗的由py自己通知 - # //04 07 NPC消失#tagNPCDisappear 此处通知消失,与回合制死亡区分 - clientPack = ChNetSendPack.tagNPCDisappear() - clientPack.NPCID = [objID] - clientPack.Count = len(clientPack.NPCID) - turnFight.addBatPack(clientPack) + #tfMgr = TurnAttack.GetTurnFightMgr() + #turnFight = tfMgr.getNPCTurnFight(objID) + #if turnFight: + # notifyClient = False # 回合制战斗的由py自己通知 + # # //04 07 NPC消失#tagNPCDisappear 此处通知消失,与回合制死亡区分 + # clientPack = ChNetSendPack.tagNPCDisappear() + # clientPack.NPCID = [objID] + # clientPack.Count = len(clientPack.NPCID) + # turnFight.addBatPack(clientPack) curNPC.SetDead(curNPC.GetDictByKey(ChConfig.Def_NPCDead_Reason), curNPC.GetDictByKey(ChConfig.Def_NPCDead_KillerType), curNPC.GetDictByKey(ChConfig.Def_NPCDead_KillerID), notifyClient) - tfMgr.delNPCGUID(objID) return def GameServer_KillGameWorldBoss(bossID, killPlayerName, hurtValue, isNotify=True, killerIDList=[]): @@ -2444,13 +2441,13 @@ def __notifyAppear(self): ## //04 06 NPC出现#tagNPCAppear,可能也有 04 08 玩家召唤NPC出现#tagPlayerSummonNPCAppear,卡牌先简化,只使用0406 - curNPC = self.__Instance - objID = curNPC.GetID() - turnFight = TurnAttack.GetTurnFightMgr().getNPCTurnFight(objID) - if not turnFight: - # 非回合制怪保留原通知 - curNPC.NotifyAppear() - return + #curNPC = self.__Instance + #objID = curNPC.GetID() + #turnFight = TurnAttack.GetTurnFightMgr().getNPCTurnFight(objID) + #if not turnFight: + # # 非回合制怪保留原通知 + # curNPC.NotifyAppear() + # return # 回合制怪不通知,统一由 // B4 24 回合战斗初始化 #tagSCTurnFightInit return @@ -2583,7 +2580,7 @@ ChConfig.AttrID_MaxHP:3000000000, }) else: - npcDataEx = GetNPCDataEx(curNPC.GetNPCID()) + npcDataEx = GetNPCDataPy(curNPC.GetNPCID()) if not npcDataEx: return heroAttrDict.update({ -- Gitblit v1.8.0