From 5269e572b892f84ef0ce0f8b9bf1f8e9aee84ca2 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 06 十一月 2024 11:17:39 +0800
Subject: [PATCH] 10287 【英文】1折活动(修复不同折扣下代币支付及异常充值下自动转化代币数值均为原价的bug;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 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 ba1493a..dccf9b0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -322,22 +322,22 @@
                 该充值视为成功,并转化为对应代币,可以理解为类似充值点券,代币可用于下次充值时支付;
     '''
     orderInfo = addDRDict.get("orderInfo", "")
-    orderCoin = addDRDict.get("orderCoin", 0)
+    payCoin = addDRDict.get("payCoin", 0)
     payOrderType = addDRDict.get("payOrderType", PayOrderType_Default)
-    if not orderCoin or not orderInfo:
+    if not payCoin or not orderInfo:
         DataRecordPack.DR_CTGError(curPlayer, errorInfo, addDRDict)
         return
     eventName = addDRDict.get("eventName", "ExchangePayCoin")
     playerID = curPlayer.GetPlayerID()
     befPayCoin = PlayerControl.GetPayCoin(curPlayer)
     drDict = {ChConfig.Def_Give_Reason_SonKey:orderInfo, "payOrderType":payOrderType, "orderInfo":orderInfo}
-    PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_PayCoin, orderCoin, eventName, drDict)
+    PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_PayCoin, payCoin, eventName, drDict)
     aftPayCoin = PlayerControl.GetPayCoin(curPlayer)
-    GameWorld.Log("充值转化为代币: orderInfo=%s,orderCoin=%s,payOrderType=%s,eventName=%s,befPayCoin=%s,aftPayCoin=%s,errorInfo=%s" 
-                  % (orderInfo, orderCoin, payOrderType, eventName, befPayCoin, aftPayCoin, errorInfo), playerID)
+    GameWorld.Log("充值转化为代币: orderInfo=%s,payCoin=%s,payOrderType=%s,eventName=%s,befPayCoin=%s,aftPayCoin=%s,errorInfo=%s" 
+                  % (orderInfo, payCoin, payOrderType, eventName, befPayCoin, aftPayCoin, errorInfo), playerID)
     
     addItemList = []
-    paramList = [orderInfo, orderCoin]
+    paramList = [orderInfo, payCoin]
     PlayerControl.SendMailByKey("ExchangeToPayCoin", [playerID], addItemList, paramList)
     
     if payOrderType != PayOrderType_PayCoin:
@@ -449,11 +449,13 @@
     discountState = PlayerSuperDiscount.GetSuperDiscountState(curPlayer)
     GameWorld.Log("英文1折充值验证至尊卡: orderInfo=%s,orderCoin=%s,orderID=%s" % (orderInfo, orderCoin, orderID), curPlayer.GetPlayerID())
     orderCoinUsd = orderCoin # 入库的是美元分
+    payCoin = orderCoin
     orderCoin = CommFunc.RMBToCoin(ipyData.GetPayRMBNum()) # 游戏内orderCoin为原价
     usdMoney = ipyData.GetUsdMoney() if discountState else ipyData.GetPayRMBNum()
-    GameWorld.Log("    转化后: orderInfo=%s,orderCoin=%s,orderCoinUsd=%s" % (orderInfo, orderCoin, orderCoinUsd), curPlayer.GetPlayerID())
+    GameWorld.Log("    转化后: orderInfo=%s,orderCoin=%s,orderCoinUsd=%s,payCoin=%s" % (orderInfo, orderCoin, orderCoinUsd, payCoin), curPlayer.GetPlayerID())
     addDRDict["orderCoin"] = orderCoin
     addDRDict["orderCoinUsd"] = orderCoinUsd
+    addDRDict["payCoin"] = payCoin # 英文1折版有游戏内折扣(越南版只有支付折扣,游戏内均为原价),所以英文1折版相当于实际折扣价值coin
     GameWorld.Log("    充值验证: orderCoinUsd=%s,usdMoney=%s,discountState=%s" % (orderCoinUsd, usdMoney, discountState), curPlayer.GetPlayerID())
     if orderCoinUsd != CommFunc.RMBToCoin(usdMoney, 100):
         DataRecordPack.DR_CTGError(curPlayer, "The orderCoinUsd is not equal to the ipyData's UsdMoney(%s)! discountState=%s" % (usdMoney, discountState), addDRDict)
@@ -467,9 +469,9 @@
                     GameWorld.ErrLog("代币可不用于支付代币充值!appID=%s,orderInfo=%s" % (appID, orderInfo), curPlayer.GetPlayerID())
                     return
         #直接扣,类似充值扣钱,这里是发放物品,可能会有发放失败的当做 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,curPayCoin=%s" 
-                             % (appID, orderInfo, orderCoin, PlayerControl.GetPayCoin(curPlayer)), curPlayer.GetPlayerID())
+        if not PlayerControl.PayMoney(curPlayer, ShareDefine.TYPE_Price_PayCoin, payCoin, eventName, {ChConfig.Def_Cost_Reason_SonKey:orderInfo, "orderInfo":orderInfo}):
+            GameWorld.ErrLog("代币不足! appID=%s,orderInfo=%s,payCoin=%s,curPayCoin=%s" 
+                             % (appID, orderInfo, payCoin, PlayerControl.GetPayCoin(curPlayer)), curPlayer.GetPlayerID())
             return
         
     addDRDict["payOrderType"] = payOrderType

--
Gitblit v1.8.0