drewbrown
Resident-
Posts
12 -
Joined
-
Last visited
Reputation
0 NeutralRecent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
Thanks all for the pointers. appreciated. Thanks Innula they are some great ideas. I'll head in that direction appreciated.
-
Tx for the info. i thought that may be the case. Is it possible for a script to allow them to browse their textures and add from a menu? If possible, this may be better
-
Hi All, I'm trying to find out if this is possible. I'm making a vendor board with multiple image holders and need to know if by scripting, i can add the vendors UID for example so that only they can edit the textures. Or is this type of access only possible some other way? I appreciate any advice. Cheers.
-
yes that would be good to know. i didn't think about memory leaks or garbage collecting here. Thanks again to all. Getting a cleaner script now
-
A decent size skybox with a scripted ground for different textures. Total size is 2500sqm Total prims is 240 L$499pw. http://maps.secondlife.com/secondlife/Frianticon/222/223/2996
-
Sorry have been away for a bit. i didn't realise this resulted in 3 pages thanks everyone i have learnt some more changing the channel number actually worked for me but i'll go though these and try some. i think they may be better solutions. thanks again everyone. appreciated.
-
This skydome comes with a modern home. We can remove it if required. Area is 100mx100m Prims total is 340 L$1350pw http://maps.secondlife.com/secondlife/Frianticon/228/215/3984
-
A decent size skybox with a scripted ground for different textures. Total size is 2500sqm Total prims is 240 L$950pw. http://maps.secondlife.com/secondlife/Frianticon/222/223/2996
-
Interesting. changeing the value of dlgChannel for each seems to work. i've never seen this before so does this mean i have to change that value on each one i rezz now? i'm ok with that i only have about 20 of them but it seems a bit odd i think.
-
Thanks all for the suggestions. i tried changing the listen to touch and thought that worked for a second but no. it seems to only happen when there is a next/previous button and you hit next if you move the dialog you see another one underneith. i changed the names on the 2 objects to test and i can see both objects dialogs from just clicking on the one. I'm not sure what is meant my pads being joined together or assign a dialog channel number. Once again i appreciate your suggestions.
-
those php tags didn't work. sorry
-
Hi, I'm new to scripting here but a long time programmer. I have a script from the script library for a dance prim. I have multiple instances of the prim containing the script and am finding that when you click on one to get the dance menu, i also get menus from the other ones as well. I tried calling each object a different name but i get a menu for each of the scripted objects. Is there a way in script to only get the menu from the object you selected? Here is the code i'm using: [php] // Add this script into a prim with dances and touch the prim to start. // // You can put as many dances as will fit into memory. If you put in too many, // you will get a nice friendly stack/heap collision error. If that happens, take // out some dances and reset the script. Isn't that fun? list dances; list danceButtons; integer danceNumber; // Stuff for the menu integer dlgSlots = 9; // available buttons in a multipage dialog integer dlgMax = 12; // number of buttons in a plain old dialog integer dlgLength; // size of the button list integer dlgLastPage; // how many pages do we have? integer dlgChannel = -468; // Stop dances and play the next, if any. PlayDance() { integer totalDances = llGetInventoryNumber(INVENTORY_ANIMATION); integer i = 0; while(i < totalDances) llStopAnimation(llGetInventoryName(INVENTORY_ANIMATION, i++)); if(danceNumber > -1) { llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION, danceNumber)); } } // Hunt through inventory and load any animiations found. LoadDances() { integer totalDances = llGetInventoryNumber(INVENTORY_ANIMATION); dances = []; danceButtons = []; integer i = 0; while(i < totalDances){ dances = (dances = []) + dances + [(string)(++i) + " " + llGetInventoryName(INVENTORY_ANIMATION, i)]; danceButtons = (danceButtons = []) + danceButtons + (string)i; } dlgLength = llGetListLength(danceButtons); // Add a stop button if we won't need a paged menu. if (dlgLength > 0 && dlgLength < dlgMax) { danceButtons = (danceButtons = []) + "[STOP]" + danceButtons; dlgLength++; } dlgLastPage = (dlgLength - 1) / dlgSlots; } Dialog(key id, integer page) { if (danceButtons == []) { llInstantMessage(id, "No dances to play, feed me!"); return; } if (llList2String(danceButtons, 0) == "[STOP]") { // plain old dialog llDialog(id, llDumpList2String(dances, "\n"), danceButtons, dlgChannel); } else { // paged dialog integer firstButton = page * dlgSlots; list allButtons = llList2List(danceButtons, firstButton, firstButton + dlgSlots - 1); // figure out what the next and previous page are. integer nextPage = page + 1; if (nextPage > dlgLastPage) nextPage = 0; integer prevPage = page - 1; if (prevPage < 0) prevPage = dlgLastPage; allButtons = (allButtons=[]) + ["<< " + (string) prevPage, "[STOP]", ">> " + (string) nextPage] + allButtons; llDialog( id, llDumpList2String(llList2List(dances, firstButton, firstButton + dlgSlots - 1), "\n"), allButtons, dlgChannel ); } } default { state_entry() { LoadDances(); llListen(dlgChannel, "", NULL_KEY, ""); } changed (integer change) { if (change & CHANGED_INVENTORY) LoadDances(); } touch_start(integer total_number) { Dialog(llDetectedKey(0), 0); } listen(integer channel, string name, key id, string message) { string pageCheck = llGetSubString(message, 0, 2); if (pageCheck == "<< " || pageCheck == ">> ") { if (message != pageCheck) // actually more than the arrow markers? Dialog(id, (integer) llGetSubString(message, 3, -1)); return; // no need to mess with animations this time } else if (message == "[STOP]") { danceNumber = -1; } else { danceNumber = (integer)message - 1; } // If we still hold animation permission for this avatar, we don't // need to ask again. if ((id == llGetPermissionsKey()) && (llGetPermissions() & PERMISSION_TRIGGER_ANIMATION)) PlayDance(); else llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION); } run_time_permissions(integer perms) { if(perms & PERMISSION_TRIGGER_ANIMATION) PlayDance(); } } [/php]