From dde0bcc48a5b91a74b1d69ce9be1245811382f42 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 24 十一月 2025 12:03:38 +0800
Subject: [PATCH] 332 【主界面】座骑系统-服务端(修复默认激活的坐骑外观无法佩戴bug)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py |   40 ++++++++++++++++++++++++----------------
 1 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
index c7316af..df1bd30 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
@@ -308,21 +308,25 @@
     ipyData = IpyGameDataPY.GetIpyGameData("HorseSkin", horseSkinID)
     if not ipyData:
         return
-    if ipyData.GetUnlockWay() != 2:
-        GameWorld.DebugLog("非道具激活的不用添加: horseSkinID=%s" % (horseSkinID), playerID)
-        return
     if not isFree:
-        itemID = ipyData.GetUnlockValue()
-        itemCount = ipyData.GetUnlockNeedCnt()
-        if not itemID or not itemCount:
-            return
-        needItemList = [[itemID, itemCount]]
-        itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
-        lackItemDict, delInfoDict = ItemCommon.GetCostItemIndexList(needItemList, itemPack)
-        if lackItemDict:
-            GameWorld.DebugLog("激活所需物品不足! horseSkinID=%s,lackItemDict=%s" % (horseSkinID, lackItemDict), playerID)
-            return
-        ItemCommon.DelCostItem(curPlayer, itemPack, delInfoDict, "AddHorseSkin")
+        unlockWay = ipyData.GetUnlockWay()
+        if unlockWay == 1:
+            classLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorseClassLV)
+            if classLV < ipyData.GetUnlockValue():
+                GameWorld.DebugLog("坐骑阶级不足无法解锁! classLV=%s < %s" % (classLV, ipyData.GetUnlockValue()), playerID)
+                return
+        elif unlockWay == 2:
+            itemID = ipyData.GetUnlockValue()
+            itemCount = ipyData.GetUnlockNeedCnt()
+            if not itemID or not itemCount:
+                return
+            needItemList = [[itemID, itemCount]]
+            itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
+            lackItemDict, delInfoDict = ItemCommon.GetCostItemIndexList(needItemList, itemPack)
+            if lackItemDict:
+                GameWorld.DebugLog("激活所需物品不足! horseSkinID=%s,lackItemDict=%s" % (horseSkinID, lackItemDict), playerID)
+                return
+            ItemCommon.DelCostItem(curPlayer, itemPack, delInfoDict, "AddHorseSkin")
         
     ipyExpireSeconds = ipyData.GetExpireMinutes() * 60
     
@@ -388,6 +392,8 @@
     for index in range(ipyDataMgr.GetHorseSkinCount()):
         ipyData = ipyDataMgr.GetHorseSkinByIndex(index)
         horseSkinID = ipyData.GetSkinID()
+        if horseSkinID <= 0:
+            continue
         if ipyData.GetUnlockWay() != 1:
             continue
         if ipyData.GetUnlockValue() > 0:
@@ -407,9 +413,11 @@
     if ipyData:
         unlockWay = ipyData.GetUnlockWay()
         if unlockWay == 1:
-            classLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorseClassLV)
-            if classLV >= ipyData.GetUnlockValue():
+            if not ipyData.GetUnlockValue():
                 return True
+            #classLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorseClassLV)
+            #if classLV >= ipyData.GetUnlockValue():
+            #    return True
             
     return False
 

--
Gitblit v1.8.0