From 2eb39c9fe42c1ee32500f81c4bf7d735c6116d9d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 30 七月 2019 00:26:20 +0800
Subject: [PATCH] 8180 【后端】【主干】优化打boss掉落套装体验
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEquipDecompose.py | 46 +++++++++++++++++++++++++++++++---------------
1 files changed, 31 insertions(+), 15 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEquipDecompose.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEquipDecompose.py
index 63b2383..29eb165 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEquipDecompose.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEquipDecompose.py
@@ -97,25 +97,38 @@
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipDecomposeCnt, updDecomposeCnt%perDecomposeCnt)
jsonItemList = []
giveCnt = 0
- if updDecomposeCnt >= perDecomposeCnt:
- awardList = IpyGameDataPY.GetFuncCfg('EquipDecomposeAward', 2)
- if not awardList:
- return len(drDelItemList), giveCnt
+ if perDecomposeCnt and updDecomposeCnt >= perDecomposeCnt:
+ awardRateList = IpyGameDataPY.GetFuncEvalCfg('EquipDecomposeAward', 2)
+ resetItemIDList = IpyGameDataPY.GetFuncEvalCfg('EquipDecomposeAward', 3)
giveCnt = updDecomposeCnt/perDecomposeCnt
+ minCnt, minItemID = 0, 0
+ for itemid in resetItemIDList:
+ cnt = ItemControler.FindPlayerItemCountByItemID(curPlayer, IPY_GameWorld.rptItem, itemid)
+ cnt += ItemControler.FindPlayerItemCountByItemID(curPlayer, IPY_GameWorld.rptWarehouse, itemid)
+ if not minItemID or cnt < minCnt:
+ minCnt = cnt
+ minItemID = itemid
+
giveItemIDDict = {}
for _ in xrange(giveCnt):
- itmeID = random.choice(awardList)
+ itmeID = GameWorld.GetResultByRandomList(awardRateList)
+ if not itmeID:
+ continue
+ if itmeID in resetItemIDList and minItemID: #给玩家拥有最少的材料
+ itmeID = minItemID
+
giveItemIDDict[itmeID] = giveItemIDDict.get(itmeID, 0) + 1
- for giveItemID, itemCnt in giveItemIDDict.items():
- jsonItemList.append(ItemCommon.GetJsonItem([giveItemID,itemCnt,1]))
- needSpace = len(giveItemIDDict)
- packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
- if packSpace < needSpace:
- prizeItemList = [[giveItemID, itemCnt, 1] for giveItemID, itemCnt in giveItemIDDict.items()]
- PlayerControl.SendMailByKey("DefaultLackSpace", [curPlayer.GetPlayerID()], prizeItemList)
- else:
- for giveItemID, itemCnt in giveItemIDDict.items():
- ItemControler.GivePlayerItem(curPlayer, giveItemID, itemCnt, True, [IPY_GameWorld.rptItem], True)
+ if giveItemIDDict:
+ for giveItemID, itemCnt in giveItemIDDict.items():
+ jsonItemList.append(ItemCommon.GetJsonItem([giveItemID,itemCnt,1]))
+ needSpace = len(giveItemIDDict)
+ packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
+ if packSpace < needSpace:
+ prizeItemList = [[giveItemID, itemCnt, 1] for giveItemID, itemCnt in giveItemIDDict.items()]
+ PlayerControl.SendMailByKey("DefaultLackSpace", [curPlayer.GetPlayerID()], prizeItemList)
+ else:
+ for giveItemID, itemCnt in giveItemIDDict.items():
+ ItemControler.GivePlayerItem(curPlayer, giveItemID, itemCnt, 0, [IPY_GameWorld.rptItem])
#同步客户端
Sync_EDLVInfo(curPlayer, jsonItemList)
@@ -125,6 +138,9 @@
DataRecordPack.DR_ClassUpSystem(curPlayer, "EquipDecomposeUp", updLV, saveDataDict)
#EventReport.WriteEvent__lv(curPlayer, LV, updLV, Exp, updExp)
+ # 整理背包
+ tick = GameWorld.GetGameWorld().GetTick()
+ ItemControler.ResetItem(curPlayer, IPY_GameWorld.rptItem, 0, 0, tick)
return len(drDelItemList), giveCnt
##获取可以吞噬的物品信息
--
Gitblit v1.8.0