From 3ac139ff392a1e0f5e50046da67ca1a82287289a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 12 六月 2025 15:27:43 +0800
Subject: [PATCH] 1111 【btmdb2】使用原限时代币98用于每日赠送,算真实累充,活动订单充值类型按代币算;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
index 2fb7503..69fdb1f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -464,12 +464,16 @@
                 if ctgID in payCoinLimitCTGIDList:
                     GameWorld.ErrLog("该充值ID可不用于支付代币充值!appID=%s,orderInfo=%s,ctgID=%s" % (appID, orderInfo, ctgID), curPlayer.GetPlayerID())
                     return
+        befPayCoinDay = PlayerControl.GetPlayerCurrency(curPlayer, ShareDefine.TYPE_Price_PayCoinDay)
         #直接扣,类似充值扣钱,这里是发放物品,可能会有发放失败的当做 CTGError 处理
         if not PlayerControl.PayMoney(curPlayer, ShareDefine.TYPE_Price_PayCoin, orderCoin, eventName, {ChConfig.Def_Cost_Reason_SonKey:orderInfo, "orderInfo":orderInfo}):
             GameWorld.ErrLog("代币不足! appID=%s,orderInfo=%s,orderCoin=%s,curPayCoinTotal=%s" 
                              % (appID, orderInfo, orderCoin, PlayerControl.GetPayCoinTotal(curPlayer)), curPlayer.GetPlayerID())
             return
-        
+        aftPayCoinDay = PlayerControl.GetPlayerCurrency(curPlayer, ShareDefine.TYPE_Price_PayCoinDay)
+        if befPayCoinDay > aftPayCoinDay:
+            addDRDict["usePayCoinDay"] = (befPayCoinDay - aftPayCoinDay) # 记录本次消耗限时代币数
+            
     addDRDict["payOrderType"] = payOrderType
     
     moneyType, addGold, prizeGold, giveItemList, ctgIpyData = 0, 0, 0, [], None
@@ -709,11 +713,16 @@
         DataRecordPack.DR_CTGError(curPlayer, "coinType error! coinType(%s)!" % coinType, addDRDict)
         return
     
+    realCoin = orderCoin
     isRealMoney = True if addDRDict.get("orderID") else False # 是否真实货币充值,仅真实货币充值订单有orderID,后台充值的不算真实货币充值
     payOrderType = addDRDict.get("payOrderType", PayOrderType_Default)
     if payOrderType == PayOrderType_PayCoin:
         #isRealMoney = True # 代币充值在游戏内容上算真实充值,tqxbqy暂不算,代币来源可能是赠送的,故暂不算
         coinType = ChConfig.CoinType_UsePayCoin # tqxbqy需要区分代币支付
+    if addDRDict.get("usePayCoinDay", 0) > 0:
+        isRealMoney = True # 消耗限时代币算真实重置,每日赠送648使用限时代币
+        realCoin = addDRDict.get("usePayCoinDay", 0)
+        
     ctgRealToday = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGRealToday) # 当日真实货币充值Coin数 ,不含后台充值- 今日
     ctgRealTotal = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGRealTotal) # 累计真实货币充值Coin数 ,不包后台充值 - 总计
     ctgRealFirstTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGRealFirstTime) # 首次真实货币充值时间戳
@@ -721,9 +730,9 @@
         if not ctgRealFirstTime:
             ctgRealFirstTime = int(time.time())
             PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CTGRealFirstTime, ctgRealFirstTime)
-        ctgRealToday = min(ctgRealToday + orderCoin, ChConfig.Def_UpperLimit_DWord)
+        ctgRealToday = min(ctgRealToday + realCoin, ChConfig.Def_UpperLimit_DWord)
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CTGRealToday, ctgRealToday)
-        ctgRealTotal = min(ctgRealTotal + orderCoin, ChConfig.Def_UpperLimit_DWord)
+        ctgRealTotal = min(ctgRealTotal + realCoin, ChConfig.Def_UpperLimit_DWord)
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CTGRealTotal, ctgRealTotal)
         Sync_CoinToGoldCountInfo(curPlayer, [])
         

--
Gitblit v1.8.0