Jump to content

drewbrown

Resident
  • Posts

    12
  • Joined

  • Last visited

Reputation

0 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Thanks all for the pointers. appreciated. Thanks Innula they are some great ideas. I'll head in that direction appreciated.
  2. 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
  3. 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.
  4. 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
  5. 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
  6. 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.
  7. 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
  8. 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
  9. 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.
  10. 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.
  11. those php tags didn't work. sorry
  12. 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]
×
×
  • Create New...