- Site Map >
- Modding and Creation >
- Sims 3 Creation >
- Modding Discussion >
- Сan't write the code, what's my mistake?
- Site Map >
- Modding and Creation >
- Sims 3 Creation >
- Modding Discussion >
- Сan't write the code, what's my mistake?
Replies: 0 (Who?), Viewed: 443 times.
#1
28th Feb 2021 at 2:07 PM
Posts: 156
Сan't write the code, what's my mistake?
Hi friends, I'm writing code in notepad ++ and compile in ilasm, the problem is what I'm writing, I see the this:
Code:
// Sims3.Gameplay.Autonomy.MotiveTuning private static void LoadTuning(XmlDocument doc) { XmlNodeList elementsByTagName = doc.GetElementsByTagName("Motive"); foreach (XmlElement xmlElement in elementsByTagName) { XmlNodeList elementsByTagName2 = xmlElement.GetElementsByTagName("Tuning"); XmlElement xmlElement2 = elementsByTagName2[0] as XmlElement; bool flag = false; List<ProductVersion> list; if (xmlElement2.HasAttribute("codeVersions") && ParserFunctions.TryParseCommaSeparatedList<ProductVersion>(xmlElement2.GetAttribute("codeVersions"), out list, ProductVersion.Undefined)) { flag = true; bool flag2 = false; foreach (ProductVersion current in list) { if (GameUtils.IsInstalled(current)) { flag2 = true; break; } } if (!flag2) { continue; } } string attribute = xmlElement2.GetAttribute("kind"); CommodityKind commodityKind; if (ParserFunctions.TryParseEnum<CommodityKind>(attribute, out commodityKind, CommodityKind.None)) { string attribute2 = xmlElement2.GetAttribute("universal"); bool flag3 = true; if (attribute2 != "") { flag3 = ParserFunctions.ParseBool(attribute2); } string attribute3 = xmlElement2.GetAttribute("insatiable"); bool flag4 = false; if (attribute3 != "") { flag4 = ParserFunctions.ParseBool(attribute3); } string attribute4 = xmlElement2.GetAttribute("ageSpecificity"); CASAgeGenderFlags cASAgeGenderFlags = CASAgeGenderFlags.AgeMask; if (attribute4 != "" && attribute4 != "All") { ParserFunctions.TryParseEnum<CASAgeGenderFlags>(attribute4, out cASAgeGenderFlags, CASAgeGenderFlags.AgeMask); } string attribute5 = xmlElement2.GetAttribute("speciesSpecificity"); if (attribute5 != "") { CASAgeGenderFlags cASAgeGenderFlags2 = CASAgeGenderFlags.None; if (ParserFunctions.TryParseEnum<CASAgeGenderFlags>(attribute5, out cASAgeGenderFlags2, CASAgeGenderFlags.None)) { cASAgeGenderFlags |= cASAgeGenderFlags2; } } string attribute6 = xmlElement2.GetAttribute("OccultTypeSpecificity"); OccultTypes occultTypes = OccultTypes.None; if (attribute6 != "") { ParserFunctions.TryParseEnum<OccultTypes>(attribute6, out occultTypes, OccultTypes.None); } WorldRestrictionType worldRestrictionType; ParserFunctions.TryParseEnum<WorldRestrictionType>(xmlElement2.GetAttribute("worldSpecificityType"), out worldRestrictionType, WorldRestrictionType.None); List<WorldType> list2; ParserFunctions.TryParseCommaSeparatedList<WorldType>(xmlElement2.GetAttribute("worldSpecificityWorldTypes"), out list2, WorldType.Undefined); List<WorldName> list3; ParserFunctions.TryParseCommaSeparatedList<WorldName>(xmlElement2.GetAttribute("worldSpecificityWorldNames"), out list3, WorldName.Undefined); string attribute7 = xmlElement2.GetAttribute("traitSpecificity"); List<TraitNames> list4 = null; if (attribute7 != "") { List<TraitNames> list5 = null; ParserFunctions.TryParseCommaSeparatedList<TraitNames>(attribute7, out list5, TraitNames.Unknown); foreach (TraitNames current2 in list5) { if (current2 != TraitNames.Unknown) { Lazy.Add<List<TraitNames>, TraitNames>(ref list4, current2); } } } string attribute8 = xmlElement2.GetAttribute("decayType"); DecayType decayType; ParserFunctions.TryParseEnum<DecayType>(attribute8, out decayType, DecayType.DecayFromAutoSatisfy); float num = ParserFunctions.ParseFloat(xmlElement2.GetAttribute("decayValue"), 0f); num = MotiveTuning.HackToFixupCertainMotiveDecayRates(commodityKind, num); float num2 = ParserFunctions.ParseFloat(xmlElement2.GetAttribute("initialMin"), -100f); float num3 = ParserFunctions.ParseFloat(xmlElement2.GetAttribute("initialMax"), 100f); float num4 = ParserFunctions.ParseFloat(xmlElement2.GetAttribute("timeRandomness"), 0f); bool flag5 = ParserFunctions.ParseBool(xmlElement2.GetAttribute("hasDefaultValue")); int num5 = ParserFunctions.ParseInt(xmlElement2.GetAttribute("intensity"), 1); XmlNodeList elementsByTagName3 = xmlElement.GetElementsByTagName("Intensity"); XmlElement xmlElement3 = elementsByTagName3[0] as XmlElement; XmlNodeList elementsByTagName4 = xmlElement3.GetElementsByTagName("Point"); int count = elementsByTagName4.Count; Vector2[] array = new Vector2[count]; int num6 = 0; foreach (XmlElement xmlElement4 in elementsByTagName4) { float x = ParserFunctions.ParseFloat(xmlElement4.GetAttribute("x"), 0f); float y = ParserFunctions.ParseFloat(xmlElement4.GetAttribute("y"), 0f) * (float)num5; Vector2 vector = new Vector2(x, y); array[num6] = vector; num6++; } DesireCurve desireCurve = new DesireCurve(array); MotiveSatisfactionCurve motiveSatisfactionCurve = new MotiveSatisfactionCurve(); motiveSatisfactionCurve.Loops = true; Curve curve = motiveSatisfactionCurve; MotiveTuning.ParseCurve(xmlElement, "AutoSatisfy", curve); Curve motiveDecayCurve = motiveSatisfactionCurve.GetMotiveDecayCurve(); Curve curve2 = new Curve(); MotiveTuning.ParseCurve(xmlElement, "MoodContribution", curve2); List<MotiveTuning.MotiveBuffTrigger> list6 = new List<MotiveTuning.MotiveBuffTrigger>(); XmlNodeList elementsByTagName5 = xmlElement.GetElementsByTagName("MotiveBuffs"); XmlElement xmlElement5 = elementsByTagName5[0] as XmlElement; XmlNodeList elementsByTagName6 = xmlElement5.GetElementsByTagName("BuffTrigger"); foreach (XmlElement xmlElement6 in elementsByTagName6) { MotiveTuning.MotiveBuffTrigger motiveBuffTrigger = new MotiveTuning.MotiveBuffTrigger(); motiveBuffTrigger.mTriggerValueStart = ParserFunctions.ParseFloat(xmlElement6.GetAttribute("TriggerValueStart"), -1000f); motiveBuffTrigger.mTriggerValueEnd = ParserFunctions.ParseFloat(xmlElement6.GetAttribute("TriggerValueEnd"), -1000f); motiveBuffTrigger.mDecay = ParserFunctions.ParseFloat(xmlElement6.GetAttribute("Decay"), 0f); motiveBuffTrigger.mDecay = MotiveTuning.HackToFixupCertainMotiveDecayRates(commodityKind, motiveBuffTrigger.mDecay); ParserFunctions.TryParseEnum<BuffNames>(xmlElement6.GetAttribute("AddBuff"), out motiveBuffTrigger.mAddBuff, BuffNames.Undefined); ParserFunctions.TryParseCommaSeparatedList<BuffNames>(xmlElement6.GetAttribute("RemoveBuff"), out motiveBuffTrigger.mRemoveBuff, BuffNames.Undefined); string attribute9 = xmlElement6.GetAttribute("CustomClass"); if (attribute9.Length > 0) { Type typeFromHandle = typeof(Motive); MethodInfo method = typeFromHandle.GetMethod(attribute9); motiveBuffTrigger.mCustomClass = method; } else { motiveBuffTrigger.mCustomClass = null; } list6.Add(motiveBuffTrigger); } MotiveTuning motiveTuning = new MotiveTuning(commodityKind, flag3, flag4, cASAgeGenderFlags, worldRestrictionType, list2, list3, list4, desireCurve, decayType, num, motiveSatisfactionCurve, motiveDecayCurve, curve2, flag5, num2, num3, num4, list6, flag); List<MotiveTuning> list7 = null; if (!MotiveTuning.sTuning.TryGetValue((int)commodityKind, out list7)) { list7 = (MotiveTuning.sTuning[(int)commodityKind] = new List<MotiveTuning>()); } list7.Add(motiveTuning); Commodities.NewType(commodityKind, 1, motiveTuning.Min, motiveTuning.Max, 0f, true, -100f, 100f); } } }
everything would be fine, but I can't play the game freezes on first loading. I think I need the code to look like this.
Code:
// Sims3.Gameplay.Autonomy.MotiveTuning private static void LoadTuning(XmlDocument doc) { XmlNodeList elementsByTagName = doc.GetElementsByTagName("Motive"); foreach (XmlElement xmlElement in elementsByTagName) { XmlNodeList elementsByTagName2 = xmlElement.GetElementsByTagName("Tuning"); XmlElement xmlElement2 = elementsByTagName2[0] as XmlElement; bool flag = false; List<ProductVersion> list; if (xmlElement2.HasAttribute("codeVersions") && ParserFunctions.TryParseCommaSeparatedList<ProductVersion>(xmlElement2.GetAttribute("codeVersions"), out list, ProductVersion.Undefined)) { flag = true; bool flag2 = false; foreach (ProductVersion current in list) { if (GameUtils.IsInstalled(current)) { flag2 = true; break; } } if (!flag2) { continue; } } string attribute = xmlElement2.GetAttribute("kind"); CommodityKind commodityKind; if (ParserFunctions.TryParseEnum<CommodityKind>(attribute, out commodityKind, CommodityKind.None)) { string attribute2 = xmlElement2.GetAttribute("universal"); bool flag3 = true; if (attribute2 != "") { flag3 = ParserFunctions.ParseBool(attribute2); } string attribute3 = xmlElement2.GetAttribute("insatiable"); bool flag4 = false; if (attribute3 != "") { flag4 = ParserFunctions.ParseBool(attribute3); } string attribute4 = xmlElement2.GetAttribute("ageSpecificity"); CASAgeGenderFlags cASAgeGenderFlags = CASAgeGenderFlags.AgeMask; if (attribute4 != "" && attribute4 != "All") { ParserFunctions.TryParseEnum<CASAgeGenderFlags>(attribute4, out cASAgeGenderFlags, CASAgeGenderFlags.AgeMask); } string attribute5 = xmlElement2.GetAttribute("speciesSpecificity"); if (attribute5 != "") { CASAgeGenderFlags cASAgeGenderFlags2 = CASAgeGenderFlags.None; if (ParserFunctions.TryParseEnum<CASAgeGenderFlags>(attribute5, out cASAgeGenderFlags2, CASAgeGenderFlags.None)) { cASAgeGenderFlags |= cASAgeGenderFlags2; } } string attribute6 = xmlElement2.GetAttribute("OccultTypeSpecificity"); OccultTypes occultTypes = OccultTypes.None; if (attribute6 != "") { ParserFunctions.TryParseEnum<OccultTypes>(attribute6, out occultTypes, OccultTypes.None); } WorldRestrictionType worldRestrictionType; ParserFunctions.TryParseEnum<WorldRestrictionType>(xmlElement2.GetAttribute("worldSpecificityType"), out worldRestrictionType, WorldRestrictionType.None); List<WorldType> worldRestrictionWorldTypes; ParserFunctions.TryParseCommaSeparatedList<WorldType>(xmlElement2.GetAttribute("worldSpecificityWorldTypes"), out worldRestrictionWorldTypes, WorldType.Undefined); List<WorldName> worldRestrictionWorldNames; ParserFunctions.TryParseCommaSeparatedList<WorldName>(xmlElement2.GetAttribute("worldSpecificityWorldNames"), out worldRestrictionWorldNames, WorldName.Undefined); string attribute7 = xmlElement2.GetAttribute("traitSpecificity"); List<TraitNames> traitSpecificity = null; if (attribute7 != "") { List<TraitNames> list2 = null; ParserFunctions.TryParseCommaSeparatedList<TraitNames>(attribute7, out list2, TraitNames.Unknown); foreach (TraitNames current2 in list2) { if (current2 != TraitNames.Unknown) { Lazy.Add<List<TraitNames>, TraitNames>(ref traitSpecificity, current2); } } } string attribute8 = xmlElement2.GetAttribute("decayType"); DecayType decayType; ParserFunctions.TryParseEnum<DecayType>(attribute8, out decayType, DecayType.DecayFromAutoSatisfy); float num = ParserFunctions.ParseFloat(xmlElement2.GetAttribute("decayValue"), 0f); num = MotiveTuning.HackToFixupCertainMotiveDecayRates(commodityKind, num); float num2 = ParserFunctions.ParseFloat(xmlElement2.GetAttribute("initialMin"), -100f); float num3 = ParserFunctions.ParseFloat(xmlElement2.GetAttribute("initialMax"), 100f); float num4 = ParserFunctions.ParseFloat(xmlElement2.GetAttribute("timeRandomness"), 0f); bool flag5 = ParserFunctions.ParseBool(xmlElement2.GetAttribute("hasDefaultValue")); int num5 = ParserFunctions.ParseInt(xmlElement2.GetAttribute("intensity"), 1); XmlNodeList elementsByTagName3 = xmlElement.GetElementsByTagName("Intensity"); XmlElement xmlElement3 = elementsByTagName3[0] as XmlElement; XmlNodeList elementsByTagName4 = xmlElement3.GetElementsByTagName("Point"); int count = elementsByTagName4.Count; Vector2[] array = new Vector2[count]; int num6 = 0; foreach (XmlElement xmlElement4 in elementsByTagName4) { float x = ParserFunctions.ParseFloat(xmlElement4.GetAttribute("x"), 0f); float y = ParserFunctions.ParseFloat(xmlElement4.GetAttribute("y"), 0f) * (float)num5; Vector2 vector = new Vector2(x, y); array[num6] = vector; num6++; } DesireCurve desireCurve = new DesireCurve(array); MotiveSatisfactionCurve motiveSatisfactionCurve = new MotiveSatisfactionCurve(); motiveSatisfactionCurve.Loops = true; Curve curve = motiveSatisfactionCurve; MotiveTuning.ParseCurve(xmlElement, "AutoSatisfy", curve); Curve motiveDecayCurve = motiveSatisfactionCurve.GetMotiveDecayCurve(); Curve curve2 = new Curve(); MotiveTuning.ParseCurve(xmlElement, "MoodContribution", curve2); List<MotiveTuning.MotiveBuffTrigger> list3 = new List<MotiveTuning.MotiveBuffTrigger>(); XmlNodeList elementsByTagName5 = xmlElement.GetElementsByTagName("MotiveBuffs"); XmlElement xmlElement5 = elementsByTagName5[0] as XmlElement; XmlNodeList elementsByTagName6 = xmlElement5.GetElementsByTagName("BuffTrigger"); foreach (XmlElement xmlElement6 in elementsByTagName6) { MotiveTuning.MotiveBuffTrigger motiveBuffTrigger = new MotiveTuning.MotiveBuffTrigger(); motiveBuffTrigger.mTriggerValueStart = ParserFunctions.ParseFloat(xmlElement6.GetAttribute("TriggerValueStart"), -1000f); motiveBuffTrigger.mTriggerValueEnd = ParserFunctions.ParseFloat(xmlElement6.GetAttribute("TriggerValueEnd"), -1000f); motiveBuffTrigger.mDecay = ParserFunctions.ParseFloat(xmlElement6.GetAttribute("Decay"), 0f); motiveBuffTrigger.mDecay = MotiveTuning.HackToFixupCertainMotiveDecayRates(commodityKind, motiveBuffTrigger.mDecay); ParserFunctions.TryParseEnum<BuffNames>(xmlElement6.GetAttribute("AddBuff"), out motiveBuffTrigger.mAddBuff, BuffNames.Undefined); ParserFunctions.TryParseCommaSeparatedList<BuffNames>(xmlElement6.GetAttribute("RemoveBuff"), out motiveBuffTrigger.mRemoveBuff, BuffNames.Undefined); string attribute9 = xmlElement6.GetAttribute("CustomClass"); if (attribute9.Length > 0) { Type typeFromHandle = typeof(Motive); MethodInfo method = typeFromHandle.GetMethod(attribute9); motiveBuffTrigger.mCustomClass = method; } else { motiveBuffTrigger.mCustomClass = null; } list3.Add(motiveBuffTrigger); } MotiveTuning motiveTuning = new MotiveTuning(commodityKind, flag3, flag4, cASAgeGenderFlags, worldRestrictionType, worldRestrictionWorldTypes, worldRestrictionWorldNames, traitSpecificity, desireCurve, decayType, num, motiveSatisfactionCurve, motiveDecayCurve, curve2, flag5, num2, num3, num4, list3, flag); List<MotiveTuning> list4 = null; if (!MotiveTuning.sTuning.TryGetValue((int)commodityKind, out list4)) { list4 = (MotiveTuning.sTuning[(int)commodityKind] = new List<MotiveTuning>()); } list4.Add(motiveTuning); Commodities.NewType(commodityKind, 1, motiveTuning.Min, motiveTuning.Max, 0f, true, -100f, 100f); } } }
Any help is appreciated, thanks in advance.
Who Posted
|