User:Morgam Biedermann/MorgamObjects:Computer
Script do Image Player:
É muito necessário para poder ver suas fotos favoritas...
<lsl>
list MENU1 = [];
list MENU2 = [];
integer listener;
integer MENU_CHANNEL = 1000;
// opens menu channel and displays dialog Dialog(key id, list menu) {
llListenRemove(listener); listener = llListen(MENU_CHANNEL, "", NULL_KEY, ""); llDialog(id, "Select one object below: ", menu, MENU_CHANNEL);
}
default {
on_rez(integer num) { // reset scripts on rez llResetScript(); } touch_start(integer total_number) { integer i = 0; MENU1 = []; MENU2 = []; // count the textures in the prim to see if we need pages integer c = llGetInventoryNumber(INVENTORY_TEXTURE); if (c <= 12) { for (; i < c; ++i) MENU1 += llGetInventoryName(INVENTORY_TEXTURE, i); } else { for (; i < 11; ++i) MENU1 += llGetInventoryName(INVENTORY_TEXTURE, i); if(c > 22) c = 22; for (; i < c; ++i) MENU2 += llGetInventoryName(INVENTORY_TEXTURE, i); MENU1 += ">>"; MENU2 += "<<"; } // display the dialog Dialog(llDetectedKey(0), MENU1); } listen(integer channel, string name, key id, string message) { if (channel == MENU_CHANNEL) { llListenRemove(listener); if (message == ">>") { Dialog(id, MENU2); } else if (message == "<<") { Dialog(id, MENU1); } else { // display the texture from menu selection llSetTexture(message, ALL_SIDES); } } }
}
</lsl>
Script das pastas:
Para você escolher os ítens que vai descompactar...
<lsl>
list MENU1 = [];
list MENU2 = [];
integer listener;
integer MENU_CHANNEL = 1000;
Dialog(key id, list menu)
{
llListenRemove(listener); listener = llListen(MENU_CHANNEL, "", NULL_KEY, ""); llDialog(id, "Select one object below: ", menu, MENU_CHANNEL);
}
default {
on_rez(integer num) { llResetScript(); } touch_start(integer total_number) { integer i = 0; MENU1 = []; MENU2 = []; integer c = llGetInventoryNumber(INVENTORY_OBJECT); if (c <= 12) { for (; i < c; ++i) MENU1 += llGetInventoryName(INVENTORY_OBJECT, i); } else { for (; i < 11; ++i) MENU1 += llGetInventoryName(INVENTORY_OBJECT, i); if(c > 22) c = 22; for (; i < c; ++i) MENU2 += llGetInventoryName(INVENTORY_OBJECT, i); MENU1 += ">>"; MENU2 += "<<"; } Dialog(llDetectedKey(0), MENU1); } listen(integer channel, string name, key id, string message) { if (channel == MENU_CHANNEL) { llListenRemove(listener); if (message == ">>") { Dialog(id, MENU2); } else if (message == "<<") { Dialog(id, MENU1); } else { // todo add offsets so box sites perfect on rezzer llRezAtRoot(message, llGetPos(), ZERO_VECTOR, llGetRot(), 0); } } }
}
</lsl>
Ponha cada um desses em cada pasta...
Script do recebedor de e-mail:
Utilizado para pegar os e-mails recebidos... BETA
<lsl>
// Email-to-IM // DoteDote Edison
///////// constants ///////// // how often to check for new email when owner is online (seconds) float FAST = 60.0; // how often to check owner online status when owner is offline (seconds) float SLOW = 300.0; // timezone offset from UTC integer OFFSET = -4;
////////// globals ////////// key request; key owner; integer owner_online;
string GetStamp(string time) {
list weekdays = ["THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"]; integer a = (integer)time + (OFFSET*3600); integer hours = a/3600; integer mins = a/60; string day = llList2String(weekdays, (hours/24)%7); return (string)(hours%24) + ":" + (string)(mins%60) + " " + day;
}
default {
state_entry() { owner = llGetOwner(); string address = (string)llGetKey() + "@lsl.secondlife.com"; llSetText("Servidor de e-mail:\nOnline", <0.25, 1.0, 0.25>, 1.0); llOwnerSay("ONLINE. O novo e-mail para " + llKey2Name(owner) + " é:\n" + address); llShout("O e-mail de " +llKe2Name (owner) + "é:\n" + address); llSetTimerEvent(FAST); } on_rez(integer start_param) { llResetScript(); } touch_start(integer num_detect) { if (llDetectedKey(0) == owner) state off; } email(string time, string sender, string subject, string body, integer num_remain) { llInstantMessage(owner, "Email Received from: " + sender + " -- " + GetStamp(time)); llInstantMessage(owner, body); if (num_remain > 0) llGetNextEmail("", ""); } dataserver(key query, string data) { if (query == request) { request = ""; if (data == "1") { owner_online = TRUE; llSetTimerEvent(FAST); } else { owner_online = FALSE; llSetTimerEvent(SLOW); } } } timer() { request = llRequestAgentData(owner, DATA_ONLINE); if (owner_online) llGetNextEmail("", ""); } state_exit() { llSetTimerEvent(0.0); llSetText("Servidor de e-mail:\nOffline", <1.0, 0.25, 0.25>, 1.0); }
}
state off {
touch_start(integer num_detect) { if (llDetectedKey(0) == owner) state default; } on_rez(integer start_param) { llResetScript(); }
}
</lsl>