From cdef1c9f32913b3568ab48dbc64133632dc122ba Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 30 九月 2025 20:00:55 +0800
Subject: [PATCH] 219 【付费内容】首充-服务端(优化AA02通知)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldGift.py |   32 ++++++++++++++++++++++----------
 1 files changed, 22 insertions(+), 10 deletions(-)

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 76ade25..25f00a3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldGift.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldGift.py
@@ -82,7 +82,7 @@
     
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FirstChargeTime % firstID, int(time.time()))
     GameWorld.DebugLog("记录首充档位充值时间戳: ctgID=%s" % ctgID)
-    Sync_FirstChargeInfo(curPlayer)
+    Sync_FirstChargeInfo(curPlayer, firstID)
     return
 
 def GetPlayerFirstCharge(curPlayer, giftDay, firstIDStr):
@@ -123,7 +123,7 @@
     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))
-    Sync_FirstChargeInfo(curPlayer)
+    Sync_FirstChargeInfo(curPlayer, firstID)
     
     isAuctionItem = 0
     notifyAwardList = []
@@ -135,18 +135,30 @@
     ItemControler.NotifyGiveAwardInfo(curPlayer, notifyAwardList, "FirstCharge")
     return
 
-def Sync_FirstChargeInfo(curPlayer):
+def Sync_FirstChargeInfo(curPlayer, firstID=0):
     ## 通知首充信息
-    clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCFirstChargeInfo)
-    clientPack.FirstChargeList = []
-    ipyDataMgr = IpyGameDataPY.IPY_Data()
-    for index in range(ipyDataMgr.GetFirstChargeCount()):
-        ipyData = ipyDataMgr.GetFirstChargeByIndex(index)
-        firstID = ipyData.GetFirstID()
+    if firstID:
+        syncIDList = [firstID]
+    else:
+        syncIDList = []
+        ipyDataMgr = IpyGameDataPY.IPY_Data()
+        for index in range(ipyDataMgr.GetFirstChargeCount()):
+            ipyData = ipyDataMgr.GetFirstChargeByIndex(index)
+            syncIDList.append(ipyData.GetFirstID())
+            
+    firstChargeList = []
+    for firstID in syncIDList:
         firstCharge = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCFirstCharge)
+        firstCharge.FirstID = firstID
         firstCharge.ChargeTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FirstChargeTime % firstID)
         firstCharge.AwardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FirstChargeRecord % firstID)
-        clientPack.FirstChargeList.append(firstCharge)
+        firstChargeList.append(firstCharge)
+        
+    if not firstChargeList:
+        return
+    
+    clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCFirstChargeInfo)
+    clientPack.FirstChargeList = firstChargeList
     clientPack.Count = len(clientPack.FirstChargeList)
     NetPackCommon.SendFakePack(curPlayer, clientPack)
     return

--
Gitblit v1.8.0