Example #1
0
        public int GetX2MSkillID2(string guid, IdBindingManager.CusSkillType skillType)
        {
            object[] ret = FindX2MSkill(guid, skillType);

            if (ret != null)
            {
                return((int)ret[1]);
            }

            return(IdBindingManager.NullTokenInt);
        }
Example #2
0
        public string GetX2MSkillShortName(string guid, IdBindingManager.CusSkillType skillType)
        {
            object[] ret = FindX2MSkill(guid, skillType);

            if (ret != null)
            {
                return((string)ret[2]);
            }

            return(null);
        }
Example #3
0
        public string GetX2MSkillPath(string guid, IdBindingManager.CusSkillType skillType)
        {
            //added 2 extra params to the returned object
            object[] ret = FindX2MSkill(guid, skillType);

            if (ret != null)
            {
                //hardcoded to .bac, it should be the only file that would need such function binding
                return(string.Format(@"skill/{0}/{1}/{1}.bac", (string)ret[3], (string)ret[4]));
            }

            return(null);
        }
Example #4
0
        public string GetX2MSkillPath(string guid, IdBindingManager.CusSkillType skillType, IdBindingManager.SkillFileType skillFileType)
        {
            //added 2 extra params to the returned object
            object[] ret = FindX2MSkill(guid, skillType);

            if (ret != null)
            {
                switch (skillFileType)
                {
                case IdBindingManager.SkillFileType.BAC:
                    return(string.Format(@"skill/{0}/{1}/{1}.bac", (string)ret[3], (string)ret[4]));

                case IdBindingManager.SkillFileType.BDM:
                    return(string.Format(@"skill/{0}/{1}/{1}.bdm", (string)ret[3], (string)ret[4]));

                case IdBindingManager.SkillFileType.ShotBDM:
                    return(string.Format(@"skill/{0}/{1}/{1}.shot.bdm", (string)ret[3], (string)ret[4]));
                }
            }

            return(null);
        }
Example #5
0
        private object[] FindX2MSkill(string guid, IdBindingManager.CusSkillType skillType)
        {
            try
            {
                //Init
                bool   foundSkill = false;
                int    ID1        = -1;
                int    ID2        = -1;
                string ShortName  = String.Empty;

                //for GetX2MSkillPath
                string FolderName = String.Empty;
                string SkillType  = String.Empty;

                //Determine the directory to look in
                string directory = String.Empty;

                switch (skillType)
                {
                case IdBindingManager.CusSkillType.Super:
                    directory = Path.GetFullPath(String.Format("{0}/skill/SPA", GeneralInfo.GameDataFolder));
                    break;

                case IdBindingManager.CusSkillType.Ultimate:
                    directory = Path.GetFullPath(String.Format("{0}/skill/ULT", GeneralInfo.GameDataFolder));
                    break;

                case IdBindingManager.CusSkillType.Evasive:
                    directory = Path.GetFullPath(String.Format("{0}/skill/ESC", GeneralInfo.GameDataFolder));
                    break;

                case IdBindingManager.CusSkillType.Blast:
                    directory = Path.GetFullPath(String.Format("{0}/skill/BLT", GeneralInfo.GameDataFolder));
                    break;

                case IdBindingManager.CusSkillType.Awoken:
                    directory = Path.GetFullPath(String.Format("{0}/skill/MET", GeneralInfo.GameDataFolder));
                    break;
                }

                //Search directory
                string[] directories = Directory.GetDirectories(directory);

                foreach (var d in directories)
                {
                    string iniFilePath = Path.GetFullPath(String.Format("{0}/X2M_SKILL.ini", d));

                    if (File.Exists(iniFilePath))
                    {
                        StreamIniDataParser ini = new StreamIniDataParser();
                        ini.Parser.Configuration.CommentString = "#";
                        var    iniData = ini.ReadData(new StreamReader(iniFilePath));
                        string iniGuid = iniData["General"]["GUID"].ToString().Trim('"');

                        if (guid == iniGuid)
                        {
                            //Skill found
                            string name = new DirectoryInfo(d).Name;

                            //Get folder name to return for GetX2MSkillPath
                            FolderName = name;

                            //Getting IDs
                            ID2       = int.Parse(name.Split('_')[0]);
                            ShortName = name.Split('_')[2];

                            switch (skillType)
                            {
                            case IdBindingManager.CusSkillType.Super:
                                ID1       = ID2;
                                SkillType = "SPA";
                                break;

                            case IdBindingManager.CusSkillType.Ultimate:
                                ID1       = ID2 + 5000;
                                SkillType = "ULT";
                                break;

                            case IdBindingManager.CusSkillType.Evasive:
                                ID1       = ID2 + 10000;
                                SkillType = "ESC";
                                break;

                            case IdBindingManager.CusSkillType.Blast:
                                ID1       = ID2 + 20000;
                                SkillType = "BLT";
                                break;

                            case IdBindingManager.CusSkillType.Awoken:
                                ID1       = ID2 + 25000;
                                SkillType = "MET";
                                break;
                            }

                            //Setting bool
                            foundSkill = true;
                            break;
                        }
                    }
                }

                //Return
                if (foundSkill)
                {
                    return(new object[5] {
                        ID1, ID2, ShortName, SkillType, FolderName
                    });
                }
                else
                {
                    return(null);
                }
            }
            catch
            {
                return(null);
            }
        }