From dd8ca2f46cd2a81f451e91db7e93d3d4fe36c737 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 23 二月 2024 16:22:03 +0800
Subject: [PATCH] 9802 9762 【BT9】【后端】藏宝阁修改(背包计算转化物品占用格子数逻辑优化;开宝箱计算获得物品占用格子数逻辑优化;) 冲突
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py | 22 ++++++++++++++++------
1 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
index 5b4e008..9981412 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -1128,7 +1128,7 @@
if itemEff.GetEffectID() == ChConfig.Def_Effect_GubaoPiece:
gubaoID = itemEff.GetEffectValue(0)
if gubaoID:
- PlayerGubao.AddGubaoPiece(curPlayer, gubaoID, tagItem.GetCount(), itemID)
+ PlayerGubao.AddGubaoPiece(curPlayer, gubaoID, tagItemCount, itemID)
tagItem.Clear()
return True
#直升VIP
@@ -1331,7 +1331,7 @@
GameWorld.Log("找不到ItemID = %d" % curItemID)
return False, 0
- if curItemID in ChConfig.Def_TransformItemIDList or curItemData.GetType() == ChConfig.Def_ItemType_AutoUseMoney:
+ if IsPutinAutoTransformItem(curItemData):
# 货币直接转换的物品如果是放入背包的则直接转化,无需暂用格子
if packIndex == IPY_GameWorld.rptItem:
return True, 0
@@ -2335,8 +2335,7 @@
# @return None
def SetItemCount(item, cnt, playerID=0, accID=0, playerName=""):
if not item.IsEmpty():
- itemID = item.GetItemTypeID()
- if cnt > 0 and itemID in ChConfig.Def_TransformItemIDList:
+ if cnt > 0 and IsPutinAutoTransformItem(item):
item.SetUserAttr(ShareDefine.Def_IudetItemCount, min(cnt, ChConfig.Def_UpperLimit_DWord))
else:
item.SetCount(min(cnt, 65535))
@@ -2349,7 +2348,7 @@
raise
def GetItemCount(item):
- if item.GetItemTypeID() in ChConfig.Def_TransformItemIDList:
+ if IsPutinAutoTransformItem(item):
return item.GetUserAttr(ShareDefine.Def_IudetItemCount)
return item.GetCount()
@@ -2358,7 +2357,7 @@
# if isAuctionItem:
# if IpyGameDataPY.GetIpyGameDataNotLog("AuctionItem", itemData.GetItemTypeID()):
# return 1
- if itemData.GetItemTypeID() in ChConfig.Def_TransformItemIDList or itemData.GetType() == ChConfig.Def_ItemType_AutoUseMoney:
+ if IsPutinAutoTransformItem(itemData):
# 货币直接转换的物品如果是放入背包的则不需要暂用格子,放入其他的背包的则按物品叠加上限算
if packType == IPY_GameWorld.rptItem:
return 0
@@ -2367,6 +2366,17 @@
packCount = itemData.GetPackCount()
return int(math.ceil(itemCount / float(packCount)))
+def IsPutinAutoTransformItem(itemData):
+ ## 放入背包时是否直接转化为对应数值的物品
+ if itemData.GetItemTypeID() in ChConfig.Def_TransformItemIDList or itemData.GetType() == ChConfig.Def_ItemType_AutoUseMoney:
+ return True
+ itemEff = itemData.GetEffectByIndex(0)
+ if itemEff.GetEffectID() == ChConfig.Def_Effect_GubaoPiece:
+ gubaoID = itemEff.GetEffectValue(0)
+ if gubaoID:
+ return True
+ return False
+
## 双手武器,需要两只手才拿得动
# @param curEquip
# @return bool
--
Gitblit v1.8.0