Jump to content

Britlan

Resident
  • Posts

    9
  • Joined

  • Last visited

Reputation

0 Neutral

Recent Profile Visitors

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

  1. ... and the confusion continues hahaha. No not really, all good now I think. Oddly enough though, I got the impossible to actually work. I guess we both somehow still missed something in the details of what I was doing or maybe a second life fluke or update. Anyway, I didn't get to try wearing the linked prims like you mentioned but I did experiment with PRIM_OMEGA. I had not experimented with that, just llTargetOmega. I made a mistake before when I attempted using llSetLinkPrimitiveParamsFast I guess. //When avatar sits rotation (and other functions) beginllSetLinkPrimitiveParamsFast(3,[PRIM_OMEGA,<0,0,3.5>, .3, 3]);//When avatar stands rotation (and other functions) stopllSetLinkPrimitiveParamsFast(3,[PRIM_OMEGA,<0,0,0.0>, .3, 3]); This snippet actually works the way I wanted. You sit on the root and the 3rd child rotates around the root, you stand and it stops. Yay, I actually got something else working. Thank you very much for the ideas and help again Rolig. I can't get you on LL's payroll but I nominated you and voted for you as most excellent adviser, and looky...You won hahaha. Thanks again 
  2. Thanks for the quick reply Rolig, you should really be on LL's payroll haha. OK, just to clarify, what I am attempting to do is have the root prim (base) where the script is send various functions (no particular order) to various prims in a link set when you sit on the base. The child prims do of course all link to the root, so when you sit, you sit on the base or root prim. I do have 2 functions (glow & texture) that happens to the root prim while sitting but it is link 3 I am trying to rotate alone. Child 3 is like a globe rotating around the base you could say You wrote "can't spin a seated av on a spinning child prim" OK, the way I was thinking is the avatar is sitting on the root and one of the child prims will rotate around the avatar. So I am not really trying to spin the avatar at all. Is this still undoable? 5 out of 6 functions worki perfect when sitting or standing, only the rotation of link 3 is an issue. I'll play a bit more if I can get on later today, I just figured I was missing some rotation info in the script. Sorry if I am explaining what I was attempting to accomplish poorly or I am misunderstanding your reply. Sometimes the fingers just get drunk & stupid trying to express the thoughts of a tired brain. I do tend to end up trying to do the impossible a lot though btw, lol.
  3. I had a script worked out one way, but decided it would look better to just have the child rotating alone instead of all of the linked prims together. The script is in the root prim and when an avatar sits on the root prim, various functions are applied to the linked child prims, when the avatar stands, they are removed. The only issue I am running into is the rotation of the child link. I had the target omega line for the rotation and it works but it rotates and stops the entire linkset of course= //When avatar sits rotation (and other functions) begin llTargetOmega(<0.0,0.0,0.1>,TWO_PI,1.0); //When avatar stands rotation (and other functions) stop llTargetOmega(<0.0,0.0,0.0>,TWO_PI,1.0);Now I am trying to figure out the easiest way, ok, just any old way to rotate the child alone lol. I have several different script examples that actually compiled and worked the functions except for the rotating child. I think this was one example that compiled and worked for the most part= //When avatar sits rotation (and other functions) begin llSetLinkPrimitiveParamsFast(LINK_ROOT, [ PRIM_GLOW, 1, .14 , PRIM_LINK_TARGET, 3, PRIM_ROTATION,<0, 0, 2.5, 3> , PRIM_LINK_TARGET, 2, PRIM_GLOW, 1, .58 ]); //When avatar stands rotation (and other functions) end etc...etc...etcAs far as I can tell from reading and researching around, rotating the 1 child only seems to be possible. Obviously I keep leaving out necessary lines of coding pertaining to the rotation link in each sample I have tried. I'm just not sure what else is needed or how to write it in here. So am I missing a lot here in this example. Am I even close? lol Anyway, thanks in advance for any advice and hints :)
  4. I definitely noticed a huge difference on the results returned when I finaly noticed the new search and tried it. I actually opened 2 windows and used both at the same time. The biggest thing I noticed was on the new search, the title of an item seems most keyed on now I think. I also may have found a bug or 2, although after talking too one merchant, they said one is just old and was never fixed I guess. 1- An item search with the beta took me to a store page I've used before and I was surprised that they removed several of their items, but I found one new item I was going to get. I clicked on it but I just went back to the search page.I tried the old search and never found the same item but following another item link I ended up back at the store page and noticed the store was back to 163 items rather than 132. I imed the owner and they said the item I saw has been gone for a few years. It showed on their page though on the new search. So it showed a non existent item and fewer items when you visit the store page. 2- The other bug I noticed was when I went to the store from the new search it was totaly a new order. After talkng to the owner and her doing the same search, it turned out the default item sort was different on the store page. I have never used that except on a main search. I guess top selling has been broke for some time according to the sellor and relevance gives a better look on top sellers if you are curious. Aside from any bugs though, my wish for a new search would be to get stupid items out of a search description. If I am looking for a bed, I do not want to go through endless adds for land, rentals or whatever. Yes, anyone can flag those, but it just gets stupid and may get you in trouble flagging hundreds of them and who has the time. Having a seperate demo listing would be nice as well when you search for items priced low to high as well. Just a few thoughts
  5. I was reading a review where someone was suggesting needed updates to a club floor and I was curious if most were even possible? I have only done a few scripts including the generic texture animation but some of these ideas sound impossible or maybe just adding too many buttons to a menu? I would like to do a picture in a similar way though. The first seems simple enough to just add an on and off button to stop any of the floor animations running= llSetTextureAnim(FALSE, ALL_SIDES, 0, 0, 0.0, 0.0, 1.0);The second idea was making the menu stay up after making a choice rather than touching the floor to bring up a menu again. I have seen this before in some menus, but I thought this was a script error. Useful in some respects I guess, but not really sure why this would be needed though. Ideas 3 and 4 seem like a lot of extra scripting and menu buttons to me unless there is a 1 button option that could be used on 20 or so texture animations. Speed control for each effect I guess "if" every texture has the same number of cells (16 for example)in an image this could be done in maybe 3 buttons after the effect is chosen? Slow= llSetTextureAnim( ANIM_ON | LOOP, ALL_SIDES, 4, 4, 0.0, 16.0, 4.0 );Medium= llSetTextureAnim( ANIM_ON | LOOP, ALL_SIDES, 4, 4, 0.0, 16.0, 8.0 );Fast= llSetTextureAnim( ANIM_ON | LOOP, ALL_SIDES, 4, 4, 0.0, 16.0, 12.0 ); If every effect or most has a different number of cells however, wouldn't you then need 3 buttons per effect? 3 speed buttons x 20 choices = 60 buttons. I hope I am wrong on that, that would be like over 6 menu pages just for speed. lol The last idea was creating an auto feature for the effects. Possible I guess but this option sounds like it would be rather laggy. Anyway, I was just curious how most would see these issues. My limited experience in scripting probably causes me to miss simple tricks or ideas that may be more obvious to others who have been doing this longer of course. lol
  6. Well Happy Birthday Rolig Wow, seven decades, I guess I am just a wee youngin at almost 2/3 of a century old. Hmmmmmm, no need to cross check those figures, I thought it might sound better that way. lol Sometimes the coding just tends to all blur together these days after an hour or so I guess. So, after testing your upgraded version I found I still had a problem, of course. LOL All on my side though by overlooking one key issue, an AO. I sat, yet I was still "sitting in the air." I took it off to check since you had tested it with success and sure enough, I sat properly as I should. I now wonder how many versions of the old code I changed may have worked if I had always removed the AO. I actually did take the AO off for a few tests of the changes and I never saw an improvement so I will just say all my attempts were flawed. hahaha I really did not think "my" AO would cause an issue anyway because it was a newer one that supposedly dealt with sitting issues, I remember reading it in the description and it has seemed to work well since I got it. Anyway, some good came from the experimenting I guess. You took an old outdated code, cleaned it up and updated it a bit and it does work much better now I think. I noticed it was a few less lines of coding as well, always a good thing I think. So Thank you very much for your replies and help. Speaking of the amount of lines of coding, I do have a question that most scripters probably know but I'm not sure I have ever heard if it makes a diffence. Does the amount of code in a script have effect on lag? I think one of the first scripts I ever played with was a particle effect. It was well over 300 lines of coding but was really just a basic sparkle script. I managed to rewrite that script at about 30 lines I think and that included adding a touch on and off event. I know the touch on/off feature helps on the lag issue because before the script just always ran. But does the amount of coding make a big difference? I was just always curious about that Again, thank you very much for your help and replies Rolig. I hope you and yours have wonderful and Happy Thanksgiving
  7. First and foremost thank you for your replies and the help you gave Rolig. I dont really use the forums much but I tend to end up here a lot through google trying to work out issues. This was my first post and as I expected you commented. Lol I see 3 or so peeps a lot here in the forums that really try to help out and I have been helped out on several issues just by reading the posts, so you all are appreciated. Now in order I'll try to answer or reply to your comments. 1. I was not aware this was that old of script really. I got it from an older avatar friend and they said it was the best teleporting script they have used. I have a point to point tp script, but I have 7 areas on a small parcel so this script just worked better there. 2. I have heard of the term Warpos but was not aware it was an old hack. I think my point to point tp actually uses llSetRegionPos, so that is a plus I guess. I did try to mod the script I uploaded but I guess there is a lot of extra code changes to accept llSetRegionPos. I never got the script to even compile right. I am still a script noob I guess, sorry. 3. As I mentioned, the script I uploaded compiles fine and actually works. I can still TP from one pad to another. I just get script error warnings on permissions. I am trying to understand the less server load script coding but I am still learning. I really understand the lag issue and hate it. I was proud when I found my dance ball that only used 1 script to control all the dances and effects compared to an older one that had 30 scripts just for dancers. 4. I got lost here. The script does except an animation inside of the TP pad contents, but why should it be coded to play both back to back? I really did not care about adding my own pose. I was just trying to hard code if you will a new lsl animation like a basic stand into the script. As you said this script is older so maybe it was added to a chair in the begining. Looks weird above a tp pad now though. I will try to add the original script I have without changes so others may improve on it. . 5. I added an animation and it worked, but rather redundant if the script defaults to the internal animation first. This tp script basically resits you twice? You sit in the air above the pad and than go to the added pose. Really no need to add a pose if the default pose has priority. *Bonus. Just continue to help while being respectful and peeps will love you, even if we don't catch on as quick as others. I am actually probably too old to be here and catch on as quick as most, but is is very disheartening when some just try to tear you apart. Thankfully the forums do not seem to be as bad as many of the groups on SL. This is the original script I recieved unchanged. Keep in mind, Rolig said this is a dated script as well as a server resource hog, maybe you can tweak and improve it. The only issue I ever had was the default pose sitting in the air above the tp pad, otherwise it worked ok. integer CHANNEL = -10001;float INTERVAL = 10.0;vector OFFSET = <0.0,0.0,1.2>;list descriptions = [];list positions = [];list timestamps = [];string ANIM_STAND = "hover";string ANIM_TP = "sit";list orderButtons(list buttons){ return(llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10));}warpPos(vector destpos){ integer jumps = (integer)(llVecDist(destpos, llGetPos())/10.0) + 1; if (jumps > 411) jumps = 411; list rules = [ PRIM_POSITION, destpos ]; integer count = 1; while ((count = count<<1) < jumps) rules = (rules=[]) + rules + rules; llSetPrimitiveParams( rules + llList2List( rules, (count-jumps)<<1, count)); if (llVecDist(llGetPos(), destpos) > .001) while (--jumps) llSetPos( destpos );}default{ state_entry() { key owner = llGetOwner(); string description = llGetObjectDesc(); vector position = llGetPos()+OFFSET; llRegionSay(CHANNEL, (string)owner + "\t" + description + "\t" + (string)position); llSetTimerEvent(INTERVAL); llListen(CHANNEL, "", "", ""); llSetSitText("Teleport"); llSitTarget(<0.0,0.0,1.2>, ZERO_ROTATION); } changed(integer change) { if (change & CHANGED_LINK) { key id = llAvatarOnSitTarget(); if (id) { if (llGetInventoryNumber(INVENTORY_ANIMATION) >= 1) { llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION); } 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)) { llInstantMessage(id, "Only group members are allowed to teleport to locations marked with '*'"); llUnSit(id); } else if (llSubStringIndex(llList2String(descriptions, 0), "!") == 0 && id != llGetOwner()) { llInstantMessage(id, "Only the owner are allowed to teleport to locations marked with '!'"); llUnSit(id); } else { warpPos(llList2Vector(positions, 0)); llUnSit(id); warpPos(position); } } else { llSleep(0.5); llUnSit(id); } } }} listen(integer channel, string name, key id, string message) { if (id == llAvatarOnSitTarget()) { integer index = llListFindList(descriptions, [message]); vector position = llGetPos(); if (llSubStringIndex(llList2String(descriptions, index), "*") == 0 && !llSameGroup(id)) { llInstantMessage(id, "Only group members are allowed to teleport to locations marked with '*'"); llUnSit(id); } else if (llSubStringIndex(llList2String(descriptions, index), "!") == 0 && id != llGetOwner()) { llInstantMessage(id, "Only the owner is allowed to teleport to locations marked with '!'"); llUnSit(id); } else { warpPos(llList2Vector(positions, index)); llUnSit(id); warpPos(position); } } else { list tokens = llParseString2List(message, ["\t"], []); key owner = (key)llList2String(tokens, 0); string description = llList2String(tokens, 1); vector position = (vector)llList2String(tokens, 2); integer timestamp = llGetUnixTime(); if (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; } }} on_rez(integer n) { llResetScript(); } run_time_permissions(integer perm) { if (perm & PERMISSION_TRIGGER_ANIMATION) { llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION,0)); } } timer() { key owner = llGetOwner(); string description = llGetObjectDesc(); vector position = llGetPos()+OFFSET; integer timestamp = llGetUnixTime(); llRegionSay(CHANNEL, (string)owner + "\t" + description + "\t" + (string)position); 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); } }}
  8. OK, so I had way to many edit versions of the tp script and was getting lost, so I just started over. This is an attempted redo of a previous edit. I must have a ) or . or whatever different because now this really does nothing but give script error on permissions. It compiles and still works, but just with the errors. I had this script working before with no errors, but it still was not correct. the default lsl pose I was trying to substitute was working, but at the end of the tp jump. I'm sure this is a simple mess up and i am wasting too much energy on a trivial pose but I am new to scripts, what can i say. lol Hopefully this posts correct, and ty you again for your reply rolig integer CHANNEL = -10001;float INTERVAL = 10.0;vector OFFSET = <0.0,0.0,1.2>;list descriptions = [];list positions = [];list timestamps = [];string ANIM_STAND = "hover";string ANIM_TP = "sit";list orderButtons(list buttons){ return(llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10));}warpPos(vector destpos){ integer jumps = (integer)(llVecDist(destpos, llGetPos())/10.0) + 1; if (jumps > 411) jumps = 411; list rules = [ PRIM_POSITION, destpos ]; integer count = 1; while ((count = count<<1) < jumps) rules = (rules=[]) + rules + rules; llSetPrimitiveParams( rules + llList2List( rules, (count-jumps)<<1, count)); if (llVecDist(llGetPos(), destpos) > .001) while (--jumps) llSetPos( destpos );}default{ state_entry() { key owner = llGetOwner(); string description = llGetObjectDesc(); vector position = llGetPos()+OFFSET; llRegionSay(CHANNEL, (string)owner + "\t" + description + "\t" + (string)position); llSetTimerEvent(INTERVAL); llListen(CHANNEL, "", "", ""); llSetSitText("Teleport"); llSitTarget(<0.0,0.0,1.2>, ZERO_ROTATION); } changed(integer change) { if (change & CHANGED_LINK) { key id = llAvatarOnSitTarget();///////////////////////////////////////////////////////////////// llStopAnimation(ANIM_TP); llStartAnimation(ANIM_STAND); ///////////////////////////////////////////////////////////////// if (id) { if (llGetInventoryNumber(INVENTORY_ANIMATION) >= 1) { llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION); } 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)) { llInstantMessage(id, "Only group members are allowed to teleport to locations marked with '*'"); llUnSit(id); } else if (llSubStringIndex(llList2String(descriptions, 0), "!") == 0 && id != llGetOwner()) { llInstantMessage(id, "Only the owner are allowed to teleport to locations marked with '!'"); llUnSit(id); } else { warpPos(llList2Vector(positions, 0)); llUnSit(id); warpPos(position); } } else { llSleep(0.5); llUnSit(id); } } }} listen(integer channel, string name, key id, string message) { if (id == llAvatarOnSitTarget()) { integer index = llListFindList(descriptions, [message]); vector position = llGetPos(); if (llSubStringIndex(llList2String(descriptions, index), "*") == 0 && !llSameGroup(id)) { llInstantMessage(id, "Only group members are allowed to teleport to locations marked with '*'"); llUnSit(id); } else if (llSubStringIndex(llList2String(descriptions, index), "!") == 0 && id != llGetOwner()) { llInstantMessage(id, "Only the owner is allowed to teleport to locations marked with '!'"); llUnSit(id); } else { warpPos(llList2Vector(positions, index)); llUnSit(id); warpPos(position); } } else { list tokens = llParseString2List(message, ["\t"], []); key owner = (key)llList2String(tokens, 0); string description = llList2String(tokens, 1); vector position = (vector)llList2String(tokens, 2); integer timestamp = llGetUnixTime(); if (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; } }} on_rez(integer n) { llResetScript(); } run_time_permissions(integer perm) { if (perm & PERMISSION_TRIGGER_ANIMATION) { llStopAnimation(ANIM_TP); llStartAnimation(ANIM_STAND); // llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION,0)); } } timer() { key owner = llGetOwner(); string description = llGetObjectDesc(); vector position = llGetPos()+OFFSET; integer timestamp = llGetUnixTime(); llRegionSay(CHANNEL, (string)owner + "\t" + description + "\t" + (string)position); 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); } }}
  9. So I have an old teleporter script that I have been using for a while. It actually works pretty well but I never liked the sitting in the air above the teleporter when you click it. Maybe it was created for a chair? Idk. It is an older teleporter script that was created by 8ball magic I think, but still functions good I think. Anyway, since I started playing with scripts a bit I figured I would play around and see if I could add another lsl default pose like hover or a stand in the place of sitting in the air. I have gotten the script to compile and actually work several ways, but just not correct. The default pose I added tends to appear at the end of the teleport no matter how I write it. I'm thinking it might be the lines that say llAvatarOnSitTarget conflicting with my changes. My main question, is it possible to even do what I am trying to do? Maybe the llAvatarOnSitTarget command needs to be replaced with another? Yes, it is a trivial issue I guess, I just always thought it looked wierd being in a sit position above the tp pad. :) I forgot to save the script before I came here tonight but I figured most of the long time scripters would know the one I was talking about. I'm not even sure how to paste it the way most like it in the forum haha. And yes, I realize that the script has the built in ability to add a pose "inside" of the teleporter contents with the script, but that really does not work much better I thought. It still defaults to the sitting in the air first and than moves to the added animation. Priority I guess. Anyway, I was just curious if I was attempting the impossible. :) Have a great day all :)
×
×
  • Create New...