From bf9d063af5655f93db17578cfe52d8abbb60c596 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 03 十二月 2025 17:42:40 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/Settlement/BattleSettlementManager.cs | 135 +++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 129 insertions(+), 6 deletions(-)
diff --git a/Main/System/Settlement/BattleSettlementManager.cs b/Main/System/Settlement/BattleSettlementManager.cs
index 6f29276..169607e 100644
--- a/Main/System/Settlement/BattleSettlementManager.cs
+++ b/Main/System/Settlement/BattleSettlementManager.cs
@@ -1,13 +1,18 @@
锘�
+using System;
using System.Collections.Generic;
using System.Linq;
+using System.Text;
using LitJson;
+using UnityEngine;
public partial class BattleSettlementManager : GameSystemManager<BattleSettlementManager>
{
//缁撶畻鍚庨渶娓呴櫎 <battleName,JsonData>
Dictionary<string, JsonData> battleSettlementDic = new Dictionary<string, JsonData>();
+ Dictionary<string, JsonData> battleAwardDic = new Dictionary<string, JsonData>(); //B431 鍙﹀閫氭姤濂栧姳
+
// public string notifyGuid = string.Empty;
@@ -28,6 +33,7 @@
public void OnBeforePlayerDataInitialize()
{
battleSettlementDic.Clear();
+ battleAwardDic.Clear();
}
public void AddPop(string battleName, int result)
@@ -35,13 +41,13 @@
bool isWin = result == 1;
switch (battleName)
{
- case "ArenaBattleField":
+ case BattleConst.ArenaBattleField:
PopupWindowsProcessor.Instance.Add(isWin ? "ArenaBattleVictoryWin" : "ArenaBattleFailWin", false);
break;
- case "BoneBattleField":
+ case BattleConst.BoneBattleField:
PopupWindowsProcessor.Instance.Add(isWin ? "BoneBattleVictoryWin" : "BoneBattleFailWin", false);
break;
- case "TianziBillboradBattleField":
+ case BattleConst.TianziBillboradBattleField:
PopupWindowsProcessor.Instance.Add("TianziBillboradVictoryWin", false);
break;
default:
@@ -55,7 +61,7 @@
bool isWin = result == 1;
switch (battleName)
{
- case "ArenaBattleField":
+ case BattleConst.ArenaBattleField:
if (isWin)
{
UIManager.Instance.OpenWindow<ArenaBattleVictoryWin>();
@@ -65,7 +71,7 @@
UIManager.Instance.OpenWindow<ArenaBattleFailWin>();
}
break;
- case "BoneBattleField":
+ case BattleConst.BoneBattleField:
if (isWin)
{
UIManager.Instance.OpenWindow<BoneBattleVictoryWin>();
@@ -75,7 +81,7 @@
UIManager.Instance.OpenWindow<BoneBattleFailWin>();
}
break;
- case "TianziBillboradBattleField":
+ case BattleConst.TianziBillboradBattleField:
TianziBillboradManager.Instance.isSweepVictory = false;
UIManager.Instance.OpenWindow<TianziBillboradVictoryWin>();
break;
@@ -107,6 +113,15 @@
return;
var battleName = battle.ToString();
battleSettlementDic[battleName] = _data;
+ if (battleAwardDic.ContainsKey(battleName))
+ {
+ //鍚堝苟鎴樻姤鍜岀粨绠楁暟鎹�
+ JsonData extendData = battleAwardDic[battleName];
+ foreach (var key in extendData.Keys)
+ {
+ _data[key] = extendData[key];
+ }
+ }
string activeBattleName = BattleManager.Instance.GetActiveBattleName();
@@ -129,6 +144,7 @@
public void WinShowOver(string battleName)
{
battleSettlementDic.Remove(battleName);
+ battleAwardDic.Remove(battleName);
var battle = BattleManager.Instance.GetActiveBattleFieldByName(battleName);
if (battle != null)
@@ -143,5 +159,112 @@
}
return battleSettlementDic[battleName];
}
+
+ public JsonData GetBattleSettlementByMapID(int mapID)
+ {
+ if (BattleConst.mapIDToBattleNameDic.ContainsKey(mapID))
+ {
+ return GetBattleSettlement(BattleConst.mapIDToBattleNameDic[mapID]);
+ }
+ return null;
+ }
+
+ public void UpdateSettlementData(HB431_tagSCTurnFightRet netData)
+ {
+ // 鍏堣幏寰楁垬鏂楃粨鏋滐紝濡傛灉闇�瑕佸睍绀烘垬鏂楋紝鍒欒姹傛垬鎶� 锛堝鏈変簺璺宠繃鎴樻枟琛ㄧ幇鐩存帴缁撶畻锛�
+ bool needBattleData = true;
+ var guid = UIHelper.ServerStringTrim(netData.GUID);
+ var mapID = (int)netData.MapID;
+ JsonData extendData2 = JsonMapper.ToObject(netData.AwardMsg);
+
+ battleAwardDic[BattleConst.mapIDToBattleNameDic[mapID]] = extendData2;
+
+ if (needBattleData)
+ {
+ Debug.Log("鎴樻枟鏃跺簭 鏀跺埌B431 骞惰姹備笅杞芥垬鎶�" + Time.time);
+ var date = UIHelper.ServerStringTrim(netData.PathDate);
+ RequestTurnFightData(guid, date, mapID);
+ }
+ else
+ {
+ JsonData extendData1 = JsonMapper.ToObject(netData.BatStatMsg);
+
+ JsonData turnFightStateData = new JsonData();
+ foreach (var key in extendData1.Keys)
+ {
+ turnFightStateData[key] = extendData1[key];
+ }
+ foreach (var key in extendData2.Keys)
+ {
+ turnFightStateData[key] = extendData2[key];
+ }
+
+ EventBroadcast.Instance.Broadcast<string, JsonData>(EventName.BATTLE_END, guid, turnFightStateData);
+ }
+
+ }
+ 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 = ServerListCenter.Instance.GetServerUrl(serverID);
+ 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\鍔熻兘鍦板浘ID\鎴樻姤GUID
+ assetVersionUrl = $"{url}/S{serverID}/{date}/{PlayerDatas.Instance.baseData.PlayerID}/{mapID}/{guid}.tfr";
+ }
+
+ HttpRequest.Instance.UnityWebRequestTurnFightGet(assetVersionUrl, guid, 3, OnGetTurnFightData);
+ }
+
+ void OnGetTurnFightData(bool _ok, string guid, byte[] _result)
+ {
+ if (_ok)
+ {
+ ReadTurnFightInfo(_result);
+ }
+ }
+
+ //鎴樻姤瀛樺偍鐨勬槸B430灏佸寘锛屾墍浠ラ渶瑕佽浆鍙態430灏佸寘
+ private void ReadTurnFightInfo(byte[] vBytes)
+ {
+ try
+ {
+ byte[] vPackBytes = vBytes;
+ GameNetPackBasic vNetpack;
+ byte[] vCmdBytes = new byte[2];
+ ServerType socketType = ServerType.B430;
+
+ Array.Copy(vPackBytes, 0, vCmdBytes, 0, 2);
+ var cmd = (ushort)((ushort)(vCmdBytes[0] << 8) + vCmdBytes[1]);
+
+ // 澶勭悊涓诲伐绋嬬殑灏佸寘
+ if (PackageRegedit.Contain(cmd))
+ {
+ vNetpack = PackageRegedit.TransPack(socketType, cmd, vPackBytes);
+ if (vNetpack != null)
+ {
+ GameNetSystem.Instance.PushPackage(vNetpack, socketType);
+ }
+ }
+
+ }
+ catch (Exception ex)
+ {
+ Debug.LogErrorFormat("ReadTurnFightInfo 鍒嗘瀽鎴樻姤寮傚父锛歿0}", ex);
+ }
+
+ }
+
+
+
}
--
Gitblit v1.8.0