eduardoalonzo Posted May 29, 2020 Share Posted May 29, 2020 (edited) I bought this stand pose script and I would like it to disappear when I sit down and appear again when I get up, I know that for you geniuses and sages of SL it is easy, do me that favor- please rewrite it, and also cancel the text on the stand pose integer itemType=INVENTORY_ANIMATION; vector posePos=<0,0,1.3>; integer itemCount; integer counter=0; string animation; key sitavakey=NULL_KEY; stopAnimation() { list anims = llGetAnimationList(llGetPermissionsKey()); integer aminct = llGetListLength(anims); integer i; for (i = 0; i < aminct; i++){ llStopAnimation(llList2Key(anims, i)); } } startAnimation(integer num) { if (itemCount==0) return; stopAnimation(); counter+=num; if (itemCount<=counter) counter=0; else if (counter==-1) counter=itemCount-1; animation=llGetInventoryName(itemType,counter); showText(); llStartAnimation(animation); } showText() { itemCount = llGetInventoryNumber(itemType); string msg; if (sitavakey==NULL_KEY) msg="-- PoseStand --\n" + (string)itemCount + " animations"; else msg="-- PoseStand --\n" + animation + "(" + (string)(counter+1) + "/" + (string)itemCount + ")"; llSetText(msg,<1,1,1>, 1.0); } default { state_entry(){ llSetSitText("Pose"); llSitTarget(posePos,ZERO_ROTATION); showText(); } on_rez(integer int) { llResetScript(); } changed(integer change) { if (change & CHANGED_LINK) { sitavakey = llAvatarOnSitTarget(); if( sitavakey != NULL_KEY ) { if ((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) && llGetPermissionsKey() == sitavakey) { startAnimation(0); } else { llRequestPermissions(sitavakey, PERMISSION_TRIGGER_ANIMATION); } } else { animation=""; counter=0; showText(); } } else if (change & CHANGED_INVENTORY) { showText(); } } run_time_permissions(integer perm){ if(perm & PERMISSION_TRIGGER_ANIMATION){ startAnimation(0); } } link_message(integer sender_num, integer num, string str, key id){ if (llGetPermissionsKey() == sitavakey) { startAnimation(num); } } } Edited May 29, 2020 by eduardoalonzo Link to comment Share on other sites More sharing options...
Rolig Loon Posted May 29, 2020 Share Posted May 29, 2020 The function you want is llSetAlpha, which you can look up in the LSL wiki here. Your changed event has two branches. One, following the line marked if( sitavakey != NULL_KEY ){ tells the script what to do when you sit down. The other, in the block } else { animation=""; counter=0; showText(); } tells the script what to do when you stand up. So, llSetAlpha(0.0); when you sit down and llSetAlpha(1.0); when you stand up. Link to comment Share on other sites More sharing options...
eduardoalonzo Posted May 29, 2020 Author Share Posted May 29, 2020 1 hour ago, Rolig Loon said: The function you want is llSetAlpha, which you can look up in the LSL wiki here. Your changed event has two branches. One, following the line marked if( sitavakey != NULL_KEY ){ tells the script what to do when you sit down. The other, in the block } else { animation=""; counter=0; showText(); } tells the script what to do when you stand up. So, llSetAlpha(0.0); when you sit down and llSetAlpha(1.0); when you stand up. aya my head hurts 100 attempts and I only managed to make it disappear but it doesn't appear again :c Link to comment Share on other sites More sharing options...
Rolig Loon Posted May 29, 2020 Share Posted May 29, 2020 Great! So you have accomplished two things. You made the object disappear, so you know that you put that first llSetAlpha command in the right place, and you got a headache, which says that you are thinking hard. So, look at that block of things that the script is supposed to do when you stand up: } else { animation=""; counter=0; showText(); } The script will set the name of the animation to "" (which means, essentially, that it forgets the name of the animation). Then it will set its own variable counter to zero. Finally, it will refresh the floating text over your object by calling its own showText function. And you want it to do one more thing ... make the object visible again. So that's where you put the second llSetAlpha command, as a new line among the other three things. With any luck (no typos), that should do it. Try sitting on it to see. When you come to the Scripting forum, we assume that you are a scripter or at least are willing to learn. We won't usually write your script for you because that's your job, but I hope this helps you see how to do one small thing. Now you are a scripter. Link to comment Share on other sites More sharing options...
Recommended Posts
Please take a moment to consider if this thread is worth bumping.
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now