From e37c0b9f504429962a92755c7a79926f092ed9af Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 07 一月 2020 18:57:53 +0800 Subject: [PATCH] 8346 【恺英】【后端】协助系统(副本协助支持,增加缥缈S副本) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py | 182 ++++++++++++++++++++------------------------ 1 files changed, 83 insertions(+), 99 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py index 9f9af8b..0738828 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py @@ -37,26 +37,23 @@ import PlayerBillboard import PlayerExam import PlayerControl -import PlayerRecall import PlayerFamilyAction import PlayerUniversalGameRec import PlayerFamily import GameWorldOpenServerCampaign -import GameWorldMixServerCampaign import ShareDefine import GameDataRecord -import GameWorldShopItem import PlayerCompensation import PlayerFB import UpdatePlayerName import PlayerFamilyBoss -import PlayerManorWar import GameWorldBoss import GameWorldFamilyWar #import PlayerFamilyTech import PlayerFamilyRedPacket import PlayerFBHelpBattle -import PlayerFamilyStore +import PlayerHorsePetBoss +#import PlayerFamilyStore import PlayerFamilySWRH import GameWorldProcess import PlayerLVAward @@ -74,9 +71,14 @@ import CrossRealmPK import ChPyNetSendPack import NetPackCommon +import AuctionHouse +import PlayerFairyDomain +import GameWorldItem +import PlayerAssist import time import datetime +import json #--------------------------------------------------------------------- #全局变量 #--------------------------------------------------------------------- @@ -331,16 +333,25 @@ SyncPlayerCrossMapNPCInfo(curPlayer, mapID, npcIDList, mapNPCInfoDict) return + serverGroupID = GameWorld.GetServerGroupID() + zoneIpyData = CrossRealmPlayer.GetCrossZoneIpyDataByServerGroupID(mapID, serverGroupID) + if not zoneIpyData: + return + zoneID = zoneIpyData.GetZoneID() + # 本服缓存超时,发送跨服服务器查询 playerID = curPlayer.GetPlayerID() - CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_QueryNPCInfo, {"PlayerID":playerID, "MapID":mapID, "NPCIDList":npcIDList}) + dataMsg = {"PlayerID":playerID, "ZoneID":zoneID, "MapID":mapID, "NPCIDList":npcIDList} + CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_QueryNPCInfo, dataMsg) return def ClientServerMsg_QueryNPCInfo(serverGroupID, msgData): ## 收到子服请求查看跨服地图NPC个数信息 + zoneID = msgData["ZoneID"] mapID = msgData["MapID"] - zoneIpyData = CrossRealmPlayer.GetServerCrossZoneIpyData(mapID, serverGroupID) + + zoneIpyData = CrossRealmPlayer.GetServerCrossZoneMapIpyData(zoneID, mapID) if not zoneIpyData: return realMapID = zoneIpyData.GetMapID() @@ -485,10 +496,10 @@ resultName = pack.GetResultName() #[queryid, 人气值, 物品ID] if callName == "SendMail": - title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver, detail = eval(resultName) + title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver, detail, moneySource = eval(resultName) limitTime = str(GameWorld.GetDatetimeByDiffDays(getDays)) limitTime = limitTime.split(".")[0] - PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver, detail=detail) + PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver, detail=detail, moneySource=moneySource) return if callName == "SendMailBatch": @@ -509,9 +520,17 @@ CrossRealmPlayer.SetCrossPlayerAttrValue(eval(resultName), tick) return - if callName == 'MergeWorldNotify': - country, msgMark, msgParamList, lineID, mergeMinOSD, mergeMaxOSD, mergeMapInfo = eval(resultName) - PlayerControl.MergeWorldNotify(country, msgMark, msgParamList, lineID, mergeMinOSD, mergeMaxOSD, mergeMapInfo, 1) + if callName == 'CrossNotify': + serverGroupIDList, crossNotifyList = eval(resultName) + PlayerControl.CrossNotify(serverGroupIDList, crossNotifyList) + return + + if callName == "DynamicLineMapStateChange": + PlayerFB.OnCrossDynamicLineStateChange(eval(resultName)) + return + + if callName == "DynamicLineMapInitOK": + PlayerFB.OnCrossDynamicMapReset(eval(resultName)) return if callName == "CommMapServerInitOK": @@ -531,27 +550,8 @@ PlayerFamily.MapServer_PyAddFamilyInfoValue(curPlayer, eval(resultName)) return - if callName == 'UpdRechargeRankBillboard': #地图服务器更新玩家通知特惠累计充值排行榜 - PlayerBillboard.MapServer_UpdateRechargeRankBillboard(eval(resultName)) - return - - if callName == 'UpdCostRankBillboard': #地图服务器更新玩家通知特惠累计消费排行榜 - PlayerBillboard.MapServer_UpdateCostRankBillboard(eval(resultName)) - return - if callName == 'UpdateTotalRechargeBillboard': #地图服务器更新玩家充值总数排行榜 PlayerBillboard.MapServer_UpdateTotalRechargeBillboard(eval(resultName)) - return - - if callName == 'UpdMSRechargeRankBillboard': #地图服务器更新玩家合服活动充值总数排行榜 - PlayerBillboard.MapServer_UpdMSRechargeRankBillboard(eval(resultName)) - return - - if callName == 'UpdMSFamilyKillBossBillboard': #地图服务器更新玩家合服活动战盟击杀boss总数排行榜 - curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) - if not curPlayer: - return - GameWorldMixServerCampaign.UpdMixCampaignFamiliyBossCnt(curPlayer, eval(resultName)) return if callName == 'ExitExam': #地图服务器玩家退出答题 @@ -564,11 +564,6 @@ msg, msgList = eval(resultName) PlayerControl.TeamNotify(teamID, msg, msgList) - return - - if callName == 'ReveiveRecallAward': - #召回奖励领取情况 - PlayerRecall.ReveiveRecallAwardResult(srcPlayerID, resultName) return if callName == "NotifyTruckDestroy": @@ -677,16 +672,6 @@ return - # 领地争夺战拔旗消耗 - if callName =="ManorWarGetFlagCost": - PlayerManorWar.ManorWarGetFlagCost(eval(resultName)) - return - - # 领地争夺战获胜战盟 - if callName =="ManorWarWinner": - PlayerManorWar.DoMapServerManorWarWinner(eval(resultName)) - return - # 战盟副本boss开始、被击杀 if callName =="FamilyBossFBState": PlayerFamilyBoss.FamilyBossOnKilled(eval(resultName), tick) @@ -731,25 +716,14 @@ GameWorldProcess.UpdGlobalKillCount(eval(resultName)) return - # 自定义商店全服限购次数清空 - if callName =="ShopItemClearBuyCnt": - shopID = eval(resultName)[0] - GameWorldShopItem.DoShopItemClearBuyCnt(shopID) - return - - # 新手指导员天数 - if callName =="FreshmanGuiderDay": - curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) - if not curPlayer: - return - - guiderDay = eval(resultName)[0] - PlayerControl.SetFreshmanGuiderDay(curPlayer, guiderDay) + # 缓存装备广播信息中的装备明细信息 + if callName == "NotifyEquipDetailInfo": + GameWorldItem.OnCacheNotifyEquipDetailInfo(json.loads(resultName), tick) return #生成仙盟红包 - if callName == 'CreatFamilyRedPacket': - PlayerFamilyRedPacket.CreatFamilyRedPacket(eval(resultName)) + if callName == "MapServer_CreatRedPacket": + PlayerFamilyRedPacket.MapServer_CreatRedPacket(eval(resultName)) return #发仙盟红包 if callName == 'SendFamilyRedPacket': @@ -773,6 +747,10 @@ if callName =="DuJieFBOver": PlayerDuJie.DoDuJieFBOver(eval(resultName)) return + #境界提升全服buff + if callName =="RealmUpAddBuff": + PlayerDuJie.DoRealmUpAddBuff(resultName) + return # 组队副本队长请求进入询问结果 if callName == "EnterFBTeamAsk": @@ -792,15 +770,35 @@ PlayerBourse.OnGivePlayerBourseGainsResult(curPlayer, eval(resultName)) return + # 拍卖行 + if callName == "AuctionHouse": + curPlayer = None + if srcPlayerID: + curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) + if not curPlayer: + return + AuctionHouse.MapServer_AuctionHouseLogic(curPlayer, eval(resultName), tick) + return + + # 协助 + if callName == "PlayerAssist": + curPlayer = None + if srcPlayerID: + curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) + if not curPlayer: + return + PlayerAssist.MapServer_PlayerAssistLogic(curPlayer, eval(resultName), tick) + return + if callName == "TeamMemFuncData": PlayerTeam.MapServer_TeamMemFuncData(srcPlayerID, eval(resultName)) return - #封魔坛结束 - if callName == "SealDemonOver": - playerID, lineID, rank = eval(resultName) - PyDataManager.GetSealDemonRecordManager().UpdateSealDemonRecord(playerID,lineID,rank) - return +# #封魔坛结束 +# if callName == "SealDemonOver": +# playerID, lineID, rank = eval(resultName) +# PyDataManager.GetSealDemonRecordManager().UpdateSealDemonRecord(playerID,lineID,rank) +# return #查询副本功能线路人数 if callName == "FBLinePlayerCnt": @@ -852,11 +850,19 @@ if callName =="AddBossRebornPoint": GameWorldBoss.AddBossRebornPoint(eval(resultName)) return - #通知神兽副本NPC刷新时间 - if callName =="DogzNPCTime": - PyGameData.g_dogzNPCRefreshTimeDict = eval(resultName) - GameWorldBoss.Sync_DogzNPCRefreshTime() + #多仙盟BOSS结束 + if callName =="AllFamilyBossOver": + PlayerFamilyBoss.AllFamilyBossKilled() return + #骑宠BOSS结束 + if callName =="HorsePetBossOver": + PlayerHorsePetBoss.HorsePetBossKilled(int(resultName)) + return + #缥缈仙域事件出现 + if callName =="AddFairyDomainEvent": + PlayerFairyDomain.AddFairyDomainEvent(eval(resultName)) + return + #---return分割线----------------------------------------------------------------- @@ -900,15 +906,6 @@ return resultName = '%s' % ret - if callName == 'SendInviteCode': - #邀请码验证回复 - resultName = PlayerRecall.PlayerRecall_InviteCode(srcPlayerID, pack.GetQueryID()) - - if callName == 'MixServerCampaignAward': - #可否领取合服活动奖励 - curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) - resultName = '%s' % GameWorldMixServerCampaign.CanGiveMixCampaignAward(curPlayer, eval(resultName)) - if callName == 'OpenServerCampaignAward': #可否领取开服活动奖励 curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) @@ -931,25 +928,12 @@ return resultName = '%s' % ret - # 战盟仓库 - if callName == "FamilyStore": - curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) - if not curPlayer: - return - resultName = '%s' % PlayerFamilyStore.DoMapServerFamilyStore(curPlayer, eval(resultName), tick) - - # 自定义商店物品 - if callName == "ShopItem": - curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) - resultName = '%s' % GameWorldShopItem.DoShopItemQueryResult(curPlayer, eval(resultName)) - - # 玩家天梯奖励 - if callName == "HighLadderReward": - curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) - import HighLadder - needResult, resultName = HighLadder.MapServer_HighLadderReward(curPlayer, eval(resultName)) - if not needResult: - return +# # 战盟仓库 +# if callName == "FamilyStore": +# curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) +# if not curPlayer: +# return +# resultName = '%s' % PlayerFamilyStore.DoMapServerFamilyStore(curPlayer, eval(resultName), tick) srcPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) -- Gitblit v1.8.0