public static uint GetHighClassFE7(uint uid) { if (uid == 0) { return(0); } //FE7までは分岐がないので、クラスのCCクラスを参照する. uint shien_classs_id = UnitForm.GetClassID(uid); if (shien_classs_id <= 0) { return(0); } if (ClassForm.isHighClass(shien_classs_id)) {//上位クラスなので、もう CCではない return(shien_classs_id); } uint change_class = ClassForm.GetChangeClassID(shien_classs_id); if (change_class <= 0) {//上位のクラスが取れないので下位クラスを返す return(shien_classs_id); } if (ClassForm.isHighClass(change_class)) {//上位クラスなので、もう CCではない return(change_class); } //上位のクラスが取れないので下位クラスを返す return(shien_classs_id); }
public void SetParam(uint lv, uint grow, uint unitid, uint classid) { if (classid == 0) { classid = UnitForm.GetUnitIDWhereSupportClass(unitid); } GrowSimulator sim = new GrowSimulator(); UnitForm.SetSimUnit(ref sim, unitid); ClassForm.SetSimClass(ref sim, classid); if (UnitForm.isHighClass(unitid) || ClassForm.isHighClass(classid)) { lv += 10; } GrowSimulator.GrowOptionEnum growOption = GrowSimulator.GrowOptionEnum.None; if (grow == 1) { growOption = GrowSimulator.GrowOptionEnum.ClassGrow; sim.SetUnitLv1(); } sim.Grow((int)lv, growOption); U.SelectedIndexSafety(X_SIM_HP, sim.sim_hp); U.SelectedIndexSafety(X_SIM_STR, sim.sim_str); U.SelectedIndexSafety(X_SIM_SKILL, sim.sim_skill); U.SelectedIndexSafety(X_SIM_SPD, sim.sim_spd); U.SelectedIndexSafety(X_SIM_DEF, sim.sim_def); U.SelectedIndexSafety(X_SIM_RES, sim.sim_res); U.SelectedIndexSafety(X_SIM_LUCK, sim.sim_luck); U.SelectedIndexSafety(X_SIM_MAGICEX_Value, sim.sim_ext_magic); }
public static int ClassMaxLevel(uint classs_id) { int max_level = (int)PatchUtil.GetLevelMaxCaps(); if (ClassForm.isHighClass(classs_id)) {//上級職は、最大LV+10として計算します. return(max_level + 10); } return(max_level); }
public static int GetCCCount(uint shien_classs_id) { if (Program.ROM.RomInfo.version <= 7) { //FE7までは分岐がないので、CCクラスを参照する. if (ClassForm.isHighClass(shien_classs_id)) { //上位クラスなので、もう CCではない return(0); } //下位クラスなのでCCできる. return(1); } int ccount1 = 0; int ccount2 = 0; int datcount = (int)ClassForm.DataCount(); InputFormRef InputFormRef = Init(null, datcount); List <U.AddrResult> list = InputFormRef.MakeList(); if (shien_classs_id > 0 && shien_classs_id < list.Count) { uint up_cc_class1 = Program.ROM.u8(list[(int)shien_classs_id].addr + 0); uint up_cc_class2 = Program.ROM.u8(list[(int)shien_classs_id].addr + 1); if (up_cc_class1 > 0 && up_cc_class1 < list.Count) { ccount1++; uint up2_cc_class1 = Program.ROM.u8(list[(int)up_cc_class1].addr + 0); uint up2_cc_class2 = Program.ROM.u8(list[(int)up_cc_class1].addr + 1); if ( (up2_cc_class1 > 0 && up2_cc_class1 < list.Count) || (up2_cc_class1 > 0 && up2_cc_class1 < list.Count) ) { ccount1++; } } if (up_cc_class2 > 0 && up_cc_class2 < list.Count) { ccount2++; uint up2_cc_class1 = Program.ROM.u8(list[(int)up_cc_class2].addr + 0); uint up2_cc_class2 = Program.ROM.u8(list[(int)up_cc_class2].addr + 1); if ( (up2_cc_class1 > 0 && up2_cc_class1 < list.Count) || (up2_cc_class1 > 0 && up2_cc_class1 < list.Count) ) { ccount2++; } } } return(Math.Max(ccount1, ccount2)); }