Jump to content

Tattooshop

Resident
  • Content Count

    142
  • Joined

  • Last visited

Community Reputation

56 Excellent

About Tattooshop

  • Rank
    Advanced Member

Recent Profile Visitors

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

  1. I used another unpacker with list and added your line - works perfectly! Thank you! string EXCEPT_ITEM_NAME = "except.object"; // Item you want to exclude default { touch_start(integer total_number) { integer x; for(x = 0; x < total_number; x++) { if(llDetectedKey(x) == llGetOwner()) { string InvenName; integer InvenNumber = llGetInventoryNumber(INVENTORY_ALL); list InvenList = []; integer y; for(y = 0; y < InvenNumber; y++) { InvenName = llGetInventoryName(INVENTORY_ALL, y); if(InvenName != EXCEPT_ITEM_NAME && llGetInventoryType(InvenName) != INVENTORY_SCRIPT) InvenList += [InvenName]; } llGiveInventoryList(llGetOwner(), llGetObjectName(), InvenList); } } } }
  2. How to make this unpacker give everything except certain item, named "except.object" for example? default { state_entry() { llSetMemoryLimit(llGetUsedMemory() + 1024); } touch_start(integer n) { if (llDetectedKey(0) == llGetOwner()) // Detect owner { for (n--; n >= 0; n--) { integer j = llGetInventoryNumber(INVENTORY_ALL); for (j--; j >= 0; j--) { string name = llGetInventoryName(INVENTORY_ALL, j); if (llGetInventoryType(name) != INVENTORY_SCRIPT) { llGiveInventory(llDetectedKey(n), name); } } } } } }
  3. Hello! Where is the error in this script? It does not show all the textures in the menu. integer SIDE = ALL_SIDES; list effects = [LOOP]; // LOOP for GIF89 movies //Movement parameters (choose one): //ROTATE - Rotates the texture //SCALE - Scales the texture //Set movement to 0 to slide animation in the X direction, without any special movement. integer movement = 0; integer face = ALL_SIDES; //Number representing the side to activate the animation on. integer sideX = 1; //Represents how many horizontal images (frames) are contained in your texture. integer sideY = 1; //Same as sideX, except represents vertical images (frames). float start = 0.0; //Frame to start animation on. (0 to start at the first frame of the texture) float length = 0.0; //Number of frames to animate, set to 0 to animate all frames. float speed = 10.0; //Frames per second to play. // menu stuff integer listen_id; // int of the current listener integer menuChannel; // int of the channel number integer N_DIALOG_CHOICES; integer MAX_DIALOG_CHOICES_PER_PG = 8; // if not offering back button, increase this to 9 string PREV_PG_DIALOG_PREFIX = "< Page "; string NEXT_PG_DIALOG_PREFIX = "> Page "; string DIALOG_DONE_BTN = "Done"; string DIALOG_BACK_BTN = "<< Back"; integer pageNum; list DIALOG_CHOICES; giveDialog(key ID, integer pageNum) { list buttons; integer firstChoice; integer lastChoice; integer prevPage; integer nextPage; string OnePage; CancelListen(); menuChannel = llCeil(llFrand(1000000) + 11000000); listen_id = llListen(menuChannel, "", "", ""); llSetTimerEvent(60); N_DIALOG_CHOICES = llGetListLength(DIALOG_CHOICES); if (N_DIALOG_CHOICES <= 10) { buttons = DIALOG_CHOICES; OnePage = "Yes"; } else { integer nPages = (N_DIALOG_CHOICES + MAX_DIALOG_CHOICES_PER_PG - 1) / MAX_DIALOG_CHOICES_PER_PG; if (pageNum < 1 || pageNum > nPages) { pageNum = 1; } firstChoice = (pageNum - 1) * MAX_DIALOG_CHOICES_PER_PG; lastChoice = firstChoice + MAX_DIALOG_CHOICES_PER_PG - 1; if (lastChoice >= N_DIALOG_CHOICES) { lastChoice = N_DIALOG_CHOICES; } if (pageNum <= 1) { prevPage = nPages; nextPage = 2; } else if (pageNum >= nPages) { prevPage = nPages - 1; nextPage = 1; } else { prevPage = pageNum - 1; nextPage = pageNum + 1; } buttons = llList2List(DIALOG_CHOICES, firstChoice, lastChoice); } // FYI, this puts the navigation button row first, so it is always at the bottom of the dialog list buttons01 = llList2List(buttons, 0, 2); list buttons02 = llList2List(buttons, 3, 5); list buttons03 = llList2List(buttons, 6, 8); list buttons04; if (OnePage == "Yes") { buttons04 = llList2List(buttons, 9, 11); } buttons = buttons04 + buttons03 + buttons02 + buttons01; if (OnePage == "Yes") { buttons = [DIALOG_DONE_BTN, DIALOG_BACK_BTN] + buttons; //omit DIALOG_BACK_BTN in line above if not offering } else { buttons = [ PREV_PG_DIALOG_PREFIX + (string) prevPage, DIALOG_BACK_BTN, NEXT_PG_DIALOG_PREFIX + (string) nextPage, DIALOG_DONE_BTN ] + buttons; //omit DIALOG_BACK_BTN in line above if not offering } llDialog(ID, "Page " + (string) pageNum + "\nChoose one:", buttons, menuChannel); } CancelListen() { llListenRemove(listen_id); } initAnim() //Call this when you want to change something in the texture animation. { integer effectBits; integer i; for (i = 0; i < llGetListLength(effects); i++) { effectBits = (effectBits | llList2Integer(effects, i)); } integer params = (effectBits | movement); llSetTextureAnim(ANIM_ON | params, face, sideX, sideY, start, length, speed); } fetch(string texture) { integer i; integer j = llGetInventoryNumber(INVENTORY_TEXTURE); for (i = 0; i < j; i++) { string myTexture = llGetInventoryName(INVENTORY_TEXTURE, i); list data = llParseString2List(myTexture, [";"], []); string name = llList2String(data, 0); if (name == texture) { string X = llList2String(data, 1); string Y = llList2String(data, 2); string Z = llList2String(data, 3); sideX = (integer) X; sideY = (integer) Y; speed = (float) Z; //llOwnerSay("Name=" + myTexture + " X=" + X + " Y=" + Y + " Z = " + (string) Z); if (speed) { llSetTexture(myTexture, SIDE); initAnim(); } } } } // Make a list of all bare names for the dialog list fetchAll() { list choices = []; integer i; integer j = llGetInventoryNumber(INVENTORY_TEXTURE); for (i = 0; i < j; i++) { string texture = llGetInventoryName(INVENTORY_TEXTURE, i); list data = llParseString2List(texture, [";"], []); choices += llList2String(data, 0); } return choices; } default { state_entry() { } touch_start(integer who) { { pageNum = 1; DIALOG_CHOICES = fetchAll(); giveDialog(llDetectedKey(0), pageNum); } } listen(integer channel, string name, key id, string message) { integer where; if (message == DIALOG_DONE_BTN) { CancelListen(); return; } else if (message == DIALOG_BACK_BTN) { pageNum = 1; DIALOG_CHOICES = fetchAll(); giveDialog(llDetectedKey(0), pageNum); } else if (llSubStringIndex(message, PREV_PG_DIALOG_PREFIX) == 0) { pageNum = (integer) llGetSubString(message, llStringLength(PREV_PG_DIALOG_PREFIX), -1); giveDialog(llDetectedKey(0), pageNum); } else if (llSubStringIndex(message, NEXT_PG_DIALOG_PREFIX) == 0) { pageNum = (integer) llGetSubString(message, llStringLength(NEXT_PG_DIALOG_PREFIX), -1); giveDialog(llDetectedKey(0), pageNum); } else { //this is the section where you do stuff where = llListFindList(fetchAll(), [message]); if (where >= 0) { fetch(message); giveDialog(llDetectedKey(0), pageNum); } // add more buttons here } } }
  4. Do you think it will be enough to indicate a rotation of 90 degrees and an offset of half a meter along the axes X and Y for a one meter wide door using SLPPF? for the simplest door script?
  5. Thank you! very good topic! So I read it, but stuck on PRIM_ROT_LOCAL. I just can’t see what this vector is (< 1,0,0 > etc...) and how to express through it a rotation of 90 degrees along the z axis? It’s clear with PRIM_POS_LOCAL, it is expressed in meters...
  6. Hello dear scripters! How to create the simplest swinging 'no hinge' door script? I can certainly not reinvent the wheel and take it ready, but I want to understand how it works.
  7. Thank you all very much! Now I have so many options!
  8. @KT Kingsley @Ruthven Ravenhurst Thank you so much! You already helped me a lot! But what if the value of X is not 1 but 0.6 for example?
  9. Hello! I made such a toggle and I need to simplify or maybe get rid of a toggle at all, because the only change here is a " - " symbol. I mean in "mathematical way". Is this possible and how? touch_start(integer total_number) { llPlaySound(DOOR_SOUND, VOL); toggle = !toggle; if (toggle) { llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_POS_LOCAL, llList2Vector(llGetLinkPrimitiveParams(LINK_THIS, [PRIM_POS_LOCAL]), 0) + < 1.0, 0.0, 0.0 >]); } else { llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_POS_LOCAL, llList2Vector(llGetLinkPrimitiveParams(LINK_THIS, [PRIM_POS_LOCAL]), 0) + < -1.0, 0.0, 0.0 >]); } }
  10. Too progressive IMO... I imagine women boxers fighting topless, if that goes on... Why then you wear clothes at all? Go naked! I dont mind. lol
  11. Hello! Please recommend a manufacturer of full permission walking animations that I can resell. Edit: as part of my creation and no transfer of course.
  12. Thanks! So I made two scripts for one region, but how to make it work on the whole grid? let it be fragile // Transmitter integer gListener; default { state_entry() { llRegionSay(-1234567, ""); } touch_start(integer total_number) { integer channel = -13572468; gListener = llListen( channel, "", "", ""); llTextBox(llDetectedKey(0), "Some info text for the top of the window...", channel); } listen(integer channel, string name, key id, string msg) { llListenRemove(gListener); llRegionSay(-1234567, "You wrote: " + msg); } } // Receiver default { state_entry() { llListen(-1234567, "", "", ""); } listen(integer channel, string name, key id, string msg) { llSay(0, "You wrote: " + msg); } }
  13. Thank you! But isnt llRegionSay can be heard on 256 m x 256 m only? Will it be heard all over grid?
  14. Hello! I'm trying to make a transmitter / receiver HUD. I put on a transmitter HUD and send a message, and everyone who wearing at that moment receiver HUD - receives this message from me all over the grid in any form ( IM or local chat - doesnt matter ). Is it possible and how to do it?
×
×
  • Create New...