From 8a8329e10d9003867939df1e55bc93e84ebed55f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 22 九月 2019 18:33:52 +0800
Subject: [PATCH] 8282 [主干]跑环任务,每环都要物品灵石(跑环支持直接给灵石)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py |  178 +++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 117 insertions(+), 61 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
index 6ecda8d..370b4f4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -38,9 +38,7 @@
 import GameLogInfo
 import GameServerRefresh
 import ShareDefine
-import ReadCaptchaImage
 import PlayerGameWallow
-import ItemCommon
 import Operate_PlayerBuyZhenQi
 import PlayerSignDay
 import PlayerCoin
@@ -52,51 +50,52 @@
 import PlayerHorse
 import PlayerLoginDayAward
 import NPCCommon
-import GameLogic_MergeBoss
-import GameLogic_ManorWar
 import FunctionNPCCommon
 import PlayerGoldGift
 import PlayerActivity
-import PlayerTeHui
 import PlayerBindJadeWheel
-import PlayerAction
-import PlayerTruck
 import FBCommon
-import PlayerDienstgrad
 import PlayerSuccess
-import PlayerMixLoginDayAward
 import PlayerFreeGoods
 import PlayerMagicWeapon
-import ShopItemManage
 import ChItem
 import PlayerGoldInvest
 import PlayerNewGuyCard
-import PlayerMergeKing
-import PlayerMergePK
+import PlayerCrossRealmPK
 import PlayerPet
-import ReloadModule
 import BossHurtMng
 import PlayerRecover
 import GameLogic_FamilyParty
 import PlayerFamilyRedPacket
 import GameLogic_FamilyInvade
 import GameLogic_ElderBattlefield
+import GameLogic_AllFamilyBoss
+import GameLogic_HorsePetBoss
 import GameLogic_FamilyBoss
 import GameLogic_FamilyWar
-import GameLogic_Dogz
 import OpenServerCampaign
 import PlayerCostRebate
+import PlayerActTotalRecharge
 import PlayerSpringSale
 import PlayerBossReborn
+import PlayerWeekParty
+import PlayerFeastWeekParty
+import PlayerActLogin
 import PlayerFlashGiftbag
 import PlayerFairyCeremony
+import PlayerNewFairyCeremony
+import PlayerFeastRedPacket
+import PlayerLuckyTreasure
+import PlayerAuctionHouse
 import PlayerRefineStove
 import PlayerFlashSale
 import PlayerWishingWell
+import PlayerFairyDomain
 import PlayerVip
 import PlayerDiceEx
 import IpyGameDataPY
 import FamilyRobBoss
+import FBHelpBattle
 import QuestManager
 import PyGameData
 import PlayerTJG
@@ -160,9 +159,6 @@
     
     #副本OnDay事件响应
     FBLogic.OnDay(tick)
-    
-    #重置跨服活动副本人数分配情况信息
-    PlayerControl.ResetMergeFBPlayerCntInfo(0)
     
     #删除所有的任务发布
     missionPubManager = GameWorld.GetGameWorld().GetDBMissionPubManager()
@@ -426,9 +422,17 @@
 #  @remarks 函数详细说明.
 def GameServer_InitOK(index, tick):
     curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    #通知BServer自己OK了
-    curPlayer.SendToBServerServerInitOK()
-    ChPlayer.OnAllServerInitOK(curPlayer, tick)
+    try:
+        #通知BServer自己OK了
+        curPlayer.SendToBServerServerInitOK()
+        ChPlayer.OnAllServerInitOK(curPlayer, tick)
+    except:
+        curPlayer.Kick(IPY_GameWorld.disWaitForPlayerLoinError)
+        import traceback
+        GameWorld.ErrLog("玩家上线逻辑错误~~~~~\r\n%s" % traceback.format_exc())
+        if GameWorld.GetGameWorld().GetDebugLevel():
+            raise Exception("玩家上线逻辑错误~~~~\r\n%s" % traceback.format_exc())
+    return
 
 #--------------------------------------------------------
 def PlayerOnDay(curPlayer):
@@ -468,6 +472,9 @@
     return
     
 def __DoPlayerOnDay(curPlayer, onEventType):
+    
+    if GameWorld.IsCrossServer():
+        return
     
     # 常规过天
     if onEventType == ShareDefine.Def_OnEventType:
@@ -518,16 +525,17 @@
         PlayerBindJadeWheel.OnDay(curPlayer)
     # 特殊时间点X点过天
     elif onEventType == ShareDefine.Def_OnEventTypeEx:
+        # 资源找回
+        PlayerRecover.RecoverOnDay(curPlayer)
         #触发每日任务重置脚本
         EventShell.EventResponse_OnDay(curPlayer)
         #购买次数清空
         Operate_PlayerBuyZhenQi.PlayerOnDay(curPlayer)
-        # 世界boss
-        BossHurtMng.OnDay(curPlayer)
+        
         #我要太极过天
         PlayerDiceEx.OnDay(curPlayer)
-        # 资源找回
-        PlayerRecover.RecoverOnDay(curPlayer)
+        # 世界boss
+        BossHurtMng.OnDay(curPlayer)
         # 仙盟过天
         PlayerFamily.FamilyPlayerOnDay(curPlayer)
         # 重置物品每日使用次数
@@ -536,6 +544,14 @@
         PlayerFreeGoods.OnDay(curPlayer)
         #采集次数重置
         NPCCommon.CollNPCTimeOnDay(curPlayer)
+        #副本助战
+        FBHelpBattle.DoPlayerOnDay(curPlayer)
+        #跨服竞技场
+        PlayerCrossRealmPK.DoPlayerOnDay(curPlayer)
+        #缥缈仙域
+        PlayerFairyDomain.OnDay(curPlayer)
+        #仙盟宴会
+        GameLogic_FamilyParty.OnDayFamilyPartyPlayer(curPlayer)
         
     PlayerTJG.TJGOnDay(curPlayer, onEventType)
     # 以下为支持两种重置模式切换配置的
@@ -638,6 +654,9 @@
 
 def __DoPlayerOnWeek(curPlayer, onEventType):
     
+    if GameWorld.IsCrossServer():
+        return
+    
     if onEventType == ShareDefine.Def_OnEventType:
         #记录上周工资相关流向
         lastWeekOnlineTime = curPlayer.GetLastWeekOnlineTime()
@@ -715,6 +734,8 @@
 
 def __DoPlayerOnMonth(curPlayer, onEventType):
     
+    if GameWorld.IsCrossServer():
+        return
     
     if onEventType == ShareDefine.Def_OnEventType:
         pass
@@ -788,6 +809,8 @@
     
     #触发每小时任务重置脚本
     EventShell.EventResponse_OnHour(curPlayer)
+    #缥缈仙域
+    PlayerFairyDomain.OnHour(curPlayer)
     return
     
 #---------------------------------------------------------------------
@@ -1211,7 +1234,7 @@
     pack = IPY_GameWorld.IPY_MBroadcastMsg()
     msg = pack.GetMsg()
     
-    if not msg.startswith(ShareDefine.Def_Notify_WorldKey_GameWorldBossReborn[:-2]):
+    if not msg.startswith(ShareDefine.Def_Notify_WorldKey_GameWorldBossReborn[:-3]):
         GameWorld.Log('GameServer_BroadcastMsg msg = %s'%(msg))
     #---接收世界服务器发来的消息---
 
@@ -1262,6 +1285,32 @@
                 PyGameData.g_familyPartyInfo = eval(msgValue)
             return
         
+        if key == ShareDefine.Def_Notify_WorldKey_FamilyPartyAddFamilyActivity:
+            mapID, familyID, addFamilyActivity = eval(msgValue)
+            if GameWorld.GetMap().GetMapID() == mapID:
+                GameLogic_FamilyParty.DoAddFamilyMemberFamilyActivity(familyID, addFamilyActivity)
+            return
+        
+        if key == ShareDefine.Def_Notify_WorldKey_AddFamilyAuctionItem:
+            mapID, familyAuctionItemDict = eval(msgValue)
+            if GameWorld.GetMap().GetMapID() == mapID:
+                PlayerAuctionHouse.DoAddFamilyAuctionItem(familyAuctionItemDict)
+            return
+        
+        if key == ShareDefine.Def_Notify_WorldKey_AddSystemAuctionItem:
+            mapID, sysAuctionItemList = eval(msgValue)
+            if GameWorld.GetMap().GetMapID() == mapID:
+                PlayerAuctionHouse.DoAddSystemAuctionItem(sysAuctionItemList)
+            return
+        
+        if key == ShareDefine.Def_Notify_WorldKey_FairyDomainLimit:
+            isAdd, limitList = eval(msgValue)
+            if isAdd:
+                PyGameData.g_fairyDomainLimit += limitList
+            else:
+                PyGameData.g_fairyDomainLimit = limitList
+            return
+        
         if key.startswith(ShareDefine.Def_Notify_WorldKey_OperationActionInfo[:-2]): 
             keyHead = ShareDefine.Def_Notify_WorldKey_OperationActionInfo[:-2]
             actionName = key[len(keyHead):]
@@ -1272,7 +1321,8 @@
                 
             elif actionName == ShareDefine.OperationActionName_CostRebate:
                 PlayerCostRebate.RefreshCostRebateActionInfo()
-
+            elif actionName == ShareDefine.OperationActionName_TotalRecharge:
+                PlayerActTotalRecharge.RefreshTotalRechargeActionInfo()
             elif actionName == ShareDefine.OperationActionName_SpringSale:
                 PlayerSpringSale.RefreshSpringSaleActionInfo()
 
@@ -1284,13 +1334,34 @@
             
             elif actionName == ShareDefine.OperationActionName_FairyCeremony:
                 PlayerFairyCeremony.RefreshOperationAction_FairyCeremony()
-            
+                
+            elif actionName == ShareDefine.OperationActionName_NewFairyCeremony:
+                PlayerNewFairyCeremony.RefreshOperationAction_NewFairyCeremony()
+                
             elif actionName == ShareDefine.OperationActionName_FlashSale:
                 PlayerFlashSale.RefreshflashSaleActionInfo()
                 
             elif actionName == ShareDefine.OperationActionName_WishingWell:
                 PlayerWishingWell.RefreshWishingWellAction()
                 
+            elif actionName == ShareDefine.OperationActionName_WeekParty:
+                PlayerWeekParty.RefreshOperationAction_WeekParty()
+                
+            elif actionName == ShareDefine.OperationActionName_LoginAward:
+                PlayerActLogin.RefreshOperationAction_LoginAward()
+                
+            elif actionName == ShareDefine.OperationActionName_FeastWeekParty:
+                PlayerFeastWeekParty.RefreshOperationAction_FeastWeekParty()
+                
+            elif actionName == ShareDefine.OperationActionName_FeastRedPacket:
+                PlayerFeastRedPacket.RefreshOperationAction_FeastRedPacket()
+                
+            elif actionName == ShareDefine.OperationActionName_LuckyTreasure:
+                PlayerLuckyTreasure.RefreshLuckyTreasureAction()
+            return
+        
+        if key == ShareDefine.Def_Notify_WorldKey_CrossZoneName:
+            PyGameData.g_crossZoneName = msgValue
             return
         
         if msgValue.isdigit():
@@ -1320,30 +1391,10 @@
     #    ReloadModule.DoMapServerScriptReload(value, tick)
     #===============================================================================================
     
-    #领地争夺战
-    elif key == ShareDefine.Def_Notify_WorldKey_ManorWar:
-        GameLogic_ManorWar.OnManorWarStateChange(value, tick)
-
-    #定时商店刷新
-    elif key.startswith(ShareDefine.Def_Notify_WorldKey_TimeShopRefreshTime[:-2]):
-        ShopItemManage.OnTimeShopRefresh(key, value, tick)
+    # 跨服PK
+    elif key == ShareDefine.Def_Notify_WorldKey_CrossPKSeasonID:
+        PlayerCrossRealmPK.OnCrossRealmPKSeasonChange(value)
         
-    #跨服boss
-    elif key == ShareDefine.Def_Notify_WorldKey_MergeBoss:
-        GameLogic_MergeBoss.OnMergeBossStateChange(value, tick)
-        
-    # 跨服PK, 赛季开始时间不用处理,仅存储即可
-    elif key in [ShareDefine.Def_Notify_WorldKey_MergePKDayID, ShareDefine.Def_Notify_WorldKey_MergePKSeasonID]:
-        PlayerMergePK.OnMergePKActionChange(key, value)
-        
-    # 跨服王者争霸
-    elif key in [ShareDefine.Def_Notify_WorldKey_Merge_KingStartID, ShareDefine.Def_Notify_WorldKey_Merge_KingOverID]:
-        PlayerMergeKing.OnMergeKingActionChange(key, value)
-        
-    # 仙盟宴会
-    elif key == ShareDefine.Def_Notify_WorldKey_FBFuncState % ChConfig.Def_FBMapID_FamilyParty:
-        if gameWorldMgr.GetGameWorldDictByKey(key) != value:
-            GameLogic_FamilyParty.OnFamilyPartyStateChange(value, tick)
     # 守卫人皇
     elif key == ShareDefine.Def_Notify_WorldKey_FBFuncState % ChConfig.Def_FBMapID_FamilyInvade:
         if gameWorldMgr.GetGameWorldDictByKey(key) != value:
@@ -1352,6 +1403,15 @@
     elif key == ShareDefine.Def_Notify_WorldKey_FBFuncState % ChConfig.Def_FBMapID_ElderBattlefield:
         if gameWorldMgr.GetGameWorldDictByKey(key) != value:
             GameLogic_ElderBattlefield.OnElderBattlefieldStateChange(value, tick)
+    # 多仙盟BOSS
+    elif key in [ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_FamilyBoss1]:
+        if gameWorldMgr.GetGameWorldDictByKey(key) != value:
+            GameLogic_AllFamilyBoss.OnAllFamilyBossStateChange(value, tick)
+    # 骑宠BOSS
+    elif key == ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_HorsePetBoss:
+        if gameWorldMgr.GetGameWorldDictByKey(key) != value:
+            GameLogic_HorsePetBoss.OnHorsePetBossStateChange(value, tick)
+    
     # OnDayEx
     elif key == ShareDefine.Def_Notify_WorldKey_OnDayEx:
         if value and gameWorldMgr.GetGameWorldDictByKey(key) != value:
@@ -1384,6 +1444,7 @@
             NPCCustomRefresh.ResetActivityBossRefreshCount()
             
     #通用设置
+    befValue = gameWorldMgr.GetGameWorldDictByKey(key)
     gameWorldMgr.SetGameWorldDict(key, value)
     
     #-------在设置了字典值以后处理---------------------------------
@@ -1394,17 +1455,12 @@
     # 王者仙盟
     elif key == ShareDefine.Def_Notify_WorldKey_ChampionFamilyID:
         GameLogic_FamilyWar.OnChampionFamilyIDChange()
-                
-    # 特惠活动
-    elif key in ShareDefine.TeHuiTypeKeyDict.values():
-        PlayerTeHui.ChangeTeHuiActionState(key)
-
-    # 活动buff状态变更
-    elif key.startswith(ShareDefine.Def_Notify_WorldKey_ActionBuffState[:-2]):            
-        PlayerAction.OnActionBuffStateChange(key, tick)
-    #boss刷新时间参数
-    elif key.startswith(ShareDefine.Def_Notify_WorldKey_BossOnlineHeroCnt[:-2]):
-        GameLogic_Dogz.OnOnlineCntChange(key, tick)
+        
+    # 仙盟宴会
+    elif key == ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_FamilyParty:
+        if befValue != value:
+            GameLogic_FamilyParty.OnFamilyPartyStateChange(value, tick)
+            
 #===============================================================================
 #    ---修改为上述的 统一字典处理
 #    if msg == ChConfig.Def_Notify_Key_PurTalk:

--
Gitblit v1.8.0