
Remember Our Veterans This Memorial Day!
Memorial day in the United States is coming up soon, on the last Monday in May on the 29th. Our national holiday honors those who fought and died to defend our country. Traditionally, we fly the American flag that day.
Here is a simple way to express your appreciation for our veterans ultimate sacrifice via Second Life, by adding a waving, animated American flag to your parcel:
![]() |
You can add your own state's flag to the display, too, provided that it is underneath the American flag, or on a separate flagpole lower than the American flag, as required by flag etiquette. You should also fly the flag of the United States at half-staff from dawn until noon local time on Memorial Day.
I'd also like to mention something about one person who gave his life for our country. A dear friend of mine, Wavinggirlsav Voom, told Charlie vanAlten and me in Second Life that her mother had been looking for her brother, her Uncle Johnny, for nearly 60 years. All she knew was her mom's brother had died somewhere in Europe in WW-II as he got out of a tank.
All our searches reached a dead end. But then something happened in Second Life.
Read about John Dikun in WW-II and please, make a flag and fly it this Memorial Day.
MetaSearch
Script Meta-Search will search thousands of scripts here and at other sites for LSL or Opensim script. Home |
Add a script
|
||
|---|---|---|---|
| Category: | Contributor: | Script Name: | |
| Permissions | Ordinal Malaprop | Check Inventory Permissions | |
Very useful script to check and set inventory permissions in multi-prim objects.
Put this in the root prim. It supports the following commands help - this help message send - send out copies of self to all prims in object check - check inventory permissions in object against desired perms checkall - complete list of all permissionsfor all inventory contents mod - set or remove mod perm desired copy - set or remove copy perm desired trans - set or remove trans perm desired killall - remove all other check scripts from object (including this one) highlight - go thro :
Download this script - Please use this link to get this script. Copy and Paste does not work well when lsl scripts include embedded HTML. If you see all the code on one long line, please use Wordpad or another editor, such as LSLEdit.exe.
1 2 integer CHANNEL = 678; 3 integer LINK_N = -12390133; 4 integer gDesiredPerms = 0; 5 9 list LIST_NAMES = ["None", "Texture", "Sound", "Landmark", "Clothing", "Object", "Notecard", 10 "Script", "Body Part", "Animation", "Gesture"]; 11 12 //--------------------------------------------------------------------- 13 15 { 17 integer type_index = llListFindList(LIST_TYPES, [detected_type]); 18 return llList2String(LIST_NAMES, type_index); 19 } 20 22 { 23 list msg = []; 24 if (perms & PERM_MODIFY) msg += ["mod"]; 25 if (perms & PERM_COPY) msg += ["copy"]; 26 if (perms & PERM_TRANSFER) msg += ["trans"]; 27 if (msg == []) return "(no perms)"; 28 else return llDumpList2String(msg, "/"); 29 } 30 31 list_perms(integer all) 32 { 33 integer f = 0; 34 string report = ""; 35 integer perms = 0; 36 do { 37 perms = llGetInventoryPermMask( 38 llGetInventoryName(INVENTORY_ALL, f), 39 MASK_NEXT 40 ) & 57344; 41 if (all || ((perms != gDesiredPerms)) && llGetInventoryName(INVENTORY_ALL, f) != llGetScriptName()) { 42 report += ( 43 "\n" + llGetInventoryName(INVENTORY_ALL, f) 44 + " (" + inventory_type(f) + "): " 45 + perm_string(perms) 46 ); 47 } 48 } while (++f < llGetInventoryNumber(INVENTORY_ALL)); 49 if (report == "") { 50 if (all) report += "\nNo inventory objects in this prim"; 51 else report += "\nAll inventory objects OK in this prim"; 52 } 53 report = "Inventory permission report for " + prim_name(llGetLinkNumber()) + report; 54 llOwnerSay(report); 55 if (llGetLinkNumber() <= 1) { 58 } 59 } 60 61 propagate() 62 { 63 // Sends out a copy of itself to every prim in the object 64 integer f = llGetNumberOfPrims(); 65 if (f <= 1) { 66 llOwnerSay("There's only one prim in this object"); 67 return; 68 } 69 llOwnerSay("Propagating this script throughout object..."); 70 // Link numbers begin with 1 71 do { 72 if (f != llGetLinkNumber()) { 74 llOwnerSay("Given to " + prim_name(f)); 75 } 76 } while (--f > 0); 77 llOwnerSay("Done. You will now have to recompile all of the check scripts in this object before they " 78 + "can be used - either take the object into inventory, re-rez and select 'Set all scripts to running in " 79 + "selection' from Tools menu, or manually re-save each script."); 80 } 81 82 help() 83 { 84 llOwnerSay("Say commands on channel " + (string)CHANNEL + "\nhelp - this help message\n" 85 + "send - send out copies of self to all prims in object\ncheck - check" 86 + " inventory permissions in object against desired perms\ncheckall - complete list of all permissions" 87 + "for all inventory contents\nmod - set or remove mod perm desired\ncopy - set or remove copy " 88 + "perm desired\ntrans - set or remove trans perm desired\nkillall - remove all other check scripts " 89 + "from object (including this one)\nhighlight - go through all of the prims highlighting each one, to " 90 + "show permission (will spoil manual alpha adjustments!)"); 91 llOwnerSay("Current desired permissions - " + perm_string(gDesiredPerms)); 92 } 93 94 kill_all_scripts() 95 { 96 // Send out die message and remove this script too 97 llOwnerSay("Sending message for other scripts to die..."); 99 die();100 }101 103 {104 return "prim #" + (string)f + " (" + llGetLinkName(f) + ")";105 }106 107 die()108 {109 llOwnerSay(llGetScriptName() + " in " + prim_name(llGetLinkNumber()) + " - removing myself, goodbye!");110 llRemoveInventory(llGetScriptName());111 }112 113 process_command(string msg)114 {115 msg = llToLower(msg);116 if (msg == "help") help();117 else if (msg == "send") propagate();118 else if (msg == "killall") kill_all_scripts();119 else if (msg == "check") list_perms(0);120 else if (msg == "checkall") list_perms(1);121 else if (msg == "mod") {122 toggle_flag(PERM_MODIFY);123 if (llGetLinkNumber() <= 1) llMessageLinked(LINK_SET, LINK_N, "perms" + (string)gDesiredPerms, NULL_KEY);124 }125 else if (msg == "copy") {126 toggle_flag(PERM_COPY);127 if (llGetLinkNumber() <= 1) llMessageLinked(LINK_SET, LINK_N, "perms" + (string)gDesiredPerms, NULL_KEY);128 }129 else if (msg == "trans") {130 toggle_flag(PERM_TRANSFER);131 if (llGetLinkNumber() <= 1) llMessageLinked(LINK_SET, LINK_N, "perms" + (string)gDesiredPerms, NULL_KEY);132 }133 else if (llGetSubString(msg, 0, 4) == "perms") {134 gDesiredPerms = (integer)llGetSubString(msg, 5, -1);135 }136 else if (msg == "die") die();137 else if (msg == "highlight") highlight_prims();138 }139 140 toggle_flag(integer perm)141 {142 gDesiredPerms = gDesiredPerms ^ perm;143 if (llGetLinkNumber() <= 1) llOwnerSay("Desired permissions are now " + perm_string(gDesiredPerms));144 }145 146 highlight_prims()147 {148 integer f = llGetNumberOfPrims();149 if (f <= 1) {150 llOwnerSay("There's only one prim in this object, what's the point?");151 return;152 }153 llOwnerSay("Beginning prim highlighting");155 // Link numbers begin with 1156 do {157 llSetLinkAlpha(f, 1.0, ALL_SIDES);158 llOwnerSay("Highlight " + prim_name(f));159 llSleep(3.0);160 llSetLinkAlpha(f, 0.1, ALL_SIDES);161 } while (--f > 0);163 llOwnerSay("Done");164 }165 166 //---------------------------------------------------------------------167 168 default169 {170 state_entry()171 {172 gDesiredPerms = PERM_COPY;173 if (llGetLinkNumber() <= 1) {174 llListen(CHANNEL, "", llGetOwner(), "");175 help();176 }177 else {179 }180 }181 183 {184 llResetScript();185 }186 188 {189 process_command(msg);190 }191 193 {194 if (n == LINK_N && llGetLinkNumber() > 1) {195 process_command(msg);196 }197 }198 200 {201 if (change & CHANGED_OWNER) {202 // delete if sold etc203 llRemoveInventory(llGetScriptName());204 }205 else if (change & CHANGED_LINK) {206 llResetScript();207 }208 }209 }