| | |
| | | import ChConfig
|
| | | import GMCommon
|
| | | import DirtyList
|
| | | import CrossBillboard
|
| | | import PlayerBillboard
|
| | | import PlayerExam
|
| | | import PlayerControl
|
| | |
| | | import GameWorldOpenServerCampaign
|
| | | import ShareDefine
|
| | | import GameDataRecord
|
| | | import PlayerPackData
|
| | | import PlayerCompensation
|
| | | import PlayerFB
|
| | | import UpdatePlayerName
|
| | |
| | | import GameWorldBoss
|
| | | import GameWorldFamilyWar
|
| | | #import PlayerFamilyTech
|
| | | import PlayerFamilyZhenfa
|
| | | import PlayerFamilyRedPacket
|
| | | import PlayerFamilyZhenbaoge
|
| | | import PlayerFBHelpBattle
|
| | | import PlayerHorsePetBoss
|
| | | #import PlayerFamilyStore
|
| | |
| | | import PyGameData
|
| | | import PlayerTalk
|
| | | import PlayerStore
|
| | | import CrossYaomoBoss
|
| | | import CrossRealmPlayer
|
| | | import CrossRealmMsg
|
| | | import CrossRealmPK
|
| | | import CrossChampionship
|
| | | import CrossBattlefield
|
| | | import CrossFamilyFlagwar
|
| | | 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
|
| | | #---------------------------------------------------------------------
|
| | | #全局变量
|
| | | #---------------------------------------------------------------------
|
| | |
| | | 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()
|
| | |
| | | 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
|
| | |
|
| | | #请求玩家的打包数据
|
| | | if callName == "ReuestPlayerPackData":
|
| | | PlayerPackData.OnMGReuestPlayerPackData(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
|
| | | |
| | | # 古宝养成
|
| | | 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)
|
| | |
| | | # 战盟联赛
|
| | | 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
|
| | | |
| | | # 仙盟珍宝阁
|
| | | 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 not curPlayer:
|
| | | # return
|
| | | # resultName = '%s' % PlayerFamilyStore.DoMapServerFamilyStore(curPlayer, eval(resultName), tick)
|
| | | |
| | | |
| | | if not srcPlayerID:
|
| | | return
|
| | | |
| | | srcPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
|
| | |
|
| | | if not srcPlayer:
|