Ejemplo n.º 1
0
        /// <summary>
        /// Load flyff skills and levels.
        /// </summary>
        private void LoadSkills()
        {
            try
            {
                Log.Loading("Loading skills...");
                string propSkillPath  = Path.Combine(Global.DataPath, "res", "data", "propSkill.txt");
                var    propSkillTable = new ResourceTable(propSkillPath);

                propSkillTable.AddTexts(texts);
                propSkillTable.AddDefines(defines);
                propSkillTable.SetTableHeaders("ver", "dwID", "szName", "dwNum", "dwPackMax", "dwItemKind1", "dwItemKind2", "dwItemKind3", "dwItemJob", "bPermanence", "dwUseable", "dwItemSex", "dwCost", "dwEndurance", "nAbrasion", "nHardness", "dwHanded", "dwHeelH", "dwParts", "dwPartsub", "bPartFile", "dwExclusive", "dwBasePartsIgnore", "dwItemLV", "dwItemRare", "dwShopAble", "bLog", "bCharged", "dwLinkKindBullet", "dwLinkKind", "dwAbilityMin", "dwAbilityMax", "eItemType", "wItemEAtk", "dwparry", "dwblockRating", "dwAddSkillMin", "dwAddSkillMax", "dwAtkStyle", "dwWeaponType", "dwItemAtkOrder1", "dwItemAtkOrder2", "dwItemAtkOrder3", "dwItemAtkOrder4", "tmContinuousPain", "dwShellQuantity", "dwRecoil", "dwLoadingTime", "nAdjHitRate", "dwAttackSpeed", "dwDmgShift", "dwAttackRange", "dwProbability", "dwDestParam1", "dwDestParam2", "dwDestParam3", "nAdjParamVal1", "nAdjParamVal2", "nAdjParamVal3", "dwChgParamVal1", "dwChgParamVal2", "dwChgParamVal3", "dwdestData1", "dwdestData2", "dwdestData3", "dwactiveskill", "dwactiveskillLv", "dwactiveskillper", "dwReqMp", "dwRepFp", "dwReqDisLV", "dwReSkill1", "dwReSkillLevel1", "dwReSkill2", "dwReSkillLevel2", "dwSkillReadyType", "dwSkillReady", "dwSkillRange", "dwSfxElemental", "dwSfxObj", "dwSfxObj2", "dwSfxObj3", "dwSfxObj4", "dwSfxObj5", "dwUseMotion", "dwCircleTime", "dwSkillTime", "dwExeTarget", "dwUseChance", "dwSpellRegion", "dwSpellType", "dwReferStat1", "dwReferStat2", "dwReferTarget1", "dwReferTarget2", "dwReferValue1", "dwReferValue2", "dwSkillType", "fItemResistElecricity", "fItemResistFire", "fItemResistWind", "fItemResistWater", "fItemResistEarth", "nEvildoing", "dwExpertLV", "ExpertMax", "dwSubDefine", "dwExp", "dwComboStyle", "fFlightSpeed", "fFlightLRAngle", "fFlightTBAngle", "dwFlightLimit", "dwFFuelReMax", "dwAFuelReMax", "dwFuelRe", "dwLimitLevel1", "dwReflect", "dwSndAttack1", "dwSndAttack2", "szIcon", "dwQuestID", "szTextFile", "szComment");
                propSkillTable.Parse();

                while (propSkillTable.Read())
                {
                    var skill = new SkillData(propSkillTable);

                    if (skillData.ContainsKey(skill.ID))
                    {
                        skillData[skill.ID] = skill;
                    }
                    else
                    {
                        skillData.Add(skill.ID, skill);
                    }
                }

                string propSkillLevelPath  = Path.Combine(Global.DataPath, "res", "data", "propSkillAdd.csv");
                var    propSkillLevelTable = new ResourceTable(propSkillLevelPath);
                propSkillLevelTable.AddTexts(texts);
                propSkillLevelTable.AddDefines(defines);
                propSkillLevelTable.SetTableHeaders("dwLevelID", "dwSkillID", "dwSkillLevel", "dwAbilityMin", "dwAbilityMax", "dwAbilityMinPVP", "dwAbilityMaxPVP", "dwAttackSpeed", "dwDmgShift", "nProbability", "nProbabilityPVP", "dwTaunt", "dwDestParam1", "dwDestParam2", "nAdjParamVal1", "nAdjParamVal2", "dwChgParamVal1", "dwChgParamVal2", "dwDestData1", "dwDestData2", "dwDestData3", "dwActiveSkill", "dwActiveSkillRate", "dwActiveSkillRatePVP", "dwReqMp", "dwReqFp", "dwCooldown", "dwCastingTime", "dwSkillRange", "dwCircleTime", "dwPainTime", "dwSkillTime", "dwSkillCount", "dwSkillExp", "dwExp", "dwComboSkillTime");
                propSkillLevelTable.Parse();

                while (propSkillLevelTable.Read())
                {
                    var skillLevel = new SkillLevelData(propSkillLevelTable);

                    if (skillData.ContainsKey(skillLevel.SkillID))
                    {
                        skillData[skillLevel.SkillID].Levels.Add(skillLevel);
                    }
                }

                Log.Done("{0} skills loaded!\t\t\t", skillData.Count);
            }
            catch (Exception e)
            {
                Log.Error("Cannot load skills: {0}", e.Message);
            }
        }
Ejemplo n.º 2
0
        private void LoadJobs()
        {
            try
            {
                string propJobPath  = Path.Combine(Global.DataPath, "res", "dataSub1", "propJob.inc");
                var    propJobTable = new ResourceTable(propJobPath);

                propJobTable.AddDefines(defines);
                propJobTable.SetTableHeaders("nJob", "fAttackSpeed", "fFactorMaxHp", "fFactorMaxMp", "fFactorMaxFp", "fFactorDef", "fFactorHPRecovery", "fFactorMPRecovery", "fFactorFPRecovery", "fMeleeSWD", "fMeleeAXE", "fMeleeSTAFF", "fMeleeSTICK", "fMeleeKNUCKLE", "fMagicWang", "fBlocking", "fMeleeYOYO", "fCritical");
                propJobTable.Parse();

                while (propJobTable.Read())
                {
                    var job = new JobData(propJobTable);

                    jobData.Add(job.Id, job);
                }
            }
            catch (Exception e)
            {
                Log.Error("Cannot load job properties: {0}", e.Message);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Load all flyff movers.
        /// </summary>
        private void LoadMovers()
        {
            Log.Loading("Loading movers data...");

            try
            {
                string propMoverPath = Path.Combine(Global.DataPath, "res", "data", "propMover.txt");
                var    propMover     = new ResourceTable(propMoverPath);

                propMover.AddDefines(defines);
                propMover.AddTexts(texts);
                propMover.SetTableHeaders("dwID", "szName", "dwAI", "dwStr", "dwSta", "dwDex", "dwInt", "dwHR", "dwER", "dwRace", "dwBelligerence", "dwGender", "dwLevel", "dwFlightLevel", "dwSize", "dwClass", "bIfPart", "dwKarma", "dwUseable", "dwActionRadius", "dwAtkMin", "dwAtkMax", "dwAtk1", "dwAtk2", "dwAtk3", "dwHorizontalRate", "dwVerticalRate", "dwDiagonalRate", "dwThrustRate", "dwChestRate", "dwHeadRate", "dwArmRate", "dwLegRate", "dwAttackSpeed", "dwReAttackDelay", "dwAddHp", "dwAddMp", "dwNaturealArmor", "nAbrasion", "nHardness", "dwAdjAtkDelay", "eElementType", "wElementAtk", "dwHideLevel", "fSpeed", "dwShelter", "bFlying", "dwJumping", "dwAirJump", "bTaming", "dwResistMagic", "fResistElectricity", "fResistFire", "fResistWind", "fResistWater", "fResistEarth", "dwCash", "dwSourceMaterial", "dwMaterialAmount", "dwCohesion", "dwHoldingTime", "dwCorrectionValue", "dwExpValue", "nFxpValue", "nBodyState", "dwAddAbility", "bKillable", "dwVirtItem1", "dwVirtType1", "dwVirtItem2", "dwVirtType2", "dwVirtItem3", "dwVirtType3", "dwSndAtk1", "dwSndAtk2", "dwSndDie1", "dwSndDie2", "dwSndDmg1", "dwSndDmg2", "dwSndDmg3", "dwSndIdle1", "dwSndIdle2", "szComment");
                propMover.Parse();

                while (propMover.Read())
                {
                    var monsterData = new MoverData(propMover);

                    if (moversData.ContainsKey(monsterData.Id))
                    {
                        moversData[monsterData.Id] = monsterData;
                    }
                    else
                    {
                        moversData.Add(monsterData.Id, monsterData);
                    }

                    Log.Loading("Loading {0}/{1} movers...", propMover.ReadingIndex, propMover.Count);
                }

                Log.Done("{0} movers loaded!\t\t\t", moversData.Count);
            }
            catch (Exception e)
            {
                Log.Error("Cannot load movers: {0}", e.Message);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Load all FlyFF items.
        /// </summary>
        private void LoadItems()
        {
            try
            {
                Log.Info("Loading items...");
                string propItemPath  = Path.Combine(Global.DataPath, "res", "dataSub2", "propItem.txt");
                var    propItemTable = new ResourceTable(propItemPath);

                propItemTable.AddTexts(texts);
                propItemTable.AddDefines(defines);
                propItemTable.SetTableHeaders("dwVersion", "dwID", "szName", "dwNum", "dwPackMax", "dwItemKind1", "dwItemKind2", "dwItemKind3", "dwItemJob", "bPermanence", "dwUseable", "dwItemSex", "dwCost", "dwEndurance", "nAbrasion", "nMaxRepair", "dwHanded", "dwFlag", "dwParts", "dwPartsub", "bPartFile", "dwExclusive", "dwBasePartsIgnore", "dwItemLV", "dwItemRare", "dwShopAble", "bLog", "bCharged", "dwLinkKindBullet", "dwLinkKind", "dwAbilityMin", "dwAbilityMax", "eItemType", "wItemEAtk", "dwParry", "dwBlockRating", "dwAddSkillMin", "dwAddSkillMax", "dwAtkStyle", "dwWeaponType", "dwItemAtkOrder1", "dwItemAtkOrder2", "dwItemAtkOrder3", "dwItemAtkOrder4", "bContinnuousPain", "dwShellQuantity", "dwRecoil", "dwLoadingTime", "nAdjHitRate", "fAttackSpeed", "dwDmgShift", "dwAttackRange", "dwProbability", "dwDestParam1", "dwDestParam2", "dwDestParam3", "nAdjParamVal1", "nAdjParamVal2", "nAdjParamVal3", "dwChgParamVal1", "dwChgParamVal2", "dwChgParamVal3", "dwDestData1", "dwDestData2", "dwDestData3", "dwActiveSkill", "dwActiveSkillLv", "dwActiveSkillPer", "dwReqMp", "dwReqFp", "dwReqDisLV", "dwReSkill1", "dwReSkillLevel1", "dwReSkill2", "dwReSkillLevel2", "dwSkillReadyType", "dwSkillReady", "dwSkillRange", "dwSfxElemental", "dwSfxObj", "dwSfxObj2", "dwSfxObj3", "dwSfxObj4", "dwSfxObj5", "dwUseMotion", "dwCircleTime", "dwSkillTime", "dwExeTarget", "dwUseChance", "dwSpellRegion", "dwSpellType", "dwReferStat1", "dwReferStat2", "dwReferTarget1", "dwReferTarget2", "dwReferValue1", "dwReferValue2", "dwSkillType", "fItemResistElecricity", "fItemResistFire", "fItemResistWind", "fItemResistWater", "fItemResistEarth", "nEvildoing", "dwExpertLV", "ExpertMax", "dwSubDefine", "dwExp", "dwComboStyle", "fFlightSpeed", "fFlightLRAngle", "fFlightTBAngle", "dwFlightLimit", "dwFFuelReMax", "dwAFuelReMax", "dwFuelRe", "dwLimitLevel1", "dwReflect", "dwSndAttack1", "dwSndAttack2", "szIcon", "dwQuestID", "szTextFile", "szComment");


                propItemTable.Parse();
                while (propItemTable.Read())
                {
                    var itemData = new ItemData(propItemTable);

                    if (itemsData.ContainsKey(itemData.Id))
                    {
                        itemsData[itemData.Id] = itemData;
                    }
                    else
                    {
                        itemsData.Add(itemData.Id, itemData);
                    }

                    Log.Loading("Loading {0}/{1} items...", propItemTable.ReadingIndex, propItemTable.Count);
                }

                Log.Done("{0} items loaded!", itemsData.Count);
            }
            catch (Exception e)
            {
                Log.Error("Cannot load items: {0}", e.Message);
            }
        }