Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!
Quick Reply
Search this Thread
Lab Assistant
Original Poster
#1 Old 28th Feb 2021 at 2:07 PM
Default С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.
Back to top