少年修仙传客户端代码仓库
client_linchunjie
2018-12-22 651de96b11240dc925be36c7bc07dd1db591a632
5302【前端】【1.4】仙盟宴会传功
4个文件已删除
10个文件已修改
1013 ■■■■ 已修改文件
Core/GameEngine/Common/Equation.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIFairyFeastModelWrap.cs 385 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIFairyFeastModelWrap.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/XLuaGenAutoRegister.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonFairyFeastHintWin.cs 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyFeastBehaviour.cs 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyFeastBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyFeastMemberCell.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyFeastModel.cs 307 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyFeastTransmitListWin.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyFeastTransmitShow.cs 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyFeastTransmitShowWin.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/ChatFrame.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Common/Equation.cs
@@ -309,7 +309,7 @@
                        return UnityEngine.Random.Range((float)_leftValue, (float)_rightValue);
                    }
                case OperatorType.Floor:
                    return (int)_leftValue;
                    return Math.Floor(_leftValue);
                case OperatorType.Ceil:
                    return Math.Ceiling((float)_leftValue);
                case OperatorType.RandomInt:
Lua/Gen/SnxxzUIFairyFeastModelWrap.cs
File was deleted
Lua/Gen/SnxxzUIFairyFeastModelWrap.cs.meta
File was deleted
Lua/Gen/XLuaGenAutoRegister.cs
@@ -348,9 +348,6 @@
            translator.DelayWrapLoader(typeof(Snxxz.UI.FairyBossModel), SnxxzUIFairyBossModelWrap.__Register);
        
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.FairyFeastModel), SnxxzUIFairyFeastModelWrap.__Register);
            translator.DelayWrapLoader(typeof(Snxxz.UI.FairyGrabBossModel), SnxxzUIFairyGrabBossModelWrap.__Register);
        
        
System/Dungeon/DungeonFairyFeastHintWin.cs
@@ -11,7 +11,7 @@
namespace Snxxz.UI
{
    [XLua.Hotfix]
    public class DungeonFairyFeastHintWin : Window
    {
        [SerializeField] Button m_FairyFeast;
@@ -23,14 +23,16 @@
        [SerializeField] FairyFeastRankBehaviour[] m_RankBehaviours;
        [SerializeField] FairyFeastRankBehaviour m_TopRank;
        [SerializeField] DungeonMultipleTaskWin.SelectEffect m_SelectEffect;
        [SerializeField] Button m_Transmit;
        [SerializeField] SmoothSlider m_TransmitSlider;
        [SerializeField] Text m_TransmitProgress;
        [SerializeField] Button m_OpenTransmit;
        [SerializeField] Button m_GotoFeast;
        DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        FairyFeastModel fairyFeastModel { get { return ModelCenter.Instance.GetModel<FairyFeastModel>(); } }
        FairyModel fairyModel { get { return ModelCenter.Instance.GetModel<FairyModel>(); } }
        int currentSelect = 0;
        bool nearNpc = false;
        #region Built-in
        protected override void BindController()
        {
@@ -46,17 +48,19 @@
            {
                Select(1);
            });
            m_Transmit.onClick.AddListener(Transmit);
            m_OpenTransmit.onClick.AddListener(OpenTransmit);
            m_GotoFeast.onClick.AddListener(OnGotoFeast);
        }
        protected override void OnPreOpen()
        {
            nearNpc = false;
            Select(0);
            m_TransmitSlider.ResetValue(0);
            model.updateMissionEvent += UpdateMissionEvent;
            fairyFeastModel.selectTransmit += SelectTransmit;
            fairyFeastModel.transmitStateUpdate += TransmitStateUpdate;
            SelectTransmit();
            GA_NpcCollect.OnArrive += OnArriveCollectNPC;
            GA_NpcCollect.OnLeave += OnLeaveCollectNpc;
            DisplayTransmit();
            DisplayGotoFeast();
        }
@@ -67,35 +71,14 @@
        protected override void OnPreClose()
        {
            model.updateMissionEvent -= UpdateMissionEvent;
            fairyFeastModel.selectTransmit -= SelectTransmit;
            fairyFeastModel.transmitStateUpdate -= TransmitStateUpdate;
            GA_NpcCollect.OnArrive -= OnArriveCollectNPC;
            GA_NpcCollect.OnLeave -= OnLeaveCollectNpc;
        }
        protected override void OnAfterClose()
        {
        }
        protected override void LateUpdate()
        {
            if (fairyFeastModel.transmiting)
            {
                if (!m_TransmitSlider.gameObject.activeSelf)
                {
                    m_TransmitSlider.gameObject.SetActive(true);
                }
                var surplusTime = (fairyFeastModel.transmitCompleteTime - DateTime.Now).TotalSeconds;
                var progress = Mathf.Clamp01(1 - (float)surplusTime / fairyFeastModel.transmitCostSeconds);
                m_TransmitSlider.value = progress;
                m_TransmitProgress.text = StringUtility.Contact((int)(progress * 100), "%");
            }
            else
            {
                if (m_TransmitSlider.gameObject.activeSelf)
                {
                    m_TransmitSlider.gameObject.SetActive(false);
                }
            }
        }
        #endregion
        private void Select(int _index)
@@ -129,6 +112,8 @@
            {
                DisplayRank();
            }
            DisplayTransmit();
            DisplayGotoFeast();
        }
        void DisplayRank()
@@ -163,20 +148,57 @@
            return x.rank.CompareTo(y.rank);
        }
        private void SelectTransmit()
        private void OnArriveCollectNPC(uint arg0, int _npcId)
        {
            m_Transmit.gameObject.SetActive(fairyFeastModel.selectPlayer != 0 && fairyFeastModel.allowTransmit
                && !fairyFeastModel.transmiting);
            if (_npcId == fairyModel.fairyFeastDeskNpc)
            {
                nearNpc = true;
                DisplayGotoFeast();
                DisplayTransmit();
            }
        }
        private void Transmit()
        private void OnLeaveCollectNpc(uint arg0, int _npcId)
        {
            fairyFeastModel.Transmit();
            if (_npcId == fairyModel.fairyFeastDeskNpc)
            {
                nearNpc = false;
                DisplayGotoFeast();
                DisplayTransmit();
            }
        }
        private void TransmitStateUpdate()
        private void DisplayTransmit()
        {
            SelectTransmit();
            var mission = model.mission;
            m_OpenTransmit.gameObject.SetActive(mission.hasSit == 0 && !nearNpc);
        }
        private void DisplayGotoFeast()
        {
            var mission = model.mission;
            m_GotoFeast.gameObject.SetActive(mission.hasCollect == 0 && !nearNpc);
        }
        private void OpenTransmit()
        {
            WindowCenter.Instance.Open<FairyFeastTransmitListWin>();
        }
        private void OnGotoFeast()
        {
            SnxxzGame.Instance.StartCoroutine(Co_HeroMoveToActor(fairyModel.fairyFeastDeskNpc));
        }
        IEnumerator Co_HeroMoveToActor(int _npcId)
        {
            var _hero = PlayerDatas.Instance.hero;
            while (_hero.SkillMgr.CurCastSkill != null &&
                _hero.SkillMgr.CurCastSkill.SkillCompelete == false)
            {
                yield return null;
            }
            MapTransferUtility.Instance.MoveToNPC(_npcId);
        }
    }
}
System/Dungeon/DungeonModel.cs
@@ -557,6 +557,7 @@
            inspireRemindEffective = false;
            inspireNoRemind = false;
            ModelCenter.Instance.GetModel<GatherSoulDungeonModel>().ResetDungeonMessage();
            ModelCenter.Instance.GetModel<FairyFeastModel>().ResetHelpMessage();
        }
        public void UpdateRecords(HA320_tagMCPlayerFBInfoData.tagMCFBInfo[] _serverInfos)
@@ -795,6 +796,7 @@
                    {
                        PlayerDatas.Instance.hero.ShowArrow(false);
                    }
                    ModelCenter.Instance.GetModel<FairyFeastModel>().OnReceiveHelpMessage(_mission);
                    if (GetDungeonHintId(mapId, lineId) != 0)
                    {
                        if (!WindowCenter.Instance.IsOpen<DungeonMissionHintWin>())
System/FairyAu/FairyFeastBehaviour.cs
File was deleted
System/FairyAu/FairyFeastBehaviour.cs.meta
File was deleted
System/FairyAu/FairyFeastMemberCell.cs
@@ -33,8 +33,22 @@
            m_PlayerName.text = fairyMember.Name;
            m_Level.text = fairyMember.LV.ToString();
            m_Duty.text = Language.Get(string.Format("L102{0}", fairyMember.FamilyLV + 1));
            m_State.text = fairyMember.Exattr2 == 0 ? Language.Get("L1025") : Language.Get("Offline");
            m_State.color = UIHelper.GetUIColor(fairyMember.Exattr2 == 0 ? TextColType.Green : TextColType.Gray);
            if (fairyMember.Exattr2 != 0)
            {
                m_State.text = Language.Get("Offline");
                m_State.color = UIHelper.GetUIColor(TextColType.White, true);
            }
            else if (!model.fairyFeastPlayers.Contains(fairyMember.PlayerID)
                && fairyMember.PlayerID != PlayerDatas.Instance.baseData.PlayerID)
            {
                m_State.text = Language.Get("FairyFeastFarFrom");
                m_State.color = UIHelper.GetUIColor(TextColType.Red, true);
            }
            else
            {
                m_State.text = Language.Get("L1025");
                m_State.color = UIHelper.GetUIColor(TextColType.Green, true);
            }
            var realmLevel = fairyMember.OfficialRank;
            var config = Config.Instance.Get<RealmConfig>(realmLevel);
            if (config != null)
System/FairyAu/FairyFeastModel.cs
@@ -8,264 +8,75 @@
    [XLua.LuaCallCSharp]
    public class FairyFeastModel : Model, IBeforePlayerDataInitialize
    {
        public uint selectPlayer { get; private set; }
        public bool allowTransmit { get; private set; }
        public bool nearNpc { get; private set; }
        public event Action selectTransmit;
        public event Action transmitStateUpdate;
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        FairyModel fairyModel { get { return ModelCenter.Instance.GetModel<FairyModel>(); } }
        RoleParticularModel roleParticularModel { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } }
        public List<uint> fairyFeastPlayers = new List<uint>();
        public event Action fairyFeastPlayerUpdate;
        public int transmitCostSeconds { get; private set; }
        string expFormula { get; set; }
        public int riseLevel { get; private set; }
        public int expFlyStage { get; private set; }
        public int expFlyCount { get; private set; }
        public ulong totalExp { get; private set; }
        public override void Init()
        {
            ParseConfig();
            GA_Player.s_OnSelected += OnSelected;
            GlobalTimeEvent.Instance.secondEvent += SecondEvent;
            StageManager.Instance.onStageLoadFinish += OnStageLoadFinish;
            dungeonModel.updateMissionEvent += UpdateMissionEvent;
            PrepareHandler.Instance.OnPrepareEndSuccess += OnPrepareEndSuccess;
            GA_NpcCollect.OnArrive += OnArriveNpc;
            GA_NpcCollect.OnLeave += OnLeaveNpc;
            roleParticularModel.viewPlayerUpdate += ViewPlayerUpdate;
        }
        public override void UnInit()
        {
            GA_Player.s_OnSelected -= OnSelected;
            GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
            StageManager.Instance.onStageLoadFinish -= OnStageLoadFinish;
            dungeonModel.updateMissionEvent -= UpdateMissionEvent;
            PrepareHandler.Instance.OnPrepareEndSuccess -= OnPrepareEndSuccess;
            GA_NpcCollect.OnArrive -= OnArriveNpc;
            GA_NpcCollect.OnLeave -= OnLeaveNpc;
            roleParticularModel.viewPlayerUpdate -= ViewPlayerUpdate;
        }
        public void OnBeforePlayerDataInitialize()
        {
            transmitCompleteTime = TimeUtility.ClientOriginalTime;
            if (transmitClock != null)
            {
                transmitClock.Stop();
                transmitClock = null;
            }
            fairyFeastPlayers.Clear();
            transmitPlayer = 0;
        }
        private void OnStageLoadFinish()
        {
            selectPlayer = 0;
            nearNpc = false;
            if (transmitClock != null)
            {
                transmitClock.Stop();
                transmitClock = null;
            }
        }
        private void SecondEvent()
        {
            if (selectPlayer != 0)
            {
                var actor = GAMgr.Instance.GetBySID(selectPlayer);
                bool update = false;
                if (actor == null || !(actor is GA_Player))
                {
                    selectPlayer = 0;
                    update = true;
                }
                else
                {
                    var player = actor as GA_Player;
                    var hero = PlayerDatas.Instance.hero;
                    if (SatisfyTransmitState())
                    {
                        var distance = MathUtility.CalDistance(player.Pos, hero.Pos);
                        if (allowTransmit != (distance <= transmitDistance))
                        {
                            allowTransmit = distance <= transmitDistance;
                            update = true;
                        }
                    }
                    else
                    {
                        if (allowTransmit)
                        {
                            allowTransmit = false;
                            update = true;
                        }
                    }
                }
                if (update && selectTransmit != null)
                {
                    selectTransmit();
                }
            }
        }
        private void OnArriveNpc(uint arg0, int _npcId)
        {
            if (_npcId == fairyModel.fairyFeastDeskNpc)
            {
                nearNpc = true;
                SecondEvent();
            }
        }
        private void OnLeaveNpc(uint arg0, int _npcId)
        {
            if (_npcId == fairyModel.fairyFeastDeskNpc)
            {
                nearNpc = false;
                SecondEvent();
            }
        }
        float transmitDistance = 2f;
        public int transmitCostSeconds { get; private set; }
        void ParseConfig()
        {
            var config = Config.Instance.Get<FuncConfigConfig>("FairyFeastTransmit");
            transmitCostSeconds = 15;
            expFlyCount = 3;
            expFlyStage = 3;
            if (config != null)
            {
                transmitDistance = float.Parse(config.Numerical1);
                transmitCostSeconds = int.Parse(config.Numerical2);
            }
            config = Config.Instance.Get<FuncConfigConfig>("FamilyPartySitAward");
            expFormula = config.Numerical1;
            riseLevel = int.Parse(config.Numerical2);
        }
        bool SatisfyTransmitState()
        public void OnReceiveHelpMessage(string _mission)
        {
            var hero = PlayerDatas.Instance.hero;
            if (hero == null || hero.IsCollect()
                || hero.IsCollect() || hero.IsDaZuo() || nearNpc)
            var json = LitJson.JsonMapper.ToObject(_mission);
            if (json != null && json.Keys.Contains("familyPartyPlayer"))
            {
                return false;
            }
            return true;
        }
        private void OnSelected(uint serverInstId, bool select)
        {
            var mapId = PlayerDatas.Instance.baseData.MapID;
            if (mapId != 31230)
            {
                return;
            }
            if (transmiting)
            {
                return;
            }
            var mission = dungeonModel.mission;
            if (mission.hasSit == 1)
            {
                return;
            }
            selectPlayer = 0;
            allowTransmit = false;
            if (select)
            {
                var actor = GAMgr.Instance.GetBySID(serverInstId);
                if (actor != null && actor is GA_Player)
                fairyFeastPlayers.Clear();
                var array = LitJson.JsonMapper.ToObject<uint[]>(json["familyPartyPlayer"].ToJson());
                if (array != null)
                {
                    var player = actor as GA_Player;
                    var hero = PlayerDatas.Instance.hero;
                    var distance = MathUtility.CalDistance(player.Pos, hero.Pos);
                    if (SatisfyTransmitState())
                    {
                        allowTransmit = distance <= transmitDistance;
                    }
                    selectPlayer = serverInstId;
                    fairyFeastPlayers.AddRange(array);
                }
            }
            if (selectTransmit != null)
            {
                selectTransmit();
            }
        }
        /// <summary>
        /// 仙盟宴会采集结束
        /// </summary>
        private void OnPrepareEndSuccess()
        {
            var mapId = PlayerDatas.Instance.baseData.MapID;
            if (mapId != 31230)
            {
                return;
            }
            var mission = dungeonModel.mission;
            if (mission.hasSit == 1)
            {
                return;
            }
            if (!WindowCenter.Instance.IsOpen<MainInterfaceWin>()
                || WindowCenter.Instance.ExitAnyFullScreenOrMaskWin())
            {
                return;
            }
            var list = GAMgr.Instance.GetTypeList(E_ActorClassType.Player);
            if (list != null)
            {
                var hero = PlayerDatas.Instance.hero;
                for (int i = 0; i < list.Count; i++)
                if (fairyFeastPlayerUpdate != null)
                {
                    var player = list[i] as GA_Player;
                    if (player != null)
                    {
                        var distance = MathUtility.CalDistance(player.Pos, hero.Pos);
                        if (distance < transmitDistance)
                        {
                            player.OnClick();
                            return;
                        }
                    }
                    fairyFeastPlayerUpdate();
                }
            }
        }
        private void UpdateMissionEvent()
        public void ResetHelpMessage()
        {
            var mapId = PlayerDatas.Instance.baseData.MapID;
            if (mapId != 31230)
            {
                return;
            }
            var mission = dungeonModel.mission;
            if (mission.hasSit == 1 && selectPlayer != 0)
            {
                selectPlayer = 0;
                if (selectTransmit != null)
                {
                    selectTransmit();
                }
            }
        }
        #region 服务端数据
        public DateTime transmitCompleteTime { get; private set; }
        public bool transmiting
        {
            get
            {
                return DateTime.Now < transmitCompleteTime;
            }
        }
        private Clock transmitClock = null;
        public void Transmit()
        {
            if (selectPlayer != 0)
            {
                CA508_tagCMDoFBAction pak = new CA508_tagCMDoFBAction();
                pak.ActionType = 0;
                pak.ActionInfo = selectPlayer;
                GameNetSystem.Instance.SendInfo(pak);
            }
            fairyFeastPlayers.Clear();
            transmitPlayer = 0;
        }
        public void UpdateTransmitState(H0411_tagPlayerSit package)
@@ -277,39 +88,34 @@
            }
            if (package.Type == 0)
            {
                transmitCompleteTime = DateTime.Now.AddTicks(transmitCostSeconds * TimeSpan.TicksPerSecond);
                transmitClock = Clock.Create(transmitCostSeconds, TransmitComplete);
            }
            else
            {
                if (transmitClock != null)
                totalExp = 0;
                var level = PlayerDatas.Instance.baseData.LV;
                var worldLevel = PlayerDatas.Instance.worldLv;
                for (int i = 0; i < riseLevel; i++)
                {
                    transmitClock.Stop();
                    transmitClock = null;
                    var config = Config.Instance.Get<PlayerLVConfig>(level + 1);
                    totalExp += (ulong)config.EXP1 * Constants.ExpPointValue + (ulong)config.EXP2;
                }
                transmitCompleteTime = TimeUtility.ClientOriginalTime;
            }
            if (transmitStateUpdate != null)
            {
                transmitStateUpdate();
                var levelConfig = Config.Instance.Get<PlayerLVConfig>(level + riseLevel);
                Equation.Instance.Clear();
                Equation.Instance.AddKeyValue("worldlv", worldLevel);
                Equation.Instance.AddKeyValue("reLV", level + riseLevel);
                Equation.Instance.AddKeyValue("reExp", levelConfig.ReExp);
                totalExp += Equation.Instance.Eval<ulong>(expFormula);
                FairyFeastTransmitShow.Instance.Open();
            }
        }
        void TransmitComplete()
        public void TransmitComplete()
        {
            transmitClock = null;
            CA508_tagCMDoFBAction pak = new CA508_tagCMDoFBAction();
            pak.ActionType = 1;
            pak.ActionInfo = 0;
            GameNetSystem.Instance.SendInfo(pak);
            if (transmitStateUpdate != null)
            {
                transmitStateUpdate();
            }
        }
        public List<PlayerFairyData.FairyMember> displayFairyMembers = new List<PlayerFairyData.FairyMember>();
        public int transmitPlayer = 0;
        public uint transmitPlayer = 0;
        public void Transmit(PlayerFairyData.FairyMember fairyMember)
        {
@@ -317,18 +123,35 @@
            {
                return;
            }
            transmitPlayer = (int)fairyMember.PlayerID;
            //if (fairyMember.Exattr2 != 0)
            //{
            //    SysNotifyMgr.Instance.ShowTip("FairyFeastPlayerOffline");
            //    return;
            //}
            //if (!fairyFeastPlayers.Contains(fairyMember.PlayerID))
            //{
            //    SysNotifyMgr.Instance.ShowTip("FairyFeastPlayerFarfrom");
            //    return;
            //}
            transmitPlayer = fairyMember.PlayerID;
            roleParticularModel.ViewFairyFeastTransmit((int)fairyMember.PlayerID);
            //CA508_tagCMDoFBAction pak = new CA508_tagCMDoFBAction();
            //pak.ActionType = 0;
            //pak.ActionInfo = transmitPlayer;
            //GameNetSystem.Instance.SendInfo(pak);
        }
        private void ViewPlayerUpdate(int type, RoleParticularModel.ViewPlayerData data)
        {
            if (type == 3)
            {
                FairyFeastTransmitShow.Instance.Open();
                UpdateTransmitState(new H0411_tagPlayerSit()
                {
                    PlayerID = PlayerDatas.Instance.baseData.PlayerID,
                    Type = 0,
                });
            }
        }
        #endregion
    }
}
System/FairyAu/FairyFeastTransmitListWin.cs
@@ -47,6 +47,7 @@
            GameNetSystem.Instance.SendInfo(pak);
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += DisplayFairyMembers;
            fairyFeastModel.fairyFeastPlayerUpdate += FairyFeastPlayerUpdate;
            DisplayFairyMembers();
        }
@@ -57,6 +58,7 @@
        protected override void OnPreClose()
        {
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= DisplayFairyMembers;
            fairyFeastModel.fairyFeastPlayerUpdate -= FairyFeastPlayerUpdate;
            fairyFeastModel.displayFairyMembers.Clear();
        }
@@ -78,6 +80,11 @@
            fairyMemberCell.Display(cell.index);
        }
        private void FairyFeastPlayerUpdate()
        {
            m_ScrollerControl.m_Scorller.RefreshActiveCellViews();
        }
        void DisplayFairyMembers()
        {
            fairyFeastModel.displayFairyMembers.Clear();
System/FairyAu/FairyFeastTransmitShow.cs
@@ -60,15 +60,12 @@
        {
            get
            {
                return timer / TRANSMIT_LENGTH;
                return timer / model.transmitCostSeconds;
            }
        }
        float timer = 0f;
        int stage = 0;
        const float TRANSMIT_LENGTH = 15f;
        const int TRANSMIT_TOTAL_STAGE = 4;
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        RoleParticularModel roleParticularModel { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } }
@@ -142,12 +139,12 @@
            if (IsOpen)
            {
                timer += Time.deltaTime;
                if (timer >= TRANSMIT_LENGTH)
                if (timer >= model.transmitCostSeconds)
                {
                    Stop();
                    return;
                }
                if (timer >= stage * TRANSMIT_LENGTH / TRANSMIT_TOTAL_STAGE)
                if (timer >= stage * model.transmitCostSeconds / (model.expFlyStage + 1))
                {
                    StepStage();
                    stage++;
@@ -157,13 +154,17 @@
        void StepStage()
        {
            if (stage != 0)
            if (stage > 0 && stage <= model.expFlyStage)
            {
                if (popUpExpEvent != null)
                {
                    popUpExpEvent(12345);
                    popUpExpEvent(12345);
                    popUpExpEvent(12345);
                    var exp = model.totalExp
                        / (ulong)model.expFlyStage
                        / (ulong)model.expFlyCount;
                    for (int i = 0; i < model.expFlyCount; i++)
                    {
                        popUpExpEvent(exp);
                    }
                }
            }
        }
@@ -234,7 +235,7 @@
            m_Hero.Show(data, m_ShowPoint2);
            m_Hero.SitDown();
            var viewPlayerData = roleParticularModel.GetViewPlayerData(model.transmitPlayer);
            var viewPlayerData = roleParticularModel.GetViewPlayerData((int)model.transmitPlayer);
            if (viewPlayerData != null)
            {
                clothesId = 0;
@@ -281,7 +282,7 @@
        public void Stop()
        {
            IsOpen = false;
            model.TransmitComplete();
            OpenUI();
            WindowCenter.Instance.CloseImmediately<FairyFeastTransmitShowWin>();
            CameraController.Instance.CameraObject.gameObject.SetActive(true);
System/FairyAu/FairyFeastTransmitShowWin.cs
@@ -23,6 +23,7 @@
        [SerializeField] Transform m_PopUpExpPoint;
        [SerializeField] SmoothSlider m_Slider;
        [SerializeField] Text m_Progress;
        [SerializeField] float m_PopUpInterval = 0.1f;
        [SerializeField] HeadUpName m_HeadUpHero;
        [SerializeField] HeadUpName m_HeadUpPlayer;
@@ -36,6 +37,8 @@
        {
            get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); }
        }
        int progressDisplay = 0;
        #region Built-in
        protected override void BindController()
        {
@@ -75,7 +78,15 @@
        protected override void LateUpdate()
        {
            m_Slider.value = Mathf.Clamp01(FairyFeastTransmitShow.Instance.progress);
            var progress = Mathf.Clamp01(FairyFeastTransmitShow.Instance.progress);
            m_Slider.value = progress;
            if ((int)(progress * 100) != progressDisplay)
            {
                progressDisplay = (int)(progress * 100);
                m_Progress.text = StringUtility.Contact(Language.Get("FeastTransmiting"),
                                progressDisplay, "%");
            }
            if (m_PopExpQueue.Count > 0)
            {
                if (Time.time - lastPopUpTime >= m_PopUpInterval)
@@ -113,7 +124,7 @@
                m_HeadUpPlayer.target = player.MP_Name;
            }
            m_HeadUpPlayer.offset = new Vector3(0, 0, 0);
            var viewPlayerData = roleParticularModel.GetViewPlayerData(model.transmitPlayer);
            var viewPlayerData = roleParticularModel.GetViewPlayerData((int)model.transmitPlayer);
            if (viewPlayerData != null)
            {
                realmLevel = (byte)viewPlayerData.rolePropData.RealmLV;
System/MainInterfacePanel/ChatFrame.cs
@@ -34,7 +34,6 @@
        [SerializeField] RedpointBehaviour m_RealmRed;
        [SerializeField] UIEffect m_RealmSfx;
        [SerializeField] FairyFeastBehaviour m_FairyFeast;
        List<int> OneKeyList = new List<int>();
        TeamModel m_Model;
        TeamModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TeamModel>()); } }
@@ -60,7 +59,6 @@
            _TeamChatBtn.voiceRecordSuccessEvent += OnVoiceRecordTeamSuccessEvent;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418)
            RedpointCenter.Instance.redpointValueChangeEvent += RedpointValueChangeEvent;
            m_FairyFeast.Init();
            _MailBtn.onClick.AddListener(MailButton);
            _OneKeyBtn.onClick.AddListener(OneKeyButton);
            _AutoBtn.onClick.AddListener(AutoButton);
@@ -242,7 +240,6 @@
            MailAllModel.Instance.DeleteMailEvent -= MailCountChange;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418)
            RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent;
            m_FairyFeast.UnInit();
            m_RealmBtn.RemoveAllListeners();
            _MailBtn.onClick.RemoveAllListeners();
            _OneKeyBtn.onClick.RemoveAllListeners();