From 649b36b642546062ab5102b6225b9f78ea72309d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 04 十一月 2025 18:11:02 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(优化完整战报仅包含战斗相关封包,结算奖励相关如物品,经验,货币,挑战次数等统一放在战报数据B430后同步)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_Chests.py | 29 +++++++++++------------------
1 files changed, 11 insertions(+), 18 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 a1365d3..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
@@ -360,7 +353,7 @@
continue
placeKey = colorSuitPlaceKeyInfoDict[colorSuitKey]
jobList = itemJobList
- placeList = NPCCommon.GetEquipPlaceByPlaceKey(placeKey)
+ placeList = [] #NPCCommon.GetEquipPlaceByPlaceKey(placeKey)
if not placeList:
GameWorld.ErrLog("部位集合key不存在!chestsItemID=%s,placeKey=%s" % (chestsItemID, placeKey))
continue
--
Gitblit v1.8.0