From 388823edfe6308cba6f76ca6dc4f20022c5cb2be Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 30 六月 2025 19:03:50 +0800
Subject: [PATCH] 10431 【英文】看广告获得限时代金券

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py
index 384e068..0cff408 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py
@@ -232,6 +232,8 @@
     setattr(dbData, "ObjID", 0) # NPC实例ID
     setattr(dbData, "ServerGroupID", serverGroupID)
     setattr(dbData, "OffLineTime", 0) # 发布玩家离线时间戳
+    setattr(dbData, "Face", 0)
+    setattr(dbData, "FacePic", 0)
     
     assistType = AssistType_Unknown
     if dbData.NPCID:
@@ -247,6 +249,8 @@
 
 def OnInitAssistThanksData(thanksMgr, dbData):
     ## 初始化协助感谢数据额外处理
+    setattr(dbData, "Face", 0)
+    setattr(dbData, "FacePic", 0)
     setattr(dbData, "AssistPlayerDict", {})
     if dbData.AssistPlayer and dbData.AssistPlayer.startswith("{") and dbData.AssistPlayer.endswith("}"):
         dbData.AssistPlayerDict = eval(dbData.AssistPlayer)
@@ -847,6 +851,8 @@
     # 以下是非DB字段属性
     OnInitAssistData(assistObj, isSaveDB, serverGroupID)
     assistObj.ObjID = objID
+    assistObj.Face = curPlayer.GetFace()
+    assistObj.FacePic = curPlayer.GetFacePic()
     
     #assistMgr = PyDataManager.GetPlayerAssistPyManager()
     assistMgr.allAssistDict[assistGUID] = assistObj
@@ -871,6 +877,8 @@
         assistInfo.Job = assistObj.Job
         assistInfo.LV = assistObj.LV
         assistInfo.RealmLV = assistObj.RealmLV
+        assistInfo.Face = assistObj.Face
+        assistInfo.FacePic = assistObj.FacePic
         assistInfo.MapID = assistObj.MapID
         assistInfo.LineID = assistObj.LineID
         assistInfo.NPCID = assistObj.NPCID
@@ -1200,10 +1208,40 @@
     
     assistThanksMgr = PyDataManager.GetPlayerAssistThanksPyManager()
     OnInitAssistThanksData(assistThanksMgr, newThanks)
+    newThanks.Face = curPlayer.GetFace()
+    newThanks.FacePic = curPlayer.GetFacePic()
     
     GameWorld.DebugLog("增加协助感谢: itemID=%s,mapID=%s,lineID=%s,npcID=%s,exData=%s" % (itemID, mapID, lineID, npcID, exData), playerID)
     return
 
+def AddNewAssistThanksEx(curPlayer, itemID, assistPlayerDict, mapID=0, lineID=0, npcID=0, exData=""):
+    ## 添加协助感谢数据,自动更新 TodayGiftCount 及 玩家信息
+    DailyDateStr = GameWorld.GetDailyDateStr()
+    assistThanksMgr = PyDataManager.GetPlayerAssistThanksPyManager()
+    for assistPlayerID, assistPlayerInfoDict in assistPlayerDict.items():
+        
+        # 查找今日该感谢物品已接受感谢次数
+        TodayGiftCount = 0
+        assistPlayerThanksList = assistThanksMgr.assistPlayerThanksDict.get(assistPlayerID, [])
+        for thanks in assistPlayerThanksList:
+            if DailyDateStr != thanks.DailyDateStr or itemID != thanks.ItemID:
+                continue
+            if assistPlayerID not in thanks.AssistPlayerDict:
+                continue
+            infoDict = thanks.AssistPlayerDict[assistPlayerID]
+            TodayGiftCount = infoDict.get("TodayGiftCount", 0)
+            break
+        
+        assistPlayerInfoDict["TodayGiftCount"] = TodayGiftCount
+        
+        # 更新玩家信息,之后有需要再扩展,可以从玩家缓存或直接取在线玩家实例赋值 name job 等信息
+        
+        GameWorld.DebugLog("获取今日接受感谢次数: itemID=%s,TodayGiftCount=%s" % (itemID, TodayGiftCount), assistPlayerID)
+    GameWorld.DebugLog("AddNewAssistThanksEx itemID=%s,assistPlayerDict=%s" % (itemID, assistPlayerDict), curPlayer.GetPlayerID())
+    AddNewAssistThanks(curPlayer, itemID, mapID, lineID, assistPlayerDict, npcID, exData)
+    return
+
+    
 #// B0 14 使用协助感谢礼盒 #tagCGUseAssistThanksGift
 #
 #struct    tagCGUseAssistThanksGift
@@ -1259,6 +1297,8 @@
             assistPlayerInfo.Job = assistPlayerInfoDict["Job"]
             assistPlayerInfo.LV = assistPlayerInfoDict["LV"]
             assistPlayerInfo.RealmLV = assistPlayerInfoDict["RealmLV"]
+            assistPlayerInfo.Face = assistPlayerInfoDict.get("Face", 0)
+            assistPlayerInfo.FacePic = assistPlayerInfoDict.get("FacePic", 0)
             previewPack.AssistPlayerList.append(assistPlayerInfo)
         previewPack.AssistPlayerCount = len(previewPack.AssistPlayerList)
         NetPackCommon.SendFakePack(curPlayer, previewPack)
@@ -1332,6 +1372,8 @@
         previewPack.Job = getThanks.Job
         previewPack.LV = getThanks.LV
         previewPack.RealmLV = getThanks.RealmLV
+        previewPack.Face = getThanks.Face
+        previewPack.FacePic = getThanks.FacePic
         previewPack.MapID = getThanks.MapID
         previewPack.LineID = getThanks.LineID
         previewPack.NPCID = getThanks.NPCID

--
Gitblit v1.8.0