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