| | |
| | | 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
|
| | |
|
| | |
| | | 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() # 雷攻代表掉落归属类型
|
| | |
| | |
|
| | | # 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=[]):
|
| | |
| | |
|
| | | 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
|
| | |
| | | ChConfig.AttrID_MaxHP:3000000000,
|
| | | })
|
| | | else:
|
| | | npcDataEx = GetNPCDataEx(curNPC.GetNPCID())
|
| | | npcDataEx = GetNPCDataPy(curNPC.GetNPCID())
|
| | | if not npcDataEx:
|
| | | return
|
| | | heroAttrDict.update({
|