Jump to content

Sunbleached

Resident
  • Content Count

    235
  • Joined

  • Last visited

Community Reputation

66 Excellent

About Sunbleached

  • Rank
    Advanced Member

Recent Profile Visitors

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

  1. IMPORTANT! THIS METHOD DOES NOT WORK ANYMORE, BECAUSE CATWA CLIP BROKE IT AND MY APPLIERS MAGICALLY DISAPPEARED FROM INVENTORY!
  2. Someone was delving into my inventory. I recently created such a post : the next day, I decided to create another applier, but I found that this method doesn’t work anymore and the appliers made by me using this method disappeared. Edit: i was so stupid to mention about this method in my dialogue with catwa clip, so its too obvious...
  3. SOLVED! I contacted Catwa's owner, they told me it's not possible, only for skins this option works. Short hint for those who want to make such an effect (works for skins only!) 1. Follow instructions, use any textures as diffuse and normal maps and only specular map must be your glitter effect. 2. Later when you generate your script do everything as always and just remove textures code between "" quotes for diffuse and normal. It will look like: cmd += [""]; cmd += ["blahblahblahblahblah........blahblah"]; cmd += [""]; 3. Have fun! Hello! how to make such an effect on the Catwa head? I managed to make a regular tattoo, applied on a blush layer. but I didn’t even find custom material button for blush in the master hud, only on skin. on this as I understand it, such effect goes to the skin layer, or am I wrong? then what layer does such texture go to? maybe i need some kind of a special applier? Edit: I used Catwa dev kit for my tattoo, but couldn't find any materials option there.
  4. Oh the typo is ok. I worry about this line if ( (iOwner_only_flag && llDetectedKey(0) == llGetOwner() } || !Owner_only_flag)) // do stuff So my script now looks like this, no errors but is still always public. edit: i tried like this but not working touch_start(integer total_number) { if ( (iOwner_only_flag && llDetectedKey(0) == llGetOwner() ) || !Owner_only_flag) // do stuff menu(llDetectedKey(0), "\nText for Menu.", MENU_MAIN); } integer iOwner_only_flag ; integer Owner_only_flag; list MENU_MAIN = ["Button1", "Button1" , "public/owner toggle"]; //up to 12 in list integer menu_handler; integer menu_channel; menu(key user,string title,list buttons) { llListenRemove(menu_handler); //BugFix 5/2008 menu_channel = (integer)(llFrand(99999.0) * -1); menu_handler = llListen(menu_channel,"","",""); llDialog(user,title,buttons,menu_channel); llSetTimerEvent(30.0); //how long to wait for user to press a button before giving up and closing listen } default { state_entry() { //nada } touch_start(integer total_number) { if ( iOwner_only_flag && llDetectedKey(0) == llGetOwner() || !Owner_only_flag) // do stuff menu(llDetectedKey(0), "\nText for Menu.", MENU_MAIN); } listen(integer channel,string name,key id,string message) { if (channel == menu_channel) { llListenRemove(menu_handler); //close listen llSetTimerEvent(0); //stop timeout timer if (message == "Button1") { llSay(0, "Touched1."); } else if (message == "Button2") { llSay(0, "Touched2."); } if ( llGetLinkName(llDetectedLinkNumber(0)) == "public/owner toggle" ) { iOwner_only_flag = !iOwner_only_flag; } } } timer() //VERY IMPORTANT menu timeout { llListenRemove(menu_handler); //close listen llSetTimerEvent(0); //stop timeout timer } }
  5. thank you very much for your answer! I am not sure what am i doing wrong, but it keeps giving me a syntax error... I guess i am doing something terribly wrong... i added these lines: integer iOwner_only_flag; integer Owner_only_flag; and to touch event: touch_start(integer total_number) { if ( (iOwner_only_flag && llDetectedKey(0) == llGetOwner() } || !Owner_only_flag)) // do stuff menu(llDetectedKey(0), "\nText for Menu.", MENU_MAIN); } and to buttons listener: else if (message == "Owner") { if ( llGetLinkName(llDetectedLinkNumber(0)) == "Button1" ) { iOwner_only_flag = !Owner_only_flag; } if ( llGetLinkName(llDetectedLinkNumber(0)) == "Button2" ) { iOwner_only_flag = !Owner_only_flag; } if ( llGetLinkName(llDetectedLinkNumber(0)) == "Owner" ) { iOwner_only_flag = !Owner_only_flag; } if ( llGetLinkName(llDetectedLinkNumber(0)) == "Public" ) { iOwner_only_flag = !Owner_only_flag; } }
  6. Hello again! I decided to try the option with owner/public. believe it or not but I saw this scheme in a dream tonight. I feel very close to it but I can’t turn it into a script. At this stage I do not understand how to set a = x or y. Please help! if button1 pressed check if a = x check owner (llDetectedKey(0)==llGetOwner()) if owner detected do stuff 1 else don't do anything else do stuff for everyone (do not check owner) if button2 pressed check if a = x check owner (llDetectedKey(0)==llGetOwner()) if owner detected do stuff 2 else don't do anything else do stuff for everyone (do not check owner) if button3 pressed set a = x <<<? Owner if button4 pressed set a = y <<<? Public
  7. Thank you very much for such a detailed answer! It really seems very complicated. But just in case, if I don’t master such a modification, is there an opportunity to just make an option public/owner only by button? if(llDetectedKey(0)==llGetOwner())? I am playing with llTextBox now, this is so cool!
  8. Hello! How to add an option to the menu script to add people to the list of those who are allowed to use this menu? This is for the wearable object, so that I can choose who else can call the menu besides me. Please help! list MENU_MAIN = ["BUT1", "BUT2" , "Add Person" , "Remove Person"]; //up to 12 in list integer menu_handler; integer menu_channel; menu(key user,string title,list buttons) { llListenRemove(menu_handler); //BugFix 5/2008 menu_channel = (integer)(llFrand(99999.0) * -1); menu_handler = llListen(menu_channel,"","",""); llDialog(user,title,buttons,menu_channel); llSetTimerEvent(30.0); //how long to wait for user to press a button before giving up and closing listen } default { state_entry() { //nada } touch_start(integer total_number) { menu(llDetectedKey(0), "\nText for Menu.", MENU_MAIN); } listen(integer channel,string name,key id,string message) { if (channel == menu_channel) { llListenRemove(menu_handler); //close listen llSetTimerEvent(0); //stop timeout timer if (message == "BUT1") { // DO SOMETHING } else if (message == "BUT2") { // DO SOMETHING } else if (message == "Add Person") { // WHAT TO DO HERE???.. } else if (message == "Remove Person") { // AND WHAT TO DO HERE??? } //else if (message == "Button") //{ // DO SOMETHING //} } } timer() //VERY IMPORTANT menu timeout { llListenRemove(menu_handler); //close listen llSetTimerEvent(0); //stop timeout timer } }
  9. Hello! How does unwrapping and the number of faces affect LI? I noticed that the same model with a different UV and the number of faces has a different LI. why is this happening and how to save resources on this?
  10. Hello! Thank you very much! Just tried it - fantastic! Very advanced! as i understood it uses even more faces than 1 to preload? Awesome! But what about my little script? Please help!
  11. Hello! I am trying to create a simple slideshow script with preload option based on this awesome example kindly given by Mollymews. integer index; integer number = llGetInventoryNumber(INVENTORY_TEXTURE); if (number) { string name = llGetInventoryName(INVENTORY_TEXTURE, index); if (name != "") llSetTexture(name, ALL_SIDES); index = (++index) % number; } Thats what i got now, but i have some concerns: ==> it supposed to preview on face 0 and show on face 2 (at least i thought so), but its vice versa. ==> i am not sure if llGetInventoryNumber(INVENTORY_TEXTURE); needed here. ==> preloading is going too fast. Please correct me if I was wrong? Is it enough to just swap faces? because the script works in general. integer index; string name; default { state_entry() { llSetTimerEvent(3.0); } timer() { integer number = llGetInventoryNumber(INVENTORY_TEXTURE); if (number) { string name = llGetInventoryName(INVENTORY_TEXTURE, index); if (name != "") llSetTexture(name, 2); index = (++index) % number; llSubStringIndex(name, "") != -1; llSetTexture(name, 0); } } }
  12. Wooow! Thank you so much! Now everything works perfectly!!! integer index; integer gFrameX = 0; integer gFrameY = 0; float gRate = 0.0; string name; setTex() { integer number = llGetInventoryNumber(INVENTORY_TEXTURE); if (number) { string name = llGetInventoryName(INVENTORY_TEXTURE, index); if (name != "") llSetTexture(name, ALL_SIDES); index = (++index) % number; llSubStringIndex(name, ".anim") != -1; list lParams = llParseString2List(name, [";"], []); gFrameX = llList2Integer(lParams, 1); gFrameY = llList2Integer(lParams, 2); gRate = llList2Float(lParams, 3); llSetTextureAnim(ANIM_ON | LOOP, ALL_SIDES, gFrameX, gFrameY, 0, 0, gRate); } else llSetTextureAnim(LOOP, ALL_SIDES, gFrameX, gFrameY, 0, 0, gRate); } default { state_entry() { llAllowInventoryDrop(TRUE); llSetTimerEvent(10.0); setTex(); } timer() { setTex(); } touch_start(integer touches) { llSetTimerEvent(10.0); setTex(); } changed(integer change) { if (change & (CHANGED_ALLOWED_DROP | CHANGED_INVENTORY)) setTex(); } } (may come in handy to somebody else!)
  13. Hello! Thank you for answer! I did this but something is wrong... integer count; setTex() { gTexture = llGetInventoryName( INVENTORY_TEXTURE, (integer)llFrand( llGetInventoryNumber(INVENTORY_TEXTURE)) ); llSetTexture(llList2Key(gTexture,count), ALL_SIDES ); ++count; count %=llGetListLength(gTexture); I can see that i misused llList2Key and llGetListLength ... but still dont get it
  14. Hello! Please help to remake the random order multiple GIF animation script into a script playing it in a strict order, one after another. I suspect this line but I can’t fix it yet gTexture = llGetInventoryName( INVENTORY_TEXTURE, (integer) llFrand(llGetInventoryNumber(INVENTORY_TEXTURE)) ); integer gFrameX = 0; integer gFrameY = 0; float gRate = 0.0; string gTexture; setTex() { gTexture = llGetInventoryName( INVENTORY_TEXTURE, (integer) llFrand(llGetInventoryNumber(INVENTORY_TEXTURE)) ); llSetTexture(gTexture, 2); if (llSubStringIndex(gTexture, ".anim") != -1) { list lParams = llParseString2List(gTexture, [";"], []); gFrameX = llList2Integer(lParams, 1); gFrameY = llList2Integer(lParams, 2); gRate = llList2Float(lParams, 3); llSetTextureAnim(ANIM_ON | LOOP, 2, gFrameX, gFrameY, 0, 0, gRate); } else llSetTextureAnim(LOOP, 2, gFrameX, gFrameY, 0, 0, gRate); } default { state_entry() { llAllowInventoryDrop(TRUE); llSetTimerEvent (10.0); setTex(); } timer() { setTex(); } touch_start(integer touches) { llSetTimerEvent (10.0); setTex(); } changed(integer change) { if (change & (CHANGED_ALLOWED_DROP | CHANGED_INVENTORY)) setTex(); } }
×
×
  • Create New...