From 540eced2499bf2814f3264c0d41eb0e9c52b9957 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 08 二月 2026 15:33:04 +0800
Subject: [PATCH] 462 【付费活动】限时冲刺-服务端(轮回殿)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py | 82 ++++++++++++++++++++--------------------
1 files changed, 41 insertions(+), 41 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 b44dfb8..0996c27 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -45,23 +45,16 @@
import PlayerDailyGiftbag
import PlayerGoldGift
import PlayerActTotalRecharge
-import PlayerActRechargeRebateGold
-import PlayerActFamilyCTGAssist
import PlayerActManyDayRecharge
import PlayerActSingleRecharge
-import PlayerActRechargePrize
-import CrossActCTGBillboard
-import CrossActAllRecharge
import PlayerActGrowupBuy
-import PlayerWeekParty
import PlayerGoldInvest
import PlayerActTurntable
-import PlayerTongTianLing
import PlayerZhanling
import PlayerGoldRush
import PlayerLLMJ
-import ItemCommon
import PyGameData
+import DBDataMgr
import CommFunc
import time
@@ -238,11 +231,11 @@
# tagHead Head;
#};
def OnQueryRecharge(index, packData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- if tick - curPlayer.GetDictByKey("QRtick") < 10000:
- return
- curPlayer.SetDict("QRtick", tick)
- curPlayer.SendDBQueryRecharge()
+ #curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+ #if tick - curPlayer.GetDictByKey("QRtick") < 10000:
+ # return
+ #curPlayer.SetDict("QRtick", tick)
+ #curPlayer.SendDBQueryRecharge() 不查了,由在线轮询触发即可
return
#// A1 23 查询充值次数 #tagCMQueryCoinToGoldCount
@@ -338,7 +331,7 @@
PlayerControl.SendMailByKey("ExchangeToPayCoin", [playerID], addItemList, paramList)
if payOrderType != PayOrderType_PayCoin:
- serverDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
+ serverDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_ServerDay) + 1
addDRDict.update({"coinType":ChConfig.CoinType_ExchangePayCoin, "PayCoin":[befPayCoin, aftPayCoin],
"VIPLv":curPlayer.GetVIPLv(), "ServerDay":serverDay, "eventName":eventName})
DataRecordPack.DR_CTGOK(curPlayer, addDRDict)
@@ -409,6 +402,15 @@
cPlayerCoin.isAddBourseMoney = isAddBourseMoney
return PlayerCoinToGold(curPlayer, cPlayerCoin, eventName)
+def OnDBPushRecharge(curPlayer, orderID, orderInfo, orderAmount):
+ cPlayerCoin = CPY_PlayerCoinToGold()
+ cPlayerCoin.useCoin = orderAmount
+ cPlayerCoin.orderID = orderID
+ cPlayerCoin.orderInfo = orderInfo
+ cPlayerCoin.isAddBourseMoney = True
+ GameWorld.Log("OnDBPushRecharge: useCoin=%s,orderInfo=%s,orderID=%s" % (cPlayerCoin.useCoin, cPlayerCoin.orderInfo, cPlayerCoin.orderID), curPlayer.GetPlayerID())
+ return PlayerCoinToGold(curPlayer, cPlayerCoin, ChConfig.Def_GiveMoney_CoinToGold)
+
##特别说明:充值赠送点券都要计算到各个活动中
##玩家点卷兑换元宝.
# @param curPlayer 玩家实例
@@ -422,12 +424,15 @@
orderInfo = chargeInfo.GetOrderInfo() # 商品编号
orderID = chargeInfo.GetOrderID() #订单号,兑换成功后清除
isAddBourseMoney = chargeInfo.GetIsAddBourseMoney()
- if orderID:
- curPlayer.SendDBFinishRecharge(orderID)
-
+ #if orderID:
+ # curPlayer.SendDBFinishRecharge(orderID)
+
appID = chargeInfo.GetAppID()
if not appID:
appID = GameWorld.GetPlayerPlatform(curPlayer)
+ if not appID:
+ appID = GameWorld.GetAppIDByAccID(curPlayer.GetAccID())
+ GameWorld.DebugLog("GetAppIDByAccID appID=%s" % appID)
addDRDict = {"orderCoin":orderCoin, "orderInfo":orderInfo, "orderID":orderID,
"isAddBourseMoney":isAddBourseMoney, "eventName":eventName, "appID":appID}
@@ -506,7 +511,7 @@
recordID = ctgIpyData.GetRecordID() if ctgIpyData else 0
Sync_CoinToGoldReport(curPlayer, orderID, orderCoin, recordID, orderInfo)
- curPlayer.SendDBQueryRecharge()
+ #curPlayer.SendDBQueryRecharge() 不查了,由在线轮询触发即可
return True
def __GetCTGInfoByID(curPlayer, recordID, addDRDict):
@@ -582,14 +587,7 @@
gainGoldPrize = ipyData.GetGainGoldPrize() # 赠送货币数,首次充值赠送仙玉时,此仙玉不给
firstGoldPrize = ipyData.GetFirstGoldPrize() # 首次充值赠送的仙玉
prizeGold = firstGoldPrize if (not totalBuyCount and firstGoldPrize) else gainGoldPrize
- if moneyType == IPY_GameWorld.TYPE_Price_Gold_Money:
- #if payType in [PayType_Gold, PayType_GoldPlus] and PlayerGoldInvest.GetInvestState(curPlayer, ChConfig.InvestType_Life):
- # prizeGold = addGold # bt tqxbqy 版本,永久卡仙玉直充固定双倍
- actPrizeGold = PlayerActRechargePrize.DoAddPlayerActRechargePrizeCount(curPlayer, recordID)
- if actPrizeGold:
- prizeGold += actPrizeGold
- addDRDict.update({"actRechargePrize":1})
-
+
syncRecordIDList = [recordID]
# 打包购买 - 目前用于每日特惠,有需要可扩展为通用
if recordID == IpyGameDataPY.GetFuncCfg("DailyTehui", 2):
@@ -605,7 +603,8 @@
syncRecordIDList.append(ctgID)
ctgItemList = GetCTGGiveItemList(ctgIpyData)
packCTGIDDict[ctgID] = ctgItemList
- for itemID, itemCount, _ in ctgItemList:
+ for itemInfo in ctgItemList:
+ itemID, itemCount = itemInfo[:2]
packItemDict[itemID] = packItemDict.get(itemID, 0) + itemCount
__addCTGIDBuyCnt(curPlayer, ctgID)
if packCTGIDDict:
@@ -707,16 +706,28 @@
if ctgIpyData and ctgIpyData.GetPayType() == PayType_PayCoin:
# 代币充值,仅给代币,不触发其他内容
+ ctgID = ctgIpyData.GetRecordID()
coinType = ChConfig.CoinType_PayCoin
orderInfo = addDRDict.get("orderInfo", "")
orderCoin = addDRDict.get("orderCoin", 0)
payOrderType = addDRDict.get("payOrderType", PayOrderType_Default)
playerID = curPlayer.GetPlayerID()
+ moneyInfo = {}
befPayCoin = PlayerControl.GetPayCoin(curPlayer)
if addGold and moneyType == ShareDefine.TYPE_Price_PayCoin:
drDict = {ChConfig.Def_Give_Reason_SonKey:orderInfo, "payOrderType":payOrderType, "orderInfo":orderInfo}
PlayerControl.GiveMoney(curPlayer, moneyType, addGold, eventName, drDict)
+ moneyInfo[moneyType] = addGold
aftPayCoin = PlayerControl.GetPayCoin(curPlayer)
+ # 三国版本充代币支持赠送元宝
+ prizeMoneyType = IPY_GameWorld.TYPE_Price_Gold_Money
+ if prizeGold > 0:
+ PlayerControl.GiveMoney(curPlayer, prizeMoneyType, prizeGold, eventName, addDRDict, isGiveBourseMoney=isAddBourseMoney)
+ moneyInfo[prizeMoneyType] = prizeGold
+
+ if moneyInfo:
+ ItemControler.NotifyGiveAwardInfo(curPlayer, [], ChConfig.ItemGive_CTG, moneyInfo=moneyInfo,
+ dataEx={"orderInfo":orderInfo, "ctgID":ctgID})
isRealMoney = True if addDRDict.get("orderID") else False # tqxbqy 真实订单充代币算真实充值
if isRealMoney:
@@ -725,8 +736,8 @@
ctgRealToday = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGRealToday) # 当日真实货币充值Coin数 ,不含后台充值- 今日
ctgRealTotal = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGRealTotal) # 累计真实货币充值Coin数 ,不包后台充值 - 总计
ctgRealFirstTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGRealFirstTime) # 首次真实货币充值时间戳
- serverDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
- addDRDict.update({"coinType":coinType, "PayCoin":[befPayCoin, aftPayCoin],
+ serverDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_ServerDay) + 1
+ addDRDict.update({"coinType":coinType, "PayCoin":[befPayCoin, aftPayCoin], "moneyInfo":moneyInfo,
"VIPLv":curPlayer.GetVIPLv(), "ServerDay":serverDay, "eventName":eventName,
"ctgRealToday":ctgRealToday, "ctgRealTotal":ctgRealTotal, "ctgRealFirstTime":GameWorld.ChangeTimeNumToStr(ctgRealFirstTime) if ctgRealFirstTime else ""})
DataRecordPack.DR_CTGOK(curPlayer, addDRDict)
@@ -797,33 +808,22 @@
# 所有真实充值均有效的
if coinType in [ChConfig.CoinType_Gold, ChConfig.CoinType_Buy, ChConfig.CoinType_UsePayCoin]:
- #跨服充值排行活动
- CrossActCTGBillboard.AddCTGRMB(curPlayer, orderCoin)
- #跨服全民充值
- CrossActAllRecharge.AddCTGRMB(curPlayer, orderCoin)
PlayerActManyDayRecharge.AddManyDayRechargeValue(curPlayer, orderCoin) # 多日连充
-
- # 只算充仙玉的
- if coinType == ChConfig.CoinType_Gold:
- PlayerActRechargeRebateGold.AddRechargeRebateGoldRMB(curPlayer, addGold)
#累积充值X元
PlayerActTotalRecharge.AddTotalRechargeGold(curPlayer, orderCoin, coinType)
PlayerActSingleRecharge.UpdSingleRechargeValue(curPlayer, orderCoin, coinType) # 单笔累充
PlayerActTurntable.OnPlayerRecharge(curPlayer, orderCoin, coinType) # 转盘
- PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Recharge, addVIPExp)
#投资
if ctgIpyData:
ctgID = ctgIpyData.GetRecordID()
- #PlayerActFamilyCTGAssist.OnPlayerCTG(curPlayer, ctgID)
PlayerGoldInvest.InvestByCTG(curPlayer, ctgID)
PlayerGoldGift.OnGiftByCTGID(curPlayer, ctgID)
PlayerZhanling.OnActiviteByCTGID(curPlayer, ctgID)
PlayerGoldRush.OnGoldRushByCTGID(curPlayer, ctgID)
- PlayerTongTianLing.OnActiviteTTTByCTGID(curPlayer, ctgID)
PlayerLLMJ.OnActiviteByCTGID(curPlayer, ctgID)
- serverDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
+ serverDay = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_ServerDay) + 1
addDRDict.update({"gold":[goldBefore, goldAfter], "changeCoinPoint":[changeCoinPointBefore, changeCoinPointAfter], "todayCTGCoinTotal":todayCTGCoinTotal,
"bourseMoney":[bourseMoneyBefore, bourseMoneyAfter], "addGold":addGold, "prizeGold":prizeGold, "giveItemList":giveItemList, "coinType":coinType,
"coinExp":coinExp, "addVIPExp":addVIPExp, "VIPLv":curPlayer.GetVIPLv(), "ServerDay":serverDay,
--
Gitblit v1.8.0