Indire OggettoRiconoscitore

Da OpenSimITA.

list oggettivalidi=[ "oggetto1","oggetto2","oggetto3" ];
default
{
    // alla partenza occorre impostare che l'oggetto è sensibile alle collisioni di oggetti fisici
    state_entry()
    {
        llVolumeDetect(TRUE);
    }
    collision_start(integer count)
    {
        integer i;
        // esegue loop per non perdersi nessun oggetto che entra in contatto
        for( i=0; i<count; i++) {

            // ottiene la id dell'iesimo oggetto che ha colliso
            key id=llDetectedKey(i);

            // ottiene il nome dell'oggetto collidente
            string name=llDetectedName(i);

            // ottiene la descrizione dell'oggetto collidente che contiene il nome dell'avatar che lo sta spingendo
            string avname=llList2String(llGetObjectDetails(id,[OBJECT_DESC]),0);

            //llSay(0,"Detected "+name+" grabbed by "+avname);
            // verifica se il nome è uno di quelli che riconosciamo come giusto
            // if(llListFindList(oggettivalidi,[name])>=0 // alternativa per dare giusto per un elenco di nomi
            if(name=="Giusto")
            {
                llSay(0,avname+" ha messo l'oggetto giusto");
            }
            else
            {
                llSay(0,avname+" ha sbagliato");
            }
        }
    }
}

Strumenti personali