From b26e86ed1f7d15a3a6a7ebff2e1b8201b9e8ebf5 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 01 八月 2019 14:06:57 +0800
Subject: [PATCH] 8180 【后端】【主干】优化组队打BOSS(优化掉落表现,组队打掉多份的时候只能看到归属自己的物品)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py |   23 ++++++++++++++---------
 1 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
index f564c1e..1cff4a0 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
@@ -36,6 +36,7 @@
 import PlayerUniversalGameRec
 import GameWorldAverageLv
 import PlayerFamilyBoss
+import PlayerHorsePetBoss
 import GameWorldProcess
 import ChPyNetSendPack
 import NetPackCommon
@@ -270,9 +271,9 @@
                     isEnd = (curDateTime == endDayDate)
                     
             # 每天按时段开启的,支持多时段
-            else:
-                if startDayDate <= curDateTime <= endDayDate:
-                    isEnd = (curDateTime == endDayDate)
+            elif startDayDate <= curDateTime <= endDayDate:
+                isEnd = (curDateTime == endDayDate)
+                if not isEnd:
                     for hmIndex, startHMStr in enumerate(startHMStrList):
                         endHMStr = endHMStrList[hmIndex]
                         # 每天开的, 实际开关时间只取今天的日期; 这里有个问题,全服广播的时间不是今天的, 暂不做支持,之后真有这种需求再说
@@ -1094,11 +1095,12 @@
         #    GameWorld.DebugLog("        副本可否进入已经是该值: dataMapID=%s,updCanEnter=%s,canEnterKey=%s" % (dataMapID, updCanEnter, canEnterKey))            
             
         fbFuncStateKey = ShareDefine.Def_Notify_WorldKey_FBFuncState % dataMapID
-        if gameWorld.GetDictByKey(fbFuncStateKey) != updStateValue:
+        beforeState = gameWorld.GetDictByKey(fbFuncStateKey)
+        if beforeState != updStateValue:
             GameWorld.SendMapServerMsgEx(fbFuncStateKey, updStateValue) #通知Mapserver,设置字典
             gameWorld.SetDict(fbFuncStateKey, updStateValue) #更新字典值
             GameWorld.Log("副本状态变更: dataMapID=%s,updStateValue=%s,fbFuncStateKey=%s" % (dataMapID, updStateValue, fbFuncStateKey))
-            __DoLogic_GameServer_ActionState(fbFuncStateKey, updStateValue)
+            __DoLogic_GameServer_ActionState(fbFuncStateKey, updStateValue, beforeState)
         #else:
         #    GameWorld.DebugLog("        副本状态已经是该值: dataMapID=%s,updStateValue=%s,fbFuncStateKey=%s" % (dataMapID, updStateValue, fbFuncStateKey))
             
@@ -1244,12 +1246,13 @@
 ##处理GameServer活动状态
 # @param dictName 字典名
 # @param isOpen 是否开启
+# @param beforeState 状态变更前的值,部分判断处理
 # @return 返回值无意义
 # @remarks 
-def __DoLogic_GameServer_ActionState(dictName, isOpen):
+def __DoLogic_GameServer_ActionState(dictName, isOpen, beforeState=0):
     #仙盟宴会 
     if dictName == ShareDefine.Def_Notify_WorldKey_FBFuncState % ChConfig.Def_FBMapID_FamilyParty:
-        PlayerFamilyParty.FamilyPartyStateChange(isOpen)
+        PlayerFamilyParty.FamilyPartyStateChange(isOpen, beforeState)
     #仙盟联赛
     elif dictName == ShareDefine.Def_Notify_WorldKey_FBFuncState % ChConfig.Def_FBMapID_FamilyWar:
         GameWorldFamilyWar.OnFamilyWarStateChange(isOpen)
@@ -1266,9 +1269,11 @@
     elif dictName == ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_CrossReamPK:
         CrossRealmPK.OnCrossRealmPKDailyActionStateChange(isOpen)
     #仙盟BOSS
-    elif dictName in [ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_FamilyBoss1,
-                      ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_FamilyBoss2,]:
+    elif dictName in [ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_FamilyBoss1]:
         PlayerFamilyBoss.OnAllFamilyBossStateChange(isOpen)
+    #骑宠BOSS
+    elif dictName in [ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_HorsePetBoss]:
+        PlayerHorsePetBoss.OnHorsePetBossStateChange(isOpen)
     
     return
 

--
Gitblit v1.8.0