public static void AchieveInitialize(AchievementManager __instance) { dynamic _this = __instance.AsDynamic(); _this.achivs = Array.CreateInstance(AchievementBaseT, 30); dynamic achivs = _this.achivs.RealObject; dynamic achivName = R_AchivName(); dynamic achivIndex = R_AchivIndex(); for (int i = 0; i < achivName.Length; i++) { for (int j = 0; j < achivName[i].Length; j++) { if (achivIndex[i] + j < achivs.Length) { achivs[achivIndex[i] + j] = (dynamic)TargetAssembly.CreateInstance("THMHJ.Achievements." + achivClassNames[i][j]); } } } dynamic specialData = _this.LoadSpecialData().RealObject; for (int k = 0; k < specialData.ach.Length; k++) { for (int l = 0; l < specialData.ach[k].achiv.Length; l++) { achivs[achivIndex[k] + l].get = specialData.ach[k].achiv[l].get; for (int m = 0; m < achivs[achivIndex[k] + l].finishedlevel.Length; m++) { achivs[achivIndex[k] + l].finishedlevel[m] = specialData.ach[k].achiv[l].level[m]; } } } }