yyl
2025-12-02 75333b0174316e253d140f77bf5b79f00ced8ff0
Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
8个文件已修改
20个文件已添加
659 ■■■■■ 已修改文件
Main/Core/GameEngine/Launch/RequestPermissionStart.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ClientPack/CA6_Family/CA613_tagCSFamilyTaofaOP.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ClientPack/CA6_Family/CA613_tagCSFamilyTaofaOP.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA503_tagSCFamilyTaofaInfo.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA503_tagSCFamilyTaofaInfo.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA504_tagSCFamilyTaofaAtkRet.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA504_tagSCFamilyTaofaAtkRet.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ServerPack/HA5_Family/HA503_tagSCFamilyTaofaInfo.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ServerPack/HA5_Family/HA503_tagSCFamilyTaofaInfo.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ServerPack/HA5_Family/HA504_tagSCFamilyTaofaAtkRet.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ServerPack/HA5_Family/HA504_tagSCFamilyTaofaAtkRet.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Main.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/SDK/SDKUtils.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildBossManager.cs 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildBossManager.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildBossOtherPlayer.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildBossOtherPlayer.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildBossOtherPlayerAttack.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildBossOtherPlayerAttack.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildBossWin.cs 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildBossWin.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildChangeNameWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildEmblemModel.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildFuncCell.cs 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildFuncCell.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Guild/GuildManager.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/InternalAffairs/AffairFuncCell.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/PlayerProfile/RenameWin.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/GameEngine/Launch/RequestPermissionStart.cs
@@ -13,7 +13,10 @@
        else
        {
            //先弹隐私政策,同意之后才可以申请权限 继续游戏
            UIManager.Instance.OpenWindow<RequestSecretWin>();
            // UIManager.Instance.OpenWindow<RequestSecretWin>();
            //改成向SDK请求隐私权限
            SDKUtils.Instance.RequestSecretRule();
        }
    }
Main/Core/NetworkPackage/ClientPack/CA6_Family/CA613_tagCSFamilyTaofaOP.cs
New file
@@ -0,0 +1,18 @@
using UnityEngine;
using System.Collections;
// A6 13 公会讨伐 #tagCSFamilyTaofaOP
public class CA613_tagCSFamilyTaofaOP : GameNetPackBasic {
    public byte OpType;    // 操作:0-斩杀攻击;1-布阵
    public CA613_tagCSFamilyTaofaOP () {
        combineCmd = (ushort)0x03FE;
        _cmd = (ushort)0xA613;
    }
    public override void WriteToBytes () {
        WriteBytes (OpType, NetDataType.BYTE);
    }
}
Main/Core/NetworkPackage/ClientPack/CA6_Family/CA613_tagCSFamilyTaofaOP.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 61abee0820b4d664c85b60ff7e8c1e1d
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA503_tagSCFamilyTaofaInfo.cs
New file
@@ -0,0 +1,11 @@
using UnityEngine;
using System.Collections;
// A5 03 公会讨伐信息 #tagSCFamilyTaofaInfo
public class DTCA503_tagSCFamilyTaofaInfo : DtcBasic {
    public override void Done(GameNetPackBasic vNetPack) {
        base.Done(vNetPack);
        HA503_tagSCFamilyTaofaInfo vNetData = vNetPack as HA503_tagSCFamilyTaofaInfo;
    }
}
Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA503_tagSCFamilyTaofaInfo.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 5bb47775b808e4348b8fdf6be4aa3a3d
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA504_tagSCFamilyTaofaAtkRet.cs
New file
@@ -0,0 +1,11 @@
using UnityEngine;
using System.Collections;
// A5 04 公会讨伐攻击结果 #tagSCFamilyTaofaAtkRet
public class DTCA504_tagSCFamilyTaofaAtkRet : DtcBasic {
    public override void Done(GameNetPackBasic vNetPack) {
        base.Done(vNetPack);
        HA504_tagSCFamilyTaofaAtkRet vNetData = vNetPack as HA504_tagSCFamilyTaofaAtkRet;
    }
}
Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA504_tagSCFamilyTaofaAtkRet.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 8deea2584cee4ed47bb08e6546bb66d5
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Main/Core/NetworkPackage/ServerPack/HA5_Family/HA503_tagSCFamilyTaofaInfo.cs
New file
@@ -0,0 +1,33 @@
using UnityEngine;
using System.Collections;
// A5 03 公会讨伐信息 #tagSCFamilyTaofaInfo
public class HA503_tagSCFamilyTaofaInfo : GameNetPackBasic {
    public byte BuZhenState;    // 是否已布阵
    public ushort AtkCount;    // 已斩杀次数,用于计算剩余次数=免费次数+道具增加次数-已斩杀次数
    public ushort ItemAddCount;    // 道具增加斩杀次数
    public ushort Anger;    // 当前怒气值
    public ushort BoxUnGetCount;    // 当前未领取的宝箱数,即可领取的
    public uint BoxHurt;    // 宝箱奖励计算累计伤害,求余亿部分;个人今日累计伤害,换公会不会重置
    public uint BoxHurtEx;    // 宝箱奖励计算累计伤害,整除亿部分
    public uint BoxHurtHis;    // 宝箱奖励计算累计历史最高伤害,求余亿部分
    public uint BoxHurtHisEx;    // 宝箱奖励计算累计历史最高伤害,整除亿部分
    public HA503_tagSCFamilyTaofaInfo () {
        _cmd = (ushort)0xA503;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out BuZhenState, vBytes, NetDataType.BYTE);
        TransBytes (out AtkCount, vBytes, NetDataType.WORD);
        TransBytes (out ItemAddCount, vBytes, NetDataType.WORD);
        TransBytes (out Anger, vBytes, NetDataType.WORD);
        TransBytes (out BoxUnGetCount, vBytes, NetDataType.WORD);
        TransBytes (out BoxHurt, vBytes, NetDataType.DWORD);
        TransBytes (out BoxHurtEx, vBytes, NetDataType.DWORD);
        TransBytes (out BoxHurtHis, vBytes, NetDataType.DWORD);
        TransBytes (out BoxHurtHisEx, vBytes, NetDataType.DWORD);
    }
}
Main/Core/NetworkPackage/ServerPack/HA5_Family/HA503_tagSCFamilyTaofaInfo.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: cded2a810ac2f844fa72b3439fbff27e
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Main/Core/NetworkPackage/ServerPack/HA5_Family/HA504_tagSCFamilyTaofaAtkRet.cs
New file
@@ -0,0 +1,47 @@
using UnityEngine;
using System.Collections;
// A5 04 公会讨伐攻击结果 #tagSCFamilyTaofaAtkRet
public class HA504_tagSCFamilyTaofaAtkRet : GameNetPackBasic {
    public byte AtkType;    // 攻击类型:0-常规;1-怒气攻击
    public byte HurtCount;
    public  tagSCFamilyTaofaAtkHurt[] HurtList;    // 伤害次数列表,如怒气攻击有多次伤害
    public byte ItemCount;
    public  tagSCFamilyTaofaAtkItem[] ItemList;    // 奖励物品列表
    public HA504_tagSCFamilyTaofaAtkRet () {
        _cmd = (ushort)0xA504;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out AtkType, vBytes, NetDataType.BYTE);
        TransBytes (out HurtCount, vBytes, NetDataType.BYTE);
        HurtList = new tagSCFamilyTaofaAtkHurt[HurtCount];
        for (int i = 0; i < HurtCount; i ++) {
            HurtList[i] = new tagSCFamilyTaofaAtkHurt();
            TransBytes (out HurtList[i].IsSuper, vBytes, NetDataType.BYTE);
            TransBytes (out HurtList[i].HurtValue, vBytes, NetDataType.DWORD);
            TransBytes (out HurtList[i].HurtValueEx, vBytes, NetDataType.DWORD);
        }
        TransBytes (out ItemCount, vBytes, NetDataType.BYTE);
        ItemList = new tagSCFamilyTaofaAtkItem[ItemCount];
        for (int i = 0; i < ItemCount; i ++) {
            ItemList[i] = new tagSCFamilyTaofaAtkItem();
            TransBytes (out ItemList[i].ItemID, vBytes, NetDataType.DWORD);
            TransBytes (out ItemList[i].Count, vBytes, NetDataType.DWORD);
        }
    }
    public class tagSCFamilyTaofaAtkHurt {
        public byte IsSuper;        // 是否暴击
        public uint HurtValue;        // 本次伤害,求余亿部分
        public uint HurtValueEx;        // 本次伤害,整除亿部分
    }
    public class tagSCFamilyTaofaAtkItem {
        public uint ItemID;
        public uint Count;
    }
}
Main/Core/NetworkPackage/ServerPack/HA5_Family/HA504_tagSCFamilyTaofaAtkRet.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: de221c7f129422242b0ce031344e083b
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Main/Main.cs
@@ -92,6 +92,7 @@
        managers.Add(PhantasmPavilionManager.Instance);
        managers.Add(AttributeManager.Instance);
        managers.Add(FuncNPCManager.Instance);
        managers.Add(GuildBossManager.Instance);
        foreach (var manager in managers)
        {
Main/SDK/SDKUtils.cs
@@ -126,6 +126,7 @@
    private JsonData m_Json = new JsonData();
    public void Init()
    {
        ynmbxxjUtil.Instance.Init();    // sdk临时用,后续新做SDK后删除
@@ -345,6 +346,15 @@
    }
    public void RequestSecretRule()
    {
        m_Json.Clear();
        m_Json["code"] = CodeU2A.RequestSecretRule;
        SendMessageToSDK(m_Json);
    }
    //跳转应用商店
    public void GoToAppStore(string url, string marketPkg = "")
    {
@@ -391,7 +401,7 @@
#if !UNITY_EDITOR
#if UNITY_ANDROID
        using (AndroidJavaClass H2engineSDK = new AndroidJavaClass("com.secondworld.sdk.UnityMsgHandler"))
        using (AndroidJavaClass H2engineSDK = new AndroidJavaClass("com.wgyx.sdk.UnityMsgHandler"))
        {
            H2engineSDK.CallStatic("onUnityMessage", json.ToJson());
        }
@@ -506,6 +516,11 @@
                    var permission = (string)_json["permission"];
                    onPermissionCallBack?.Invoke(permission, state);
                    onPermissionCallBack = null;
                    break;
                }
            case CodeA2U.SecretRuleOK:
                {
                    IsAgreeSecret = true;
                    break;
                }
            case CodeA2U.FreePlatformInitOk:
@@ -656,6 +671,11 @@
        */
        public const int PermissionCallBack = 8;
        /**
         * 同意隐私协议
         */
        public const int SecretRuleOK = 9;
        #endregion
        #region 自由sdk_code
@@ -735,6 +755,7 @@
        // 启动时申请权限,申请规则sdk决定
        public const int RequestPermissionStart = 14;
        public const int RequestSecretRule = 15;  // 向SDK请求隐私协议
        /**
         * 自由sdk相关
Main/System/Guild/GuildBossManager.cs
New file
@@ -0,0 +1,96 @@
using LitJson;
public class GuildBossManager : GameSystemManager<GuildBossManager>
{
    //配置
    public int initSuperHitRate;
    public int[] bzAddAttrs;
    public int bzMaxLevel;
    public int freeAtkCount;
    public int[][] atkItemList;
    public int maxAngerValue;
    public int[] bxCumulativeDamageList;
    public int bxDailyMax;  //个人每日产出上限
    public int bxDailyAwardMax; //个人每日领取奖励上限
    void ParseConfig()
    {
        // 数值1:初始暴击率万分率,功能独立的暴击率,与角色暴击无关
        // 数值3:布阵最大层级,暂固定每人1次,1次1层
        var config = FuncConfigConfig.Get("FamilyTaofaBuzhen");
        initSuperHitRate = int.Parse(config.Numerical1);
        bzAddAttrs = ConfigParse.GetMultipleStr<int>(config.Numerical2);
        bzMaxLevel = int.Parse(config.Numerical3);
        // 数值1:每日免费斩杀次数
        // 数值2:每次普通斩杀获得个人奖励列表 [[物品ID,个数], ...]
        // 数值4:常规斩杀增加怒气|暴击斩杀增加怒气|满怒气值
        config = FuncConfigConfig.Get("FamilyTaofaAtk");
        freeAtkCount = int.Parse(config.Numerical1);
        atkItemList = JsonMapper.ToObject<int[][]>(config.Numerical2);
        maxAngerValue = int.Parse(config.Numerical4.Split('|')[2]);
        // 数值1:产出宝箱的累计伤害列表 [宝箱1所需累计伤害,  ...],最后一档伤害可以循环产出,直到当日的贡献宝箱上限
        // 数值2:每日个人贡献宝箱数上限,最后一档可循环,上限控制
        // 数值3:每日个人领取宝箱奖励个数上限
        config = FuncConfigConfig.Get("FamilyTaofaBox");
        bxCumulativeDamageList = JsonMapper.ToObject<int[]>(config.Numerical1);
        bxDailyMax = int.Parse(config.Numerical2);
        bxDailyAwardMax = int.Parse(config.Numerical3);
    }
    public override void Init()
    {
        ParseConfig();
    }
    public override void Release()
    {
    }
    //// 操作:0-斩杀攻击;1-布阵
    public void TaofaBoss(int opType)
    {
        var pack = new CA613_tagCSFamilyTaofaOP();
        pack.OpType = (byte)opType;
        GameNetSystem.Instance.SendInfo(pack);
    }
    // 【公会行为】
    // 增加行为类型18 - 公会讨伐相关数据
    // Value1    玩家ID 或  全局ID,当该值等于1时代表该条数据记录的是讨伐全局数据,以下其他值根据Value1代表不同意思
    //                   玩家                                     全局
    // Time      最后讨伐时间戳                     重置时间戳,前端可用于判断是否变更了不同的讨伐(变更后,前端可重置讨伐相关缓存数据,GM重置会变更)
    // Value2     玩家布阵时间戳                          布阵层级到期时间戳
    // Value3     到本公会后攻击次数                    当前有效布阵层级
    // Value4     到本公会后累计伤害,求余亿部分                  无
    // Value5     到本公会后累计伤害,整除亿部分                  无
    // Value6     到本公会后贡献宝箱数                                    无
    // UseData  到本公会后记录                                              无
    // 成员记录格式: Json格式  {"atkList":[[atkTime, 本次贡献箱子数, 本次总伤害, atkType], ...],   "info":{k:v, ...}}
    // atkList   -     讨伐记录列表,可用于表现成员头像攻击: atkTime  -  攻击时间戳,  atkType  -  攻击类型(0-普通攻击, 1-怒气攻击)
    // info     -     不一定有该key,仅退出的成员才有,用于更新退出成员相关基础信息,如名字、头像等,还在公会里的成员通过 // A5 20 玩家家族信息 #tagMCRoleFamilyInfo 取成员信息
    // "info":{"LV":106,"Job":1,"Name":"主公3016219","FacePic":0,"FightPower":1831995,"RealmLV":12,"ServerID":86,"TitleID":0,"Face":0},
    public HA513_tagMCFamilyActionInfo.tagMCFamilyAction GetGuildBossAction()
    {
        GuildManager.Instance.TryGetFamilyActions(GuildManager.GuildBossActionType, out var familyActions);
        if (familyActions == null)
        {
            return null;
        }
        foreach (var action in familyActions)
        {
            if (action.Value1 == 1)
            {
                return action;
            }
        }
        return null;
    }
}
Main/System/Guild/GuildBossManager.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7860a8beea299f0428d74f54c7a778e0
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Main/System/Guild/GuildBossOtherPlayer.cs
New file
@@ -0,0 +1,20 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
//公会讨伐-其他玩家
public class GuildBossOtherPlayer : MonoBehaviour
{
    [SerializeField] AvatarCell headCell;
    [SerializeField] Text nameText;
    [SerializeField] Text hurtValueText;
    [SerializeField] Image rankImg;
    public void Display()
    {
    }
}
Main/System/Guild/GuildBossOtherPlayer.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1e8d79c1877b2384fa7bcea01b8cc75c
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Main/System/Guild/GuildBossOtherPlayerAttack.cs
New file
@@ -0,0 +1,23 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
//公会讨伐-其他玩家 攻击表现
public class GuildBossOtherPlayerAttack : MonoBehaviour
{
    [SerializeField] Image angerAtkImg;
    [SerializeField] Text hurtValueText;
    [SerializeField] Text nameText;
    [SerializeField] UIEffectPlayer atkEffect;
    [SerializeField] Transform atkValueRect;
    [SerializeField] ScaleTween scaleTween;
    [SerializeField] UIAlphaTween uiAlphaTween;
    public void Display()
    {
        scaleTween.SetStartState();
        uiAlphaTween.SetStartState();
    }
}
Main/System/Guild/GuildBossOtherPlayerAttack.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: cfe4f237c3735af4a9bb2966d9d55364
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Main/System/Guild/GuildBossWin.cs
New file
@@ -0,0 +1,170 @@
using System.Collections;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 公会基础界面
/// </summary>
public class GuildBossWin : UIBase
{
    [SerializeField] Text endTimeText;
    [SerializeField] Text fightPowerText;
    [SerializeField] Transform rankRect;
    [SerializeField] Text rankText;
    [SerializeField] Text noRankText;
    [SerializeField] AvatarCell headCell;
    [SerializeField] Text nameText;
    [SerializeField] Text todayHurtText;
    [SerializeField] Image newHighestHurtImg;
    //布阵
    [SerializeField] Text bzAttrText;
    [SerializeField] UIEffectPlayer bzEffect1;
    [SerializeField] Text bzLayerText;
    [SerializeField] UIEffectPlayer bzEffect2;
    [SerializeField] Button bzBtn;
    [SerializeField] Text bzTimesText;  //布阵次数
    [SerializeField] Button bzRecordBtn;
    //怒气条
    [SerializeField] Image processLeft; //颜色从00FF0B 到 FFE400 到 E30400
    [SerializeField] Image processRight;
    [SerializeField] Button atkBtn;
    [SerializeField] Image angerAtk; //怒气攻击
    [SerializeField] Transform normalAtk; //普通攻击
    [SerializeField] UIEffectPlayer atkEffect;  //普通攻击特效 0次不显示
    [SerializeField] Text normalAtkCntText; //普通攻击次数
    [SerializeField] Text atkCDText; //攻击cd
    [SerializeField] Transform addTimesRect;
    [SerializeField] Image addTimesItemImg;
    [SerializeField] Text addTimesItemText;
    [SerializeField] ButtonEx closeBtn;
    [SerializeField] ButtonEx scoreBtn;
    [SerializeField] ButtonEx awardBtn;
    [SerializeField] Transform awardCntRect;
    [SerializeField] Text awardCntText;
    //攻击区
    [SerializeField] UIHeroController bossModel;
    [SerializeField] UIHeroController heroModel;
    [SerializeField] Transform attackArea1;
    [SerializeField] Transform attackArea2;
    [SerializeField] Transform attackArea3;
    [SerializeField] GuildBossOtherPlayer otherPlayer;  //创建多个用
    [SerializeField] GuildBossOtherPlayerAttack otherPlayerAttack;  //创建多个用
    int beforeLayerNum; //布阵层级 对比变化展示特效
    protected override void InitComponent()
    {
        closeBtn.AddListener(CloseWindow);
    }
    protected override void OnPreOpen()
    {
        GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
        PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefresh;
        GuildManager.Instance.FamilyActionInfoEvent += OnFamilyActionInfoEvent;
        Display();
    }
    protected override void OnPreClose()
    {
        GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
        PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefresh;
        GuildManager.Instance.FamilyActionInfoEvent -= OnFamilyActionInfoEvent;
    }
    void Display()
    {
        endTimeText.text = Language.Get("Arena14", TimeUtility.SecondsToHMS((int)(TimeUtility.GetTodayEndTime() - TimeUtility.ServerNow).TotalSeconds));
        fightPowerText.text = PlayerDatas.Instance.baseData.FightPower.ToString();
        var bossAction = GuildBossManager.Instance.GetGuildBossAction();
        ShowBzInfo(bossAction);
    }
    //战力变化
    void OnPlayerDataRefresh(PlayerDataType type)
    {
        if (type == PlayerDataType.FightPower)
            fightPowerText.text = PlayerDatas.Instance.baseData.FightPower.ToString();
    }
    void OnFamilyActionInfoEvent(int familyID, int actionType)
    {
        if (actionType == GuildManager.GuildBossActionType)
        {
            var bossAction = GuildBossManager.Instance.GetGuildBossAction();
            if (beforeLayerNum != bossAction.Value3)
            {
                bzEffect1.Play();
                bzEffect2.Play();
                ShowBzInfo(bossAction);
            }
        }
    }
    void ShowBzInfo(HA513_tagMCFamilyActionInfo.tagMCFamilyAction bossAction)
    {
        bzAttrText.text = GetAddAttrs(bossAction);
        bzLayerText.text = $"{bossAction.Value3}/{GuildBossManager.Instance.bzMaxLevel}";
    }
    //获取布阵属性
    string GetAddAttrs(HA513_tagMCFamilyActionInfo.tagMCFamilyAction action)
    {
        var layerNum = action.Value3;
        var superHitRate = GuildBossManager.Instance.initSuperHitRate + (int)layerNum * GuildBossManager.Instance.bzAddAttrs[0];
        var addHurtPer = (int)layerNum * GuildBossManager.Instance.bzAddAttrs[1];
        if (addHurtPer == 0)
        {
            return Language.Get("GuildBoss18_0", superHitRate / 100);
        }
        return Language.Get("GuildBoss18_0", superHitRate / 100) + Language.Get("L1112") + Language.Get("GuildBoss18_1", addHurtPer / 100);
    }
    void OnSecondEvent()
    {
        endTimeText.text = Language.Get("Arena14", TimeUtility.SecondsToHMS((int)(TimeUtility.GetTodayEndTime() - TimeUtility.ServerNow).TotalSeconds));
    }
    void ShowProcess(float value)
    {
        //颜色从00FF0B 到 FFE400 到 E30400
        processLeft.fillAmount = value;
        processRight.fillAmount = value;
        Color processColor = GetProcessColor(value);
        processLeft.color = processColor;
        processRight.color = processColor;
    }
    Color GetProcessColor(float value)
    {
        // 限制值在0-1范围内
        value = Mathf.Clamp01(value);
        if (value <= 0.5f)
        {
            float t = value / 0.5f;
            return Color.Lerp(new Color(0f, 1f, 0.043f), new Color(1f, 0.894f, 0f), t);
        }
        else
        {
            float t = (value - 0.5f) / 0.5f;
            return Color.Lerp(new Color(1f, 0.894f, 0f), new Color(0.89f, 0.016f, 0f), t);
        }
    }
}
Main/System/Guild/GuildBossWin.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6394d1989d76e214f9bcf558b8829625
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Main/System/Guild/GuildChangeNameWin.cs
@@ -45,7 +45,7 @@
    void ShowTime()
    {
        if (GuildManager.Instance.TryGetFamilyActions(0, out var familyActions))
        if (GuildManager.Instance.TryGetFamilyActions(GuildManager.CustomyActionType, out var familyActions))
        {
            var lastTime = familyActions.IsNullOrEmpty() ? 0 : familyActions[0].Value1;
            var cdTime = GuildManager.Instance.renameFairyNameCD * 3600 - (TimeUtility.AllSeconds - (int)lastTime);
Main/System/Guild/GuildEmblemModel.cs
@@ -13,7 +13,7 @@
public class GuildEmblemModel : GameSystemManager<GuildEmblemModel>
{
    public readonly int FamilyActionsType = 15;     // 公会记录徽章类型15
    private int m_NowChooseEmblemId;
@@ -273,7 +273,7 @@
    private bool TryGetfamilyAction(int emblemId, out HA513_tagMCFamilyActionInfo.tagMCFamilyAction familyAction)
    {
        familyAction = new HA513_tagMCFamilyActionInfo.tagMCFamilyAction();
        if (GuildManager.Instance.TryGetFamilyActions(FamilyActionsType, out var actions))
        if (GuildManager.Instance.TryGetFamilyActions(GuildManager.FamilyActionsType, out var actions))
        {
            for (int i = 0; i < actions.Length; i++)
            {
Main/System/Guild/GuildFuncCell.cs
New file
@@ -0,0 +1,51 @@
using UnityEngine;
using UnityEngine.UI;
public class GuildFuncCell : MonoBehaviour
{
    [SerializeField] Image lockImg;
    [SerializeField] ImageEx titleBG;
    [SerializeField] Text titleText;
    [SerializeField] Button funcBtn;
    public int funcID;
    void Start()
    {
        funcBtn.AddListener(OnClickFunc);
    }
    void OnEnable()
    {
        if (funcID != 0 &&FuncOpen.Instance.IsFuncOpen(funcID))
        {
            lockImg.SetActive(false);
            titleBG.gray = false;
            //DED4C8
            titleText.color = new Color32(222, 212, 200, 255);
        }
        else
        {
            lockImg.SetActive(true);
            titleBG.gray = true;
            titleText.color = UIHelper.GetUIColor(TextColType.Gray);
        }
    }
    void OnClickFunc()
    {
        if (!FuncOpen.Instance.IsFuncOpen(funcID, true))
        {
            return;
        }
        if (funcID == 43)
        {
            UIManager.Instance.OpenWindow<GuildBossWin>();
        }
    }
}
Main/System/Guild/GuildFuncCell.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ac5752463d62da54c9f44ee2a86efc30
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Main/System/Guild/GuildManager.cs
@@ -10,6 +10,12 @@
public class GuildManager : GameSystemManager<GuildManager>
{
    // 家族自定义记录类型
    public const int CustomyActionType = 0;     //通用
    public const int FamilyActionsType = 15;     // 公会记录徽章类型15
    public const int ZBGFamilyActionType = 16;  // 珍宝阁记录类型
    public const int GuildBossActionType = 18;  //讨伐
    // 申请的公会列表
    private List<int> m_FairyRequesteds = new List<int>();
    // 公会自定义记录附加数据,按类型存储
@@ -147,7 +153,7 @@
    public event Action UpdateZhenbaogeEvent;
    public bool isQueryZBGYet = false;
    public float lastZBGStartTime = 0; //过天刷新用
    public const int ZBGFamilyActionType = 16;
    //{id:数据} 砍价行为,value1为玩家ID,特殊约定为1时为家族的数据
    public Dictionary<int, HA513_tagMCFamilyActionInfo.tagMCFamilyAction> familyZBGActions = new Dictionary<int, HA513_tagMCFamilyActionInfo.tagMCFamilyAction>();
    public List<int> sortPlayerCut = new List<int>();
Main/System/InternalAffairs/AffairFuncCell.cs
@@ -43,15 +43,11 @@
        {
            UIManager.Instance.OpenWindow<GoldRushWorkerWin>();
        }
        if (funcID == 42)
        else if (funcID == 42)
        {
            UIManager.Instance.OpenWindow<PhantasmPavilionWin>();
        }
        // else if (funcID == 214)
        // {
        //     GoldRushManager.Instance.NotifyGoldRushEvent(0, 0, 2);
        // }
    }
}
Main/System/PlayerProfile/RenameWin.cs
@@ -25,16 +25,22 @@
            if (!isFirstRename && !UIHelper.CheckMoneyCount(manager.moneyType, manager.moneyNeed))
            {
                string title = Language.Get("Mail101");
                string info = Language.Get("PlayerProfile22");
                string info = Language.Get("PlayerProfile22", RichTextMsgReplaceConfig.GetRichReplace("MONEY", manager.moneyType));
                ConfirmCancel.ShowPopConfirm(title, info, (bool isOk) =>
                {
                    if (isOk)
                    {
                    }
                    else
                    {
                        CloseWindow();
                        if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Recharge, true))
                            return;
                        RechargeManager.Instance.selectTabIndex = 1;
                        if (UIManager.Instance.IsOpened<StoreBaseWin>())
                        {
                            UIManager.Instance.GetUI<StoreBaseWin>().ClickFuncBtn(1);
                        }
                        else
                        {
                            UIManager.Instance.OpenWindow<StoreBaseWin>(1);
                        }
                    }
                });
                return;