From 40f2e314ff6df3d45e643419c6f155bb665b78dc Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 14 九月 2024 13:34:19 +0800
Subject: [PATCH] 10249 【越南】【砍树】【英文】仙宫(增加获得气运提示;)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py | 260 ++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 233 insertions(+), 27 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
index 1c96456..f6947cc 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
@@ -34,6 +34,7 @@
import ChConfig
import GMCommon
import DirtyList
+import CrossBillboard
import PlayerBillboard
import PlayerExam
import PlayerControl
@@ -50,6 +51,7 @@
import GameWorldBoss
import GameWorldFamilyWar
#import PlayerFamilyTech
+import PlayerFamilyZhenfa
import PlayerFamilyRedPacket
import PlayerFBHelpBattle
import PlayerHorsePetBoss
@@ -66,15 +68,34 @@
import PyGameData
import PlayerTalk
import PlayerStore
+import CrossYaomoBoss
import CrossRealmPlayer
import CrossRealmMsg
import CrossRealmPK
+import CrossChampionship
+import CrossBattlefield
+import CrossActAllRecharge
+import PlayerActGubao
+import PlayerActHorsePetTrain
+import PlayerActXianXiaMJ
+import PlayerActBossTrial
+import PlayerActFamilyCTGAssist
import ChPyNetSendPack
import NetPackCommon
import AuctionHouse
+import PlayerFairyDomain
+import GameWorldSkyTower
+import GameWorldMineArea
+import PlayerTurnFight
+import GameWorldArena
+import GameWorldItem
+import PlayerRecData
+import PlayerAssist
+import PlayerLove
import time
import datetime
+import json
#---------------------------------------------------------------------
#全局变量
#---------------------------------------------------------------------
@@ -329,16 +350,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.GetServerCrossZoneMapIpyData(mapID, serverGroupID)
+
+ zoneIpyData = CrossRealmPlayer.GetServerCrossZoneMapIpyData(zoneID, mapID)
if not zoneIpyData:
return
realMapID = zoneIpyData.GetMapID()
@@ -482,15 +512,28 @@
callName = pack.GetCallName()
resultName = pack.GetResultName() #[queryid, 人气值, 物品ID]
+ if callName == "PlayerRealLoginOK":
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ loginMsg = eval(resultName)
+ ChPlayer.DoPlayerRealLoginOK(curPlayer, loginMsg, tick)
+ return
+
if callName == "SendMail":
- title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver, detail, moneySource = eval(resultName)
+ title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver, detail, moneySource, crossMail = eval(resultName)
limitTime = str(GameWorld.GetDatetimeByDiffDays(getDays))
limitTime = limitTime.split(".")[0]
- PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver, detail=detail, moneySource=moneySource)
+ PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver, detail=detail, moneySource=moneySource, crossMail=crossMail)
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":
@@ -512,19 +555,12 @@
PlayerControl.CrossNotify(serverGroupIDList, crossNotifyList)
return
- if callName == "DynamicLineMapOpen":
- realMapID, copyMapID = eval(resultName)
- PlayerFB.OnCrossDynamicLineOpen(realMapID, copyMapID)
- return
-
- if callName == "DynamicLineMapClose":
- realMapID, copyMapID, funcLineDataCache = eval(resultName)
- PlayerFB.OnCrossDynamicLineClose(realMapID, copyMapID, funcLineDataCache)
+ if callName == "DynamicLineMapStateChange":
+ PlayerFB.OnCrossDynamicLineStateChange(eval(resultName))
return
if callName == "DynamicLineMapInitOK":
- realMapID, copyMapCount = eval(resultName)
- PlayerFB.OnCrossDynamicMapReset(realMapID, copyMapCount)
+ PlayerFB.OnCrossDynamicMapReset(eval(resultName))
return
if callName == "CommMapServerInitOK":
@@ -535,6 +571,10 @@
if callName == "UpdateBillboard": #地图服务器更新排行榜
PlayerBillboard.MapServer_UpdateBillboard(eval(resultName), tick)
+ return
+
+ if callName == "UpdateCrossBillboard": #地图服务器更新跨服排行榜
+ CrossBillboard.MapServer_UpdateCrossBillboard(eval(resultName))
return
if callName == 'PyAddFamilyInfoValue': #地图服务器增加战盟信息值
@@ -550,6 +590,13 @@
if callName == 'ExitExam': #地图服务器玩家退出答题
PlayerExam.MapServer_ExitAction(srcPlayerID)
+ return
+
+ if callName == 'FuncOpen':
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ PlayerControl.DoFuncOpenLogic(curPlayer, eval(resultName))
return
if callName == 'TeamNotify':
@@ -591,6 +638,11 @@
GameDataRecord.ChangeCoinCnt(eval(resultName))
return
+ #跨服排位PK战斗结算
+ if callName == "CrossChampionshipPKOver":
+ CrossChampionship.MapServer_CrossChampionshipPKOver(eval(resultName), tick)
+ return
+
#跨服匹配PK战斗结算
if callName == "CrossPKOver":
CrossRealmPK.MapServer_CrossPKOver(eval(resultName), tick)
@@ -622,6 +674,56 @@
CrossRealmPlayer.OnCrossRealmRegOK(srcPlayerID, eval(resultName), tick)
return
+ # 跨服战场结算
+ if callName =="CrossBattlefieldOver":
+ CrossBattlefield.MapServer_CrossBattlefieldOver(eval(resultName))
+ return
+
+ # 跨服妖魔boss伤害结算
+ if callName =="CrossYaomoBossHurtInfo":
+ CrossYaomoBoss.MapServer_CrossYaomoBossHurtInfo(eval(resultName))
+ return
+
+ # 跨服全民充值
+ if callName == "CrossActAllRecharge":
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ CrossActAllRecharge.MapServer_CrossActAllRecharge(curPlayer, eval(resultName))
+ return
+
+ # Boss历练
+ if callName == "BossTrial":
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ PlayerActBossTrial.MapServer_BossTrial(curPlayer, eval(resultName))
+ return
+
+ # 仙匣秘境
+ if callName == "XianXiaMJ":
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ PlayerActXianXiaMJ.MapServer_XianXiaMJ(curPlayer, eval(resultName))
+ return
+
+ # 古宝养成
+ if callName == "ActGubao":
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ PlayerActGubao.MapServer_Gubao(curPlayer, eval(resultName))
+ return
+
+ # 骑宠养成
+ if callName == "ActHorsePetTrain":
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ PlayerActHorsePetTrain.MapServer_HorsePetTrain(curPlayer, eval(resultName))
+ return
+
#py喇叭聊天
if callName == 'PYSpeaker':
curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
@@ -641,6 +743,13 @@
# 战盟联赛
if callName =="FamilyWarOver":
GameWorldFamilyWar.MapServer_FamilyWarOver(eval(resultName))
+ return
+
+ # 增加玩家Rec数据
+ if callName == "AddPlayerRec":
+ curPlayer = None if not srcPlayerID else GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ recType, valueList, userData, notifyType = eval(resultName)
+ PlayerRecData.MapServer_AddPlayerRec(curPlayer, recType, valueList, userData, notifyType)
return
# 删除通用玩家Rec数据
@@ -666,12 +775,6 @@
return
- # 战盟副本boss开始、被击杀
- if callName =="FamilyBossFBState":
- PlayerFamilyBoss.FamilyBossOnKilled(eval(resultName), tick)
- return
-
-
# 击杀boss掉落好物品
if callName =="BossDropGoodItem":
GameWorldBoss.OnKillBossDropGoodItem(eval(resultName), tick)
@@ -708,6 +811,11 @@
# 全局击杀数统计
if callName =="GlobalKillCount":
GameWorldProcess.UpdGlobalKillCount(eval(resultName))
+ return
+
+ # 缓存装备广播信息中的装备明细信息
+ if callName == "NotifyEquipDetailInfo":
+ GameWorldItem.OnCacheNotifyEquipDetailInfo(json.loads(resultName), tick)
return
#生成仙盟红包
@@ -769,15 +877,25 @@
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":
@@ -833,9 +951,29 @@
if callName =="AllFamilyBossOver":
PlayerFamilyBoss.AllFamilyBossKilled()
return
+ #仙盟阵法
+ if callName =="FamilyZhenfa":
+ curPlayer = None
+ if srcPlayerID:
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ PlayerFamilyZhenfa.MapServer_FamilyZhenfa(curPlayer, eval(resultName))
+ return
+ #仙盟传功
+ if callName =="FamilyChuangong":
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ PlayerFamily.MapServer_FamilyChuangong(curPlayer, eval(resultName))
+ return
#骑宠BOSS结束
if callName =="HorsePetBossOver":
PlayerHorsePetBoss.HorsePetBossKilled(int(resultName))
+ return
+ #缥缈仙域事件出现
+ if callName =="AddFairyDomainEvent":
+ PlayerFairyDomain.AddFairyDomainEvent(eval(resultName))
return
#---return分割线-----------------------------------------------------------------
@@ -894,11 +1032,76 @@
# 副本助战
- if callName =="FBHelpBattle":
+ if callName == "FBHelpBattle":
curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
if not curPlayer:
return
ret = PlayerFBHelpBattle.MapServer_FBHelpBattle(curPlayer, eval(resultName))
+ if ret == None:
+ return
+ resultName = '%s' % ret
+
+ # 竞技场
+ if callName == "Arena":
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ ret = GameWorldArena.MapServer_Arena(curPlayer, eval(resultName))
+ resultName = '%s' % ret if ret != None else '' # 需要重置间隔,每次都回复
+
+ # 仙盟充值互助
+ if callName == "FamilyCTGAssist":
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ ret = PlayerActFamilyCTGAssist.MapServer_FamilyCTGAssist(curPlayer, eval(resultName))
+ if ret == None:
+ return
+ resultName = '%s' % ret
+
+ # 仙盟boss
+ if callName == "FamilyBoss":
+ ret = PlayerFamilyBoss.MapServer_FamilyBoss(eval(resultName), tick)
+ if ret == None:
+ return
+ resultName = '%s' % ret
+
+ # 情缘
+ if callName == "Love":
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ ret = PlayerLove.MapServer_Love(curPlayer, eval(resultName))
+ if ret == None:
+ return
+ resultName = '%s' % ret
+
+ # 回合制
+ if callName == "TurnFight":
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ ret = PlayerTurnFight.MapServer_TurnFight(curPlayer, eval(resultName))
+ if ret == None:
+ return
+ resultName = '%s' % ret
+
+ # 福地
+ if callName == "MineArea":
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ ret = GameWorldMineArea.MapServer_MineArea(curPlayer, eval(resultName))
+ if ret == None:
+ return
+ resultName = '%s' % ret
+
+ # 天星塔
+ if callName == "SkyTower":
+ curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
+ if not curPlayer:
+ return
+ ret = GameWorldSkyTower.MapServer_SkyTowerInfo(curPlayer, eval(resultName))
if ret == None:
return
resultName = '%s' % ret
@@ -909,7 +1112,10 @@
# if not curPlayer:
# return
# resultName = '%s' % PlayerFamilyStore.DoMapServerFamilyStore(curPlayer, eval(resultName), tick)
-
+
+ if not srcPlayerID:
+ return
+
srcPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
if not srcPlayer:
--
Gitblit v1.8.0