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