public LSL_List aaDeserializeXMLValues(LSL_String xmlFile) { ScriptProtection.CheckThreatLevel(ThreatLevel.Moderate, "AADeserializeXMLValues", m_host, "AA"); XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlFile.m_string); XmlNodeList children = doc.ChildNodes; LSL_List values = new LSL_Types.list(); foreach (XmlNode node in children) { values.Add(node.InnerText); } return(values); }
public LSL_Types.list ParseValueToList(string inval, int start, out int end) { LSL_Types.list v = new LSL_Types.list(); end = -1; char c; string tr = ",}"; char[] charany = tr.ToCharArray(); string param = ""; int totlen = inval.Length; int len; DateTime time_limit = DateTime.Now.AddSeconds(5.0); while (true) { try { if (inval.Length == 0) v.Add(new LSL_Types.LSLString("")); else { c = inval[start++]; switch (c) { case 'i': end = inval.IndexOfAny(charany, start); if (end > 0) len = end - start; else len = totlen - start; param = inval.Substring(start, len); v.Add(new LSL_Types.LSLInteger(param)); break; case 'f': end = inval.IndexOfAny(charany, start); if (end > 0) len = end - start; else len = totlen - start; param = inval.Substring(start, len); v.Add(new LSL_Types.LSLFloat(param)); break; case 'v': end = inval.IndexOf('>', start); if (end > 0) len = end - start; else len = totlen - start; param = inval.Substring(start, len); v.Add(new LSL_Types.Vector3(param)); end++; break; case 'q': end = inval.IndexOf('>', start); if (end > 0) len = end - start; else len = totlen - start; param = inval.Substring(start, len); v.Add(new LSL_Types.Quaternion(param)); end++; break; case '"': end = inval.IndexOf('"', start); while (inval[end - 1] == '\\') { int slashes = 2; while (end - slashes > 0 && inval[end - slashes] == '\\') slashes++; if ((slashes - 1)%2 == 0) end = inval.IndexOf('"', end + 1); else break; } if (end > 0) len = end - start; else len = totlen - start; param = UnEscapeString(inval.Substring(start, len)); v.Add(new LSL_Types.LSLString(param)); end++; break; case '{': v.Add(ParseValueToList(inval, start, out end)); end++; break; default: break; } } start = end; if (start == -1 || start >= totlen || (inval[start] == '}')) break; else while ((inval[start] == ',' || inval[start] == ' ') && DateTime.Now.CompareTo(time_limit) < 0) start++; if (DateTime.Now.CompareTo(time_limit) > 0) break; } catch { } } return v; }
public LSL_List AADeserializeXMLValues(LSL_String xmlFile) { ScriptProtection.CheckThreatLevel(ThreatLevel.Moderate, "AADeserializeXMLValues", m_host, "AA"); XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlFile.m_string); XmlNodeList children = doc.ChildNodes; LSL_List values = new LSL_Types.list(); foreach (XmlNode node in children) { values.Add(node.InnerText); } return values; }
public LSL_Types.list ParseValueToList(string inval, int start, out int end) { LSL_Types.list v = new LSL_Types.list(); end = -1; char c; string tr = ",}"; char[] charany = tr.ToCharArray(); string param = ""; int totlen = inval.Length; int len; while (true) { try { if (inval.Length == 0) { v.Add(new LSL_Types.LSLString("")); } else { c = inval[start++]; switch (c) { case 'i': end = inval.IndexOfAny(charany, start); if (end > 0) { len = end - start; } else { len = totlen - start; } param = inval.Substring(start, len); v.Add(new LSL_Types.LSLInteger(param)); break; case 'f': end = inval.IndexOfAny(charany, start); if (end > 0) { len = end - start; } else { len = totlen - start; } param = inval.Substring(start, len); v.Add(new LSL_Types.LSLFloat(param)); break; case 'v': end = inval.IndexOf('>', start); if (end > 0) { len = end - start; } else { len = totlen - start; } param = inval.Substring(start, len); v.Add(new LSL_Types.Vector3(param)); end++; break; case 'q': end = inval.IndexOf('>', start); if (end > 0) { len = end - start; } else { len = totlen - start; } param = inval.Substring(start, len); v.Add(new LSL_Types.Quaternion(param)); end++; break; case '"': end = inval.IndexOf('"', start); if (end > 0) { len = end - start; } else { len = totlen - start; } param = inval.Substring(start, len); v.Add(new LSL_Types.LSLString(param)); end++; break; case 'k': start++; end = inval.IndexOf('"', start); if (end > 0) { len = end - start; } else { len = totlen - start; } param = inval.Substring(start, len); v.Add(new LSL_Types.key(param)); end++; break; case '{': v.Add(ParseValueToList(inval, start, out end)); end++; break; default: break; } } start = end; if (start == -1 || start >= totlen || (inval[start] == '}')) { break; } else { while (inval[start] == ',' || inval[start] == ' ') { start++; } } } catch { } } return(v); }
public LSL_Types.list ParseValueToList(string inval, int start, out int end) { LSL_Types.list v = new LSL_Types.list(); end = -1; char c; string tr = ",}"; char[] charany = tr.ToCharArray(); string param = ""; int totlen = inval.Length; int len; DateTime time_limit = DateTime.Now.AddSeconds(5.0); while (true) { try { if (inval.Length == 0) { v.Add(new LSL_Types.LSLString("")); } else { c = inval[start++]; switch (c) { case 'i': end = inval.IndexOfAny(charany, start); if (end > 0) { len = end - start; } else { len = totlen - start; } param = inval.Substring(start, len); v.Add(new LSL_Types.LSLInteger(param)); break; case 'f': end = inval.IndexOfAny(charany, start); if (end > 0) { len = end - start; } else { len = totlen - start; } param = inval.Substring(start, len); v.Add(new LSL_Types.LSLFloat(param)); break; case 'v': end = inval.IndexOf('>', start); if (end > 0) { len = end - start; } else { len = totlen - start; } param = inval.Substring(start, len); v.Add(new LSL_Types.Vector3(param)); end++; break; case 'q': end = inval.IndexOf('>', start); if (end > 0) { len = end - start; } else { len = totlen - start; } param = inval.Substring(start, len); v.Add(new LSL_Types.Quaternion(param)); end++; break; case '"': end = inval.IndexOf('"', start); while (inval[end - 1] == '\\') { int slashes = 2; while (end - slashes > 0 && inval[end - slashes] == '\\') { slashes++; } if ((slashes - 1) % 2 == 0) { end = inval.IndexOf('"', end + 1); } else { break; } } if (end > 0) { len = end - start; } else { len = totlen - start; } param = UnEscapeString(inval.Substring(start, len)); v.Add(new LSL_Types.LSLString(param)); end++; break; case '{': v.Add(ParseValueToList(inval, start, out end)); end++; break; default: break; } } start = end; if (start == -1 || start >= totlen || (inval[start] == '}')) { break; } else { while ((inval[start] == ',' || inval[start] == ' ') && DateTime.Now.CompareTo(time_limit) < 0) { start++; } } if (DateTime.Now.CompareTo(time_limit) > 0) { break; } } catch { } } return(v); }
public LSL_List aaDeserializeXMLKeys(LSL_String xmlFile) { ScriptProtection.CheckThreatLevel(ThreatLevel.Moderate, "AADeserializeXMLKeys", m_host, "AA"); XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlFile.m_string); XmlNodeList children = doc.ChildNodes; LSL_List keys = new LSL_Types.list(); foreach (XmlNode node in children) { keys.Add(node.Name); } return keys; }
public LSL_List aaGetTeamMembers(LSL_String team) { if(!ScriptProtection.CheckThreatLevel(ThreatLevel.Low, "AAGetTeamMembers", m_host, "AA", m_itemID)) return new LSL_List(); List<UUID> Members = new List<UUID>(); ICombatModule module = World.RequestModuleInterface<ICombatModule>(); if (module != null) { Members = module.GetTeammates(team); } LSL_List members = new LSL_Types.list(); foreach(UUID member in Members) members.Add(new LSL_Key(member.ToString())); return members; }
public LSL_Types.list ParseValueToList(string inval, int start, out int end) { LSL_Types.list v = new LSL_Types.list(); end = -1; char c; string tr = ",}"; char[] charany = tr.ToCharArray(); string param = ""; int totlen = inval.Length; int len; while (true) { try { if (inval.Length == 0) v.Add(new LSL_Types.LSLString("")); else { c = inval[start++]; switch (c) { case 'i': end = inval.IndexOfAny(charany, start); if (end > 0) len = end - start; else len = totlen - start; param = inval.Substring(start, len); v.Add(new LSL_Types.LSLInteger(param)); break; case 'f': end = inval.IndexOfAny(charany, start); if (end > 0) len = end - start; else len = totlen - start; param = inval.Substring(start, len); v.Add(new LSL_Types.LSLFloat(param)); break; case 'v': end = inval.IndexOf('>', start); if (end > 0) len = end - start; else len = totlen - start; param = inval.Substring(start, len); v.Add(new LSL_Types.Vector3(param)); end++; break; case 'q': end = inval.IndexOf('>', start); if (end > 0) len = end - start; else len = totlen - start; param = inval.Substring(start, len); v.Add(new LSL_Types.Quaternion(param)); end++; break; case '"': end = inval.IndexOf('"', start); if (end > 0) len = end - start; else len = totlen - start; param = inval.Substring(start, len); v.Add(new LSL_Types.LSLString(param)); end++; break; case 'k': start++; end = inval.IndexOf('"', start); if (end > 0) len = end - start; else len = totlen - start; param = inval.Substring(start, len); v.Add(new LSL_Types.key(param)); end++; break; case '{': v.Add(ParseValueToList(inval, start, out end)); end++; break; default: break; } } start = end; if (start == -1 || start >= totlen || (inval[start] == '}')) break; else while (inval[start] == ',' || inval[start] == ' ') start++; } catch { } } return v; }