Scrivimi!

Fai una donazione al Blog con Paypal!

mercoledì 17 ottobre 2007

Creare una lista dei visitatori

Questo script, iserito in un oggetto, vi servirà a creare una lista dei visitatori. Utile se avete un negozio per vedere l'affluenza. I comandi sono vocali e per ora sono impostati sul canale 0, ovvero la chat. Se volete un altroi canale, ad esempio il 4, sostituite gli 0 dello script con quest'altro numero, ma ricxordatevi di dfare i comandi in chat così: /4 ...


// Variabili Globali
list visitor_list;
float range = 10.0; // in metri
float rate = 1.0; // in secondi


// Funzioni
integer isNameOnList( string name )
{
integer len = llGetListLength( visitor_list );
integer i;
for( i = 0; i < len; i++ )
{
if( llList2String(visitor_list, i) == name )
{
return TRUE;
}
}
return FALSE;
}

// States
default
{
state_entry()
{
llSay(0, "Lista dei visitatori attivata...");
llSay(0, "Il proprietario può dire "aiuto" per le istruzioni.");
llSensorRepeat( "", "", AGENT, range, TWO_PI, rate );
llListen(0, "", llGetOwner(), "");
}


sensor( integer number_detected )
{
integer i;
for( i = 0; i < number_detected; i++ )
{
if( llDetectedKey( i ) != llGetOwner() )
{
string detected_name = llDetectedName( i );
if( isNameOnList( detected_name ) == FALSE )
{
visitor_list += detected_name;
}
}
}
}

listen( integer channel, string name, key id, string message )
{
if( id != llGetOwner() )
{
return;
}

if( message == "aiuto" )
{
llSay( 0, "Questo oggetto registra i nomi di tutti quelli che" );
llSay( 0, "vengono nell'area di "+ (string)range + " metri." );
llSay( 0, "Comandi disponibili:" );
llSay( 0, "'aiuto' - Mostra le istruzioni." );
llSay( 0, "'lista' - Vengono detti i nomi dei visitatori.");
llSay( 0, "'reset' - Rimuove i nomi dalla lista." );
}
else
if( message == "lista" )
{
llSay( 0, "Lista dei Visitatori:" );
integer len = llGetListLength( visitor_list );
integer i;
for( i = 0; i < len; i++ )
{
llSay( 0, llList2String(visitor_list, i) );
}
llSay( 0, "Totale= " + (string)len );
}
else
if( message == "reset" )
{
visitor_list = llDeleteSubList(visitor_list, 0, llGetListLength(visitor_list));
llSay( 0, "Fatto.");
}
}
}

6 commenti:

Anonimo ha detto...

ciao mica!! è da un po che non ti sento,spero che vada tutto bene! in ogni caso ho provato ad usare il tuo script ma quando lo salvo mi da un errore nella riga 27 che non riesco a capire!!
ciao!

Micalita Writer ha detto...

Ciao Billy, tutto ok :)
Non riesci a scirvermi esattamente cosa dice?

Anonimo ha detto...

il compilatore dice esattamente cosi:

(27, 12) : ERROR : Syntax Error

billi84 bing

Anonimo ha detto...

Sostituire la stringa errata n°27 con questa

llSay(0, "aiuto"); //Il proprietario può dire per le istruzioni


FarteraLuciano Ibanez

Micalita Writer ha detto...

Grazie della correzione :)
Davvero molto gentile.

Micalita

Anonimo ha detto...

figurati... grazie a te per il blog... anzi so già che tra un pò incomincerai ad oriarmi per le continue domande che posterò :(

LucianoFaretra Ibanez

Posti Da Vedere

Cosa c'è da visitare su Second Life? Guarda qui!

Guida a Second Life

Qui potrai trovare tutte le risposte che cerchi, gli indirizzi utili per guadagnare qualche L$, Freebie, Camping e tutto ciò che può servire ad un Newbie!

Tutorial

Vuoi approfondire qualcosa sul Building, lo scripting o il texturing? O magari vuoi sapere come creare vestiti, oggetti o accessori per il tuo avatar? Questa è la sezione giusta per te!