From 5affad5d239f5fed725f5992ebab08c6da59c090 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期二, 12 二月 2019 11:58:17 +0800 Subject: [PATCH] 5819 【后端】【1.6】运营活动支持对应不同的职业和世界等级 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py | 21 +++++++++++++++++---- 1 files changed, 17 insertions(+), 4 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 a082088..6a09d0a 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py @@ -52,6 +52,7 @@ import PlayerMagicWeapon import PlayerBossReborn import PlayerFairyCeremony +import PlayerNewFairyCeremony import PlayerWeekParty import FamilyRobBoss import IpyGameDataPY @@ -2125,8 +2126,8 @@ GameWorld.DebugLog("Boss状态变更: bossID=%s,isAlive=%s,dataMapID=%s,realMapID=%s,copyMapID=%s" % (bossID, isAlive, dataMapID, realMapID, copyMapID)) if not isAlive: - if dataMapID in ChConfig.Def_CrossZoneTableName: - tableName = ChConfig.Def_CrossZoneTableName[dataMapID] + if dataMapID in ChConfig.Def_CrossZoneMapTableName: + tableName = ChConfig.Def_CrossZoneMapTableName[dataMapID] realMapID = GameWorld.GetGameWorld().GetRealMapID() copyMapID = GameWorld.GetGameWorld().GetCopyMapID() zoneIpyData = IpyGameDataPY.GetIpyGameData(tableName, realMapID, dataMapID, copyMapID) @@ -2152,6 +2153,7 @@ dataDict = {"objID":npcID, "bossID":npcID, "touchCnt":newCnt, "AccID":curPlayer.GetAccID(), "PlayerID":curPlayer.GetPlayerID()} DataRecordPack.SendEventPack("AddKillBossCnt", dataDict, curPlayer) + PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_KillBoss, 1, [limitIndex]) if isCrossServer: return @@ -2163,6 +2165,7 @@ PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_WorldBOSS) PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_WorldBOSS, 1) PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_WorldBoss, 1) + PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_WorldBoss, 1) PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_WorldBOSS, 1) if mapID == ChConfig.Def_FBMapID_BossHome: @@ -2173,6 +2176,7 @@ PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_BOSSHome) PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_BOSSHome, 1) PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_BossHome, 1) + PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_BossHome, 1) PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_BOSSHome, 1) return @@ -3025,6 +3029,10 @@ # GameWorld.DebugLog("伤血玩家血量为0,清除该伤血!playerID=%s" % hurtID) # return True + if hurtPlayer.GetInitOK() and not hurtPlayer.GetVisible(): + GameWorld.DebugLog("伤血玩家不可见,清除该伤血!playerID=%s" % hurtID) + return True + if not self.GetIsInRefreshPoint(hurtPlayer.GetPosX(), hurtPlayer.GetPosY(), refreshPoint): GameWorld.DebugLog("伤血玩家不在boss范围里,清除该伤血!playerID=%s" % hurtID) return True @@ -3058,6 +3066,10 @@ #GameWorld.DebugLog("队员不在本线路,不计!playerID=%s" % playerID) continue + if curTeamPlayer.GetInitOK() and not curTeamPlayer.GetVisible(): + #GameWorld.DebugLog("队员不可见,不计!playerID=%s" % playerID) + continue + if curTeamPlayer.GetHP() <= 0 or curTeamPlayer.GetPlayerAction() == IPY_GameWorld.paDie: deadTime = curTeamPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_DeadTime) if time.time() - deadTime >= IpyGameDataPY.GetFuncCfg("BossHurtValue", 1): @@ -3075,7 +3087,7 @@ teamHurtPlayerIDList.append(playerID) if not teamHurtPlayerIDList: - GameWorld.DebugLog("伤血队伍没有活着的队员在boss区域内,清除该伤血!teamID=%s,mapTeamPlayerIDList=%s" % (teamID, mapTeamPlayerIDList)) + GameWorld.DebugLog("伤血队伍没有符合条件的队员在boss区域内,清除该伤血!teamID=%s,mapTeamPlayerIDList=%s" % (teamID, mapTeamPlayerIDList)) return teamHurtPlayerIDList def RefreshHurtList(self, tick, refreshInterval=3000): @@ -5035,6 +5047,7 @@ else: if curNPC.GetLV()>=curPlayer.GetLV() - IpyGameDataPY.GetFuncCfg('DailyQuestKillMonster'): PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_KillNPC) + PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_KillSpecificNPC, 1, [npcID]) if ChConfig.IsGameBoss(curNPC): OnPlayerKillBoss(curPlayer, npcID, mapID, False) @@ -5175,7 +5188,7 @@ #=========================================================================================== # 在地上添加物品(统一接口) - dropNPCID = 0 if not curNPC.GetIsBoss() else curNPCID + dropNPCID = 0 if not ChConfig.IsGameBoss(curNPC) else curNPCID specOwnerIDList = self.__AllKillerDict.keys() if (len(self.__AllKillerDict) > 1 or dropType == ChConfig.Def_NPCHurtTypeSpecial) else [] curMapItem = ChItem.AddMapDropItem(posX, posY, curItem, ownerInfo=[dropType, ownerID, specOwnerIDList], dropNPCID=dropNPCID) -- Gitblit v1.8.0