From c65290e4ebcbecf93fbde371947ff99feab7d29d Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 26 六月 2024 14:41:51 +0800 Subject: [PATCH] 10191 【越南】【主干】【港台】新增多种培养材料副本 --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py | 519 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 378 insertions(+), 141 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py index 4572e63..1de01c2 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py @@ -34,33 +34,28 @@ 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 GameWorldMixServerCampaign import ShareDefine import GameDataRecord -import GameWorldShopItem -import PlayerMergeRegister import PlayerCompensation import PlayerFB import UpdatePlayerName import PlayerFamilyBoss -import PlayerManorWar import GameWorldBoss -import MergeBroadcast import GameWorldFamilyWar -import GameWorldMergeKing -import GameWorldMergePK #import PlayerFamilyTech -import MergeChildMsg +import PlayerFamilyZhenfa import PlayerFamilyRedPacket -import PlayerFamilyStore +import PlayerFBHelpBattle +import PlayerHorsePetBoss +#import PlayerFamilyStore import PlayerFamilySWRH import GameWorldProcess import PlayerLVAward @@ -72,9 +67,32 @@ import PyDataManager import PyGameData import PlayerTalk +import PlayerStore +import CrossYaomoBoss +import CrossRealmPlayer +import CrossRealmMsg +import CrossRealmPK +import CrossChampionship +import CrossBattlefield +import CrossFamilyFlagwar +import CrossActAllRecharge +import PlayerActBossTrial +import PlayerActFamilyCTGAssist +import ChPyNetSendPack +import NetPackCommon +import AuctionHouse +import PlayerFairyDomain +import GameWorldSkyTower +import GameWorldMineArea +import PlayerTurnFight +import GameWorldArena +import GameWorldItem +import PlayerAssist +import PlayerLove import time import datetime +import json #--------------------------------------------------------------------- #全局变量 #--------------------------------------------------------------------- @@ -258,7 +276,7 @@ return # 查询地图NPC数量 elif queryType == ChConfig.queryType_NPCCnt: - __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD) + __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD, tick) return else: GameWorld.ErrLog('unKnow queryType = %s' % (queryType)) @@ -299,7 +317,7 @@ # @param queryCallName: 请求回调名 # @param sendCMD: 请求的命令 根据请求类型和请求命令来决定最终操作 # @return None -def __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD): +def __QueryMapNPCCntInfo(curPlayer, queryCallName, sendCMD, tick): playerManager = GameWorld.GetPlayerManager() try: mapInfo = eval(sendCMD) @@ -311,9 +329,87 @@ return tagMapID = mapInfo[0] + npcIDList = mapInfo[2] + # 本服查询跨服地图怪物数 + if tagMapID in ChConfig.Def_CrossMapIDList and not GameWorld.IsCrossServer(): + __QueryCrossServerMapNPCCntInfo(curPlayer, tagMapID, npcIDList, tick) + return playerManager.MapServer_QueryPlayer(curPlayer.GetPlayerID(), ChConfig.queryType_NPCCnt, 0, tagMapID, queryCallName, sendCMD, len(sendCMD), curPlayer.GetRouteServerIndex()) return + +def __QueryCrossServerMapNPCCntInfo(curPlayer, mapID, npcIDList, tick): + ## 查询跨服地图NPC个数信息 + if mapID in PyGameData.g_crossMapNPCInfo: + infoTick, mapNPCInfoDict = PyGameData.g_crossMapNPCInfo[mapID] + if tick - infoTick < 60 * 1000: + #GameWorld.DebugLog("直接同步本服缓存的跨服地图NPC信息") + SyncPlayerCrossMapNPCInfo(curPlayer, mapID, npcIDList, mapNPCInfoDict) + return + + serverGroupID = GameWorld.GetServerGroupID() + zoneIpyData = CrossRealmPlayer.GetCrossZoneIpyDataByServerGroupID(mapID, serverGroupID) + if not zoneIpyData: + return + zoneID = zoneIpyData.GetZoneID() + + # 本服缓存超时,发送跨服服务器查询 + playerID = curPlayer.GetPlayerID() + 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(zoneID, mapID) + if not zoneIpyData: + return + realMapID = zoneIpyData.GetMapID() + copyMapID = zoneIpyData.GetCopyMapID() + + sendCMD = {"ServerGroupID":serverGroupID, "CopyMapID":copyMapID} + sendCMD.update(msgData) + sendCMD = str(sendCMD) + GameWorld.GetPlayerManager().MapServer_QueryPlayer(0, 0, 0, realMapID, "NPCCntCross", sendCMD, len(sendCMD)) + return + +def CrossServerMsg_NPCInfoRet(msgData, tick): + ## 收到跨服服务器同步的地图NPC信息 + + mapID = msgData["MapID"] + playerID = msgData["PlayerID"] + npcIDList = msgData["NPCIDList"] + mapNPCInfoDict = msgData["Result"] + PyGameData.g_crossMapNPCInfo[mapID] = [tick, mapNPCInfoDict] + curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID) + if curPlayer: + SyncPlayerCrossMapNPCInfo(curPlayer, mapID, npcIDList, mapNPCInfoDict) + + return + +def SyncPlayerCrossMapNPCInfo(curPlayer, mapID, npcIDList, mapNPCInfoDict): + ## 同步给玩家跨服地图NPC信息 + + npcInfoPack = ChPyNetSendPack.tagMCNPCCntList() + npcInfoPack.Clear() + npcInfoPack.MapID = mapID + npcInfoPack.NPCInfoList = [] + + for npcID in npcIDList: + npcInfo = ChPyNetSendPack.tagMCNPCCntInfo() + npcInfo.Clear() + npcInfo.NPCID = npcID + npcInfo.Cnt = mapNPCInfoDict.get(npcID, 0) + npcInfoPack.NPCInfoList.append(npcInfo) + + npcInfoPack.NPCInfoCnt = len(npcInfoPack.NPCInfoList) + NetPackCommon.SendFakePack(curPlayer, npcInfoPack) + return + ## 获得家族属性(等级,人数)获得自己所在家族的属性 # @param curPlayer 请求的玩家 @@ -413,28 +509,55 @@ callName = pack.GetCallName() resultName = pack.GetResultName() #[queryid, 人气值, 物品ID] - if callName == 'SendMail': - title, content, getDays, playerIDList, addItemList, gold, goldPaper, silver = eval(resultName) - limitTime = str(GameWorld.GetDatetimeByDiffDays(getDays)) - limitTime = limitTime.split(".")[0] - PlayerCompensation.SendPersonalItemMail(title, content, limitTime, playerIDList, addItemList, gold, goldPaper, silver) + if callName == "PlayerRealLoginOK": + curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) + if not curPlayer: + return + loginMsg = eval(resultName) + ChPlayer.DoPlayerRealLoginOK(curPlayer, loginMsg, tick) return - if callName == 'SendMailBatch': + if callName == "SendMail": + 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, crossMail=crossMail) + return + + if callName == "SendMailBatch": PlayerCompensation.SendPersonalItemMailBatch(eval(resultName)) return - if callName == 'SendMergerChildMsg': - operType, dataMsg = eval(resultName) - MergeChildMsg.SendMergerChildToCenterStringData(operType, dataMsg) - # 如果是恢复跨服PK连胜的,先记录恢复的玩家ID, 等待成功后同步最新结果给玩家 - if operType == ChConfig.Def_RecoverMergePKWin: - GameWorldMergePK.Add_RecoverMergePKWinPlayer(srcPlayerID) + 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 == 'MergeWorldNotify': - country, msgMark, msgParamList, lineID, mergeMinOSD, mergeMaxOSD, mergeMapInfo = eval(resultName) - PlayerControl.MergeWorldNotify(country, msgMark, msgParamList, lineID, mergeMinOSD, mergeMaxOSD, mergeMapInfo, 1) + if callName == "SendMsgToCrossServer": + msgType, dataMsg = eval(resultName) + CrossRealmMsg.SendMsgToCrossServer(msgType, dataMsg) + return + + if callName == "SendMsgToClientServer": + msgType, dataMsg, serverGroupIDList = eval(resultName) + CrossRealmMsg.SendMsgToClientServer(msgType, dataMsg, serverGroupIDList) + return + + if callName == "SetCrossPlayerAttrValue": + CrossRealmPlayer.SetCrossPlayerAttrValue(eval(resultName), tick) + return + + 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": @@ -446,6 +569,10 @@ 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) @@ -454,31 +581,19 @@ 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)) + if callName == 'ExitExam': #地图服务器玩家退出答题 + PlayerExam.MapServer_ExitAction(srcPlayerID) return - if callName == 'UpdMSFamilyKillBossBillboard': #地图服务器更新玩家合服活动战盟击杀boss总数排行榜 + if callName == 'FuncOpen': curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) if not curPlayer: return - GameWorldMixServerCampaign.UpdMixCampaignFamiliyBossCnt(curPlayer, eval(resultName)) - return - - if callName == 'ExitExam': #地图服务器玩家退出答题 - PlayerExam.MapServer_ExitAction(srcPlayerID) + PlayerControl.DoFuncOpenLogic(curPlayer, eval(resultName)) return if callName == 'TeamNotify': @@ -487,11 +602,6 @@ msg, msgList = eval(resultName) PlayerControl.TeamNotify(teamID, msg, msgList) - return - - if callName == 'ReveiveRecallAward': - #召回奖励领取情况 - PlayerRecall.ReveiveRecallAwardResult(srcPlayerID, resultName) return if callName == "NotifyTruckDestroy": @@ -525,33 +635,71 @@ GameDataRecord.ChangeCoinCnt(eval(resultName)) return - #跨服广播子服 - if callName == 'SendBroadcastMergeClient': - operType, mapID, dataDict, isRepeat = eval(resultName) - MergeBroadcast.SendBroadcastMerge(operType, mapID, dataDict, isRepeat) - return - - #跨服赛报名获得新账号 - if callName == 'MergeRegister': - PlayerMergeRegister.MergeWarRegisterNewAcc(srcPlayerID, eval(resultName), tick) - return - - #跨服王者争霸 - if callName == 'MergeKingFB': - GameWorldMergeKing.MapServer_MergeKingFB(eval(resultName)) + #跨服排位PK战斗结算 + if callName == "CrossChampionshipPKOver": + CrossChampionship.MapServer_CrossChampionshipPKOver(eval(resultName), tick) return - #跨服匹配PK - if callName == 'MergePKOver': - GameWorldMergePK.MapServer_MergePKOver(eval(resultName)) + #跨服匹配PK战斗结算 + if callName == "CrossPKOver": + CrossRealmPK.MapServer_CrossPKOver(eval(resultName), tick) + return + + #跨服匹配房间开启 + if callName == "CrossPKRoomOpen": + CrossRealmPK.MapServer_CrossPKRoomOpen(eval(resultName), tick) return #跨服匹配PK取消匹配 - if callName == 'MergePKCancel': + if callName == "CrossRealmPKCancel": curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) if not curPlayer: return - GameWorldMergePK.SendCancelMergePKMatch(curPlayer, resultName) + CrossRealmPK.SendCancelCrossRealmPKMatch(curPlayer, resultName) + return + + #跨服PK请求玩家当前排名 + if callName == "CrossPKSeasonOrder": + curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) + if not curPlayer: + return + CrossRealmPK.MapServer_QueryCrossPKSeasonOrder(curPlayer, eval(resultName)) + return + + #跨服注册结果 + if callName == "CrossRealmReg": + CrossRealmPlayer.OnCrossRealmRegOK(srcPlayerID, eval(resultName), tick) + return + + # 跨服战场结算 + if callName =="CrossBattlefieldOver": + CrossBattlefield.MapServer_CrossBattlefieldOver(eval(resultName)) + return + + # 跨服仙盟夺旗战/逐鹿万界 结算 + if callName =="CrossFamilyFlagwarOver": + CrossFamilyFlagwar.MapServer_CrossFamilyFlagwarOver(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 #py喇叭聊天 @@ -560,6 +708,14 @@ if not curPlayer: return PlayerTalk.ChatPYSpeaker(curPlayer, eval(resultName)) + return + + #刷新本服角色信息 + if callName == 'RefreshMainServerRole': + curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) + if not curPlayer: + return + ChPlayer.DoRefreshMainServerRole(curPlayer) return # 战盟联赛 @@ -590,22 +746,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) @@ -618,7 +758,7 @@ # 世界boss状态 if callName =="GameWorldBossState": - GameWorldBoss.DoGameWorldBossOnReborn(eval(resultName), tick) + GameWorldBoss.OnGameWorldBossStateChange(eval(resultName), tick) return # 仙盟归属boss信息同步 @@ -644,25 +784,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': @@ -686,6 +815,10 @@ if callName =="DuJieFBOver": PlayerDuJie.DoDuJieFBOver(eval(resultName)) return + #境界提升全服buff + if callName =="RealmUpAddBuff": + PlayerDuJie.DoRealmUpAddBuff(resultName) + return # 组队副本队长请求进入询问结果 if callName == "EnterFBTeamAsk": @@ -705,15 +838,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": @@ -765,14 +918,50 @@ if callName =="AddBossRebornPoint": GameWorldBoss.AddBossRebornPoint(eval(resultName)) return - #通知神兽副本NPC刷新时间 - if callName =="DogzNPCTime": - GameWorldBoss.Sync_DogzNPCRefreshTime(eval(resultName)) + #多仙盟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分割线----------------------------------------------------------------- #---有可能return----------------------------------------------------------------- + #商城全服购买限制 + if callName == "GetStoreServerBuyCnt": + curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) + if not curPlayer: + return + ret = PlayerStore.DoStoreServerBuyQueryResult(curPlayer, eval(resultName)) + if ret == None: + resultName = '' + else: + resultName = '%s' % ret + #玩家等级奖励 if callName == "GetPlayerLVAward": curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) @@ -801,55 +990,103 @@ 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) resultName = '%s' % GameWorldOpenServerCampaign.CanGiveCampaignAward(curPlayer, eval(resultName)) - # 跨服PK奖励 - if callName == 'MergePKAward': - curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) - resultName = '%s' % GameWorldMergePK.MapServer_QueryMergePKAward(curPlayer, eval(resultName)) - - # 跨服王者争霸 - if callName == 'MergeKing': - curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) - resultName = '%s' % GameWorldMergeKing.MapServer_MergeKingQuery(curPlayer, eval(resultName)) # 玩家自身战盟科技等级提升, 改为地图直接处理, 暂屏蔽 # if callName == 'PlayerFamilyTechLVUP': # curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) # resultName = '%s' % PlayerFamilyTech.OnQuery_PlayerFamilyTechLVUP(curPlayer, eval(resultName)) - # 战盟仓库 - if callName == "FamilyStore": + + # 副本助战 + if callName == "FBHelpBattle": 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 = 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 + +# # 战盟仓库 +# 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