User:Michel Lemmon/Script Presentazione
From Second Life Wiki
Michel Lemmon/Script Presentazione
Script Crea Presentazione Slide Show con TextureQuesto script vi permette di creare in-world attraverso un oggetto uno slide show. Rezzare un cubo, mettere le texture nel cubo che vogliamo usare per la nostra presentazione (Slide Show). Creare nei content dell'oggetto un New Script e copiate lo script che vedete qui sotto all'interno dello stesso cubo. Se numerate le vostre texture le stesse verranno presentate nel ordine definito. Cliccare sul cubo per attivare lo SlideShow. Vi appare un menu con tutte le opzioni per gestire lo Slide Show. // integer __debug = FALSE; string __version_id = "Script Presentazione Slide Show v 0.2"; // Variabili Globali integer interval; integer currentTexture = 0; integer previousTexture = 0; integer totalTextures = 0; list textureList =[]; integer messageChannel = 999888; list dynMenu =["Indietro", "Versione", "Avanti", "Reset"]; // Qui trovate la lista delle costanti possibili. list list_types = [INVENTORY_NONE, INVENTORY_TEXTURE, INVENTORY_SOUND, INVENTORY_LANDMARK, INVENTORY_CLOTHING, INVENTORY_OBJECT, INVENTORY_NOTECARD, INVENTORY_SCRIPT, INVENTORY_BODYPART, INVENTORY_ANIMATION, INVENTORY_GESTURE]; // Qui trovate la lista delle stringhe corrispondenti. list list_names = ["None", "Texture", "Sound", "Landmark", "Clothing", "Object", "Notecard", "Script", "Body Part", "Animation", "Gesture"]; default { state_entry() { // Leggi le texture nel prim e salvale integer typeCount = llGetInventoryNumber(INVENTORY_TEXTURE); integer j; for (j = 0; j < typeCount; ++j) { string invName = llGetInventoryName(INVENTORY_TEXTURE, j); if (__debug) { llWhisper(0, "Inventory " + invName); } textureList += invName; ++totalTextures; } if (__debug) { llWhisper(0, "Found " + (string) totalTextures + " textures"); } llSetTexture(llList2String(textureList, 0), 0); // inizializza il canale dove lo SlideShow comunica con l'owner via dialog messageChannel = (integer) llFrand(2000000000.0); llListen(messageChannel, "", NULL_KEY, ""); // llOwnerSay((string)messageChannel); currentTexture = 0; } on_rez(integer start_param) { llResetScript(); } touch_start(integer total_number) { if (llDetectedKey(0) == llGetOwner()) { llDialog(llDetectedKey(0), "Cosa vuoi fare?", dynMenu, messageChannel); } } // Ascolta il messaggio dialog box e risponde in modo appropriato listen(integer channel, string name, key id, string message) { if (id != llGetOwner()) { return; } if (message == "Versione") { llWhisper(0, __version_id); return; } if (message == "Reset") { llResetScript(); } if (message == "Indietro" && currentTexture > 0) { previousTexture = currentTexture; --currentTexture; } else if (message == "Avanti" && (currentTexture >= 0) && (currentTexture < totalTextures)) { previousTexture = currentTexture; ++currentTexture; } else { llDialog(llGetOwner(), "Cosa vuoi fare?", dynMenu, messageChannel); return; } // Se ci sono Texture da applicare. In caso contrario non fare niente. if (totalTextures > 0) { // Assicurarsi che che l'index non esca dai limiti if (currentTexture >= totalTextures) { currentTexture = 0; } // Setta le nuove texture llSetTexture(llList2String(textureList, currentTexture), 0); // Setta a 3 secondi il tempo di visualizzazione delle texture llSetTimerEvent(3.00); llDialog(llGetOwner(), "Cosa vuoi fare?", dynMenu, messageChannel); } } timer() { // Elimina tutti gli eventi timer precedenti llSetTimerEvent(0.00); // Setta la prossima texture in pre-cache integer nextTexture = currentTexture + 1; if (nextTexture >= totalTextures) { nextTexture = 0; } llSetTexture(llList2String(textureList, nextTexture), 1); } } |
|
Michel Lemmon 20:00, 1 april 2008(PST)

