Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Rez object con menú de activación

Manel Raymaker
Registered User
Join date: 24 Sep 2007
Posts: 2
03-01-2009 09:43
Hola mi consulta es el siguiente...

Estoy liado con un scrip para hacer aparecer un objeto temporal, pero que este se active o desactive a partir de un menú, hasta qui todo bien, lo que quiero conseguir es cuando se active el scrip saque dicho objeto cada 60 segundos aprox mientras no se desactive
por ahora tengo esto:


From: Manel Raymaker


key id = llGetOwner;

// Definimos las variables

integer a;
integer b;

default

{

state_entry()

{
if(b=0){llSetText("", <0.8,1.0,0.0>, 1.0);}
}

// Empezamos

touch_start(integer num)

{

//definimos el numero del canal que se escuchara

llListen(11811, "", "", "";);

// dentro de los corchetes todas las opciones que
// queramos que aparezcan


llDialog(llDetectedKey(0), "Elige una opción:",
["Invisible", "Encender", "Apagar", "Visible"], 11811);
}


listen( integer channel, string name, key id, string message )
{
// comprobamos la opcion seleccionada

if( message == "Encender" ){

a = 1;
llRezObject(llGetInventoryName(INVENTORY_OBJECT,0), llGetPos()+<0,0,1>,ZERO_VECTOR,ZERO_ROTATION,0);
}

if ( message == "Apagar" ){

a = 0;
b =0;
llSay(0,message);
llResetScript();
}
}
}


Espero que me podáis ayudar con esto, gracias de antemano
Checho Masukami
UnRez it or use a hammer
Join date: 6 Oct 2006
Posts: 191
03-20-2009 11:00
Creo que debo haber llegado demasiado tarde pero he aquí una solución en tu mismo script. Basicamente enciendes/apagas un timer de 60 segundos.

From: someone
key id = llGetOwner;

// Definimos las variables

integer a;
integer b;

default

{

state_entry()

{
if(b==0){llSetText("", <0.8,1.0,0.0>, 1.0);}
}

// Empezamos

touch_start(integer num)

{

//definimos el numero del canal que se escuchara

llListen(11811, "", "", "";);

// dentro de los corchetes todas las opciones que
// queramos que aparezcan


llDialog(llDetectedKey(0), "Elige una opción:",
["Invisible", "Encender", "Apagar", "Visible"], 11811);
}


listen( integer channel, string name, key id, string message )
{
// comprobamos la opcion seleccionada

if( message == "Encender" ){

llSetTimer(60.0);
llRezObject(llGetInventoryName(INVENTORY_OBJECT,0) , llGetPos()+<0,0,1>,ZERO_VECTOR,ZERO_ROTATION,0);
}
else if ( message == "Apagar" ){
llSetTimer(0.0);
a = 0;
b =0;
llSay(0,message);
llResetScript();
}
}

timer()
{
llRezObject(llGetInventoryName(INVENTORY_OBJECT,0) , llGetPos()+<0,0,1>,ZERO_VECTOR,ZERO_ROTATION,0);
}
}


Supongo que el resto del código que has puesto luego ha sido pulido para que solo sea accionado por el dueño y que el "listener" se apague cuando se selecciona una opción, caso contrario estas creando uno nuevo en cada toque. Si necesitas mas ayuda avisa.