From dbf479ac2d1d2a1587fd9a984ac84a16ad0bb3d6 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 07 一月 2026 12:04:02 +0800
Subject: [PATCH] 271 【内政】古宝系统-服务端(增加特殊效果类型3~6;新增特权效果支持,增加特权效果类型1、2;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py
index 69775c1..5cf0dc3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py
@@ -447,6 +447,21 @@
     if not moneyType or not moneyBase:
         return
     
+    # 砍树类主线装备独立流向规则:暂时只记录分解,按祝福树对应品质列表记录
+    treeLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreeLV)
+    ipyData = IpyGameDataPY.GetIpyGameData("TreeLV", treeLV)
+    needRecordColorMin = 0
+    if ipyData:
+        lastColorCnt = IpyGameDataPY.GetFuncCfg("ItemRecordEquip", 1) # 有产出的最后几个品质需要记录
+        equipColorRateList = ipyData.GetEquipColorRateList()
+        lastColor = len(equipColorRateList)
+        for colorRate in equipColorRateList[::-1]:
+            if colorRate:
+                break
+            lastColor -= 1
+        needRecordColorMin = lastColor - lastColorCnt + 1
+        #GameWorld.DebugLogEx("treeLV=%s,rateLen=%s,lastColor=%s,needRecordColorMin=%s", treeLV, len(equipColorRateList), lastColor, needRecordColorMin, playerID)
+        
     decomposeMoney = moneyBase
     mjExPer, exRemain = PlayerLLMJ.GetAddDecomposePer(curPlayer)
     mjEx = int(decomposeMoney * mjExPer / 100.0)
@@ -478,7 +493,8 @@
         GameWorld.DebugLog("    itemIndex=%s,decomposeMoney=%s,mjEx=%s,exRemain=%s,总:%s" 
                            % (itemIndex, decomposeMoney, mjEx, exRemain, moneyTotal), playerID)
         
-        ItemCommon.DelItem(curPlayer, curEquip, curEquip.GetCount(), True, ChConfig.ItemDel_EquipDecompose)
+        isForceDR = curEquip.GetItemColor() >= needRecordColorMin # 记录分解流向
+        ItemCommon.DelItem(curPlayer, curEquip, curEquip.GetCount(), True, ChConfig.ItemDel_EquipDecompose, isForceDR=isForceDR)
         decomposeCnt += 1
         
     if not moneyTotal:

--
Gitblit v1.8.0