From cfa0e7bcd6b5c6ee2551b58471310de677fc9e7f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 15 一月 2025 11:41:54 +0800
Subject: [PATCH] 10352 【BT】免费买断版本(修改永久卡激活逻辑)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 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 cdfc5ed..bf12033 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py
@@ -128,8 +128,25 @@
 #    DWORD        InvestGold; // 投资额度
 #};
 def OnGoldInvest(index, clientData, tick):
-    ## 消耗仙玉投资的,暂废弃
+    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+    investType = clientData.InvestType
+    InvestByRealCTG(curPlayer, investType)
     return
+
+def InvestByRealCTG(curPlayer, investType):
+    ## 真实充值激活投资
+    needRealCTGCoinDict = IpyGameDataPY.GetFuncEvalCfg("InvestCost", 4, {})
+    if str(investType) not in needRealCTGCoinDict:
+        return
+    playerID = curPlayer.GetPlayerID()
+    realNeed = needRealCTGCoinDict[str(investType)]
+    realTotal = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGRealTotal)
+    if realTotal < realNeed:
+        GameWorld.DebugLog("真实充值额度不足,无法激活! investType=%s,realTotal=%s < %s" 
+                           % (investType, realTotal, realNeed), playerID)
+        return
+    __DoLogicInvest(curPlayer, investType)
+    return True
 
 ## 充值直购投资
 def InvestByCTG(curPlayer, ctgID):
@@ -162,6 +179,12 @@
     if redPacketID:
         PlayerFamilyRedPacket.CreatRedPacketByID(curPlayer, redPacketID)
         
+    # 额外奖励物品
+    awardItemDict = IpyGameDataPY.GetFuncEvalCfg("InvestCost", 5, {})
+    if str(investType) in awardItemDict:
+        awardItemListEx = awardItemDict[str(investType)]
+        ItemControler.GivePlayerItemOrMail(curPlayer, awardItemListEx, event=["Invest", True, {"investType":investType}])
+        
     # 广播
     PlayerControl.WorldNotify(0, "BuyInvest_%s" % investType, [curPlayer.GetName(), __GetTotalGetGold(investType)])
     

--
Gitblit v1.8.0