少年修仙传客户端代码仓库
client_linchunjie
2018-11-15 4659f091aaab21459d286b9f30be1e231f8e4977
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
8个文件已添加
26个文件已修改
1221 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/IceLodeStarAwardConfig.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/IceLodeStarAwardConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/LoadingBackGroundConfig.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/LoadingBackGroundConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/MapResourcesConfig.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/MapResourcesConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/ConfigManager.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Player/Character/PlayerBaseData.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/TelPartialConfig/tagEquipWashConfig.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0406_tagNPCAppear.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/H01_System/H0102_tagCDBPlayer.cs 188 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/H03_MainCharacter/H0309_tagPlayerLoginInfo.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/H04_Scene/H0434_tagAreaPlayerAppearEx.cs 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_Guard.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorNpcFight.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorNpcNoFight.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestModel.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonAssistWin.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonAssistWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/IceCrystalVeinModel.cs 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/IceCrystalVeinModel.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/IceCrystalVeinWin.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousBossRebornBehaviour.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemTipsModel.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Loading/LoadingWin.cs 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OperationWishingWellInfo.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/WishingPoolWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/EquipWashCell.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/EquipWashModel.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/WashProModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/WashTips.cs 220 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/ModelCenter.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/RuntimeLogUtility.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/IceLodeStarAwardConfig.cs
New file
@@ -0,0 +1,53 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Thursday, November 15, 2018
//--------------------------------------------------------
using UnityEngine;
using System;
namespace TableConfig {
    public partial class IceLodeStarAwardConfig : ConfigBase {
        public int id { get ; private set ; }
        public int index { get ; private set ; }
        public int Star { get ; private set ; }
        public string LV { get ; private set; }
        public string ItemList { get ; private set; }
        public int Type { get ; private set ; }
        public override string getKey()
        {
            return id.ToString();
        }
        public override void Parse() {
            try
            {
                id=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
                index=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0;
                Star=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0;
                LV = rawContents[3].Trim();
                ItemList = rawContents[4].Trim();
                Type=IsNumeric(rawContents[5]) ? int.Parse(rawContents[5]):0;
            }
            catch (Exception ex)
            {
                DebugEx.Log(ex);
            }
        }
    }
}
Core/GameEngine/Model/Config/IceLodeStarAwardConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: b18277562fc6e994c906d41cb5c14c5b
timeCreated: 1542267230
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/GameEngine/Model/Config/LoadingBackGroundConfig.cs
New file
@@ -0,0 +1,50 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Thursday, November 15, 2018
//--------------------------------------------------------
using UnityEngine;
using System;
namespace TableConfig {
    public partial class LoadingBackGroundConfig : ConfigBase {
        public int id { get ; private set ; }
        public string[] icons;
        public string levelLimit { get ; private set; }
        public string name { get ; private set; }
        public string description { get ; private set; }
        public override string getKey()
        {
            return id.ToString();
        }
        public override void Parse() {
            try
            {
                id=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
                icons = rawContents[1].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                levelLimit = rawContents[2].Trim();
                name = rawContents[3].Trim();
                description = rawContents[4].Trim();
            }
            catch (Exception ex)
            {
                DebugEx.Log(ex);
            }
        }
    }
}
Core/GameEngine/Model/Config/LoadingBackGroundConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 791645468791ce74c84280782740fa99
timeCreated: 1542267123
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/GameEngine/Model/Config/MapResourcesConfig.cs
@@ -1,14 +1,14 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Friday, May 18, 2018
//--------------------------------------------------------
using UnityEngine;
using System;
namespace TableConfig {
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Thursday, November 15, 2018
//--------------------------------------------------------
using UnityEngine;
using System;
namespace TableConfig {
    public partial class MapResourcesConfig : ConfigBase {
        public int ID { get ; private set ; }
@@ -22,17 +22,14 @@
        public Vector3 MapOffset { get ; private set; } 
        public int[] Effect;
        public int Music { get ; private set ; }
        public string[] LoadingBG;
        public string LoadName { get ; private set; }
        public string LoadDescription { get ; private set; }
        public int ShowBOSSTime { get ; private set ; }
        public override string getKey()
        {
            return ID.ToString();
        }
        public override void Parse() {
        }
        public override void Parse() {
            try
            {
                ID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; 
@@ -62,24 +59,18 @@
            
                Music=IsNumeric(rawContents[10]) ? int.Parse(rawContents[10]):0; 
            
                LoadingBG = rawContents[11].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                LoadName = rawContents[12].Trim();
                LoadDescription = rawContents[13].Trim();
                ShowBOSSTime=IsNumeric(rawContents[14]) ? int.Parse(rawContents[14]):0;
                ShowBOSSTime=IsNumeric(rawContents[11]) ? int.Parse(rawContents[11]):0;
            }
            catch (Exception ex)
            {
                DebugEx.Log(ex);
            }
        }
    }
}
            }
        }
    }
}
Core/GameEngine/Model/Config/MapResourcesConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 8f17a96ef841bb74dafcec974bb4e7f5
timeCreated: 1526625853
timeCreated: 1542269954
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/GameEngine/Model/ConfigManager.cs
@@ -205,6 +205,9 @@
        AddAsyncTask<GuardConfig>();
        AddAsyncTask<MarketQueryConfig>();
        AddAsyncTask<TreasureDungeonConfig>();
        AddAsyncTask<LoadingBackGroundConfig>();
        AddAsyncTask<IceLodeStarAwardConfig>();
        while (!AllCompleted())
        {
            var completedCount = 0;
Core/GameEngine/Model/Player/Character/PlayerBaseData.cs
@@ -11,7 +11,7 @@
    public ushort LV;    //等级
    public ushort LVEx;    //玩家等级副本,用于转生
    public ushort LV2;    //大师等级
    public ushort ExpPoint;    //扩充经验点数
    public uint ExpPoint;    //扩充经验点数
    public uint TotalExp;    //总经验
    public uint Family;    //家族
    public string FamilyName;    //家族名称
@@ -62,8 +62,10 @@
    public int BasicsDefense;//基础防御
    public int BasicsScoreAHit;//基础命中
    public int BasicsDodge;//基础闪避
    public long treasurePotentialSp {
        get {
    public long treasurePotentialSp
    {
        get
        {
            return ExAttr8 * (long)100000000 + ExAttr7;
        }
    }
Core/GameEngine/Model/TelPartialConfig/tagEquipWashConfig.cs
@@ -4,16 +4,19 @@
{
    public partial class EquipWashConfig : ConfigBase, IConfigPostProcess
    {
        private StringBuilder _washComposeID = new StringBuilder();
        private static Dictionary<string, EquipWashConfig> equipWashDict = new Dictionary<string, EquipWashConfig>();
        private static Dictionary<string,EquipWashData> equipWashDict = new Dictionary<string, EquipWashData>();
        public void OnConfigParseCompleted()
        {
            _washComposeID.Length = 0;
            _washComposeID.Append(type);
            _washComposeID.Append(level);
            equipWashDict.Add(_washComposeID.ToString(), this);
            string key = StringUtility.Contact(type,level);
            EquipWashData washData = new EquipWashData();
            washData.guid = key;
            washData.washConfig = this;
            washData.mustCosts = ConfigParse.GetMultipleStr<int>(costMoneyList);
            if(!equipWashDict.ContainsKey(key))
            {
                equipWashDict.Add(key,washData);
            }
        }
        /// <summary>
@@ -22,13 +25,19 @@
        /// <param name="level"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public static EquipWashConfig GetCurrentWashEquipModel(int type, int level)
        public static EquipWashData GetEquipWashData(int type, int level)
        {
            string strId = type + level.ToString();
            EquipWashConfig equipWash = null;
            string strId = StringUtility.Contact(type,level);
            EquipWashData equipWash = null;
            equipWashDict.TryGetValue(strId, out equipWash);
            return equipWash;
        }
        public class EquipWashData
        {
            public string guid;
            public EquipWashConfig washConfig;
            public int[] mustCosts;
        }
    }
}
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0406_tagNPCAppear.cs
@@ -55,6 +55,7 @@
            {
                case E_NpcType.Func:
                case E_NpcType.OpenWorldMap:
                case E_NpcType.Defend:
                    _actor = GAMgr.Instance.RequestNpcNoFight<GA_NpcFunc>(vNetData.ObjID, vNetData.NPCID, E_ActorGroup.FuncNpc, vNetData);
                    break;
                case E_NpcType.Collect:
Core/NetworkPackage/ServerPack/H01_System/H0102_tagCDBPlayer.cs
@@ -1,106 +1,106 @@
using UnityEngine;
using System.Collections;
//01 02 玩家初始化#tagCDBPlayer
//01 02 玩家初始化#tagCDBPlayer
public class H0102_tagCDBPlayer : GameNetPackBasic
{
    public string AccID;    //_KEY_i_帐号名, 该角色所在的帐号的用户名
    public string AccID;    //_KEY_i_帐号名, 该角色所在的帐号的用户名
    public uint PlayerID;    //_IDT_
    public string PlayerName;    //size = 14
    public byte AccState;    //0: 未创建, 1: 创建OK,正常登录 2:封号 3:已删除
    public byte GMLevel;    //GM等级, 0:不是GM  >=1 : GM的等级
    public byte Sex;    //性别
    public byte Job;    //职业, 0.新手 1.游侠 2.战士 3.弓箭手 4.术士 5.道士
    public ushort ReincarnationLv;    // 转生等级
    public ushort LV;    //等级
    public ushort LVEx;    //玩家等级副本,用于转生
    public ushort LV2;    //大师等级
    public ushort ExpPoint;    //扩充经验点数
    public uint TotalExp;    //总经验
    public uint Family;    //家族
    public string FamilyName;    //家族名称
    public int TeamHornor;    //组队荣誉
    public int FamilyHornor;    //家族荣耀
    public int FamilyActiveValue;    //家族活跃度
    public int LastWeekFamilyActiveValue;    //上周家族活跃度
    public int CountryHornor;    //本周国家功勋值
    public int CountryLastWeekHornor;    //上周国家功勋值
    public byte AccState;    //0: 未创建, 1: 创建OK,正常登录 2:封号 3:已删除
    public byte GMLevel;    //GM等级, 0:不是GM  >=1 : GM的等级
    public byte Sex;    //性别
    public byte Job;    //职业, 0.新手 1.游侠 2.战士 3.弓箭手 4.术士 5.道士
    public ushort ReincarnationLv;    // 转生等级
    public ushort LV;    //等级
    public ushort LVEx;    //玩家等级副本,用于转生
    public ushort LV2;    //大师等级
    public uint ExpPoint;    //扩充经验点数
    public uint TotalExp;    //总经验
    public uint Family;    //家族
    public string FamilyName;    //家族名称
    public int TeamHornor;    //组队荣誉
    public int FamilyHornor;    //家族荣耀
    public int FamilyActiveValue;    //家族活跃度
    public int LastWeekFamilyActiveValue;    //上周家族活跃度
    public int CountryHornor;    //本周国家功勋值
    public int CountryLastWeekHornor;    //上周国家功勋值
    public uint Mate;
    public uint Gold;    //金子
    public uint GoldPaper;    //金票
    public uint Silver;    //银子
    public uint SilverPaper;    //银票
    public uint FightPoint;    //战斗值
    public uint HappyPoint;    //娱乐值
    public byte LineID;    //角色所在线路
    public ushort MapID;    //角色所在地图
    public ushort PosX;    //角色坐标
    public uint Gold;    //金子
    public uint GoldPaper;    //金票
    public uint Silver;    //银子
    public uint SilverPaper;    //银票
    public uint FightPoint;    //战斗值
    public uint HappyPoint;    //脱机挂时长(秒)
    public byte LineID;    //角色所在线路
    public ushort MapID;    //角色所在地图
    public ushort PosX;    //角色坐标
    public ushort PosY;
    public ushort RebornMapID;    //重生点地图ID
    public ushort RebornMapID;    //重生点地图ID
    public ushort RebornPosX;
    public ushort RebornPosY;
    public byte State;    //角色状态   1.封存 2.死亡 3.正常  以后还有陆续添加
    public uint HP;    //当前HP
    public uint XP;    //当前XP
    public ushort HPRestoreSetting;    //少于这个值%自动喝血
    public ushort MPRestoreSetting;    //少于这个值%自动喝魔
    public uint FreePoint;    //未分配点数
    public uint FreeSkillPoint;    //未分配的技能点
    public int BaseSTR;    //裸体力量
    public int BasePNE;    //裸体真元
    public int BasePHY;    //裸体筋骨
    public int BaseCON;    //裸体体魄
    public int STR;    //力量
    public int PNE;    //真元
    public int PHY;    //筋骨
    public int CON;    //体魄
    public string Setting;    //设定
    public ushort PKValue;    //衡量PK能力的一项属性,由攻防计算而得
    public ushort ActiveValue;    //击杀敌国阵营玩家和NPC的统计值
    public byte BackpackLV;    //背包等级
    public byte WarehouseLV;    //仓库等级
    public uint TeamID;    //队伍ID
    public byte UseGoldType;    //默认用金子/金票        类型为MoneyType
    public byte UseSilverType;    //默认用的银子/银票
    public byte AttackMode;    //攻击模式
    public uint LastWeekOnlineTime;    //上周在线时间
    public byte State;    //角色状态   0.正常在线1.脱机挂在线 2脱机挂死亡
    public uint HP;    //当前HP
    public uint XP;    //当前XP
    public ushort HPRestoreSetting;    //少于这个值%自动喝血
    public ushort MPRestoreSetting;    //少于这个值%自动喝魔
    public uint FreePoint;    //未分配点数
    public uint FreeSkillPoint;    //未分配的技能点
    public int BaseSTR;    //裸体力量
    public int BasePNE;    //裸体真元
    public int BasePHY;    //裸体筋骨
    public int BaseCON;    //裸体体魄
    public int STR;    //力量
    public int PNE;    //真元
    public int PHY;    //筋骨
    public int CON;    //体魄
    public string Setting;    //设定
    public ushort PKValue;    //衡量PK能力的一项属性,由攻防计算而得
    public ushort ActiveValue;    //击杀敌国阵营玩家和NPC的统计值
    public byte BackpackLV;    //背包等级
    public byte WarehouseLV;    //仓库等级
    public uint TeamID;    //队伍ID
    public byte UseGoldType;    //默认用金子/金票        类型为MoneyType
    public byte UseSilverType;    //默认用的银子/银票
    public byte AttackMode;    //攻击模式
    public uint LastWeekOnlineTime;    //上周在线时间
    public byte FBID;    //fb id
    public byte FamilyLV;    //家族等级
    public uint FriendFavor;    //好友人气值
    public uint Energy;    //精力值
    public uint EquipShowSwitch;    //装备显示开关
    public uint LuckValue;    //幸运值
    public uint ExAttr1;    //扩展属性1,各项目专用
    public uint ExAttr2;    //扩展属性2,各项目专用
    public uint ExAttr3;    //扩展属性3,各项目专用
    public uint ExAttr4;    //扩展属性4,各项目专用
    public uint ExAttr5;    //扩展属性5,各项目专用
    public byte Faction;    //阵营
    public uint InfamyValue;    //恶名值
    public byte OfficialRank;    //官阶,官职等级
    public uint ChangeCoinPointTotal;    //兑换的点数总计
    public byte VIPLv;    //VIP等级
    public byte VIPLvForPhone;    //移动VIP等级
    public uint ExAttr6;    //扩展属性6,各项目专用
    public uint ExAttr7;    //扩展属性7,各项目专用
    public uint ExAttr8;    //扩展属性8,各项目专用
    public uint ExAttr9;    //扩展属性9,各项目专用
    public uint ExAttr10;    //扩展属性10,各项目专用
    public uint ModelMark;    // 变形模型mark
    public uint ExAttr11;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr12;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr13;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr14;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint OperateInfo;    //玩家附加运营商信息
    public string Operate;    //所属运营商平台名
    public uint ServerID;    //所属区服ID
    public int BasicsMinimum;//基础最小攻击
    public int BasicsMaxAttack;//基础最大攻击
    public int BasicsLife;//基础生命
    public int BasicsDefense;//基础防御
    public int BasicsScoreAHit;//基础命中
    public int BasicsDodge;//基础闪避
    public byte FamilyLV;    //家族等级
    public uint FriendFavor;    //好友人气值
    public uint Energy;    //精力值
    public uint EquipShowSwitch;    //装备显示开关
    public uint LuckValue;    //幸运值
    public uint ExAttr1;    //扩展属性1,各项目专用
    public uint ExAttr2;    //扩展属性2,各项目专用
    public uint ExAttr3;    //扩展属性3,各项目专用
    public uint ExAttr4;    //扩展属性4,各项目专用
    public uint ExAttr5;    //扩展属性5,各项目专用
    public byte Faction;    //阵营
    public uint InfamyValue;    //恶名值
    public byte OfficialRank;    //官阶,官职等级
    public uint ChangeCoinPointTotal;    //兑换的点数总计
    public byte VIPLv;    //VIP等级
    public byte VIPLvForPhone;    //移动VIP等级
    public uint ExAttr6;    //扩展属性6,各项目专用
    public uint ExAttr7;    //扩展属性7,各项目专用
    public uint ExAttr8;    //扩展属性8,各项目专用
    public uint ExAttr9;    //扩展属性9,各项目专用
    public uint ExAttr10;    //扩展属性10,各项目专用
    public uint ModelMark;    // 变形模型mark
    public uint ExAttr11;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr12;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr13;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr14;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint OperateInfo;    //玩家附加运营商信息
    public string Operate;    //所属运营商平台名
    public uint ServerID;    //所属区服ID
    public uint ExAttr15;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr16;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr17;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr18;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr19;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr20;    //预留的扩展属性字段,用来存放项目特定的属性
    public H0102_tagCDBPlayer()
    {
@@ -120,7 +120,7 @@
        TransBytes(out LV, vBytes, NetDataType.WORD);
        TransBytes(out LVEx, vBytes, NetDataType.WORD);
        TransBytes(out LV2, vBytes, NetDataType.WORD);
        TransBytes(out ExpPoint, vBytes, NetDataType.WORD);
        TransBytes(out ExpPoint, vBytes, NetDataType.DWORD);
        TransBytes(out TotalExp, vBytes, NetDataType.DWORD);
        TransBytes(out Family, vBytes, NetDataType.DWORD);
        TransBytes(out FamilyName, vBytes, NetDataType.Chars, 33);
@@ -199,6 +199,12 @@
        TransBytes(out OperateInfo, vBytes, NetDataType.DWORD);
        TransBytes(out Operate, vBytes, NetDataType.Chars, 15);
        TransBytes(out ServerID, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr15, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr16, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr17, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr18, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr19, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr20, vBytes, NetDataType.DWORD);
    }
}
Core/NetworkPackage/ServerPack/H03_MainCharacter/H0309_tagPlayerLoginInfo.cs
@@ -12,8 +12,14 @@
    public byte Country;    //玩家国家
    public byte HavePswLV2;    //是否有二级密码
    public byte EquipCount;
    public tagLoginInfoEquip[] EquipInfo = null;    //size = EquipCount
    public tagLoginInfoEquip[] EquipInfo;    //size = EquipCount
    public uint EquipShowSwitch;    //玩家装备显示开关
    public uint ExAttr15;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr16;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr17;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr18;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr19;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr20;    //预留的扩展属性字段,用来存放项目特定的属性
    public H0309_tagPlayerLoginInfo()
    {
@@ -40,6 +46,12 @@
            TransBytes(out EquipInfo[i].UserData, vBytes, NetDataType.Chars, EquipInfo[i].UserDataLen);
        }
        TransBytes(out EquipShowSwitch, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr15, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr16, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr17, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr18, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr19, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr20, vBytes, NetDataType.DWORD);
    }
    public struct tagLoginInfoEquip
Core/NetworkPackage/ServerPack/H04_Scene/H0434_tagAreaPlayerAppearEx.cs
@@ -1,50 +1,56 @@
using UnityEngine;
using System.Collections;
//04 34 周围玩家出现合并封包#tagAreaPlayerAppearEx
//04 34 周围玩家出现合并封包#tagAreaPlayerAppearEx
public class H0434_tagAreaPlayerAppearEx : GameNetPackBasic
{
    public uint PlayerID;
    public string PlayerName;
    public byte IsAlive;    //玩家是否活着
    public ushort PosX;    // X坐标
    public ushort PosY;    // Y坐标
    public ushort Speed;    //速度
    public byte IsAlive;    //玩家是否活着
    public ushort PosX;    // X坐标
    public ushort PosY;    // Y坐标
    public ushort Speed;    //速度
    public ushort ReincarnationLv;
    public ushort LV;    //等级
    public ushort LV;    //等级
    public byte Job;
    public byte TeamLV;    //组队等级
    public uint TeamID;    //组队ID
    public byte TeamLV;    //组队等级
    public uint TeamID;    //组队ID
    public uint HP;
    public uint MaxHP;
    public byte PlayerState;    //TClientPlayerState 1. 脱机挂状态    玩家状态 打坐/马上/人镖合一
    public byte PlayerState;    //TClientPlayerState    玩家状态 打坐/马上/人镖合一
    public byte IsHideMask;
    public byte Country;    //玩家国家
    public uint FamilyID;    //家族ID
    public byte FamilyNameLen;    //家族名字
    public byte Country;    //玩家国家
    public uint FamilyID;    //家族ID
    public byte FamilyNameLen;    //家族名字
    public string FamilyName;    //size = FamilyNameLen
    public byte BuffCount;    //buff
    public tagAreaPlayerBuff[] BuffList = null;    //size = BuffCount
    public tagAreaPlayerBuff[] BuffList;    //size = BuffCount
    public byte EquipCount;
    public tagEquipInfo[] EquipInfo = null;    //size = EquipCount
    public byte IsVisible;    //是否隐身
    public uint EquipShowSwitch;    //玩家装备显示开关
    public byte FamilyMemberLV;    //家族成员等级
    public byte Faction;    //阵营
    public byte OfficialRank;    //官阶,官职等级
    public uint CurDienstgradID;    //当前装备的称号头衔ID
    public uint ModelMark;    //变形模型Mark
    public ushort PKValue;    //PKֵ
    public byte GMLevel;    //GM等级, 0:不是GM  >=1 : GM的等级
    public uint AtkInterval;    //攻击间隔
    public uint ExAttr1;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr2;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr3;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr4;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr5;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ServerID;    //所属区服ID
    public byte State;    // 0.正常在线1.脱机挂在线 2脱机挂死亡
    public tagEquipInfo[] EquipInfo;    //size = EquipCount
    public byte IsVisible;    //是否隐身
    public uint EquipShowSwitch;    //玩家装备显示开关
    public byte FamilyMemberLV;    //家族成员等级
    public byte Faction;    //阵营
    public byte OfficialRank;    //官阶,官职等级
    public uint CurDienstgradID;    //当前装备的称号头衔ID
    public uint ModelMark;    //变形模型Mark
    public ushort PKValue;    //PK值
    public byte GMLevel;    //GM等级, 0:不是GM  >=1 : GM的等级
    public uint AtkInterval;    //攻击间隔
    public uint ExAttr1;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr2;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr3;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr4;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr5;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ServerID;    //所属区服ID
    public byte State;    // 0.正常在线1.脱机挂在线 2脱机挂死亡
    public uint ExAttr15;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr16;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr17;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr18;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr19;    //预留的扩展属性字段,用来存放项目特定的属性
    public uint ExAttr20;    //预留的扩展属性字段,用来存放项目特定的属性
    public H0434_tagAreaPlayerAppearEx()
    {
@@ -111,15 +117,21 @@
        TransBytes(out ExAttr5, vBytes, NetDataType.DWORD);
        TransBytes(out ServerID, vBytes, NetDataType.DWORD);
        TransBytes(out State, vBytes, NetDataType.BYTE);
        TransBytes(out ExAttr15, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr16, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr17, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr18, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr19, vBytes, NetDataType.DWORD);
        TransBytes(out ExAttr20, vBytes, NetDataType.DWORD);
    }
    public struct tagEquipInfo
    {
        public byte Place;        //装备位置
        public uint ItemID;        //物品ID
        public byte IsSuite;        //是否已经套装化
        public byte Place;        //装备位置
        public uint ItemID;        //物品ID
        public byte IsSuite;        //是否已经套装化
        public uint UserDataLen;
        public string UserData;        // 附加数据
        public string UserData;        // 附加数据
    }
    public struct tagAreaPlayerBuff
@@ -127,7 +139,7 @@
        public byte BuffType;
        public ushort SkillID;
        public uint RemainTime;
        public uint OwnerID;        // buff来源者
        public uint OwnerID;        // buff来源者
        public byte OwnerType;
    }
Fight/GameActor/GA_Guard.cs
@@ -313,6 +313,7 @@
            m_Model.transform.SetParent(m_Root);
            m_Model.transform.localPosition = Vector3.zero;
            m_Model.transform.localScale = Vector3.one;
            m_Model.transform.localRotation = Quaternion.identity;
            RequestName();
@@ -505,7 +506,7 @@
                {
                    NextAction = GuardAction_Run;
                }
                GuardRun guardRun = m_Animator.GetBehaviour<GuardRun>();
                GuardRun guardRun = m_Animator.GetBehaviour<GuardRun>();
                guardRun.OnPickUpEnter();
            }
            return true;
Fight/GameActor/GActorNpcFight.cs
@@ -556,6 +556,7 @@
        m_Model.transform.SetParent(m_Root.transform);
        m_Model.transform.localPosition = Vector3.zero;
        m_Model.transform.localRotation = Quaternion.identity;
        m_Model.transform.localScale = Vector3.one;
    }
    /// <summary>
Fight/GameActor/GActorNpcNoFight.cs
@@ -213,6 +213,7 @@
            m_Model.transform.SetParent(m_Root);
            m_Model.transform.localPosition = Vector3.zero;
            m_Model.transform.localScale = Vector3.one;
            m_Model.transform.localRotation = Quaternion.identity;
            RequestName();
System/DailyQuest/DailyQuestModel.cs
@@ -740,21 +740,21 @@
                    }
                    else
                    {
                        if (unLock1 && !unLock2)
                        if (!miss1 && miss2)
                        {
                            return -1;
                        }
                        else if (!unLock1 && unLock2)
                        else if (miss1 && !miss2)
                        {
                            return 1;
                        }
                        else
                        {
                            if (!miss1 && miss2)
                            if (unLock1 && !unLock2)
                            {
                                return -1;
                            }
                            else if (miss1 && !miss2)
                            else if (!unLock1 && unLock2)
                            {
                                return 1;
                            }
@@ -763,6 +763,7 @@
                                return _lhs < _rhs ? -1 : 1;
                            }
                        }
                    }
                }
            }
System/Dungeon/DungeonAssistWin.cs
New file
@@ -0,0 +1,69 @@
using System;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class DungeonAssistWin : Window
    {
        [SerializeField] ScrollerController resultCtrl;
        [SerializeField] Text assistNumText;
        [SerializeField] Text dayScoreText;
        [SerializeField] Text dungeonScoreText;
        [SerializeField] Button closeBtn;
        [SerializeField] Button storeBtn;
        [SerializeField] Button registerBtn;
        #region Built-in
        protected override void BindController()
        {
            resultCtrl.OnRefreshCell += RefreshResultCell;
        }
        protected override void AddListeners()
        {
            closeBtn.AddListener(CloseClick);
            storeBtn.AddListener(ClickStore);
            registerBtn.AddListener(ClickAssistRegister);
        }
        protected override void OnPreOpen()
        {
        }
        protected override void OnAfterOpen()
        {
            this.transform.SetAsLastSibling();
        }
        protected override void OnPreClose()
        {
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        private void RefreshResultCell(ScrollerDataType type, CellView cell)
        {
        }
        private void ClickAssistRegister()
        {
            throw new NotImplementedException();
        }
        private void ClickStore()
        {
            throw new NotImplementedException();
        }
    }
}
System/Dungeon/DungeonAssistWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 89ce153767c4ccb40a9491efb780f620
timeCreated: 1542254377
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Dungeon/IceCrystalVeinModel.cs
New file
@@ -0,0 +1,84 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Thursday, November 15, 2018
//--------------------------------------------------------
//冰晶矿脉新
using System;
using System.Collections.Generic;
using TableConfig;
using Snxxz.UI;
[XLua.LuaCallCSharp]
public class IceLodeStarAwardClass
{
    public int Index;
    public int Star;
    public int MinLv;
    public int MaxLv;
    public int ItemID;
    public int ItemCount;
    public int IsBind;
    public int Type;
}
public class IceCrystalVeinModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
    public Dictionary<int, IceLodeStarAwardClass> DicIceLodeStarAward = new Dictionary<int, IceLodeStarAwardClass>();
    public override void Init()
    {
        Assignment();
    }
    public void OnBeforePlayerDataInitialize()
    {
    }
    public override void UnInit()
    {
    }
    public void OnPlayerLoginOk()
    {
    }
    private void Assignment()
    {
        if (DicIceLodeStarAward.Count <= 0)
        {
            var config = Config.Instance.GetAllValues<IceLodeStarAwardConfig>();
            foreach (var Value in config)
            {
                if (!DicIceLodeStarAward.ContainsKey(Value.id))
                {
                    IceLodeStarAwardClass iceLodeStar = new IceLodeStarAwardClass();
                    iceLodeStar.Index = Value.index;
                    iceLodeStar.Star = Value.Star;
                    var _jsonData = LitJson.JsonMapper.ToObject(Value.LV);
                    if (_jsonData.Count > 0)
                    {
                        iceLodeStar.MinLv = int.Parse(_jsonData[0].ToString());
                        iceLodeStar.MaxLv = int.Parse(_jsonData[1].ToString());
                    }
                    var jsonData = LitJson.JsonMapper.ToObject(Value.ItemList);
                    if (jsonData.Count > 0)
                    {
                        iceLodeStar.ItemID = int.Parse((jsonData[0][0]).ToString());
                        iceLodeStar.ItemCount = int.Parse((jsonData[0][1]).ToString());
                        iceLodeStar.IsBind = int.Parse((jsonData[0][2]).ToString());
                    }
                    iceLodeStar.Type = Value.Type;
                    DicIceLodeStarAward.Add(Value.id, iceLodeStar);
                }
            }
        }
    }
}
System/Dungeon/IceCrystalVeinModel.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 60541ff2122967249beb1f30d9fdd254
timeCreated: 1542267471
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Dungeon/IceCrystalVeinWin.cs
@@ -22,11 +22,12 @@
        [SerializeField] Transform m_GridMiddle;//中间组
        [SerializeField] Transform m_GridBottom;//底层组
        ItemTipsModel _itemTipsModel;
        ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
        ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
        IceCrystalVeinModel m_IceCrystalVeinModel;
        IceCrystalVeinModel iceCrystalVeinModel { get { return m_IceCrystalVeinModel ?? (m_IceCrystalVeinModel = ModelCenter.Instance.GetModel<IceCrystalVeinModel>()); } }
        private int IndexSelect = 1;
        private List<int> IceCrystalVeinMiddle = new List<int>();
        private List<int> IceCrystalVeinStarBottom = new List<int>();
        private List<int> IceCrystalVeinBottom = new List<int>();
        private List<IceLodeStarAwardClass> IceLodeStarAwardList = new List<IceLodeStarAwardClass>();
        #region Built-in
        protected override void BindController()
        {
@@ -36,17 +37,6 @@
            for (int i = 0; i < IceCrystalVeinReward.Length; i++)
            {
                IceCrystalVeinMiddle.Add(IceCrystalVeinReward[i]);
            }
            var _IceCrystalVeinStarReward = Config.Instance.Get<FuncConfigConfig>("IceCrystalVeinStarReward");
            int[] _IceCrystalVeinStarBottom = ConfigParse.GetMultipleStr<int>(_IceCrystalVeinStarReward.Numerical1);
            for (int i = 0; i < _IceCrystalVeinStarBottom.Length; i++)
            {
                IceCrystalVeinStarBottom.Add(_IceCrystalVeinStarBottom[i]);
            }
            int[] _IceCrystalVeinBottom = ConfigParse.GetMultipleStr<int>(_IceCrystalVeinStarReward.Numerical2);
            for (int i = 0; i < _IceCrystalVeinBottom.Length; i++)
            {
                IceCrystalVeinBottom.Add(_IceCrystalVeinBottom[i]);
            }
        }
@@ -60,6 +50,7 @@
        protected override void OnPreOpen()
        {
            OnCreateGridLineCell(m_ScrollerController);
            AddIceLodeStarAwardList();
            SetGridMiddle();
            SetGridBotton();
        }
@@ -158,18 +149,19 @@
            {
                GameObject ObjChild = m_GridBottom.GetChild(i).gameObject;
                if (i < IceCrystalVeinBottom.Count)
                if (i < IceLodeStarAwardList.Count)
                {
                    IceLodeStarAwardClass IceLode = IceLodeStarAwardList[i];
                    ObjChild.SetActive(true);
                    ItemCell _ItemCell = ObjChild.transform.Find("ItemCell_1").GetComponent<ItemCell>();
                    Text TextStar= ObjChild.transform.Find("Text_Star").GetComponent<Text>();
                    TextStar.text = "0/"+IceCrystalVeinStarBottom[i];
                    ItemCellModel cellModel = new ItemCellModel(IceCrystalVeinBottom[i], true, (ulong)1);
                    TextStar.text = "0/"+ IceLode.Star;
                    ItemCellModel cellModel = new ItemCellModel(IceLode.ItemID, true, (ulong)1);
                    _ItemCell.Init(cellModel);
                    int type = i;
                    _ItemCell.cellBtn.SetListener(() =>
                    {
                        ItemAttrData attrData = new ItemAttrData(IceCrystalVeinBottom[type], false, (ulong)1);
                        ItemAttrData attrData = new ItemAttrData(IceLode.ItemID, false, (ulong)1);
                        itemTipsModel.SetItemTipsModel(attrData);
                    });
                }
@@ -179,6 +171,19 @@
                }
            }
        }
        private void AddIceLodeStarAwardList()
        {
            IceLodeStarAwardList.Clear();
            foreach (var key in iceCrystalVeinModel.DicIceLodeStarAward.Keys)
            {
                var Dic = iceCrystalVeinModel.DicIceLodeStarAward[key];
                int Lv = PlayerDatas.Instance.baseData.LV;
                if (Lv >= Dic.MinLv && Lv <= Dic.MaxLv)
                {
                    IceLodeStarAwardList.Add(Dic);
                }
            }
        }
    }
}
System/FindPrecious/FindPreciousBossRebornBehaviour.cs
@@ -16,12 +16,14 @@
    public class FindPreciousBossRebornBehaviour : MonoBehaviour
    {
        [SerializeField] RectTransform m_ContainerBossReborn;
        [SerializeField] Text m_BossRebornTimer;
        [SerializeField] Image m_BossIcon;
        [SerializeField] Text m_BossName;
        [SerializeField] Text m_BossLevel;
        [SerializeField] Button m_Goto;
        [SerializeField] Button m_Close;
        float timer = 0f;
        MapModel mapModel { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
        FindPreciousModel model { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
@@ -33,6 +35,18 @@
        {
            m_Goto.AddListener(GotoKillBoss);
            m_Close.AddListener(ReportConfirmBossRebornNotify);
            timer = 0f;
            DisplayRebornCountDown();
        }
        private void LateUpdate()
        {
            timer += Time.deltaTime;
            if (timer > 1f)
            {
                timer = 0f;
                DisplayRebornCountDown();
            }
        }
        private void OnDisable()
@@ -184,7 +198,7 @@
                if (mapConfig.MapFBType == (int)MapType.OpenCountry)
                {
                    EnterBossHome(config.FloorNum,_bossId);
                    EnterBossHome(config.FloorNum, _bossId);
                }
                else
                {
@@ -249,7 +263,7 @@
            }
        }
        private void EnterBossHome(int _floor,int _bossId)
        private void EnterBossHome(int _floor, int _bossId)
        {
            var error = 0;
            if (TestEnterBossHomeDungeon(_floor, out error))
@@ -340,6 +354,32 @@
            return true;
        }
        private void DisplayRebornCountDown()
        {
            var bossId = model.currentBossNotify;
            if (model.IsBossAlive(bossId))
            {
                m_BossRebornTimer.text = Language.Get("BossAlreadyReborn");
            }
            else
            {
                FindPreciousModel.BossInfo bossInfo;
                if (model.TryGetBossInfo(bossId, out bossInfo))
                {
                    var rebornCountDown = (int)(bossInfo.refreshTime - TimeUtility.ServerNow).TotalSeconds;
                    if (rebornCountDown < 1)
                    {
                        m_BossRebornTimer.text = Language.Get("BossAlreadyReborn");
                    }
                    else
                    {
                        m_BossRebornTimer.text = Language.Get("BossRebornCountDown", rebornCountDown);
                    }
                }
            }
        }
    }
}
System/FindPrecious/FindPreciousModel.cs
@@ -10,7 +10,7 @@
    [XLua.LuaCallCSharp]
    public class FindPreciousModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk, IMapInitOk, ISwitchAccount
    {
        public const int PREPOSE_SECONDS = 300;
        public const int PREPOSE_SECONDS = 120;
        public const int FINDPRECIOUS_REDPOINTID = 76000;
        public const int LOOTPRECIOUs_REDPOINTID = 77000;
System/KnapSack/Logic/ItemTipsModel.cs
@@ -2283,7 +2283,7 @@
        /// <param name="type"></param>
        /// <param name="lv"></param>
        /// <param name="values"></param>
        private EquipWashConfig tagWashModel;
        private EquipWashConfig.EquipWashData tagWashModel;
        public void SetWashModel(int type, int lv, int[] values)
        {
            washDataDict = null;
@@ -2304,23 +2304,26 @@
            }
            washDataDict = new Dictionary<int, int>();
            this.tagWashModel = EquipWashConfig.GetCurrentWashEquipModel(type, lv);
            for (i = 0; i < values.Length; i++)
            this.tagWashModel = EquipWashConfig.GetEquipWashData(type, lv);
            if(this.tagWashModel != null)
            {
                switch (i)
                for (i = 0; i < values.Length; i++)
                {
                    case 0:
                        washDataDict.Add(tagWashModel.attType1, values[0]);
                        break;
                    case 1:
                        washDataDict.Add(tagWashModel.attType2, values[1]);
                        break;
                    case 2:
                        washDataDict.Add(tagWashModel.attType3, values[2]);
                        break;
                    switch (i)
                    {
                        case 0:
                            washDataDict.Add(tagWashModel.washConfig.attType1, values[0]);
                            break;
                        case 1:
                            washDataDict.Add(tagWashModel.washConfig.attType2, values[1]);
                            break;
                        case 2:
                            washDataDict.Add(tagWashModel.washConfig.attType3, values[2]);
                            break;
                    }
                }
            }
        }
        //设置弹框的宝石数据
System/Loading/LoadingWin.cs
@@ -9,6 +9,8 @@
using UnityEngine;
using UnityEngine.UI;
using TableConfig;
using LitJson;
using System.Text.RegularExpressions;
namespace Snxxz.UI
{
@@ -59,49 +61,87 @@
            }
            else
            {
                var playerLevel = PlayerDatas.Instance.baseData.LV == 0 ? PlayerDatas.Instance.loginInfo.LV : PlayerDatas.Instance.baseData.LV;
                var mapResConfig = Config.Instance.Get<MapResourcesConfig>(targetMapResId);
                if (mapResConfig != null && mapResConfig.LoadingBG.Length > 0)
                if (mapResConfig != null)
                {
                    var randomIndex = UnityEngine.Random.Range(0, mapResConfig.LoadingBG.Length > 1 ? mapResConfig.LoadingBG.Length + 1 : 1);
                    if (randomIndex == mapResConfig.LoadingBG.Length)
                    var loadingBackGroudConfig = Config.Instance.Get<LoadingBackGroundConfig>(mapResConfig.DataID);
                    if (loadingBackGroudConfig != null && loadingBackGroudConfig.icons.Length > 0)
                    {
                        m_BackGround.SetSprite(GeneralDefine.LoadLV);
                        m_ContainerFunctions.gameObject.SetActive(true);
                        var functions = GetShowFunctions(PlayerDatas.Instance.baseData.LV == 0 ? PlayerDatas.Instance.loginInfo.LV : PlayerDatas.Instance.baseData.LV);
                        for (int i = 0; i < m_FunctionShows.Length; i++)
                        var icons = new List<string>();
                        var json = JsonMapper.ToObject(loadingBackGroudConfig.levelLimit);
                        for (var i = 0; i < loadingBackGroudConfig.icons.Length; i++)
                        {
                            var show = m_FunctionShows[i];
                            show.Display(functions[i]);
                            var icon = loadingBackGroudConfig.icons[i];
                            if (json.Keys.Contains(icon))
                            {
                                var min = 0;
                                var max = int.MaxValue;
                                var levelLimit = json[icon].ToString();
                                var levelsMatch = Regex.Matches(levelLimit, "\\d+");
                                if (levelsMatch.Count > 0)
                                {
                                    min = int.Parse(levelsMatch[0].Value);
                                }
                                if (levelsMatch.Count > 1)
                                {
                                    max = int.Parse(levelsMatch[1].Value);
                                }
                                if (playerLevel > min && playerLevel < max)
                                {
                                    icons.Add(icon);
                                }
                            }
                            else
                            {
                                icons.Add(icon);
                            }
                        }
                    }
                    else
                    {
                        m_BackGround.SetSprite(mapResConfig.LoadingBG[randomIndex]);
                        m_ContainerFunctions.gameObject.SetActive(false);
                    }
                }
                if (mapResConfig != null && !string.IsNullOrEmpty(mapResConfig.LoadName))
                {
                    m_ContainerMapName.gameObject.SetActive(true);
                    m_MapName.SetSprite(mapResConfig.LoadName);
                }
                else
                {
                    m_ContainerMapName.gameObject.SetActive(false);
                }
                        var randomIndex = UnityEngine.Random.Range(0, loadingBackGroudConfig.icons.Length > 1 ? icons.Count + 1 : 1);
                        if (randomIndex == icons.Count)
                        {
                            m_BackGround.SetSprite(GeneralDefine.LoadLV);
                            m_ContainerFunctions.gameObject.SetActive(true);
                            var functions = GetShowFunctions(playerLevel);
                            for (int i = 0; i < m_FunctionShows.Length; i++)
                            {
                                var show = m_FunctionShows[i];
                                show.Display(functions[i]);
                            }
                        }
                        else
                        {
                            m_BackGround.SetSprite(icons[randomIndex]);
                            m_ContainerFunctions.gameObject.SetActive(false);
                        }
                if (mapResConfig != null && !string.IsNullOrEmpty(mapResConfig.LoadDescription))
                {
                    m_ContainerMapDescription.gameObject.SetActive(true);
                    m_MapDescription.SetSprite(mapResConfig.LoadDescription);
                }
                else
                {
                    m_ContainerMapDescription.gameObject.SetActive(false);
                        if (loadingBackGroudConfig != null && !string.IsNullOrEmpty(loadingBackGroudConfig.name))
                        {
                            m_ContainerMapName.gameObject.SetActive(true);
                            m_MapName.SetSprite(loadingBackGroudConfig.name);
                        }
                        else
                        {
                            m_ContainerMapName.gameObject.SetActive(false);
                        }
                        if (loadingBackGroudConfig != null && !string.IsNullOrEmpty(loadingBackGroudConfig.description))
                        {
                            m_ContainerMapDescription.gameObject.SetActive(true);
                            m_MapDescription.SetSprite(loadingBackGroudConfig.description);
                        }
                        else
                        {
                            m_ContainerMapDescription.gameObject.SetActive(false);
                        }
                    }
                }
            }
            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
System/OpenServerActivity/OperationWishingWellInfo.cs
@@ -37,9 +37,37 @@
        public int GetActivityDay()
        {
            int dayIndex = IndexOfDays(TimeUtility.ServerNow);
            if(resetType == 0)
            {
                return dayIndex + 1;
            }
            else if(resetType == 1)
            {
                if(IsLastDay)
                {
                    return dayIndex;
                }
                else
                {
                    return dayIndex + 1;
                }
            }
            return dayIndex + 1;
        }
        public int GetActivitySumDay()
        {
           if(resetType == 0)
            {
                return totalDays + 1;
            }
           else if(resetType == 1)
            {
                return totalDays;
            }
            return totalDays;
        }
        public void ParsePackage(HAA19_tagMCActWishingWellInfo package)
        {
            for (int i = 0; i < package.Count; i++)
System/OpenServerActivity/WishingPoolWin.cs
@@ -91,7 +91,7 @@
            UpdateActivityState();
            UpdateDayRemainTime();
            activityDayText.text = Language.Get("WishingPool103", operation.GetActivityDay());
            totalDayText.text = Language.Get("WishingPool101", Language.Get(StringUtility.Contact("Num_CHS_", operation.totalDays + 1)));
            totalDayText.text = Language.Get("WishingPool101", Language.Get(StringUtility.Contact("Num_CHS_", operation.GetActivitySumDay())));
            handImg.gameObject.SetActive(false);
            playTimes = 0;
            handAlpha.DOKill();
System/Strengthening/EquipWashCell.cs
@@ -23,7 +23,7 @@
    public void SetDisplayModel(WashProCount washPro, int repointId, int index, int selectIndex)
    {
        ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip, washPro.EquipPlace);
        EquipWashConfig washModel = EquipWashConfig.GetCurrentWashEquipModel(equipWashModel.OnGetWashType(washPro.EquipPlace), washPro.XLAttrLV);
        var washModel = EquipWashConfig.GetEquipWashData(equipWashModel.OnGetWashType(washPro.EquipPlace), washPro.XLAttrLV);
        washRedpoint.redpointId = repointId;
        if (itemModel != null && washModel != null)
        {
@@ -34,7 +34,7 @@
            nameText.text = UIHelper.AppendStringColor(itemModel.chinItemModel.ItemColor, itemModel.chinItemModel.ItemName, true);
            //pdr ToDo
            itemCell.Init(itemModel);
            washLevelText.text = equipWashModel.GetCurWashLvStr(washPro, washModel);
            washLevelText.text = equipWashModel.GetCurWashLvStr(washPro, washModel.washConfig);
        }
        else
        {
System/Strengthening/EquipWashModel.cs
@@ -93,6 +93,7 @@
    public override void Init()
    {
        ParseFuncConfig();
        _equipWashLimitDict.Clear();
        FuncConfigConfig washGroup1Model = Config.Instance.Get<FuncConfigConfig>("EquipWashGroup1");
        FuncConfigConfig washGroup2Model = Config.Instance.Get<FuncConfigConfig>("EquipWashGroup2");
@@ -158,6 +159,15 @@
        PlayerPrefs.DeleteKey(MasterGroup3RaiseKey);
        CheckIsMasterLv();
    }
    #region 解析本地数据
    public int mustWashMatId { get; private set;}
    private void ParseFuncConfig()
    {
        var equipWashMustID = Config.Instance.Get<FuncConfigConfig>("EquipWashMustID");
        mustWashMatId = int.Parse(equipWashMustID.Numerical1);
    }
    #endregion
    public int[] washPlacelist { get; private set; }
    public List<WashProCount> washProlist { get; private set; }
@@ -600,10 +610,12 @@
        for (i = 0; i < orderWashProlist.Count; i++)
        {
            ItemModel model = playerPack.GetItemModelByIndex(PackType.rptEquip, orderWashProlist[i].EquipPlace);
            EquipWashConfig washModel = EquipWashConfig.GetCurrentWashEquipModel(OnGetWashType(orderWashProlist[i].EquipPlace), orderWashProlist[i].XLAttrLV);
            var washModel = EquipWashConfig.GetEquipWashData(OnGetWashType(orderWashProlist[i].EquipPlace), orderWashProlist[i].XLAttrLV);
            if (model != null && washModel != null)
            {
                if (IsCanWash(model) && IsEnoughMat(washModel) && !IsWashFull(model, orderWashProlist[i], washModel)
                if (IsCanWash(model)
                    && IsEnoughMat(washModel.washConfig)
                    && !IsWashFull(model, orderWashProlist[i], washModel.washConfig)
                    && FuncOpen.Instance.IsFuncOpen(91))
                {
                    RedpointWashDict.Add(i, orderWashProlist[i]);
System/Strengthening/WashProModel.cs
@@ -76,7 +76,8 @@
        this.washPro = washPro;
        this.isPerfect = false;
        this.preViewStr = "";
        this._preTagWashModel = EquipWashConfig.GetCurrentWashEquipModel(washModel.type, washPro.XLAttrLV -1);
        var equipWashData = EquipWashConfig.GetEquipWashData(washModel.type, washPro.XLAttrLV - 1);
        this._preTagWashModel = equipWashData == null ? null : equipWashData.washConfig;
        switch (attrType)
        {
            case WashAttrType.attack:
System/Strengthening/WashTips.cs
@@ -42,20 +42,17 @@
    [SerializeField]
    UIEffect washEffect;
    [SerializeField]
    UIEffect mustWashEffect;
    [SerializeField] float offest = 50;
    #endregion
    private WashProCount _washProModel;
    private EquipWashConfig _tagWashModel;
    private EquipWashConfig.EquipWashData _tagWashModel;
    private ItemModel _itemModel; //洗练的装备
    private List<string> _costMoneylist = null;
    private int _costmoney = 0;
    public int CostMoney
    {
        get { return _costmoney; }
        set { _costmoney = value; }
    }
    private int[] _costMoneylist = null;
    private List<WashProCount> _washInfolist;
    private int curWashEquip = 0;
@@ -112,7 +109,7 @@
        _specWashOpenCondition.gameObject.SetActive(true);
        _specWashFullText.gameObject.SetActive(false);
        _equipWashCtrl.OnRefreshCell += RefreshEquipWashCell;
        EquipReinforceEventMgr.Instance.RefreshWashCostMoneyEvent = RefreshCostMoney;
        EquipReinforceEventMgr.Instance.RefreshWashCostMoneyEvent = UpdateMustWash;
        _openSpecWashPro.SetActive(false);
    }
@@ -168,8 +165,10 @@
                    ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip,washPro.EquipPlace);
                    if(itemModel != null)
                    {
                        EquipWashConfig washModel = EquipWashConfig.GetCurrentWashEquipModel(equipWashModel.OnGetWashType(washPro.EquipPlace), washPro.XLAttrLV);
                        if (equipWashModel.IsEnoughMat(washModel) && equipWashModel.IsCanWash(itemModel))
                        var washModel = EquipWashConfig.GetEquipWashData(equipWashModel.OnGetWashType(washPro.EquipPlace), washPro.XLAttrLV);
                        if (washModel!= null
                            && equipWashModel.IsEnoughMat(washModel.washConfig)
                            && equipWashModel.IsCanWash(itemModel))
                        {
                            jumpToWashId = washPro.EquipPlace;
                            isWash = true;
@@ -269,13 +268,13 @@
            }
        }
        ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip, washPro.EquipPlace);
        EquipWashConfig washModel = EquipWashConfig.GetCurrentWashEquipModel(equipWashModel.OnGetWashType(washPro.EquipPlace), washPro.XLAttrLV);
        var washModel = EquipWashConfig.GetEquipWashData(equipWashModel.OnGetWashType(washPro.EquipPlace), washPro.XLAttrLV);
        _washProModel = washPro;
        _tagWashModel = washModel;
        _costMoneylist = GetToolsList(_tagWashModel.costMoneyList, _costMoneylist);
        washAttrModel.SetUIModel(washModel, washPro, WashAttrType.attack);
        washAttrModel.SetUIModel(washModel, washPro, WashAttrType.life);
        washAttrModel.SetUIModel(washModel, washPro, WashAttrType.ignoredefence);
        _costMoneylist = _tagWashModel.mustCosts;
        washAttrModel.SetUIModel(washModel.washConfig, washPro, WashAttrType.attack);
        washAttrModel.SetUIModel(washModel.washConfig, washPro, WashAttrType.life);
        washAttrModel.SetUIModel(washModel.washConfig, washPro, WashAttrType.ignoredefence);
        _attackWashPro.RefreshUI(WashAttrType.attack);
        _lifeWashPro.RefreshUI(WashAttrType.life);
        _ignoreDefenceWashPro.RefreshUI(WashAttrType.ignoredefence);
@@ -288,14 +287,6 @@
        {
            _washLevelTitle.text = Language.Get("EquipWash108", washPro.XLAttrLV);
        }
        _costMatCell.gameObject.SetActive(true);
        ItemCellModel cellModel = new ItemCellModel(washModel.costItem);
        _costMatCell.Init(cellModel);
        _costMatCell.cellBtn.RemoveAllListeners();
        _costMatCell.cellBtn.onClick.AddListener(() =>
        {
            itemPathModel.SetChinItemModel(washModel.costItem);
        });
        #region 刷新物品UI
        if (itemModel == null)
@@ -306,7 +297,6 @@
        else
        {
            noEquipObj.SetActive(false);
            RefreshCostItem(itemModel.packType, itemModel.itemInfo.ItemPlace, itemModel.itemInfo.ItemID);
            _itemModel = itemModel;
            _washEquipCell.gameObject.SetActive(true);
            _washEquipCell.Init(itemModel);
@@ -315,10 +305,9 @@
            {
                itemTipsModel.SetItemTipsModel(PackType.rptEquip, itemModel.itemInfo.ItemGUID);
            });
            RefreshCostMoney();
        }
        UpdateMustWash();
        #endregion
        RefreshSpecWashUI();
@@ -331,17 +320,15 @@
    //刷新材料
    public void RefreshCostItem(PackType type, int index, int id)
    {
        SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem);
        if (singlePack == null)
            return;
        if (type != PackType.rptItem) return;
        UpdateMustWash();
        _costMatCell.countText.gameObject.SetActive(true);
        int bagItemCount = singlePack.GetItemCountByID(_tagWashModel.costItem);
        if (bagItemCount >= _tagWashModel.costCount)
            _costMatCell.countText.text = UIHelper.AppendStringColor(TextColType.Green, bagItemCount.ToString(),true) + "/" + _tagWashModel.costCount;
        else
            _costMatCell.countText.text = UIHelper.AppendStringColor(TextColType.Red, bagItemCount.ToString()) + "/" + _tagWashModel.costCount;
    }
    private void UpdateMustWash()
    {
        UpdateWashMat();
        UpdateMustWashCostMoney();
    }
    public void UpdateWashMat()
@@ -351,11 +338,26 @@
        contain_Default.SetActive(!isMustAdd);
        if (!isMustAdd)
        {
            UpdateItemCell(_tagWashModel.costItem,_costMatCell,_tagWashModel.costCount);
            UpdateItemCell(_tagWashModel.washConfig.costItem,_costMatCell,_tagWashModel.washConfig.costCount);
        }
        else
        {
            UpdateItemCell(_tagWashModel.costItem, contain_Cost_NormalItem, _tagWashModel.costCount);
            UpdateItemCell(_tagWashModel.washConfig.costItem, contain_Cost_NormalItem, _tagWashModel.washConfig.costCount);
            UpdateItemCell(equipWashModel.mustWashMatId, contain_Cost_MustAddItem, GetMustAddCost());
        }
    }
    private void UpdateMustWashCostMoney()
    {
        int goldCount = (int)PlayerDatas.Instance.baseData.Gold;
        int costMoney = GetCostMoney();
        if (goldCount >= costMoney)
        {
            contain_Cost_Money.text = StringUtility.Contact("<color=#109D06>", costMoney, "</color>");
        }
        else
        {
            contain_Cost_Money.text = StringUtility.Contact("<color=#ff0000>", costMoney, "</color>");
        }
    }
@@ -363,7 +365,7 @@
    {
        ItemCellModel cellModel = new ItemCellModel(itemId);
        itemCell.Init(cellModel);
        itemCell.countText.gameObject.SetActive(true);
        itemCell.countText.gameObject.SetActive(_washProModel.isPutOn);
        int haveNum = playerPack.GetItemCountByID(PackType.rptItem,itemId);
        string matNumStr = string.Empty;
        if (haveNum >= needNum)
@@ -382,6 +384,25 @@
        });
    }
    private int GetCostMoney()
    {
        int costMatId = equipWashModel.mustWashMatId;
        int costNum = GetMustAddCost();
        int haveNum = playerPack.GetItemCountByID(PackType.rptItem, costMatId);
        var storeConfig = StoreConfig.GetStoreCfg(costMatId, 1);
        int matPrice = storeConfig == null ? 0 : storeConfig.MoneyNumber;
        int costMoney = 0;
        if (haveNum < costNum)
        {
            costMoney = (costNum - haveNum) * matPrice;
        }
        return costMoney;
    }
    /// <summary>
    /// 获得勾选几条必增数量
    /// </summary>
    /// <returns></returns>
    public int GetMustAddNum()
    {
        int needAddCount = 0;
@@ -402,48 +423,19 @@
        return needAddCount;
    }
    //刷新仙玉
    public void RefreshCostMoney()
    /// <summary>
    /// 获得必增消耗的数量
    /// </summary>
    /// <returns></returns>
    public int GetMustAddCost()
    {
        int needAddCount = 0;
        if (_attackWashPro.toggleIsOn)
            needAddCount += 1;
        int mustAddNum = GetMustAddNum();
        if (_tagWashModel == null || mustAddNum < 1) return 0;
        if (_lifeWashPro.toggleIsOn)
            needAddCount += 1;
        if (_ignoreDefenceWashPro.toggleIsOn)
            needAddCount += 1;
        if (needAddCount == 0)
        {
            CostMoney = 0;
        }
        else if (needAddCount == 1)
        {
            CostMoney = int.Parse(GetCostMoneyList()[0]);
        }
        else if (needAddCount == 2)
        {
            CostMoney = int.Parse(GetCostMoneyList()[1]);
        }
        else if (needAddCount == 3)
        {
            CostMoney = int.Parse(GetCostMoneyList()[2]);
        }
        int goldCount = (int)PlayerDatas.Instance.baseData.Gold;
        if (goldCount >= CostMoney)
        {
            _costMoneyText.text = StringUtility.Contact("<color=#109D06>", CostMoney.ToString(), "</color>");
        }
        else
        {
            _costMoneyText.text = StringUtility.Contact("<color=#ff0000>", CostMoney.ToString(), "</color>");
        }
        int index = mustAddNum - 1;
        return mustAddNum > _tagWashModel.mustCosts.Length ? 0 : _tagWashModel.mustCosts[index];
    }
    //刷新特殊洗练UI
    public void RefreshSpecWashUI()
@@ -530,7 +522,7 @@
            {
                if (equipWashModel.IsSaveWashValue(_washProModel))
                {
                    if (equipWashModel.IsWashFull(_itemModel, _washProModel, _tagWashModel))
                    if (equipWashModel.IsWashFull(_itemModel, _washProModel, _tagWashModel.washConfig))
                    {
                        if(_washProModel.XLAttrLV  >= equipWashModel.GetMaxWashLv(_itemModel.chinItemModel.EquipPlace)
                            && _washProModel.XLAttrLV <= equipWashModel.GetWashFullLv(_itemModel.chinItemModel.EquipPlace, _itemModel.chinItemModel.LV))
@@ -611,54 +603,58 @@
    {
        if (_washProModel.isPutOn)
        {
            int costMoney = GetCostMoney();
            int goldCount = (int)PlayerDatas.Instance.baseData.Gold;
            if (equipWashModel.IsEnoughMat(_tagWashModel))
            int mustAddNum = GetMustAddNum();
            if (equipWashModel.IsEnoughMat(_tagWashModel.washConfig))
            {
                if (CostMoney > 0)
                if (costMoney > 0)
                {
                    if (goldCount >= CostMoney)
                    int costNum = GetMustAddCost();
                    int haveNum = playerPack.GetItemCountByID(PackType.rptItem,equipWashModel.mustWashMatId);
                    string costMat = StringUtility.Contact(haveNum,"/",costNum);
                    if (isOpenPrompting)
                    {
                        if (isOpenPrompting)
                        ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), Language.Get("EquipWash103",costMat,costMoney),
                        Language.Get("ConfirmCancel101"), (bool isOk, bool isToggle) =>
                        {
                            ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), Language.Get("EquipWash103", CostMoney),
                            Language.Get("ConfirmCancel101"), (bool isOk, bool isToggle) =>
                            if (isOk)
                            {
                                if (isOk)
                                if(IsMoneyEnough())
                                {
                                    washEffect.Play();
                                    mustWashEffect.Play();
                                    equipWashModel.SendWashQuest(_washProModel.EquipPlace, GetWashCheckUseGoldAttr());
                                }
                            }
                                isOpenPrompting = !isToggle;
                            });
                        }
                        else
                        {
                            washEffect.Play();
                            equipWashModel.SendWashQuest(_washProModel.EquipPlace, GetWashCheckUseGoldAttr());
                        }
                            isOpenPrompting = !isToggle;
                        });
                    }
                    else
                    {
                        if (VersionConfig.Get().isBanShu)
                        if(IsMoneyEnough())
                        {
                            SysNotifyMgr.Instance.ShowTip("GoldErr");
                            return;
                            mustWashEffect.Play();
                            equipWashModel.SendWashQuest(_washProModel.EquipPlace, GetWashCheckUseGoldAttr());
                        }
                        WindowCenter.Instance.Open<RechargeTipWin>();
                    }
                }
                else
                {
                    washEffect.Play();
                    if(mustAddNum > 0)
                    {
                        mustWashEffect.Play();
                    }
                    else
                    {
                        washEffect.Play();
                    }
                    equipWashModel.SendWashQuest(_washProModel.EquipPlace, GetWashCheckUseGoldAttr());
                }
            }
            else
            {
                itemPathModel.SetChinItemModel(_tagWashModel.costItem);
                itemPathModel.SetChinItemModel(_tagWashModel.washConfig.costItem);
            }
        }
        else
@@ -666,6 +662,18 @@
            SysNotifyMgr.Instance.ShowTip("Wash_NoEquip1");
        }
    }
    private bool IsMoneyEnough()
    {
        int costMoney = GetCostMoney();
        int goldCount = (int)PlayerDatas.Instance.baseData.Gold;
        if(goldCount < costMoney)
        {
            WindowCenter.Instance.Open<RechargeTipWin>();
            return false;
        }
        return true;
    }
    private int GetWashCheckUseGoldAttr()
@@ -737,14 +745,6 @@
    {
    }
    #endregion
    public List<string> GetCostMoneyList()
    {
        if (_costMoneylist != null)
            return _costMoneylist;
        else
            return null;
    }
    private List<string> GetToolsList(string tools, List<string> toolslist)
    {
System/WindowBase/ModelCenter.cs
@@ -207,6 +207,7 @@
            RegisterModel<ChatBubbleModel>();
            RegisterModel<AccumulateRechargeModel>();
            RegisterModel<FBHelpPointExchageModel>();
            RegisterModel<IceCrystalVeinModel>();
            inited = true;
        }
Utility/RuntimeLogUtility.cs
@@ -99,6 +99,11 @@
    public static void AddLog(string info, uint objId = 0)
    {
        if (!s_BattleLog && !s_MoveLog)
        {
            return;
        }
        string _strTime = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
        string _content = string.Format("[{0}] {1}<br />", _strTime, info);
@@ -120,12 +125,6 @@
            s_LogDict[objId].Append(_content);
        }
        //if (s_LogList.Count >= 10000)
        //{
        //    SaveNpcLog();
        //}
    }
    public static void SaveNpcLog()
@@ -205,7 +204,7 @@
        RuntimeLogUtility.s_SkillEffectLog = EditorGUILayout.Toggle("技能效果log输出", RuntimeLogUtility.s_SkillEffectLog);
        RuntimeLogUtility.s_LogMoveDistance = EditorGUILayout.Toggle("位移距离Log输出", RuntimeLogUtility.s_LogMoveDistance);
        RuntimeLogUtility.s_ShowMapLine = EditorGUILayout.Toggle("显示地图网格", RuntimeLogUtility.s_ShowMapLine);
        _navChkPos = EditorGUILayout.Vector3Field("检测点", _navChkPos);
        if (GUILayout.Button("检测"))