top of page

ESTADOS

En LSL, la mayoría de los scripts suelen estar no-operativos hasta que reciban alguna entrada o detecten algun cambio en su entorno.

En cualquier momento, el scripts suele estar en algun estado, y reaccionará a los eventos o entradas segun el esquema definido por el programador.

Sin embargo, un script puede tambien contener 2 o mas estados diferentes, y reaccionar de diferente momento segun en que estado se encuentre.

 

El estado principal es el estado default.

Cuando un script es compilado, reseteado o cargado, este es el estado por defecto.

El script no suele volver a entrar al estado default cuando se rezzea, se adjunta otra vez, se cambia de sim o se reinicia de sim.

Despues del estado por defecto, pueden venir otros estados. Pero sin el estado default el script no funciona.

 

El estado default tiene la siguiente forma:

 

default

 {

                Eventos

  }

 

Otros diferentes estados tienen la siguiente forma:

 

state estadonuevo

{

                Eventos

 }

Siendo estadonuevo el nombre del nuevo estado.

 

Para cambiar de estado, es importante los siguientes 3 pasos:

  • Terminar el estado ejecutando el evento state_exit()

  • Se cambia de estado llamando al nuevo estado. Por ejemplo: state estadonuevo;

        Todos los eventos listen() son anulados.

  • Se ejecuta el evento state_entry() dentro del nuevo estado para comenzarlo.

 

Algunas advertencias:

  • Todos los listen son liberados

  • Los eventos en espera son borrados.

  • Los sensores repetitivos son liberados.

  • El reloj del timer NO es borrado.

  • Esto significa que si el nuevo estado tiene un evento timer, y el estado anterior tenia una funcion que llamaba a un timer, esta función podrá llamar al timer del estado nuevo.

  • El estado default debe ser definido antes que cualqueir estado.

  • Los estados no pueden tener funciones o variables dentro de ellos en la primera linea. Solo eventos pueden ser definidos los primeros.

  • Las funciones definidas por el programados no pueden cambiar el estado de un script. El compilador nos dara error.

bottom of page