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