From 47eb171907516123892ea3f5d1888c6394c72382 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 30 十月 2025 16:50:20 +0800
Subject: [PATCH] 16 卡牌服务端(宝箱开启、物品合成通知;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_Chests.py | 27 ++++++++++-----------------
1 files changed, 10 insertions(+), 17 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_Chests.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_Chests.py
index 1899293..ab9923a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_Chests.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_Chests.py
@@ -40,19 +40,17 @@
if not chestsIpyData:
return
- showType = chestsIpyData.GetShowType() # 规定有开箱表现的默认只能开启1个
#if showType:
# useCnt = 1
useCnt = min(curRoleItem.GetCount(), useCnt)
- isBind = int(chestsIpyData.GetIsBind()) # 奖励物品是否绑定
+ isBind = 0 # 奖励物品是否绑定
costItemID = chestsIpyData.GetCostItemID()
costItemCountTotal = chestsIpyData.GetCostItemCount() * useCnt
- costGoldTotal = chestsIpyData.GetCostGold() * useCnt
- auctionItemCanSell = chestsIpyData.GetAucionItemCanSell()
- aucionItemDiffSellIDList = chestsIpyData.GetAucionItemDiffSellIDList()
+ costMoneyType = chestsIpyData.GetCostMoneyType()
+ costGoldTotal = chestsIpyData.GetCostMoneyValue() * useCnt
- if costGoldTotal and not PlayerControl.HaveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costGoldTotal):
+ if costGoldTotal and costMoneyType and not PlayerControl.HaveMoney(curPlayer, costMoneyType, costGoldTotal):
return
if costItemID:
@@ -69,8 +67,8 @@
if not awardInfo:
return
needSpaceDict, jobAwardItemList, moneyType, moneyCount, notifyItemList, updOpenCount = awardInfo
- GameWorld.DebugLog(" needSpaceDict=%s,jobAwardItemList=%s,moneyType=%s,moneyCount=%s,notifyItemList=%s,updOpenCount=%s,auctionItemCanSell=%s,aucionItemDiffSellIDList=%s"
- % (needSpaceDict, jobAwardItemList, moneyType, moneyCount, notifyItemList, updOpenCount, auctionItemCanSell, aucionItemDiffSellIDList))
+ GameWorld.DebugLog(" needSpaceDict=%s,jobAwardItemList=%s,moneyType=%s,moneyCount=%s,notifyItemList=%s,updOpenCount=%s"
+ % (needSpaceDict, jobAwardItemList, moneyType, moneyCount, notifyItemList, updOpenCount))
for packType, needSpace in needSpaceDict.items():
packSpace = ItemCommon.GetItemPackSpace(curPlayer, packType, needSpace)
@@ -82,9 +80,9 @@
# 扣除消耗
if costItemID:
ItemCommon.DelCostItemByBind(curPlayer, costItemIndexList, bindCnt, unBindCnt, costItemCountTotal, "Chests")
- if costGoldTotal:
+ if costMoneyType and costGoldTotal:
infoDict = {ChConfig.Def_Cost_Reason_SonKey:chestsItemID}
- PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costGoldTotal, ChConfig.Def_Cost_UseItem, infoDict)
+ PlayerControl.PayMoney(curPlayer, costMoneyType, costGoldTotal, ChConfig.Def_Cost_UseItem, infoDict)
# 更新开启次数
if updOpenCount:
@@ -97,11 +95,8 @@
# 给奖励
syncItemList = []
for itemID, itemCount in jobAwardItemList:
- canSell = (not auctionItemCanSell) if itemID in aucionItemDiffSellIDList else auctionItemCanSell
- isAuctionItem = 1 if canSell and IpyGameDataPY.GetIpyGameDataNotLog("AuctionItem", itemID) else 0
-
userDataList = []
- giveOKCount = ItemControler.DoGiveItemLoop(curPlayer, itemID, itemCount, isAuctionItem,
+ giveOKCount = ItemControler.DoGiveItemLoop(curPlayer, itemID, itemCount, isBind,
event=[ChConfig.ItemGive_Chests, False, {"UseItemID":chestsItemID}],
jsonItemList=syncItemList, userDataList=userDataList)
if giveOKCount < itemCount:
@@ -119,9 +114,7 @@
if not PlayerControl.GiveMoney(curPlayer, moneyType, moneyCount, ChConfig.Def_GiveMoney_UseItem, addDataDict, False):
moneyType, moneyCount = 0, 0
- # 通知
- if showType and syncItemList:
- ChItem.SendUseItemGetItemResult(curPlayer, chestsItemID, useCnt, syncItemList, moneyType, moneyCount)
+ ItemControler.NotifyGiveAwardInfo(curPlayer, jobAwardItemList, "Chests", moneyInfo={moneyType, moneyCount})
return True, useCnt
--
Gitblit v1.8.0