From d2a7a62fce1fcbf25633c620e06f9c40d1d1bbde Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 17 一月 2025 12:05:07 +0800 Subject: [PATCH] 1111 【越南】【英语】【BT】【砍树】增加击杀boss任务事件 --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py | 366 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 272 insertions(+), 94 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py index 6087b91..a4c6352 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py @@ -34,28 +34,30 @@ import ChConfig import GMCommon import DirtyList +import CrossBillboard import PlayerBillboard import PlayerExam import PlayerControl -import PlayerRecall import PlayerFamilyAction import PlayerUniversalGameRec import PlayerFamily import GameWorldOpenServerCampaign import ShareDefine import GameDataRecord -import GameWorldShopItem +import PlayerPackData import PlayerCompensation import PlayerFB import UpdatePlayerName import PlayerFamilyBoss -import PlayerManorWar import GameWorldBoss import GameWorldFamilyWar #import PlayerFamilyTech +import PlayerFamilyZhenfa import PlayerFamilyRedPacket +import PlayerFamilyZhenbaoge import PlayerFBHelpBattle -import PlayerFamilyStore +import PlayerHorsePetBoss +#import PlayerFamilyStore import PlayerFamilySWRH import GameWorldProcess import PlayerLVAward @@ -68,15 +70,35 @@ 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 PlayerActLianqi +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 #--------------------------------------------------------------------- #全局变量 #--------------------------------------------------------------------- @@ -331,16 +353,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() @@ -484,15 +515,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": @@ -514,6 +558,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) @@ -523,20 +575,16 @@ if callName == "UpdateBillboard": #地图服务器更新排行榜 PlayerBillboard.MapServer_UpdateBillboard(eval(resultName), tick) return + + if callName == "UpdateCrossBillboard": #地图服务器更新跨服排行榜 + CrossBillboard.MapServer_UpdateCrossBillboard(eval(resultName)) + return if callName == 'PyAddFamilyInfoValue': #地图服务器增加战盟信息值 curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) if not curPlayer: return 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': #地图服务器更新玩家充值总数排行榜 @@ -547,17 +595,19 @@ 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': #队伍通知 teamID = pack.GetQueryID() msg, msgList = eval(resultName) PlayerControl.TeamNotify(teamID, msg, msgList) - return - - if callName == 'ReveiveRecallAward': - #召回奖励领取情况 - PlayerRecall.ReveiveRecallAwardResult(srcPlayerID, resultName) return if callName == "NotifyTruckDestroy": @@ -591,22 +641,9 @@ GameDataRecord.ChangeCoinCnt(eval(resultName)) return - #跨服匹配PK战斗结算 - if callName == "CrossPKOver": - CrossRealmPK.MapServer_CrossPKOver(eval(resultName), tick) - return - - #跨服匹配房间开启 - if callName == "CrossPKRoomOpen": - CrossRealmPK.MapServer_CrossPKRoomOpen(eval(resultName), tick) - return - - #跨服匹配PK取消匹配 - if callName == "CrossRealmPKCancel": - curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) - if not curPlayer: - return - CrossRealmPK.SendCancelCrossRealmPKMatch(curPlayer, resultName) + #请求玩家的打包数据 + if callName == "ReuestPlayerPackData": + PlayerPackData.OnMGReuestPlayerPackData(eval(resultName)) return #跨服PK请求玩家当前排名 @@ -620,6 +657,64 @@ #跨服注册结果 if callName == "CrossRealmReg": 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 + + # 炼器 + if callName == "ActLianqi": + curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) + if not curPlayer: + return + PlayerActLianqi.MapServer_Lianqi(curPlayer, eval(resultName)) return #py喇叭聊天 @@ -641,6 +736,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,22 +768,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) - return - - # 击杀boss掉落好物品 if callName =="BossDropGoodItem": GameWorldBoss.OnKillBossDropGoodItem(eval(resultName), tick) @@ -720,20 +806,9 @@ 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 #生成仙盟红包 @@ -761,6 +836,10 @@ #境界渡劫副本结束 if callName =="DuJieFBOver": PlayerDuJie.DoDuJieFBOver(eval(resultName)) + return + #境界提升全服buff + if callName =="RealmUpAddBuff": + PlayerDuJie.DoRealmUpAddBuff(resultName) return # 组队副本队长请求进入询问结果 @@ -791,15 +870,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": @@ -851,6 +940,34 @@ if callName =="AddBossRebornPoint": GameWorldBoss.AddBossRebornPoint(eval(resultName)) return + #多仙盟BOSS结束 + 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分割线----------------------------------------------------------------- @@ -895,10 +1012,6 @@ return resultName = '%s' % ret - if callName == 'SendInviteCode': - #邀请码验证回复 - resultName = PlayerRecall.PlayerRecall_InviteCode(srcPlayerID, pack.GetQueryID()) - if callName == 'OpenServerCampaignAward': #可否领取开服活动奖励 curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) @@ -912,7 +1025,7 @@ # 副本助战 - if callName =="FBHelpBattle": + if callName == "FBHelpBattle": curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) if not curPlayer: return @@ -920,27 +1033,92 @@ 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: - 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 + + # 仙盟珍宝阁 + if callName =="FamilyZhenbaoge": + curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) + if not curPlayer: + return + ret = PlayerFamilyZhenbaoge.MapServer_ZhenbaogeOP(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 + +# # 战盟仓库 +# if callName == "FamilyStore": +# curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) +# 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