KellyM Watkins Posted August 23, 2011 Share Posted August 23, 2011 I have a couple of scripts that I have found on the LSL wiki and would like to combine them together. One is an Animate When Attached and the other is the Unpacker script (give inventory to folder). Trying to add them together, but my scripting knowliedge is not all that great.Could someone help me?Thanks.:matte-motes-kiss: Link to comment Share on other sites More sharing options...
Acheron Gloom Posted August 24, 2011 Share Posted August 24, 2011 It'd be easier if the scripts were pasted here. ;p Link to comment Share on other sites More sharing options...
Ishtara Rothschild Posted August 24, 2011 Share Posted August 24, 2011 KellyM Watkins wrote: Adding Two Scripts To One [...] Could someone help me? The solution is "three scripts". Just kidding Can you post the links to the two scripts? Link to comment Share on other sites More sharing options...
KellyM Watkins Posted August 24, 2011 Author Share Posted August 24, 2011 Duh, that would help lol They are as follows: Give Inventory (Unpacker) // script created by SpiritWolf Chikuwa// minor changes by Strife Onizuka to speed things up//// /!\ PUBLIC DOMAIN /!\// You can Copy/Mod/Trans // Please, do not resell this script and give it full perm// Just please leave this header intact//// Minor changes: (insert your name here and delete this comment if you do any mod of this script, thank you)//// Script start here: list gInventoryList; list getInventoryList(){ list result = []; integer n = llGetInventoryNumber(INVENTORY_ALL); while(n) result = llGetInventoryName(INVENTORY_ALL, --n) + result; return result;} default{ state_entry() { gInventoryList = getInventoryList(); } touch_start( integer n ) { integer i = 0; string folder = llGetObjectName(); while(i < n) { llGiveInventoryList(llDetectedKey(i), folder, gInventoryList ); ++i; } } changed( integer change ) { if ( change == CHANGED_INVENTORY ) gInventoryList = getInventoryList(); }} // llGetInventory number and name will scan all objects on the box.// llGiveInventory will give you the content.// See also llGetInventory and llGiveInventory on LSL Wiki for further informations. and Animate on Attach /*Bornslippy Ruby presents...Start Animation On AttachThis script can handle: Animations, Attachments, Owner, Permissions, todoCopyright © 2010 Bornslippy RubyPermission is hereby granted, free of charge, to any person obtaining acopy of this software and associated documentation files (the "Start Animation On Attach"), todeal in Start Animation On Attach without restriction, including without limitation the rights touse, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of Start Animation On Attach, and to permit persons to whom Start Animation On Attach is furnished to do so,subject to the following conditions:The above copyright notice and this permission notice shall beincluded in all copies or substantial portions of the software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIESOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE ANDNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISINGFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OROTHER DEALINGS IN THE SOFTWARE.http://secondlife.coolminds.org*/string HOLD_ANIM = "animation name";// --------------------------------------------------------default{ on_rez(integer rezzed) { llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION); } attach(key attached) { if(attached != llGetOwner()) if(llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) llStopAnimation(HOLD_ANIM); } run_time_permissions(integer perms) { if(perms & PERMISSION_TRIGGER_ANIMATION) llStartAnimation(HOLD_ANIM); else llDetachFromAvatar(); }} Link to comment Share on other sites More sharing options...
Acheron Gloom Posted August 24, 2011 Share Posted August 24, 2011 Here you go. I rewrote it myself since I didn't want to deal with all that copyright stuff the one guy had. If you attach it, it starts an animation to hold it. If you drop it, it won't. If you click it, it gives its inventory. //Original portions by SpiritWolf Chikuwa, with modification by Strife Onizuka //Modification by Acheron Gloom //Public Domain, non-commercial, leave header intact. string holdAnim = "Put the animation between these quotes, leave the quotes intact"; list gInventoryList; list getInventoryList() { list result = []; integer n = llGetInventoryNumber(INVENTORY_ALL); string scriptName = llGetScriptName(); do { string invName = llGetInventoryName(INVENTORY_ALL, --n); if(invName != holdAnim && invName != scriptName) result = invName + result; }while(n); return result; } default { state_entry() { gInventoryList = getInventoryList(); } attach(key id) { if(id) { llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION); llStartAnimation(holdAnim); } else if(llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) llStopAnimation(holdAnim); } touch_start( integer n ) { string folder = llGetObjectName(); do { llGiveInventoryList(llDetectedKey(--n), folder, gInventoryList ); }while(n); } } Link to comment Share on other sites More sharing options...
Ishtara Rothschild Posted August 24, 2011 Share Posted August 24, 2011 This should work: // script created by SpiritWolf Chikuwa // combined with another script © 2010 by Bornslippy Ruby// minor changes by Strife Onizuka to speed things uplist gInventoryList;string HOLD_ANIM = "animation name"; list getInventoryList(){ list result = []; integer n = llGetInventoryNumber(INVENTORY_ALL); while(n) result = llGetInventoryName(INVENTORY_ALL, --n) + result; return result;} default{ state_entry() { gInventoryList = getInventoryList(); } on_rez(integer rezzed) { llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION); } run_time_permissions(integer perms) { if(perms & PERMISSION_TRIGGER_ANIMATION) llStartAnimation(HOLD_ANIM); else llDetachFromAvatar(); } touch_start( integer n ) { integer i = 0; string folder = llGetObjectName(); while(i < n) { llGiveInventoryList(llDetectedKey(i), folder, gInventoryList ); ++i; } } changed( integer change ) { if ( change == CHANGED_INVENTORY ) gInventoryList = getInventoryList(); }} Link to comment Share on other sites More sharing options...
Poenald Palen Posted August 24, 2011 Share Posted August 24, 2011 how will this script work? I mean, attache from inventory? If they rez it, should it ask to be attached and then do so? This is sort of important....OR, is it click and then animate and do stuff? Link to comment Share on other sites More sharing options...
Ishtara Rothschild Posted August 24, 2011 Share Posted August 24, 2011 Poenald Palen wrote: how will this script work? I mean, attache from inventory? If they rez it, should it ask to be attached and then do so? This is sort of important....OR, is it click and then animate and do stuff? As far as I can see, the object (a sales box or shopping bag) is meant to be rezzed on the ground. It will unpack when clicked and also ask for permission to animate the object owner. ETA: Although, seeing that the animation is called HOLD_ANIM, I guess it's meant to be attached after all. But if it's a sales box, not many people will do that. Link to comment Share on other sites More sharing options...
KellyM Watkins Posted August 24, 2011 Author Share Posted August 24, 2011 Great that works well... any idea how I can prevent the Animation and the actual script from going into the inventory? Link to comment Share on other sites More sharing options...
Acheron Gloom Posted August 24, 2011 Share Posted August 24, 2011 Sure. You can do that a couple ways. Link to comment Share on other sites More sharing options...
KellyM Watkins Posted August 24, 2011 Author Share Posted August 24, 2011 It's for a bag. I am redoing my vendors in my store. Person pays vendor > vendor gives bag. The bag will have the items inside and just thought it would be neat to have the avatar holding the bag, hence the animation script. The avatar can touch the bag to open it's contents into their inventory. Link to comment Share on other sites More sharing options...
KellyM Watkins Posted August 24, 2011 Author Share Posted August 24, 2011 Oh thanks too, sorry didn't see your message with all the codes. Do apoligise. Link to comment Share on other sites More sharing options...
Acheron Gloom Posted August 24, 2011 Share Posted August 24, 2011 I edited my original post to not send the animation or the script with the rest of the contents. By the way, you should try out scripting yourself. It isn't too hard ;p. LSL is a decent intro into programming actually since most of the functions use common english and theres a wiki full of information to use right off the bat. Plus the developing environment is pretty easy to get used to, being Second Life and all. Link to comment Share on other sites More sharing options...
KellyM Watkins Posted August 24, 2011 Author Share Posted August 24, 2011 Thank you so much! I have tried to dabble with scripts a few times, I am learning slowly on everything, just this had stumped me with trying to add two scripts together like this. Link to comment Share on other sites More sharing options...
Acheron Gloom Posted August 24, 2011 Share Posted August 24, 2011 Well, honestly all you really had to do for those two was throw all the events together since they both used entirely seperate events and nothing else would have conflicted. Just keep in mind you can't have two of the same events, so thats when you actually have to copy paste some code between them and see if you can work stuff out. Link to comment Share on other sites More sharing options...
Recommended Posts
Please take a moment to consider if this thread is worth bumping.
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now