少年修仙传客户端代码仓库
client_Zxw
2019-03-11 16a5213c9d6063f2efc929a5b48c902ee8eea49e
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
14个文件已修改
12个文件已添加
837 ■■■■■ 已修改文件
Core/GameEngine/DataToCtl/PackageRegedit.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40C_tagGCAllFamilyBossInfo.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40C_tagGCAllFamilyBossInfo.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HA4_Family/HA40C_tagGCAllFamilyBossInfo.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HA4_Family/HA40C_tagGCAllFamilyBossInfo.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/Dungeon/DungeonStage.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Activity/ActivityModel.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatCtrl.cs 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestModel.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestWin.cs 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonData.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonFightWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonInspireBehaviour.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TargetBriefInfoWin.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/AllianceBossEntranceWin.cs 240 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/AllianceBossEntranceWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/AllianceBossHintWin.cs 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/AllianceBossHintWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/AllianceBossModel.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/AllianceBossModel.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/AllianceBossVictoryWin.cs 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/AllianceBossVictoryWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/RichTableEvent.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/ModelCenter.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -29,6 +29,7 @@
    public static void Init()
    {
        // 登记相应的数据体及对应的数据转逻辑类
        Register(typeof(HA40C_tagGCAllFamilyBossInfo), typeof(DTCA40C_tagGCAllFamilyBossInfo));
        Register(typeof(HA3B1_tagMCEquipPartStarInfo), typeof(DTCA3B1_tagMCEquipPartStarInfo));
        Register(typeof(HA816_tagMCMysticalShopInfo), typeof(DTCA816_tagMCMysticalShopInfo));
        Register(typeof(HAC11_tagGCFeastRedPacketInfo), typeof(DTCAC11_tagGCFeastRedPacketInfo));
Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40C_tagGCAllFamilyBossInfo.cs
New file
@@ -0,0 +1,24 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Friday, March 08, 2019
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using Snxxz.UI;
public class DTCA40C_tagGCAllFamilyBossInfo : DtcBasic
{
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        var package = vNetPack as HA40C_tagGCAllFamilyBossInfo;
        ModelCenter.Instance.GetModel<AllianceBossModel>().ReceivePackage(package);
    }
}
Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40C_tagGCAllFamilyBossInfo.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 7242e60b4235aac4c832c4def0475e58
timeCreated: 1552024274
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HA4_Family/HA40C_tagGCAllFamilyBossInfo.cs
New file
@@ -0,0 +1,17 @@
using UnityEngine;
using System.Collections;
// A4 0C 多仙盟boss活动信息 #tagGCAllFamilyBossInfo
public class HA40C_tagGCAllFamilyBossInfo : GameNetPackBasic {
    public byte IsEnd;    // 是否已结束
    public HA40C_tagGCAllFamilyBossInfo () {
        _cmd = (ushort)0xA40C;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out IsEnd, vBytes, NetDataType.BYTE);
    }
}
Core/NetworkPackage/ServerPack/HA4_Family/HA40C_tagGCAllFamilyBossInfo.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c79177aa783d3ce42bab1b560bb10c5b
timeCreated: 1552024235
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Fight/Stage/Dungeon/DungeonStage.cs
@@ -245,6 +245,9 @@
            case GatherSoulDungeonModel.DUNGEON_MAPID:
                WindowCenter.Instance.Open<GatherSoulDungeonStageTimeWin>();
                break;
            case AllianceBossModel.DATAMAPID:
                WindowCenter.Instance.Open<AllianceBossHintWin>();
                break;
            default:
                WindowCenter.Instance.Open<DungeonStageTimeWin>();
                break;
System/Activity/ActivityModel.cs
@@ -13,6 +13,7 @@
    {
        HeavenBattleModel battleModel { get { return ModelCenter.Instance.GetModel<HeavenBattleModel>(); } }
        FairyModel fairyModel { get { return ModelCenter.Instance.GetModel<FairyModel>(); } }
        AllianceBossModel allianceBossModel { get { return ModelCenter.Instance.GetModel<AllianceBossModel>(); } }
        public override void Init()
        {
            var dic = DailyQuestConfig.GetValues();
@@ -227,6 +228,10 @@
        public bool CheckLimit(int type)
        {
            DailyQuestConfig config = DailyQuestConfig.Get(type);
            if (config == null)
            {
                return true;
            }
            switch ((DailyQuestType)type)
            {
                case DailyQuestType.FairyGrabBoss:
@@ -280,6 +285,15 @@
                        }
                    }
                    break;
                case DailyQuestType.AllianceBoss1:
                case DailyQuestType.AllianceBoss2:
                    {
                        if (allianceBossModel.isActivityOver)
                        {
                            return true;
                        }
                    }
                    break;
            }
            if (config.UnLockFuncID != 0)
            {
System/Chat/ChatCtrl.cs
@@ -164,6 +164,8 @@
        get { return ModelCenter.Instance.GetModel<FriendsModel>(); }
    }
    EquipGemModel equipGemModel { get { return ModelCenter.Instance.GetModel<EquipGemModel>(); } }
    public Dictionary<ChatInfoType, List<string>> achievementRandoms = new Dictionary<ChatInfoType, List<string>>();
    private ChatCtrl()
@@ -766,23 +768,22 @@
                data.richText.Append(content.Substring(index, matchArray[i].Index - index));
                index = matchArray[i].Index + matchArray[i].Length;
                string detail = matchArray[i].Groups[1].Value;
                string[] strarray = detail.Split('|');
                int itemID = 0;
                if (int.TryParse(strarray[0], out itemID))
                var chatSendItem = LitJson.JsonMapper.ToObject<ChatSendItem>(detail);
                if (chatSendItem.itemId != 0)
                {
                    ItemConfig cfg = ItemConfig.Get(itemID);
                    if (cfg != null)
                    ItemConfig itemConfig = ItemConfig.Get(chatSendItem.itemId);
                    if (itemConfig != null)
                    {
                        try
                        {
                            string append = string.Format("<a><Word info=item id={0} userdata={4} chatsend=1/>|showitem={0} isbind={1} itemcnt={2} stone={3} userdata={4} suitLv={5} suitCnt={6} place={7} equipwash={8}</a>",
                                      strarray[0], strarray[1], strarray[2], strarray[3], strarray[4], strarray[5], strarray[6], strarray[7], strarray[8]);
                            append = UIHelper.AppendStringColor(cfg.ItemColor, append);
                            string append = string.Format("<a><Word info=item id={0} chatsenditem={1} chatsend=1/>|showitem={0} chatsenditem={1}</a>",
                                      chatSendItem.itemId, detail);
                            append = UIHelper.AppendStringColor(itemConfig.ItemColor, append);
                            data.richText.Append(append);
                        }
                        catch (Exception e)
                        {
                            data.richText.Append(cfg.ItemName);
                            data.richText.Append(itemConfig.ItemName);
                            DebugEx.Log(e.Message);
                        }
                    }
@@ -857,41 +858,21 @@
                if (cfg.ItemName == matchArray[i].Groups[1].Value)
                {
                    bool equip = itemPlaceList[i].packType == PackType.Equip;
                    uint[] stones = equip ? PlayerStoneData.Instance.GetStoneInfo(itemPlaceList[i].itemPlace) : null;
                    _textBuilder.Append(StringUtility.Contact("#item#", itemPlaceList[i].itemId,
                                                              "|", itemPlaceList[i].isBind,
                                                              "|", itemPlaceList[i].count,
                                                              "|", stones != null ? LitJson.JsonMapper.ToJson(stones) :
                                                              LitJson.JsonMapper.ToJson(new uint[0]),
                                                              "|"));
                    if (itemPlaceList[i].useDataDict != null && itemPlaceList[i].useDataDict.Count > 0)
                    List<EquipGem> equipGems = null;
                    if (equip)
                    {
                        foreach (int key in itemPlaceList[i].useDataDict.Keys)
                        {
                            List<int> intarray = itemPlaceList[i].useDataDict[key];
                            var _array = intarray.ToArray();
                            _textBuilder.Append(StringUtility.Contact("'", key, "':", _array != null ? LitJson.JsonMapper.ToJson(_array) :
                                                              LitJson.JsonMapper.ToJson(new int[0])));
                            _textBuilder.Append(",");
                        }
                        equipGemModel.TryGetEquipGems(itemPlaceList[i].itemPlace, out equipGems);
                    }
                    _textBuilder.Append("|");
                    _textBuilder.Append(itemPlaceList[i].itemPlace);
                    _textBuilder.Append("|");
                    var _wash = ModelCenter.Instance.GetModel<EquipWashModel>().GetWashEquipInfo(itemPlaceList[i].itemPlace);
                    if (_wash != null && equip)
                    _textBuilder.Append("#item#");
                    var chatSendItem = new ChatSendItem()
                    {
                        _textBuilder.Append("{");
                        int[] _array = _wash.proValuelist == null ? new int[0] : new int[_wash.proValuelist.Length];
                        for (int k = 0; k < _array.Length; k++)
                        {
                            _array[k] = (int)_wash.proValuelist[k].XLAttrValue;
                        }
                        _textBuilder.Append(StringUtility.Contact("\"LV\":", _wash.XLAttrLV, ",\"Place\":", _wash.EquipPlace,
                            ",\"Value\":", LitJson.JsonMapper.ToJson(_array)));
                        _textBuilder.Append("}");
                    }
                        itemId = (int)itemPlaceList[i].itemId,
                        isBind = (int)itemPlaceList[i].isBind,
                        count = (int)itemPlaceList[i].count,
                        equipGems = equipGems,
                        useData = itemPlaceList[i].itemInfo.userData,
                    };
                    _textBuilder.Append(LitJson.JsonMapper.ToJson(chatSendItem));
                    _textBuilder.Append("#item#");
                    if (_recently != null)
                    {
@@ -1159,6 +1140,15 @@
        return RedPointState.None;
    }
    #endregion
    public struct ChatSendItem
    {
        public int itemId;
        public int isBind;
        public int count;
        public List<EquipGem> equipGems;
        public string useData;
    }
}
public struct ChatExtraData
{
System/DailyQuest/DailyQuestModel.cs
@@ -90,8 +90,8 @@
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
        FairyLeagueModel fairyLeagueModel { get { return ModelCenter.Instance.GetModel<FairyLeagueModel>(); } }
        FairyModel fairyModel { get { return ModelCenter.Instance.GetModel<FairyModel>(); } }
        AllianceBossModel allianceBossModel { get { return ModelCenter.Instance.GetModel<AllianceBossModel>(); } }
        public event Action<int> activeValueRewardGotEvent;
        public event Action<int> dailyQuestProgressUpdateEvent;
        public event Action totalActiveValueUpdateEvent;
@@ -116,6 +116,7 @@
            fairyModel.guardSkyCompleteEvent += GuardSkyCompleteEvent;
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
            PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyInfo;
            allianceBossModel.allianceBossStateRefresh += AllianceBossStateRefresh;
        }
        public override void UnInit()
@@ -127,6 +128,7 @@
            fairyModel.guardSkyCompleteEvent -= GuardSkyCompleteEvent;
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
            PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= OnRefreshFairyInfo;
            allianceBossModel.allianceBossStateRefresh -= AllianceBossStateRefresh;
        }
        public void OnPlayerLoginOk()
@@ -228,6 +230,8 @@
                case DailyQuestType.FairyFeast:
                case DailyQuestType.FairyTask:
                case DailyQuestType.FairyGrabBoss:
                case DailyQuestType.AllianceBoss1:
                case DailyQuestType.AllianceBoss2:
                    return defaultUnlock && PlayerDatas.Instance.baseData.FamilyId > 0;
                case DailyQuestType.RuneTowerSweep:
                    return ModelCenter.Instance.GetModel<RuneTowerModel>().yesterdayPassFloor > 0;
@@ -493,6 +497,12 @@
        {
            UpdateDailyActionRedpoint((int)DailyQuestType.GuardSky);
            UpdateDailyActionRedpoint((int)DailyQuestType.FairyLeague);
        }
        private void AllianceBossStateRefresh()
        {
            UpdateDailyActionRedpoint((int)DailyQuestType.AllianceBoss1);
            UpdateDailyActionRedpoint((int)DailyQuestType.AllianceBoss2);
        }
        private void OnPlayerDataRefresh(PlayerDataType _refreshType)
@@ -829,6 +839,13 @@
                        return DailyQuestState.Normal;
                    }
                    break;
                case DailyQuestType.AllianceBoss1:
                case DailyQuestType.AllianceBoss2:
                    if (allianceBossModel.isActivityOver)
                    {
                        return DailyQuestState.Completed;
                    }
                    break;
            }
            var completedTimes = GetDailyQuestCompletedTimes(_dailyQuestId);
@@ -888,6 +905,13 @@
            var _fairyModel = ModelCenter.Instance.GetModel<FairyModel>();
            switch (type)
            {
                case DailyQuestType.AllianceBoss1:
                case DailyQuestType.AllianceBoss2:
                    if (!PlayerDatas.Instance.fairyData.HasFairy)
                    {
                        return Language.Get("DailyQuestWin_Participate");
                    }
                    break;
                case DailyQuestType.GuardSky:
                    if (!PlayerDatas.Instance.fairyData.HasFairy)
                    {
System/DailyQuest/DailyQuestWin.cs
@@ -191,7 +191,7 @@
            switch ((DailyQuestType)_id)
            {
                case DailyQuestType.FairyLand:
                 GotoNormalDungeon(_id);
                    GotoNormalDungeon(_id);
                    break;
                case DailyQuestType.IceCrystal:
                    WindowCenter.Instance.Open<IceCrystalVeinWin>();              
@@ -315,14 +315,20 @@
                    WindowCenter.Instance.Close<DailyQuestWin>();
                    WindowCenter.Instance.Open<CrossServerWin>();
                    break;
                case DailyQuestType.JadeDynastyBoss:
                    WindowCenter.Instance.Close<DailyQuestWin>();
                    WindowCenter.Instance.Open<LootPreciousFrameWin>(false, 3);
                case DailyQuestType.AllianceBoss1:
                    GotoAllianceBoss(_id, 0);
                    break;
                case DailyQuestType.JadeDynastyTower:
                    WindowCenter.Instance.Close<DailyQuestWin>();
                    WindowCenter.Instance.Open<TowerWin>(false, 1);
                case DailyQuestType.AllianceBoss2:
                    GotoAllianceBoss(_id, 1);
                    break;
                //case DailyQuestType.JadeDynastyBoss:
                //    WindowCenter.Instance.Close<DailyQuestWin>();
                //    WindowCenter.Instance.Open<LootPreciousFrameWin>(false, 3);
                //    break;
                //case DailyQuestType.JadeDynastyTower:
                //    WindowCenter.Instance.Close<DailyQuestWin>();
                //    WindowCenter.Instance.Open<TowerWin>(false, 1);
                //    break;
                default:
                    CSharpCallLua.GotoLuaDailyQuest(_id);
                    break;
@@ -499,6 +505,13 @@
            }
        }
        private void GotoAllianceBoss(int id, int lineId)
        {
            dungeonModel.currentDungeon = new Dungeon(AllianceBossModel.DATAMAPID, lineId);
            AllianceBossEntranceWin.dailyQuestId = id;
            WindowCenter.Instance.Open<AllianceBossEntranceWin>();
        }
        private void GotoTreasureCollectSoul()
        {
            var treasureModel = ModelCenter.Instance.GetModel<TreasureModel>();
System/Dungeon/DungeonData.cs
@@ -55,6 +55,7 @@
        public int runeMagicEssence;
        public ServerItem[] itemInfo;
        public ServerItem[] succItemInfo;
        public ServerItem[] AuctionItem;
        public int[] xianyuanCoin;
        public int sp;
        public int startRewardLineID;
@@ -62,6 +63,7 @@
        public int leaderID;
        public int wheel;
        public Dictionary<string, AssistPlayer> helpPlayer;
        public int myMenberCnt;
        public long totalExp
        {
@@ -105,6 +107,8 @@
        public DungeonHurt[] hurtInfo;
        public int myHurt;
        public int myHurtEx;
        public int myRank;
        public int myMenberCnt;
        public string topName;
        public int topScore;
        public int isFullExp;
System/Dungeon/DungeonFightWin.cs
@@ -107,6 +107,7 @@
                    m_GatherSoulDungeonBehaviour.Display(this);
                    break;
                case JadeDynastyBossModel.JADEDYNASTY_MAP:
                case AllianceBossModel.DATAMAPID:
                    m_Inspire.gameObject.SetActive(true);
                    break;
                default:
System/Dungeon/DungeonInspireBehaviour.cs
@@ -55,6 +55,7 @@
            {
                case DemonJarModel.DEMONJAR_MAPID:
                case JadeDynastyBossModel.JADEDYNASTY_MAP:
                case AllianceBossModel.DATAMAPID:
                    m_Icon.SetSprite("W_XYGuwu_a2");
                    break;
                default:
@@ -107,7 +108,8 @@
        private bool IsRequireDisplayProgress()
        {
            return PlayerDatas.Instance.baseData.MapID == DemonJarModel.DEMONJAR_MAPID
                || PlayerDatas.Instance.baseData.MapID == JadeDynastyBossModel.JADEDYNASTY_MAP;
                || PlayerDatas.Instance.baseData.MapID == JadeDynastyBossModel.JADEDYNASTY_MAP
                || PlayerDatas.Instance.baseData.MapID == AllianceBossModel.DATAMAPID;
        }
        private void ResetTween()
System/Dungeon/DungeonModel.cs
@@ -839,6 +839,12 @@
                        WindowCenter.Instance.Open<JadeDynastyDamageRankWin>();
                    }
                    break;
                case AllianceBossModel.DATAMAPID:
                    if (!WindowCenter.Instance.IsOpen<AllianceBossHintWin>())
                    {
                        WindowCenter.Instance.Open<AllianceBossHintWin>();
                    }
                    break;
                case TreasureModel.TREASURE_MAPID:
                    break;
                case HeavenBattleModel.HEAVEBATTLE_MAPID:
@@ -1048,6 +1054,9 @@
                        case JadeDynastyTowerModel.DATA_MAPID:
                            WindowCenter.Instance.Open<JadyDynastyTowerVictoryWin>();
                            break;
                        case AllianceBossModel.DATAMAPID:
                            WindowCenter.Instance.Open<AllianceBossVictoryWin>();
                            break;
                        default:
                            WindowCenter.Instance.Open<DungeonVictoryWin>();
                            break;
System/Dungeon/TargetBriefInfoWin.cs
@@ -67,7 +67,8 @@
        var dataMapId = MapUtility.GetDataMapId(mapId);
        if (dataMapId == DemonJarModel.DEMONJAR_MAPID
            || dataMapId == JadeDynastyBossModel.JADEDYNASTY_MAP
            || dataMapId == JadeDynastyTowerModel.DATA_MAPID)
            || dataMapId == JadeDynastyTowerModel.DATA_MAPID
            || dataMapId == AllianceBossModel.DATAMAPID)
        {
            if (_show)
            {
@@ -110,7 +111,8 @@
        var dataMapId = MapUtility.GetDataMapId(mapId);
        if (dataMapId == DemonJarModel.DEMONJAR_MAPID
            || dataMapId == JadeDynastyBossModel.JADEDYNASTY_MAP
            || dataMapId == JadeDynastyTowerModel.DATA_MAPID)
            || dataMapId == JadeDynastyTowerModel.DATA_MAPID
            || dataMapId == AllianceBossModel.DATAMAPID)
        {
            if (!WindowCenter.Instance.IsOpen("DemonJarBossLifeBarWin"))
            {
@@ -328,7 +330,8 @@
                    var dataMapId = MapUtility.GetDataMapId();
                    if (dataMapId != DemonJarModel.DEMONJAR_MAPID
                        && dataMapId != JadeDynastyBossModel.JADEDYNASTY_MAP
                        && dataMapId != JadeDynastyTowerModel.DATA_MAPID)
                        && dataMapId != JadeDynastyTowerModel.DATA_MAPID
                        && dataMapId != AllianceBossModel.DATAMAPID)
                    {
                        ShowBossLifeBar(bossInfo, true);
                    }
@@ -355,7 +358,8 @@
                    var dataMapId = MapUtility.GetDataMapId();
                    if (dataMapId != DemonJarModel.DEMONJAR_MAPID
                        && dataMapId != JadeDynastyBossModel.JADEDYNASTY_MAP
                        && dataMapId != JadeDynastyTowerModel.DATA_MAPID)
                        && dataMapId != JadeDynastyTowerModel.DATA_MAPID
                        && dataMapId != AllianceBossModel.DATAMAPID)
                    {
                        if (bossInfo.npcId != TargetBriefInfo.bossInfo.npcId)
                        {
System/FairyAu/AllianceBossEntranceWin.cs
New file
@@ -0,0 +1,240 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Friday, March 08, 2019
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI {
    public class AllianceBossEntranceWin : Window
    {
        [SerializeField] Text m_ActivityName;
        [SerializeField] Image m_Background;
        [SerializeField] Text m_OpenTime;
        [SerializeField] Text m_EnterTimes;
        [SerializeField] Text m_LimitLevel;
        [SerializeField] Text m_Description;
        [SerializeField] ItemBehaviour[] m_Items;
        [SerializeField] Button m_Goto;
        AllianceBossModel allianceBossModel { get { return ModelCenter.Instance.GetModel<AllianceBossModel>(); } }
        DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        public static int dailyQuestId = 0;
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            m_Goto.AddListener(GotoAllianceBoss);
        }
        protected override void OnPreOpen()
        {
            Display();
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        void Display()
        {
            DisplayBase();
            DisplayEnterTimes();
        }
        void DisplayBase()
        {
            var config = DailyQuestConfig.Get(dailyQuestId);
            m_ActivityName.text = config.Title;
            DailyQuestOpenTime openTime;
            if (dailyQuestModel.TryGetOpenTime(dailyQuestId, out openTime))
            {
                if (openTime.always)
                {
                    m_OpenTime.text = Language.Get("DailyQuest_NoTimeLimit");
                }
                else
                {
                    var week = (int)TimeUtility.ServerNow.DayOfWeek;
                    var openTimes = openTime.GetHourMinuteByWeek(week);
                    if (openTimes != null)
                    {
                        var stringArray = new string[openTimes.Count];
                        for (int i = 0; i < openTimes.Count; i++)
                        {
                            stringArray[i] = openTimes[i].ToString();
                        }
                        m_OpenTime.text = string.Join(",", stringArray);
                    }
                }
            }
            switch ((DailyQuestType)dailyQuestId)
            {
                case DailyQuestType.AllianceBoss1:
                    m_Background.SetSprite("AllianceBossBG1");
                    break;
                case DailyQuestType.AllianceBoss2:
                    m_Background.SetSprite("AllianceBossBG2");
                    break;
            }
            var dungeon = dungeonModel.currentDungeon;
            var dungeonId = dungeonModel.GetDungeonId(dungeon);
            var dungeonConfig = DungeonConfig.Get(dungeonId);
            if (dungeonConfig != null)
            {
                var levelLimitMin = dungeonConfig.LVLimitMin;
                var playerLevel = PlayerDatas.Instance.baseData.LV;
                m_LimitLevel.color = playerLevel >= levelLimitMin ? UIHelper.GetUIColor(TextColType.NavyBrown) : UIHelper.GetUIColor(TextColType.Red, true);
                m_Description.text = dungeonConfig.Description;
                for (int i = 0; i < m_Items.Length; i++)
                {
                    var behaviour = m_Items[i];
                    if (i < dungeonConfig.Rewards.Length)
                    {
                        behaviour.gameObject.SetActive(true);
                        behaviour.showCount = false;
                        behaviour.SetItem(dungeonConfig.Rewards[i], 0);
                    }
                    else
                    {
                        behaviour.gameObject.SetActive(false);
                    }
                }
            }
        }
        void DisplayEnterTimes()
        {
            var enterTimes = dailyQuestModel.GetDailyQuestCompletedTimes(dailyQuestId);
            var totalTimes = dailyQuestModel.GetDailyQuestTotalTimes(dailyQuestId);
            m_EnterTimes.text = StringUtility.Contact(totalTimes - enterTimes, "/", totalTimes);
            m_EnterTimes.color = (totalTimes - enterTimes) > 0 ? UIHelper.GetUIColor(TextColType.NavyBrown) : UIHelper.GetUIColor(TextColType.Red);
        }
        private void GotoAllianceBoss()
        {
            var error = 0;
            if (TestEnterAllianceBoss(dailyQuestId, out error))
            {
                if ((DailyQuestType)dailyQuestId == DailyQuestType.AllianceBoss1)
                {
                    dungeonModel.SingleChallenge(AllianceBossModel.DATAMAPID, 0);
                }
                else
                {
                    dungeonModel.SingleChallenge(AllianceBossModel.DATAMAPID, 1);
                }
            }
            else
            {
                DisplayErrorTip(error);
            }
        }
        bool TestEnterAllianceBoss(int id, out int error)
        {
            error = 0;
            var lineId = 0;
            var dungeonId = 0;
            switch ((DailyQuestType)id)
            {
                case DailyQuestType.AllianceBoss1:
                    lineId = 0;
                    break;
                case DailyQuestType.AllianceBoss2:
                    lineId = 1;
                    break;
            }
            dungeonId = dungeonModel.GetDungeonId(AllianceBossModel.DATAMAPID, lineId);
            var dungeonConfig = DungeonConfig.Get(dungeonId);
            if (dungeonConfig != null)
            {
                var playerLevel = PlayerDatas.Instance.baseData.LV;
                if (playerLevel < dungeonConfig.LVLimitMin)
                {
                    error = 1;
                    return false;
                }
            }
            var completedTimes = dailyQuestModel.GetDailyQuestCompletedTimes(dailyQuestId);
            var totalTimes = dailyQuestModel.GetDailyQuestTotalTimes(dailyQuestId);
            if (completedTimes >= totalTimes)
            {
                error = 2;
                return false;
            }
            if (CrossServerUtility.IsCrossServerBoss())
            {
                error = 3;
                return false;
            }
            if (allianceBossModel.isActivityOver)
            {
                error = 4;
                return false;
            }
            var dailyQuestState = dailyQuestModel.GetQuestState(dailyQuestId);
            if (dailyQuestState != DailyQuestModel.DailyQuestState.Normal)
            {
                error = 5;
                return false;
            }
            return true;
        }
        void DisplayErrorTip(int error)
        {
            switch (error)
            {
                case 1:
                    SysNotifyMgr.Instance.ShowTip("DemonJar_Text2");
                    break;
                case 2:
                    SysNotifyMgr.Instance.ShowTip("GeRen_chenxin_268121", AllianceBossModel.DATAMAPID);
                    break;
                case 3:
                    SysNotifyMgr.Instance.ShowTip("CrossMap10");
                    break;
                case 4:
                    SysNotifyMgr.Instance.ShowTip("AllianceBossDead");
                    break;
                case 5:
                    SysNotifyMgr.Instance.ShowTip("Join_Space_Lost");
                    break;
            }
        }
    }
}
System/FairyAu/AllianceBossEntranceWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 6bb43801ab363a74794c2c7d8e2f0b84
timeCreated: 1552037863
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/FairyAu/AllianceBossHintWin.cs
New file
@@ -0,0 +1,129 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Friday, March 01, 2019
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI {
    public class AllianceBossHintWin : Window
    {
        [SerializeField] Text m_Progress;
        [SerializeField] RankBehaviour[] m_Ranks;
        [SerializeField] Text m_AllianceRank;
        [SerializeField] Text m_AllianceHurt;
        [SerializeField] Text m_AllianceParticipate;
        const long BOSSHP_TOTAL = 1000000000;
        DungeonModel dungeonModel
        {
            get { return ModelCenter.Instance.GetModel<DungeonModel>(); }
        }
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
        }
        protected override void OnPreOpen()
        {
            dungeonModel.updateMissionEvent += UpdateMissionEvent;
            Display();
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
            dungeonModel.updateMissionEvent -= UpdateMissionEvent;
        }
        protected override void OnAfterClose()
        {
        }
        void Display()
        {
            DisplayProgress();
            DisplayHurtRank();
            DisplayAlliance();
        }
        void DisplayProgress()
        {
            var mission = dungeonModel.mission;
            var currentHp = (long)(mission.remainHPPer * 0.000001d * BOSSHP_TOTAL);
            var progress = 1 - (float)currentHp / BOSSHP_TOTAL;
            m_Progress.text = StringUtility.Contact((int)(progress * 100), "%");
        }
        void DisplayHurtRank()
        {
            var mission = dungeonModel.mission;
            var hurtInfos = mission.hurtInfo;
            var index = 0;
            if (hurtInfos != null)
            {
                for (int i = 0; i < hurtInfos.Length; i++)
                {
                    if (i < m_Ranks.Length)
                    {
                        m_Ranks[i].Display(hurtInfos[i].playerName, hurtInfos[i].totalHurt);
                    }
                    index++;
                }
            }
            for (int i = index; i < m_Ranks.Length; i++)
            {
                m_Ranks[i].Reset();
            }
        }
        void DisplayAlliance()
        {
            var mission = dungeonModel.mission;
            m_AllianceRank.text = mission.myRank == 0 ? string.Empty : mission.myRank.ToString();
            m_AllianceHurt.text = UIHelper.ReplaceLargeNum(mission.myHurtTotal);
            m_AllianceParticipate.text = mission.myMenberCnt.ToString();
        }
        private void UpdateMissionEvent()
        {
            Display();
        }
        [Serializable]
        public class RankBehaviour
        {
            [SerializeField] Text m_FairyName;
            [SerializeField] Text m_Hurt;
            public void Display(string fairyName, long hurt)
            {
                m_FairyName.text = fairyName;
                m_Hurt.text = UIHelper.ReplaceLargeNum(hurt);
            }
            public void Reset()
            {
                m_FairyName.text = string.Empty;
                m_Hurt.text = string.Empty;
            }
        }
    }
}
System/FairyAu/AllianceBossHintWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: b71ebc3552b6540418bc0aeef3303e3b
timeCreated: 1551430456
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/FairyAu/AllianceBossModel.cs
New file
@@ -0,0 +1,48 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Snxxz.UI
{
    public class AllianceBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        public const int DATAMAPID = 31260;
        public bool isActivityOver { get; private set; }
        public int participateLimit { get; private set; }
        public event Action allianceBossStateRefresh;
        public override void Init()
        {
            ParseConfig();
        }
        public void OnBeforePlayerDataInitialize()
        {
            isActivityOver = false;
        }
        public void OnPlayerLoginOk()
        {
        }
        public override void UnInit()
        {
        }
        void ParseConfig()
        {
            participateLimit = 5;
        }
        public void ReceivePackage(HA40C_tagGCAllFamilyBossInfo package)
        {
            isActivityOver = package.IsEnd == 1;
            if (allianceBossStateRefresh != null)
            {
                allianceBossStateRefresh();
            }
        }
    }
}
System/FairyAu/AllianceBossModel.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 24d1b53e30752c7468e3a2c38124b1eb
timeCreated: 1552023902
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/FairyAu/AllianceBossVictoryWin.cs
New file
@@ -0,0 +1,115 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Friday, March 08, 2019
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class AllianceBossVictoryWin : DungeonVictoryWin
    {
        [SerializeField] Transform m_ContainerTopThree;
        [SerializeField] Image m_Rank;
        [SerializeField] Transform m_ContainerOutThree;
        [SerializeField] Text m_AllianceRank;
        [SerializeField] Text m_AllianceParticipate;
        [SerializeField] Transform m_ContainerAuctionReward;
        [SerializeField] Transform m_ContainerNoneReward;
        [SerializeField] Text m_NoneRewardRemind;
        [SerializeField] DemonJarRewardBehaviour[] m_AuctionItems;
        [SerializeField] DemonJarRewardBehaviour[] m_MyItems;
        [SerializeField] Button m_GotoAuction;
        AllianceBossModel model { get { return ModelCenter.Instance.GetModel<AllianceBossModel>(); } }
        protected override void AddListeners()
        {
            base.AddListeners();
            m_GotoAuction.AddListener(GotoAuction);
        }
        protected override void Display()
        {
            m_ContainerPoivt.gameObject.SetActive(true);
            base.RequireDungeonExit();
            DisplayAlliance();
            DisplayAutionItems();
            DisplayMyItems();
        }
        void DisplayAlliance()
        {
            var result = dungeonModel.dungeonResult;
            bool top3 = result.rank <= 3 && result.rank > 0;
            m_ContainerTopThree.gameObject.SetActive(top3);
            m_ContainerOutThree.gameObject.SetActive(!top3);
            if (top3)
            {
                m_Rank.SetSprite(StringUtility.Contact("AllianceBossRank_", result.rank));
            }
            m_AllianceRank.text = Language.Get("AllianceBossRank", result.rank);
            m_AllianceParticipate.text = Language.Get("AllianceParticipate", result.myMenberCnt);
            m_NoneRewardRemind.text = Language.Get("AllianceParticipateLimitMin", model.participateLimit);
        }
        void DisplayAutionItems()
        {
            var result = dungeonModel.dungeonResult;
            var existAuctionItem = result.AuctionItem != null && result.AuctionItem.Length > 0;
            m_ContainerAuctionReward.gameObject.SetActive(existAuctionItem);
            m_ContainerNoneReward.gameObject.SetActive(!existAuctionItem);
            if (existAuctionItem)
            {
                for (int i = 0; i < m_AuctionItems.Length; i++)
                {
                    if (i < result.AuctionItem.Length)
                    {
                        var serverItem = result.AuctionItem[i];
                        m_AuctionItems[i].gameObject.SetActive(true);
                        m_AuctionItems[i].Display(new Item(serverItem.ItemID, serverItem.Count, serverItem.IsBind == 1));
                    }
                    else
                    {
                        m_AuctionItems[i].gameObject.SetActive(false);
                    }
                }
            }
        }
        void DisplayMyItems()
        {
            var result = dungeonModel.dungeonResult;
            for (int i = 0; i < m_MyItems.Length; i++)
            {
                if (result.itemInfo != null && i < result.itemInfo.Length)
                {
                    var serverItem = result.itemInfo[i];
                    m_MyItems[i].gameObject.SetActive(true);
                    m_MyItems[i].Display(new Item(serverItem.ItemID, serverItem.Count, serverItem.IsBind == 1));
                }
                else
                {
                    m_MyItems[i].gameObject.SetActive(false);
                }
            }
        }
        private void GotoAuction()
        {
            WindowCenter.Instance.Open<AuctionHouseWin>(false, 1);
        }
    }
}
System/FairyAu/AllianceBossVictoryWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: beb30ea08fa2b344d902811448e93600
timeCreated: 1552028567
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Message/RichTableEvent.cs
@@ -506,6 +506,18 @@
            }
        }
        if (hrefInfo.mSplits.ContainsKey("chatsenditem"))
        {
            var chatSendItem = LitJson.JsonMapper.ToObject<ChatCtrl.ChatSendItem>(hrefInfo.mSplits["chatsenditem"]);
            itemId = chatSendItem.itemId;
            itemCount = chatSendItem.count;
            isBind = chatSendItem.isBind;
            if (!string.IsNullOrEmpty(chatSendItem.useData))
            {
                userdatadic = ConfigParse.Analysis(chatSendItem.useData);
            }
        }
        ItemAttrData attrData = new ItemAttrData(itemId, false, (ulong)itemCount, -1, isBind, false, PackType.Deleted,
            "", userdatadic);
        attrData.SetGemModel(stone);
System/WindowBase/ModelCenter.cs
@@ -233,6 +233,7 @@
            RegisterModel<TreasureSkillModel>();
            RegisterModel<EquipGemModel>();
            RegisterModel<AuctionInquiryModel>();
            RegisterModel<AllianceBossModel>();
            RegisterModel<AuctionHelpModel>();
            inited = true;
        }
Utility/EnumHelper.cs
@@ -327,8 +327,10 @@
    DungeonAssist = 29,
    GatherSoulDungeon = 30,
    CrossServerPk = 31,
    JadeDynastyBoss = 32,
    JadeDynastyTower = 33,
    AllianceBoss1 = 32,
    AllianceBoss2 = 33,
    //JadeDynastyBoss = 32,--诛仙功能暂时关闭
    //JadeDynastyTower = 33,
}
public enum ActivityPrepareType