From d39dea987b7d74e5f5e78366bbba28b1425b3475 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 07 十月 2023 01:42:43 +0800
Subject: [PATCH] 9905 【BT0.1】【主干】新增每周、每月限购(累充支持线下活动)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py |   31 ++++++++++++++-----------------
 1 files changed, 14 insertions(+), 17 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 0a98b93..e12c021 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -69,14 +69,6 @@
 import time
 import copy
 
-
-# 充值点券处理类型
-(
-CoinType_Gold, # 直接充仙玉
-CoinType_Buy, # 直购,非直接充仙玉的,如RMB直接购买某个物品或激活某个功能
-CoinType_Item, # 使用物品,类充值仙玉效果,但是有某些功能上的限制,一般是bt版本赠送
-) = range(3)
-
 # 充值类型定义
 PayType_Gold = 2  # 常规仙玉充值
 PayType_GoldPlus = 3  # 至尊仙玉充值
@@ -282,11 +274,11 @@
     coinExp = int(orderRMB * oneRMBCoinExp)
     addGold = coinExp # 此方式增加的仙玉 = 直充经验
     addDRDict = {"orderCoin":orderCoin, "isAddBourseMoney":isAddBourseMoney, "eventName":eventName}
-    DoCTGLogic(curPlayer, CoinType_Gold, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, coinExp=coinExp)
+    DoCTGLogic(curPlayer, ChConfig.CoinType_Gold, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, coinExp=coinExp)
     return True
 
 def PlayerItemCTG(curPlayer, orderRMB, eventName, isAddBourseMoney, addDataDict={}):
-    ## 使用赠送的物品兑换点券,一般用于bt版
+    ## 使用赠送的物品兑换点券,一般用于bt版,限超级现金
     # 20210120 港台主干版暂废弃
 #    prizeGold = 0
 #    giveItemList = []
@@ -294,7 +286,7 @@
 #    addGold = orderRMB * GetCoinRate()
 #    addDRDict = {"orderCoin":orderCoin, "eventName":eventName}
 #    addDRDict.update(addDataDict)
-#    DoCTGLogic(curPlayer, CoinType_Item, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict)
+#    DoCTGLogic(curPlayer, ChConfig.CoinType_ItemSuper, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict)
     return
 
 def DoGMCTG(curPlayer, orderInfo, appID, isAddBourseMoney, eventName):
@@ -367,8 +359,9 @@
         return
     
     coinExp = ipyData.GetCoinExp()
-    coinType = CoinType_Gold if (ctgIpyData and ctgIpyData.GetPayType() in [PayType_Gold, PayType_GoldPlus]) else CoinType_Buy # 规定2为直充,其他为直购
-    DoCTGLogic(curPlayer, coinType, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, ctgIpyData, coinExp)
+    coinType = ChConfig.CoinType_Gold if (ctgIpyData and ctgIpyData.GetPayType() in [PayType_Gold, PayType_GoldPlus]) else ChConfig.CoinType_Buy # 规定2为直充,其他为直购
+    if not DoCTGLogic(curPlayer, coinType, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, ctgIpyData, coinExp):
+        return
     
     #充值成功主动查询一次,无充值数量就不会继续查询
     if orderID:
@@ -488,6 +481,10 @@
 
 def DoCTGLogic(curPlayer, coinType, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, ctgIpyData=None, coinExp=0):
     
+    if coinType not in [ChConfig.CoinType_Gold, ChConfig.CoinType_Buy, ChConfig.CoinType_ItemSuper]:
+        DataRecordPack.DR_CTGError(curPlayer, "coinType error! coinType(%s)!" % coinType, addDRDict)
+        return
+    
     isRealMoney = True if addDRDict.get("orderID") else False # 是否真实货币充值,仅真实货币充值订单有orderID,后台充值的不算真实货币充值
     ctgRealToday = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGRealToday) # 当日真实货币充值Coin数 ,不含后台充值- 今日
     ctgRealTotal = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGRealTotal) # 累计真实货币充值Coin数 ,不包后台充值 - 总计
@@ -538,7 +535,7 @@
     # 功能统一以分存储记录,玩家字典不支持存小数
     
     # 所有真实充值均有效的
-    if coinType in [CoinType_Gold, CoinType_Buy]:
+    if coinType in [ChConfig.CoinType_Gold, ChConfig.CoinType_Buy]:
         #跨服充值排行活动
         CrossActCTGBillboard.AddCTGRMB(curPlayer, orderCoin)
         #跨服全民充值
@@ -548,7 +545,7 @@
         PlayerFamilyRedPacket.OnPlayerRecharge(curPlayer, orderCoin)
         
     # 只算充仙玉的
-    if coinType == CoinType_Gold:
+    if coinType == ChConfig.CoinType_Gold:
         PlayerActRechargeRebateGold.AddRechargeRebateGoldRMB(curPlayer, addGold)
         
     #仙界盛典-充值大礼
@@ -556,7 +553,7 @@
     PlayerNewFairyCeremony.OnFCRecharge(curPlayer)
     PlayerGoldGift.OnPlayerChargeGold(curPlayer)
     #累积充值X元
-    PlayerActTotalRecharge.AddTotalRechargeGold(curPlayer, orderCoin)
+    PlayerActTotalRecharge.AddTotalRechargeGold(curPlayer, orderCoin, coinType)
     PlayerActGarbageSorting.AddActGarbageTaskProgress(curPlayer, ChConfig.Def_GarbageTask_CTG, addVIPExp, coinType) # 垃圾分类
     PlayerActSingleRecharge.UpdSingleRechargeValue(curPlayer, orderCoin, coinType) # 单笔累充
     PlayerActTurntable.OnPlayerRecharge(curPlayer, orderCoin, coinType) # 转盘
@@ -577,7 +574,7 @@
                       "ctgRealToday":ctgRealToday, "ctgRealTotal":ctgRealTotal, "ctgRealFirstTime":GameWorld.ChangeTimeNumToStr(ctgRealFirstTime) if ctgRealFirstTime else ""})
     DataRecordPack.DR_CTGOK(curPlayer, addDRDict)
     GameWorld.Log("Billing: coinType=%s,eventName=%s, %s" % (coinType, eventName, addDRDict), curPlayer.GetPlayerID())
-    return
+    return True
 
 #===============================================================================
 

--
Gitblit v1.8.0