From 47f6627083fb64b82fb238b384ce23f29228e7f1 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期六, 15 六月 2019 15:16:50 +0800
Subject: [PATCH] 7292 【2.0】【后端】前2次升星成功率定制
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py | 56 ++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 38 insertions(+), 18 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py
index 166411e..ae2e1f0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py
@@ -77,19 +77,19 @@
def __CheckInvestReset(curPlayer):
##检查vip投资重置 超过28天或28天奖励已领取可重置
- investType = ChConfig.GoldInvestType_VIP
- investGoldRecord = __GetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Gold % investType)
- if not investGoldRecord:
- return
- curDay = __GetInvestCurDay(curPlayer, investType)
- investMaxDayDict = IpyGameDataPY.GetFuncEvalCfg('InvestMaxDay')
- maxDay = investMaxDayDict.get(str(investType), 0)
- if curDay > maxDay or __GetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_GotRewardValue % (investType, maxDay)):
- __SetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Time % investType, 0)
- __SetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Gold % investType, 0)
- for i in xrange(1, maxDay+1):
- __SetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_GotRewardValue % (investType, i), 0)
- Sync_GoldInvestInfo(curPlayer, investType, isForce=True)
+ for investType in ChConfig.CanRepeatInvestType:
+ investGoldRecord = __GetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Gold % investType)
+ if not investGoldRecord:
+ return
+ curDay = __GetInvestCurDay(curPlayer, investType)
+ investMaxDayDict = IpyGameDataPY.GetFuncEvalCfg('InvestMaxDay')
+ maxDay = investMaxDayDict.get(str(investType), 0)
+ if curDay > maxDay or __GetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_GotRewardValue % (investType, maxDay)):
+ __SetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Time % investType, 0)
+ __SetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Gold % investType, 0)
+ for i in xrange(1, maxDay+1):
+ __SetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_GotRewardValue % (investType, i), 0)
+ Sync_GoldInvestInfo(curPlayer, investType, isForce=True)
return
#// A5 40 投资理财 #tagCMGoldInvest
@@ -107,8 +107,6 @@
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
investType = clientData.InvestType
investGold = clientData.InvestGold
-
- GameWorld.DebugLog("投资理财:investType=%s,investGold=%s" % (investType, investGold))
investCostDict = IpyGameDataPY.GetFuncEvalCfg('InvestCost')
if str(investType) not in investCostDict:
return
@@ -116,10 +114,26 @@
if investGold not in costList:
GameWorld.DebugLog(' 投资理财 投资额度不存在 investGold=%s, investType=%s'%(investGold, investType))
return
-
awardData = costList.index(investGold) + 1
if investType == ChConfig.GoldInvestType_VIP:
awardData = __GetInvestLVData(curPlayer)
+ __DoLogicInvest(curPlayer, investType, investGold, awardData)
+ return
+
+def InvestByCTG(curPlayer, ctgID):
+ ## 充值投资
+ ctgInvestDict = IpyGameDataPY.GetFuncEvalCfg('InvestCost', 3, {})
+ for investType, ctgIDList in ctgInvestDict.items():
+ if ctgID in ctgIDList:
+ __DoLogicInvest(curPlayer, int(investType), ctgID, 1)
+ GameWorld.Log('投资理财 investType=%s,ctgID=%s'%(investType, ctgID), curPlayer.GetID())
+ break
+ return
+
+
+def __DoLogicInvest(curPlayer, investType, investGold, awardData):
+ GameWorld.DebugLog("投资理财:investType=%s,investGold=%s, awardData=%s" % (investType, investGold, awardData))
+
needVIPLVDict = IpyGameDataPY.GetFuncEvalCfg('InvestCost', 2, {})
needVIPLV = needVIPLVDict.get(str(investType), 0)
if curPlayer.GetVIPLv() < needVIPLV:
@@ -128,6 +142,8 @@
deductGold = investGold
+ if str(investType) in IpyGameDataPY.GetFuncEvalCfg('InvestCost', 3, {}):
+ deductGold = 0 #充钱的不用扣仙玉
investGoldRecord = __GetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Gold % investType)
if investGoldRecord:
curDay = __GetInvestCurDay(curPlayer, investType)
@@ -195,7 +211,7 @@
ChConfig.Def_Cost_GoldInvest, infoDict):
return
#红包奖励
- if investGold == deductGold:
+ if not (investType in ChConfig.InvestGoldTypeList and investGold != deductGold):
redPacketID = IpyGameDataPY.GetFuncEvalCfg('InvestRedPackAward', 1, {}).get(investType, 0)
if redPacketID:
PlayerFamilyRedPacket.CreatRedPacketByID(curPlayer, redPacketID)
@@ -203,7 +219,11 @@
PlayerControl.WorldNotify(0, 'VIPInvestmentRadio', [curPlayer.GetName()])
elif investType in ChConfig.InvestGoldTypeList:
PlayerControl.WorldNotify(0, 'JadeInvestmentRadio', [curPlayer.GetName(), investGold])
-
+ elif investType == ChConfig.GoldInvestType_Month:
+ PlayerControl.WorldNotify(0, 'MonthInvestment', [curPlayer.GetName()])
+ elif investType == ChConfig.GoldInvestType_Week:
+ PlayerControl.WorldNotify(0, 'WeekInPInvestment', [curPlayer.GetName()])
+
# 更新投资时时间,投资金额,重置回报记录
curTime = GameWorld.GetCurrentTime()
curTimeNum = GameWorld.ChangeTimeStrToNum(str(curTime)[:10], ChConfig.TYPE_Time_Format_Day)
--
Gitblit v1.8.0