From 9e850c5e25ea52b4a7cf7e82ca6ce519483a672d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 20 一月 2021 16:36:20 +0800
Subject: [PATCH] 8706 【主干】【后端】1元:10仙玉的设定废除(增加充值转化经验配置,VIP等级经验获取修改);

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py |   47 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 34 insertions(+), 13 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 345a2ac..2004165 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -170,22 +170,41 @@
 
 def PlayerCoinToGoldEx(curPlayer, orderRMB, eventName, isAddBourseMoney):
     ## 直接充值自定义金额
+    
+    appID = GameWorld.GetPlayerPlatform(curPlayer)
+    payRMBNum = 1
+    oneRMBIpyData = None # 默认取单位1货币对应充值配置
+    ipyDataMgr = IpyGameDataPY.IPY_Data()
+    for i in xrange(ipyDataMgr.GetOrderInfoCount()):
+        ipyData = ipyDataMgr.GetOrderInfoByIndex(i)
+        # 单位1元配置,不关联充值ID、礼包ID
+        if appID == ipyData.GetAppID() and ipyData.GetPayRMBNum() == payRMBNum and not ipyData.GetCTGID() and not ipyData.GetGiftbagID():
+            oneRMBIpyData = ipyData
+            break
+    if not oneRMBIpyData:
+        GameWorld.ErrLog("Can not found one RMB pay num orderInfo! appID=%s,payRMBNum=%s" % (appID, payRMBNum), curPlayer.GetPlayerID())
+        return
+    
+    oneRMBCoinExp = oneRMBIpyData.GetCoinExp()
+    
     prizeGold = 0
     giveItemList = []
     orderCoin = CommFunc.RMBToCoin(orderRMB)
-    addGold = orderRMB * GetCoinRate()
+    coinExp = int(orderRMB * oneRMBCoinExp)
+    addGold = coinExp # 此方式增加的仙玉 = 直充经验
     addDRDict = {"orderCoin":orderCoin, "isAddBourseMoney":isAddBourseMoney, "eventName":eventName}
-    DoCTGLogic(curPlayer, CoinType_Gold, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict)
-    return
+    DoCTGLogic(curPlayer, CoinType_Gold, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, coinExp=coinExp)
+    return True
 
 def PlayerItemCTG(curPlayer, orderRMB, eventName, isAddBourseMoney):
     ## 使用赠送的物品兑换点券,一般用于bt版
-    prizeGold = 0
-    giveItemList = []
-    orderCoin = CommFunc.RMBToCoin(orderRMB) # 单位,分
-    addGold = orderRMB * GetCoinRate()
-    addDRDict = {"orderCoin":orderCoin, "eventName":eventName}
-    DoCTGLogic(curPlayer, CoinType_Item, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict)
+    # 20210120 港台主干版暂废弃
+#    prizeGold = 0
+#    giveItemList = []
+#    orderCoin = CommFunc.RMBToCoin(orderRMB) # 单位,分
+#    addGold = orderRMB * GetCoinRate()
+#    addDRDict = {"orderCoin":orderCoin, "eventName":eventName}
+#    DoCTGLogic(curPlayer, CoinType_Item, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict)
     return
 
 def DoGMCTG(curPlayer, orderInfo, appID, isAddBourseMoney, eventName):
@@ -257,8 +276,9 @@
         DataRecordPack.DR_CTGError(curPlayer, "The orderInfo is useless!", addDRDict)
         return
     
+    coinExp = ipyData.GetCoinExp()
     coinType = CoinType_Gold if (ctgIpyData and ctgIpyData.GetPayType() in [2, 3]) else CoinType_Buy # 规定2为直充,其他为直购
-    DoCTGLogic(curPlayer, coinType, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, ctgIpyData)
+    DoCTGLogic(curPlayer, coinType, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, ctgIpyData, coinExp)
     
     #充值成功主动查询一次,无充值数量就不会继续查询
     if orderID:
@@ -320,7 +340,7 @@
     Sync_CoinToGoldCountInfo(curPlayer, [recordID])
     return addGold, prizeGold, giveItemList, ipyData
 
-def DoCTGLogic(curPlayer, coinType, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, ctgIpyData=None):
+def DoCTGLogic(curPlayer, coinType, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, ctgIpyData=None, coinExp=0):
     notifyMark = ctgIpyData.GetNotifyMark() if ctgIpyData else ""
     goldBefore = curPlayer.GetGold()
     bourseMoneyBefore = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney)
@@ -340,7 +360,7 @@
         if notifyMark:
             PlayerControl.WorldNotify(0, notifyMark, [curPlayer.GetName()])
             
-    addVIPExp = int(orderCoin / 100 * GetCoinRate())
+    addVIPExp = coinExp
     PlayerVip.AddVIPExp(curPlayer, addVIPExp)
     
     changeCoinPointBefore = curPlayer.GetChangeCoinPointTotal()
@@ -354,7 +374,8 @@
     changeCoinPointAfter = curPlayer.GetChangeCoinPointTotal()
     bourseMoneyAfter = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney)
     addDRDict.update({"gold":[goldBefore, goldAfter], "changeCoinPoint":[changeCoinPointBefore, changeCoinPointAfter], "todayCTGCoinTotal":todayCTGCoinTotal,
-                      "bourseMoney":[bourseMoneyBefore, bourseMoneyAfter], "addGold":addGold, "prizeGold":prizeGold, "giveItemList":giveItemList, "coinType":coinType})
+                      "bourseMoney":[bourseMoneyBefore, bourseMoneyAfter], "addGold":addGold, "prizeGold":prizeGold, "giveItemList":giveItemList, "coinType":coinType,
+                      "coinExp":coinExp})
     
     DataRecordPack.DR_CTGOK(curPlayer, addDRDict)
     

--
Gitblit v1.8.0