From 2ccb840f9db8c61f7e9a0a336205713b41790bf3 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 06 八月 2025 19:52:49 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(import问题) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py | 71 +++++++++++++++++------------------ 1 files changed, 34 insertions(+), 37 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 8b29dc8..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 @@ -2578,18 +2575,18 @@ heroAttrDict = {} if lineupPlayerID: heroAttrDict.update({ - ShareDefine.Def_Effect_Atk:500000000, - ShareDefine.Def_Effect_Def:50000000, - ShareDefine.Def_Effect_MaxHP:3000000000, + ChConfig.AttrID_Atk:500000000, + ChConfig.AttrID_Def:50000000, + ChConfig.AttrID_MaxHP:3000000000, }) else: - npcDataEx = GetNPCDataEx(curNPC.GetNPCID()) + npcDataEx = GetNPCDataPy(curNPC.GetNPCID()) if not npcDataEx: return heroAttrDict.update({ - ShareDefine.Def_Effect_Atk:npcDataEx.GetAtk(), - ShareDefine.Def_Effect_Def:npcDataEx.GetDef(), - ShareDefine.Def_Effect_MaxHP:npcDataEx.GetMaxHP(), + ChConfig.AttrID_Atk:npcDataEx.GetAtk(), + ChConfig.AttrID_Def:npcDataEx.GetDef(), + ChConfig.AttrID_MaxHP:npcDataEx.GetMaxHP(), }) GameWorld.DebugLog("heroAttrDict: ID:%s,NPCID:%s,%s" % (curNPC.GetID(), curNPC.GetNPCID(), heroAttrDict)) @@ -2598,10 +2595,10 @@ curNPC.ResetNPCBattleState() # 设置属性 - curNPC.SetMinAtk(heroAttrDict.get(ShareDefine.Def_Effect_Atk, 1)) - curNPC.SetMaxAtk(heroAttrDict.get(ShareDefine.Def_Effect_Atk, 1)) - curNPC.SetDef(heroAttrDict.get(ShareDefine.Def_Effect_Def, 1)) - GameObj.SetMaxHP(curNPC, heroAttrDict.get(ShareDefine.Def_Effect_MaxHP, 1)) + curNPC.SetMinAtk(heroAttrDict.get(ChConfig.AttrID_Atk, 1)) + curNPC.SetMaxAtk(heroAttrDict.get(ChConfig.AttrID_Atk, 1)) + curNPC.SetDef(heroAttrDict.get(ChConfig.AttrID_Def, 1)) + GameObj.SetMaxHP(curNPC, heroAttrDict.get(ChConfig.AttrID_MaxHP, 1)) return ## 刷新NPC属性 -- Gitblit v1.8.0