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