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