From 54d9849e67665b6a20dc723adaf91b5455054165 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 28 九月 2025 14:38:42 +0800
Subject: [PATCH] 219 【付费内容】首充-服务端(支持给定制属性装备)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py    |    6 +++++-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldGift.py |   16 +++++++++++++---
 2 files changed, 18 insertions(+), 4 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 29bd5fd..d5cd751 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -2328,7 +2328,11 @@
 def CheckPackSpaceEnough(curPlayer, itemList, isNotify=True):
     ## 检查玩家对应背包是否足够放入物品
     needPackSpaceDict = {}
-    for itemID, itemCnt, isAuctionItem in itemList:
+    for itemInfo in itemList:
+        if not itemInfo:
+            continue
+        itemID, itemCnt = itemInfo[:2]
+        isAuctionItem = itemInfo[2] if len(itemInfo) > 2 else 0
         curItem = GameWorld.GetGameData().GetItemByTypeID(itemID)
         if not curItem:
             return False
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldGift.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldGift.py
index 0253314..76ade25 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldGift.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldGift.py
@@ -24,6 +24,7 @@
 import ChPyNetSendPack
 import NetPackCommon
 import IpyGameDataPY
+import ShareDefine
 import CommFunc
 import ObjPool
 
@@ -115,14 +116,23 @@
         return
     awardList = getattr(ipyData, "GetAwardListDay%s" % giftDay)()
     
+    if not ItemControler.CheckPackSpaceEnough(curPlayer, [itemInfo[:2] for itemInfo in awardList]):
+        return
+    
     # 更新已领取成功标记
     updGetRecord = getRecord | pow(2, giftDay)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FirstChargeRecord % firstID, updGetRecord)
     GameWorld.DebugLog("领取首充奖励: firstID=%s,giftDay=%s,getRecord=%s,updGetRecord=%s, %s" % (firstID, giftDay, getRecord, updGetRecord, awardList))
-    
-    ItemControler.GivePlayerItemOrMail(curPlayer, awardList, event=["FirstCharge", False, {}])
-    
     Sync_FirstChargeInfo(curPlayer)
+    
+    isAuctionItem = 0
+    notifyAwardList = []
+    for itemID, itemCount, appointID in awardList:
+        setAttrDict = {ShareDefine.Def_CItemKey_AppointID:appointID} if appointID else {}
+        if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isAuctionItem, event=["FirstCharge", False, {}], setAttrDict=setAttrDict):
+            continue
+        notifyAwardList.append([itemID, itemCount, isAuctionItem])
+    ItemControler.NotifyGiveAwardInfo(curPlayer, notifyAwardList, "FirstCharge")
     return
 
 def Sync_FirstChargeInfo(curPlayer):

--
Gitblit v1.8.0