From bb652eeae4e39ee66f342975a2804ae305f0f969 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 11 十二月 2020 10:26:41 +0800
Subject: [PATCH] 4869 【主干】【长尾】【BT】七日巡礼重置逻辑优化;运营活动所处天索引逻辑优化;
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py | 188 ++++++++++++++++++++++++----------------------
1 files changed, 99 insertions(+), 89 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
index d72f77f..42df784 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,16 @@
import CrossRealmPK
import ChPyNetSendPack
import NetPackCommon
+import AuctionHouse
+import PlayerFairyDomain
+import GameWorldSkyTower
+import GameWorldArena
+import GameWorldItem
+import PlayerAssist
import time
import datetime
+import json
#---------------------------------------------------------------------
#全局变量
#---------------------------------------------------------------------
@@ -331,16 +335,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,14 +498,19 @@
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":
PlayerCompensation.SendPersonalItemMailBatch(eval(resultName))
+ return
+
+ if callName == "SendEntireMail":
+ mailTypeKey, getDays, limitLV, limitLVType, addItemList, paramList, gold, goldPaper, silver, detail, moneySource = eval(resultName)
+ PlayerCompensation.SendEntireMail(mailTypeKey, getDays, limitLV, limitLVType, addItemList, paramList, gold, goldPaper, silver, detail, moneySource)
return
if callName == "SendMsgToCrossServer":
@@ -514,6 +532,14 @@
PlayerControl.CrossNotify(serverGroupIDList, crossNotifyList)
return
+ if callName == "DynamicLineMapStateChange":
+ PlayerFB.OnCrossDynamicLineStateChange(eval(resultName))
+ return
+
+ if callName == "DynamicLineMapInitOK":
+ PlayerFB.OnCrossDynamicMapReset(eval(resultName))
+ return
+
if callName == "CommMapServerInitOK":
dataMapID, lineID, realMapID, copyMapID = eval(resultName)
PyGameData.g_commMapLineInfo[(dataMapID, lineID)] = (realMapID, copyMapID)
@@ -531,27 +557,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 +571,6 @@
msg, msgList = eval(resultName)
PlayerControl.TeamNotify(teamID, msg, msgList)
- return
-
- if callName == 'ReveiveRecallAward':
- #召回奖励领取情况
- PlayerRecall.ReveiveRecallAwardResult(srcPlayerID, resultName)
return
if callName == "NotifyTruckDestroy":
@@ -677,16 +679,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 +723,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 +754,10 @@
if callName =="DuJieFBOver":
PlayerDuJie.DoDuJieFBOver(eval(resultName))
return
+ #境界提升全服buff
+ if callName =="RealmUpAddBuff":
+ PlayerDuJie.DoRealmUpAddBuff(resultName)
+ return
# 组队副本队长请求进入询问结果
if callName == "EnterFBTeamAsk":
@@ -792,15 +777,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,6 +857,18 @@
if callName =="AddBossRebornPoint":
GameWorldBoss.AddBossRebornPoint(eval(resultName))
return
+ #多仙盟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分割线-----------------------------------------------------------------
@@ -896,15 +913,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)
@@ -926,26 +934,28 @@
if ret == None:
return
resultName = '%s' % ret
-
- # 战盟仓库
- if callName == "FamilyStore":
+
+ # 竞技场
+ if callName =="Arena":
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:
+ ret = GameWorldArena.MapServer_Arena(curPlayer, eval(resultName))
+ resultName = '%s' % ret if ret != None else '' # 需要重置间隔,每次都回复
+
+ # 天星塔
+ if callName == "SkyTower":
+ ret = GameWorldSkyTower.MapServer_SkyTowerInfo(eval(resultName))
+ if ret == None:
return
+ resultName = '%s' % ret
+
+# # 战盟仓库
+# 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