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