Exemplo n.º 1
0
        public void aaJoinCombatTeam(LSL_Key uuid, LSL_String team)
        {
            if (!ScriptProtection.CheckThreatLevel(ThreatLevel.Low, "AAJoinCombatTeam", m_host, "AA", m_itemID))
            {
                return;
            }
            UUID avID;

            if (UUID.TryParse(uuid, out avID))
            {
                IScenePresence SP = World.GetScenePresence(avID);
                if (SP != null)
                {
                    ICombatPresence CP = SP.RequestModuleInterface <ICombatPresence>();
                    if (CP != null)
                    {
                        if (team.m_string == "No Team")
                        {
                            SP.ControllingClient.SendAlertMessage("You cannot join this team.");
                            return;
                        }
                        CP.Team = team.m_string;
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Set the current Windlight scene to a target avatar
        /// </summary>
        /// <param name="rules"></param>
        /// <returns>success: true or false</returns>
        public int lsSetWindlightSceneTargeted(LSL_List rules, LSL_Key target)
        {
            if (!m_LSFunctionsEnabled)
            {
                LSShoutError("LightShare functions are not enabled.");
                return(0);
            }
            if (!World.RegionInfo.EstateSettings.IsEstateManager(m_host.OwnerID) && World.GetScenePresence(m_host.OwnerID).GodLevel < 200)
            {
                LSShoutError("lsSetWindlightSceneTargeted can only be used by estate managers or owners.");
                return(0);
            }
            int success = 0;

            /*if (m_lightShareModule.EnableWindLight)
             * {
             *  RegionLightShareData wl = getWindlightProfileFromRules(rules);
             *  m_lightShareModule.SendWindlightProfileTargeted(wl, new UUID(target.m_string));
             *  success = 1;
             * }
             * else
             * {
             *  LSShoutError("Windlight module is disabled");
             *  return 0;
             * }*/
            return(success);
        }
Exemplo n.º 3
0
 public void aaUpdateDatabase(LSL_String key, LSL_String value, LSL_String token)
 {
     if (!ScriptProtection.CheckThreatLevel(ThreatLevel.Moderate, "AAUpdateDatabase", m_host, "AA", m_itemID))
     {
         return;
     }
     AssetConnector.UpdateLSLData(token.m_string, key.m_string, value.m_string);
 }
Exemplo n.º 4
0
        public LSL_List aaQueryDatabase(LSL_String key, LSL_String token)
        {
            ScriptProtection.CheckThreatLevel(ThreatLevel.Moderate, "AAQueryDatabase", m_host, "AA");

            List <string> query = AssetConnector.FindLSLData(token.m_string, key.m_string);
            LSL_List      list  = new LSL_Types.list(query.ToArray());

            return(list);
        }
Exemplo n.º 5
0
        public LSL_List aaQueryDatabase(LSL_String key, LSL_String token)
        {
            if (!ScriptProtection.CheckThreatLevel(ThreatLevel.Moderate, "AAQueryDatabase", m_host, "AA", m_itemID))
                return new LSL_List();

            List<string> query = AssetConnector.FindLSLData(token.m_string, key.m_string);
            LSL_List list = new LSL_List(query.ToArray());
            return list;
        }
Exemplo n.º 6
0
        public LSL_List aaGetTeamMembers(LSL_String team)
        {
            ScriptProtection.CheckThreatLevel(ThreatLevel.Low, "AAGetTeamMembers", m_host, "AA");
            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(Members.ToArray());

            return(members);
        }
Exemplo n.º 7
0
        public void botSetSpeed(LSL_Key bot, LSL_Float SpeedModifier)
        {
            if (!ScriptProtection.CheckThreatLevel(ThreatLevel.Moderate, "botSetSpeed", m_host, "OSSL", m_itemID))
            {
                return;
            }

            IBotManager manager = World.RequestModuleInterface <IBotManager>();

            if (manager != null)
            {
                manager.SetSpeed(UUID.Parse(bot), m_host.OwnerID, (float)SpeedModifier);
            }
        }
Exemplo n.º 8
0
        public LSL_String aaGetLastOwner(LSL_String PrimID)
        {
            ScriptProtection.CheckThreatLevel(ThreatLevel.None, "AAGetLastOwner", m_host, "AA");
            ISceneChildEntity part = m_host.ParentEntity.Scene.GetSceneObjectPart(UUID.Parse(PrimID.m_string));

            if (part != null)
            {
                return(new LSL_String(part.LastOwnerID.ToString()));
            }
            else
            {
                return(ScriptBaseClass.NULL_KEY);
            }
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        public LSL_Float aaGetHealth(LSL_Key uuid)
        {
            ScriptProtection.CheckThreatLevel(ThreatLevel.None, "AAGetHealth", m_host, "AA");
            UUID avID;

            if (UUID.TryParse(uuid, out avID))
            {
                IScenePresence SP = World.GetScenePresence(avID);
                if (SP != null)
                {
                    ICombatPresence cp = SP.RequestModuleInterface <ICombatPresence>();
                    return(new LSL_Float(cp.Health));
                }
            }
            return(new LSL_Float(-1));
        }
Exemplo n.º 11
0
        public void aaJoinCombat(LSL_Key uuid)
        {
            ScriptProtection.CheckThreatLevel(ThreatLevel.Low, "AAJoinCombat", m_host, "AA");
            UUID avID;

            if (UUID.TryParse(uuid, out avID))
            {
                IScenePresence SP = World.GetScenePresence(avID);
                if (SP != null)
                {
                    ICombatPresence CP = SP.RequestModuleInterface <ICombatPresence>();
                    if (CP != null)
                    {
                        CP.JoinCombat();
                    }
                }
            }
        }
Exemplo n.º 12
0
        public LSL_List aaDeserializeXMLKeys(LSL_String xmlFile)
        {
            if (!ScriptProtection.CheckThreatLevel(ThreatLevel.Moderate, "AADeserializeXMLKeys", m_host, "AA", m_itemID))
            {
                return(new LSL_List());
            }
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(xmlFile.m_string);
            XmlNodeList children = doc.ChildNodes;
            LSL_List    keys     = new LSL_List();

            foreach (XmlNode node in children)
            {
                keys.Add(node.Name);
            }
            return(keys);
        }
Exemplo n.º 13
0
        public LSL_String aaGetTeam(LSL_Key uuid)
        {
            UUID avID;

            if (UUID.TryParse(uuid, out avID))
            {
                ScriptProtection.CheckThreatLevel(ThreatLevel.Low, "AAGetTeam", m_host, "AA");
                IScenePresence SP = World.GetScenePresence(avID);
                if (SP != null)
                {
                    ICombatPresence CP = SP.RequestModuleInterface <ICombatPresence>();
                    if (CP != null)
                    {
                        return(CP.Team);
                    }
                }
            }
            return("No Team");
        }
Exemplo n.º 14
0
        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_List();

            foreach (UUID member in Members)
            {
                members.Add(new LSL_Key(member.ToString()));
            }
            return(members);
        }
Exemplo n.º 15
0
        public void botSetRot(LSL_Key npc, LSL_Rotation rotation)
        {
            if (!ScriptProtection.CheckThreatLevel(ThreatLevel.Moderate, "botStandUp", m_host, "bot", m_itemID))
            {
                return;
            }
            IScenePresence sp = World.GetScenePresence(UUID.Parse(npc));

            if (sp == null)
            {
                return;
            }
            UUID npcId;

            if (!UUID.TryParse(npc.m_string, out npcId))
            {
                return;
            }

            if (sp != null)
            {
                sp.Rotation = rotation.ToQuaternion();
            }
        }
Exemplo n.º 16
0
 public void AAJoinCombatTeam(LSL_String team)
 {
     m_AA_Functions.AAJoinCombatTeam(team);
 }
Exemplo n.º 17
0
 public void aaUpdateDatabase(LSL_String key, LSL_String value, LSL_String token)
 {
     if (!ScriptProtection.CheckThreatLevel(ThreatLevel.Moderate, "AAUpdateDatabase", m_host, "AA", m_itemID))
         return;
     AssetConnector.UpdateLSLData(token.m_string, key.m_string, value.m_string);
 }
Exemplo n.º 18
0
 /// <summary>
 ///     Eject user from the group this object is set to
 /// </summary>
 /// <param name="agentId"></param>
 /// <returns></returns>
 public LSL_Integer osEjectFromGroup(LSL_Key agentId)
 {
     if (!ScriptProtection.CheckThreatLevel(ThreatLevel.VeryLow, "osInviteToGroup", m_host, "OSSL", m_itemID))
         return new LSL_Integer();
     UUID agent = new UUID((string) agentId);
     // groups module is required
     IGroupsModule groupsModule = World.RequestModuleInterface<IGroupsModule>();
     if (groupsModule == null) return ScriptBaseClass.FALSE;
     // object has to be set to a group, but not group owned
     if (m_host.GroupID == UUID.Zero || m_host.GroupID == m_host.OwnerID) return ScriptBaseClass.FALSE;
     // object owner has to be in that group and required permissions
     GroupMembershipData member = groupsModule.GetMembershipData(m_host.GroupID, m_host.OwnerID);
     if (member == null || (member.GroupPowers & (ulong) GroupPowers.Eject) == 0) return ScriptBaseClass.FALSE;
     // agent has to be in that group
     //member = groupsModule.GetMembershipData(agent, m_host.GroupID, agent);
     //if (member == null) return ScriptBaseClass.FALSE;
     // ejectee can be offline
     groupsModule.EjectGroupMember(null, m_host.OwnerID, m_host.GroupID, agent);
     return ScriptBaseClass.TRUE;
 }
Exemplo n.º 19
0
 public LSL_String aaGetTeam(LSL_Key uuid)
 {
     UUID avID;
     if (UUID.TryParse(uuid, out avID))
     {
         if (!ScriptProtection.CheckThreatLevel(ThreatLevel.Low, "AAGetTeam", m_host, "AA", m_itemID))
             return new LSL_String();
         IScenePresence SP = World.GetScenePresence(avID);
         if (SP != null)
         {
             ICombatPresence CP = SP.RequestModuleInterface<ICombatPresence>();
             if (CP != null)
             {
                 return CP.Team;
             }
         }
     }
     return "No Team";
 }
Exemplo n.º 20
0
 public LSL_String aaGetLastOwner(LSL_String PrimID)
 {
     if (!ScriptProtection.CheckThreatLevel(ThreatLevel.None, "AAGetLastOwner", m_host, "AA", m_itemID))
         return new LSL_String();
     ISceneChildEntity part = m_host.ParentEntity.Scene.GetSceneObjectPart(UUID.Parse(PrimID.m_string));
     if (part != null)
         return new LSL_String(part.LastOwnerID.ToString());
     else
         return ScriptBaseClass.NULL_KEY;
 }
Exemplo n.º 21
0
 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;
 }
Exemplo n.º 22
0
 public void aaJoinCombat(LSL_Key uuid)
 {
     if (!ScriptProtection.CheckThreatLevel(ThreatLevel.Low, "AAJoinCombat", m_host, "AA", m_itemID)) return;
     UUID avID;
     if (UUID.TryParse(uuid, out avID))
     {
         IScenePresence SP = World.GetScenePresence(avID);
         if (SP != null)
         {
             ICombatPresence CP = SP.RequestModuleInterface<ICombatPresence>();
             if (CP != null)
             {
                 CP.JoinCombat();
             }
         }
     }
 }
Exemplo n.º 23
0
        public LSL_Key llRequestDisplayName(LSL_Key uuid)
        {
            UUID userID = UUID.Zero;

            if (!UUID.TryParse(uuid, out userID))
            {
                // => complain loudly, as specified by the LSL docs
                ShoutError("Failed to parse uuid for avatar.");

                return (LSL_Key)UUID.Zero.ToString();
            }

            DataserverPlugin dataserverPlugin = (DataserverPlugin)m_ScriptEngine.GetScriptPlugin("Dataserver");
            UUID tid = dataserverPlugin.RegisterRequest(m_host.UUID, m_itemID, uuid.ToString());

            Util.FireAndForget(delegate(object o)
            {
                string name = "";
                IProfileConnector connector = Aurora.DataManager.DataManager.RequestPlugin<IProfileConnector>();
                if (connector != null)
                {
                    IUserProfileInfo info = connector.GetUserProfile(userID);
                    if (info != null)
                        name = info.DisplayName;
                }
                dataserverPlugin.AddReply(uuid.ToString(),
                    name, 100);
            });

            ScriptSleep(100);
            return (LSL_Key)tid.ToString();
        }
Exemplo n.º 24
0
        public LSL_String llGetEnv(LSL_String name)
        {
            ScriptProtection.CheckThreatLevel(ThreatLevel.None, "LSL", m_host, "LSL");

            if (name == "sim_channel")
                return "Aurora-Sim Server";
            else if (name == "sim_version")
                return World.RequestModuleInterface<ISimulationBase>().Version;
            return "";
        }
Exemplo n.º 25
0
        public LSL_Key llRequestUsername(LSL_Key uuid)
        {
            UUID userID = UUID.Zero;

            if (!UUID.TryParse(uuid, out userID))
            {
                // => complain loudly, as specified by the LSL docs
                ShoutError("Failed to parse uuid for avatar.");

                return (LSL_Key)UUID.Zero.ToString();
            }

            DataserverPlugin dataserverPlugin = (DataserverPlugin)m_ScriptEngine.GetScriptPlugin("Dataserver");
            UUID tid = dataserverPlugin.RegisterRequest(m_host.UUID, m_itemID, uuid.ToString());

            Util.FireAndForget(delegate(object o)
            {
                string name = "";
                UserAccount info = World.UserAccountService.GetUserAccount(World.RegionInfo.ScopeID, userID);
                if (info != null)
                    name = info.Name;
                dataserverPlugin.AddReply(uuid.ToString(),
                    name, 100);
            });

            ScriptSleep(100);
            return (LSL_Key)tid.ToString();
        }
Exemplo n.º 26
0
        public void llRegionSayTo (LSL_Key toID, int channelID, string text)
        {
            ScriptProtection.CheckThreatLevel (ThreatLevel.None, "LSL", m_host, "LSL");

            IChatModule chatModule = World.RequestModuleInterface<IChatModule> ();

            if (text.Length > 1023)
                text = text.Substring (0, 1023);
            if (channelID == 0)
            {
                IScenePresence presence = World.GetScenePresence (UUID.Parse (toID.m_string));
                if (presence != null)
                {
                    if (chatModule != null)
                        chatModule.TrySendChatMessage (presence, m_host.AbsolutePosition, m_host.AbsolutePosition,
                            m_host.UUID, m_host.Name, ChatTypeEnum.Say, text, ChatSourceType.Object, 10000);
                }
            }

            if (m_comms != null)
                m_comms.DeliverMessage (ChatTypeEnum.Region, channelID, m_host.Name, m_host.UUID, UUID.Parse (toID.m_string), text);
        }
Exemplo n.º 27
0
        public LSL_List osGetPrimitiveParams(LSL_Key prim, LSL_List rules)
        {
            if (!ScriptProtection.CheckThreatLevel(ThreatLevel.High, "osGetPrimitiveParams", m_host, "OSSL", m_itemID))
                return new LSL_List();

            InitLSL();
            return m_LSL_Api.GetLinkPrimitiveParamsEx(prim, rules);
        }
Exemplo n.º 28
0
 public LSL_List aaDeserializeXMLValues(LSL_String xmlFile)
 {
     if (
         !ScriptProtection.CheckThreatLevel(ThreatLevel.Moderate, "AADeserializeXMLValues", m_host, "AA",
                                            m_itemID)) return new LSL_List();
     XmlDocument doc = new XmlDocument();
     doc.LoadXml(xmlFile.m_string);
     XmlNodeList children = doc.ChildNodes;
     LSL_List values = new LSL_List();
     foreach (XmlNode node in children)
     {
         values.Add(node.InnerText);
     }
     return values;
 }
Exemplo n.º 29
0
 public void aaSetEnv(LSL_String name, LSL_List value)
 {
     if (name == ScriptBaseClass.ENABLE_GRAVITY)
     {
         LSL_Integer enabled = value.GetLSLIntegerItem(0);
         float[]     grav    = m_host.ParentEntity.Scene.PhysicsScene.GetGravityForce();
         m_host.ParentEntity.Scene.PhysicsScene.SetGravityForce(enabled == 1, grav[0], grav[1], grav[2]);
     }
     else if (name == ScriptBaseClass.GRAVITY_FORCE_X)
     {
         LSL_Float f    = value.GetLSLFloatItem(0);
         float[]   grav = m_host.ParentEntity.Scene.PhysicsScene.GetGravityForce();
         m_host.ParentEntity.Scene.PhysicsScene.SetGravityForce(true, (float)f.value, grav[1], grav[2]);
     }
     else if (name == ScriptBaseClass.GRAVITY_FORCE_Y)
     {
         LSL_Float f    = value.GetLSLFloatItem(0);
         float[]   grav = m_host.ParentEntity.Scene.PhysicsScene.GetGravityForce();
         m_host.ParentEntity.Scene.PhysicsScene.SetGravityForce(true, grav[0], (float)f.value, grav[2]);
     }
     else if (name == ScriptBaseClass.GRAVITY_FORCE_Z)
     {
         LSL_Float f    = value.GetLSLFloatItem(0);
         float[]   grav = m_host.ParentEntity.Scene.PhysicsScene.GetGravityForce();
         m_host.ParentEntity.Scene.PhysicsScene.SetGravityForce(true, grav[0], grav[1], (float)f.value);
     }
     else if (name == ScriptBaseClass.ADD_GRAVITY_POINT)
     {
         LSL_Vector  pos       = value.GetVector3Item(0);
         LSL_Float   gravForce = value.GetLSLFloatItem(1);
         LSL_Float   radius    = value.GetLSLFloatItem(2);
         LSL_Integer ident     = value.GetLSLIntegerItem(3);
         float[]     grav      = m_host.ParentEntity.Scene.PhysicsScene.GetGravityForce();
         m_host.ParentEntity.Scene.PhysicsScene.AddGravityPoint(false,
                                                                new Vector3((float)pos.x, (float)pos.y,
                                                                            (float)pos.z),
                                                                0, 0, 0, (float)gravForce.value,
                                                                (float)radius.value, ident.value);
     }
     else if (name == ScriptBaseClass.ADD_GRAVITY_FORCE)
     {
         LSL_Vector  pos    = value.GetVector3Item(0);
         LSL_Float   xForce = value.GetLSLFloatItem(1);
         LSL_Float   yForce = value.GetLSLFloatItem(2);
         LSL_Float   zForce = value.GetLSLFloatItem(3);
         LSL_Float   radius = value.GetLSLFloatItem(4);
         LSL_Integer ident  = value.GetLSLIntegerItem(5);
         float[]     grav   = m_host.ParentEntity.Scene.PhysicsScene.GetGravityForce();
         m_host.ParentEntity.Scene.PhysicsScene.AddGravityPoint(true,
                                                                new Vector3((float)pos.x, (float)pos.y,
                                                                            (float)pos.z),
                                                                (float)xForce, (float)yForce, (float)zForce, 0,
                                                                (float)radius.value, ident.value);
     }
     else if (name == ScriptBaseClass.START_TIME_REVERSAL_SAVING)
     {
         IPhysicsStateModule physicsState = World.RequestModuleInterface <IPhysicsStateModule>();
         if (physicsState != null)
         {
             physicsState.StartSavingPhysicsTimeReversalStates();
         }
     }
     else if (name == ScriptBaseClass.STOP_TIME_REVERSAL_SAVING)
     {
         IPhysicsStateModule physicsState = World.RequestModuleInterface <IPhysicsStateModule>();
         if (physicsState != null)
         {
             physicsState.StopSavingPhysicsTimeReversalStates();
         }
     }
     else if (name == ScriptBaseClass.START_TIME_REVERSAL)
     {
         IPhysicsStateModule physicsState = World.RequestModuleInterface <IPhysicsStateModule>();
         if (physicsState != null)
         {
             physicsState.StartPhysicsTimeReversal();
         }
     }
     else if (name == ScriptBaseClass.STOP_TIME_REVERSAL)
     {
         IPhysicsStateModule physicsState = World.RequestModuleInterface <IPhysicsStateModule>();
         if (physicsState != null)
         {
             physicsState.StopPhysicsTimeReversal();
         }
     }
 }
Exemplo n.º 30
0
 public void aaJoinCombatTeam(LSL_Key uuid, LSL_String team)
 {
     if (!ScriptProtection.CheckThreatLevel(ThreatLevel.Low, "AAJoinCombatTeam", m_host, "AA", m_itemID)) return;
     UUID avID;
     if (UUID.TryParse(uuid, out avID))
     {
         IScenePresence SP = World.GetScenePresence(avID);
         if (SP != null)
         {
             ICombatPresence CP = SP.RequestModuleInterface<ICombatPresence>();
             if (CP != null)
             {
                 if (team.m_string == "No Team")
                 {
                     SP.ControllingClient.SendAlertMessage("You cannot join this team.");
                     return;
                 }
                 CP.Team = team.m_string;
             }
         }
     }
 }
Exemplo n.º 31
0
 public LSL_String AAGetLastOwner(LSL_String PrimID)
 {
     ScriptProtection.CheckThreatLevel(ThreatLevel.None, "AAGetLastOwner", m_host, "AA");
     SceneObjectPart part = m_host.ParentGroup.Scene.GetSceneObjectPart(UUID.Parse(PrimID.m_string));
     if (part != null)
         return new LSL_String(part.LastOwnerID.ToString());
     else
         return ScriptBaseClass.NULL_KEY;
 }
Exemplo n.º 32
0
 public LSL_Float aaGetHealth(LSL_Key uuid)
 {
     if (!ScriptProtection.CheckThreatLevel(ThreatLevel.None, "AAGetHealth", m_host, "AA", m_itemID))
         return new LSL_Float();
     UUID avID;
     if (UUID.TryParse(uuid, out avID))
     {
         IScenePresence SP = World.GetScenePresence(avID);
         if (SP != null)
         {
             ICombatPresence cp = SP.RequestModuleInterface<ICombatPresence>();
             return new LSL_Float(cp.Health);
         }
     }
     return new LSL_Float(-1);
 }
Exemplo n.º 33
0
        public void llHTTPResponse(LSL_Key id, int status, string body)
        {
            // Partial implementation: support for parameter flags needed
            //   see http://wiki.secondlife.com/wiki/llHTTPResponse

            ScriptProtection.CheckThreatLevel(ThreatLevel.None, "LSL", m_host, "LSL");
            
            
            if (m_UrlModule != null)
                m_UrlModule.HttpResponse(new UUID(id), status,body);
        }
Exemplo n.º 34
0
 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_List();
     foreach (UUID member in Members)
         members.Add(new LSL_Key(member.ToString()));
     return members;
 }
Exemplo n.º 35
0
 public LSL_String AAGetLastOwner(LSL_String PrimID)
 {
     return m_AA_Functions.AAGetLastOwner(PrimID);
 }
Exemplo n.º 36
0
 public void aaSetEnv(LSL_String name, LSL_List value)
 {
     if (name == ScriptBaseClass.ENABLE_GRAVITY)
     {
         LSL_Integer enabled = value.GetLSLIntegerItem(0);
         float[] grav = m_host.ParentEntity.Scene.PhysicsScene.GetGravityForce();
         m_host.ParentEntity.Scene.PhysicsScene.SetGravityForce(enabled == 1, grav[0], grav[1], grav[2]);
     }
     else if (name == ScriptBaseClass.GRAVITY_FORCE_X)
     {
         LSL_Float f = value.GetLSLFloatItem(0);
         float[] grav = m_host.ParentEntity.Scene.PhysicsScene.GetGravityForce();
         m_host.ParentEntity.Scene.PhysicsScene.SetGravityForce(true, (float) f.value, grav[1], grav[2]);
     }
     else if (name == ScriptBaseClass.GRAVITY_FORCE_Y)
     {
         LSL_Float f = value.GetLSLFloatItem(0);
         float[] grav = m_host.ParentEntity.Scene.PhysicsScene.GetGravityForce();
         m_host.ParentEntity.Scene.PhysicsScene.SetGravityForce(true, grav[0], (float) f.value, grav[2]);
     }
     else if (name == ScriptBaseClass.GRAVITY_FORCE_Z)
     {
         LSL_Float f = value.GetLSLFloatItem(0);
         float[] grav = m_host.ParentEntity.Scene.PhysicsScene.GetGravityForce();
         m_host.ParentEntity.Scene.PhysicsScene.SetGravityForce(true, grav[0], grav[1], (float) f.value);
     }
     else if (name == ScriptBaseClass.ADD_GRAVITY_POINT)
     {
         LSL_Vector pos = value.GetVector3Item(0);
         LSL_Float gravForce = value.GetLSLFloatItem(1);
         LSL_Float radius = value.GetLSLFloatItem(2);
         LSL_Integer ident = value.GetLSLIntegerItem(3);
         float[] grav = m_host.ParentEntity.Scene.PhysicsScene.GetGravityForce();
         m_host.ParentEntity.Scene.PhysicsScene.AddGravityPoint(false,
                                                                new Vector3((float) pos.x, (float) pos.y,
                                                                            (float) pos.z),
                                                                0, 0, 0, (float) gravForce.value,
                                                                (float) radius.value, ident.value);
     }
     else if (name == ScriptBaseClass.ADD_GRAVITY_FORCE)
     {
         LSL_Vector pos = value.GetVector3Item(0);
         LSL_Float xForce = value.GetLSLFloatItem(1);
         LSL_Float yForce = value.GetLSLFloatItem(2);
         LSL_Float zForce = value.GetLSLFloatItem(3);
         LSL_Float radius = value.GetLSLFloatItem(4);
         LSL_Integer ident = value.GetLSLIntegerItem(5);
         float[] grav = m_host.ParentEntity.Scene.PhysicsScene.GetGravityForce();
         m_host.ParentEntity.Scene.PhysicsScene.AddGravityPoint(true,
                                                                new Vector3((float) pos.x, (float) pos.y,
                                                                            (float) pos.z),
                                                                (float) xForce, (float) yForce, (float) zForce, 0,
                                                                (float) radius.value, ident.value);
     }
     else if (name == ScriptBaseClass.START_TIME_REVERSAL_SAVING)
     {
         IPhysicsStateModule physicsState = World.RequestModuleInterface<IPhysicsStateModule>();
         if (physicsState != null)
             physicsState.StartSavingPhysicsTimeReversalStates();
     }
     else if (name == ScriptBaseClass.STOP_TIME_REVERSAL_SAVING)
     {
         IPhysicsStateModule physicsState = World.RequestModuleInterface<IPhysicsStateModule>();
         if (physicsState != null)
             physicsState.StopSavingPhysicsTimeReversalStates();
     }
     else if (name == ScriptBaseClass.START_TIME_REVERSAL)
     {
         IPhysicsStateModule physicsState = World.RequestModuleInterface<IPhysicsStateModule>();
         if (physicsState != null)
             physicsState.StartPhysicsTimeReversal();
     }
     else if (name == ScriptBaseClass.STOP_TIME_REVERSAL)
     {
         IPhysicsStateModule physicsState = World.RequestModuleInterface<IPhysicsStateModule>();
         if (physicsState != null)
             physicsState.StopPhysicsTimeReversal();
     }
 }
Exemplo n.º 37
0
 public LSL_List AAQueryDatabase(LSL_String key, LSL_String token)
 {
     return m_AA_Functions.AAQueryDatabase(key, token);
 }
Exemplo n.º 38
0
        public void SetPrimitiveParamsEx(LSL_Key prim, LSL_List rules)
        {
            ScriptProtection.CheckThreatLevel(ThreatLevel.High, "osSetPrimitiveParams", m_host, "OSSL");
            SceneObjectPart obj = World.GetSceneObjectPart(new UUID(prim));
            if (obj == null)
                return;

            if (obj.OwnerID != m_host.OwnerID)
                return;

            SetPrimParams(obj, rules);
        }
Exemplo n.º 39
0
 /// <summary>
 ///     Sets terrain estate texture
 /// </summary>
 /// <param name="level"></param>
 /// <param name="texture"></param>
 /// <returns></returns>
 public void osSetTerrainTexture(int level, LSL_Key texture)
 {
     if (!ScriptProtection.CheckThreatLevel(ThreatLevel.High, "osSetParcelDetails", m_host, "OSSL", m_itemID))
         return;
     //Check to make sure that the script's owner is the estate manager/master
     //World.Permissions.GenericEstatePermission(
     if (World.Permissions.IsGod(m_host.OwnerID))
     {
         if (level < 0 || level > 3)
             return;
         UUID textureID = new UUID();
         if (!UUID.TryParse(texture, out textureID))
             return;
         // estate module is required
         IEstateModule estate = World.RequestModuleInterface<IEstateModule>();
         if (estate != null)
             estate.setEstateTerrainBaseTexture(level, textureID);
     }
 }
Exemplo n.º 40
0
 public void AAUpdateDatabase(LSL_String key, LSL_String value, LSL_String token)
 {
     m_AA_Functions.AAUpdateDatabase(key, value, token);
 }
Exemplo n.º 41
0
        public LSL_List GetLinkPrimitiveParamsEx(LSL_Key prim, LSL_List rules)
        {
            SceneObjectPart obj = World.GetSceneObjectPart(new UUID(prim));
            if (obj == null)
                return new LSL_List();

            if (obj.OwnerID != m_host.OwnerID)
                return new LSL_List();

            return GetLinkPrimitiveParams(obj, rules);
        }
Exemplo n.º 42
0
 public LSL_List AADeserializeXMLValues(LSL_String xmlFile)
 {
     return m_AA_Functions.AADeserializeXMLValues(xmlFile);
 }
Exemplo n.º 43
0
        public DateTime llTeleportAgentHome(LSL_Key _agent)
        {
            ScriptProtection.CheckThreatLevel(ThreatLevel.None, "LSL", m_host, "LSL");

            string agent = _agent.ToString();

            UUID agentId = new UUID();
            if (UUID.TryParse(agent, out agentId))
            {
                ScenePresence presence = World.GetScenePresence(agentId);
                if (presence != null)
                {
                    // agent must be over the owners land
                    IParcelManagementModule parcelManagement = World.RequestModuleInterface<IParcelManagementModule>();
                    if (parcelManagement != null)
                    {
                        if (m_host.OwnerID != parcelManagement.GetLandObject(
                            presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID &&
                            !World.Permissions.CanIssueEstateCommand(m_host.OwnerID, false))
                        {
                            return PScriptSleep(5000);
                        }
                    }

                    //Send disable cancel so that the agent cannot attempt to stay in the region
                    presence.ControllingClient.SendTeleportStart((uint)TeleportFlags.DisableCancel);
                    IEntityTransferModule transferModule = World.RequestModuleInterface<IEntityTransferModule>();
                    if (transferModule != null)
                        transferModule.TeleportHome(agentId, presence.ControllingClient);
                    else
                        presence.ControllingClient.SendTeleportFailed("Unable to perform teleports on this simulator.");
                }
            }
            return PScriptSleep(5000);
        }
Exemplo n.º 44
0
 public void AAJoinCombatTeam(LSL_String team)
 {
     ScriptProtection.CheckThreatLevel(ThreatLevel.Low, "AAJoinCombatTeam", m_host, "AA");
     ScenePresence SP = World.GetScenePresence(m_host.OwnerID);
     if (SP != null)
     {
         ICombatPresence CP = SP.RequestModuleInterface<ICombatPresence>();
         if (CP != null)
         {
             if (team.m_string == "No Team")
             {
                 SP.ControllingClient.SendAlertMessage("You cannot join this team.");
                 return;
             }
             CP.Team = team.m_string;
         }
     }
 }
Exemplo n.º 45
0
 public LSL_String llGetHTTPHeader(LSL_Key request_id, string header)
 {
     ScriptProtection.CheckThreatLevel(ThreatLevel.None, "LSL", m_host, "LSL");
     
     
    if (m_UrlModule != null)
        return m_UrlModule.GetHttpHeader(new UUID(request_id), header);
    return String.Empty;
 }