From 5bbfae3f78f50c43ae7d4fee5c55d451e7fdfa02 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 16 六月 2023 15:37:30 +0800
Subject: [PATCH] 0312 同步版本- 更新坐骑信息封包

---
 System/Mount/MountModel.cs                                             |   14 +++++--
 Core/NetworkPackage/ServerPack/HA3_Function/HA301_tagTrainHorseData.cs |   51 +++++++++++--------------
 2 files changed, 33 insertions(+), 32 deletions(-)

diff --git a/Core/NetworkPackage/ServerPack/HA3_Function/HA301_tagTrainHorseData.cs b/Core/NetworkPackage/ServerPack/HA3_Function/HA301_tagTrainHorseData.cs
index e2b7e1e..4bc4ba7 100644
--- a/Core/NetworkPackage/ServerPack/HA3_Function/HA301_tagTrainHorseData.cs
+++ b/Core/NetworkPackage/ServerPack/HA3_Function/HA301_tagTrainHorseData.cs
@@ -1,39 +1,34 @@
 using UnityEngine;
 using System.Collections;
 
-//A3 01 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷息 #tagTrainHorseData
+//A3 01 鍧愰獞鍩瑰吇淇℃伅 #tagTrainHorseData
 
+public class HA301_tagTrainHorseData : GameNetPackBasic
+{
+    public byte LV;    //绛夐樁
+    public uint EatItemCount;    //褰撳墠闃跺凡鍚冧腹涓暟
+    public uint SkinPlusState;    //骞诲寲婵�娲荤姸鎬侊紝鎸変綅瀛樺偍鏄惁婵�娲伙紝骞诲寲缂栧彿ID瀵瑰簲浣嶏紝搴熷純锛屼娇鐢� SkinPlusStateList
+    public byte TrainTypes;    //鍩瑰吇绫诲瀷鏁�
+    public uint[] TrainLVList;    //鍩瑰吇绛夐樁鍒楄〃锛岀储寮曚负鍩瑰吇绫诲瀷鍑�1
+    public uint[] TrainItemCountList;    //鍩瑰吇褰撳墠闃跺凡鍚冨煿鍏讳腹涓暟鍒楄〃锛岀储寮曚负鍩瑰吇绫诲瀷鍑�1
+    public byte SkinPlusStateCount;    //骞诲寲婵�娲荤姸鎬佸�兼暟
+    public uint[] SkinPlusStateList;    //骞诲寲婵�娲荤姸鎬佸�煎垪琛紝鎸変綅瀛樺偍鏄惁婵�娲伙紝骞诲寲缂栧彿ID瀵瑰簲浣�
 
-
-public class HA301_tagTrainHorseData : GameNetPackBasic {
-
-    public byte LV;    //锟饺斤拷
-
-    public uint EatItemCount;    //锟斤拷前锟斤拷锟窖吃碉拷锟斤拷锟斤拷
-
-    public uint SkinPlusState;    //锟矫伙拷锟斤拷锟斤拷状态锟斤拷锟斤拷位锟芥储锟角否激活,锟矫伙拷锟斤拷锟絀D锟斤拷应位
-
-
-
-    public HA301_tagTrainHorseData () {
-
+    public HA301_tagTrainHorseData()
+    {
         _cmd = (ushort)0xA301;
-
     }
 
-
-
-    public override void ReadFromBytes (byte[] vBytes) {
-
-        TransBytes (out LV, vBytes, NetDataType.BYTE);
-
-        TransBytes (out EatItemCount, vBytes, NetDataType.DWORD);
-
-        TransBytes (out SkinPlusState, vBytes, NetDataType.DWORD);
-
+    public override void ReadFromBytes(byte[] vBytes)
+    {
+        TransBytes(out LV, vBytes, NetDataType.BYTE);
+        TransBytes(out EatItemCount, vBytes, NetDataType.DWORD);
+        TransBytes(out SkinPlusState, vBytes, NetDataType.DWORD);
+        TransBytes(out TrainTypes, vBytes, NetDataType.BYTE);
+        TransBytes(out TrainLVList, vBytes, NetDataType.DWORD, TrainTypes);
+        TransBytes(out TrainItemCountList, vBytes, NetDataType.DWORD, TrainTypes);
+        TransBytes(out SkinPlusStateCount, vBytes, NetDataType.BYTE);
+        TransBytes(out SkinPlusStateList, vBytes, NetDataType.DWORD, SkinPlusStateCount);
     }
-
-
 
 }
-
diff --git a/System/Mount/MountModel.cs b/System/Mount/MountModel.cs
index 8012a7e..b4504cd 100644
--- a/System/Mount/MountModel.cs
+++ b/System/Mount/MountModel.cs
@@ -560,7 +560,8 @@
 
     public int HorseLV = 1;
     public int HorseEatCount = 0;   //涔樹互姣忎釜涓圭殑缁忛獙灏辨槸褰撳墠缁忛獙
-    public uint SkinPlusState = 0;
+    //public uint SkinPlusState = 0;
+    public uint[] horseSkinArray;   //鍧愰獞骞诲寲婵�娲绘敮鎸佽秴杩�31
     public event Action onHorseInfoUpdate;
     public event Action onHorseLVUP;
     public event Action onMountSkinActive;
@@ -583,7 +584,7 @@
             
         }
 
-        if (MountHA301MorePack && info.SkinPlusState > SkinPlusState)
+        if (MountHA301MorePack && info.SkinPlusStateList != horseSkinArray)
         {
             isSkinActive = true;
         }
@@ -593,7 +594,7 @@
             MountDanRed();
         }
         HorseEatCount = (int)info.EatItemCount;
-        SkinPlusState = info.SkinPlusState;
+        horseSkinArray = info.SkinPlusStateList;
 
         RefreshHorseAllAttr();
         
@@ -985,7 +986,12 @@
 
     public bool isMountSkinActiveByID(int ID)
     {
-        if (((int)Math.Pow(2, ID) & SkinPlusState) <= 0)
+        if (horseSkinArray == null || horseSkinArray.Length == 0)
+            return false;
+
+        int index = ID / 31;
+        int value = ID % 31;
+        if (((int)Math.Pow(2, value) & horseSkinArray[index]) <= 0)
             //鏈縺娲荤毊鑲�
             return false;
 

--
Gitblit v1.8.0