/// <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); } }
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); } }
/// <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); } }
/// <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); } }