PySysDB/PySysDBPY.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
PySysDB/PySysDBPY.h
@@ -460,6 +460,15 @@ dict AttrExDict; //特殊属性值字典 {attrKey:value, ...} }; //NPC表扩展 struct tagNPCEx { DWORD _NPCID; //NPCID BYTE FightPowerLackAtkLimit; //战力不足限制攻击 DWORD SuppressFightPower; //推荐/压制战力 }; //成长型怪物参数公式表 struct tagNPCStrengthen ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -385,6 +385,12 @@ ("dict", "AttrExDict", 0), ), "NPCEx":( ("DWORD", "NPCID", 1), ("BYTE", "FightPowerLackAtkLimit", 0), ("DWORD", "SuppressFightPower", 0), ), "NPCStrengthen":( ("DWORD", "NPCID", 1), ("BYTE", "IsStrengthenByPlayerCount", 0), @@ -2668,6 +2674,19 @@ def GetAttrPer(self): return self.AttrPer # 对应等级表中的比例 def GetAttrSpecDict(self): return self.AttrSpecDict # 特殊属性值字典 {attrKey:value, ...} def GetAttrExDict(self): return self.AttrExDict # 特殊属性值字典 {attrKey:value, ...} # NPC表扩展 class IPY_NPCEx(): def __init__(self): self.NPCID = 0 self.FightPowerLackAtkLimit = 0 self.SuppressFightPower = 0 return def GetNPCID(self): return self.NPCID # NPCID def GetFightPowerLackAtkLimit(self): return self.FightPowerLackAtkLimit # 战力不足限制攻击 def GetSuppressFightPower(self): return self.SuppressFightPower # 推荐/压制战力 # 成长型怪物参数公式表 class IPY_NPCStrengthen(): @@ -6007,6 +6026,8 @@ self.ipyPlayerLVLen = len(self.ipyPlayerLVCache) self.ipyGMAttrCache = self.__LoadFileData("GMAttr", IPY_GMAttr) self.ipyGMAttrLen = len(self.ipyGMAttrCache) self.ipyNPCExCache = self.__LoadFileData("NPCEx", IPY_NPCEx) self.ipyNPCExLen = len(self.ipyNPCExCache) self.ipyNPCStrengthenCache = self.__LoadFileData("NPCStrengthen", IPY_NPCStrengthen) self.ipyNPCStrengthenLen = len(self.ipyNPCStrengthenCache) self.ipyNPCTimeLostHPCache = self.__LoadFileData("NPCTimeLostHP", IPY_NPCTimeLostHP) @@ -6565,6 +6586,8 @@ def GetPlayerLVByIndex(self, index): return self.ipyPlayerLVCache[index] def GetGMAttrCount(self): return self.ipyGMAttrLen def GetGMAttrByIndex(self, index): return self.ipyGMAttrCache[index] def GetNPCExCount(self): return self.ipyNPCExLen def GetNPCExByIndex(self, index): return self.ipyNPCExCache[index] def GetNPCStrengthenCount(self): return self.ipyNPCStrengthenLen def GetNPCStrengthenByIndex(self, index): return self.ipyNPCStrengthenCache[index] def GetNPCTimeLostHPCount(self): return self.ipyNPCTimeLostHPLen ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -114,11 +114,25 @@ return max(curNPC.GetCurLV(), curNPC.GetLV()) return curNPC.GetLV() def GetNPCDataEx(npcID): ## 获取NPC扩展数据表,可热更 npcDataEx = IpyGameDataPY.GetIpyGameDataNotLog("NPCEx", npcID) if not npcDataEx: if False: # 不可能成立的条件,只为了 . 出代码提示 npcDataEx = IpyGameDataPY.IPY_NPCEx() return npcDataEx return npcDataEx def GetRealmLV(curNPC): return curNPC.GetMAtkMin() # NPC表中此字段含义改成境界等级 def SetRealmLV(curNPC, realmLV): return curNPC.SetMAtkMin(realmLV) # NPC表中此字段含义改成境界等级 def GetIsLVSuppress(curNPC): return curNPC.GetWindDef() # 风防代表是否等级压制 def GetSuppressFightPower(curNPC): return curNPC.GetThunderDef() # 雷防代表压制战力 def SetSuppressFightPower(curNPC, value): return curNPC.SetThunderDef(value) 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() # 雷防代表压制战力 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() # 雷攻代表掉落归属类型 def GetFaction(curNPC): return curNPC.GetCountry()