From 5e441c27f5cf508ed06cd288ce4db3bbede0eee7 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 02 十二月 2025 16:38:58 +0800
Subject: [PATCH] 0312 增加支持http获取战报播放-临时版本

---
 Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB431_tagSCTurnFightRet.cs.meta           |   11 ++
 Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB431_tagSCTurnFightRet.cs                |   41 ++++++++++
 Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs                                          |    1 
 Main/System/Settlement/BattleSettlementManager.cs                                             |   85 +++++++++++++++++++++
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB431_tagSCTurnFightRet.cs      |   12 +++
 Main/Core/NetworkPackage/GameNetPackBasic.cs                                                  |   25 ++++++
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB431_tagSCTurnFightRet.cs.meta |   11 ++
 7 files changed, 186 insertions(+), 0 deletions(-)

diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB431_tagSCTurnFightRet.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB431_tagSCTurnFightRet.cs
new file mode 100644
index 0000000..af11ae1
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB431_tagSCTurnFightRet.cs
@@ -0,0 +1,12 @@
+using UnityEngine;
+using System.Collections;
+
+// B4 31 鎴樻枟鎴樻姤缁撴灉 #tagSCTurnFightRet
+
+public class DTCB431_tagSCTurnFightRet : DtcBasic {
+    public override void Done(GameNetPackBasic vNetPack) {
+        base.Done(vNetPack);
+        HB431_tagSCTurnFightRet vNetData = vNetPack as HB431_tagSCTurnFightRet;
+        BattleSettlementManager.Instance.UpdateSettlementData(vNetData);
+    }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB431_tagSCTurnFightRet.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB431_tagSCTurnFightRet.cs.meta
new file mode 100644
index 0000000..0a198ea
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB431_tagSCTurnFightRet.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3a9eccf6a3501c24d89018d298e2cf70
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
index d703417..fc27882 100644
--- a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
+++ b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
@@ -130,6 +130,7 @@
         Register(typeof(HB119_tagSCModelInfo), typeof(DTCB119_tagSCModelInfo));
         Register(typeof(HB126_tagSCTitleInfo), typeof(DTCB126_tagSCTitleInfo));
         Register(typeof(HB127_tagSCChatBoxInfo), typeof(DTCB127_tagSCChatBoxInfo));
+        Register(typeof(HB431_tagSCTurnFightRet), typeof(DTCB431_tagSCTurnFightRet));
 
     }
 
diff --git a/Main/Core/NetworkPackage/GameNetPackBasic.cs b/Main/Core/NetworkPackage/GameNetPackBasic.cs
index 56f9dbe..77914ab 100644
--- a/Main/Core/NetworkPackage/GameNetPackBasic.cs
+++ b/Main/Core/NetworkPackage/GameNetPackBasic.cs
@@ -962,6 +962,10 @@
     {
         try
         {
+            if (vInts.IsNullOrEmpty())
+            {
+                return;
+            }
             if (vInts.Length != vLockLeng)
                 Array.Resize(ref vInts, vLockLeng);
             this.WriteBytes(vInts, vType);
@@ -978,6 +982,10 @@
     {
         try
         {
+            if (vInts.IsNullOrEmpty())
+            {
+                return;
+            }
             if (vInts.Length != vLockLeng)
                 Array.Resize(ref vInts, vLockLeng);
             this.WriteBytes(vInts, vType);
@@ -993,6 +1001,10 @@
     {
         try
         {
+            if (vInts.IsNullOrEmpty())
+            {
+                return;
+            }
             if (vWriteLen == StrWriteLen.BYTE)
                 this.WriteBytes(new Byte[] { (byte)vInts.Length });
             else if (vWriteLen == StrWriteLen.WORD)
@@ -1012,6 +1024,10 @@
     {
         try
         {
+            if (vInts.IsNullOrEmpty())
+            {
+                return;
+            }
             int l = vInts.Length;
             byte[] vRst;
             int i;
@@ -1051,6 +1067,10 @@
     {
         try
         {
+            if (vInts.IsNullOrEmpty())
+            {
+                return;
+            }
             int l = vInts.Length;
             byte[] vRst;
             int i;
@@ -1147,6 +1167,11 @@
     {
         try
         {
+            if (vBytes.IsNullOrEmpty())
+            {
+                return;
+            }
+
             Array.Resize(ref _writedBytes, _writeIndex + vBytes.Length);
             vBytes.CopyTo(_writedBytes, _writeIndex);
             _writeIndex = _writedBytes.Length;
diff --git a/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB431_tagSCTurnFightRet.cs b/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB431_tagSCTurnFightRet.cs
new file mode 100644
index 0000000..0296a8b
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB431_tagSCTurnFightRet.cs
@@ -0,0 +1,41 @@
+using UnityEngine;
+using System.Collections;
+
+// B4 31 鎴樻枟鎴樻姤缁撴灉 #tagSCTurnFightRet
+
+public class HB431_tagSCTurnFightRet : GameNetPackBasic {
+    public uint MapID;    // 鑷畾涔夊湴鍥綢D锛屽彲鐢ㄤ簬缁戝畾鎴樻枟鍦板浘鍦烘櫙鍔熻兘锛堝涓荤嚎boss銆佺埇濉斻�佺珵鎶�鍦虹瓑锛�
+    public uint FuncLineID;    // MapID瀵瑰簲鐨勬墿灞曞�硷紝濡傚叿浣撴煇涓叧鍗$瓑
+    public byte TagType;    // 鐩爣绫诲瀷锛�0-NPC闃靛锛�1-鐜╁
+    public uint TagID;    // 鐩爣绫诲瀷瀵瑰簲鐨処D锛屽鐜╁ID
+    public byte ValueCount;
+    public  uint[] ValueList;    // 闄勫姞鍊煎垪琛紝鍙�夛紝鍏蜂綋鍚箟鐢盡apID鍐冲畾
+    public byte IsWin;    //鏄惁鑾疯儨
+    public ushort AwardLen;
+    public string AwardMsg;    //鍔熻兘缁撶畻濂栧姳淇℃伅锛屼笉鍚垬鏂楃浉鍏崇粺璁′俊鎭�
+    public ushort BatLen;
+    public string BatStatMsg;    //鎴樻枟鐩稿叧缁熻淇℃伅
+    public string PathDate;    //鎴樻姤璺緞鏃ユ湡, yyyyMMdd, 涓虹┖鏃朵唬琛ㄥ叕鍏辩被鐨勬垬鎶ワ紝涓嶄负绌烘椂涓虹帺瀹朵釜浜虹被鎴樻姤
+    public string GUID;    //鎴樻姤guid锛屽墠绔牴鎹姛鑳組apID鍒ゆ柇鏄惁璺ㄦ湇鍔熻兘锛屾槸鐨勮瘽浠庤法鏈嶆湇鍔″櫒涓嬭浇鎴樻姤锛屽惁鐨勮瘽浠庢湰鏈嶄笅杞�
+
+    public HB431_tagSCTurnFightRet () {
+        _cmd = (ushort)0xB431;
+    }
+
+    public override void ReadFromBytes (byte[] vBytes) {
+        TransBytes (out MapID, vBytes, NetDataType.DWORD);
+        TransBytes (out FuncLineID, vBytes, NetDataType.DWORD);
+        TransBytes (out TagType, vBytes, NetDataType.BYTE);
+        TransBytes (out TagID, vBytes, NetDataType.DWORD);
+        TransBytes (out ValueCount, vBytes, NetDataType.BYTE);
+        TransBytes (out ValueList, vBytes, NetDataType.DWORD, ValueCount);
+        TransBytes (out IsWin, vBytes, NetDataType.BYTE);
+        TransBytes (out AwardLen, vBytes, NetDataType.WORD);
+        TransBytes (out AwardMsg, vBytes, NetDataType.Chars, AwardLen);
+        TransBytes (out BatLen, vBytes, NetDataType.WORD);
+        TransBytes (out BatStatMsg, vBytes, NetDataType.Chars, BatLen);
+        TransBytes (out PathDate, vBytes, NetDataType.Chars, 8);
+        TransBytes (out GUID, vBytes, NetDataType.Chars, 40);
+    }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB431_tagSCTurnFightRet.cs.meta b/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB431_tagSCTurnFightRet.cs.meta
new file mode 100644
index 0000000..926521b
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB431_tagSCTurnFightRet.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9b2fa2d798559934896c3f09781aa94b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/System/Settlement/BattleSettlementManager.cs b/Main/System/Settlement/BattleSettlementManager.cs
index 6f29276..812d3e1 100644
--- a/Main/System/Settlement/BattleSettlementManager.cs
+++ b/Main/System/Settlement/BattleSettlementManager.cs
@@ -1,8 +1,11 @@
 锘�
 
+using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Text;
 using LitJson;
+using UnityEngine;
 
 public partial class BattleSettlementManager : GameSystemManager<BattleSettlementManager>
 {
@@ -143,5 +146,87 @@
         }
         return battleSettlementDic[battleName];
     }
+
+    public void UpdateSettlementData(HB431_tagSCTurnFightRet netData)
+    {
+        var guid = UIHelper.ServerStringTrim(netData.GUID);
+        var date = UIHelper.ServerStringTrim(netData.PathDate);
+        RequestTurnFightData(guid, date, (int)netData.MapID);
+
+    }
+    public void RequestTurnFightData(string guid, string date, int mapID)
+    {
+        //mobile.secondworld.net.cn:53080\S9006\20251202\3042602\5b11338f-cf2c-11f0-a0a0-000c29b22418.tfr
+        var serverID = UIHelper.GetServerIDByAccount(PlayerDatas.Instance.baseData.AccID);
+        var url = "http://mobile.secondworld.net.cn:53080";
+        string assetVersionUrl = string.Empty;
+        
+        if (string.IsNullOrEmpty(date))
+        {
+            //鍏叡鎴樻姤  璺緞锛� C:\TurnFightReport\S鏈嶅姟鍣ㄧ紪鍙穃鍔熻兘鍦板浘ID\鎴樻姤GUID
+            assetVersionUrl = $"{url}/S{serverID}/{mapID}//{guid}.tfr";
+        }
+        else
+        {
+            //涓汉鎴樻姤  璺緞锛� C:\TurnFightReport\S鏈嶅姟鍣ㄧ紪鍙穃鏃ユ湡\鐜╁ID\鎴樻姤GUID
+            assetVersionUrl = $"{url}/S{serverID}/{date}/{PlayerDatas.Instance.baseData.PlayerID}/{guid}.tfr";
+        }
+
+        HttpRequest.Instance.UnityWebRequestTurnFightGet(assetVersionUrl, guid, 3, OnGetTurnFightData);
+    }
+
+    void OnGetTurnFightData(bool _ok, string guid, byte[] _result)
+    {
+        if (_ok)
+        {
+            ReadTurnFightInfo(_result);
+        }
+    }
+
+    GameNetEncode encoder = new GameNetEncode();
+    //鍗曠嫭
+    private void ReadTurnFightInfo(byte[] vBytes)
+    {
+        try
+        {
+            byte[] vPackBytes = vBytes;
+            GameNetPackBasic vNetpack;
+            byte[] vCmdBytes = new byte[2];
+            ServerType socketType = ServerType.B430;
+
+
+            // vPackBytes = encoder.BaseXorSub(vPackBytes);
+            Array.Copy(vPackBytes, 0, vCmdBytes, 0, 2);
+            var cmd = (ushort)((ushort)(vCmdBytes[0] << 8) + vCmdBytes[1]);
+            bool isRegist = false;  // 鏈敞鍐屽皝鍖呭鐞�
+
+            // 澶勭悊涓诲伐绋嬬殑灏佸寘
+            if (PackageRegedit.Contain(cmd))
+            {
+                vNetpack = PackageRegedit.TransPack(socketType, cmd, vPackBytes);
+                if (vNetpack != null)
+                {
+                    GameNetSystem.Instance.PushPackage(vNetpack, socketType);
+                    isRegist = true;
+                }
+            }
+
+            // 鏈敞鍐屽皝鍖呭鐞�
+            if (!isRegist)
+            {
+#if UNITY_EDITOR
+                PackageRegedit.TransPack(socketType, cmd, vPackBytes);
+#endif
+            }
+        }
+        catch (Exception ex)
+        {
+            Debug.LogErrorFormat("ReadTurnFightInfo 鍒嗘瀽鎴樻姤寮傚父锛歿0}", ex);
+        }
+
+    }
+
+
+
 }
 

--
Gitblit v1.8.0