public static int?LongValue(this WorldObject wo, LongValueKey key) { if (wo.Exists(key)) { return(wo.Values(key)); } return(null); }
// [ProtoIgnore] // public int BaseHealth // { // get // { // KeyAttribute AttribKey = AttributeVals.Where(x => x.Key == (int)AttributeValueKey.BaseHealth).FirstOrDefault(); // if(AttribKey != null) {return (int)AttribKey.Val;} // else return 0; // } // } // // [ProtoIgnore] // public int CurrentHealth // { // get // { // CharKeyAttribute AttribKey = AttributeVals.Where(x => x.Key == (int)AttributeValueKey.CurrentHealth).FirstOrDefault(); // if(AttribKey != null) {return (int)AttribKey.Val;} // else return 0; // } // } public long Values(LongValueKey key) { KeyLong findkey = LongVals.Where(x => x.Key == (int)key).FirstOrDefault(); if(findkey != null) {return findkey.Val;} else{return 0;} }
public bool TryGetValue(LongValueKey index, out int value) { return this._longValues.TryGetValue((int)index, out value); }
public int Values(LongValueKey index, int defaultValue) { int value; if (this._longValues.TryGetValue((int)index, out value)) { return value; } return defaultValue; }
public int Values(LongValueKey index) { return this.Values(index, 0); }
public bool Exists(LongValueKey index) { return this._longValues.ContainsKey((int)index); }
public bool Exists(LongValueKey index) { throw new NotImplementedException(); }
public int Values(LongValueKey index, int defaultValue) { throw new NotImplementedException(); }
public bool TryGetValue(LongValueKey index, out int value) { throw new NotImplementedException(); }
public bool TryGetValue(LongValueKey index, out int value) { if (_wo.Exists(index)) { value = _wo.Values(index); return true; } value = 0; return false; }
public int Values(LongValueKey index, int defaultValue) { return _wo.Values(index, defaultValue); }
public int Values(LongValueKey index) { return _wo.Values(index); }
public bool Exists(LongValueKey index) { return _wo.Exists(index); }
public static void DumpWorldObject(WorldObject obj) { try { Utility.AddChatText("--- DEFIANCE Dump ---", 6); using (FileStream fileStream = File.Create(GetDumpFolder() + DateTime.Now.Ticks + ".xml")) { using (XmlWriter xmlWriter = XmlWriter.Create(fileStream, new XmlWriterSettings { Encoding = new UTF8Encoding(false), ConformanceLevel = ConformanceLevel.Document, Indent = true })) { xmlWriter.WriteStartDocument(); xmlWriter.WriteStartElement("WorldObject"); Utility.AddChatText(string.Format("ID: {0}", obj.Id), 0); xmlWriter.WriteStartElement("ID"); xmlWriter.WriteString(obj.Id.ToString()); xmlWriter.WriteEndElement(); Utility.AddChatText(string.Format("Name: {0}", obj.Name), 0); xmlWriter.WriteStartElement("Name"); xmlWriter.WriteString(string.Format("Name: {0}", obj.Name ?? string.Empty)); xmlWriter.WriteEndElement(); if (obj.ActiveSpellCount > 0) { xmlWriter.WriteStartElement("ActiveSpells"); Utility.AddChatText("***ActiveSpells***", 6); for (int i = 0; i < obj.ActiveSpellCount; i++) { Utility.AddChatText(string.Format("Spell: {0}", obj.ActiveSpell(i)), 0); xmlWriter.WriteStartElement("Spell"); xmlWriter.WriteString(obj.ActiveSpell(i).ToString()); xmlWriter.WriteEndElement(); } xmlWriter.WriteEndElement(); } Utility.AddChatText(string.Format("Behavior: {0}", obj.Behavior), 0); xmlWriter.WriteStartElement("Behavior"); xmlWriter.WriteString(obj.Behavior.ToString()); xmlWriter.WriteEndElement(); if (obj.BoolKeys.Count > 0) { xmlWriter.WriteStartElement("BoolKeys"); Utility.AddChatText("***BoolKeys***", 6); foreach (int num in obj.BoolKeys) { Utility.AddChatText(string.Format("Key: {0}, {1}", (BoolValueKey)num, obj.Values((BoolValueKey)num, false)), 0); xmlWriter.WriteStartElement("Key"); xmlWriter.WriteStartElement("Bool"); XmlWriter xmlWriter2 = xmlWriter; BoolValueKey boolValueKey = (BoolValueKey)num; xmlWriter2.WriteString(boolValueKey.ToString()); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("Value"); xmlWriter.WriteString(obj.Values((BoolValueKey)num, false).ToString()); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); } xmlWriter.WriteEndElement(); } Utility.AddChatText(string.Format("Category: {0}", obj.Category), 0); xmlWriter.WriteStartElement("Category"); xmlWriter.WriteString(obj.Category.ToString()); xmlWriter.WriteEndElement(); Utility.AddChatText(string.Format("Container: {0}", obj.Container), 0); xmlWriter.WriteStartElement("Container"); xmlWriter.WriteString(obj.Container.ToString()); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("Coordinates"); Utility.AddChatText("***Coordinates***", 6); Utility.AddChatText(string.Format("EastWest: {0}", obj.Coordinates().EastWest), 0); xmlWriter.WriteStartElement("EastWest"); xmlWriter.WriteString(obj.Coordinates().EastWest.ToString()); xmlWriter.WriteEndElement(); Utility.AddChatText(string.Format("NorthSouth: {0}", obj.Coordinates().NorthSouth), 0); xmlWriter.WriteStartElement("NorthSouth"); xmlWriter.WriteString(obj.Coordinates().NorthSouth.ToString()); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); if (obj.DoubleKeys.Count > 0) { xmlWriter.WriteStartElement("DoubleKeys"); Utility.AddChatText("***DoubleKeys***", 6); foreach (int num2 in obj.DoubleKeys) { Utility.AddChatText(string.Format("Key: {0}, {1}", (DoubleValueKey)num2, obj.Values((DoubleValueKey)num2, -1.0)), 0); xmlWriter.WriteStartElement("Key"); xmlWriter.WriteStartElement("Double"); XmlWriter xmlWriter3 = xmlWriter; DoubleValueKey doubleValueKey = (DoubleValueKey)num2; xmlWriter3.WriteString(doubleValueKey.ToString()); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("Value"); xmlWriter.WriteString(obj.Values((DoubleValueKey)num2, -1.0).ToString()); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); } xmlWriter.WriteEndElement(); } Utility.AddChatText(string.Format("GameDataFlags1: {0}", obj.GameDataFlags1), 0); xmlWriter.WriteStartElement("GameDataFlags1"); xmlWriter.WriteString(obj.GameDataFlags1.ToString()); xmlWriter.WriteEndElement(); Utility.AddChatText(string.Format("HasIdData: {0}", obj.HasIdData), 0); xmlWriter.WriteStartElement("HasIdData"); xmlWriter.WriteString(obj.HasIdData.ToString()); xmlWriter.WriteEndElement(); Utility.AddChatText(string.Format("Icon: {0}", obj.Icon), 0); xmlWriter.WriteStartElement("Icon"); xmlWriter.WriteString(obj.Icon.ToString()); xmlWriter.WriteEndElement(); Utility.AddChatText(string.Format("LastIdTime: {0}", obj.LastIdTime), 0); xmlWriter.WriteStartElement("LastIdTime"); xmlWriter.WriteString(obj.LastIdTime.ToString()); xmlWriter.WriteEndElement(); if (obj.LongKeys.Count > 0) { xmlWriter.WriteStartElement("LongKeys"); Utility.AddChatText("***LongKeys***", 6); foreach (int num3 in obj.LongKeys) { Utility.AddChatText(string.Format("Key: {0}, {1}", (LongValueKey)num3, obj.Values((LongValueKey)num3, -1)), 0); xmlWriter.WriteStartElement("Key"); xmlWriter.WriteStartElement("Long"); XmlWriter xmlWriter4 = xmlWriter; LongValueKey longValueKey = (LongValueKey)num3; xmlWriter4.WriteString(longValueKey.ToString()); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("Value"); xmlWriter.WriteString(obj.Values((LongValueKey)num3, -1).ToString()); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); } xmlWriter.WriteEndElement(); } Utility.AddChatText(string.Format("PhysicsDataFlags: {0}", obj.PhysicsDataFlags), 0); xmlWriter.WriteStartElement("PhysicsDataFlags"); xmlWriter.WriteString(obj.PhysicsDataFlags.ToString()); xmlWriter.WriteEndElement(); Utility.AddChatText(string.Format("ObjectClass: {0}", obj.ObjectClass), 0); xmlWriter.WriteStartElement("ObjectClass"); xmlWriter.WriteString(obj.ObjectClass.ToString()); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("RawCoordinates"); Utility.AddChatText("***RawCoordinates***", 6); Utility.AddChatText(string.Format("X: {0}", obj.RawCoordinates().X), 0); xmlWriter.WriteStartElement("X"); xmlWriter.WriteString(obj.RawCoordinates().X.ToString()); xmlWriter.WriteEndElement(); Utility.AddChatText(string.Format("Y: {0}", obj.RawCoordinates().Y), 0); xmlWriter.WriteStartElement("Y"); xmlWriter.WriteString(obj.RawCoordinates().Y.ToString()); xmlWriter.WriteEndElement(); Utility.AddChatText(string.Format("Z: {0}", obj.RawCoordinates().Z), 0); xmlWriter.WriteStartElement("Z"); xmlWriter.WriteString(obj.RawCoordinates().Z.ToString()); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); if (obj.StringKeys.Count > 0) { xmlWriter.WriteStartElement("StringKeys"); Utility.AddChatText("***StringKeys***", 6); foreach (int num4 in obj.StringKeys) { Utility.AddChatText(string.Format("Key: {0}, {1}", (StringValueKey)num4, obj.Values((StringValueKey)num4, string.Empty)), 0); xmlWriter.WriteStartElement("Key"); xmlWriter.WriteStartElement("String"); XmlWriter xmlWriter5 = xmlWriter; StringValueKey stringValueKey = (StringValueKey)num4; xmlWriter5.WriteString(stringValueKey.ToString()); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("Value"); xmlWriter.WriteString(obj.Values((StringValueKey)num4, string.Empty) ?? string.Empty); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); } xmlWriter.WriteEndElement(); } if (obj.SpellCount > 0) { xmlWriter.WriteStartElement("SpellCount"); Utility.AddChatText("***SpellCount***", 6); for (int j = 0; j < obj.SpellCount; j++) { Utility.AddChatText(string.Format("Spell: {0}", obj.Spell(j)), 0); xmlWriter.WriteStartElement("Spell"); xmlWriter.WriteString(obj.Spell(j).ToString()); xmlWriter.WriteEndElement(); } xmlWriter.WriteEndElement(); } Utility.AddChatText(string.Format("Type: {0}", obj.Type), 0); xmlWriter.WriteStartElement("Type"); xmlWriter.WriteString(obj.Type.ToString()); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); xmlWriter.WriteEndDocument(); } } } catch (Exception ex) { Repo.RecordException(ex); } }