void LoadAvatar(int avatarResourceId) { if (role != null) { MonoBehaviour.Destroy(role.gameObject); } AvatarConfig.Avatar avatarCfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(avatarResourceId); if (avatarCfg == null) { Debug.LogError(string.Format("Miss Avatar Setting : Id({0:X})", avatarResourceId)); } Avatar avatar = Avatar.CreateAvatar(0x00000000); role = avatar.gameObject.AddComponent <BattleRole>(); WeihuaGames.ClientClass.CombatAvatarData avatarData = new WeihuaGames.ClientClass.CombatAvatarData(); avatarData.ResourceId = avatarResourceId; role.AvatarData = avatarData; role.Awake(); role.AvatarAssetId = avatarCfg.breakThroughs[0].assetId; role.Avatar.Load(avatarCfg.breakThroughs[0].assetId, true, false); role.UseDefaultWeapons(); }
public static BattleRole Create(WeihuaGames.ClientClass.CombatAvatarData avatarData, int teamIndex, int avatarIndex) { Avatar avatar = Avatar.CreateAvatar((teamIndex << 24 | avatarData.BattlePosition)); BattleRole role = avatar.GetComponent <BattleRole>(); if (role == null) { role = avatar.gameObject.AddComponent <BattleRole>(); } AvatarConfig.Avatar avatarCfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(avatarData.ResourceId); int avatarAssetId = avatarCfg.GetAvatarAssetId(avatarData.BreakThrough); role.AvatarAssetId = avatarAssetId; role.avatarData = new WeihuaGames.ClientClass.CombatAvatarData(); role.AvatarData.Copy(avatarData); role.teamIndex = teamIndex; role.avatarIndex = avatarIndex; role.battlePosition = avatarData.BattlePosition; role.AvatarHP = avatarData.GetAttributeByType(_AvatarAttributeType.HP).Value; role.Awake(); return(role); }
public static BattleRole Create(int avatarResourceId, float maxHP, float hp, float sp, string name, int weaponResourceId) { Avatar avatar = Avatar.CreateAvatar(avatarResourceId); BattleRole role = avatar.GetComponent <BattleRole>(); if (role == null) { role = avatar.gameObject.AddComponent <BattleRole>(); } AvatarConfig.Avatar avatarCfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(avatarResourceId); int avatarAssetId = avatarCfg.breakThroughs[0].assetId; role.AvatarAssetId = avatarAssetId; // Generate a CombatAvatarData WeihuaGames.ClientClass.CombatAvatarData bossAvatarData = new WeihuaGames.ClientClass.CombatAvatarData(); bossAvatarData.ResourceId = avatarResourceId; bossAvatarData.DisplayName = name; bossAvatarData.Attributes = new List <WeihuaGames.ClientClass.Attribute>(); WeihuaGames.ClientClass.Attribute maxHPAttr = new WeihuaGames.ClientClass.Attribute(); maxHPAttr.Type = _AvatarAttributeType.MaxHP; maxHPAttr.Value = maxHP; bossAvatarData.Attributes.Add(maxHPAttr); WeihuaGames.ClientClass.Attribute spAttr = new WeihuaGames.ClientClass.Attribute(); spAttr.Type = _AvatarAttributeType.SP; spAttr.Value = sp; bossAvatarData.Attributes.Add(spAttr); if (weaponResourceId != IDSeg.InvalidId) { WeihuaGames.ClientClass.EquipmentData edata = new WeihuaGames.ClientClass.EquipmentData(); edata.BreakThrough = 0; edata.Id = weaponResourceId; bossAvatarData.Equipments.Add(edata); } role.avatarData = bossAvatarData; role.AvatarHP = hp; role.Awake(); return(role); }
private void InitializeAvatarNameStrs() { //ConfigDatabase.DelayLoadFileDelegate delayLoadFileDel = ConfigDelayLoader.DelayLoadConfig; //string str = ""; //int fileFormat = 0; //IFileLoader fileLoader = delayLoadFileDel(typeof(AvatarConfig), out str, out fileFormat); //AvatarConfig config1 = ConfigDatabase.LoadConfig<AvatarConfig>(ConfigDatabase.DefaultCfg, fileLoader, fileFormat, str); //config1.GetType(); AvatarConfig aconfig = ConfigDatabase.DefaultCfg.AvatarConfig; avatarNameStrs = new string[ConfigDatabase.DefaultCfg.AvatarConfig.avatars.Count]; avatarIds = new int[ConfigDatabase.DefaultCfg.AvatarConfig.avatars.Count]; for (int i = 0; i < ConfigDatabase.DefaultCfg.AvatarConfig.avatars.Count; i++) { AvatarConfig.Avatar avatarCfg = ConfigDatabase.DefaultCfg.AvatarConfig.avatars[i]; string name = ItemInfoUtility.GetAssetName(avatarCfg.id); avatarIds[i] = avatarCfg.id; avatarNameStrs[i] = name; } }
public static int CompareAvatar(int avatarAssetId1, int avatarAssetId2) { AvatarConfig.Avatar avatar1 = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(avatarAssetId1); AvatarConfig.Avatar avatar2 = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(avatarAssetId2); return(CompareAvatar(avatar1, avatar2)); }
/// <summary> /// 1、 已上阵的角色靠上 /// 2、 品质越高越靠上 /// 3、 同品质时,按国家标识进行排序,使用角色优先级控制(策划用) /// 4、 同品质、同国家时,根据角色表中角色的优先级显示,优先级越高越靠上 /// 5、 同一角色有多个时,根据突破等级排序,突破等级越高越靠上 /// 6、 同一角色同突破等级时,根据升级等级排序,等级越高越靠上 /// 7、 同角色同突破同升级等级时,随机排序。 /// </summary> //public static int CompareAvatar(WeihuaGames.ClientClass.Avatar a1, WeihuaGames.ClientClass.Avatar a2) //{ // int lineuped1 = (PlayerDataUtility.IsLineUpInPosition(SysLocalDataBase.Inst.LocalPlayer, a1) || PlayerDataUtility.IsLineUpInParter(SysLocalDataBase.Inst.LocalPlayer, a1)) ? 1 : 0; // int lineuped2 = (PlayerDataUtility.IsLineUpInPosition(SysLocalDataBase.Inst.LocalPlayer, a2) || PlayerDataUtility.IsLineUpInParter(SysLocalDataBase.Inst.LocalPlayer, a2)) ? 1 : 0; // if (lineuped1 != lineuped2) // return lineuped2 - lineuped1; // AvatarConfig.Avatar a1Cfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(a1.ResourceId); // AvatarConfig.Avatar a2Cfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(a2.ResourceId); // if (a1Cfg.qualityLevel != a2Cfg.qualityLevel) // return a2Cfg.qualityLevel - a1Cfg.qualityLevel; // else // { // if (a1Cfg.sortIndex != a2Cfg.sortIndex) // return a2Cfg.sortIndex - a1Cfg.sortIndex; // else if (a1.BreakthoughtLevel != a2.BreakthoughtLevel) // return a2.BreakthoughtLevel - a1.BreakthoughtLevel; // else if (a1.LevelAttrib.Level != a2.LevelAttrib.Level) // return a2.LevelAttrib.Level - a1.LevelAttrib.Level; // } // return 0; //} /// <summary> /// 1、 品质越低越靠上 /// 2、 同品质时,按国家标识进行排序,使用角色优先级控制(策划用) /// 3、 同品质、同国家时,根据角色表中角色的优先级显示,优先级越低越靠上 /// 4、 同一角色有多个时,根据突破等级排序,突破等级越低越靠上 /// 5、 同一角色同突破等级时,根据升级等级排序,等级越低越靠上 /// 6、 同角色同突破同升级等级时,随机排序。 /// </summary> //public static int CompareAvatarReverse(WeihuaGames.ClientClass.Avatar a1, WeihuaGames.ClientClass.Avatar a2) //{ // int lineuped1 = (PlayerDataUtility.IsLineUpInPosition(SysLocalDataBase.Inst.LocalPlayer, a1) || PlayerDataUtility.IsLineUpInParter(SysLocalDataBase.Inst.LocalPlayer, a1)) ? 1 : 0; // int lineuped2 = (PlayerDataUtility.IsLineUpInPosition(SysLocalDataBase.Inst.LocalPlayer, a2) || PlayerDataUtility.IsLineUpInParter(SysLocalDataBase.Inst.LocalPlayer, a2)) ? 1 : 0; // if (lineuped1 != lineuped2) // return lineuped1 - lineuped2; // AvatarConfig.Avatar a1Cfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(a1.ResourceId); // AvatarConfig.Avatar a2Cfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(a2.ResourceId); // if (a1Cfg.qualityLevel != a2Cfg.qualityLevel) // return a1Cfg.qualityLevel - a2Cfg.qualityLevel; // else // { // if (a1Cfg.sortIndex != a2Cfg.sortIndex) // return a1Cfg.sortIndex - a2Cfg.sortIndex; // else if (a1.BreakthoughtLevel != a2.BreakthoughtLevel) // return a1.BreakthoughtLevel - a2.BreakthoughtLevel; // else if (a1.LevelAttrib.Level != a2.LevelAttrib.Level) // return a1.LevelAttrib.Level - a2.LevelAttrib.Level; // } // return 0; //} // 图鉴等使用配置信息的列表中直接使用排序id,正序,无反序 public static int CompareAvatar(AvatarConfig.Avatar a1, AvatarConfig.Avatar a2) { return(a2.sortIndex - a1.sortIndex); }