From ffb34f87fe65c84cc9c204371cbbb3a2a0b43ec1 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期三, 19 九月 2018 15:55:26 +0800 Subject: [PATCH] fix:3670 【后端】只有通过合成的双属性才能分解出魔符印融合石 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py | 29 ++++++++++++++++++----------- 1 files changed, 18 insertions(+), 11 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 4154392..d6eabcb 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py @@ -72,9 +72,10 @@ NPCAttr_ParamDict, # 过程参数公式 NPCAttr_AttrStrengthenList, # 等级成长属性公式 NPCAttr_PlayerCntCoefficient, # 地图人数对应属性额外成长系数 {mapID:{"属性名":{组队进入人数:系数, ...}, ...}, ...} +NPCAttr_NPCPlayerCntCoefficient, # NPC特殊成长人数对应属性额外成长系数 {npcID:{"属性名":{人数:系数, ...}, ...}, ...}, 优先级大于地图人数系数 NPCAttr_DynNPCLVMap, # 动态等级的地图ID列表,默认已刷新出来的NPC等级不会再变更,下次刷出来的怪物等级变更 [地图ID, ...] NPCAttr_DynPCCoefficientMap, # 动态人数系数的地图ID {地图ID:是否马上刷新属性, ...} -) = range(5) +) = range(6) #--------------------------------------------------------------------- ##NPC初始化->出生调用 @@ -140,11 +141,14 @@ gameFB = GameWorld.GetGameFB() if strengthenIpyData.GetIsStrengthenByPlayerCount(): - strengthenPlayerCnt = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_NPCStrengthenPlayerCnt) - if not strengthenPlayerCnt: - GameWorld.ErrLog("NPC配置了按玩家人数成长类型,但是无法获取到对应的玩家人数!npcID=%s" % (npcID)) - return - + if FamilyRobBoss.IsHorsePetRobBoss(npcID): + strengthenPlayerCnt = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_HorsePetRobBossPlayerCount) + else: + strengthenPlayerCnt = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_NPCStrengthenPlayerCnt) + if not strengthenPlayerCnt: + GameWorld.ErrLog("NPC配置了按玩家人数成长类型,但是无法获取到对应的玩家人数!npcID=%s" % (npcID)) + return + lvStrengthenType = strengthenIpyData.GetLVStrengthenType() # 根据世界等级 if lvStrengthenType == 3: @@ -219,6 +223,7 @@ paramDict = attrStrengthenInfo[NPCAttr_ParamDict] # 过程参数公式字典 attrStrengthenList = attrStrengthenInfo[NPCAttr_AttrStrengthenList] # 属性成长公式字典 playerCntCoefficient = attrStrengthenInfo[NPCAttr_PlayerCntCoefficient] # 人数系数 + npcIDPlayerCntCoefficient = attrStrengthenInfo[NPCAttr_NPCPlayerCntCoefficient] # 特殊NPC人数系数 baseMaxHP = npcData.GetHPEx() * ShareDefine.Def_PerPointValue + npcData.GetHP() if strengthenLV: @@ -296,6 +301,8 @@ playerCntAttrCoefficient = playerCntCoefficient.get(mapID, {}) if not playerCntAttrCoefficient and dataMapID in playerCntCoefficient: playerCntAttrCoefficient = playerCntCoefficient[dataMapID] + if npcID in npcIDPlayerCntCoefficient: + playerCntAttrCoefficient = npcIDPlayerCntCoefficient[npcID] for attrKey, coefficientDict in playerCntAttrCoefficient.items(): if attrKey in attrDict: attrValue = attrDict[attrKey] @@ -4791,8 +4798,7 @@ PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_BOSSHome, 1) PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_BossHome, 1) - #击杀特定NPC成就 - PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_KillSpecificNPC, 1, [npcID]) + return #--------------------------------------------------------------------- @@ -4814,10 +4820,10 @@ #不是普通NPC elif npcObjType != IPY_GameWorld.gnotNormal: return - + npcID = curNPC.GetNPCID() #GameWorld.DebugLog("__MissionOnKillNPC isFeel=%s" % (isFeel), curPlayer.GetPlayerID()) killBossCntLimitDict = IpyGameDataPY.GetFuncCfg('KillBossCntLimit', 1) - limitIndex = GameWorld.GetDictValueByKey(killBossCntLimitDict, curNPC.GetNPCID()) + limitIndex = GameWorld.GetDictValueByKey(killBossCntLimitDict, npcID) isWorldBoos = limitIndex == 0 if isFeel: #击杀NPC触发摸怪任务事件 @@ -4829,7 +4835,8 @@ EventShell.EventRespons_OnKillById(curPlayer, curNPC) if isWorldBoos: EventShell.EventRespons_KillWorldBoss(curPlayer) - + #击杀特定NPC成就 + PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_KillSpecificNPC, 1, [npcID]) return def __GetIsLog(self): -- Gitblit v1.8.0