Jump to content

Sunbleached

Resident
  • Posts

    264
  • Joined

  • Last visited

Everything posted by Sunbleached

  1. Sunbleached

    AO mapping

    Hello. Please help! I'm trying to create ao map for the house. But inside I get darkness. Is it necessary to place a light source inside? And most importantly - can I get ao map of a house without a light source at all? Thank you very much for any help!
  2. Hi! What is the best female skin for classic avatar - mature/teen - caucasian ?
  3. Hello! Where to get a professional (maybe just good) motor boat script or builders script kit? Any suggestions, please? Thank you!
  4. @Rolig Loon @Chic Aeon ================================== Thank you very much! With your help, I did it!
  5. Hello! How in Blender to create mesh cube with 6 faces, so I could apply different texture on each side? Thanks!
  6. because some ***** b i t c h flagged my question.
  7. I heared Second Life is closing. Is that true?
  8. Hello! Recently for the first time tried to make a mesh clothes in Blender. But why when I wear it on my avatar the shape is deformed? Thanks for any help!
  9. Hello! Does it make sense to upload huge mesh models but with a low LOD, so that later, by shrinking, them to get a model of higher quality? Or is it better to load the usual but with high LOD? Thank you!
  10. Thank you so much! with your fast help I reduced my hull's LI to 5!
  11. How to reduce land impact? Hey. Why when I uploading meshes it turns out such big land impact? Here to take for example such simple boat hull. It have 723 vertices only, physics set to high. But why LI is so huge? I prefer to use high LOD for my buildings. Help please! How to reduce LI? Thank you!
  12. But can it be somehow simpler? Is there a command of a motion detector? Just add one line, if the object moves then the partics go, no - they stop. I am completely lost ...
  13. Hello! I have a wake particle script for the boat. But it works constantly. How to make it work only when the boat is moving? Thank you for any help. // wake particles script // 2017 default { state_entry() { llParticleSystem( [ PSYS_SRC_TEXTURE, "aaf351f6-a777-b5e8-c0a9-a2232f650742", PSYS_PART_START_SCALE, <1.30000, 0.30000, 1.00000>, PSYS_PART_END_SCALE, <0.70000, 0.70000, 0.00000>, PSYS_PART_START_COLOR, <0.80000, 0.90000, 1.00000>, PSYS_PART_END_COLOR, <0.850000, 0.90000, 1.00000>, PSYS_PART_START_ALPHA, 0.1200000, PSYS_PART_END_ALPHA, 0.0800000, PSYS_SRC_BURST_PART_COUNT, 250, PSYS_SRC_BURST_RATE, 0.010000, PSYS_PART_MAX_AGE, 10, PSYS_SRC_MAX_AGE, 0.000000, PSYS_SRC_PATTERN, 4, // 1=DROP, 2=EXPLODE, 4=ANGLE, 8=ANGLE_CONE, PSYS_SRC_ACCEL, <0.00000, 0.00000, -0.00005>, PSYS_SRC_BURST_RADIUS, 0.0, PSYS_SRC_BURST_SPEED_MIN, 0.900000, PSYS_SRC_BURST_SPEED_MAX, 0.400000, PSYS_SRC_ANGLE_BEGIN, 0.000000 * PI, PSYS_SRC_ANGLE_END, 0.01000 * PI, PSYS_SRC_OMEGA, <0.00000, 0.00000, 0.00000>, // PSYS_SRC_TARGET_KEY, llGetLinkKey(llGetLinkNum() + 1), PSYS_PART_FLAGS, ( 0 | PSYS_PART_EMISSIVE_MASK | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK // | PSYS_PART_WIND_MASK // | PSYS_PART_BOUNCE_MASK // | PSYS_PART_FOLLOW_SRC_MASK // | PSYS_PART_TARGET_POS_MASK // | PSYS_PART_TARGET_LINEAR_MASK ) ] ); } }
  14. thanks! it works now.
  15. How to make a flexi flag? So that one side is attached to the flagpole. I have the whole flag fluctuating, but I need one side only. Help.
  16. Hey. Who faced the utilizator's avatar rikugou type b? What can you say about it? Pluses, minuses ... what complexity level? What is with a head? Can be replaced with m3?
  17. @Rachel1206 @Xiija @Innula Zenovka Hey, guys! Great news! Thanks to the universal efforts the script is ready! More precisely its beta version but added already seven animations / sounds. So meet if someone interested! Here it is in all its glory. Of course, bugs and glitches are possible. Just in case, at the bottom credits are indicated, (if anyone against please tell!) Thank you all very much. // SOUND FOR EACH ANIMATION SCRIPT (beta-version!) // LISTING EDIT. // DATE PRE-FINISHED: JULY 28TH 2017 // BASED ON: SIMPLE AO SCRIPT. // YOU CAN FIND FREE EXAMPLE HERE: // http://wiki.secondlife.com/wiki/LlGetAnimation // THIS SCRIPT ALLOWS YOU TO PLAY DIFFERENT SOUNDS ON EACH ANIMATION // WHEN YOU WALK,RUN,JUMP,FALLING,FLYING ETC. // ITS A BETA, THOUGH. YOU CAN ADD MORE SOUNDS FOR ANIMATIONS. // ADDING MORE SOUNDS FOR ANIMATIONS HERE: // YOU CAN REPLACE UUID'S BETWEEN QUOTES WITH YOUR OWN! string SOUND_JUMP = "4a42727e-a5fc-d37c-f758-606264ce87b4"; string SOUND_RUN = "b1c0f5e2-45e5-e0b2-926a-fd60520ed4ee"; string SOUND_WALK = "e98a51a7-176f-8f7e-eece-639fcc55f535"; string SOUND_FLYING = "35c41372-4405-4057-b2e0-a04a593037c2"; string SOUND_LANDING = "9755f397-79b1-02b0-45ac-afcfbf136de9"; string SOUND_FALLING_DOWN = "2ddcfbb3-13ca-1678-03e4-3941208c8048"; string SOUND_STANDING_UP = "8c4f4e07-ea30-b0a3-34ec-1f587eb70d47"; // PLEASE, DO NOT MAKE ANY CHANGES, UNTILL ... key gOwner; string gLastAnimation; Initialize(key id) { if (id == NULL_KEY) { llSetTimerEvent(0.0); } else { llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION); gOwner = id; } } default { state_entry() { if (llGetAttached() != 0) { Initialize(llGetOwner()); } } attach(key id) { Initialize(id); } run_time_permissions(integer perm) { if (perm & PERMISSION_TRIGGER_ANIMATION) { llSetTimerEvent(0.25); } } timer() { string newAnimation = llGetAnimation(gOwner); { if (newAnimation == "Jumping") { llLoopSound( SOUND_JUMP, 1.0); } else if (newAnimation == "Flying") { llLoopSound( SOUND_FLYING, 1.0); } else if (newAnimation == "Walking") { llLoopSound( SOUND_WALK, 1.0); } else if (newAnimation == "Running") { llLoopSound( SOUND_RUN, 1.0); } else if (newAnimation == "Landing") { llLoopSound( SOUND_LANDING, 1.0); } else if (newAnimation == "Falling Down") { llLoopSound( SOUND_FALLING_DOWN, 1.0); } else if (newAnimation == "Standing Up") { llLoopSound( SOUND_STANDING_UP, 1.0); } // ... HERE! YOU CAN ADD NEW ANIMATIONS TO BE SOUNDED! // E.G. : // else if (newAnimation == "Standing Up") // { // llLoopSound( SOUND_STANDING_UP, 1.0); // } // OK, ITS DONE NOW!!! else { llStopSound(); } gLastAnimation = newAnimation; } } } // PLEASE, ENJOY THIS SCRIPT!!! :D // CREDITS: // IDEA: SUNBLEACHED // POWERED BY: Rachel1206, Xiija, Innula Zenovka // THE END Thank you all very much. Again
  18. Hello! I want to create a script that allows you to make sounds for each animation. Running, jumping, swimming, walking etc. Like a simple walker, only more animations/sounds. I was advised to use this script http://wiki.secondlife.com/wiki/LlGetAnimation. But I did not quite manage to adapt it for sounding. Please tell where the error is. I wrote on the forum. Thanks for any help. string SOUND_WALK = "34eae688-8b2d-d86c-5c1e-4e3eb865ca0d"; string SOUND_RUN = "b1c0f5e2-45e5-e0b2-926a-fd60520ed4ee"; key gOwner; string gLastAnimation; Initialize(key id) { if (id == NULL_KEY) { llSetTimerEvent(0.0); } else { llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION); gOwner = id; } } default { state_entry() { if (llGetAttached() != 0) { Initialize(llGetOwner()); } } attach(key id) { Initialize(id); } run_time_permissions(integer perm) { if (perm & PERMISSION_TRIGGER_ANIMATION) { llSetTimerEvent(0.25); } } timer() { string newAnimation = llGetAnimation(gOwner); if (gLastAnimation != newAnimation) { if (newAnimation == "Walking") { llLoopSound( SOUND_WALK, 1.0); } if (gLastAnimation == "Running") { llLoopSound( SOUND_RUN, 1.0); } else { llStopSound(); } gLastAnimation = newAnimation; } } }
  19. Hello! I want to create a script that allows you to play different sounds with each animation (e.g. running, walking, swimming...) based on the simple walker script. How it should look like? Is it possible to assign a separate sound for each animation with such script? Perhaps you will advise to be based on another script? Thank you. Here is the script on which I'm based: string walk_sound = "34eae688-8b2d-d86c-5c1e-4e3eb865ca0d"; string stop_sound = "81603357-2b3c-bc7a-5d15-eb20fcca22a1"; string run_sound = "b1c0f5e2-45e5-e0b2-926a-fd60520ed4ee"; float volume = 1.0; integer i = TRUE; key owner; default { state_entry() { llSetTimerEvent(.3); } timer() { string anim = llGetAnimation(llGetOwner()); if ((anim == "Walking") || (anim == "CrouchWalking")) { llLoopSound(walk_sound,volume); i=FALSE; } else if ((anim == "Running")) { llLoopSound(run_sound,volume); i=FALSE; } else { llStopSound(); if (i == FALSE) { llTriggerSound(stop_sound,volume); } i=TRUE; } } }
  20. Thank you so much Nova! You totally saved me! It was exactly what i needed! I owe you!
  21. Hello! I have this teleport script by Eightball Magic. It's no config teleport. You place two teleports and go. So. Its possible to set limited destination access for group / owner only. How to set it for two avatars only (me and my friend). I guess its somekind UUID access limit. Thank's for any help! This line gives limitation for owner only. I think to replace it for specific avatar UUID somehow... : else if (llSubStringIndex(llList2String(descriptions, 0), "!") == 0 && id != llGetOwner()) { llRegionSayTo(id, 0, "Only the owner are allowed to teleport to locations marked with '!'"); llUnSit(id); Or do i loose something else?.. Here's the script itself: integer CHANNEL = -10001; float INTERVAL = 10.0; vector OFFSET = <0.0,0.0,1.2>; integer number = 1; list descriptions = []; list positions = []; list timestamps = []; // Function present menu items in more logical ordering. list orderButtons(list buttons) { return(llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10)); } default { state_entry() { // Announce teleporter and setup timer to maintain teleporter list. key owner = llGetOwner(); string description = llGetObjectDesc(); if (description == "<Location name>") { description = (string)number; } vector position = llGetPos(); llRegionSay(CHANNEL, "teleporter\t" + (string)owner + "\t" + description + "\t" + (string)position); llSetTimerEvent(INTERVAL); // Setup listener to receive teleporter announcements and user dialog. llListen(CHANNEL, "", "", ""); // Configure sit text and target. llSetSitText("Teleport"); llSitTarget(OFFSET, ZERO_ROTATION); } changed(integer change) { // Check if someone sits on the teleporter. if (change & CHANGED_LINK) { key id = llAvatarOnSitTarget(); if (id) { if (llGetInventoryNumber(INVENTORY_ANIMATION) >= 1) { llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION); } if (llGetInventoryNumber(INVENTORY_SOUND) >= 1) { llPlaySound(llGetInventoryName(INVENTORY_SOUND, 0), 1.0); } integer count = llGetListLength(descriptions); if (count >= 2) { list buttons = orderButtons(llListSort(descriptions, 1, TRUE)); llDialog(id, "Select destination:", buttons, CHANNEL); } else if (count == 1) { vector position = llGetPos(); llSleep(0.5); if (llSubStringIndex(llList2String(descriptions, 0), "*") == 0 && !llSameGroup(id)) { llRegionSayTo(id, 0, "Only group members are allowed to teleport to locations marked with '*'"); llUnSit(id); } else if (llSubStringIndex(llList2String(descriptions, 0), "!") == 0 && id != llGetOwner()) { llRegionSayTo(id, 0, "Only the owner are allowed to teleport to locations marked with '!'"); llUnSit(id); } else { llSetRegionPos(llList2Vector(positions, 0)); llUnSit(id); llSetRegionPos(position); } } else { llSleep(0.5); llUnSit(id); } } } // Reset the script if the teleporter has changed owner or been moved across a sim border. if (change & (CHANGED_OWNER|CHANGED_REGION)) { llResetScript(); } } listen(integer channel, string name, key id, string message) { if (id == llAvatarOnSitTarget()) { // Teleport avatar to destination. integer index = llListFindList(descriptions, [message]); vector position = llGetPos(); if (llSubStringIndex(llList2String(descriptions, index), "*") == 0 && !llSameGroup(id)) { llRegionSayTo(id, 0, "Only group members are allowed to teleport to locations marked with '*'"); llUnSit(id); } else if (llSubStringIndex(llList2String(descriptions, index), "!") == 0 && id != llGetOwner()) { llRegionSayTo(id, 0, "Only the owner is allowed to teleport to locations marked with '!'"); llUnSit(id); } else { llSetRegionPos(llList2Vector(positions, index)); llUnSit(id); llSetRegionPos(position); } } else { // Parse the received message. list tokens = llParseString2List(message, ["\t"], []); string check = llList2String(tokens, 0); key owner = (key)llList2String(tokens, 1); string description = llList2String(tokens, 2); vector position = (vector)llList2String(tokens, 3); integer timestamp = llGetUnixTime(); // Remove old data from the lists and add current data. if (check == "teleporter" && owner == llGetOwner()) { integer index = llListFindList(descriptions, [description]); if (~index) { descriptions = llDeleteSubList(descriptions, index, index); positions = llDeleteSubList(positions, index, index); timestamps = llDeleteSubList(timestamps, index, index); } descriptions += description; positions += position; timestamps += timestamp; } // Renumber this teleporter if another has same number. if ((string)number == description) { number++; if (number > 12) { number = 1; } } } } on_rez(integer n) { // Reset the script when the teleporter is rezzed. llResetScript(); } run_time_permissions(integer perm) { // Play animation when permission has been granted. if (perm & PERMISSION_TRIGGER_ANIMATION) { llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION,0)); } } timer() { // Announce the teleporter. key owner = llGetOwner(); string description = llGetObjectDesc(); if (description == "<Location name>") { description = (string)number; } vector position = llGetPos(); integer timestamp = llGetUnixTime(); llRegionSay(CHANNEL, "teleporter\t" + (string)owner + "\t" + description + "\t" + (string)position); // Delete oldest teleporter from list if it is too old. if (llGetListLength(timestamps) && timestamp-llList2Integer(timestamps, 0) > INTERVAL+1.0) { descriptions = llDeleteSubList(descriptions, 0, 0); positions = llDeleteSubList(positions, 0, 0); timestamps = llDeleteSubList(timestamps, 0, 0); } } }
  22. Hello! I have this teleport script by Eightball Magic. It's no config teleport. You place two teleports and go. So. Its possible to set limited destination access for group / owner only. How to set it for two avatars only (me and my friend). I guess its somekind UUID access limit. Thank's for any help! This line gives limitation for owner only. I think to replace it for specific avatar UUID somehow... : else if (llSubStringIndex(llList2String(descriptions, 0), "!") == 0 && id != llGetOwner()) { llRegionSayTo(id, 0, "Only the owner are allowed to teleport to locations marked with '!'"); llUnSit(id); Or do i loose something else?.. Here's the script itself: integer CHANNEL = -10001; float INTERVAL = 10.0; vector OFFSET = <0.0,0.0,1.2>; integer number = 1; list descriptions = []; list positions = []; list timestamps = []; // Function present menu items in more logical ordering. list orderButtons(list buttons) { return(llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10)); } default { state_entry() { // Announce teleporter and setup timer to maintain teleporter list. key owner = llGetOwner(); string description = llGetObjectDesc(); if (description == "<Location name>") { description = (string)number; } vector position = llGetPos(); llRegionSay(CHANNEL, "teleporter\t" + (string)owner + "\t" + description + "\t" + (string)position); llSetTimerEvent(INTERVAL); // Setup listener to receive teleporter announcements and user dialog. llListen(CHANNEL, "", "", ""); // Configure sit text and target. llSetSitText("Teleport"); llSitTarget(OFFSET, ZERO_ROTATION); } changed(integer change) { // Check if someone sits on the teleporter. if (change & CHANGED_LINK) { key id = llAvatarOnSitTarget(); if (id) { if (llGetInventoryNumber(INVENTORY_ANIMATION) >= 1) { llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION); } if (llGetInventoryNumber(INVENTORY_SOUND) >= 1) { llPlaySound(llGetInventoryName(INVENTORY_SOUND, 0), 1.0); } integer count = llGetListLength(descriptions); if (count >= 2) { list buttons = orderButtons(llListSort(descriptions, 1, TRUE)); llDialog(id, "Select destination:", buttons, CHANNEL); } else if (count == 1) { vector position = llGetPos(); llSleep(0.5); if (llSubStringIndex(llList2String(descriptions, 0), "*") == 0 && !llSameGroup(id)) { llRegionSayTo(id, 0, "Only group members are allowed to teleport to locations marked with '*'"); llUnSit(id); } else if (llSubStringIndex(llList2String(descriptions, 0), "!") == 0 && id != llGetOwner()) { llRegionSayTo(id, 0, "Only the owner are allowed to teleport to locations marked with '!'"); llUnSit(id); } else { llSetRegionPos(llList2Vector(positions, 0)); llUnSit(id); llSetRegionPos(position); } } else { llSleep(0.5); llUnSit(id); } } } // Reset the script if the teleporter has changed owner or been moved across a sim border. if (change & (CHANGED_OWNER|CHANGED_REGION)) { llResetScript(); } } listen(integer channel, string name, key id, string message) { if (id == llAvatarOnSitTarget()) { // Teleport avatar to destination. integer index = llListFindList(descriptions, [message]); vector position = llGetPos(); if (llSubStringIndex(llList2String(descriptions, index), "*") == 0 && !llSameGroup(id)) { llRegionSayTo(id, 0, "Only group members are allowed to teleport to locations marked with '*'"); llUnSit(id); } else if (llSubStringIndex(llList2String(descriptions, index), "!") == 0 && id != llGetOwner()) { llRegionSayTo(id, 0, "Only the owner is allowed to teleport to locations marked with '!'"); llUnSit(id); } else { llSetRegionPos(llList2Vector(positions, index)); llUnSit(id); llSetRegionPos(position); } } else { // Parse the received message. list tokens = llParseString2List(message, ["\t"], []); string check = llList2String(tokens, 0); key owner = (key)llList2String(tokens, 1); string description = llList2String(tokens, 2); vector position = (vector)llList2String(tokens, 3); integer timestamp = llGetUnixTime(); // Remove old data from the lists and add current data. if (check == "teleporter" && owner == llGetOwner()) { integer index = llListFindList(descriptions, [description]); if (~index) { descriptions = llDeleteSubList(descriptions, index, index); positions = llDeleteSubList(positions, index, index); timestamps = llDeleteSubList(timestamps, index, index); } descriptions += description; positions += position; timestamps += timestamp; } // Renumber this teleporter if another has same number. if ((string)number == description) { number++; if (number > 12) { number = 1; } } } } on_rez(integer n) { // Reset the script when the teleporter is rezzed. llResetScript(); } run_time_permissions(integer perm) { // Play animation when permission has been granted. if (perm & PERMISSION_TRIGGER_ANIMATION) { llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION,0)); } } timer() { // Announce the teleporter. key owner = llGetOwner(); string description = llGetObjectDesc(); if (description == "<Location name>") { description = (string)number; } vector position = llGetPos(); integer timestamp = llGetUnixTime(); llRegionSay(CHANNEL, "teleporter\t" + (string)owner + "\t" + description + "\t" + (string)position); // Delete oldest teleporter from list if it is too old. if (llGetListLength(timestamps) && timestamp-llList2Integer(timestamps, 0) > INTERVAL+1.0) { descriptions = llDeleteSubList(descriptions, 0, 0); positions = llDeleteSubList(positions, 0, 0); timestamps = llDeleteSubList(timestamps, 0, 0); } } }
×
×
  • Create New...