|  |  |  | 
|---|
|  |  |  | import ChConfig | 
|---|
|  |  |  | import GMCommon | 
|---|
|  |  |  | import DirtyList | 
|---|
|  |  |  | import CrossBillboard | 
|---|
|  |  |  | import PlayerBillboard | 
|---|
|  |  |  | import PlayerExam | 
|---|
|  |  |  | import PlayerControl | 
|---|
|  |  |  | 
|---|
|  |  |  | import GameWorldBoss | 
|---|
|  |  |  | import GameWorldFamilyWar | 
|---|
|  |  |  | #import PlayerFamilyTech | 
|---|
|  |  |  | import PlayerFamilyZhenfa | 
|---|
|  |  |  | import PlayerFamilyRedPacket | 
|---|
|  |  |  | import PlayerFBHelpBattle | 
|---|
|  |  |  | import PlayerHorsePetBoss | 
|---|
|  |  |  | 
|---|
|  |  |  | import PyGameData | 
|---|
|  |  |  | import PlayerTalk | 
|---|
|  |  |  | import PlayerStore | 
|---|
|  |  |  | import CrossYaomoBoss | 
|---|
|  |  |  | import CrossRealmPlayer | 
|---|
|  |  |  | import CrossRealmMsg | 
|---|
|  |  |  | import CrossRealmPK | 
|---|
|  |  |  | import CrossChampionship | 
|---|
|  |  |  | import CrossBattlefield | 
|---|
|  |  |  | import CrossFamilyFlagwar | 
|---|
|  |  |  | import CrossActAllRecharge | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | #--------------------------------------------------------------------- | 
|---|
|  |  |  | #全局变量 | 
|---|
|  |  |  | #--------------------------------------------------------------------- | 
|---|
|  |  |  | 
|---|
|  |  |  | 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": | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 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': | 
|---|
|  |  |  | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 仙匣秘境 | 
|---|
|  |  |  | if callName == "XianXiaMJ": | 
|---|
|  |  |  | curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) | 
|---|
|  |  |  | if not curPlayer: | 
|---|
|  |  |  | return | 
|---|
|  |  |  | PlayerActXianXiaMJ.MapServer_XianXiaMJ(curPlayer, eval(resultName)) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #py喇叭聊天 | 
|---|
|  |  |  | if callName == 'PYSpeaker': | 
|---|
|  |  |  | curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) | 
|---|
|  |  |  | 
|---|
|  |  |  | # 战盟联赛 | 
|---|
|  |  |  | 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数据 | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 战盟副本boss开始、被击杀 | 
|---|
|  |  |  | if callName =="FamilyBossFBState": | 
|---|
|  |  |  | PlayerFamilyBoss.FamilyBossOnKilled(eval(resultName), tick) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 击杀boss掉落好物品 | 
|---|
|  |  |  | if callName =="BossDropGoodItem": | 
|---|
|  |  |  | GameWorldBoss.OnKillBossDropGoodItem(eval(resultName), tick) | 
|---|
|  |  |  | 
|---|
|  |  |  | # 全局击杀数统计 | 
|---|
|  |  |  | if callName =="GlobalKillCount": | 
|---|
|  |  |  | GameWorldProcess.UpdGlobalKillCount(eval(resultName)) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 缓存装备广播信息中的装备明细信息 | 
|---|
|  |  |  | if callName == "NotifyEquipDetailInfo": | 
|---|
|  |  |  | GameWorldItem.OnCacheNotifyEquipDetailInfo(json.loads(resultName), tick) | 
|---|
|  |  |  | 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": | 
|---|
|  |  |  | 
|---|
|  |  |  | 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分割线----------------------------------------------------------------- | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 副本助战 | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | #        if not curPlayer: | 
|---|
|  |  |  | #            return | 
|---|
|  |  |  | #        resultName = '%s' % PlayerFamilyStore.DoMapServerFamilyStore(curPlayer, eval(resultName), tick) | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if not srcPlayerID: | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | srcPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if not srcPlayer: | 
|---|