From 76e5bb8009ca029093959036157e5c2601ff2431 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 17 十月 2022 17:09:36 +0800
Subject: [PATCH] 9684 【越南】坐骑幻化支持时效性(时效幻化激活状态变更同步变更原幻化激活状态)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 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 faeee70..5410723 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
@@ -178,6 +178,7 @@
     if not ipyData:
         return
     
+    activateState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorserSkinPlusState)
     updSkinEndTime = 0
     validTime = ipyData.GetSkinValidTime()
     if validTime:
@@ -188,7 +189,6 @@
         else:
             updSkinEndTime = skinEndTime + validTime
     else:
-        activateState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorserSkinPlusState)
         if activateState & pow(2, activateID):
             GameWorld.DebugLog("该坐骑已幻化!activateState=%s,activateID=%s" % (activateState, activateID))
             return
@@ -205,20 +205,22 @@
     if validTime:
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserSkinEndTime % activateID, updSkinEndTime)
         GameWorld.DebugLog("坐骑幻化时效 activateID=%s,updSkinEndTime=%s(%s)" % (activateID, updSkinEndTime, GameWorld.ChangeTimeNumToStr(updSkinEndTime)), playerID)
-    else:
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserSkinPlusState, activateState|pow(2, activateID))
         
+    #时效及非时效该状态均设置激活
+    updActivateState = activateState|pow(2, activateID)
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserSkinPlusState, updActivateState)
+    
     playerEquip = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
     itemRideHorse = playerEquip.GetAt(Def_HorseEquipIndex)
     #无指定道具
     if itemRideHorse.IsEmpty():
         DoChangeHorse(curPlayer, 2, activateID, tick)
         
+    Sync_HorseClassData(curPlayer)
     if validTime:
         SyncHorseSkinTimeInfo(curPlayer, activateID)
-    else:
-        Sync_HorseClassData(curPlayer)
-    GameWorld.Log("坐骑激活成功!activateID=%s,updSkinEndTime=%s" % (activateID, updSkinEndTime), playerID)
+    GameWorld.Log("坐骑激活成功!activateID=%s,activateState=%s,updActivateState=%s,updSkinEndTime=%s" 
+                  % (activateID, activateState, updActivateState, updSkinEndTime), playerID)
     
     # 刷属性,更新排行榜
     RefreshHorseAttr(curPlayer)
@@ -339,6 +341,12 @@
             addItemList = []
             paramList = [skinItemID]
             PlayerControl.SendMailByKey("HorseSkinInvalidNotify", [playerID], addItemList, paramList)
+            
+            activateState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorserSkinPlusState)
+            updActivateState = GameWorld.SetBitValue(activateState, skinID, 0)
+            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserSkinPlusState, updActivateState)
+            GameWorld.Log("坐骑幻化过期更新状态! skinID=%s,activateState=%s,updActivateState=%s" % (skinID, activateState, updActivateState), playerID)
+            Sync_HorseClassData(curPlayer)
             return False
     else:
         activateState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorserSkinPlusState)

--
Gitblit v1.8.0