Mantener Tu Dominio con Scripts

Puedes "limpiar" tu dominio usando un :doc:`script de asignación de cliente <../../script/assignment-client-scripts>`que realice regularmente tareas de mantenimiento en tu dominio. Por ejemplo, un script puede eliminar entidades que no forman parte de tu conjunto de contenido predeterminado, cargar herramientas para ayudarte a inspeccionar el contenido de tu dominio o identificar avatares ruidosos en tu dominio.

Escribir un Script

Con los scripts, puedes usar nuestra amplia API de JavaScript para codificar cualquier tarea que tu experiencia en programación y creatividad puedan generar. Aquí, hemos escrito un script de asignación de cliente de ejemplo que devuelve el contenido de nuestro dominio a su estado predeterminado cada 1 hora. Esto significa que cualquier otra entidad invocada en nuestro dominio será eliminada dentro de una hora por el script:

var SEARCH_CENTER = {x: 0, y: 0, z: 0};
var SEARCH_AREA = 60000; // search area (sphere) in meters radius
var CLEANUP_INTERVAL_MIN = 60;

var MINUTES_TO_MILLISECONDS = 60000;
var ENTITIES_TO_KEEP = ["{ENTITY_ID1}", "{ENTITY_ID2}"]

var initialized = false;
var interval;

Agent.isAvatar = true;
Avatar.skeletonModelURL = "AVATAR_FST_URL";
Script.update.connect(initialization);

function cleanup() {
  EntityViewer.queryOctree();
  var foundEntities = Entities.findEntities(SEARCH_CENTER, SEARCH_AREA);
  print("Found: " + foundEntities.length + " entities");
  foundEntities.forEach(function(entityID){
    if(ENTITIES_TO_KEEP.indexOf(entityID) === -1) {
      print("Need to delete: " + entityID);
      Entities.deleteEntity(entityID);
    }
  });
}

function initialization(deltaTime) {
  if (!initialized) {
    if(Entities.serversExist() && Entities.canRez()) {
     Entities.setPacketsPerSecond(60000);
       EntityViewer.setPosition(SEARCH_CENTER);
       EntityViewer.setCenterRadius(SEARCH_AREA);
       Script.setInterval(function() {
         EntityViewer.queryOctree();
       }, 1000);
      initialized = true;
      interval = Script.setInterval(cleanup, CLEANUP_INTERVAL_MIN * MINUTES_TO_MILLISECONDS);
      Script.update.disconnect(initialization);
    }
  }
}

Script.scriptEnding.connect(function(){
  Script.clearInterval(interval);
});

Añadir un Script de Asignación de Cliente al Dominio

Para ejecutar tu script en tu dominio:

  1. Guarda y carga tu script en un sitio de alojamiento en la nube.

  2. Abre la configuración de tu dominio.

    • Para dominios alojados en la nube: abre un navegador e ingresa la URL http://<inserta la dirección IP de tu servidor aquí>:40100/settings. Inicia sesión cuando se te solicite.

    • Para servidores locales en Windows: Haz click en el ícono de Vircadia en la bandeja del sistema, luego haz click en "Settings".

    • Para servidores locales en Mac: haz click derecho en el ícono de Vircadia en la barra de menú superior, luego haz click en "Settings".

    • Para cualquier Sistema Operativo: Abre un navegador e ingresa la URL: http://localhost:40100/settings.

  3. En la barra de menú superior, selecciona Content > Scripts.

  4. Debajo de "Persistent Scripts", haz click en el ícono +.

  5. Pega la URL de tu script en "Script URL".

  6. Guarda y reinicia tu dominio.

Ahora, el script se ejecutará de manera persistente en tu dominio hasta que lo elimines o cierres el dominio por completo.