Jump to content

Missy Restless

Resident
  • Content Count

    30
  • Joined

  • Last visited

Community Reputation

8 Neutral

About Missy Restless

  • Rank
    Advanced Member
  1. I've updated the free Marketplace boxed CheckCreator script incorporating the improved efficiency counting backwards suggestion made by PeterCanessa. This optimization avoids the possibility of traversing the inventory multiple times and produces the same results. Good suggestion. Here's the current version. // CheckCreator - check the creator name against a list of creators who have// stated their animations were pirated. Remove any animations by these// creators. This script is intended as an aid to content creators who are// packaging full-perm animations they have acquired for resale but who// wish to avoid redistribution of animations which are allegedly pirated.//// Written by Missy Restless (missyrestless at gmail dot com)// Modified 26-Dec-2011 - incorporate suggestion from PeterCanessa Oh to count// backwards in while loop to improve efficiency//// Usage: Drop this script into the Contents of a prim containing the// animations you wish to distribute/resell. Close the edit window// and touch the prim when prompted. The script will chat the// names of animations it is deleting as well as the creator's// name then the script will delete itself from the prim.//// License: You are free to use, modify, copy, and redistribute this script.// Please return relevant/useful modifications to Missy Restless.//// Info:// http://wiki.secondlife.com/w/index.php?title=62_Animation_MLP_Set// http://wiki.secondlife.com/wiki/Stroker_Serpentine_Sexgen_Animation_Set// http://bit.ly/vlOPKp// http://tinyurl.com/5wk3mr2//integer numkeys;integer keynum = 0;string creator_name = "";string creator_key;key name_query;list key_name_pairs = [];list creator_keys = ["b85e0cdf-4fb2-4383-8b0f-7ff15d01c427", "16c565f2-b5a2-4791-bf8a-24e4599abc28", "02409c8a-508c-4c68-8537-6c4166d2841b", "1f3f9aea-15cd-4a6d-85c2-2e724c8c045c", "32101244-c1f2-45a7-9a1f-96dc463068d8"];// Uncomment this key and add it to the above list if you also// wish to remove animations created by Stroker Serpentine// "368f6798-4d43-4a01-91b0-f6259e279170" default{ state_entry() { if (llGetInventoryType("CheckCreator Package Anchor") == -1) { numkeys = llGetListLength(creator_keys); // First we walk through the list of keys and get their names state getnames; } }}state getnames{ state_entry() { if (keynum < numkeys) { creator_key = llList2String(creator_keys, keynum); name_query = llRequestAgentData((key)creator_key, DATA_NAME); } else state doit; } dataserver(key queryid, string data) { if (name_query == queryid) { creator_name = data; key_name_pairs += [creator_key, creator_name]; keynum++; if (keynum == numkeys) state doit; else state default; } }}state doit{ state_entry() { llOwnerSay("CAUTION: Once removed the items are gone forever, they do not return to your inventory. Be careful with no copy items.\n"); llOwnerSay("\nTouch the prim to begin checking and removing potentially pirated animations."); } touch_start(integer num_detected) { key Creator = ""; integer i = 0; integer j = 0; integer index; string name = ""; integer numanims = llGetInventoryNumber(INVENTORY_ANIMATION); for(i=0; i<num_detected; i++) { if (llGetOwner() == llDetectedKey(i)) { // Only owner can do this i = num_detected; // Ignore multiple touches llOwnerSay("\nChecking " + (string)numanims + " animations in prim inventory"); while (numanims--) { name = llGetInventoryName(INVENTORY_ANIMATION, numanims); Creator = llGetInventoryCreator(name); creator_name = ""; index = llListFindList(key_name_pairs, [(string)Creator]); if (index != -1) { creator_name = llList2String(key_name_pairs, index + 1); llOwnerSay("Removing " + name + " created by " + creator_name); llRemoveInventory(name); llSleep(0.2); // Slow down a bit to avoid errors } } } llSleep(0.4); // Allow inventory to refresh numanims = llGetInventoryNumber(INVENTORY_ANIMATION); llOwnerSay("\nExiting. " + (string)numanims + " animations left in prim inventory"); llRemoveInventory(llGetScriptName()); return; } }}
  2. Thanks for the improvement. I assume this code is also released under a free license and can be incorporated into future iterations of the CheckCreator script. No thanks for the condescending attitude. Perhaps you are not familiar with open source development and the spirit with which it is conducted. When optimizing anothers initial release of a project it is considered poor behavior to impune the character or ability of the creator and quality of the code. That tends to discourage contribution and collaboration. At any rate, I will incorporate your improvements after testing.
  3. To clarify a bit, the script is intended primarily as a tool for content creators who are packaging animations they have acquired and wish to remove any animations with uncertain rights of redistribution and resale. If you have animations whose licensing rights are clear then they need not be loaded into the prim used by this script. The reason something like this script or a tedious manual process is needed is the great deal of uncertainty surrounding much of the content distributed inworld and on the marketplace. Especially freebie content. Even properly licensed content usually is not accompanied with a license so I may purchase something on the marketplace and it might be licensed for redistribution but how am I to know that. Second Life content typically has an "implicit license" derived from the content permissions - if it's full perm then you can redistribute/resell unless otherwise prohibited by the creator (e.g. use these full perm textures in your builds but do not resell them as-is). However, the proliferation of copybot pirated content with full perms undermines the "implicit licensing" model making everything suspect. Add to this the apparent inability of some business partners to separate their IP properly when the partnership ends and you have a situation where prudent content creators and builders just want to totally avoid content with so much licensing ambiguity. This script is meant to help people filter some of this type of content out of their builds.
  4. This script will find and delete animations that have commonly been distributed in freebie packs but whose creators maintain were not released full-perm. See http://wiki.secondlife.com/w/index.php?title=62_Animation_MLP_Set A free boxed version of this script is available on the Second Life Marketplace. // CheckCreator - check the creator name against a list of creators who have // stated their animations were pirated. Remove any animations by these // creators. This script is intended as an aid to content creators who are // packaging full-perm animations they have acquired for resale but who // wish to avoid redistribution of animations which are allegedly pirated. // // Written by Missy Restless (missyrestless at gmail dot com) // // Usage: Drop this script into the Contents of a prim containing the // animations you wish to distribute/resell. Close the edit window // and touch the prim when prompted. The script will chat the // names of animations it is deleting as well as the creator's // name then the script will delete itself from the prim. // // License: You are free to use, modify, copy, and redistribute this script. // Please return relevant/useful modifications to Missy Restless. // // Info: // http://wiki.secondlife.com/w/index.php?title=62_Animation_MLP_Set // http://wiki.secondlife.com/wiki/Stroker_Serpentine_Sexgen_Animation_Set // http://bit.ly/vlOPKp // http://tinyurl.com/5wk3mr2 // integer numkeys; integer keynum = 0; integer numnames = 0; integer numanims = 0; string anim_name = ""; string creator_name = ""; string creator_key; key name_query; list key_name_pairs = []; list creator_keys = ["b85e0cdf-4fb2-4383-8b0f-7ff15d01c427", "16c565f2-b5a2-4791-bf8a-24e4599abc28", "02409c8a-508c-4c68-8537-6c4166d2841b", "1f3f9aea-15cd-4a6d-85c2-2e724c8c045c", "32101244-c1f2-45a7-9a1f-96dc463068d8"]; // Uncomment this key and add it to the above list if you also // wish to remove animations created by Stroker Serpentine // "368f6798-4d43-4a01-91b0-f6259e279170" default { state_entry() { if (llGetInventoryType("CheckCreator Package Anchor") == -1) { numkeys = llGetListLength(creator_keys); // First we walk through the list of keys and get their names state getnames; } } } state getnames { state_entry() { if (keynum < numkeys) { creator_key = llList2String(creator_keys, keynum); name_query = llRequestAgentData((key)creator_key, DATA_NAME); } else state doit; } dataserver(key queryid, string data) { if (name_query == queryid) { creator_name = data; key_name_pairs += [creator_key, creator_name]; keynum++; if (keynum == numkeys) state doit; else state default; } } } state doit { state_entry() { numanims = llGetInventoryNumber(INVENTORY_ANIMATION); llOwnerSay("CAUTION: Once removed the items are gone forever, they do not return to your inventory. Be careful with no copy items.\n"); llOwnerSay("\nTouch the prim to begin checking and removing potentially pirated animations."); } touch_start(integer num_detected) { key Creator = ""; integer i = 0; integer j = 0; integer index; integer removed = 1; for(i=0; i<num_detected; i++) { if (llGetOwner() == llDetectedKey(i)) { // Only owner can do this llOwnerSay("\nChecking " + (string)numanims + " animations in prim inventory"); while (removed > 0) { removed = 0; for (j=0; j < numanims; j++) { anim_name = llGetInventoryName(INVENTORY_ANIMATION, j); Creator = llGetInventoryCreator(anim_name); creator_name = ""; index = llListFindList(key_name_pairs, [(string)Creator]); if (index != -1) { creator_name = llList2String(key_name_pairs, index + 1); llOwnerSay("Removing " + anim_name + " created by " + creator_name); llRemoveInventory(anim_name); removed++; llSleep(0.4); // Slow down a bit to avoid errors } } llSleep(0.4); // Allow inventory to refresh numanims = llGetInventoryNumber(INVENTORY_ANIMATION); } llSleep(0.4); // Allow inventory to refresh numanims = llGetInventoryNumber(INVENTORY_ANIMATION); llOwnerSay("\nExiting. " + (string)numanims + " animations left in prim inventory"); llRemoveInventory(llGetScriptName()); return; } } } }
  5. Is continually announcing your location on channel 2 considered a form of griefing ? It seems to me it should be. If so, has the OnDuty been reported ? If not, why not ?
  6. In Phoenix and older viewers the Key of an avatar is shown at the top of their profile. It seems in Viewer 3 that this is no longer the case. I need to be able to find an avatar's key for use by METAbolt and the auto-sit function. How does one find an avatar's key when using Viewer 3 ?
  7. Use a nice Windlight setting (I like Barcelona) Use a facelight or other lighting sources Crop your photo nicely (see http://en.wikipedia.org/wiki/Rule_of_thirds). I use Picnik Set your viewer to the highest graphics setting your system can support (Ultra if possible) Take a lot of snapshots, save to disk, edit and ruthlessly discard
  8. Thanks. I guess my next question would be why are comments on this blog post closed ?
  9. How do I leave a comment on the blog post at http://community.secondlife.com/t5/Tips-and-Tricks/VIDEO-Make-Second-Life-Behave-Better-in-the-Background/ba-p/753771 ?
  10. The viewers are primarily written in C++ along with some 3rd party libraries in C and C++. The server side is complicated and runs on Linux clusters using a variety of open source including Apache, MySQL, Squid, and Linux along with some proprietary software. Inworld dynamics are simulated using the Havoc physics engine. The Second Life article on Wikipedia has a fairly good overview - http://en.wikipedia.org/wiki/Second_Life although it tends to lag behind advancements in technical details. The viewer architecture is described at http://wiki.secondlife.com/wiki/Viewer_architecture The server architecture is described at http://wiki.secondlife.com/wiki/Server_architecture Second Life residents use the Linden Scripting Language (LSL) to control the behavior of inworld objects.
  11. Verify you satisfy the minimum hardware requirements at http://secondlife.com/support/system-requirements/ Additional system requirements info is available at http://wiki.secondlife.com/wiki/Linden_Lab_Official:System_Requirements Often it is necessary to purchase a compatible graphics card. See http://community.secondlife.com/t5/English-Knowledge-Base/Graphics-cards/ta-p/700073 If you are confident you satisfy the system requirements, try removing and re-installing your viewer.
  12. Missy Restless

    inventory

    Often the items are in the inventory but were placed in a subfolder and overlooked. Try looking in your subfolders. Also, sometimes it can take a while for an item to be delivered. There are numerous articles on Inventory Management one can read and try various suggested techniques to locate missing items: Inventory loss Missing inventory You may also need to unpack a box the items were delivered in: Opening boxes If you cannot find the items or they really were undelivered then asking the seller for redilivery usually works.
  13. My Macbook Pro overheated and died. I expect you would have better luck with the iMac. Either will satisfy the memory and cpu requirements but it is the graphics card/chip you need to worry about. At the time I had a Macbook Pro the SL viewer did not recognize the hardware as supported. I ended up just buying a cheap PC ($280) and good graphics card ($100) and running Windows 7 which got me much better performance, graphics, stability, ... for much less $$ than any Mac. If you do buy a Mac you might want to read the following and any later more current threads you can find: iMac and Second Life The iMac in Second Life How to deal with the MacBook Pro and MacBook Heat New MacBook Pro with NVIDIA 9600M GT
  14. There is an informative comment thread on specifying different cache locations over at http://community.secondlife.com/t5/Tips-and-Tricks/QUICKTIP-Running-multiple-Viewers-Separate-your-cache-folders/ba-p/672487 In my experience, running viewer 2 and Phoenix on the same system can cause all kinds of headaches unless separate caches are manually specified in your preferences.
×
×
  • Create New...