From 038ec15bf9d4d442fddf3d26dab1254e4b86d125 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 19 三月 2019 19:46:55 +0800 Subject: [PATCH] 6357 【后端】【2.0】任务给物品优化,支持拍品处理 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py | 51 ++++++++++++++++++++++++++++++--------------------- 1 files changed, 30 insertions(+), 21 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py index aa723b7..d61c9c3 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py @@ -28,6 +28,9 @@ import ItemControler import IpyGameDataPY import ChEquip +import FBCommon +import BossHurtMng + import time import json @@ -70,6 +73,7 @@ sendPack.PlusData = curPlayerPlusData sendPack.PlusDataSize = len(curPlayerPlusData) sendPack.IsLogouting = IsLogouting #通知本次同步是否下线前保存 + sendPack.OffTime = int(time.time()) # 最后一次发送即当做离线时间 NetPackCommon.SendPyPackToGameServer(sendPack) GameWorld.DebugLog('ViewCache### UpdateGameServerPlayerCache out') return @@ -81,6 +85,7 @@ #----------- #玩家属性缓存 curPlayerPropDict = {} + curPlayerPropDict["AccID"] = curPlayer.GetAccID() curPlayerPropDict["LV"] = curPlayer.GetLV() curPlayerPropDict["RealmLV"] = curPlayer.GetOfficialRank() curPlayerPropDict["Job"] = curPlayer.GetJob() @@ -90,6 +95,9 @@ curPlayerPropDict["FamilyID"] = curPlayer.GetFamilyID() curPlayerPropDict["FamilyName"] = curPlayer.GetFamilyName() curPlayerPropDict["FightPower"] = curPlayer.GetFightPower() + curPlayerPropDict["AppID"] = GameWorld.GetPlayerPlatform(curPlayer) + curPlayerPropDict["EquipShowSwitch"] = curPlayer.GetEquipShowSwitch() + curPlayerPropDict["ServerGroupID"] = PlayerControl.GetPlayerServerGroupID(curPlayer) #仙魔之争所需属性 curPlayerPropDict["MinAtk"] = curPlayer.GetMinAtk() curPlayerPropDict["MaxAtk"] = curPlayer.GetMaxAtk() @@ -98,9 +106,23 @@ #推送提醒 curPlayerPropDict[ChConfig.Def_PDict_GeTuiSet] = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GeTuiSet) curPlayerPropDict[ChConfig.Def_PDict_NoGeTuiTime] = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_NoGeTuiTime) - curPlayerPropDict['GeTuiClientID'] = curPlayer.GetAccountData().GetGeTuiClientID() - curPlayerPropDict['Time'] = int(time.time()) # 最后一次发送即当做离线时间 + # 各类功能 BOSS次数, BOSS相关对应B.Boss信息.xlsx的CntMark + # 封魔坛剩余次数 + enterCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFbCntDay % ChConfig.Def_FBMapID_SealDemon) + maxCnt = FBCommon.GetEnterFBMaxCnt(curPlayer, ChConfig.Def_FBMapID_SealDemon) + curPlayerPropDict['CntMark_%s'%ChConfig.Def_FBMapID_SealDemon] = max(maxCnt - enterCnt, 0) + # 诛仙BOSS剩余次数 + enterCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFbCntDay % ChConfig.Def_FBMapID_ZhuXianBoss) + maxCnt = FBCommon.GetEnterFBMaxCnt(curPlayer, ChConfig.Def_FBMapID_ZhuXianBoss) + curPlayerPropDict['CntMark_%s'%ChConfig.Def_FBMapID_ZhuXianBoss] = max(maxCnt - enterCnt, 0) + # 世界BOSS剩余次数 + curPlayerPropDict['CntMark_%s'%ShareDefine.Def_Boss_Func_World] = BossHurtMng.GetCanKillBossCnt(curPlayer, ShareDefine.Def_Boss_Func_World) + # BOSS之家剩余次数 + curPlayerPropDict['CntMark_%s'%ShareDefine.Def_Boss_Func_Home] = BossHurtMng.GetCanKillBossCnt(curPlayer, ShareDefine.Def_Boss_Func_Home) + # 神兽BOSS剩余次数 + curPlayerPropDict['CntMark_%s'%ShareDefine.Def_Boss_Func_Dogz] = BossHurtMng.GetCanKillBossCnt(curPlayer, ShareDefine.Def_Boss_Func_Dogz) + #----------- #装备数据打包缓存 curEquipItemList = __GetPackEquipCacheList(curPlayer, IPY_GameWorld.rptEquip) @@ -119,7 +141,7 @@ #翅膀信息在翅膀装备位对应装备信息 #部位强化数据 - curPlayerPlusDict["EquipPartStarLV"] = __GetEquipPartStarLVInfo(curPlayer) + curPlayerPlusDict["EquipPartStarLV"] = __GetEquipPartPlusLVInfo(curPlayer) #部位宝石数据 curPlayerPlusDict["EquipPartStone"] = __GetEquipPartStoneInfo(curPlayer) @@ -142,8 +164,6 @@ #法宝数据 curPlayerPlusDict["MagicWeapon"] = __GetMagicWeaponInfo(curPlayer) - #部位套装数据 - curPlayerPlusDict["EquipPartSuite"] = __GetEquipPartSuiteInfo(curPlayer) #魂石、丹药使用个数 curPlayerPlusDict["Fruit"] = PlayerAttrFruit.GetAttrFruitEatCntDict(curPlayer) @@ -159,13 +179,13 @@ dataDict.pop(key) return dataDict -## 公共部位强化星级信息{部位索引:星级, ...} -def __GetEquipPartStarLVInfo(curPlayer): +## 公共部位强化星级信息{部位索引:强化等级, ...} +def __GetEquipPartPlusLVInfo(curPlayer): pType = IPY_GameWorld.rptEquip # 暂时只取装备背包,之后有扩展再修改 indexList = ChConfig.Pack_EquipPart_CanPlusStar[pType] starLVInfoDict = {} for i in indexList: - starLV = ChEquip.GetEquipPartStarLV(curPlayer, pType, i) + starLV = ChEquip.GetEquipPartPlusLV(curPlayer, pType, i) if starLV: starLVInfoDict[i] = starLV return starLVInfoDict @@ -198,17 +218,6 @@ stoneInfoList.append({"Place":place, "LV":washLV, "Value":valueList}) return stoneInfoList - -## 公共部位套装等级信息{部位索引:{套装类型:套装等级,..}, ...} -def __GetEquipPartSuiteInfo(curPlayer): - suiteInfoDict = {} - equipSuitTypeDict = IpyGameDataPY.GetFuncEvalCfg('EquipSuitType') - for equipIndexList in equipSuitTypeDict.values(): - for i in equipIndexList: - suiteInfo = ChEquip.GetSuiteInfoByPlace(curPlayer, i) - if suiteInfo: - suiteInfoDict[i] = suiteInfo - return suiteInfoDict ## 灵宠信息 def __GetPetInfo(curPlayer): @@ -253,8 +262,8 @@ ## 符印信息 def __GetRuneInfo(curPlayer): runeDict = {} - runeUnlockList = IpyGameDataPY.GetFuncEvalCfg("RuneUnlock", 1) - for holeNum in xrange(1, len(runeUnlockList) + 1): + runeHoleCnt = IpyGameDataPY.GetFuncCfg("RuneUnlock", 4) + for holeNum in xrange(1, runeHoleCnt + 1): runeData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_Rune_Data % holeNum, 0) if not runeData: continue -- Gitblit v1.8.0