|  |  | 
 |  |  |     public static void SetIconWithMoneyType(this Image _image, int moneyType) | 
 |  |  |     { | 
 |  |  |         if (_image == null) return; | 
 |  |  |         string iconKey = StringUtility.Contact("Money_Type_", moneyType); | 
 |  |  |         _image.SetSprite(iconKey); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static void SetSmallIconWithMoneyType(this Image _image, int moneyType) | 
 |  |  |     { | 
 |  |  |         if (_image == null) return; | 
 |  |  |         string iconKey = StringUtility.Contact("SmallMoney", moneyType); | 
 |  |  |         _image.SetSprite(iconKey); | 
 |  |  |         if (GeneralDefine.MoneyDisplayModel.ContainsKey(moneyType)) | 
 |  |  |         { | 
 |  |  |             _image.SetOrgSprite(ItemConfig.Get(GeneralDefine.MoneyDisplayModel[moneyType]).IconKey); | 
 |  |  |         } | 
 |  |  |         else | 
 |  |  |         { | 
 |  |  |             // 不需要物品的情况补充 | 
 |  |  |             // string iconKey = StringUtility.Contact("Money_Type_", moneyType); | 
 |  |  |             Debug.LogError("MoneyDisplayModel 未配置货币类型:" + moneyType); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static string GetIconNameWithMoneyType(int moneyType) | 
 |  |  |     { | 
 |  |  |         return StringUtility.Contact("Money_Type_", moneyType); | 
 |  |  |         if (GeneralDefine.MoneyDisplayModel.ContainsKey(moneyType)) | 
 |  |  |         { | 
 |  |  |             return ItemConfig.Get(GeneralDefine.MoneyDisplayModel[moneyType]).IconKey; | 
 |  |  |         } | 
 |  |  |         else | 
 |  |  |         { | 
 |  |  |             Debug.LogError("MoneyDisplayModel 未配置货币类型:" + moneyType); | 
 |  |  |             return ""; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /// <summary> | 
 |  |  | 
 |  |  |         else if (span.TotalMinutes > 1) return Math.Floor(span.TotalMinutes) + Language.Get("L1073"); | 
 |  |  |         else return 1 + Language.Get("L1073"); | 
 |  |  |     } | 
 |  |  |     /// <summary> | 
 |  |  |     /// 根据属性获取玩家数据 | 
 |  |  |     /// </summary> | 
 |  |  |     /// <param name="type"></param> | 
 |  |  |     /// <returns></returns> | 
 |  |  |     public static ulong GetPropertyValue(PropertyType type) | 
 |  |  |     { | 
 |  |  |         switch (type) | 
 |  |  |         { | 
 |  |  |             case PropertyType.LV: | 
 |  |  |                 return PlayerDatas.Instance.baseData.LV; | 
 |  |  |             case PropertyType.POWER: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.STR; | 
 |  |  |             case PropertyType.AGILITY: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.PHY; | 
 |  |  |             case PropertyType.PHYSIQUE: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.CON; | 
 |  |  |             case PropertyType.MENTALITY: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.PNE; | 
 |  |  |             case PropertyType.HP: | 
 |  |  |                 return PlayerDatas.Instance.extersion.MaxHP; | 
 |  |  |             case PropertyType.ATK: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.MAXATK; | 
 |  |  |             case PropertyType.DEF: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.DEF; | 
 |  |  |             case PropertyType.HIT: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.HIT; | 
 |  |  |             case PropertyType.MISS: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.Miss; | 
 |  |  |             case PropertyType.ATKSPEED: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.battleValEx1; | 
 |  |  |             case PropertyType.CritChance: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.SuperHitRate; | 
 |  |  |             case PropertyType.CritHurt: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.SuperHit; | 
 |  |  |             case PropertyType.CritResis: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.SuperHitReduce; | 
 |  |  |             case PropertyType.HeartHit: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.luckHitRate; | 
 |  |  |             case PropertyType.HeartHurt: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.luckHitVal; | 
 |  |  |             case PropertyType.HeartResis: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.LuckyHitRateReduce; | 
 |  |  |             case PropertyType.SkillHurt: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.SkillAtkRate; | 
 |  |  |             case PropertyType.PVPAddHurt: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.DamagePVP; | 
 |  |  |             case PropertyType.PVPReduceHurt: | 
 |  |  |                 return PlayerDatas.Instance.GetPlayerDataByType((PlayerDataType)191); | 
 |  |  |             case PropertyType.LifeReply: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.HPRestorePer; | 
 |  |  |             case PropertyType.HurtReflect: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.DamageBackRate; | 
 |  |  |             case PropertyType.MoveSpeed: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.SpeedValue; | 
 |  |  |             case PropertyType.PetAddHurt: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.PetDamPer; | 
 |  |  |             case PropertyType.RealHurt: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.realATK; | 
 |  |  |             case PropertyType.RealResis: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.realDEF; | 
 |  |  |             case PropertyType.DefyDef: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.IgnoreDefRate; | 
 |  |  |             case PropertyType.DefyDefResis: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.IgnoreDefRateReduce; | 
 |  |  |             case PropertyType.DefChance: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.DamChanceDef; | 
 |  |  |             case PropertyType.BloodHurt: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.BleedDamage; | 
 |  |  |             case PropertyType.AktReplyBlood: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.BattleValEx2; | 
 |  |  |             case PropertyType.Stun: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.FaintRate; | 
 |  |  |             case PropertyType.CtrlResis: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.FaintDefRate; | 
 |  |  |             case PropertyType.AddFinalHurt: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.FinalHurt; | 
 |  |  |             case PropertyType.ReduceFinalHurt: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.FinalHurtReduce; | 
 |  |  |             case PropertyType.PVPAddHurtPer: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.DamagePerPVP; | 
 |  |  |             case PropertyType.PVPReduceHurtPer: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.DamagePerPVPReduce; | 
 |  |  |             case PropertyType.DleHitChance: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.ComboDamPerRate; | 
 |  |  |             case PropertyType.DleHurt: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.ComboDamPer; | 
 |  |  |             case PropertyType.ReduceSkillHurtPercent: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.skillAtkRateReduce; | 
 |  |  |             case PropertyType.NpcHurtAddPer: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.NpcHurtAddPer; | 
 |  |  |             case PropertyType.Luck: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.luckValue; | 
 |  |  |             case PropertyType.Mater: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.mater; | 
 |  |  |             case PropertyType.Wood: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.wood; | 
 |  |  |             case PropertyType.Water: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.water; | 
 |  |  |             case PropertyType.Fire: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.fire; | 
 |  |  |             case PropertyType.Earth: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.earth; | 
 |  |  |             case PropertyType.ReduceCrit: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.reduceCrit; | 
 |  |  |             case PropertyType.ReduceHeartHurtPer: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.reduceHeartHurt; | 
 |  |  |             case PropertyType.ReduceFinalHurtPer: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.reduceFinalHurt; | 
 |  |  |             case PropertyType.AtkPercent: | 
 |  |  |             case PropertyType.CritHurtPercent: | 
 |  |  |             case PropertyType.DodgePercent: | 
 |  |  |                 // return (ulong)ModelCenter.Instance.GetModel<ReikiRootModel>().GetReikiPropertyValue((int)type); | 
 |  |  |                 // TODO YYL | 
 |  |  |                 return 0ul; | 
 |  |  |             case PropertyType.SkillAddPerA: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillAddPerA; | 
 |  |  |             case PropertyType.SkillAddPerB: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillAddPerB; | 
 |  |  |             case PropertyType.SkillAddPerC: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillAddPerC; | 
 |  |  |             case PropertyType.SkillAddPerD: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillAddPerD; | 
 |  |  |             case PropertyType.SkillAddPerE: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillAddPerE; | 
 |  |  |             case PropertyType.SkillAddPerF: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillAddPerF; | 
 |  |  |             case PropertyType.SkillAddPerG: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillAddPerG; | 
 |  |  |             case PropertyType.SkillReducePerA: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillReducePerA; | 
 |  |  |             case PropertyType.SkillReducePerB: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillReducePerB; | 
 |  |  |             case PropertyType.SkillReducePerC: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillReducePerC; | 
 |  |  |             case PropertyType.SkillReducePerD: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillReducePerD; | 
 |  |  |             case PropertyType.SkillReducePerE: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillReducePerE; | 
 |  |  |             case PropertyType.SkillReducePerF: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillReducePerF; | 
 |  |  |             case PropertyType.SkillReducePerG: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.skillReducePerG; | 
 |  |  |             case PropertyType.ReduceSkillCDPer: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.battleValEx3; | 
 |  |  |             case PropertyType.AddFinalHurtPer: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.extersion.FunalHurtPer; | 
 |  |  |             case PropertyType.AddNormalHurt: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.NormalHurt; | 
 |  |  |             case PropertyType.AddNormalHurtPer: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.NormalHurtPer; | 
 |  |  |             case PropertyType.AddSkillHurt: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.FabaoHurt; | 
 |  |  |             case PropertyType.AddSkillHurtPer: | 
 |  |  |                 return (ulong)PlayerDatas.Instance.baseData.FabaoHurtPer; | 
 |  |  |             case PropertyType.AddPVEHurt: | 
 |  |  |                 return PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.DamagePVE); | 
 |  |  |         } | 
 |  |  |         return 0; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /// <summary> | 
 |  |  | 
 |  |  |         return false; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 检查字符串是不是纯整数 | 
 |  |  |     public static bool IsNumeric(string input) | 
 |  |  |     { | 
 |  |  |         return int.TryParse(input, out _); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public static string GetColorNameByItemColor(int itemColor) | 
 |  |  |     { | 
 |  |  |         switch (itemColor) | 
 |  |  | 
 |  |  |     public static readonly Color s_NavyYellow = new Color32(242, 238, 2, 255); //f2ee02 | 
 |  |  |     public static readonly Color s_LightGreen = new Color32(42, 227, 55, 255);//2ae337 | 
 |  |  |     public static readonly Color s_LightWhite = new Color32(245, 246, 230, 255); //f5f6e6 | 
 |  |  |     public static readonly Color s_Gray = new Color32(132, 121, 123, 255);  //84797b | 
 |  |  |     public static readonly Color s_Gray = new Color32(187, 187, 187, 255); //bbbbbb | 
 |  |  |     public static readonly Color s_Gold = new Color32(255, 239, 71, 255);//ffef47 | 
 |  |  |     public static readonly Color s_EarthYellow = new Color32(248, 152, 59, 255);//f8983b | 
 |  |  |  | 
 |  |  | 
 |  |  |                 return s_LightWhite; | 
 |  |  |             case TextColType.Gray: | 
 |  |  |                 return s_Gray; | 
 |  |  |             case TextColType.NavyGray: | 
 |  |  |                 return new Color32(121, 121, 121, 255); | 
 |  |  |             case TextColType.itemjingliang: | 
 |  |  |                 // 729de4 精良 | 
 |  |  |                 return new Color32(114, 157, 228, 255); | 
 |  |  | 
 |  |  |                 // 5d1d52 永恒 | 
 |  |  |                 return new Color32(93, 29, 82, 128); | 
 |  |  |             case QualityTextColType.red: | 
 |  |  |                 return s_BrightRedColor; | 
 |  |  |                 return s_DarkRedColor; | 
 |  |  |         } | 
 |  |  |         return new Color32(0, 0, 0, 128); | 
 |  |  |     } | 
 |  |  | 
 |  |  |             case TextColType.Pink: | 
 |  |  |                 return StringUtility.Contact("<color=#", bright ? "f6408d" : "ff7c7c", ">", msg, "</color>"); | 
 |  |  |             case TextColType.Green: | 
 |  |  |                 return StringUtility.Contact("<color=#", bright ? "109d06" : "2ae337", ">", msg, "</color>"); | 
 |  |  |                 return StringUtility.Contact("<color=#", bright ? "248B12" : "2ae337", ">", msg, "</color>"); | 
 |  |  |             case TextColType.NavyBrown: | 
 |  |  |                 return StringUtility.Contact("<color=#6e4c31>", msg, "</color>"); | 
 |  |  |             case TextColType.DarkGreen: | 
 |  |  |                 return StringUtility.Contact("<color=#109d06>", msg, "</color>"); | 
 |  |  |                 return StringUtility.Contact("<color=#248B12>", msg, "</color>"); | 
 |  |  |             case TextColType.Black: | 
 |  |  |                 return StringUtility.Contact("<color=#000000>", msg, "</color>"); | 
 |  |  |             case TextColType.LightWhite: | 
 |  |  | 
 |  |  |             case TextColType.LightGreen: | 
 |  |  |                 return StringUtility.Contact("<color=#8ddc11>", msg, "</color>"); | 
 |  |  |             case TextColType.Gray: | 
 |  |  |                 return StringUtility.Contact("<color=#84797b>", msg, "</color>"); | 
 |  |  |                 return StringUtility.Contact("<color=#bbbbbb>", msg, "</color>"); | 
 |  |  |             case TextColType.NavyGray: | 
 |  |  |                 return StringUtility.Contact("<color=#797979>", msg, "</color>"); | 
 |  |  |             case TextColType.lightYellow: | 
 |  |  |                 return StringUtility.Contact("<color=#fcedb9>", msg, "</color>"); | 
 |  |  |             case TextColType.NavyYellow: | 
 |  |  | 
 |  |  |                 return StringUtility.Contact("<color=#dfbbed>", msg, "</color>"); | 
 |  |  |             case TextColType.itembuxiu: | 
 |  |  |                 // 5eeff2 不朽 | 
 |  |  |                 return  StringUtility.Contact("<color=#5eeff2>", msg, "</color>"); | 
 |  |  |                 return StringUtility.Contact("<color=#5eeff2>", msg, "</color>"); | 
 |  |  |             case TextColType.itemyonghen: | 
 |  |  |                 // f5b4ea 永恒 | 
 |  |  |                 return StringUtility.Contact("<color=#f5b4ea>", msg, "</color>"); | 
 |  |  |         } | 
 |  |  |         return msg; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static string AppendColor(Color color, string msg) | 
 |  |  |     { | 
 |  |  |         return StringUtility.Contact("<color=#", ColorToHexWithHash(color), ">", msg, "</color>"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public static string ColorToHexWithHash(Color color, bool includeAlpha = false) | 
 |  |  |     { | 
 |  |  |         int r = Mathf.RoundToInt(color.r * 255); | 
 |  |  |         int g = Mathf.RoundToInt(color.g * 255); | 
 |  |  |         int b = Mathf.RoundToInt(color.b * 255); | 
 |  |  |         if (includeAlpha) | 
 |  |  |         { | 
 |  |  |             int a = Mathf.RoundToInt(color.a * 255); | 
 |  |  |             return string.Format("{0:X2}{1:X2}{2:X2}{3:X2}", r, g, b, a); | 
 |  |  |         } | 
 |  |  |         else | 
 |  |  |         { | 
 |  |  |             return string.Format("{0:X2}{1:X2}{2:X2}", r, g, b); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     //needName 指官职0是否需要名称 | 
 |  |  |     public static string GetRealmName(int realmLv, bool bright = true, bool needName = false) | 
 |  |  | 
 |  |  |         { | 
 |  |  |             return string.Empty; | 
 |  |  |         } | 
 |  |  |         return GetRealmColorByLv(realmLv, config.Name, bright); | 
 |  |  |         return AppendColor(realmLv, config.Name, bright); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     //strFormat附加 境界名以外的文字 | 
 |  |  | 
 |  |  |     //     return GetRealmColorByLv(realmLv, string.Format(strFormat, config.Name), bright); | 
 |  |  |     // } | 
 |  |  |  | 
 |  |  |     public static string GetRealmColorByLv(int realmLv, string msg, bool bright = true) | 
 |  |  |     { | 
 |  |  |         var config = RealmConfig.Get(realmLv); | 
 |  |  |         if (config == null) | 
 |  |  |         { | 
 |  |  |             return string.Empty; | 
 |  |  |         } | 
 |  |  |         switch (config.Quality) | 
 |  |  |         { | 
 |  |  |             case 1: | 
 |  |  |                 return StringUtility.Contact("<color=#", bright ? "666666" : "dddddd", ">", msg, "</color>"); | 
 |  |  |             case 2: | 
 |  |  |                 return StringUtility.Contact("<color=#", bright ? "00b337" : "66ff00", ">", msg, "</color>"); | 
 |  |  |             case 3: | 
 |  |  |                 return StringUtility.Contact("<color=#", bright ? "0066ff" : "00c6ff", ">", msg, "</color>"); | 
 |  |  |             case 4: | 
 |  |  |                 return StringUtility.Contact("<color=#", bright ? "ff00f6" : "f000ff", ">", msg, "</color>"); | 
 |  |  |             case 5: | 
 |  |  |                 return StringUtility.Contact("<color=#", bright ? "ff6600" : "ff9000", ">", msg, "</color>"); | 
 |  |  |             case 6: | 
 |  |  |                 return StringUtility.Contact("<color=#", bright ? "ff0000" : "ff0000", ">", msg, "</color>"); | 
 |  |  |             default: | 
 |  |  |                 return msg; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |     // public static string GetRealmColorByLv(int realmLv, string msg, bool bright = true) | 
 |  |  |     // { | 
 |  |  |     //     var config = RealmConfig.Get(realmLv); | 
 |  |  |     //     if (config == null) | 
 |  |  |     //     { | 
 |  |  |     //         return string.Empty; | 
 |  |  |     //     } | 
 |  |  |     //     switch (config.Quality) | 
 |  |  |     //     { | 
 |  |  |     //         case 1: | 
 |  |  |     //             return StringUtility.Contact("<color=#", bright ? "666666" : "dddddd", ">", msg, "</color>"); | 
 |  |  |     //         case 2: | 
 |  |  |     //             return StringUtility.Contact("<color=#", bright ? "00b337" : "66ff00", ">", msg, "</color>"); | 
 |  |  |     //         case 3: | 
 |  |  |     //             return StringUtility.Contact("<color=#", bright ? "0066ff" : "00c6ff", ">", msg, "</color>"); | 
 |  |  |     //         case 4: | 
 |  |  |     //             return StringUtility.Contact("<color=#", bright ? "ff00f6" : "f000ff", ">", msg, "</color>"); | 
 |  |  |     //         case 5: | 
 |  |  |     //             return StringUtility.Contact("<color=#", bright ? "ff6600" : "ff9000", ">", msg, "</color>"); | 
 |  |  |     //         case 6: | 
 |  |  |     //             return StringUtility.Contact("<color=#", bright ? "ff0000" : "ff0000", ">", msg, "</color>"); | 
 |  |  |     //         default: | 
 |  |  |     //             return msg; | 
 |  |  |     //     } | 
 |  |  |     // } | 
 |  |  |  | 
 |  |  |     //物品 各功能品质  从精良1品质 对应 3开始 | 
 |  |  |     /// <summary> | 
 |  |  | 
 |  |  |     /// <param name="itemColor"></param> | 
 |  |  |     /// <param name="msg"></param> | 
 |  |  |     /// <param name="bright"></param> | 
 |  |  |     /// <param name="colorGroupType"></param> | 
 |  |  |     /// <param name="colorGroupType">0 通用功能品质分组精良到神话</param> | 
 |  |  |     /// <returns></returns> | 
 |  |  |     public static string AppendColor(int itemColor, string msg, bool bright = true, int colorGroupType = 0) | 
 |  |  |     { | 
 |  |  | 
 |  |  |     } | 
 |  |  |     #endregion | 
 |  |  |  | 
 |  |  |      | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     #region 得到金钱数量根据金钱类型 | 
 |  |  |  | 
 |  |  | 
 |  |  |         return 0; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     //货币对应0418类型 | 
 |  |  |     public static Dictionary<int, PlayerDataType> moneyTypeToPlayerDataType = new Dictionary<int, PlayerDataType>() | 
 |  |  |     { | 
 |  |  |         {1, PlayerDataType.Gold}, | 
 |  |  |         {2, PlayerDataType.GoldPaper}, | 
 |  |  |         {3, PlayerDataType.Silver}, | 
 |  |  |         {41, PlayerDataType.default26}, | 
 |  |  |         {42, PlayerDataType.default33}, | 
 |  |  |         {53, PlayerDataType.ChallengeVoucher}, | 
 |  |  |     }; | 
 |  |  |  | 
 |  |  |     public static ulong GetMoneyCnt(int moneyType) | 
 |  |  |     public static long GetMoneyCnt(int moneyType) | 
 |  |  |     { | 
 |  |  |         switch (moneyType) | 
 |  |  |         { | 
 |  |  | 
 |  |  |                 } | 
 |  |  |             case 18: | 
 |  |  |                 { | 
 |  |  |                     return (ulong)PlayerDatas.Instance.extersion.honorValue; | 
 |  |  |                     return PlayerDatas.Instance.extersion.honorValue; | 
 |  |  |                 } | 
 |  |  |             case 25: | 
 |  |  |                 { | 
 |  |  | 
 |  |  |                 } | 
 |  |  |             case 24: | 
 |  |  |                 { | 
 |  |  |                     return (ulong)PlayerDatas.Instance.extersion.runeChip; | 
 |  |  |                     return PlayerDatas.Instance.extersion.runeChip; | 
 |  |  |                 } | 
 |  |  |             case 15: | 
 |  |  |                 { | 
 |  |  | 
 |  |  |                     //武将招募积分 | 
 |  |  |                     return PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.default44); | 
 |  |  |                 } | 
 |  |  |             case 52: | 
 |  |  |                 { | 
 |  |  |                     //淘金令 | 
 |  |  |                     return PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.GoldRush); | 
 |  |  |                 } | 
 |  |  |             case 53: | 
 |  |  |                 { | 
 |  |  |                     //挑战凭证 | 
 |  |  |                     return PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.ChallengeVoucher); | 
 |  |  |                 } | 
 |  |  |             case 98: | 
 |  |  |                 { | 
 |  |  |                     //过期型代金券 | 
 |  |  | 
 |  |  |         return 0; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public static int GetAllVourcher() | 
 |  |  |     { | 
 |  |  |         return (int)GetMoneyCnt(98) + (int)GetMoneyCnt(99); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     //显示数量, 格式n/m, 足够绿色不足红色 | 
 |  |  |     public static string ShowUseMoney(int moneyType, ulong useCnt, TextColType engoughColor = TextColType.Green) | 
 |  |  |     public static string ShowUseMoney(int moneyType, long useCnt, TextColType engoughColor = TextColType.Green) | 
 |  |  |     { | 
 |  |  |         ulong cnt = GetMoneyCnt(moneyType); | 
 |  |  |         return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(useCnt)}/{ReplaceLargeNum(cnt)}"); | 
 |  |  |         long cnt = GetMoneyCnt(moneyType); | 
 |  |  |         return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(cnt)}/{ReplaceLargeNum(useCnt)}"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static string ShowUseItem(PackType type, int itemId, ulong useCnt, TextColType engoughColor = TextColType.Green) | 
 |  |  |     public static string ShowUseItem(PackType type, int itemId, long useCnt, TextColType engoughColor = TextColType.Green) | 
 |  |  |     { | 
 |  |  |         ulong cnt = PackManager.Instance.GetItemCountByID(type, itemId); | 
 |  |  |         return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(useCnt)}/{ReplaceLargeNum(cnt)}"); | 
 |  |  |         long cnt = PackManager.Instance.GetItemCountByID(type, itemId); | 
 |  |  |         return AppendColor(useCnt <= cnt ? engoughColor : TextColType.Red, $"{ReplaceLargeNum(cnt)}/{ReplaceLargeNum(useCnt)}"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /// <param name="needTips">0 不响应 1 弹提示 2 弹获取途径tips</param> | 
 |  |  |     public static bool CheckMoneyCount(int moneyType, long needCount, int needTips = 0) | 
 |  |  |     { | 
 |  |  |         if (needCount <= 0) | 
 |  |  |         { | 
 |  |  |             return true; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         long haveCount = GetMoneyCnt(moneyType); | 
 |  |  |  | 
 |  |  |         bool isEnough = haveCount >= needCount; | 
 |  |  |  | 
 |  |  |         if (!isEnough) | 
 |  |  |         { | 
 |  |  |             if (needTips == 1) | 
 |  |  |             { | 
 |  |  |                 SysNotifyMgr.Instance.ShowTip("LackMoney", moneyType); | 
 |  |  |             } | 
 |  |  |             else if (needTips == 2) | 
 |  |  |             { | 
 |  |  |                 ItemTipUtility.ShowMoneyTip(moneyType); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return isEnough; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     #endregion | 
 |  |  |  | 
 |  |  |     #region 得到装备位或者祝福树品质名称 带颜色 | 
 |  |  |     public static string GetQualityNameWithColor(int quality, string format="{0}") | 
 |  |  |     public static string GetQualityNameWithColor(int quality, string format = "{0}") | 
 |  |  |     { | 
 |  |  |         return AppendColor(quality, string.Format(format, Language.Get("equipQuality" + quality)), true, 1); | 
 |  |  |     } | 
 |  |  | 
 |  |  |         return content; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     //检查名字长度,玩家名和公会名 | 
 |  |  |     //不同国家长度不同,排版不同 | 
 |  |  |     public static bool SatisfyNameLength(string name, out int error) | 
 |  |  |     { | 
 |  |  |         error = 0; | 
 |  |  |         //bool pureChinese = Regex.IsMatch(name, "^[\u4e00-\u9fa5]+$"); | 
 |  |  |         //var chsCount = GetChsCount(name); | 
 |  |  |         int length = Encoding.Default.GetBytes(name).Length; | 
 |  |  |         var maxlength = 20; | 
 |  |  |         var maxlength = 14;  //纯中文不建议超过7个字 | 
 |  |  |         var minlength = 3; | 
 |  |  |         if (length > maxlength) | 
 |  |  |         { | 
 |  |  | 
 |  |  |         return money / scale; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public static string RemoveColor(string content) | 
 |  |  |     { | 
 |  |  |         content = WordAnalysis.Color_Start_Regex.Replace(content, string.Empty); | 
 |  |  |         content = WordAnalysis.Color_End_Regex.Replace(content, string.Empty); | 
 |  |  |         return content; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     //复制到剪贴板 | 
 |  |  |     // TODO 暂不支持web后续补充 | 
 |  |  |     public static void CopyToClipboard(string text) | 
 |  |  |     { | 
 |  |  |         GUIUtility.systemCopyBuffer = text; | 
 |  |  |         Debug.Log("文字已复制到剪贴板: " + text); | 
 |  |  |     } | 
 |  |  |      | 
 |  |  |     //获取剪切板内容 | 
 |  |  |     public static string GetClipboardText() | 
 |  |  |     { | 
 |  |  |         return GUIUtility.systemCopyBuffer; | 
 |  |  |     } | 
 |  |  |      | 
 |  |  | } |